Лекция по теме ЗАПОМИНАЮЩИЕ УСТРОЙСТВА

  • doc
  • 01.05.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 168. Лекция по теме ЗАПОМИНАЮЩИЕ УСТРОЙСТВА.doc

 

 

 

2. ЗАПОМИНАЮЩИЕ УСТРОЙСТВА

 

2.1. НАЗНАЧЕНИЕ И КЛАССИФИКАЦИЯ.

 

            Памятью ЭВМ называется совокупность устройств служащих для запоминания, хранения и выдачи информации. При обращении к памяти производятся  операции записи и считывания (выборка). Память характеризуется емкостью и быстродействием - продолжительностью операций обращения к памяти или их числом в единицу времени. Часто считывание информации из ЗУ сопровождается ее разрушением (магнитная память) в связи с чем возникает необходимость ее регенерации, что увеличивает время обращения и, в принципе, замедляет ее работу.  В контроллерах и  в ЭВМ, имеющих перепрограммируемую постоянную память, время хранения информации в которой ограничено, также возникает необходимость  регенерации.

            По принципу действия различают ЗУ: полупроводниковые, магнитные с неподвижным  запоминающими элементами (ЗЭ), магнито-механические с движущимся магнитным носителем, оптические.

            По характеру обращения различают  память с произвольным обращением (возможность считывания и записи, RAM ) и память только для считывания ПЗУ, ППЗУ -  ROM.

            По способу организации доступа: память с произвольным доступом (это оперативная память),  с циклическим доступом - память на дисках и  с последовательным доступом - на магнитных лентах. Быстродействие ЗУ от первого типа к последнему  резко падает.

            Требование к емкости и быстродействию ЗУ являются противоречивыми: чем больше емкость, тем ниже быстродействие, поэтому память организуется по иерархической структуре.

            Обычно ЭВМ содержит (в порядке убывания быстродействия и увеличения емкости): сверхоперативную память (СОЗУ),  оперативную память (ОЗУ) и внешнюю память (ВЗУ) - рис.2.1.

            СОЗУ располагается непосредственно в микропроцессоре (или процессоре ЭВМ), имеет быстродействие, равное быстродействию процессора и выполняется на той же элементной базе. Обычно это регистровая память, емкость ее варьируется от нескольких десятков до нескольких сотен слов. СОЗУ хранит информацию, непосредственно нужную для ближайших операций. Кроме того, для согласования быстродействия процессора и системной шины, процессора и основной памяти используется КЭШ-память. Она может быть внутренняя и внешняя, свою КЭШ-память память могут иметь и некоторые внешние устройства, например, винчестер. За счет снижения частоты обращений к ОЗУ, необходимых только, если в КЭШе нет нужной информации, существенно повышается производительность ЭВМ.

            Оперативная память хранит данные, программы, промежуточные и конечные результаты обработки, необходимые для решения текущей задачи. Обычно это память полупроводниковая, динамическая; ее емкость в современных ПЭВМ - несколько мегабайт; цикл обращения несколько десятков нс.

            ВЗУ реализуется на магнитных дисках, лентах и оптических дисках; емкость -  десятки мегабайт- несколько Гбайт; время обращения порядка мкс. Здесь хранится информация, которая непосредственно процессором не используется.

            Иерархическая структура памяти позволяет не только эффективно использовать память по емкости и быстродействию, но и имитировать на реальном объеме памяти, значительно меньшем максимального, работу с максимальным объемом. Такой режим работы называется режимом виртуальной памяти (Пят106). Объем виртуальной памяти, теоретически доступной пользователю, определяется только разрядностью адресной части команды (при 32 битной адресной шине это - 232=4ГБ) и не существует в действительности. Обычно эта память представляется блоками (говорят имеет сегментно-страничную структуру; размер страницы в РС - 4кБ, т.е. при 4ГБ для нумерации страниц потребуется 12бит). Адрес виртуальной памяти состоит из двух частей: номера страницы (сегмента) - 20бит и смещения - 12бит. Виртуальная память частично размещается в блоках основной памяти, но большая ее часть находится во внешней памяти и по мере необходимости нужные страницы пересылаются операционной системой в основную память и обратно. Преобразование адресов основной памяти во внешнюю и наоборот осуществляется с помощью таблиц. Т.к. при этом потребуются таблицы с миллионом строк (если строка в 1Б, то такая таблица займет объем 4МБ, что недопустимо), то адрес делится не на две части (сегмент и смещение), а на три: каталог 10бит, таблица - 10бит и смещение - 12бит. В основной памяти хранятся только каталог (имеет служебный бит, указывающий на активность таблицы, т.е. присутствует она в ОП или нет) и активные таблицы страниц (имеют служебный бит, указывающий на активность страницы).

 

            2.2. ОРГАНИЗАЦИЯ И СТРУКТУРА ЗУ.

 

            ЗУ любого типа состоит из запоминающего массива ЗМ с элементами, хранящими информацию, и управляющих устройств, обеспечивающих поиск нужной информации в массиве, запись и считывание. Организация ЗУ зависит: от способов размещения информации и поиска ее. Выделяют три группы ЗУ:

 

 

 


                                                    Процессор

 

     внутренняя              аппаратура                    Внутр.КЭШ

         память                 процессора                    СОЗУ(РОН)

 

 

 


                                                  КЭШ 2 ур.

память канала

 
 

 


ОЗУ

                                

                             Ядро ЭВМ

          внешняя

            память                                ВЗУ (диски)                ВЗУ (ленты)

 

             Рис.2.1. Иерархия памяти в ЭВМ.

СОЗУ - сверхоперативное ЗУ; КЭШ  - промежуточная память ( см. Дополнительные и специальные памяти ЭВМ); Диски - внешняя память с прямым доступом ; Ленты -  внешняя память с последовательным доступом.

 

1. Адресная память. Поиск основан на использовании адреса, им обычно является номер ячеек в запоминающим массиве ЗМ, в которых искомое слово размещается.

2. Ассоциативная память. Поиск нужной информации производится не по адресу, а по ее содержанию (ассоциативному признаку), причем параллельно для всех ячеек ЗМ. Ассоциативный признак представляет собой код, содержащий либо нужное слово, либо его часть. При записи выявляются свободные ячейки и далее производится запись в одну из них.

3. Стековая память. Это безадресная память, ячейки ее ЗМ образуют одномерный массив, соседние ячейки которого используются для последовательной записи слов. Номер ближайшей свободной ячейки запоминается в указателях стека (счетчики). При записи очередного слова  номер автоматически изменяется, считывание происходит в обратном порядке, т.е. первым считывается последнее записываемое слово.

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

 

2.3. СТРУКТУРА АДРЕСНЫХ ЗАПОМИНАЮЩИХ УСТРОЙСТВ

 

            ЗМ адресной памяти имеет систему адресных и  разрядных линий (проводников), называемых линиями выборки. Адресные линии используются для выделения совокупности ЗЭ, которым устанавливается режим записи - считывания. Прочитанная информация передается по разрядным линиям. Количество линий выборки, связанных с одним запоминающим элементом, называется размерностью памяти. Обычно используется ЗУ с размерностями: 2D, 2.5D, 3D. ЗУ 2D - быстродействующие, но потребляет большие мощности, ЗУ 3D - сложны, поэтому используются промежуточные -  (комбинированные) ЗУ. На рис.2.3  приведен вариант упрощенной структуры микросхемы ЗУ типа 2D.

 

                                                                             ЗМ

 


 

 

 

  ФА

 

 

 
    ст. разряды              

       адреса                                  .

      r ... n                                     .

                                                   i

                                                   .

                                                   .

                                                   .

             

   Рг. считыв.

 
                                                                   ...         j     ...

 

     УУ

 

     Рг.

 записи               

 

 

            КРА   

 
    обр                                                                                                                   к ШД

   сч/зп

 


                                                              0 мл. разряды  r

                                                                     адреса

 Рис.2.3. Структура адресного ОЗУ.

РГ - регистр (считывания, запоминания); ШД - шина данных; КРА - коммутатор разрядно-адресный; ФА - формирователь адреса.

 

            Обычно микросхема памяти хранит 1, 4 или 8бит (информационных разрядов) запоминаемой информации. Каждая микросхема имеет одно управляющие устройство и число матриц ЗМ равное числу бит хранимой информации. Код адреса разделяется на две равные части, каждая из которых дешифрируется (старшая - формирователем адреса ФА, младшая - коммутатором КРА).

            Если нет сигнала обращения к памяти, то на элементы ЗЭ с выходов ФА и КРА также не действует  никаких управляющих сигналов - режим хранения. При наличии сигналов обращения и, например, чтения дешифратор  ФА  возбуждает соответствующую линию i, и сигналы состояния связанных с ней элементов ЗЭ подаются на КРА. КРА мультиплексирует (переключает) их, но на выход подается только информация с того элемента ЗЭ, который находится на  линии j, определяемой второй частью адреса, т.е. информация может быть считана только с элемента находящегося на пересечении i и j. Когда коммутатор  КРА, опрашивая последовательно все вертикальные линии, дойдет до j-ой, информация с элемента (i,j) будет передана в регистр считывания и далее на шину данных.

            При записи  сигнал на линии i подготавливает связанную с ней линейку ЗЭ к записи, не изменяя хранимую в них информацию. Далее  0 или 1 с регистра записи передается коммутатором КРА на элемент i, j,  устанавливая его в соответствующее состояние.

           

2.4.ТИПЫ ЗАПОМИНАЮЩИХ ЭЛЕМЕНТОВ

 

·      Статические запоминающие элементы

            Пример простейшего статического ЗЭ приведен на рис.2.4. ЗЭ представляет собой триггер на биполярных многоэмиттерных транзисторах и предназначен для использования в ЗУ 2D.

 

                             +Е

 

 

 

 

 

 

 


 Uоп      2      Т1                           Т2       2 Uj

 

            1                                                1

                                       Ui

 

Рис.2.4. Статический запоминающий элемент

а) Режим хранения:   Uj = Uоп; Ui< Uоп. В этом режиме вторые эмиттеры обоих триодов заперты, т.к. напряжение на них больше, чем на первых.  Схема находится в одном из устойчивых состояний: открыт либо триод Т1 (0), либо триод Т2 (1). Открытое состояние триодов поддерживается током через эмиттеры 1.

б) Режим считывания:  Ui >Uоп;   Uj =Uоп. С  дешифратора ФА (рис.2.3) в i-ю линию подается высокий потенциал  и открытые триоды ЗЭ этой линии переходят на питание от эмиттеров 2,  когда коммутатор КРА доходит до j-ой  линии  сигнал со второго эмиттера триода Т2 элемента (i,j) подается на регистр считывания.

в) Режим записи:  Ui>Uоп;  Uj>Uоп. При таких напряжениях на эмиттерах запоминающего элемента триод Т2 принудительно закрывается, т.е. в ЗЭ будет записан 0; для записи единицы необходимо подать Uj<Uоп  в этом случае триод Т2 будет принудительно открыт.

            Такой элемент обеспечивает время выборки 30 -40 нс и  потребления 0.5 - 1.5 мВт/бит.

 

·      Динамические запоминающие элементы

            Пример динамического ЗЭ для ОЗУ 2D приведен на рис.2.5. Динамические ЗЭ хранят информацию в виде заряда  на паразитной емкости Сп между затвором и подложкой триода Т3, отсюда положительное свойство динамического запоминающего устройства - малое энергопотребление. Если этот конденсатор заряжен, то записана 1, в противном случае 0. В режиме хранения энергия от источника питания не потребляется, однако вследствие разряда емкости током утечки необходимо регенерировать информацию, что и производится контроллером памяти каждую пару миллисекунд (операция рефлеш).

            Допустим, что заряженная емкость соответствует записи единицы, при этом триод Т3 будет находиться в открытом состоянии. При считывании предварительно через триод Т4 заряжается паразитная емкость j-ой линии Cj. На i-ую  линию с формирователя адреса ФА (рис.2.3) подается напряжение  промежуточного уровня, достаточное для отпирания Т2, но недостаточное для отпирания Т1. В результате, если хранилась единица, то емкость Cj разряжается через открытые Т2 и Т3 и на линии j будет нулевой потенциал, что  и фиксируется контроллером, как единица считываемой информации.

 

 

        i

 

           

 


             T1               T2

                                     T3                        Сj

       

    

                  Сп                                        R

                                               j       +   T4

Рис.2.5. Динамический ЗЭ.

            Если  емкость Сп не заряжена (хранение 0), Т3 закрыт, то при считывании емкость Сj остается заряженной. В результате контроллер фиксирует  ноль в считываемой информации.

            При записи на линию i формирователь подает высокое напряжение, отпирающее Т1, что приводит к подключению Сп через Т1 к линии j и заряду емкости.

            Современные запоминающие элементы динамической памяти могут реализовываться на одном транзисторе, поэтому обеспечивают высокую плотность упаковки информации.

           

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):

1.      На адресной шине выставляется старший полуадрес (адрес строки), а на командной шине - стробирующий сигнал строк RAS (Row address strobe) - рис. 2.6.

Микросхема       Выборка               Выборка       Чтение-запись             Запись в

памяти               строки  tСТР         столбца tСТЛБ    в буфер                       ячейки

             RAS                                                                                                   памяти  tЗП

 


Командная

шина                                CAS

                              Адрес                  Адрес

Адресная шина    строки                столбца

 


                                                                                     Данные

Шина данных                                                                                                                        Новый

                                                                                                                                                цикл

Рис. 2.6. Временная диаграмма цикла чтения -записи SDRAM памяти

 

2.      Полуадрес переписывается во внутренний регистр микросхемы памяти и происходит считывание строки (на считывание tСТР нужно 2-3 такта)

3.      На адресной шине выставляется второй полуадрес (адрес столбца), а на командной шине - строб CAS (Column address strobe) на считывание нужного слова из строки также требуется  tСТЛБ=2-3 тактам.

4.      Чтение или запись данных (данные выдаются из буферного регистра микросхемы в контроллер памяти или принимаются из контроллера в буферный регистр для последующей  записи).

5.      Снятие сигналов RAS и CAS.

6.       Запись информации из буфера в ячейки памяти выбранной строки  (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) этих задержек.

            Для увеличения производительности используют чередование банков: пока один банк выдает информацию, второй подготавливается, но это усложняет контроллер памяти и увеличивает число требуемых линий управления в интерфейсе. В синхронной памяти чередование банков осуществляется внутри микросхем и не требует дополнительных интерфейсных сигналов.

 

 

2.6. ПОСТОЯННЫЕ ЗАПОМИНАЮЩИЕ УСТРОЙСТВА

 

            ПЗУ предназначены для хранения постоянно используемых программ таких, как программы управления периферийными устройствами (драйверы), часто используемые рабочие программы, программы контроллеров, используемых в управлении и т.п.

            Выделяют два класса ПЗУ: ПЗУ, программируемые однократно (и записанную информацию невозможно изменить) - ROM, и перепрограммируемые ППЗУ (информация может быть стерта и ППЗУ перепрограммировано заново) PROM.

            Наиболее распространено ПЗУ с плавкими вставками (рис.2.9а). При программировании, если в данный разряд нужно записать единицу, триод открывается и коллекторный ток испаряет плавкую вставку. При считывании при подаче адреса на вход ПЗУ,  в этом разряде на шину j ничего не поступит. Вместо плавких вставок используют два встречно включенных диода (рис.2.9б); при программировании  один из них пробивается в результате чего между шинами i  и j  возникает связь и возможна передача напряжения.

            Элементы  PROM  используют  обратимые явления обычно это заряд паразитной емкости полевых транзисторов (рис.2.9в). В  исходном состоянии заряд на плавающем затворе отсутствует (небольшой пороговый потенциал), поэтому триод легко управляется небольшим  напряжением на управляющем (селекторном) затворе: при считывании на селекторный затвор с дешифратора адреса по шине i подается отпирающие напряжение и на выходной шине j протекает ток.

 

           i                               i                                       i

                          +Е                                                             пл. затвор

                                                                                                                сток

                

      плавкая                                                                                      ис ток

      вставка

                                      j                                  j                                     +Е           j

                        а)                             б)                                         в)

 Рис.2.9. Запоминающие элементы ПЗУ.

 

            При программировании (запоминается ноль) на сток подается мощный импульс порядка 25В, возникает лавинный пробой и электроны инжектируются на плавающий затвор триода (через оксид за счет пробоя на изолированный затвор). В результате на плавающем затворе - отрицательный заряд, резко увеличивается пороговое напряжение. Теперь напряжения с дешифратора не достаточно для отпирания триода.

            Чтобы перепрограммировать ППЗУ,  необходимо разрядить плавающие затворы, это достигается увеличением токов утечки  электрическим импульсом или за счет ионизирующего излучения (в корпусе микросхемы делается окошко над кристаллом и  кристалл через него для стирания освещается ультрафиолетом).

В настоящее время в качестве ППЗУ используется электрически управляемая память - флеш-память (относится к классу памяти EEPROM - electrical erasable programmable read-only memory - электрически стираемая постоянная память). Каждая ячейка флеш-памяти состоит из одного униполярного (полевого) транзистора (Гук328). Ячейки организованы в матрицу, разрядность данных внешнего интерфейса - 8 тлт 16бит. Стертые (чистые) ячейки содержат 1 во всех битах и при программировании нужные ячейки обнуляются (в единичное состояние ячейки переводятся только при стирании). Чтение ничем не отличается от чтения любой другой памяти, но запись флеш-памяти имеет некоторые особенности (Куз2). Запись данных производится использованием специального программного алгоритма. Кроме того, флеш-память состоит из блоков размером, в зависимости от изготовителя, от 4 до 256 кбайт. Чтобы обновить информацию в каком-либо блоке, этот блок должен быть полностью стерт до того, как новые данные могут быть в него записаны или запрограммированы. Флеш-память имеет время доступа при чтении 35-200нс; стирание - до 1с; запись байта - 10мкс (Гук329).

            Учитывая этот фактор, флеш-память в режиме записи трудно рассматривать как устройство с произвольным доступом. В то же время операционные и файловые системы предполагают, что устройство массовой памяти имеет произвольный доступ как в режиме чтения, так и в режиме записи. В результате между операционной или файловой системой и устройствами флеш-памяти требуется дополнительный уровень программного обеспечения, называемый файловой системой для флеш-памяти (Flash File System, FFS). В настоящее время флеш-память усиленно развивается (уже идет третье поколение).

 

            2.7. ЛОГИЧЕСКАЯ ОРГАНИЗАЦИЯ ОПЕРАТИВНОЙ ПАМЯТИ  ПЭВМ

 

           

 Сразу оговоримся, что сегментная организация памяти возникла исторически, когда память стала большой (по тому времени - 1 МБ), а 16-разрядная адресная шина материнской платы могла адресовать только 64кБ. Когда появились 32-разрядные адресные шины, то следуя политике разработчиков: старшие модели должны поддерживать ПО младших, - сегментную организацию решено было сохранить, но с произвольными адресацией и размерами сегментов.

Как правило память ПЭВМ имеет байтовую организацию. Каждый байт имеет собственный адрес, если ЭВМ шестнадцатиразрядная, то каждое слово занимает два  байта памяти, при этом младший байт располагается по младшему адресу, который и является адресом слова (структурной единицы информации), а старший байт - по увеличенному на 1 (Пят-109). Чтение ведется по адресу слова, т.е. с адреса младшего байта, поэтому считываются байты в обратном порядке: (например, число 5А67 будет считано в виде 675А). При выдаче на дисплей это учитывается, а при снятии копии ОЗУ выдается  так как записано.

            Общий объем адресуемого пространства при ширине адресной шины  16 разрядов, что было у первых микропроцессоров (например, i8008), составляет 64КБ, что явно недостаточно. Для ее увеличения необходимо расширить адресную шину микропроцессоров, что и было сделано в более поздних разработках. Появившийся МП i8088, на котором были построены IBM PC XT, имел 20-разрядную ША, что позволяло адресовать уже 1МБ памяти. Однако, для обеспечения совместимости со старыми моделями, IBM использовала сегментирование адресного пространства на блоки (сегменты) по 64кБ. Адрес ячейки памяти в этом случае состоит из двух 16-ти разрядных слов, смещенных относительно друг друга на один шестнадцатеричный разряд (4 двоичных разряда). Одно из слов адреса образует сегментную часть (сегмент), определяющую расположение 64 килобайтного сегмента в памяти, другое слово - смещение (исполнительный адрес) - указывает адрес байта внутри сегмента. Физический адрес образуется сложением сегмента с учетом сдвига на 4 бита со смещением. Начало же сегмента (его базовый 20-битный адрес) однозначно определялся 16-битным номером сегмента , который преобразовывался в 20-битный дописыванием справа 4-х нулей.

            Стандартная запись будет имеет вид:   5А67:256В (5А67 - 20-битный (с учетом приписываемых нулей) адрес начала сегмента, 256В - 16-битное смещение внутри сегмента -Пят111).

            Сегментная часть располагается в 4-х специальных сегментных регистрах микропроцессора, каждый  из которых обычно  предназначен для некоторого блока сегментов, используемого с определенной целью. Например, в 286-х ПК регистры распределены следующим образом:

·      СS - зона программ (адресует сегменты, где хранятся программы);

·      DS - зона данных (адресует сегменты, где хранятся  основные данные);

·      ES - дополнительная зона данных;

·      SS - зона стеков.

            Большую часть времени сегментные регистры  остаются неизменными, в то время как смещение адреса изменяется постоянно.  Любое  изменение содержимого регистров  замедляет работу машин.

            Начиная с 80386 благодаря увеличению разрядности шины адреса и адресных регистров МП до 32 бит, стала возможной работа с “плоской памятью”, не разделяемой на сегменты, допускающей адресацию до 232=4ГБ. Чтобы сохранить преемственность и совместимость с программным обеспечением ранних моделей ввели два режима работы МП: реальный и защищенный. В реальном режиме дополнительные линии шины адреса блокируются и сохраняется сегментирование памяти по 64кБ; в защищенном режиме реализуется либо “плоская память”, либо сохраняется сегментирование, но с сегментами увеличенного объема (Пят-110). В этом случае сегментные регистры не суммируются со смещением, а содержат информацию о сегментах (подробнее это будет рассмотрено ниже в гл.4).

            Итак, в реальном режиме мегабайтное адресное - пространство ПЭВМ было разбито фирмой IBM на две части. Прежде всего, была выделена пользовательская зона  в 640кБ с адресами до А000:0000 (увеличение доступной памяти в 10 раз тогда казалось просто фантастическим - отсюда, вероятно, и появилась цифра 640кБ - Борз-71). Эта память в IBM-совместимых ПК обычно называется стандартной (conventional memory). Программы, написанные в DOS могут работать только в этой зоне памяти. Начальные адреса (около 2кБ - Айден,78) этой памяти заняты таблицей векторов прерываний с адресами сервисных программ (около 1кБ),  зоной данных BIOS (800кБ) и ядром ОС. (Напомню, что вектор прерываний - это адрес первой команды программы обработки прерываний, например запись в ОЗУ Е84Е9А01, соответствует фактическому адресу расположения программы 019А:4ЕЕ8).

            Оставшиеся 384кБ были зарезервированы для системного использования (там расположена видеопамять (128кБ) BIOS, ROM для дополнительных адаптеров и т.п. - 256кБ) - рис.2.10 (Айден 5.19, Борз.72). Эту область обычно называют “памятью в верхних адресах” (UMA - upper memory area). В видеопамять процессор помещает периодически данные, предназначенные для отображения, а монитор непрерывно считывает их для вывода на экран (Айден,79). Современные видеокарты поставляются со своей видеопамятью (для хранения изображений; от 0,5 до 4МБ), но соответствующие программы обращаются к ней через “окно” 64кБ в UMA, начинающееся с адресов А000:0000 или В000:0000. При этом в специальном индексном регистре указывается, на какие 64кБ видеопамяти отображаются данные в “окне” (как мы увидим ниже, так же работает дополнительная память).

            В последнем сегменте UMA располагается часть BIOS, в частности, информация о конфигурации ПК. Между видеобуфером и системным ROМ выделяется окно 64кБ для организации дополнительной памяти.

            Кстати, представление адреса сегментом и смещением позволяет адресовать при 20 адресных линиях до FFFF:000F ячеек памяти, что больше 1МБ на целых 64кБ. Этот блок адресного пространства назван НМА (high memory area) и интересен тем, что в отличие от остальной памяти, превышающей 1МБ, доступен в реальном режиме работы МП (Айден,82).

            Для дальнейшего увеличения объема памяти при ограничении на ширину адресной шины применяются следующие приемы:

·      банкирование памяти - разделение ее на блоки (банки), размеры которых не выходят за границы допустимого адресного пространства с переключением банков при необходимости специальными командами (это часто используется в микроконтроллерах);

·      отображения дополнительной памяти на зону в адресном пространстве (как это было в случае видеопамяти) - EMS (expanded memory specification) (Айд 80, Борз.72). Как уже говорилось в UMA выделено свободное окно 64кБ, поделенное на 4 страницы по 16кБ. На это окно с помощью специального драйвера  (EMM - expanded memory manager, например, EMM386.SYS или XMA2EMS.SYS -Пят-111) отображаются любые 16-килобайтные участки (страницы) из физической дополнительной памяти, устанавливаемой в ПК. Память может иметь емкость до 32МБ. При этом в IBM 386 и выше дополнительная память специально не вставляется, а эмулируется драйвером программно в расширенной памяти XMS. Естественно, это необходимо только при выполнении соответствующих программ, нуждающихся в дополнительной памяти. Драйверы входят в стандартные поставки MSDOS и Windows.

     Программа, нуждающаяся в дополнительной памяти, запрашивает выделение области, указав ее размер в 16-килобайтных страницах. В ответ ей сообщается диспетчером (драйвером EMS) номер дескриптора EMS (EMS handler), по которому программа в дальнейшем будет ссылаться на выделенную ей область, а диспетчер назначает отображение (т.е. производит переадресацию) этой выделенной страницы на выбранную физическую страницу в  области UMA (Гук67).После этого любые обращения процессора к физической странице, расположенной в пределах первого мегабайта, будут в действительности работать со страницей в дополнительной памяти без переключения в защищенный режим.

·      расширение адресной шины - XMS (eXtended memory specification) (Айден 83, Рош 75). Уже в 286-х РС МП, имея  24-разрядную ША и может адресовать 16МБ памяти, а 386-е - до 4ГБ. Область памяти выше 1МБ называется расширенной, но для ее использования МП должен перейти на работу в защищенном режиме (Борз-73). Т.е. у микропроцессоров вводится дополнительный режим: при работе в реальном режиме эмулируются младшие модели и блокируются все линии адреса, большие 20-й; в защищенном режиме эти линии становятся доступными В этом случае разделенная на страницы расширенная память отображается в HMA (см. выше) и становится доступной (однако ХМS используется только для хранения данных). Если 386/486 позволяют это сделать достаточно просто, то у 286 это сделать сложно.

            Т.к. MS DOS не поддерживает защищенный режим МП, то чтобы иметь доступ к этой памяти из программ DOS, нужен драйвер, с помощью которого данные будут пересылаться в расширенную память из стандартной и обратно (тогда она фактически будет являться дополнительной памятью). Наиболее популярен драйвер HIMEN.SYS, который способен работать с шиной адреса, имеющей до 32 линий (Пят-112). Спецификация XMS позволяет программам реального режима использовать под данные дополнительную память, непосредственно им не доступную, копируя в нее и из нее данные доступных областей первого мегабайта. Такие ОС, как OS/2, UNIX, Windows, поддерживающие защищенный режим, могут работать со всеми ресурсами расширенной памяти (Айден,478).

            Как видно, спецификации EMS и XMS отличаются по принципу действия: в EMS осуществляется отображение (страничная переадресация) памяти; в XMS - копирование блоков данных (Гук68). 

             

            2.8. ОРГАНИЗАЦИЯ КЭШ-ПАМЯТИ.

 

            Функционально КЭШ-память предназначена для согласования быстродействия МП и сравнительно медленной, но дешевой динамической ОЗУ (Cache - запас, склад). Т.е. с помощью технологии обработки, использующей КЭШ-память найден определенный компромисс между стоимостью и производительностью системы. Эта КЭШ получила название внешней или КЭШ второго уровня и имеет емкость 128 -512 кБ (чаще -256кБ). Обычно она выполняется на отдельных микросхемах.

            Появление МП, работающих на очень высоких частотах (100МГц и более), значительно (в несколько раз) превышающих системную частоту (486, Pentium, Over drive и др.) потребовало введения КЭШ-памяти внутрь МП для согласования внутренних устройств МП с шиной (внутренняя КЭШ или КЭШ первого уровня; 8-16кБ).

            Кэширование используется также для согласования работы дисков с системной шиной (КЭШ винчестера; 128-256кБ).

            Так как же работает эта память?

            Выделяют три основных архитектуры построения КЭШ-памяти, отличающиеся способом отображения ОЗУ на малый КЭШ. Во всех архитектурах используется понятие КЭШ-строки - некоторого минимального блока информации, которым КЭШ может обмениваться с ОЗУ. Существует КЭШ с прямым отображением, частично и полностью ассоциативным. Рассмотрим их подробнее.

            А). КЭШ прямого отображения. В этом случае адрес памяти полностью определяет используемую строку КЭШа. Строке соответствует несколько блоков из разных областей ОЗУ, а содержимое какого из них находится в КЭШе в данный момент определяется старшими разрядами адреса - тегом (tag - ярлычок, этикетка). Допустим процессор хочет прочитать 2 байта информации, хранимой в ОЗУ с адреса 0010001100. Для КЭШа он разбивается на три части. Младшие 3 разряда выбирают байт в КЭШ-строке (рис.2.11); средние 3 разряда определяют строку, а старшие - тег, который также хранится в строке. Если тег строки совпадает с тегом в адресе, то информация есть в КЭШе и может быть считана, в противном случае идет обращение к ОЗУ, т.к. необходимой информации в КЭШе нет и необходима замена строки. Этот вид КЭШ-памяти используется в 386-х с контроллером i82385).

            Достоинство - простота: требуется только одна операция сравнения для тегов; недостаток - не ясно. Что делать, если два часто используемых блока ОЗУ будут претендовать на одну и ту же строку.

            Б). Ассоциативная КЭШ-память.

            В этом случае любой блок ОЗУ может занимать любую строку КЭШа. Адрес делится на две части: тег и смещение (рис.2.12). Этим устраняется недостаток предыдущей структуры, но ассоциативная структура требует существенных аппаратных затрат из-за необходимости сравнения значений тегов для всех строк.

            В). Наборно-ассоциативная структура КЭШ-памяти.

            В Этом случае несколько строк (2-8) объединяются в наборы, определяемые средними битами адреса (рис.2.13). Сравнение тегов производится только для строк, входящих в набор. Этот вариант применяется в 486-х, Pentium и др. При этом у Pentium раздельные КЭШи для команд и данных, что позволяет легче оптимизировать их параметры.

            КЭШ-память работает под управлением собственного контроллера. Используются следующие методы записи:

            а. Метод сквозной записи (write through). Этот метод предполагает обязательную запись информации и в КЭШ и в основное ОЗУ (через КЭШ), т.е. на каждую операцию модификации информации требуется 2 операции записи, что замедляет работу ПК и увеличивает загрузку шины. Но зато в ОЗУ всегда правильная (последняя) информация. Для  сглаживания указанных недостатков используется буферизация.

            б. Метод обратной записи (write back). В этом случае, если в КЭШе есть адрес приемника информации, то запись производится только в КЭШ (если его нет, то информация записывается непосредственно в ОЗУ). Содержимое основной памяти обновляется только тогда, когда необходимо обновить строку КЭШа (при этом в ОЗУ записывается полный старый блок, а в КЭШ - требуемый блок из ОЗУ). Это намного уменьшает загрузку шины и используется у 486-х и Pentium.

            Каждый раз, когда МП требуется информация, отсутствующая в КЭШе, он вынужден обращаться к основному ОЗУ. Тогда возникает вопрос, какую строку КЭШа заменить. Заменяется та строка, которая используется наименее интенсивно, за чем следит контроллер КЭШа.

            В КЭШ-памяти используются БИС со статическими запоминающими элементами (15-20нс) на 8кБ (по 8бит) и 32кБ (по 8 бит) - Айден,73. БИС КЭШа занимают специальные панельки на материнской плате (на 386, например, их 9 штук - 8 для БИС, хранящих информацию и 1 для БИС, хранящих теги. Если используются 8-килобайтные БИС, то объем такого КЭШа будет 64кБ, а при применении 32кБ - 256кБ. При этом величина установленной памяти сообщается процессору соответствующей установкой переключателей.