Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМСС-всё(ЭКЗАМЕН).docx
Скачиваний:
37
Добавлен:
09.12.2018
Размер:
8.84 Mб
Скачать

1.3. Сверхоперативные зу.

1.3.1. Назначение и типы созу.

Назначение СОЗУ состоит в согласовании быстродействующих логических устройств процессора с ОЗУ, которое имеет меньшее быстродействие.

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

СОЗУ строятся на полупроводниковых элементах, туннельных диодах и т.д.

АЛУ обычно связан с некоторым «итоговым регистром», аккумулятором, который может рассматриваться как элементарное СОЗУ на одну ячейку. Существуют и многоаккумуляторные процессоры (наличие нескольких итоговых регистров). Кроме того, в СОЗУ входят индексные, базовые и прочие «именные» регистры процессора.

Как и вообще в оперативных ЗУ, в зависимость от метода поиска информации различают СОЗУ:

  1. с прямой адресацией;

  2. магазинные;

  3. стековые;

  4. ассоциативные.

<67>

1.3.2. Организация созу с прямой адресацией.

Такое СОЗУ – это набор полупроводниковых регистров (от 8 и до …), объединенных ДшА. Другое название – регистры общего назначения (РОНы). Номер регистра как раз и означает адрес ячейки СОЗУ.

Рис. 1.3.2.1

Широко распространены в современных процессорах наряду с кэш-памятью..

<68>

1.3.3. Организация стекового и магазинного созу.

В литературе существует путаница. Характерно – различие понятия стека и магазина в двух изданиях книги Кагана Б.М.

Будем считать так:

LIFO («первым пришел – последним обслужен») – стек;

FIFO («первым пришел – первым обслужен») – магазин,

т.к. «stack» – пер. с англ. «куча», а из нее можно брать лишь сверху, а магазин – это обычная очередь.

Необходимо различать программные и аппаратные стеки (магазины). При этом основное – функциональное различие в назначении указателя стека (УС).

В аппаратном стеке УС – счетчик количества хранимых слов (в том или ином коде), а в программном УС – регистр, хранящий адрес «верхушки стека» (первой свободной ячейки «над верхней» заполненной). Однако программный стек – это уже не СОЗУ.

Рис 1.3.3.1. Структура стекового СОЗУ.

В счетчике (СчА) хранится адрес 1-ой свободной ячейки, после которого расположены занятые.

Структура магазинного СОЗУ будет очень близкой.

В лекции лишь упомянуты программные стеки и очереди (магазины). Это естественно, поскольку речь идёт о СОЗУ, но в программных свои серьезные проблемы, связанные с определением «переполнения» и «антипереполнения»; набегания конца очереди (head) на начало (tail). Интересна идея использования кольцевого буфера для организации очереди.

Дальнейшее развитие программных стеков и очередей – связанные списки.

<69>

1.3.4. Организация ассоциативных созу.

Напомним, что при использовании ассоциативных ЗУ в качестве СОЗУ последние выполняют обычно роль буферных ЗУ (между быстродействующим процессором и менее быстродействующей памятью).

В этом случае ячейки СОЗУ могут использоваться для подмены ячеек ОЗУ с целью повышения быстродействия обмена.

Рис. 1.3.4.1

Такая подмена производится путем занесение в ячейку СОЗУ и содержимого ячейки ОЗУ и её адреса в ОЗУ. Поэтому при любом обращении к памяти сначала проверяется, нет ли искомой информации в СОЗУ.

В АСОЗУ роль ассоциативного признака играет адрес ячейки ОЗУ (оперативной памяти), где до некоторых пор хранился операнд. При обращении к СОЗУ требуемая ячейка определяется не по своему адресу («физическому»), а по признаку хранимого в ячейке слова. Таким признаком в данном случае выступает адрес слова в ОЗУ.

АСОЗУ в роли буферного ЗУ допускает замену каждым регистром СОЗУ любой ячейки ОЗУ. Подмена ячеек может производиться заранее по специальным командам: «заменить А», где – адрес ячейки СОЗУ (номер регистра); А – адрес ячейки ОЗУ, назначаемой взамен.

Происходит это так:

  1. Слово из ячейки СОЗУ – с регистра РгС переписывается в ОЗУ по адресу, указанному в ячейке СОЗУ на регистре РгАП

  2. В ячейку СОЗУ записывается адрес А в регистр РгАП и слово из ячейки А ОЗУ в регистр РгС.

Обращение к ячейкам СОЗУ производится по адресам А, которые поступают на все СхСр адресного поля СОЗУ и после получения сигнала о наличии данного адреса в СОЗУ производится обращение к СОЗУ на запись или считывание.

Если же ни с одной СхСр не поступает сигнал «=» (сигнал совпадения), то это значит, что за словом следует обратиться в ОЗУ.

При передаче операнда из ОЗУ в АЛУ оно одновременно записывается в буферное ЗУ – СОЗУ в ячейку . Причем этой ячейке присваивается адрес А. При повторных обращениях по адресу А число будет уже выбираться из СОЗУ. Затраты времени уменьшатся.

<70>

СОЗУ, как буферная память, бурно развивалась и имеет ряд функциональных особенностей. Все промежуточные результаты пересылаются в СОЗУ. Но поскольку с некоторого момента t все ячейки могут оказаться занятыми, то существует процедура предварительного «освобождения» некоторых ячеек буферных ЗУ – СОЗУ с пересылкой их содержимого в ОЗУ.

Критерием (идеальным!) для выбора ячейки на освобождение должно быть самое редкое обращение (самое давнее обращение). Но это потребует аппаратурных затрат. Фиксация момента и отсчёт временных интервалов. Дисциплина именуется LRU (Least Recently Used – дольше всех неиспользуемый).

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

Безусловно, здесь тоже нужна специальная схема, но она существенно проще.

Случайное освобождение может быть реализовано на сдвигающем регистре, в который предварительно записан код «00010000».

Рис.1.3.4.2

(РгАУ – регистр адреса удаления). ПУ – сигнал признака удаления, когда в адресном поле нет свободной ячейки. Там, где окажется «1» (она движется под действием ГТИ), содержимое ячейки и адрес удаляются.

Стратегия удаления слова, к которому достаточно давно не было обращения, реализуется, например, с помощью схемы:

Рис.1.3.4.3

Первоначально во все Тг записывается «0» (признак неактивности). Сигналы подаются, когда к ячейке было обращение. Удаляется слово из той ячейки, которая имеет признак неактивности («0») и расположена ниже других. Когда везде будет «1» через интервал задержки произойдет обнуление.

<71>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]