Разработка прототипа ядра микроЭВМ, страница 3

Одной из особенностей ОБ является то, что для обеспечения выполнения всех оговоренных ранее форматов команд на LB выдаются данные с Y шины. У этой схемы есть недостаток: локальная шина данных оказывается несколько перегружена, т.к. на нее работают шесть источников: регистр входных данных; регистр выходных данных; параллельный умножитель; PLD; регистр микрокоманд; МПС.

МПС работает в режиме Master и является единственной в структуре ОБ, по этому на вход задания позиции старшей секции MSS подана логическая  “1”.

В операционный блок включен параллельный умножитель LMU217KMB65 фирмы Logic Devices Incorporated.

Устройство имеет два 16-разрядных входных и один 16-разрядный выходной порты данных, выполняет знаковое и беззнаковое умножение целых чисел однократной и двойной точности, имеет внутренние регистры с общей синхронизацией и индивидуальным управлением записью.

Входы ENX, ENY соединены через инвертор и управляются одним битом, который разрешает загрузку операндов для умножения во внутренние регистры умножителя (либо в RGX, либо в RGY). Входы RND, FT, ENR# должны быть соединены для получения результата операции умножения однократной и двойной точности. При активизации этого входа:

·  высоким уровнем, включается режим округления произведения до 16 разрядов, а так же режим прозрачности, который дает возможность сквозного прохождения результата операции произведения мимо регистров результата (младшей и старшей части) на выходную шину данных умножителя. Это позволяет уменьшить количество циклов для получения полного конечного результата  операции умножения.

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

На вход RS подана константа “1” так как формат данных является целочисленным.

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

Положительные стороны такой замены:

·  Применение МИС и СИС сопровождается резким ростом числа корпусов ИС, усложняется монтаж, снижается надежность и быстродействие системы. PLD лишен этих недостатков.

·  Построение логики сдвигов на PLD проще, чем на мультиплексорах.

·  Задержка распространения сигнала у CY37032-154 составляет 7.5 нс (почти в 3 раза меньше, чем у схемы на мультиплексорах).

·  Так как при использовании PLD остается свободной часть аппаратных ресурсов, то селекторы адреса также реализуются в этой микросхеме.

Разрядность команды составляет 16 бит, для адресации внутреннего РГФ выделено 8 бит команды, а другие 8 бит оставлены на код операции. В результате имеем программно-доступными не все ячейки РГФ, часть из них является только микропрограммно-доступными.

Данные (флаги состояния) попадают в блок статусного регистра напрямую из АЛУ, либо через шину Y. Также флаги могут попасть из RgStatus на локальную шину. Так обеспечивается сохранение и восстановление значений флагов состояний.

Ко входу С0 подключен мультиплексор SN74AC153. Он позволяет подавать на этот вход «0», «1» или значение флага С16. Это нужно для организации арифметики двойной точности.

Для сохранения текущего состояния РгA (регистра адреса памяти) и РгВых (регистра выходных данных) на их входы CLKEN# (разрешение синхронной загрузки) подаются соответствующие биты микрокоманды.

Схема ОБ приведена в приложении 1.

Назначение выводов умножителя.

X15-X0 – вход множимого. Порт X;

Y15-Y0 – вход множителя. Порт Y;

CLK – вход тактирования для всех внутренних регистров;

ENX#, ENY# – входы разрешения загрузки регистров входных данных RGX и RGY, активные L-уровни;

RS – вход задания формата результата. RS=H выбирает полный 32-разрядный результат, RS=L – сдвинутое на один разряд влево 31-разрядное произведение, соответствующее арифметике дробных чисел в дополнительных кодах;

ENR# – вход разрешения загрузки регистра произведения, активный L-уровень;

FT – вход разрешения сквозной передачи операндов X, Y, минуя регистр результата. Активный H-уровень;