Чем отличаются ассоциативный и адресный методы поиска информации в памяти компьютера
Запоминающее устройство, как правило, содержит множество одинаковых запоминающих элементов, образующих запоминающий массив (ЗМ). Массив разделен на отдельные ячейки; каждая из них предназначена для хранения двоичного кода, число разрядов в котором определяется шириной выборки памяти (в частности, это может быть одно, половина или несколько машинных слов). Способ организации памяти зависит от методов размещения и поиска информации в запоминающем массиве. По этому признаку различают адресную, ассоциативную и стековую (магазинную) памяти.
Адресная память. В памяти с адресной организацией размещение и поиск информации в ЗМ основаны на использовании адреса хранения слова (числа, команды и т. п.), адресом служит номер ячейки ЗМ, в которой это слово размещается.
При записи (или считывании) слова в ЗМ инициирующая эту операцию команда должна указывать адрес (номер ячейки), по которому производится запись (считывание).
Типичная структура адресной памяти, показанная на рис. 4.2, содержит запоминающий массив из N n-разрядных ячеек и его аппаратурное обрамление, включающее регистр адреса РгА, имеющий k > log2 N) разрядов, информационный регистр РгИ, блок адресной выборки БАВ, блок усилителей считывания БУС, блок разрядных усилителей-формирователей сигналов записи БУЗ и блок управления памятью БУП.
Рис.4.2.Структура адресной памяти.
По коду адреса в РгА БАВ формирует в соответствующей ячейке памяти сигналы, позволяющие произвести в ячейке считывание или запись слова.
Цикл обращения к памяти инициируется поступлением в БУП извне сигнала Обращение. Общая часть цикла обращения включает в себя прием в РгА с шины адреса ША адреса обращения и прием в БУП и расшифровку управляющего сигнала Операция, указывающего вид запрашиваемой операции (считывание или запись).
Далее при считывании БАВ дешифрирует адрес, посылает сигналы считывания в заданную адресом ячейку ЗМ, при этом код записанного в ячейке слова считывается усилителями считывания БУС и передается в РгИ. Затем в памяти с разрушающим считыванием (при считывании все запоминающие элементы ячейки устанавливаются в нулевое состояние). производится регенерация информации в ячейке путем записи в нее из РгИ считанного слова. Операция считывания завершается выдачей слова из РгИ на выходную информационную шину ШИВых.
При записи помимо выполнения указанной выше общей части цикла обращения производится прием записываемого слова с входной информационной шины ШИВх в РгИ. Сама запись состоит из двух операций: очистки ячейки (сброса в 0) и собственно записи. Для этого БАВ сначала производит выборку и очистку ячейки, заданной адресом в РгА. Очистка выполняется сигналами считывания слова в ячейке, но при этом блокируются усилители считывания и из БУС в РгИ информация не поступает. Затем в выбранную БАВ ячейку записывается слово из РгИ.
Блок управления БУП генерирует необходимые последовательности управляющих сигналов, инициирующих работу отдельных узлов памяти. Цепи передачи управляющих сигналов показаны тонкими линиями на рис. 4.2.
Ассоциативная память. В памяти этого типа поиск нужной информации производится не по адресу, а по ее содержанию (по ассоциативному признаку). При этом поиск по ассоциативному признаку (или последовательно по отдельным разрядам этого признака) происходит параллельно во времени для всех ячеек запоминающего массива. Во многих случаях ассоциативный поиск позволяет существенно упростить и ускорить обработку данных. Это достигается за счет того, что в памяти этого типа операция считывания информации совмещена с выполнением ряда логических операций.
Типичная структура ассоциативной памяти представлена на рис. 4.3. Запоминающий массив содержит N (п + 1) -разрядных ячеек. Для указания занятости ячейки используется служебный n-й разряд (0 — ячейка свободна, 1 — в ячейке записано слово).
По входной информационной шине ШИВх в регистр ассоциативного признака РгАП в разряды 0—и—1 поступает п-разрядный ассоциативный запрос, а в регистр маски РгМ - код маски поиска, при этом п-й разряд РгМ устанавливается в 0. Ассоциативный поиск производится лишь для совокупности разрядов РгАП, которым 'соответствуют 1 в РгМ (незамаскированные разряды РгАП). Для слов, в которых цифры в разрядах совпали с незамаскированными разрядами РгАП, комбинационная схема КС устанавливает 1 в соответствующие разряды регистра совпадения РгСв и 0 в остальные разряды. Таким образом, значение j-ro разряда в РгСв определяется выражением
РгСв (j) =
где РгАП [i], РгМ [i] и ЗМ [j, i] — значения i-го разряда соответственно РгАП, РгМ и j-й ячейки ЗМ.
Комбинационная схема формирования результата ассоциативного обращения ФС формирует из слова, образовавшегося в РгСв, сигналы 0, 1, 2, соответствующие случаям отсутствия слов в ЗМ, удовлетворяющих ассоциативному признаку, наличию одного и более чем одного такого слова. Для этого ФС реализует следующие булевы функции:
0 =
1 = РгСв[0]
Формирование содержимого РгСв и сигналов 0, 1, 2 по содержимому РгАП, РгМ и ЗМ называется операцией контроля ассоциации. Эта операция является составной частью операций считывания и записи, хотя она имеет и самостоятельное значение.
При считывании сначала производится контроль ассоциации по ассоциативному признаку в РгАП. Затем при 0 = 1 считывание отменяется из-за отсутствия искомой информации, при 1 = 1 считывается в РгИ найденное слово, при 2 = 1 в РгИ считывается слово из ячейки, имеющей наименьший номер среди ячеек, отмеченных 1 в РгСв. Из РгИ считанное слово выдается на ШИВых.
Рис. 4.3. Структура ассоциативной памяти
При записи сначала отыскивается свободная ячейка. Для этого выполняется операция контроля ассоциации при РгАП= 111. ..10 и РгМ == 00. 01. При этом свободные ячейки отмечаются 1 в РгСв. Для записи выбирается свободная ячейка с наименьшим номером. В нее записывается слово, поступившее с ШИВх в РгИ.
Рис. 4.4. Стековая память
С помощью операции контроля ассоциации можно, не считывая слов из памяти, определить по содержимому РгСв, сколько в памяти слов, удовлетворяющих ассоциативному признаку, например реализовать запросы типа сколько студентов в группе имеют отличную оценку по данной дисциплине. При использовании соответствующих комбинационных схем в ассоциативной памяти могут выполняться достаточно сложные логические операции, такие, как поиск большего (меньшего) числа, поиск слов, заключенных в определенных границах, поиск максимального (минимального) числа и др.
Отметим, что для ассоциативной памяти необходимы запоминающие элементы, допускающие считывание без разрушения записанной в них информации. Это связано с тем, что при ассоциативном поиске считывание производится по всему ЗМ для всех незамаскированных разрядов и негде сохранять временно разрушаемую считыванием информацию.
Стековая память, так же как и ассоциативная, является безадресной. В стековой памяти (рис. 4.4) ячейки образуют одномерный массив, в котором соседние ячейки связаны друг с другом разрядными цепями передачи слов. Запись нового слова производится в верхнюю ячейку (ячейку 0), при этом все ранее записанные слова (включая слово, находившееся в ячейке 0), сдвигаются вниз, в соседние ячейки с большими на 1 номерами. Считывание возможно только из верхней (нулевой) ячейки памяти, при этом, если производится считывание с удалением, все остальные слова в памяти сдвигаются вверх, в соседние ячейки с большими номерами. В этой памяти порядок считывания слов соответствует правилу: последним поступил — первым обслуживается. В ряде устройств рассматриваемого типа предусматривается также операция простого считывания слова из нулевой ячейки (без его удаления и сдвига слова в памяти). Иногда стековая память снабжается счетчиком стека СчСт, показывающим количество занесенных в память слов. Сигнал СчСт = 0 соответствует пустому, стеку, СчСт = N — 1 — заполненному стеку.
Часто стековую память организуют, используя адресную память. Широкое применение стековая память находит при обработке вложенных структур данных.
В последующих параграфах главы описываются различные типы ЗУ с адресной организацией. Ассоциативная память используется в аппаратуре динамического распределения ОП, а также для построения КЭШ-памяти.
Этот термин означает использование небольшой, но быстродействующей памяти, для того что бы уменьшить количество обращений к более медленной памяти большого объема. В роли КЭШа здесь выступает массив буферов, размещенный в системной памяти. Каждый буфер состоит из заголовка и блока данных соответствующему по размеру блока диска. Заголовок содержит адрес блока диска, копия которого в данный момент находится в буфере и несколько флагов, характеризующих состояние буфера. Когда система получает запрос на чтение или запись определенного блока данных диска, она прежде всего проверяет не содержится ли в данный момент копия этого блока в одном из буферов кэша. Для этого требуется выполнить поиск по заголовкам буферов, если блок найден в КЭШе, то обращение к диску выполнятся не будет. В случае записи данных, следуя так же заголовкам буфера, отметить с помощью спец флага что буфер стал «грязным», то есть его содержимое не соответствует данным на диске. Если требуемый блок диска не найден в КЭШе, то для него должен быть выделен буфер. Общее количество буферов кэша ограничено, что бы отдать один из них под требуемый блок, нужно вытянуть из кэша один из блоков которые там хранились, при этом есть вытесняемый блок «грязный». То он должен быть очищен, то есть, записан на диск. При вытеснении чистого блока никаких операция с диском выполнять не требуется.
Три случая очистки «грязных» буферов:
1. Выбор блока для вытеснения из кэша.
2. Закрытие файла, которые относятся к грязному буферу.
3. Операция очистки всех буферов, либо только буферов относящихся к определенному файлов.
Оперативная память это рабочая область для ЦП ПК. В ПК используется запоминающие устройства 3х типов:
1. ROM – это ПЗУ не способное выполнять операцию записи данных.
2. DRAM – Это динамическое ЗУ с произвольным порядком выборки.
3. SRAM – Статическая Оперативная память.
Память типа ROM является энергонезависимой, в ней умещаются команды запуска ПК.
В памяти DRAM преимущество состоит в том, что ее ячейки упакованы очень плотно, что позволяет построить память большой емкости. Ячейки в этой памяти – крошечные конденсаторы, которые удерживают заряды. Наличием или отсутствием зарядов кодируется бит. Недостатком данной памяти в том, что она динамическая, то есть должна постоянно регенерировать электрические заряды в конденсаторе.
Память типа SRAM в отличии от DRAM не требует периодической регенерации и может работать на частоте ЦП. На хранение каждого бита в конструкции SRAM используется кластер из 6 транзисторов.
ОЗУ всегда строится из отдельных модулей памяти, которые имеют свое собственное электронное обрамление ( то есть устройство, обеспечивающее запись, выборку, чтение ). Структура модуля памяти определяется способом организации ОЗУ. Существуют 3 разновидности организации ОЗУ:
1. Адресная память
2. Память со стековой организацией
3. Ассоциативная память
В адресной памяти размещение и поиск информации в запоминающем массиве (ЗМ) базируется на основе адреса. ЗМ элементы содержат неизвестное количество слов неизвестного разряда (n), которые пронумерованы от 0 до n-1. Электронное обрамление включает в себя регистры для хранения адреса памяти (РАП), регистр информации памяти (РИП), схемы адресной выборки, разрядные усилители для чтения и записи.
Цикл работы памяти инициируется сигналом обращения памяти. При инициировании обращения производится дешифрация адреса схемы адресной выборки. Если задана операция чтения, то активизируется усилитель считывания и информация через него передается в РИП. Если память требует динамической регенерации, то после РИП все поступает в РАП. Если происходит операция записи, то активизируется усилитель записи, который обеспечивает запись из РИП в нужное место памяти.
В стековой организации запись нового слова поступившего с входной информационной шины производится в нулевую ячейку, которая является выходной информационной шиной, при этом все ранее записанные слова, включая слово в ячейке 0, сдвигаются вниз в соседние ячейки, номера которых на единицу больше, считывание возможно только из нулевой ячейки. Основной режим это считывание с удалением. Обычно аппаратный стек снабжается счетчиком стека, показывающим общее количество занесенных в память слов. При заполнении стека полностью он запрещает дальнейшие операции записи. Стековая организация данных возможна и на обычной адресной памяти с произвольным обращением (программный стек). Для организации стека в этом случае необходима еще одна ячейка памяти, в которой всегда хранится адрес вершины стека, она называется указательным стеком. Обычно в качестве указателя стека используется один из внутренних регистров ЦП, кроме того требуется соответствующее ПО. В отличии от аппаратного стека, данные которые размещены в программном стеке при записи нового слова или считывания не перемещаются, запись каждого нового слова осуществляется в ячейке памяти следующей по порядку за той, адрес которой содержится в указателе стека, при этом указатель стека увеличивается на единицу. Таким образом, в программном стеке перемещаются не данные, а вершина стеков.
В ассоциативной памяти поиск информации происходит не по адресу, а по ее содержанию. Под содержанием информации в данном случае принимается побитовый состав записанного двоичного слова. При этом ассоциативный запрос, так же представляет собой двоичный код с определенным побитовым составом. Поиск по ассоциативному запросу происходит параллельно по времени для всех ячеей ЗМ, и представляет собой операцию сравнения содержимого разрядов регистра запроса с содержимым соответствующих разрядов в ячейке памяти. Ассоциативный поиск можно реализовать и в ПК с обычной адресной памятью последовательно в ячейке адреса в ЦП и сравнивая их с некоторым ассоциативным шаблоном.
Запоминающее устройство с произвольным обращением, как правило, содержит множество одинаковых запоминающих элементов, образующих запоминающий массив (ЗМ). Массив разделен на отдельные ячейки; каждая из них предназначена для хранения двоичного кода, число разрядов в котором определяется шириной выборки памяти (в частности, это может быть одно, половина или несколько машинных слов). Способ организации памяти зависит от методов размещения и поиска информации в запоминающем массиве. По этому признаку различают адресную, ассоциативную и стековую (магазинную) памяти.
Адресная память. В памяти с адресной организацией размещение и поиск информации в ЗМ основаны на использовании адреса хранения слова (числа, команды и т. п.). Адресом служит номер ячейки ЗМ, в которой это слово размещается.
При записи (или считывании) слова в ЗМ инициирующая эту операцию команда должна указывать адрес (номер ячейки), по которому производится запись (считывание).
Типичная структура адресной памяти, содержит запоминающий массив из N-разрядных ячеек и его аппаратное обрамление, включающее в себя регистр адреса РгА, имеющий k (k » log N) разрядов, информационный регистр РгИ, блок адресной выборки БАВ, блок усилителей считывания БУС, блок разрядных усилителей-формирователей сигналов записи БУЗ и блок управления памятью БУП.
По коду адреса в РгА БАВ формирует в соответствующей ячейке памяти сигналы, позволяющие произвести в ячейке считывание или запись слова.
Цикл обращения к памяти инициируется поступлением в БУП извне сигнала Обращение. Общая часть цикла обращения включает в себя прием в РгА с шины адреса ША адреса обращения и прием в БУП и расшифровку управляющего сигнала Операция, указывающего вид запрашиваемой операции (считывание или запись).
Далее при считывании БАВ дешифрирует адрес, посылает сигналы считывания в заданную адресом ячейку ЗМ, при этом код записанного в ячейке слова считывается усилителями считывания БУС и передается в РгИ. Операция считывания завершается выдачей слова из РгИ на выходную информационную шину ШИВых.
При записи помимо выполнения указанной выше общей части цикла обращения производится прием записываемого слова с входной информационной шины ШИВх и РгИ. Затем в выбранную БАВ ячейку записывается слово из РгИ.
Блок управления БУП генерирует необходимые последовательности управляющих сигналов, инициирующих работу отдельных узлов памяти.
Ассоциативная память. В памяти этого типа поиск нужной информации производится не по адресу, а по ее содержанию (по ассоциативному признаку). При этом поиск по ассоциативному признаку (или последовательно по отдельным разрядам этого признака) происходит параллельно во времени для всех ячеек запоминающего массива. Во многих случаях ассоциативный поиск позволяет существенно упростить и ускорить обработку данных. Это достигается за счет того, что в памяти этого типа операция считывания информации совмещена с выполнением ряда логических операций.
Типичная структура ассоциативной памяти представлена на рис. 4.3. Запоминающий массив содержит N (n+1)-разрядных ячеек. Для указания занятости ячейки используется служебный n-й разряд (0 — ячейка свободна, 1 — в ячейке записано слово).
Рис. 2.2. Структура ассоциативной памяти |
По входной информационной шине ШИВх в регистр ассоциативного признака РгАП в разряды 0..n-1 поступает n-разрядный ассоциативный запрос, а в регистр маски РгМ — код маски поиска, при этом n-разряд РгМ устанавливается в 0. Ассоциативный поиск производится лишь для совокупности разрядов РгАП, которым соответствуют 1 в РгМ (незамаскированные разряды РгАП). Для слов, в которых цифры в разрядах совпали с незамаскированными разрядами РгАП, комбинационная схема КС устанавливает в 1 соответствующие разряды регистра совпадения РгСв и 0 в остальные разряды. Таким образом, значение j-го разряда в РгСв определяется выражением
где РгАП[i], РгМ[i] и ЗМ[j, i] — значения i-го разряда соответственно РгАП, РгМ и j-и ячейки ЗМ.
Комбинационная схема формирования результата ассоциативного обращения ФС формирует из слова, образовавшегося в РгСв, сигналы a0, a1, a2, соответствующие случаям отсутствия слов в ЗМ, удовлетворяющих ассоциативному признаку, и наличия одного (и более) такого слова.
Формирование содержимого РгСв и сигналов a0, a1, a2 по содержимому РгАП, РгМ и ЗМ называется операцией контроля ассоциации. Эта операция является составной частью операций считывания и записи, хотя она имеет и самостоятельное значение.
При считывании сначала производится контроль ассоциации по ассоциативному признаку в РгАП. Затем при a0 = 1 считывание отменяется из-за отсутствия искомой информации, при a1 = 1 считывается в РгИ найденное слово, при a2 = 1 в РгИ считывается слово из ячейки, имеющей наименьший номер среди ячеек, отмеченных 1 у РгСв. Из РгИ считанное слово выдается на ШИВых.
При записи сначала отыскивается свободная ячейка. Для этого выполняется операция контроля ассоциации при РгАП = 111. 10 и РгМ = 00. 01, при этом свободные ячейки отмечаются 1 в РгСв. Для записи выбирается свободная ячейка с наименьшим номером. В нее записывается слово, поступившее с ШИВх в РгИ.
С помощью операции контроля ассоциации можно, не считывая слов из памяти, определить по содержимому РгСв, сколько в памяти слов, удовлетворяющих ассоциативному признаку, например реализовать запросы типа сколько студентов в группе имеют отличную оценку по данной дисциплине. При использовании соответствующих комбинационных схем в ассоциативной памяти могут выполняться достаточно сложные логические операции, такие, как поиск большего (меньшего) числа, поиск слов, заключенных в определенных границах, поиск максимального (минимального) числа и др. Ассоциативная память применяется, например, в аппаратуре динамического распределения ОП.
Отметим, что для ассоциативной памяти необходимы запоминающие элементы, допускающие считывание без разрушения записанной в них информации. Это связано с тем, что при ассоциативном поиске считывание производится по всему ЗМ для всех незамаскированных разрядов и негде сохранять временно разрушаемую считыванием информацию.
Стековая память, так же как и ассоциативная, является безадресной. Стековую память можно рассматривать как совокупность ячеек, образующих одномерный массив, в котором соседние ячейки связаны друг с другом разрядными цепями передачи слов. Запись нового слова производится в верхнюю ячейку (ячейку 0), при этом все ранее записанные слова (включая слово, находившееся в ячейке 0), сдвигаются вниз, в соседние ячейки с большими на 1 номерами. Считывание возможно только из верхней (нулевой) ячейки памяти, при этом, если производится считывание с удалением, все остальные слова в памяти сдвигаются вверх, в соседние ячейки с большими номерами. В этой памяти порядок считывания слов соответствует правилу: последним поступил — первым обслуживается. В ряде устройств рассматриваемого типа предусматривается также операция простого считывания слова из нулевой ячейки (без его удаления и сдвига слова в памяти). Иногда стековая память снабжается счетчиком стека СчСт, показывающим количество занесенных в память слов. Сигнал СчСт = 0 соответствует пустому стеку, СчСт = N - 1 — заполненному стеку.
Обычно стековую память организуют, используя адресную память. В этом случае счетчик стека, как правило, отсутствует, так как количество слов в памяти можно выявить по указателю стека. Широкое применение стековая память находит при обработке вложенных структур данных, при выполнении безадресных команд и прерываний.
Архитектурная организация процессора ЭВМ
Процессор занимает в архитектуре ЭВМ центральное место, осуществляя управление взаимодействием всех основных компонент, входящих в состав ЭВМ Он непосредственно осуществляет обработку информации, и программное управление данным процессом дешифрирует и выполняет команды программ, организует обращения к оперативной памяти (ОП), в нужных случаях инициирует операции ввода/вывода и работу периферийных устройств, воспринимает и обрабатывает запросы, поступающие как от устройств ЭВМ, так и из внешней среды (организация системы прерываний). Выполнение каждой команды состоит из выполнения более мелких операций - микрокоманд, выполняющих определенные элементарные действия. Набор микрокоманд определяется системой команд и логической структурой конкретной ЭВМ. Таким образом, каждая команда ЭВМ реализуется соответствующей микропрограммой, хранящейся в постоянном запоминающем устройстве (ПЗУ). В некоторых ЭВМ (в первую очередь, специализированных) все или часть команд реализуются аппаратно, что позволяет повышать их производительность за счет потери определенной части гибкости системы команд машины. Как один, так и второй способ реализации команд ЭВМ имеет свои плюсы и минусы.
Язык микропрограммирования предназначен для описания цифровых устройств, функционирующих на уровне регистров. Он имеет простые и наглядные средства описания машинных слов, регистров, шин и других базовых элементов ЭВМ. С учетом сказанного, иерархию языков описания вычислительного процесса на ЭВМ можно представить, в общем случае, на четырех уровнях: (1) булева операция (функционирование комбинационных ЛС) => (2) микрокоманда (функционирование узлов ЭВМ) => (3) команда (функционирование ЭВМ) => (4) оператор ЯВУ (описание алгоритма решаемой задачи). Для определения временных соотношений между микрокомандами устанавливается единица времени (такт), в течение которой выполняется самая продолжительная микрокоманда. Поэтому выполнение одной команды ЭВМ синхроимпульсами, генерируемыми специальным устройством процессора - тактовым генератором, тактовая частота (измеряемая в МГц) в значительной степени определяет быстродействие ЭВМ. Естественно, для других классов ЭВМ данный показатель иным образом связывается с производительностью, определяемой такими дополнительными факторами, как.
- ширина доступа в память,
- архитектура процессора и его сопроцессоров,
Укрупненная схема центрального процессора (ЦП) некоторой формальной ЭВМ представлена на рисунке, где изображены только основные его блоки управляющие регистры (УР), устройство управления (УУ), ПЗУ, арифметико-логическое устройство (АЛУ), регистровая память (РП), кэш-память и интерфейсный блок (ИБ). Наряду с перечисленными ЦП содержит ряд других блоков (прерывания, защиты ОП, контроля и диагностики и др.), структура и назначение которых здесь не рассматриваются. Блок УУ вырабатывает последовательность управляющих сигналов, инициирующих выполнение соответствующей последовательности микрокоманд (находящихся в ПЗУ), реализующей текущую команду. Наряду с этим УУ координирует функционирование всех устройств ЭВМ посредством посылки управляющих сигналов обмен данными ЦП ОП, хранение и обработка информации, интерфейс с пользователем, тестирование и диагностика и др. Поэтому УУ целесообразно рассматривать как отдельный блок ЦП; однако на практике большинство управляющих схем распределены по всей ЭВМ. Они связаны большим числом управляющих линий, передающих сигналы для синхронизации операции во всех устройствах ЭВМ и принимающих сигналы об их состоянии. Блок УР предназначен для временного хранения управляющей информации и содержит регистры и счетчики, участвующие совместно с УУ в управлении вычислительным процессом регистр состояния ЦП, программы (ССП), счетчик команд (СК) представляет собой регистр, хранящий в ОП адрес выполняемой команды (в период выполнения текущей команды его содержимое обновляется на адрес следующей команды), регистр команд (РК) содержит выполняемую команду (его выходы связаны с управляющими схемами, генерирующими распределенные во времени сигналы, необходимые для выполнения команд)
Блок РП содержит регистры сверхоперативной памяти (более высокого быстродействия, чем ОП) небольшого объема, позволяющие повысить быстродействие и логические возможности ЦП. Эти регистры используются в командах путем сокращенной регистровой адресации (указываются только номера регистров) и служат для хранения операндов, результатов операций, в качестве базовых и индексных регистров, указателей стэка и др. В некоторых ЦП базовые и индексные регистры входят в состав блока УТ, как правило, РП выполняется в виде быстродействующих полупроводниковых интегральных запоминающих устройств
Блок АЛУ служит для выполнения арифметических и логических операций над данными, поступающими из ОП и хранящимися в РП, и работает под управлением УУ. АЛУ выполняет арифметические операции над бинарными числами с фиксированной и плавающей точками, над десятичными числами, производит обработку символьной информации над словами фиксированной и переменной длины. Логические операции производятся над отдельными битами, группами битов, байтами и их последовательностями. Тип выполняемой АЛУ операции определяется текущей командой функционирующей в данный момент программы, точнее, АЛУ служит для выполнения любой операции, задаваемой ему УУ. В общем случае обрабатываемая ЭВМ информация состоит из слов, содержащих фиксированное число n битов (например n =8. 16. 32, 64, 128 бит). В этом случае АЛУ должно иметь возможность производить операции над n-битными словами операнды поступают из ОП на регистры АЛУ, а УУ указывает операцию, которую необходимо над ними произвести, результат каждой арифметико-логической операции сохраняется в специальном регистре-сумматоре, являющимся основным регистром для арифметико-логических операций.
Сумматор соединен с вентильными схемами для выполнения необходимых операций над его содержимым и содержимым других регистров. Некоторые ЭВМ имеют несколько сумматоров, при количестве, большем 4, они выделяются в специальную группу регистров общего назначения (РОН). Конструктивно АЛУ выполняется на одном или нескольких БИС/СБИС, при этом ЦП может иметь одно АЛУ универсального назначения или несколько специализированных для отдельных видов операции. В последнем случае увеличивается структурная сложность ЦП, но повышается его быстродействие за счет специализации и упрощения схем вычисления отдельных операций. Такой подход широко используется в современных ЭВМ общего назначения и супер-ЭВМ для повышения их производительности Несмотря на различные классы ЭВМ, их АЛУ используют общие принципы выполнения арифметико-логических операции. Различия касаются схемотехнических решений организации АЛУ и принципов реализации операции, обеспечивающих ускорение их выполнения.
Интерфейсный блок (ИБ) обеспечивает обмен информацией ЦП с ОП и защиту участков ОП от несанкционированного для текущей программы доступа, а также связь ЦП с периферийными устройствами и другими внешними по отношению к нему устройствами (ВУ), в качестве которых могут выступать другие процессоры и ЭВМ. В частности, ИБ содержит два регистра, обеспечивающие связь с ОП - регистр адреса памяти (РАП) и регистр данных памяти (РДП). Первый регистр используется для хранения адреса ячейки ОП, с которой производится обмен данными, а второй содержит собственно данные обмена. Блок контроля и диагностики (БКД) предназначен для обнаружения сбоев и отказов узлов ЦП, восстановления работы текущей программы после сбоев и локализации неисправностей при отказах.
С учетом сказанного представим общую схему выполнения программ процессором. Выполнение программы, находящейся в ОП, начинается с того, что в СК засылается адрес первой ее команды, содержимое СК пересылается в РАП и в ОП посылается сигнал управления считыванием. Через некоторое время (соответствующее времени доступа к ОП) адресуемое слово (в данном случае первая команда программы) извлекается из ОП и загружается в РДП, затем содержимое РДП пересылается в СК. На этой стадии команда готова для декодирования ее УУ и выполнения. Если команда содержит операцию, которая должна быть выполнена АЛУ, то необходимо получить требуемые операнды. Если операнд находится в ОП (а он может быть также в УР), его необходимо выбрать из памяти. Для этого в РАП пересылается адрес операнда и начинается цикл чтения Операнд, выбранный из памяти в РДП, может быть передан в АЛУ. Выбрав таким образом один или несколько операндов, АЛУ может выполнить требуемую операцию, сохранив ее результат в одном из РОН. Если результат операции необходимо запомнить в ОП, он должен быть послан в РДП Адрес ячейки, в которую необходимо поместить результат, пересылается в РАП и начинается цикл записи. Между тем содержимое СК увеличивается, указывая следующую команду, которая должна выполняться. Таким образом, как только завершится выполнение текущей команды, может сразу же начаться выборка на выполнение следующей команды программы.
Помимо передачи данных между ОП и ЦП необходимо обеспечить обмен данными с ВУ, что делают машинные команды, управляющие вводом/выводом. Естественный порядок выполнения программ может нарушаться при поступлении сигнала прерывания. Прерывание является требованием на обслуживание, которое осуществляется ЦП, выполняющим соответствующую программу обработки прерывания (ПОП). Так как прерывание и его обработка могут изменить внутреннее состояние ЦП, то оно сохраняется в ОП перед началом работы ПОП. Сохранение состояния достигается пересылкой содержимого РК, УР и некоторой управляющей информации в ОП. После завершения ПОП состояние ЦП восстанавливается, позволяя продолжить выполнение прерванной программы.
Способ организации ОП зависит от методов размещения и поиска информации в ней.
Ø стековую память.
Поиск информации в адресной памяти осуществляется на основе адресного принципа хранения слова.
В ассоциативной памяти поиск информация происходит по ее содержанию параллельно во всех ячейках памяти. При этом поиск совмещается с выполнением ряда логических операций.
Память для стека или стек (Stack) — это часть оперативной памяти, предназначенная для временного хранения данных в режиме LIFO (Last In — First Out) или память магазинного типа (например, в магазине автомата патрон, установленный последним, будет извлечен первым).
Особенность стека по сравнению с другой оперативной памятью — это заданный и неизменяемый способ адресации.
При записи любого числа (кода) в стек число записывается по адресу, определяемому как содержимое регистра указателя стека, предварительно уменьшенное (декрементированное) на единицу (или на два, если 16-разрядные слова расположены в памяти по четным адресам).
При чтении из стека число читается из адреса, определяемого содержимым указателя стека, после чего это содержимое указателя стека увеличивается (инкрементируется) на единицу (или на два). В результате получается, что число, записанное последним, будет прочитано первым, а число, записанное первым, будет прочитано последним.
Принцип работы стековой памяти.
Пусть, например, текущее состояние указателя стека 1000008, и в него надо записать два числа (слова). Первое слово будет записанопо адресу 1000006 (перед записью указатель стека уменьшится на два). Второе — по адресу 1000004. После записи содержимое указателя стека — 1000004. Если затем прочитать из стека два слова, то первым будет прочитано слово из адреса 1000004, а после чтения указатель стека станет равным 1000006. Вторым будет прочитано слово из адреса 1000006, а указатель стека станет равным 1000008. Все вернулось к исходному состоянию. Первое записанное слово читается вторым, а второе — первым.
Необходимость такой адресации становится очевидной в случае многократно вложенных подпрограмм.
Пусть, например, выполняется основная программа, и из нее вызывается подпрограмма 1. Если нам надо сохранить значения данных и внутренних регистров основной программы на время выполнения подпрограммы, мы перед вызовом подпрограммы сохраним их в стеке (запишем в стек), а после ее окончания извлечем (прочитаем) их из стека.
Если же из подпрограммы 1 вызывается подпрограмма 2, то ту же самую операцию мы проделаем с данными и содержимым внутренних регистров подпрограммы 1.
Понятно, что крайними в стеке (читаемыми в первую очередь) будут данные из подпрограммы 1, а данные из основной программы будут глубже. При этом в случае чтения из стека автоматически будет соблюдаться нужный порядок читаемой информации.
То же самое будет и в случае, когда таких уровней вложения подпрограмм гораздо больше. То есть то, что надо хранить подольше, прячется поглубже, а то, что скоро может потребоваться — с краю.
В системе команд любого процессора для обмена информацией со стеком предус-мотрены специальные команды записи в стек (PUSH) и чтения из стека (POP).
В стеке можно прятать содержимое всех внутренних регистров процессоров, содержимое регистра признаков (слово состояния процессора, PSW). Это позволяет, например, при возвращении из подпрограммы контролировать результат последней команды, выполненной непосредственно перед вызовом этой подпрограммы. Можно также хранить в стеке и данные, для того чтобы удобнее было передавать их между программами и подпрограммами. В общем случае, чем больше область памяти, отведенная под стек, тем больше свободы у программиста и тем более сложные программы могут выполняться.
Обработка прерываний.
Пусть, например, процессор выполнял основную программу и команду, находящуюся в адресе памяти 5000 (условно). В этот момент он получил запрос прерывания с номером (адресом вектора) 4.
Процессор заканчивает выполнение команды из адреса 5000. Затем он сохраняет в стеке текущее значение счетчика команд (5001) и текущее значение PSW. После этого процессор читает из адреса 4 памяти код вектора прерывания. Пусть этот код равен 6000. Процессор переходит в адрес памяти 6000 и приступает к выполнению программы обработки прерывания, начинающейся с этого адреса. Пусть эта программа заканчивается в адресе 6100. Дойдя до этого адреса, процессор возвращается к выполнению прерванной программы. Для этого он извлекает из стека значение адреса (5001), на котором его прервали, и бывшее в тот момент PSW. Затем процессор читает команду из адреса 5001 и дальше последовательно выполняет команды основной программы.
Отметим, что в более сложных случаях в таблице векторов прерываний могут находиться не адреса начала программ обработки прерываний, а так называемые дескрипторы (описатели) прерываний. Но конечным результатом обработки этого дескриптора все равно будет адрес начала программы обработки прерываний.
2. Адресное и ассоциативное ОЗУ: принцип работы и сравнительная характеристика.
Организация оперативной памяти.
Оперативная память любого вычислителя всегда строится из отдельных модулей памяти, которые конструктивно и функционально закончены. Каждый модуль имеет свое собственное электронное обрамление (устройства, которые обеспечивают запись, выборку, чтение). Емкость каждого модуля ОП фиксирована (в виде степени двойки).
Структура модуля памяти определяется способом организации ОП (способ адресации).
Существует 3 разновидности организации памяти:
1) адресная память
2) память со стековой организацией
3) ассоциативная организация ОП
С точки зрения функционального построения, любое ЗУ этого типа представляет собой некоторый массив элементов памяти. Структурные элементы памяти образуют ячейки памяти. Ширина ячеек – ширина выборки из памяти.
Адресное и ассоциативное ОЗУ: принцип работы и сравнительная характеристика.
Множество адресов, которые могут использоваться в командах процессора, составляют его адресное пространство.
Здесь применяются различные термины – адресное пространство процессора, адресное пространство математической памяти, адресное пространство программы.
Адресное пространство процессора определяется разрядностью ЭВМ по заданию адреса. Процессоры, использующие 32-х разрядные адреса, имеют адресное пространство равное 2 32 (4 Гб).
1) В адресной памяти, размещение и поиск информации в массиве запоминания, базируется на основе номера (адреса). Массив запоминания элементов содержит N n-разрядных слов, которые пронумерованы (0…N-1). Электронное обрамление включает в себя регистры для хранения адреса памяти, регистр информации (само слово), схемы адресной выборки (адресации), разрядные усилители для чтения и записи.
Массив запоминания (ЗМ) содержит N n-разрядных слов. Регистр адреса памяти (РАП) + схема адресной выборки + усилитель считывания + усилитель записи + регистр информации памяти (РИП) + схема управления – электронное обрамление.
Цикл работы памяти инициируется сигналом обращения к памяти и операцией (ЗП/ЧТ).
При инициировании обращения производится дешифрация адреса схемы адресной выборки.
Если задана операция чтения, то активизируется усилитель считывания и информация через усилитель считывания предается в регистр информации памяти. Если память требует динамической регенерации, то после регистра информации памяти все поступает в регистр адреса памяти.
Если происходит чтение, то активизируется усилитель записи, который обеспечивает запись из регистра информации памяти в нужное место памяти.
2) Стековая память является безадресной. Ячейки стековой памяти представляют собой одномерный массив n-разрядных ячеек, в котором соседи связаны друг с другом.
Для операций с памятью доступна только 0 ячейка. Операция с памятью инициируется сигналом обращения.
Каждая операция записи, инициируемая сигналом обращения к памяти, приводит к тому, записанные данные помещаются в 0 ячейку памяти. При этом все ранние записи в памяти слова автоматически сдвигаются на 1 адрес ниже. Операция чтения, инициируемая сигналом обращения, приводит к тому, что на выходе памяти формируется значение слова, находящиеся в 0 ячейке памяти. При этом все имеющиеся слова сдвигаются на одно слово вверх. Счетчик стека нужен только для контроля заполнения и очищения стека. Техническая реализация стековой памяти оказывается сложнее адресной памяти. Стековая память используется достаточно широко (короткий стек из микропрограммирования). Чаще всего применяется не стековая память, а адресное поле, которое функционирует по принципу стека.
3) ассоциативная память. Исторически последняя. Является представителем многофункциональных запоминающих устройств (возможна обработка данных без процессора в памяти). Отличительная особенность: поиск любой информации в ЗМ производится не по адресу, а по ассоциативным признакам (признакам опроса). Поиск производится одновременно по всем ячейкам ЗМ.
Типовая структура ассоциативной памяти:
РАП - регистр ассоциативного опроса, РМ - регистр маски, РгСв - регистр связи.
С точки зрения структуры, любая основная память компьютера может быть построена, как одноблочная, либо как многоблочная (сейчас одноблочная память практически не используется). Многоблочную память строят из однотипных блоков.
Читайте также: