Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Arkhitektura_EVM_uchebnoe_posobie

.pdf
Скачиваний:
54
Добавлен:
13.04.2015
Размер:
2 Mб
Скачать

скоростью и стоимостью. Главным преимуществом SRAM является более высокое быстродействие (примерно на порядок выше, чем у DRAM). Быстрая синхронная DRAM может работать со временем доступа к информации, равным времени одного тактового импульса процессора. Однако из-за малой емкости микросхем и высокой стоимости применение статической памяти, как правило, ограничено относительно небольшой по емкости кэш-памятью первого (L1), второго (L2) или третьего (L3) уровней. В то же время самые быстрые микросхемы динамической памяти на чтение первого байта пакета все еще требуют от пяти до десяти тактов процессора, что замедляет работу всей ЭВМ. Тем не менее, благодаря высокой плотности упаковки ЗЭ и низкой стоимости именно DRAM используется при построении основной памяти ЭВМ.

4.3.2. Постоянные запоминающие устройства

Термин «постоянные» в названии этого вида запоминающих устройств относится к их свойству хранить информацию при отсутствии питающего напряжения. Микросхемы ПЗУ также построены по принципу матричной структуры накопителя, где в узлах расположены перемычки в виде проводников, полупроводниковых диодов или транзисторов, одним концом подключенные к адресной линии, а другим – к разрядной линии считывания. В такой матрице наличие перемычки может означать 1, а ее отсутствие – 0.

Основным режимом работы ПЗУ является считывание информации, которое мало отличается от аналогичной операции в ОЗУ как по организации, так и подлительности. Именно это обстоятельство подчеркивает общепризнанное название постоянных ЗУ – ROM (Read-Only Memory – память только для чтения). В то же время запись в ПЗУ по сравнению с чтением обычно сложнее и связана с большими затратами времени и энергии. Занесение информации в ПЗУ называют программированием или «прошивкой». Последнее название напоминает о том, что первые ПЗУ выполнялись на базе магнитных сердечников, а данные в них заносились путем прошивки соответствующих сердечников проводниками считывания. Современные ПЗУ реализуются в виде полупроводниковых микросхем, которые по возможностям и способу программирования разделяют на

программируемые при изготовлении, однократно программируемые после изготовления, многократно программируемые.

ПЗУ, программируемые при изготовлении

Занесение информации в ПЗУ, программируемые при изготовлении, составляет часть производственного процесса и заключается в подключении или неподключении запоминающего элемента к разрядной линии считывания. В зависимости от этого из ЗЭ будет всегда извлекаться 1 или 0.

Однократно программируемые ПЗУ

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

100

Многократно программируемые ПЗУ

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

В этом классе постоянных запоминающих устройств выделяют несколько групп:

стираемые программируемые ПЗУ (EPROM – Erasable Programmable ROM);

электрически стираемые программируемые ПЗУ (EEPROM – Electrically Erasable Programmable ROM);

флэш-память.

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

Микросхемы EEPROM. Более привлекательным вариантом многократно программируемой памяти является электрически стираемая программируемая постоянная память EEPROM. Стирание и запись информации в эту память производятся побайтово, причем стирание – не отдельный процесс, а лишь этап, происходящий автоматически при записи. Операция записи занимает существенно больше времени, чем считывание – несколько сотен микросекунд на байт. В микросхеме используется тот же принцип хранения информации, что и

вEPROM. Программирование EPROM не требует специального программатора и реализуется средствами самой микросхемы.

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

вслучае с EEPROM, микросхемы флэш-памяти выпускаются в вариантах с последовательным и параллельным доступом.

Полностью содержимое флэш-памяти может быть очищено за одну или несколько секунд, что значительно быстрее, чем у EEPROM. Программирование байта занимает время порядка 10 мкс, а время доступа при чтении составляет 35-200 нс.

101

4.4.Кэш-память

4.4.1.Общие сведения о кэш-памяти

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

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

В общем виде, использование кэш-памяти поясним следующим образом. Когда ЦП пытается прочитать слово из основной памяти, сначала осуществляется поиск копии этого слова в кэше. Если такая копия существует, обращение к ОП не производится, а в ЦП передается слово, извлеченное из кэш-памяти. Данную ситуацию принято называть успешным обращением или попаданием (hit). При отсутствии слова в кэше, то есть при неуспешном обращении – промахе (miss), требуемое слово передается в ЦП из основной памяти, но одновременно из ОП в кэш-память пересылается блок данных, содержащий это слово.

ОП состоит из 2n адресуемых слов, где каждое слово имеет уникальный n- разрядный адрес. При взаимодействии с кэшем эта память рассматривается как М блоков фиксированной длины по К слов в каждом = 2n/К). Кэш-память состоит из С блоков аналогичного размера (блоки в кэш-памяти принято называть строками), причем их число значительно меньше числа блоков в основной памяти (С < М). При считывании слова из какого-либо блока ОП этот блок копируется в одну из строк кэша. Поскольку число блоков ОП больше числа строк, отдельная строка не может быть выделена постоянно одному и тому же блоку ОП. По этой причине каждой строке кэш-памяти соответствует тег (признак), содержащий сведения о том, копия какого блока ОП в данный момент хранится в данной строке. В качество тега используется часть адреса ОП.

102

На эффективность применения кэш-памяти в иерархической системе памяти влияет целый ряд моментов. К наиболее существенным из них можно отнести:

емкость кэш-памяти;

размер строки;

способ отображения основной памяти на кэш-память;

алгоритм замещения информации в заполненной кэш-памяти;

алгоритм согласования содержимого основной и кэш-памяти;

число уровней кэш-памяти.

4.4.2. Способы отображения оперативной памяти на кэш-память

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

Для облегчения понимания комплекса вопросов, возникающих при выборе способа отображения оперативной памяти на кэш-память, будем рассматривать систему, состоящую из основной памяти емкостью 256 Кслов, и кэш-памяти емкостью 2 Кслова. Для адресации каждого слова основной памяти необходим 18-разрядный адрес (218 = 256К). ОП разбивается на блоки по 16 слов в каждом, следовательно, ее удобно рассматривать как линейную последовательность из 16384 = 214 блоков. При такой организации 18-разрядный адрес можно условно разделить на две части: младшие 4 разряда определяют адрес слова в пределах блока, а старшие 14 – номер одного из 16 384 блоков. Эти старшие 14 разрядов

вдальнейшем будем называть адресом блока основной памяти. В свою очередь для адресации любого слов в кэш-памяти требуется 11-разрядный адрес (211 = 2К). Кэш-память разбита на строки такого же размера, что и в ОП (напомним,

что применительно к кэш-памяти вместо слова «блок» принято использовать термин «строка»), то есть содержит 128 = 27 строк. 11-разрядный адрес слова в кэш-памяти также можно представить состоящим из двух частей: адреса слова

встроке (4 младших разряда) и адреса строки кэш-памяти (7 старших разрядов).

Поскольку ЦП всегда обращается к ОП (кэш-память для ЦП невидима) и формирует для этого 18-разрядный адрес, необходим механизм преобразования такого адреса в 11-разрядный адрес слова в кэше. Так как расположение слов в блоке ОП и строке кэш-памяти идентично, для доступа к конкретному слову в блоке ОП или в строке кэш-памяти можно использовать младшие 4 разряда 18разрядного адреса. Следовательно, остается лишь задача преобразования 14разрядного адреса блока основной памяти в 7-разрядный адрес строки кэша.

Известные варианты отображения основной памяти на кэш можно свести к трем видам: прямое; полностью ассоциативное; частично-ассоциативное.

103

Прямое отображение

При прямом отображении адрес строки i кэш-памяти, на которую может быть отображен блок из ОП, однозначно определяется выражением: i =j mod т, где т – общее число строк в кэш-памяти. В нашем примере i = j mod 128, где i может принимать значения от 0 до 127, а адрес блока j – от 0 до 16 383. Иными словами, на строку кэша с номером i отображается каждый 128-й блок ОП, если отсчет начинать с блока, номер которого равен i. Это поясняется рис. 4.3, где основная память условно представлена в виде двухмерного массива блоков, в котором количество рядов равно числу строк в кэш-памяти, а в каждом ряду последовательно перечислены блоки, переадресуемые на одну и ту же строку кэш-памяти.

Рис. 4.3. Организация кэш-памяти с прямым отображением

При реализации такого отображения 14-разрядный адрес блока основной памяти условно разбивается на два поля. Логика кэш-памяти интерпретирует эти биты как 7-разрядный тег и 7-разрядное поле строки. Поле строки указывает на одну из 128 = 27 строк кэш-памяти, а именно на ту, куда может быть отображен блок с заданным адресом. В свою очередь поле тега определяет, какой именно изсписка блоков, закрепленных за данной строкой кэша, будет отображен. Когда блок фактически заносится в память данных кэша, в память тегов кэш-памяти необходимо записать тег этого блока, чтобы отличить его от других блоков, которые могут быть загружены в ту же строку кэша. Тегом служат семь старших разрядов адреса блока.

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

Полностью ассоциативное отображение

Полностью ассоциативное отображение позволяет преодолеть недоста-

ток прямого, разрешая загрузку любого блока ОП в любую строку кэш-памяти.

104

Логика управления кэш-памяти выделяет в адресе ОП два поля – тега и слова. Поле тега совпадает с адресом блока основной памяти. Для проверки наличия копии блока в кэш-памяти логика управления кэша должна одновременно проверить теги всех строк на совпадение с полем тега адреса. Этому требованию наилучшим образом отвечает ассоциативная память, то есть тег должен храниться в ассоциативной памяти тегов кэша. Логика работы такой кэш-памяти иллюстрируется рис. 4.4.

Рис. 4.4. Кэш-память с ассоциативным отображением

Ассоциативное отображение обеспечивает гибкость при выборе строки для вновь записываемого блока. Недостаток этого способа – необходимость использования дорогостоящей ассоциативной памяти.

Множественно-ассоциативное отображение

Множественно-ассоциативное отображение относится к группе методов частично-ассоциативного отображения. Оно является одним из возможных компромиссов, сочетающим достоинства прямого и ассоциативного способов отображения и, известной мере, свободным от их недостатков. Кэш-память (как тегов, так и данных) разбивается на v подмножеств (в дальнейшем будем называть такие подмножества модулями), каждое из которых содержит k строк (принято говорить, что модуль имеет k входов). Зависимость между модулем и блоками ОП такая же, как и при прямом отображении: на строки, входящие в модуль i, могут быть отображены только вполне определенные блоки основной памяти, в соответствии с соотношением i = j mod v, где j – адрес блока ОП. В то же время размещение блоков по строкам модуля – произвольное, и для поиска нужной строки в пределах модуля используется ассоциативный принцип.

На рис. 4.5 показан пример четырехвходовой кэш-памяти с множественноассоциативным отображением. Память данных кэш-памяти разбита на 32 модуля по 4 строки в каждом. Память тегов содержит 32 ячейки, в каждой из которых может храниться 4 значения тегов (по одному на каждую строку модуля). 14-разрядный адрес блока ОП представляется в виде двух полей: 9-разрядного поля тега и 5-разрядного поля номера модуля. Номер модуля однозначно ука-

105

зывает на один из модулей кэш-памяти. Он также позволяет определить номера тех блоков ОП, которые можно отображать на этот модуль. Такими являются блоки ОП, номера которых при делении на 25 дают в остатке число, совпадающее с номером данного модуля кэш-памяти. Так, блоки 0, 32, 64, 96 и т. д. основной памяти отображаются на модуль с номером 0; блоки 1, 33, 65, 97 и т. д.

– на модуль 1 и т.д. Любой из блоков в последовательности может быть загружен в любую из четырех строк соответствующего модуля.

Рис. 4.5. Кэш-память с множественно-ассоциативным отображением

При такой постановке роль тега выполняют 9 старших разрядов адреса блока ОП, в которых содержится порядковый номер блока в последовательности блок,. отображаемых на один и тот же модуль кэш-памяти. Например, блок 65 в последовательности блоков, отображаемых на модуль 1, имеет порядковый номер 2 (отсчет ведется от 0).

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

Следует отметить, что именно этот способ отображения наиболее широко распространен в современных микропроцессорах.

4.4.3. Одноуровневая и многоуровневая кэш-память

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

106

реже – 1 Мбайт, а реализуется она, как правило, в виде отдельной микросхемы, хотя в последнее время L2 часто размещает на одном кристалле с процессором, за счет чего сокращается длина связей и повышается быстродействие.

При доступе к памяти ЦП сначала обращается к кэш-памяти первого уровня. В случае промаха производится обращение к кэш-памяти второго уровня. Если информация отсутствует и в L2, выполняется обращение к ОП и соответствующий блок заносится сначала в L2, а затем и в L1. Благодаря такой процедуре часто запрашиваемая информация может быть быстро восстановлена из кэш-памяти второго уровня.

Потенциальная экономия за счет применения L2 зависит от вероятности попаданий как в L1, так и в L2. Ряд исследований показывает, что использование кэш памяти второго уровня существенно улучшает производительность.

Количество уровней кэш-памяти не ограничивается двумя. В некоторых ЭВМ уже можно встретить кэш-память третьего уровня (L3) и ведутся активные дискуссии о введении также и кэш-памяти четвертого уровня (L4). Характер взаимодействия очередного уровня с предшествующим аналогичен описанному для L1 и L2. Таким образом, можно говорить об иерархии кэш-памяти. Каждый последующий уровень характеризуется большей емкостью, меньшей стоимостью, но и меньшим быстродействием, хотя оно все же выше, чем у ЗУ основной памяти.

4.5.Внешняя память

4.5.1.Магнитные диски

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

Данные на диске организованы в виде набора концентрических окружностей, называемых дорожками (рис. 4.7). Каждая из них имеет ту же ширину, что и головка. Соседние дорожки разделены промежутками. Это предотвращает ошибки из-за смещения головки или из-за интерференции магнитных полей. Как правило, для упрощения электроники принимается, что на всех дорожках может храниться одинаковое количество информации. Таким образом, плотность записи увеличивается от внешних дорожек к внутренним.

107

Рис. 4.7. Порядок размещения информации на магнитном диске

Обмен информацией с МД осуществляется блоками. Размер блока обычно меньше емкости дорожки, и данные на дорожке хранятся в виде последовательных областей – секторов, разделенных между собой промежутками. Размер сектора равен минимальному размеру блока.

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

Накопители на жестких магнитных дисках (НЖМД), они же HDD (Hard Disk Drive), являются главными устройствами дисковой памяти большинства компьютеров. По случайному совпадению цифр в названии первой модели НЖМД называют «винчестером» (просто игра слов). Это неофициальное название закрепилось в качестве синонима терминов HDD и НЖМД.

Электромеханическая часть накопителя – пакет дисков со шпиндельным двигателем и блок головок с приводом – находится в гермоблоке. На корпусе гермоблока размещается и плата электроники накопителя.

Схема управления двигателем обеспечивает пуск и останов шпинделя, а также поддерживает требуемую скорость с довольно высокой точностью. Скорость вращения составляет 3600 об./мин, 4500, 5400 и 7200 об./мин. Самые быстрые винчестеры имеют скорость 10 000 и даже 15 000 об./мин. Линейная скорость головки относительно поверхности у винчестеров на 7200 об./мин достигает 140 км/ч. Чем выше скорость вращения, тем больше скорость обмена информацией с диском. Однако высокие скорости вращения порождают проблемы, связанные с балансировкой, тепловыделением, гироскопическим эффектом и аэродинамикой головок.

108

Пластины жестких дисков обычно изготавливают из алюминиевых сплавов, иногда из керамики или стекла. Рабочий магнитный слой основан на оксиде железа или оксиде хрома. Количество пластин у большинства современных винчестеров невелико (1-4). Емкость одной пластины винчестера формата 3,5" достигает 160 Гбайт.

Традиционно для записи и считывания информации используются магнитные головки, представляющие собой миниатюрные катушки индуктивности, намотанные на магнитном сердечнике с зазором. Для магнитных головок весьма критично расстояние от головки до поверхности магнитного слоя носителя. Непосредственный контакт головки с поверхностью допустим лишь при малых скоростях движения носителя (как в НГМД). Головки винчестеров поддерживаются на микроскопическом расстоянии от рабочей поверхности аэродинамической подъемной силой. Высота «полета» головки должна выдерживаться довольно строго, иначе магнитные поля головок будут «промахиваться» мимо рабочего слоя. Высота определяется тем положением, при котором подъемная сила, определяемая скоростью вращения, формой «крыла» головки и плотностью воздуха, уравновесит давление прижимающей головку пружины.

При «падении» головки на рабочую поверхность, которое произойдет, если диск остановится, можно повредить как головку, так и поверхность диска. На современных дисках чистота обработки поверхности в рабочей зоне настолько высока, что если головки лягут на неподвижную поверхность, то из-за эффекта молекулярного притяжения они просто прилипнут к ней. Чтобы этого не происходило, в нерабочем положении головки паркуются – отводятся в нерабочую зону, где допустимо их «приземление». Поверхность парковочной зоны имеет повышенную шероховатость, благодаря чему прилипания не происходит и диск может свободно набрать скорость до «взлета» головок.

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

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

Очевидно, что в гермоблоке воздух должен быть чистым – мелкая частичка, попавшая под головку, под которой пролетает носитель со скоростью несколько десятков километров в час, может поцарапать и головку, и диск.

109