ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.12.2021
Просмотров: 5260
Скачиваний: 8
Таким образом, для рассматриваемого случая значения контрольных разрядов
вычисляются по следующим правилам:
Проверим корректность такой схемы на примере. Пусть входной крд равен
00101011, где разряду Z), соответствует правая цифра. Контрольные разряды вы-
числяются следующим образом:
Предположим, что данные в бите 3 содержат ошибку и там вместо 0 находит-
ся 1. После пересчета контрольных разрядов имеем
Путем сложения по модулю двух результатов старой и новой проверок полу-
чим слово синдрома
(S
8
S
4
S
2
S
1
):
Результат 0110
2
(6
10
) означает, что в разряде 6, содержащем третий бит данных,
присутствует ошибка.
Описанный код называется
кодом с исправлением одиночной ошибки
(SEC —
Single Error Correcting). В большинстве микросхем памяти используется
код с ис-
правлением одиночной и обнаружением двойной ошибки (SECDED —
Single Error
Correcting, Double Error Detecting). Из табл. 5.2 видно, что, по сравнению с SEC,
такой код требует одного дополнительного контрольного разряда.
Коды с исправлением ошибок применяются в большинстве ВМ. Например, в ос-
новной памяти ВМ типа IBM ЗОхх используется 8-разрядный код SECDED на каж-
дые 64 бита данных, то есть емкость памяти примерно на 12% больше, чем имеет в
своем распоряжении пользователь. В ВМ типа VAX на каждые 32 разряда данных
добавлен 7-разрядный код SECDED, следовательно, избыточность составляет 22%.
Обнаружение и исправление ошибок 2 4 1
242 Глава 5. Память
Структура одного из вариантов построения устройства для обнаружения оди-
нарных и двойных ошибок с коррекцией одинарных ошибок приведена на рис. 5.17.
Схема предназначена для контроля 16-разрядных данных и размещается между
процессором и памятью. Из табл. 5.2 видно, что код SECDED предполагает шесть
дополнительных разрядов. Таким образом, из процессора и в процессор поступа-
ют 16-разрядные коды
(UD
15
...UD
0
),
а в память заносятся 22-разрядные данные
(M
21
... M
0
). Хранящаяся в ячейках памяти информация состоит из 16 бит инфор-
мации
(MD
15
...
MD
0
)
и 6 контрольных битов (
MP
5
...
MР
0
).
В последующем первые
буквы в обозначении разрядов могут быть опущены, при этом
D
будет означать
информационный разряд кода, а
Р —
контрольный разряд.
Система размещения основных и контрольных разрядов была рассмотрена ра-
нее, и для данной схемы она приведена в табл. 5.4.
Таблица 5.4.
Распределение информационных и контрольных разрядов в 22-разрядном слове
Особенность рассматриваемой схемы состоит в способе формирования конт-
рольного разряда
Р
5
.
Он вычисляется путем суммирования по модулю 2 всех ос-
тальных 21 разрядов кода (
D
1
5
...
D
0
и
МР
4
...
MР
0
).
По мнению авторов рассматри-
ваемой схемы, это облегчает фиксацию факта неисправимой двойной ошибки.
При чтении из памяти формирователем синдрома вычисляется синдром S
4
... S
0
:
Здесь
Р
4
...
Р
0
—
контрольные разряды, вычисленные генератором контрольных
разрядов на основании информационных битов считанного из памяти кода
(MD
15
...
MD
0
). MP
5
... MР
0
—
такие же контрольные разряды, полученные тем же генерато-
ром, но перед записью информации в память и хранившиеся там вместе с основ-
Обнаружение и исправление ошибок
2 4 3
Рис. 5.17.
Схема обнаружения одинарных и двойных ошибок с коррекцией одинарных
ной информацией. Если синдром не равен нулю, то он указывает на позицию иска-
зившегося бита при одиночной ошибке. С учетом контрольного разряда
Р
5
воз-
можны четыре ситуации, показанные в табл. 5.5.
Таблица 5.5.
Синдром
0
0
Обнаружение ошибок
Р5
0
1
0
1
Тип ошибки
Ошибки нет
Одиночная ошибка
Двойная ошибка
Ошибка в контрольном
разряде
Примечания
Корректируемая: синдром указывает
на позицию искаженного разряда
Неисправимая
Искажен контрольный разряд
Р
5
,
и он может
быть откорректирован
Сигнал Чт/Зп на схеме определяет выполняемую операцию. Чт/Зп = 1 означает
чтение из памяти, а Чт/Зп = 0 — запись в память.
Проанализировав полученный синдром и разряд
Р
5
,
обнаружитель ошибки фор-
мирует двухразрядный код ошибки
E
1
E
0
(табл. 5.6).
Таблица 5.6.
Кодирование ошибок
Код ошибки
ЕО)
00
01
10
Ошибки нет
Одиночная ошибка — исправимая
Двойная ошибка — неисправимая
Ошибка в контрольном разряде — исправимая
2 4 4 Глава 5. Память
Стековая память
Стековая память
обеспечивает такой режим работы, когда информация записы-
вается и считывается по принципу
«последним записан — первым
(LIFО—
Last In First Out). Память с подобной организацией широко применяется для запо-
минания и восстановления содержимого регистров процессора (контекста) при об-
работке подпрограмм и прерываний. Работу стековой памяти поясняет рис. 5.18,
а.
Рис. 5.18. Организация стековой памяти: а — логика работы;
б —
аппаратно-программный стек
Когда слово А заносится в стек, оно располагается в первой свободной ячейке.
Каждое следующее записываемое слово перемещает все содержимое стека на одну
ячейку вверх и занимает освободившуюся ячейку. Запись очередного кода, после
Н, приводит к переполнению стека и потере кода А. Считывание кодов из стека
осуществляется в обратном порядке, то есть начиная с кода Н, который был запи-
сан последним. Отметим, что доступ к произвольному коду в стеке формально не-
допустим до извлечения всех кодов, записанных позже.
Наиболее распространенным в настоящее время является внешний или аппа-
ратно-программный стек, в котором для хранения информации отводится область
ОП. Обычно для этих целей отводится участок памяти с наибольшими адресами,
а стек расширяется в сторону уменьшения адресов. Поскольку программа обычно
загружается, начиная с меньших адресов, такой прием во многих случаях позволя-
ет избежать перекрытия областей программы и стека. Адресация стека обеспечи-
вается специальным регистром —
указателем стека
(SP — stack pointer), в кото-
рый предварительно помещается наибольший адрес области основной памяти,
отведенной под стек (рис. 5.18,
б).
При занесении в стек очередного слова сначала производится уменьшение на
единицу содержимого указателя стека (УС), которое затем используется как ад-
рес ячейки, куда и производится запись, то есть указатель стека хранит адрес той
ячейки, к которой было произведено последнее обращение. Это можно описать
в виде: УС:= УС - 1; ОП[(УС)]:=ШД.
При считывании слова из стека в качестве адреса этого слова берется текущее
содержимое указателя стека, а после того как слово извлечено, содержимое УС
Ассоциативная память 2 4 5
увеличивается на единицу. Таким образом, при извлечении слова из стека реали-
зуются следующие операции: ШД:= ОП[(УС)]; УС := УС +1.
Ассоциативная память
В рассмотренных ранее видах запоминающих устройств доступ к информации тре-
бовал указания адреса ячейки. Зачастую значительно удобнее искать информа-
цию не по адресу, а опираясь на какой-нибудь характерный признак, содержащийся
в самой информации. Такой принцип лежит в основе ЗУ, известного как
ассоциа-
тивное запоминающее устройство
(АЗУ). В литературе встречаются и иные на-
звания подобного ЗУ: память, адресуемая по содержанию (content addressable
memory); память, адресуемая по данным (data addressable memory); память с па-
раллельным поиском (parallel search memory); каталоговая память (catalog memory);
информационное ЗУ (information storage); тегированная память (tag memory).
Ассоциативное ЗУ — это устройство, способное хранить информацию, сравнивать
ее с некоторым заданным образцом и указывать на их соответствие или несоответ-
ствие друг другу. Признак, по которому производится поиск информации, будем
называть
ассоциативным признаком,
а кодовую комбинацию, выступающую в роли
образца для поиска, —
признаком поиска.
Ассоциативный признак может быть ча-
стью искомой информации или дополнительно придаваться ей. В последнем слу-
чае его принято называть
тегом
или
ярлыком.
Рис.
5.19. Структура ассоциативного запоминающего устройства
Один из вариантов построения ассоциативной памяти показан на рис. 5.19. АЗУ
включает в себя:
• запоминающий массив для хранения
N m
-разрядных слов, в каждом из кото-
рых несколько младших разрядов занимает служебная информация;
• регистр ассоциативного признака, куда помещается код искомой информации
(признак поиска). Разрядность регистра
k
обычно меньше длины слова
т;