Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по архитектуре ЭВМ.doc
Скачиваний:
303
Добавлен:
01.05.2014
Размер:
4.54 Mб
Скачать

Обнаружение и исправление ошибок

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

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

На рисунке показано, каким образом осуществляются обнаружение и исправ­ление ошибок. Перед записью М-разрядных данных в память производится их об­работка, обозначенная на схеме функцией «f», в результате которой формируется добавочный K-разрядный код. В память заносятся как данные, так и этот вычис­ленный код, то есть + K)-разрядная информация. При чтении информации по­вторно формируется K-разрядный код, который сравнивается с аналогичным ко­дом, считанным из ячейки. Сравнение приводит к одному из трех результатов:

  • Не обнаружено ни одной ошибки. Извлеченные из ячейки данные подаются на выход памяти.

  • Обнаружена ошибка, и она может быть исправлена. Биты данных и добавоч­ного кода подаются на схему коррекции. После исправления ошибки в М-раз­рядных данных они поступают на выход памяти.

  • Обнаружена ошибка, и она не может быть исправлена. Выдается сообщение о неисправимой ошибке.

 

Рис. 5.15. Общая схема обнаружения и исправления ошибок [200]

Коды, используемые для подобных операций, называют корректирующими ко­дами или кодами с исправлением ошибок..

Стековая память

Стековая память обеспечивает такой режим работы, когда информация записы­вается и считывается по принципу «последним записан — первым считан» (LIFO -Last In First Out). Память с подобной организацией широко применяется для запо­минания и восстановления содержимого регистров процессора (контекста) при об­работке подпрограмм и прерываний.

Ассоциативная память

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

память, адресуемая по содержанию (content addressable memory);

память, адресуемая по данным (data addressable memory);

память с па­раллельным поиском (parallel search memory);

каталоговая память (catalog memory); информационное ЗУ (information storage);

тегированная память (tag memory).

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

Кэш-память

Как уже отмечалось, в качестве элементной базы основной памяти в большинстве ВМ служат микросхемы динамических ОЗУ, на порядок уступающие по быстродействию центральному процессору. В результате процессор вынужден простаивать несколько тактовых периодов, пока информация из памяти установится на шине данных ВМ. Если ОП выполнить на быстрых микросхемах статической памяти, стоимость ВМ возрастет весьма существенно. Экономически приемлемо решение этой проблемы было предложено М. Уилксом в 1965 году в процессе разработки ВМ Atlas и заключается оно в использовании двухуровневой памяти, когда между ОП и процессором размещается небольшая, но быстродействующая буферная память. В процессе работы такой системы в буферную память копируются участки ОП, к которым производится обращение со стороны процессора. В общепринятой терминологии — производится отображение участков ОП на буферную память. Выигрыш достигается за счет ранее рассмотренного свойства локальности — если отобразить участок ОП в более быстродействующую буферную память и переадресовать на нее все обращения в пределах скопированного участка, можно добиться существенного повышения производительности ВМ. Уилкс называл рассматриваемую буферную память подчиненной (slave те­гу). Позже распространение получил термин кэш-память (от английского слова cache — убежище, тайник), поскольку такая память обычно скрыта от программиста в том смысле, что он не может ее адресовать и может даже вообще не знать о ее существовании. Впервые кэш-системы появились в машинах модели 85 семейства IBM 360.

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

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

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

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

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

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

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