
2.5. Структура озу (ram).
В подавляющем большинстве современных ЭВМ ОЗУ строится на базе БИС динамической памяти DRAM (в отличие от СОЗУ и КЭШ, которые выполняются на статических элементах - SRAM), что объясняется их малыми размерами (на один ЗЭ требуется 1-3 транзистора, в то время как статический ЗЭ требует 4-6 транзисторов), малым энергопотреблением и, главное, дешевизной. Однако динамическая память из-за хранения информации на заряде конденсатора требует постоянной регенерации, которая по разным алгоритмам производится через каждые 8-64мс.
В зависимости от материнской платы могут использоваться различные БИС памяти, но непосредственно чипы памяти устанавливаются на материнскую плату ЭВМ только в моделях до 386SX. Вначале БИС памяти выпускались на 64кб (64х1), но уже к 87 году появились БИС на 256кб (256х1 и 64х4) при чуть больших размерах корпуса за счет дополнительных выводов, а к 90-му году - на 1Мб (недавно Samsung объявил о создании чипа на 256Мб - Айген,128). Корпуса у этих БИС делаются плоскими (так называемые DIP -dual in-line package) с двухрядным расположением выводов. Такая конструкция корпуса облегчает установку БИС в панельки на плате или печатный монтаж и обеспечивает хороший отвод тепла (рис.2.8).
В современных ЭВМ используется модульная организация памяти. БИС, предназначаемые для установки в модуле ОЗУ обычно изготавливаются в SOP-корпусах (small out-line package), имеющих укороченные изогнутые ножки и приспособленных для поверхностного монтажа. Модуль представляет собой плату (примерно 2х8 см) с разъемом вдоль длинной стороны. Эти модули вставлялись в слоты (гнезда разъемов) на материнской плате. В первых моделях использовались штырьковые однорядные разъемы (SIP - single in-line package), но т.к. они часто ломались и не обеспечивали надежный контакт, то перешли на модули SIMM (single in-line memory module), а затем на DIMM с ножевыми позолоченными печатными разъемами.
Модули имеют байтовую организацию (Борз, 68) плюс дополнительный разряд контроля четности на каждый информационный байт (этот разряд равен нулю, если сумма единиц в записанном числе четная, и равен единице в противном случае. Если при чтении вновь вычисленный контрольный разряд не совпадает с записанным, то фиксируется ошибка чтения).
Память в модульном исполнении несколько дороже, чем на БИСах, но повышается надежность и экономится место на материнской плате (там установлены не сами чипы памяти, а только гнезда разъемов, в которые вставляются модули). Увеличение объема ОЗУ достигается установкой дополнительных модулей.
30-контактные SIMM (длина примерно 89мм, односторонний краевой разъем) изготавливались на емкость 256кБ (256х9кб), 1МБ (1х9Мб) и 4МБ (4х9Мб) и имели 9 информационных разрядов (байт плюс бит контроля четности). Т.к. для адресации такой памяти требуется соответственно 18, 20 и 22 линии адреса, то у модулей просто не хватает ножек (занято информационной шиной и контролем четности, кроме того, требуется на питание и управление). Поэтому организация выборки по сравнению с рассмотренной нами схемой несколько изменена. Во-первых, полуадреса подаются на одну и ту же шину в два такта последовательно во времени (сначала старшие, затем младшие - мультиплексирование). Во-вторых, на формирователь ФА подается старший полуадрес и считывается в буфер вся i-тая линейка, а пришедший в следующем такте младший полуадрес выбирает j-й элемент уже из буфера. Учитывая, что в большинстве случаев в следующей исполняемой команде требуется информация из соседней ячейки, то первый такт (повторная подача старшего полуадреса) оказывается ненужным: требуемая информация уже находится в буфере и определяется младшим полуадресом. Этим достигается значительное ускорение работы памяти, что очень существенно, т.к. быстродействие динамических БИС существенно ниже быстродействия микропроцессоров. Кроме того, в 16-разрядных ПК эти модули устанавливаются попарно, а в 32-разрядных - кратно 4-м (для получения нужной длины слова).
На модулях смонтированы микросхемы памяти (8+1 однобитных или 2х4 бит +1бит для паритета - всего 3 микросхемы) в корпусах SOJ или TSOP с загнутыми ножками, облегчающими поверхностный монтаж. Архитектура модулей обеспечивает возможность по-байтового обращения.
72-контактные модули (108мм, односторонний краевой разъем, 4-х или 16-ти битные микросхемы) имеют либо 32 бита (без контроля четности) либо 36 битов (с побайтным контролем четности, который может собираться в отдельном 4-х битном чипе), т.е. обеспечивают запоминание машинного слова 32 - разрядных процессоров сразу в одной информационной ячейке. Однако, на практике здесь также используют мультиплексирование адресов с разделением памяти на 4 блока (Борз-67)
Т.к. они предназначены для высокоскоростных ПК, то требования к их быстродействию весьма серьезны: оно должно быть не менее 70нс, тогда микропроцессору не потребуется установка большого количества тактов ожидания (wait state), которые он должен пропустить перед очередным обращением к ОЗУ, чтобы память успела отреагировать. Например, если МПК работает на частоте 33МГц, что соответствует времени такта примерно 30нс, то при 70нс DIMM ему нужно будет простаивать 2-3 такта пока информация, считанная из памяти, установится на системной шине.
Микросхемы одного и того же объема могут иметь различный формат матрицы запоминающего массива (например матрица 1МБ может быть представлена 1Кх4К, 2Кх2К, 4Кх1К. Поскольку при регенерации должны перебираться все строки, то они обычно обозначаются 1К-Refresh, 2К-Refresh, 4К-Refresh (Гук308) и это должен учитывать контроллер регенерации памяти. Микросхемы с меньшим количеством столбцов потребляют меньшую мощность.
Модули DIMM имеют 168 или 184 контактные двусторонние разъемы и рассчитаны на емкость памяти 128, 256 и 512 МБ. По внутренней архитектуре они близки к модулям SIMM-72, ног имеют удвоенную разрядность: разрядность шины данных - 8 байт и рассчитаны на применение в компьютерах с 4-х и 8-и байтными шинами данных (Гук-300).
Для ускорения работы ПК тогда используется пакетный (страничный) обмен (о нем мы уже говорили), для которого характерно требование большего количества времени на считывание первого слова, чем на последующие (Пят - 105), т.к. требуется время на поиск и выборку из памяти строки данных. Так, при использовании стандартной динамической памяти FPM (Fast page mode) DRAM каждое обращение к памяти в этом режиме описывается формулой (5-7)-3-3-3, т.е. для обработки первого слова требуется 5 или 7 тактов (в течении которых 4 или 6 системная шина простаивает в ожидании), а для обработки следующих трех слов - по три такта (и по 2 такта простоя). Память типа EDO (Extended data output) DRAM позволяет уменьшить число циклов ожидания за счет введения регистра-защелки, запоминающего считанные данные на время до следующего срабатывания ФА, что позволяет их уверенно считывать, сокращая время активного состояния ФА и давая возможность ему подготовится к выборке следующей строки - реализуется своеобразный конвейер: еще не закончилась предыдущая операция считывания, а уже готовится следующая - (Гук269): 5-2-2-2.. Память типа BEDO (Burst EDO) DRAM содержит кроме регистра-защелки еще и внутренний счетчик столбцов матрицы ЗУ, что позволяет выставлять адрес столбца только в начале цикла. Это позволило обеспечить цикл чтения 5-1-1-1 для первого обращения и 1-1-1-1для последующих. Эти формулы характерны для тактовых частот до 60 Мгц.
Все указанные типы динамической памяти были асинхронными, т.е. работали независимо от тактовых импульсов. Поэтому часто возникала ситуация, когда память подготовила информацию, но ждет тактового импульса для ее передачи по шине. Для устранения этого разработана синхронная динамическая память (SDRAM - synchronous DRAM). Цикл чтения -записи осуществляется в несколько шагов (Ден-64):
На адресной шине выставляется старший полуадрес (адрес строки), а на командной шине - стробирующий сигнал строк RAS (Row address strobe) - рис. 2.6.
Микросхема
Выборка Выборка Чтение-запись
Запись в
памяти строки tСТР столбца tСТЛБ в буфер ячейки
RAS
памяти tЗП
Командная
шинаCAS
Адрес Адрес
Адресная
шина строки столбца
Данные
Шина
данных Новый
цикл
Рис. 2.6. Временная диаграмма цикла чтения -записи SDRAM памяти
Полуадрес переписывается во внутренний регистр микросхемы памяти и происходит считывание строки (на считывание tСТР нужно 2-3 такта)
На адресной шине выставляется второй полуадрес (адрес столбца), а на командной шине - строб CAS (Column address strobe) на считывание нужного слова из строки также требуется tСТЛБ=2-3 тактам.
Чтение или запись данных (данные выдаются из буферного регистра микросхемы в контроллер памяти или принимаются из контроллера в буферный регистр для последующей записи).
Снятие сигналов RAS и CAS.
Запись информации из буфера в ячейки памяти выбранной строки (2-3 такта).
SDRAM также способна работать в пакетном режиме и обмениваться блоками данных без циклов ожидания при времени доступа 10нс - на частоте шины до 100 МГц.
Время доступа и длительность первого цикла у всех рассмотренных видов памяти одинаковы, существенная разница наблюдается в последующих трех циклах. Однако, повышение частоты может привести к появлению тактов ожидания в середине передачи пакета из-за задержек в схемах окружения. Поэтому повышение частоты не дает выигрыша в быстродействии. Память ВEDO распространения не получила из-за отсутствия перспектив дальнейшего повышения быстродействия и рынок завоевала память SDRAM, обеспечивающей работу на частоте системной шины 133мгц. Дальнейшее повышение частоты системной шины потребовало увеличения производительности памяти и здесь пытаются развить память SDRAM (память DDR11) и разработать память на новом подходе - RDRAM.
Для еще большего ускорения работы памяти разработана RDRAM -память (Rambus DRAM) (Rambus DRAM), существенно отличающаяся от SDRAM. В модулях этой памяти (RIMM - 184 контакта) есть два последовательно-параллельных канала (по 34 линии - из них 3 линии -шина строк, 5 бит -шина столбцов, (2 байта + 2 бита) - шины данных), работающих независимо на частоте 400мгц (пропускная способность канала 800Мбит/с (Гук277). На каждом канале может быть до 32 микросхем памяти, каждая из которых имеет всего 16-битную шину данных, что существенно упрощает логику модуля. Это и небольшое количество линий интерфейса позволили применить сверхбыстродействующие схемы и значительно ускорить работу. Эта память рассчитана на работу с высокоскоростными микропроцессорами с гигагерцовыми тактовыми частотами.
Банк памяти набирается из модулей DRAM, количество которых обеспечивает требуемую разрядность (для машин Р5-Р6 - это пара модулей SIMM-72 или один модуль DIMM. При этом все адресные входы микросхем в модуле соединяются параллельно. Каждый банк выбирается своим сигналом RAS; линии CAS должны быть индивидуальны для каждого байта, чтобы обеспечить возможность записи в каждый байт банка. Увеличению числа слотов для модулей памяти на материнской плате препятствует ограниченная нагрузочная способность памяти: каждый слот (тем более с модулем) вносит паразитную емкость и индуктивность, ограничивающие быстродействие шины. Повышение тактовой частоты технически сложно осуществить из-за большого числа проводников, хотя есть жесткие правила по их разводке. Так модуль DIMM использует 96 сигнальных цепей (32 адресных и управляющих линий, 64 (а с контрольными 72 или 80) линии данных и др. - Гук306). На высоких частотах приходится учитывать задержки сигналов в проводниках и, что более неприятно - неодинаковость (перекос, skew) этих задержек.
Для увеличения производительности используют чередование банков: пока один банк выдает информацию, второй подготавливается, но это усложняет контроллер памяти и увеличивает число требуемых линий управления в интерфейсе. В синхронной памяти чередование банков осуществляется внутри микросхем и не требует дополнительных интерфейсных сигналов.