Вернутся на главную

Отображение физических DRAM-адресов на логические


Отображение физических DRAM-адресов на логические на нашем сайте

Статьи
Статьи для студентов
Статьи для учеников
Научные статьи
Образовательные статьи Статьи для учителей
Домашние задания
Домашние задания для школьников
Домашние задания с решениями Задания с решениями
Задания для студентов
Методички
Методические пособия
Методички для студентов
Методички для преподавателей
Новые учебные работы
Учебные работы
Доклады
Студенческие доклады
Научные доклады
Школьные доклады
Рефераты
Рефератывные работы
Школьные рефераты
Доклады учителей
Учебные документы
Разные образовательные материалы Разные научные материалы
Разные познавательные материалы
Шпаргалки
Шпаргалки для студентов
Шпаргалки для учеников
Другое

Агент транзакций(transaction combiner agent — ХСА) извлекает содержимое очередей и преобразует их в командные пакеты, которые передаются транс­феру данных для отправки в процессор. Если же все очереди пусты, процес­сору передается команда nop.

Планировщик запросов памяти(Memory Request Organizer — MRO) принимает заказы на чтение/запись памяти сразу от трех устройств: контроллера шины, шины PCIи порта AGP и стремится обслужить каждого из своих клиентов максимально эффективно, что совсем не просто (память-то одна!).

Арбитр очереди памяти(Memory Queue Arbiter — MQA) помещает всех кли­ентов в кольцевую очередь (round-robin — RBN) и обрабатывает по одной транзакции за такт, в дополнение к этому, преобразуя физический адрес ячейки в тройку чисел: банк DRAM,/HOMep строки и колонки. Обработан­ные транзакции помещаются в одиу из нескольких очередей. В чипсете AMD 750 их пять — четыре очереди по четыре элемента на чтение (MRQ0— MRQ3) и одна на шесть элементов (MWQ) — на запись. В данном случае под "чтением" имеется в виду чтение из памяти, а под "записью", соответст­венно, запись в память.

Каждая из очередей чтения хранит запросы, предназначенные исключи­тельно для "своего" банка памяти, благодаря чему при циклической выборке из очередей (этим занимается агент RBN) регенерация банков выполняется параллельно с обработкой других запросов.

Контроллер памяти(Memory Controller — МСТ) отвечает за физическую под­держку модулей оперативной памяти, установленных на компьютере (в чип­сете AMD 750 этим занимается SDRAM Memory Controller — SMC, более поздние чипсеты умеют работать с DDR и Rambus-памятью). Он же отвеча­ет за инициализацию, регенерацию микросхем памяти и ее конфигурирова­ние — установку задержек RAS to CAS Delay, CAS Delay, RAS precharge, вы­бор рабочей тактовой частоты и др.

Арбитр запросов к памяти(Memory Request Arbiter - MRA) принимает запросы на чтение/запись памяти, поступающие от планировщика запросов памяти MRO и порта AGP, и передаёт их в контроллер SMC. Передача одного запроса занимает один такт.

Данные, записываемые в память, извлекаются из очереди SRQ контроллера системной шины, а данные, читаемые из памяти, отправляются в очередь MWQ, откуда они впоследствии передаются процессору.

С точки зрения процессора, оперативная память представляется однород­ным массивом данных, доступ к ячейкам которого осуществляется посред­ством 32-разрядных указателей. В то же время адресное пространство физи­ческой оперативной памяти крайне неоднородно и делится на банки, адреса страниц и номера столбцов (а также номера модулей памяти, если их уста­новлено более одного). Согласованием интерфейсов оперативной памяти и процессора занимается чипсет, а сам процесс такого согласования называет­ся трансляцией (отображением) физических DRAM-адресов на логические процессорные адреса.

Конкретная схема трансляции зависит и от типа установленной памяти, и от конструктивных особенностей чипсета. Программист полностью абстра­гирован от деталей технической реализации всей этой кухни и лишен воз­можности "потрогать" физическую оперативную память руками. А, собст­венно, зачем это? Какая разница в какой строке и в каком столбце находится ячейка, расположенная по такому-то процессорному адресу? Дос­таточно лишь знать, что эта ячейка существует — вот и все. Что ж, абстра­гирование от аппаратуры — действительно великая вещь и отличный способ заставить программу работать на любом оборудовании, но насколько эффек­тивно она будет работать?

В разд. "Оптимизация работы с памятью" этой главы показано, что обеспе­чить эффективную обработку больших массивов данных без учета архитек­турных особенностей DRAM — невозможно. Как минимум мы должны иметь представление, по какому именно физическому адресу происходит чтение/запись ячеек памяти.

К счастью, схема трансляции адресов в подавляющем большинстве случаев практически идентична (рис. 2.12). Младшие биты логического адреса пред­ставляют собой смещение ячейки относительно начала пакетного цикла об­мена и никогда не передаются на шину. В зависимости от модели процессо­ра длина пакетного цикла обмена колеблется от 32 байт (Кб, Р-Н, P-III) до 64 байт (AMD Athlon) и даже до 128 байт (Р-4). Соответственно, количество битов, отводимых под смещение внутри пакета, различно и составляет 4, 5 и 6 битов на K6/P-II/P-III, Athlon и Р-4

Типовая схема трансляция процессорных адресов в физические





Название статьи Отображение физических DRAM-адресов на логические