Функциональные узлы и процессоры (курсовая работа)


Задание на курсовой проект по дисциплине Функциональные узлы
Проектируемое СОЗУ типа КЭШ содержит 8 ячеек, в которых хранится некоторая информация. Требуется разработать схему, преобразующую статусы трехразрядных адресов этого СОЗУ в зависимости от результативности очередного запроса к КЭШ: было это КЭШ-попадание (cache-hit), или КЭШ-промах (cache-miss).

В алгоритме выявления наименее нужного слова в КЭШ, реализующим принцип НДИ (LRU), в случае hit статус адреса любой запрошенной из КЭШ ячейки поднимается сразу до максимально возможного значения (по нашему – “из грязи – в князи”). Построить схему, реализующую более мягкий, и в чем-то более честный алгоритм, когда в случае КЭШ-попадания статусу запрошенной ячейки присваивается статус, превышающий прежний всего на две единицы, то есть в “табели о рангах” запрошенная ячейка “перепрыгивает” по рангу через пару своих верхних соседей. Это – вариант алгоритма так называемой Карабкающейся страницы (Scrambling Page). Если сверху сосед всего один, то запрошенная ячейка просто меняется с ним рангами.

В случае КЭШ-промаха адресу ячейки, у которой был самый низкий статус (то есть адресу ячейки, бывшей самой ненужной), присваивается некоторый статус, близкий к среднему(по выбору разработчика). Назовем его Средний статус. Вследствие этого ячейке, до этого обладавшей Средним статусом, присваивается статус на единицу меньший Среднего. И всем ячейкам, ранее обладавшим статусом, более низким, чем Средний, также присваиваются статусы на единицу меньше прежних.

Схема тактирована. Сигналом к пересмотру статусов адресов является поступление в одном из тактов сигнала о ПОПАДАНИИ, с одновременным поступлением трехразрядного адреса запрошенной ячейки КЭШ, или сигнала о ПРОМАХЕ. На трехразрядном выходе Вашей схемы должен постоянно присутствовать номер самой ненужной ячейки СОЗУ, то есть ячейки с самым низким статусом.

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

Проектирование ведется в два этапа, в двух различных элементных базисах: часть 1 – в базисе серии К555, и часть 2 – на ПЛИС системы PAL фирмы Altera типа EP610.

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

Описание принципа работы спроектированной функциональной схемы

На структурных схемах данные трехразрядных ячеек храняться в трехразрядных регистрах(назовем их RG1, RG2, …, RG8).
Для описания принципа работы схемы, введем несколько понятий:
а) статус – номер уровня регистра на котором он стоит в проектируемом СОЗУ типа КЭШ(для наглядности и лучшего понимания на рисунке 1 показаны статусы регистров).
б) фиксированный статус ячейки: статусы регистров RG1, RG2, …, RG8 не изменяются. В данном случае в трехразрядных регистрах будут храниться номера регистров.


Рис. 1. Структурная схема для трех ячеек

На рис. 1 показана структурная схема для трех ячеек. Регистр RG1 будет иметь всегда самый высокий статус = 0 (чем ниже номер статуса, тем важнее ячейка). Регистр RG2 будет иметь всегда статус на единицу меньше, чем RG1, т.е.
статус =1. Регистр RG3 будет иметь всегда статус = 2.

Хочу ещё раз подчеркнуть, что в данном случае в самом регистре хранится его номер, т.е. комбинация 0 и 1. Регистры трехразрядные, поэтому возможно всего 8 вариантов комбинаций: 000, 001, 010, 011, 100, 101, 110, 111 (в двоичной системе счисления).

Переводя в 10ую систему счисления соответственно: 0, 1, 2, 3, 4, 5, 6, 7.
в) плавающий номер регистра: регистры RG1, RG2, …, RG8 хранят номера регистров. В этом случае номера регистров переписываются из одного регистра в другой по соответствующей логике согласно ТЗ. Ниже будут приведены примеры, из которых будет объяснена логика.

Пример 1: допустим, что в регистре RG1(имеющий статус 0) хранится 011(т.е. регистр с номером 011 имеет самый высокий статус 0), в RG2(имеющий статус 1) хранится 101, в RG3(имеющий статус 2) хранится 001.

Пусть по трехразрядной входной шине пришел сигнал 001. В этом случае будет КЭШ-попадание. Комбинационные схемы(рис. 1) КС1, КС2, КС3 определяют статус регистра RG1, RG2, RG3, в котором хранится номер 001(т.е. это регистр RG3, имеющий статус 2). И по соответствующей логике одновременно, по срезу синхросигнала, ячейка с номером 001 поднимается на 2 ячейки вверх(т.е. статус увеличивается на 2 и становится 0). Из регистра RG1 номер ячейки 011 переписывается в RG2, а из RG2, в котором хранился номер 101, номер переписывается в RG3. На рис. 2 показаны перемещения номеров регистров.


Рис. 2.

После перемещений: регистр с номером 001 будет иметь статус 0(001 теперь хранится в RG1), регистр с номером 011 будет иметь статус 1(011 теперь хранится в RG2), регистр с номером 101 будет иметь статус 101(101 теперь хранится в RG3).

Пример 2: Возьмем данные из предыдущего примера. Только на этот раз пусть по трехразрядной входной шине пришел сигнал 101.
На рис. 3 показаны перемещения номеров регистров в этом случае:


Рис. 3.

Статус регистра с номером 001, который хранится в RG3 останется прежним.

Примечание: на рис. 2, 3 изображены только трехразрядные регистры RG1, RG2, RG3.

г) фиксированный номер регистра: в данном случае регистры RG1, RG2, …, RG8 хранят статус соответствующего регистра. Номер регистра определяется номером уровня на котором он стоит.

Т.к. регистры трехразрядные, то все возможные комбинации статусов из 0 и 1 в двоичной системе счисления: 000, 001, 010, 011, 100, 101, 110, 111.

Переводя в 10-ую систему счисления, соответственно получаем: 0, 1, 2, 3, 4, 5, 6, 7.

На рис. 4 показаны три регистра: RG1(номер регистра 000), RG2(номер регистра 001), RG3(номер регистра 010). Каждый регистр: RG1(номер регистра 000), RG2(номер регистра 001), RG3(номер регистра 010) содержит трехразрядный статус.


Рис. 4.

Примечание: на рис. 4 изображены только регистры.

д) плавающий статус: регистры RG1, RG2, …, RG8 хранят статус соответствующего регистра. В этом случае статусы регистров переписываются из одного регистра в другой по соответствующей логике согласно ТЗ. Ниже будут приведены примеры, из которых будет объяснена логика.

Пример 3:
Допустим, что в регистрах RG1, RG2, RG3 хранятся соответственно статусы: 010, 100, 011.

Пусть по трехразрядной входной шине поступил сигнал 001, т.е. произошло КЭШ-попадание. Статус регистра под номером 001 хранится в регистре RG2. Согласно ТЗ, при КЭШ-попадание, статус запрашиваемой ячейки(в нашем примере 001) будет присвоен статус, превышающий прежний на две единицы(в нашем примере – 100). Т.е. после корректировки статусов, статус запрашиваемой ячейки будет 010, а у ячеек, имеющих статус 010 и 011, статус будет уменьшен на 1, т.е. станет 011 и 100.
На рис. 5 показана корректировка статусов.


Рис. 5.

Примечание:
Ещё раз хотелось бы подчеркнуть, что:
— Статус = 0 – самый высокий статус.
— Статус = 1 – статус на единицу меньше статуса 0
и т.д.

Поэтому, говоря что мы увеличиваем статус на две единицы, то арифметически мы его уменьшаем на две единицы.

е) запрашиваемый регистр – запрошенная трехразрядная ячейка, к которой поступает обращение от управляющей схемы(в данной работе нас управляющая схема не интересует) Согласно ТЗ, на вход нашей схемы подается либо трехразрядный адрес запрашиваемой ячейки или сигнал о промахе.

Проектирование

При проектировании СОЗУ типа КЭШ, было рассмотрены два варианта:
1. СОЗУ типа КЭШ с фиксированными статусами ячеек и с плавающими номерами регистров.
2. СОЗУ типа КЭШ с фиксированными номерами регистров и с плавающими статусами.

Рассмотрим первый вариант, когда статусы ячеек фиксированы
Пример 1 и пример 2 иллюстрировали этот вариант.

Смысл работы схемы:
КЭШ-попадание:
На трехразрядный вход схемы поступает номер регистра(000, 001, 010, 011, 100, 101, 110, 111).
Возможны три случая:
1) Если у запрашиваемого регистра статус самый высокий – 0, то ничего не изменятся, т.е. по срезу синхросигнала данные(в нашем случае номера регистров) с выходов регистров поступят на входы этих же регистров.

2) Если у запрашиваемого регистра статус – 1, то согласно логике комбинационных схем (которая видна в функциональной схеме) по срезу синхросигнала “c”, номер регистра, имеющий статус 1 перепишется в регистр со статусом 0, а регистр со статусом 0 перепишется в регистр 1, т.е. RG1 и RG2 регистры поменяются данными, которые в них хранятся, т.е. номерами трехразрядных регистров. Этот случай иллюстрирует пример 2 (рис. 3, см. выше)

3) Если у запрашиваемого регистра статус – n, где 2 ≤ n ≤ 7, то согласно логике комбинационных схем по срезу синхросигнала “c”, номер регистра, имеющий статус n, перепишется в регистр, имеющий статус n-2, а номер регистра, имеющий статус n-2, перепишется в n-1 и соответственно номер регистра, имеющего статус n-1, перепишется в регистр со статусом n. Этот случай иллюстрирует пример 1 (рис. 2, см. выше)

КЭШ – промах:
Согласно ТЗ, в случае КЭШ-промаха адресу ячейки, у которой был самый низкий статус, т.е. 7, присваивается некоторый средний статус, а ячейкам, ранее обладавшим статусом, более низким, чем средний, присваивается статусы на единицу меньше прежних.

Считаем, что средний статус = 4.

Приведем ещё несколько примеров, для лучшего понимая работы СОЗУ типа КЭШ:

Пример 4:
На трехразрядный вход схемы поступил сигнал: 0 0 1
С помощью комбинационных схем, согласно логике, которая видна в функциональной схеме, опредяется статус регистра в котором хранится номер 0 0 1.


Номер регистра со статусом 5 переписывается в регистр со статусом 3.
Аналогично 3 в 4, 4 в 5.

Пример 5:
Поступил сигнал: Промах

Номер регистра со статусом 7 переписывается в регистр со статусом 4.
Аналогично 4 в 5, 5 в 6, 6 в 7.

Примечание: регистр К555ИР16 – четырехразрядный, а нам нужны 8 трехразрядных регистров, поэтому мы считаем за один трехразрядный регистр — три разряда из четырех одного регистра К555ИР16(RG1), а четвертый разряд с первыми двумя разрядами второго регистра К555ИР16(RG2) будут образовывать второй трехразрядный регистр и т.д. На рис. 6 проиллюстрирован смысл выше сказанного.


Рис.6

Входы первого регистра входят в RG1: D0, D1, D2;

Входы второго регистра входят в RG1: D3 и RG2: D0, D1;

Входы третьего регистра входят в RG2: D2, D3 и RG4: D0

Выходы аналогично.

Структурная схема (упрощенная):


Рис.7

На рис.7 изображена упроещенная структурная схема из 4 ячеек без входа «промах». Как видно из рис. 7 в RG1 информация(номер ригистра) может поступить через КС1 из регистров RG1, RG2 или RG3. Аналогично: в регистр RG2 из RG1, RG2, RG4; в регистр RG3 из RG2, RG3; в регистр RG4 из RG3, RG4.

Структурная схема:


Рис.8

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

Примечание:
1. КС3 и КС4 одинаковые.
2. Далее схема будет реализована на четырехразрядных регистрах. Смысл схемы такой же как и у изображенной схемы на рис.8

На рис. 9 показана реализация схемы на четырехразрядных регистрах К555ИР16.

Чертеж функциональной схемы
Основой схемы служат 6 регистров – К555ИР16(RG1, RG2, …, RG6). Данные(номера регистров) в регистры RG1,…, RG6 будут загружаться параллельно. Синхросигнал “c”, общий для всех 6 регистров, поступает напрямую на все регистры. По срезу синхросигнала происходит корректировка статусов регистров.

Представлено три регистра К555ИР16, которые реализуют три трехразрядных регистра. Все элементы взяты из серии К555. Схема тактирована в один такт.
Схема изображена на рис. 9


Рис.9

Рассмотрим второй вариант, когда номера регистров фиксированы.
Пример этого варианта рассмотрен выше (пример 3, рис.5)

Этот вариант является хуже, чем предыдущий, тем что:
1. Нужно большее число тактов, чем в первом варианте, т.к. у запрашиваемой ячейки нужно:
a) проверить статус на 0 и 1
b) произвести изменение статуса на 0, если у ячейки был статус 1
c) если был статус 0, то он таким и останется
d) если статус запрашиваемой ячейки не 0 и 1 нужно произвести корректировку статуса запрашиваемой ячейки(статус будет выше на 2, т.е. если был статус n, то станет n-2)
e) искать ячейки со статусами n-1 и n-2, которые тоже нужно уменьшить на единицу(т.е. станут n и n-1).

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

2. Схема занимает больше площади, т.к. она требует больших аппаратных затрат.
Из выше перечисленных пунктов становится очевидным преимущество первого варианта, где статусы ячеек фиксированы.

Примечание: Статус 0 является самым высоким. Когда мы говорим увеличить статус на две единицы, то арифметически это означает уменьшить статус на две единицы.

Оценка потребляемой мощности и максимальная задержка схемы

Суммируем потребляемую мощность всех микросхем. Получаем потребляемую мощность = 3*20(регистры) + 18*16(микросхемы К555)=348 (мВт)
Максимальная задержка, которая может возникнуть в комбинационной схеме, была рассчитана с учетом наихудшего случая, т.е. когда входной сигнал проходит максимальное число микросхем, и в результате получили 60нс.

Временная диаграмма:
Используется система однофазной синхронизации.
Сначала на трехразрядную входную шину либо на “промах” поступает сигнал, а после подается синхросигнал. С помощью комбинационных схем происходит соответствующая корректировка статусов. Временные диаграммы представлены ниже. На выходе схемы постоянно присутствует номер регистра с самым низким статусом.


Рис.10

Входной сигнал в данном случае это либо номер ячейки(по трехразрядной входной шине), либо сигнал о промахе. Его длительность выбрана из условий наибольшей задержки схемы (60нс).
С – синхросигнал(его длительность не меньше 10нс).

Корректировка статусов завершена: с заказчиком было оговорено, что этот сигнал равен единице, после среза синхросигнала спустя не менее 10нс (задержка К555ИР16). На рис.10 корректировка статусов в первые 20 нс равна логической единице, т.к. предполагается, что до этого времени были другие корректировки статусов, т.е. схема уже находилась в каком-то состоянии.

Аппаратные затраты:
6 микросхем К555ЛИ1
3 микросхемы К555ЛЛ1
3 регистра К555ИР16
3 микросхемы К555ЛП5
2 микросхемы К555ЛЕ1
1 микросхема К555ЛЕ4

Проектирование схемы на САПР ALTERA Max + plus II
Спроектированная схема состоит из четырехразрядных регистров К555ИР16.
Реализовано три трехразрядных регистра. Иллюстрация схемы на рис. 11


Рис.11

Примечание: спроектированная выше схема (рис.11) является лишь фрагментом полной схемы и поэтому не содержит вход “промах” и предназначена для демонстрации работы проектированного СОЗУ типа КЭШ.

Входы REG_D1, REG_D2, REG_D3 поступают на входы SER регистров К555ИР16. Вход WRITE один на все регистры К555ИР16, который поступает на LD/SHN. Эти входы нужны для задания начальных значений регистров(в функциональной схеме этих входов нет, т.к. по согласованию с заказчиком — регистры уже загружены).

Временные диаграммы

Выходы OUT3-3, OUT3-2, OUT3-1 – составляют трехразрядный номер регистра со статусом 2.
Выходы OUT2-3, OUT2-2, OUT2-1 – составляют трехразрядный номер регистра со статусом 1.
Выходы OUT1-3, OUT1-2, OUT1-1 – составляют трехразрядный номер регистра со статусом 0.
Входы Razryad0, Razryad1, Razryad2 – составляют трехразрядную входную шину.
Рассмотрим 2 примера.
На рис. 12 изображена временная диаграмма. Вертикальная линия расположена в момент времени 58.2нс.


Рис.12

С помощью входных сигналов REG_D1, REG_D2, REG_D3 мы загрузили в регистры следующую информацию(номера регистров):
RG1 = > 100
RG2 = > 110
RG3 = > 011
Потом на Razryad2 и Razryad1 поступает сигнал “1”. И по срезу синхросигнала происходит перезапись регистров (все это видно на рис. 12).
Далее схема изображена на рис.13. Вертикальная линия расположена в момент времени 77.4 ns.


Рис.13

Похожий пример (см. рис. 2) мы уже рассматривали, поэтому не будем очень подробно описывать все.

Т.к у нас произошло обращение к ячейке 011, имеющей статус 2, которая хранилась в RG3, то следовательно после корректировки статусов регистры будут хранить следующие номера:
RG1 = > 011
RG2 = > 100
RG3 = > 110
Это видно из рис.13.

Далее аналогично:


Рис.14

Произошло обращение к ячейке со статусом 1. После корректировки статусов:
RG1 = > 100
RG2 = > 011
RG3 = > 110

Рассмотрим ещё один пример.


Рис.15

После загрузки регистров в них будет следующая информация(номера регистров):
RG1 = > 010
RG2 = > 100
RG3 = > 101
Потом по Razryad2 поступает сигнал “1”. И по срезу синхросигнала происходит перезапись регистров(корректировка статусов).


Рис.16

Произошло обращение к ячейке со статусом 1. После корректировки статусов:
RG1 = > 100
RG2 = > 010
RG3 = > 101

Далее:


Рис.17

Обращение к ячейке со статусом 2. После корректировки статусов:
RG1 = > 101
RG2 = > 100
RG3 = > 010

Далее


Рис.18

Обращение к ячейке со статусом 2. После корректировки статусов:
RG1 = > 010
RG2 = > 101
RG3 = > 100
Примечание:
Выходы OUT2-3, OUT2-2, OUT2-1, OUT1-3, OUT1-2, OUT1-1 – введены для демонстрации работы СОЗУ типа КЭШ.

Аппаратные затраты:
31 логический элемент “2И” (микросхема К555ЛИ1).
16 логических элементов “2ИЛИ”(микросхема К555ЛЛ1).
9 логических элементов “исключающее-ИЛИ”(микросхема К555ЛП5).
3 логических элемента “3ИЛИ-НЕ”(микросхема К555ЛЕ4).
3 регистра К555ИР16.
2 логических элемента “НЕ”(микросхема К555ЛН1).


Комментарии запрещены.




Статистика