logo
Разработка гипотетической ЭВМ

Центральный процессор

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

Операционный блок (ОБ) (Рисунок 3) с помощью АЛУ, которая в нем содержится, выполняет арифметические и логические операции над поданными на вход операндами. Выбор конкретной операции из всех возможных для данного ОБ определяется кодом операции команды.

Состав ОБ:

· АЛУ Am29332 (32-разрядный)

· Регистровый файл Am29334 (2х16-разрядный)

· Входной регистр данных

· Выходной регистр данных и адреса

Рисунок 3. Структурная схема ПЭ Am2903

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

Состав МУУ:

· Секвенсор микрокоманд Am2910

· Регистр команд

· Преобразователь начального адреса (ПНА)

· Микропрограммная память (МПП)

· Регистр микрокоманд

Рисунок 4. Структурная схема МУУ

В качестве секвенсора микрокоманд в блоке микропрограммного управления используется AM2910. Довольно широкие возможности этого прибора позволяют гибко адресовать микропрограммную память. У него существует возможность выборки адреса следующей команды из разных источников (с ПНА, из регистра микрокоманд, из внутреннего регистра, а также из внутреннего счетчика), что позволяет в микроподпрограмме реализовывать переходы, а также использовать в БМУ конвейерную структуру.

Рисунок 5. Устройство управления ЭВМ на базе БИС Am2910

Код операции из регистра команд поступает на вход преобразователя начального адреса, который представляет собой комбинационную схему, структура которой зависит от системы команд и микропрограмм, соответствующих этим командам и их распределению в памяти микропрограмм. С ПНА выдается адрес подпрограммы. Секвенсор выбирает источник адреса и выдает его на адресные входы микропрограммной памяти. Из памяти выбирается микрокоманда и попадает в регистр микрокоманд. Микрокоманда хранится в регистре микрокоманд в течении времени ее выполнения( т.е. 1 такт). В момент, когда микрокоманда начинает выполняться, секвенсор формирует адрес следующей микрокоманды.

Кэш представляет собой быстродействующее статическое ОЗУ небольшого объёма, в котором по мере работы процессора сохраняется наиболее актуальная информация. Принцип работы кэш-памяти следующий: в случае, если ЦП хочет прочесть слово из основной памяти, сначала осуществляется поиск копии этого слова в КЭШе. Если это слово уже в нем (попадание в КЭШ), то обращение к ОП не происходит, а в ЦП передается слово из КЭШа. В случае если такого слова в КЭШе не обнаружено (промах), то слово передается в процессор из ОП с одновременной записью его в КЭШ (а вместе с ним и еще несколько близлежащих слов - оперирует блоками). Постепенно КЭШ заполняется и при очередной вставке необходимо определить, в соответствии с действующим алгоритмом замещения, вероятность обращения к какому блоку меньше всего и следовательно удаление которого в меньшей степени скажется на дальнейший процент попадания.

Функции заполнения КЭШа, замещения блоков данных и поиска данных осуществляет контроллер кэш памяти.

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

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

Алгоритм замещения - LRU (Last Recently Used), который предполагает подсчет обращений к тому или иному блоку (выполняется контроллером).

Также контроллер КЭШ памяти должен обновлять свои данные при изменении соответствующего блока в ОП и наоборот (сквозная запись), однако такой подход приводит к существенному снижению быстродействия. Компромиссным решением является использование бита достоверности. При начале работы все биты достоверности устанавливаются в 0. Когда блок КЭШа первый раз загружается из ОП, его бит достоверности устанавливается в 1. Если блок ОП обновляется из другого источника, минуя кэш (при прямой передаче данных из ПУ в ОП), контроллер проверяет находится ли загружаемый блок в КЭШе. Если да, его бит достоверности устанавливается в 0, чтобы в КЭШе не оказалось устаревших данных. При обратной пересылке данных из ОП в ПУ методом ПДП данные, находящиеся в ОП могут не отображать изменений, внесенных в кэшируемую копию. Поэтому перед их копированием необходимо переписать все изменения из КЭШа в ОП (т.к. прямая пересылка данных между ОП и ПУ осуществляется редко, то это не скажется на быстродействии системы). Таким образом, КЭШ всегда согласован с ОП.

Для проектируемой ЭВМ принята следующая организация КЭШа:

· Кэшированию подвергается только ОЗУ, а не вся ОП - ПЗУ используется крайне редко, поэтому использование КЭШа не приведет к повышению производительности.

· Вся ОЗУ представлена 131072-мя блоками по 16-ть 32-разрядных слов в каждом.

· КЭШ состоит из 1024-ти множеств, по 4 блока в каждом.

Выборка из КЭШа происходит следующим образом:

Для каждого блока ОП поле «Множество» строго определяет множество, в которое может быть записан блок. В нутрии множества блок может занять любое свободное место (всего в множество может быть записано 4 блока). Если свободных мест нет, то новый блок вытесняет один из старых, в соответствии с дисциплиной LRU.

При поиске слова в КЭШе сначала определяется множество, в котором может быть найден блок, содержащий искомую запись. Затем внутри этого множества осуществляется ассоциативный поиск по «Тэгу». Если блок найден, то положение искомого слова внутри него определяет поле «Слово». Если поиск не дал результата, то искомого блока в КЭШе нет и следует загрузить его из ОП.

К каждому блоку прикреплена следующая служебная информация:

· Тэг (7бит)

· Бит достоверности (1бит)

· Счетчик частоты обращения ()

Емкость КЭШа (без учета служебной информации) составляет 256Кб. Организация 4Кx512бит (4К = 1024множества*4блока; 512 = 16слов*32разряда, так как обмен между контроллером и КЭШем происходит поблочно).

Архитектура ЦП (Рисунок 4):

Рисунок 6. Структурная схема процессора

Таким образом, код операции из регистра команд поступает на ПНА. Преобразованный адрес с ПНА идет на секвенсор. Секвенсор выбирает источник адреса и выдает его на вход МПП. На выходах последней появляется микрокоманда и фиксируется в регистре микрокоманд. В момент, когда микрокоманда начинает выполняться, секвенсор формирует адрес следующей микрокоманды.

На границе инструкций контроллер прерываний при активном INT выдает инструкцию вызова прерываний. Далее все штатным образом: выполняется микропроцедура обработки прерывания, которая сохраняет словосостояние процессора, активирует INTA, получат вектор процессора, выполняет обработчик.