Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2017, 22:53   #11
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от R71MT Посмотреть сообщение
Трындец они там завертели, поэтому и спрашиваю.. 15-бит позволяют адресовать только гиг памяи (два старших бита - банки), а как адресуют 8-16-гиговые модули?
Это уже DDR3 и DDR4.

Ну они там завернули.
Вроде со всем разобрался.

Короче выборка адреса происходит за две команды. Вначале выбираются столбцы потом колонки. колонки выбирают адрес в странице.
У DDR3 увеличили размер страницы по сравнению с DDR2.
А вот у DDR4 банки сформировали в группы и вывели отдельными адресами.

Ещё у DDR3 разрешили использовать все 8 ранков на одной плашке памяти.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 15.08.2017 в 23:41.
Pavia вне форума Ответить с цитированием
Старый 17.08.2017, 13:51   #12
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Pavia спасибо за ссылки и объяснения, хотя остаётся много вопросов..
У меня сейчас сформировалась такая картина.. Если ошибаюсь - прошу поправить.

Ёмкость 1-гигабитной м\схемы памяти равна 1.073.741.824 бит. Чтобы получить кол-во строк и столбцов в двумерной матрице, извлекаем квадратный корень - равно 32768, а это по 15-бит для адресации строк и колонок. Делим матрицу на 4-логических банка по строкам - 8192 строк в одном банке.

Одна ячейка памяти равна 8-бит, значит замыкаем каждые 8-столбцов матрицы, что приводит к слиянию их адресов. То есть общее кол-во адресуемых столбцов в матрице (32768/8=4096) и соответственно требует меньшее кол-во бит. В результате получаем 15-бит для адресации строк, и 11-бит для столбцов. Это 1 чип памяти:

Код:
        Организация(х1)             Организация(х4)                  Организация(х8)
                                _____    _____    _____       _____________    _____________	
  _|_|_|_|_|_|_|_|_|_|_|_|_   _|_|_|_|__|_|_|_|__|_|_|_|_   _|_|_|_|_|_|_|_|__|_|_|_|_|_|_|_|_
  _|_|_|_|_|_|_|_|_|_|_|_|_   _|_|_|_|__|_|_|_|__|_|_|_|_   _|_|_|_|_|_|_|_|__|_|_|_|_|_|_|_|_
  _|_|_|_|_|_|_|_|_|_|_|_|_   _|_|_|_|__|_|_|_|__|_|_|_|_   _|_|_|_|_|_|_|_|__|_|_|_|_|_|_|_|_
  _|_|_|_|_|_|_|_|_|_|_|_|_   _|_|_|_|__|_|_|_|__|_|_|_|_   _|_|_|_|_|_|_|_|__|_|_|_|_|_|_|_|_
  _|_|_|_|_|_|_|_|_|_|_|_|_   _|_|_|_|__|_|_|_|__|_|_|_|_   _|_|_|_|_|_|_|_|__|_|_|_|_|_|_|_|_
   | | | | | | | | | | | |     | | | |  | | | |  | | | |     | | | | | | | |  | | | | | | | |
   x x x x x x x x x x x x     х | | |  x | | |  x | | |     x | | | | | | |  x | | | | | | |
   | | | | | | | | | | | |     |        |        |           |                |
   0 1 2 3 4 5 6 7 8 9 A B     0        1        2           0                1
Параллельно каждой линии столбца идёт ещё одна линия-данных. Когда чип получает адрес строки, по этим инфо-линиям столбцов передаются биты данных.



АДРЕСАЦИЯ СТРОК

Вернёмся к банкам и строкам..
Проц запрашивает физический адрес ячейки, и его абсолютно не волнуют тонкости работы контроллёра памяти (MCT), который разделяет физический адрес на три составляющие: номер банка, номер строки и номер столбца. Поэтому рассмотрим связь физических адресов в банках, и расположения в них порядка бит. Как было сказано выше, в одном банке 8192-строк и 4096 адресуемых столбцов. У чипов до 1-Гигабит логических банков всего 4:

Код:
	                  код                      диапазон адресов
	                  __                      _____________
	Банк(0)  8191  =  00.11111.1111.1111  <--  0000...8191
	Банк(1) 16383  =  01.11111.1111.1111  <--  8192...16383
	Банк(2) 24575  =  10.11111.1111.1111  <-- 16384...24575
	Банк(3) 32767  =  11.11111.1111.1111  <-- 24576...32767
Здесь видно, что младшие 13-бит адреса строки будут одинаковы для всех банков памяти, поэтому их линии разводим по-банкам параллельно - A[12:0]. Старшие 2-бита 15-битного адреса строки будут кодом банка. Инженеры обозвали их ВА0\BA1 (Bank Activate). Загоняем их на вход дешифратора, чтобы в зависимости от физ\адреса строки активировал один из четырёх банков. Схема получится такая:

Код:
	Адрес строки (например): 16666 = 100.0001.0001.1010
	---------------------------------------------------
	                       ______________
	        +------- 1 -->\     Д Ш Б    /
	        | +----- 0 --->\____________/
	        | |     ___      |  |  |  |
	BA1 ----+-|----| 1 |     |  |  |  +---> 00 = банк(0)
	BA0 ------+----| 0 |     |  |  +------> 01 = банк(1)
	A12 ---------->| 0 |     |  +---------> 10 = банк(2) (см.коды выше)
	A11 ---------->| 0 |     +------------> 11 = банк(3)
	A10 ---------->| 0 |
	A9  ---------->| 0 |       ДШС - Дешифратор строки
	A8  ---------->| 1 |       ДШБ - Дешифратор банка
	A7  ---------->| 0 | Д
	A6  ---------->| 0 |
	A5  ---------->| 0 | Ш ---> лог\адрес cтроки: 282 -->
	A4  ---------->| 1 |
	A3  ---------->| 1 | С
	A2  ---------->| 0 |
	A1  ---------->| 1 |
	A0  ---------->| 0 |
                |___|
Таким образом, физическая строка(16666) будет равна 282-ой строке, от начала банка(2).
Дешифратор адреса контроллёра памяти отбрасывает 2-старших бита, передавая их дешифратору банка. Оставшаяся часть 15-битного адреса и будет представлять из-себя логический номер строки А[12:0].
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 17.08.2017, 13:52   #13
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

СОГЛАСОВАНИЕ НЕСКОЛЬКИХ ЧИПОВ. РАНКИ ПАМЯТИ

Значение(х8) в маркироке чипа имеет большой вес. Во-первых - это размер одной ячейки в битах, во-вторых - разрядность шины-данных чипа (инфа снимается именно с этих\восьми объединённых столбцов), в третьих - это делитель общего кол-ва колонок матрицы. Эту величину ещё называют 'слово памяти'. Кол-во адресуемых столбцов внутри одного чипа в 8-раз меньше кол-ва адресуемых строк. То есть: 32768-строки, и 4096-столбцов(х8). При этом логический банк разделяет матрицу только по строкам, не трогая столбцы.

Разрядность шины-данных большинства м\схем всего 8-бит, а во внешней шине процессора - все 64-бита. Увеличение разрядности инфо-шины достигается путём параллельного соединения необходимого кол-ва м\схем памяти. Параллельно соединяются только адресные входы, и входы управления. При этом инфо-выводы всех микросхем соединяются последовательно, и образуют внешнюю шину-данных требуемой разрядности. Такое заполнение шины процессора, принято называть составлением физического банка - ранка памяти.

Таким образом, чтобы собрать один 64-битный ранк, нужно объединить 16-чипов(x4), 4-чипа(x16), или самый распространённый вариант: 8-чипов(x8). Все чипы имеют одинаковую организацию, поэтому банки их сливаются в единое целое, расширяя адресное пространство за счёт столбцов.

Код:
	               8 чипов(х8) соединённых последовательно
            			       организация 'Linear' (линейная)

	33333333 33333333 33333333 33333333 33333333 33333333 33333333 33333333
	33333333 33333333 33333333 33333333 33333333 33333333 33333333 33333333  <-- Банк(3)
	22222222 22222222 22222222 22222222 22222222 22222222 22222222 22222222
	22222222 22222222 22222222 22222222 22222222 22222222 22222222 22222222  <-- Банк(2)
	11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
	11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111  <-- Банк(1)
	00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
	00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000  <-- Банк(0)
	=======================================================================
	|||||||| |||||||| |||||||| |||||||| |||||||| |||||||| |||||||| ||||||||
	|                                                                     |
	|<-------------- Внешняя шина модуля 64-бит DQ[63:0] ---------------->|
Внутри ранка, адрес строки совпадает сразу для всех чипов, а вот столбцы - разные. Общее кол-во столбцов внутри чипа сократилось в 8-раз (8-битная ячейка), а всего чипов тоже 8. Оставшиеся столбцы распределяются по следующим чипам, выстариваясь в таком порядке:

Код:
АДРЕСАЦИЯ СТОЛБЦОВ В РАНКЕ ПАМЯТИ
всего 32768 / 8-бит ячейка = 4096 адресуемых столбцов в одном чипе 

Чип   Диапазон      Разрядная сетка 
-----------------------------------------------
 0    0000..4095     4095 = 000.1111.1111.1111 
 1    4096..8191     8191 = 001.1111.1111.1111 
 2    8192..12287   12287 = 010.1111.1111.1111 
 3   12288..16383   16383 = 011.1111.1111.1111 
 4   16384..20479   20479 = 100.1111.1111.1111 
 5   20480..24575   24575 = 101.1111.1111.1111 
 6   24576..28671   28671 = 110.1111.1111.1111 
 7   28672..32767   32767 = 111.1111.1111.1111
Здесь, как и в случае с адресацией строк, опять-же просматривается связь младших 12-ти бит, которые можно развести по всем\восьми чипам параллельно А[11:0]. Старшие 3-бита есть ничто-иное как номер одного из восьми чипов в ранке. Их ждёт вход дешифратора для авто-выбора чипа по номеру столбца.

Дешифратор находится в контроллёре памяти и имеет 8 выходных линий CS# - Chip Select. Каждая линия идёт к своему чипу (например CS#2) и активирует его шину. Если сигнал(CS#) на чипе имеет уровень(1), то чип считается отключённым от инфо-шины, что лишает его возможности общения с внешним миром. Низкий уровень(0) подключает столбцы матрицы к усилителю уровня 'Sense Amplifier' и дальше - к выходному буферу чипа, позволяя процессору считывать или записывать в него информацию.
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 17.08.2017, 13:55   #14
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

ЧТО НОВОГО У DDR-SDRAM

Вешеописанным способом работала синхронная SDR (Single Data Rate) память..
У современной DDR (Dual Data Rate) ядро и логическая организация осталось почти прежним, а все нововведения коснулись по-большей мере лишь интерфесной части. DDR работает только в пакетном режиме, а длинну пакета определяет параметр 'Burst Length' (BL=2,4,8). При этом тактавоя частота стала дифферциальной, где второй сигнал клок(CLK#) смещён на пол такта по-фазе.

Пакетный режим автоматом увеличивает адрес столбца на каждом такте цикла обращения к памяти. При открытой странице стробом(RAS#), это позволяет получить доступ к соседним ячейкам без указания их адресов. Любая SDRAM имеет счётчик наращивания адресов столбца, который и привязывается к значению 'Burst Length'.

Весь интерфейс делится на 3-части: ядро, выходной буфер, и внешняя шина. У SDR-памяти ядро и буферы обмена работают в синхронном режиме на одинаковой частоте (100\133 МГц). У DDR - частоты разные, поскольку за такт читаются сразу по 2-байта с чипа, которые копятся в выходном буфере, и передаются на внешнюю шину, которая так-же работает на своей частоте:

Код:
 _____________                   ________________
|  Ядро SDR   |                 | Выходной буфер |   Внеш.шина ЦП 
| f = 133 МГц |-- внутр.шина -->|   f = 133МГц   |--- f=133 МГц ---->
|_____________|     64-бит      |________________|      64-бит
 
 _____________                   ________________     _______
|  Ядро DDR   |---------------->| Выходной буфер |   |       |   Внеш.шина ЦП 
| f = 133 МГц |-- внутр.шина -->|   f = 133МГц   |---| MUX-2 |--- f=256 МГц ---->
|_____________|     64-бит      |________________|   |_______|      64-бит
 
 _____________                   ________________     _______
|  Ядро DDR2  |---------------->| Выходной буфер |   |       |   Внеш.шина ЦП 
| f = 133 МГц |-- внутр.шина -->|   f = 256МГц   |---| MUX-4 |--- f=533 МГц ---->
|_____________|---- 128-бит --->|________________|   |_______|      64-бит
 
 _____________                   ________________     _______
|  Ядро DDR3  |---------------->| Выходной буфер |   |       |   Внеш.шина ЦП 
| f = 100 МГц |-- внутр.шина -->|   f = 400МГц   |---| MUX-8 |--- f=800 МГц ---->
|             |---- 128-бит --->|                |   |_______|      64-бит
|_____________|---------------->|________________|
С приходом памяти DDR введена новая технология '2n-prefetch', где N является степенью и характеризует поколение (DDR-1,2,3,4). Обычная DDR-1 выбирает 2-бита с одной линии данных (выборка с кол-вом бит 2 в первой степени), DDR-2 соответственно 2 во-второй степени (т.е. 4-бита), у DDR-3 уже 8-бит, и т.д.

Мультиплексоры (MUX) на выходах, позволяют чередовать пакеты полученных из ядра данных, во-внешнюю шину процессора. Например, мультиплексор памяти DDR-2 построен по схеме 4:1, т.е. 4 входа и один выход, и т.д.

Кроме этого, введены новые сигнальные линии: максировка байт в странице DQM#[0:7] - Data Mask, и авто-подстройка тактовой частоты DQS#[63:0] - Data Strobe, чем-то напоминающей схему АПЧиФ. Поскольку DDR читает только целыми страницами и в пакетном режиме, то маскировка байт осуществляется исключительно в циклах записи, при низком уровне сигнала(WE#) - Write Enable.

Для этого, сигнал CS# можно оставить постоянно включённым, и запрещать запись ненужных байт сбрасыванием соответствующей линии DQM. Этот сигнал поступает на каждый чип в отдельности. Например, DQM#1,4 запретит запись байтов D5h и E7h, в станицу памяти.

Код:
|<----------------------------- Страница ---------------------------->|
|                                                                     |
|  0        1        2        3        4        5        6        7   | <-- Чипы памяти
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
|  F0       D5       81       FF       E7       00       6A       55  | <-- Данные для записи
_________        ___________________        __________________________ 
         \______/                   \______/                            <-- Сигнал DQM
           DQM#1                      DQM#4
Буквально все чипы DDR-SDRAM поддерживают авто-регенерацию строки. Происходит это после закрытия страницы (строки) сигналом RAS#=1. Теперь сигнал(А10) остался не у дел, зато появился новый сигнал CKE - Clock Enable. При высоком его уровне, второй (дифференциальный) клок отключается, что переводит чип в режим сна, с меньшим потреблением.
Изображения
Тип файла: png sdr1.png (11.8 Кб, 97 просмотров)
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 17.08.2017, 13:56   #15
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Именно так я себе это вкратце представляю..
Но современные модули с большими объёмами памяти уже не могут строиться по такой схеме. Если логических банков у чипа теперь 8, то для адресации нужно уже не 15, а минимум 16-бит (3-бита для банков). Это-же касается и самой матрицы, в которой получится больше строк. Ничего нового в сети не нашёл, поэтому и решил спросить здесь.

Буду благодарен, если кто-нибудь прояснит эту картину, или подкинет более современную инфу. В даташитах на чипы нет ничего принципиально нового, и производители не спешат раскрывать все карты, ограничиваясь поверхностными данными.
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 17.08.2017, 15:01   #16
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

КОНТРОЛЛЁР ПАМЯТИ (MCT)

Для сокращения кол-ва внешних линий, адресные входы чипов мультиплексируются. Адрес делится на 2 части. Сначала посылается адрес строки (Row Addr), который по стробу(RAS#) сохраняется в регистре-защёлке чипа, для последующей регенерации считанной строки. В этот момент, данные всех 8-ми чипов выбранной строки, целиком попадают в уcилитель 'Sense AMP'. Эти данные называют страницей памяти. Страница будет считаться открытой, пока строб(RAS#) имеет низкий уровень(0), т.е. до окончания цикла обращения к памяти.

После того, как 'Sense AMP' получил страницу, на те-же адресные линии подаётся адрес столбца (Column Addr), который так-же сохраняется в защёлках чипа по стробу(CAS#). Этот адрес выбирает смещение данных внутри усилителя 'Sense AMP', которые и отправляются на выход из ядра в буфер ввода-вывода.

Однако ЦП задаёт весь адрес целиком, одновременно помещая все\его разряды на шину-адреса.
Их мультиплексирование выполняется контроллёром памяти, который расположен между ЦП и ранком памяти. В ответ на сигнал обращения ЦП к ОЗУ, контроллёр принимает от него полный адрес и сигнал операции R\W. Затем, контроллёр по очереди пересылает в ОЗУ адрес строки и столбца по мультиплексной шине-адреса(МА), фиксируя их стробами RAS\CAS соответственно:

Код:
	 _________                ________                _______
	|         |--- Запрос -->|        |---- МА ----->|       |
	|         |--- Адрес --->|   MC   |--- RAS# ---->|  MEM  |
	|   CPU   |--- R\W ----->|        |--- CAS# ---->| SDRAM |
	|         |              |        |--- CS# ----->|       |
	|         |              |        |--- WE# ----->|       |
	|         |--- Clock --->|        |--- Clock --->|       |
	|         |              |________|              |       |
	|         |                                      |       |
	|         |<----/--- Шина данных 64-бит ----/--->|       |
        |_________|                                      |_______|
Таким образом, в дополнение к мультиплексированию адреса, контроллёр памяти осуществляет ещё и генерацию сигналов RAS#\CAS#\CS#\WE#. Шина-данных соединяет непосредственно процессор и память, в обход контроллёра. При использовании чипов SDRAM без само-регенерации, контроллёр отвечает ещё и за выдачу сигнала(А10), который управляет процессом регенерации строк матрицы (устаревший вариант).
Нашедшего выход - затаптывают первым..

Последний раз редактировалось R71MT; 17.08.2017 в 15:04.
R71MT вне форума Ответить с цитированием
Старый 17.08.2017, 21:14   #17
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от R71MT Посмотреть сообщение
Ёмкость 1-гигабитной м\схемы памяти равна 1.073.741.824 бит. Чтобы получить кол-во строк и столбцов в двумерной матрице, извлекаем квадратный корень - равно 32768, а это по 15-бит для адресации строк и колонок. Делим матрицу на 4-логических банка по строкам - 8192 строк в одном банке.

Одна ячейка памяти равна 8-бит, значит замыкаем каждые 8-столбцов матрицы, что приводит к слиянию их адресов. То есть общее кол-во адресуемых столбцов в матрице (32768/8=4096) и соответственно требует меньшее кол-во бит. В результате получаем 15-бит для адресации строк, и 11-бит для столбцов. Это 1 чип памяти:
Не так. С начало делим на 4 банка. Банки они независимые, что-бы загрузить столбцы банк тоже надо выбирать.


Цитата:
Сообщение от R71MT Посмотреть сообщение
СОГЛАСОВАНИЕ НЕСКОЛЬКИХ ЧИПОВ. РАНКИ ПАМЯТИ
Что-то не найду где видел ранки в SDR(PC100). Суть в том что ранки памяти появляются в DDR2 в DDR1 их нету, а в SDR(PC100) это совсем другое.
Для меня ранки это кучки чипов и ранк это как доп адрес только на плате. А у вас речь идёт о ширине данных или же выборе одного чипа в SDR - От чего в последствии отказались.

Цитата:
Сообщение от R71MT Посмотреть сообщение
Дешифратор находится в контроллёре памяти и имеет 8 выходных линий CS# - Chip Select. Каждая линия идёт к своему чипу (например CS#2)
Да они там накасячели. CS всего 4, а не 8. Поэтому выбираются по 2 чипа за раз.
https://cdn.hackaday.io/files/101194..._001%20SDR.pdf

В последствие эти сигналы меняли назначение.

Цитата:
Сообщение от R71MT Посмотреть сообщение
Именно так я себе это вкратце представляю..
Но современные модули с большими объёмами памяти уже не могут строиться по такой схеме. Если логических банков у чипа теперь 8, то для адресации нужно уже не 15, а минимум 16-бит (3-бита для банков). Это-же касается и самой матрицы, в которой получится больше строк. Ничего нового в сети не нашёл, поэтому и решил спросить здесь.
Там очень много отличий между SDR, DDR1, DDR2, DDR3 и DDR4 - их следует рассматривать по отдельности.

Там потом ещё группы банков появляются.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 17.08.2017 в 21:24.
Pavia вне форума Ответить с цитированием
Старый 17.08.2017, 23:25   #18
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
что-бы загрузить столбцы банк тоже надо выбирать.
..тогда как проц найдёт 'свой' байт? По моему в этом и фишка, чтоб указать раздельный столбец. Иначе-же одинаковых столбцов получится много. Этот момент что-то не ясный..

Цитата:
Сообщение от Pavia Посмотреть сообщение
а в SDR(PC100) это совсем другое. ранк это как доп адрес только на плате.
Вы наверное говорите про много-ранковые модули. Для этого случая предназначены выводы SA[0:2] (Select), которые задают конфиг контроллёру. В трёх битах кодируются 8-ранков. У нулевого ранка все\три вывода замкнуты на массу (лог\нуль). В моём случае, под определение ранк попадает 8-чипов, соединённых параллельно\последовательно.

Цитата:
Сообщение от Pavia Посмотреть сообщение
CS всего 4, а не 8.
Точно! Хотя контроллёр посылает все 8-линий, но используются только 4. Остальные - 'No connect'. Причём на каждый модуль приходят только 2 из них. Пины СВ[0:7] - 'Control Bit' для коррекции ошибок.
---------------------

Я разбирался по схемам материнских плат, где все пины расписаны. Но повторюсь, что инфа устаревшая. На рисунках ниже я вот вырезал значимые участки с выхода из контроллёра (на схеме имеется ещё и второй\идентичный канал), и что приходит на сам модуль (ранк) памяти. На слоте памяти как-раз имеются пины SA[0:2], о которых вы упоминули. Конфиг указан для канала(А), ранк(0). Во-втором - S1 уже отсоединён от массы, и на него идёт лог\единица (подтянут к шине +5v).

Кстати, недавно в соседней теме кто-то хотел припаять параллельно имеющемуся - ещё один слот, чтоб увеличить память. Помимо остальных пинов, ему как-раз и нужно было выставить соответствующим образом ключи конфига планки SA[0:2], чтоб контроллёр настроил свои регистры на добавочный модуль. Иначе ничего не выйдет, и могут заикаться оба слота.
Изображения
Тип файла: png 0056.png (29.9 Кб, 56 просмотров)
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 17.08.2017, 23:26   #19
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

..забыл вставить схему слота DDR
Изображения
Тип файла: png 0057.png (17.2 Кб, 84 просмотров)
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 18.08.2017, 08:21   #20
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от R71MT Посмотреть сообщение
..тогда как проц найдёт 'свой' байт? По моему в этом и фишка, чтоб указать раздельный столбец. Иначе-же одинаковых столбцов получится много. Этот момент что-то не ясный..
BA[1:0] это просто ещё дополнительные биты адреса поэтому с выбором нет никаких проблем. Вопрос в другом зачем нужны банки? Почему без них не обойтись?
Есть регенерация памяти и пока одна строка занята регенерацией КП меняет банк и читает другие данные. КП поддерживает прямой доступ к памяти поэтому одновременно вынужден обрабатывать несколько запросов, поэтому адреса в других банках найдутся.
Безымянный1.jpg
Подробнее команды расписаны, да хотя бы тут
http://www.farnell.com/datasheets/320565.pdf
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сегментная организация памяти ArmanPrestige Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 17.12.2013 03:13
страничная организация памяти Алексей_Warm Общие вопросы C/C++ 2 21.11.2012 14:56
Организация динамической памяти MrBlackD C++ Builder 1 19.10.2012 22:39
Организация памяти в защищенном режиме. BigBong Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 24.09.2011 11:58
Страничная организация памяти weak_smile Помощь студентам 2 24.12.2010 15:44