HAI-0481 (551700), страница 2
Текст из файла (страница 2)
Так работают практически все типы микросхем оперативной памяти - от устаревших FPM DRAM до перспективных Rambus DRAM. Все остальные отличия между ними - уже технологические «довески», позволяющие выжать из обычных микросхем дополнительное быстродействие.
Эволюция микросхем памяти.
Эволюция микросхем ОЗУ вплотную связана с эволюцией персональных компьютеров. Для успеха настольных компьютеров требовались миниатюрные чипы ОЗУ. По мере увеличения ёмкости памяти цена скачкообразно возрастала, но потом постоянно уменьшалась по мере отработки технологии и роста объёмов производства.
Первые PC реализовывались на стандартных RAM-чипах по 16 Кбит. Каждому биту соответствовал свой собственный адрес. Где-то около года после представления XT появилось ОЗУ с большими возможностями и более эффективное с точки зрения его цены. Хотя новые микросхемы могли вмещать по 64 Кбит, она были дешевле чем 4 по 16 Кбит. Системная плата PC была создана с учётом использования новых микросхем памяти. Через несколько лет 64 К битные чипы стали настолько широко распространены, что стали дешевле чем 16 К битные микросхемы. К 1984 году был сделан ещё один шаг по увеличению объёма памяти в одном корпусе - появились 256 - К битные микросхемы. И RAM чипы этого номинала были установлены на первых AT.
А сегодня микросхемы в 16 Мбит стали обычным явлением. PC имел довольно простую архитектуру памяти, по крайней мере, если на неё смотреть сейчас с высоты последних достижений компьютерной индустрии. Память PC была представлена одним блоком, в котором каждый байт был доступен по указанию его адреса. Микросхемы памяти были разбиты на 9 банков, использующих в ранних PC 16-Кбитные, а затем и 64-Кбитные микросхемы. Восемь микросхем выделяли по одному биту для организации каждого байта памяти, девятая микросхема использовалась в качестве контрольного бита чётности. Когда микропроцессор 80286 стали использовать в AT и их аналогах, возникла проблема с организацией архитектуры памяти. Обычные микросхемы памяти не могли работать в таком быстром темпе, в котором работал микропроцессор. Поэтому пришлось использовать статус ожидания, в случае когда процессор требовал информацию из памяти, то есть микропроцессору приходилось зависать на один-два такта, что давало возможность памяти обработать запрос.
Когда - то всё было просто: частота центральных процессоров не превышала 10 МГц, что позволяло для системы ОЗУ применять микросхемы с временем доступа 100 нс., а то и больше. Кроме того, операционные системы и прикладные программы были нетребовательны к памяти: все они отлично работали с объёмом ОЗУ до 640 Кбайт.
Естественно, что тогда особого внимания объёму память никто не уделял. Даже при работе с оперативной памятью используется обычная системная шина PS - bus или ISA. Проблемы возникли после появления процессоров линии 80386: тактовая частота последних составляла от 16 до 33 (а позднее 40) МГц. Не сложно подсчитать, что при этом длина такта находится в диапазоне от 25 до 60 нс., что существенно меньше, чем у распространённых на тот момент микросхем DRAM. Новые прикладные программы постоянно требовали всё большего объёма ОЗУ, что повышало требования к скорости обмена с памятью. В сложившейся ситуации память стала одним из важнейших факторов, влияющих на повышение быстродействия компьютеров. Путём введения отдельной шины памяти удалось лишь немного увеличить быстродействие, т.к. тактовая частота ISA до сих пор фиксирована на 8 МГц. К тому же отдельная шина была 32-разрядной как новые процессоры. После этого появились сложности с быстродействием самих микросхем. Переход на чисто статическое ОЗУ был не выгоден: цена готового компьютера возросла бы на порядок, а то и более.
Именно тогда в РС стали активно применять кэш-память, сначала одноуровневую, а затем (после появления процессора j486)- двухуровневую. Впрочем, это не могло значительно улучшить ситуацию: нужно было увеличить быстродействие всего объёма оперативной памяти и в то же время сохранить старую элементарную базу. Изменение ситуации коренным образом было невозможно: несмотря на все попытки даже сейчас полный цикл доступа к случайной ячейки ОЗУ составляет не менее 50 нс. Разработчики поставили задачу: ускорить по крайней мере наиболее часто встречающиеся операции. Как показывает практика, чаще всего доступ к ячейкам памяти происходит не случайным образом, а последовательно.
Страничный режим, расслоение банков
Ещё одна разновидность архитектуры оперативной памяти компьютера - это её разбивка на отдельные секции. В современных процессорах, например, такая операция специально оптимизирована: для считывания нескольких подряд идущих слов памяти достаточно передать адрес первого, а не всех требуемых слов. Соответственно уменьшается число передач данных по шине, к тому же, чем больше слов пересылается за один раз (так называемый пакетный режим), тем больше выигрыш. Сделано это в первую очередь для ускорения обменов «память - кэш». Для ускорения работы памяти в пакетном режиме были разработаны различные «хитрые» способы хранения информации: страничный режим, расслоение банков, быстрый страничный режим (FPM) и т. д.
Большая скорость доступа к ограниченным областям памяти является особенностью некоторых специфических микросхем, которые позволяют некоторому объёму, но не всей памяти, быть считанному без цикла ожидания. Этот подход требует специальных RAM микросхем, которые делят свои адреса по страницам. Эта технология получила название режима страничного доступа. Эти специальные микросхемы обеспечивают очень быстрый доступ в одном из двух направлений их организаций. Если требуется чтение или запись информации, хранящейся на определённой странице памяти, и предыдущая команда по работе с памятью использовала информацию с той же страницы, цикла ожидания не требуется. Однако при переходе с одной страницы на другую циклы ожидания неизбежны
Следующая интересная технология, названная interleavid memory, очень похожа на ОЗУ страничного режима. Она существенно повышает скорость обращения к памяти, но не имеет ограничений по страничной разбивке. При использовании этой технологии вся оперативная память разбивается на два или большее число банков. Последовательность битов хранится в разных банках, поэтому микропроцессор обращается то к одному, то к другому банку при чтении этой последовательности. Во время обращения к одному банку, другой реализует цикл обновления, и поэтому процессору не приходится ждать. И только, если микропроцессору приходится читать несмежные биты, статус ожидания неминуем, но вероятность его появления уменьшается.
Наиболее типовая реализация этой технологии представляется разбивкой оперативной памяти на два банка, А следовательно, вероятность возникновения ожидания - 50%..Четырёхбанковая организация уменьшает эту вероятность до 25%.
Так как данная технология не требует применения специальных микросхем памяти, она является наиболее удобной для повышения скорости системы. Кроме того она может совмещаться с ОЗУ страничного режима, что ещё больше увеличивает оперативность.
Память типа FPM DRAM использовалась долгие годы, а банки оказались настолько удачным решением, что используются в современной памяти по умолчанию, что оговорено в стандарте (например так сделано в SDRAM ).Всё это позволяло увеличивать быстродействие на несколько процентов, однако скорость работы нужно было повысить в несколько раз.
Ситуация усугубилась после появления процессора Pentium. Применение 64-разрядной шины памяти, работающей на частоте 66 МГц, повышало быстродействие обменов с памятью в четыре раза, по сравнению с наиболее часто используемой в компьютерах предыдущего поколения 32-рзрядной шиной на частоте 33-МГц. Однако для этого нужна была такая малость, как увеличение быстродействия самих модулей ОЗУ по меньшей мере в те же четыре раза.
Появление памяти типа EDO, являющейся дальнейшим усовершенствованием FPM, увеличило скорость работы всего лишь в полтора раза. Однако этого было недостаточно. Разработка более быстрого стандарта BEDO так и не была завершена. Память типа EDO сегодня достаточно активно применяется в компьютерах на базе процессоров семейства Pentium и даже временами продаётся в новых системах. Тем не менее, она считается безнадёжно устаревшей. Ведь кроме низкой на сегодняшний день скорости работы, для всех упомянутых типов оперативной памяти существует и такая проблема как их не способность работать на частотах выше 66 МГц. Точнее, их можно заставить работать на более высокой частоте, но лишь увеличивая циклы задержки. Проблема эта носит принципиальный характер из-за деталей реализации их асинхронной электрической схемы. А внешняя частота центральных процессоров (и, следовательно, частота системных плат ) давно перешла этот барьер. Первой официально использующей частоту 75 МГц была фирма Cyrix, ныне же процессоры Intel и AMD работают на внешней частоте 100МГц.
SDRAM : день сегодняшний
Большинство проблем, связанных с низким быстродействием подсистемы оперативной памяти, позволяет решить память SDRAM. Первоначально разработанная для видеокарт ( как замена дорогой двухпроводной VRAM ), она оказалась отличным решением и для высокопроизводительных персональных компьютеров. С одной стороны, высокое быстродействие модулей памяти SDRAM и способность работать на высоких частотах наконец-то дали производителям компьютеров систему ОЗУ, удовлетворяющую сегодняшним требованиям к быстродействию. С другой стороны, использование всё той же элементной базы позволило достичь всего этого без повышения цены на готовые изделия.
Итак, в основе SDRAM лежат всё те же микросхемы стандартной DRAM. Каким же образом достигается увеличение быстродействия? Основных особенностей, по сравнению с классической памятью, три: чередование, пакетно - конвейерный режим и синхронизация работы с центральным процессором.
Чередование или расслоение банков достаточно известный способ работы. Сущность его в следующем. Если два последовательных обращения к памяти происходят к одним и тем же микросхемам, то второе запрошенное слово (или двойное слово - особой разницы здесь нет) будет получено только через время, равное полному циклу памяти. Связано это с довольно многими факторами, следующими из схемотехники DRAM. При обычном однобанковом устройстве модуля памяти, каждое последующее слово можно получать лишь через 50 нс. после предыдущего, а то и реже. Если разбить память на отдельные области (банки), то при последовательном доступе одно слово будет выдаваться первым банком, а следующим банком - второе и т. д. К тому моменту, когда снова нужно будет обратиться к первому банку, пройдет полный цикл и он будет готов выдать данные без задержки. Теоретически, при достаточно быстрой работе шины ускорение работы прямо пропорционально числу банков памяти. На практике это не достижимо: существуют накладные расходы, кроме того, программа может обращаться к памяти не последовательно, а к произвольным ячейкам, что легко сводит все преимущества расслоения на нет. Однако, в большинстве случаев деление на банки работает.
В модулях SDRAM используются четыре банка. Пакетный режим работы памяти сходен с алгоритмами в кэш - памяти. Суть его в том, что при обращении к ячейке с каким либо адресом, автоматически генерируется пакет данных, включающих как эту, так и несколько последующих ячеек. В результате при обращении к ним, память сразу же, без задержек, готова выдать требующуюся информацию. Естественно, что пакетно - конвейерный режим повышает эффективность расслоения банков: практически всегда контроллер ОЗУ производит обращение по смежным адресам, не зависимо от желания процессора. Другой вопрос, что такое повышение эффективности работы может оказаться мнимым: считанные из памяти данные так и останутся невостребованными процессором.
Два этих типа ускорения работы применялись уже давно и в настоящее время стали стандартными. А вот еще одна отличительная особенность SDRAM по сравнению с другими типами оперативной памяти стала действительно новшеством. Речь идёт о синхронизации работы с центральным процессором.
Раньше системы памяти функционировала асинхронно, поэтому, запросив из нее какие - либо данные процессор был вынужден входить в холостой цикл для того, чтобы их дождаться, так как время ожидания было неизвестным, и это не позволяло заниматься другой работой. Благодаря синхронизации деятельность памяти и процессора, последний всегда «знает», через сколько тактов он получит необходимые данные. Если результат обращения к памяти нужен не сразу, ЦП может выполнить некоторые команды вместо того, чтобы просто прекращать работу. Соответственно, возрастает эффективность работы современных процессоров, что повышает производительность всей вычислительной системы.
У синхронности работы есть и другая отличительная особенность: теперь контроллер оперативной памяти всегда заранее «знает», через сколько тактов процессору понадобятся данные из памяти, что позволяет ему оптимизировать свою работу. Именно синхронную (по отношению к процессору) работу новой памяти обычно рассматривают как основную ее особенность, что заложено в названии: Synchronous DRAM.
Истинная скорость работы
Совокупное использование синхронизации работы, расслоения банков и пакетно-конвейерного режима способствует значительно (в несколько раз) ускорению работы системы памяти. Кроме того, SDRAM в состоянии работать без циклов задержки на частоте до 100 МГц, а наиболее качественные модули - до 125 МГц (на практике достигается до 133 МГц). Таким образом, время цикла памяти SDRAM составляет 7 - 10 нс. Существует мнение, что указываемое в спецификациях время цикла соответствует времени доступа. Считают, что у памяти SDRAM с частотой 100 МГц время доступа равно 10 нс., и она всегда работает в 5 раз быстрее, а у EDO DRAM - 50 нс. На самом деле это не так. И те и другие модули имеют полное время доступа 50 нс., то есть при обращении по случайному адресу данные будут получены именно через это время для обоих модулей памяти. При последовательном обращении второе слово модуль EDO выдаст через 20 нс., а модуль SDRAM - через 10 нс. Очевидно двукратное ускорение. При четырёх последовательных обращениях (наиболее распространённый случай) модулю EDO для выполнения запроса потребуется
50 + 3 х 20 = 110 нс., модулю SDRAM соответственно
50 + 3 х 10 = 80 нс.