![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]() Цитата:
Ну они там завернули. Вроде со всем разобрался. Короче выборка адреса происходит за две команды. Вначале выбираются столбцы потом колонки. колонки выбирают адрес в странице. У DDR3 увеличили размер страницы по сравнению с DDR2. А вот у DDR4 банки сформировали в группы и вывели отдельными адресами. Ещё у DDR3 разрешили использовать все 8 ранков на одной плашке памяти.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 15.08.2017 в 23:41. |
|
![]() |
![]() |
![]() |
#12 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
Pavia спасибо за ссылки и объяснения, хотя остаётся много вопросов..
У меня сейчас сформировалась такая картина.. Если ошибаюсь - прошу поправить. Ёмкость 1-гигабитной м\схемы памяти равна 1.073.741.824 бит. Чтобы получить кол-во строк и столбцов в двумерной матрице, извлекаем квадратный корень - равно 32768, а это по 15-бит для адресации строк и колонок. Делим матрицу на 4-логических банка по строкам - 8192 строк в одном банке. Одна ячейка памяти равна 8-бит, значит замыкаем каждые 8-столбцов матрицы, что приводит к слиянию их адресов. То есть общее кол-во адресуемых столбцов в матрице (32768/8=4096) и соответственно требует меньшее кол-во бит. В результате получаем 15-бит для адресации строк, и 11-бит для столбцов. Это 1 чип памяти: Код:
АДРЕСАЦИЯ СТРОК Вернёмся к банкам и строкам.. Проц запрашивает физический адрес ячейки, и его абсолютно не волнуют тонкости работы контроллёра памяти (MCT), который разделяет физический адрес на три составляющие: номер банка, номер строки и номер столбца. Поэтому рассмотрим связь физических адресов в банках, и расположения в них порядка бит. Как было сказано выше, в одном банке 8192-строк и 4096 адресуемых столбцов. У чипов до 1-Гигабит логических банков всего 4: Код:
Код:
Дешифратор адреса контроллёра памяти отбрасывает 2-старших бита, передавая их дешифратору банка. Оставшаяся часть 15-битного адреса и будет представлять из-себя логический номер строки А[12:0].
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#13 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
СОГЛАСОВАНИЕ НЕСКОЛЬКИХ ЧИПОВ. РАНКИ ПАМЯТИ
Значение(х8) в маркироке чипа имеет большой вес. Во-первых - это размер одной ячейки в битах, во-вторых - разрядность шины-данных чипа (инфа снимается именно с этих\восьми объединённых столбцов), в третьих - это делитель общего кол-ва колонок матрицы. Эту величину ещё называют 'слово памяти'. Кол-во адресуемых столбцов внутри одного чипа в 8-раз меньше кол-ва адресуемых строк. То есть: 32768-строки, и 4096-столбцов(х8). При этом логический банк разделяет матрицу только по строкам, не трогая столбцы. Разрядность шины-данных большинства м\схем всего 8-бит, а во внешней шине процессора - все 64-бита. Увеличение разрядности инфо-шины достигается путём параллельного соединения необходимого кол-ва м\схем памяти. Параллельно соединяются только адресные входы, и входы управления. При этом инфо-выводы всех микросхем соединяются последовательно, и образуют внешнюю шину-данных требуемой разрядности. Такое заполнение шины процессора, принято называть составлением физического банка - ранка памяти. Таким образом, чтобы собрать один 64-битный ранк, нужно объединить 16-чипов(x4), 4-чипа(x16), или самый распространённый вариант: 8-чипов(x8). Все чипы имеют одинаковую организацию, поэтому банки их сливаются в единое целое, расширяя адресное пространство за счёт столбцов. Код:
Код:
Дешифратор находится в контроллёре памяти и имеет 8 выходных линий CS# - Chip Select. Каждая линия идёт к своему чипу (например CS#2) и активирует его шину. Если сигнал(CS#) на чипе имеет уровень(1), то чип считается отключённым от инфо-шины, что лишает его возможности общения с внешним миром. Низкий уровень(0) подключает столбцы матрицы к усилителю уровня 'Sense Amplifier' и дальше - к выходному буферу чипа, позволяя процессору считывать или записывать в него информацию.
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#14 |
Участник клуба
Регистрация: 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-байта с чипа, которые копятся в выходном буфере, и передаются на внешнюю шину, которая так-же работает на своей частоте: Код:
Мультиплексоры (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, в станицу памяти. Код:
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#15 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
Именно так я себе это вкратце представляю..
Но современные модули с большими объёмами памяти уже не могут строиться по такой схеме. Если логических банков у чипа теперь 8, то для адресации нужно уже не 15, а минимум 16-бит (3-бита для банков). Это-же касается и самой матрицы, в которой получится больше строк. Ничего нового в сети не нашёл, поэтому и решил спросить здесь. Буду благодарен, если кто-нибудь прояснит эту картину, или подкинет более современную инфу. В даташитах на чипы нет ничего принципиально нового, и производители не спешат раскрывать все карты, ограничиваясь поверхностными данными.
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#16 |
Участник клуба
Регистрация: 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 соответственно: Код:
Нашедшего выход - затаптывают первым..
Последний раз редактировалось R71MT; 17.08.2017 в 15:04. |
![]() |
![]() |
![]() |
#17 | |||
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]() Цитата:
Что-то не найду где видел ранки в SDR(PC100). Суть в том что ранки памяти появляются в DDR2 в DDR1 их нету, а в SDR(PC100) это совсем другое. Для меня ранки это кучки чипов и ранк это как доп адрес только на плате. А у вас речь идёт о ширине данных или же выборе одного чипа в SDR - От чего в последствии отказались. Цитата:
https://cdn.hackaday.io/files/101194..._001%20SDR.pdf В последствие эти сигналы меняли назначение. Цитата:
Там потом ещё группы банков появляются.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 17.08.2017 в 21:24. |
|||
![]() |
![]() |
![]() |
#18 | |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
..тогда как проц найдёт 'свой' байт? По моему в этом и фишка, чтоб указать раздельный столбец. Иначе-же одинаковых столбцов получится много. Этот момент что-то не ясный..
Цитата:
Точно! Хотя контроллёр посылает все 8-линий, но используются только 4. Остальные - 'No connect'. Причём на каждый модуль приходят только 2 из них. Пины СВ[0:7] - 'Control Bit' для коррекции ошибок. --------------------- Я разбирался по схемам материнских плат, где все пины расписаны. Но повторюсь, что инфа устаревшая. На рисунках ниже я вот вырезал значимые участки с выхода из контроллёра (на схеме имеется ещё и второй\идентичный канал), и что приходит на сам модуль (ранк) памяти. На слоте памяти как-раз имеются пины SA[0:2], о которых вы упоминули. Конфиг указан для канала(А), ранк(0). Во-втором - S1 уже отсоединён от массы, и на него идёт лог\единица (подтянут к шине +5v). Кстати, недавно в соседней теме кто-то хотел припаять параллельно имеющемуся - ещё один слот, чтоб увеличить память. Помимо остальных пинов, ему как-раз и нужно было выставить соответствующим образом ключи конфига планки SA[0:2], чтоб контроллёр настроил свои регистры на добавочный модуль. Иначе ничего не выйдет, и могут заикаться оба слота.
Нашедшего выход - затаптывают первым..
|
|
![]() |
![]() |
![]() |
#19 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
..забыл вставить схему слота DDR
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#20 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
![]() Цитата:
Есть регенерация памяти и пока одна строка занята регенерацией КП меняет банк и читает другие данные. КП поддерживает прямой доступ к памяти поэтому одновременно вынужден обрабатывать несколько запросов, поэтому адреса в других банках найдутся. Безымянный1.jpg Подробнее команды расписаны, да хотя бы тут http://www.farnell.com/datasheets/320565.pdf
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сегментная организация памяти | 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 |