- •Введение.
- •1. Основы построения эвм. Основные определения.
- •2. Принципы действия эвм. Принципы программного управления.
- •Страница–словарь.
- •4. История развития вычислительной техники. Поколения эвм.
- •«Компьютер... XVII века»
- •5. Основные параметры эвм.
- •1. Запоминающие устройства эвм.
- •1.1. Типы зу и их основные характеристики.
- •1.2. Оперативные запоминающие устройства.
- •1.2.1. Общие принципы организации озу.
- •1.2.2. Структурная организация блока памяти.
- •1.2.3. Полупроводниковые интегральные зу с произвольным обращением.
- •1.2.4. Модули памяти и элементы памяти (бис).
- •1.2.5. Система электрических параметров полупроводниковых бис зу.
- •1.2.6. Контроль функционирования бис зу.
- •1.2.7. Организация многоблочной оперативной памяти.
- •1.2.8. Организация озу с многоканальным доступом.
- •1.2.9. Ассоциативные зу.
- •1.3. Сверхоперативные зу.
- •1.3.1. Назначение и типы созу.
- •1.3.2. Организация созу с прямой адресацией.
- •1.3.3. Организация стекового и магазинного созу.
- •1.3.4. Организация ассоциативных созу.
- •1.3.5. Оценка эффективности использования созу в процессоре.
- •1.4. Постоянные зу.
- •1.5. Виртуальная память.
- •Логическое распределение оперативной памяти в персональных компьютерах (Intel/pc).
- •1.6.1. Стандартная оперативная память.
- •1.6.1.1.Таблица векторов прерываний.
- •1.6.1.2. Область данных bios.
- •1.6.1.3. Область для операционной системы.
- •1.6.1.4. Основная область памяти.
- •2. Арифметико-логические устройства эвм
- •2.1. Типы арифметических устройств и их структуры.
- •2.2. Организация алу параллельного действия при работе над числами в естественной форме.
- •2.2.1. Суммирование и вычитание чисел при использовании накапливающего сумматора.
- •2.2.2. Принципы построения алу для сложения и вычитания на комбинационных суммах.
- •2.2.3. Организация алу (параллельного действия) в режиме умножения чисел с фиксированной запятой.
- •2.2.4. Аппаратные способы ускорения умножения в организации алу.
- •2.2.5. Алгоритмические (логические) способы ускорения умножения в организации алу.
- •2.2.6. Организация алу параллельного действия в режиме деления чисел с фиксированной запятой.
- •2.2.7. Организация алу при реализации логических операций и операций специальной арифметики.
- •2.3. Организация алу параллельного действия при работе над числами в нормальной форме.
- •2.3.1. Принцип построения и работы алу при суммировании и вычитании чисел в нормальной форме.
- •2.3.2. Направления и методы ускорения операций над числами с плавающей запятой.
- •2.4. Организация алу, работающих в двоично-десятичных кодах.
- •2.5.Об экзотических формах представления чисел. Логарифмическая форма:
- •Трансформирующаяся запятая.
- •Инверсная запятая.
- •2.6. Итеративные методы деления.
- •3. Процессоры.
- •3.1. Система команд эвм.
- •3.1.1. Структура и форматы команд.
- •3.1.2. Список команд.
- •3.1.3. Способы адресации.
- •3.2. Устройства управления.
- •3.2.1. Организация цуу (на примере гипотетической одноадресной эвм).
- •3.2.2. Принципы формирования уфс.
- •3.2.3. Организация микропрограммных устройств управления.
- •3.3. Организация внутрипроцессорных систем ввода-вывода информации.
- •3.3.1. Основные понятия и определения.
- •3.3.2. Способы обмена данными между ядром малой эвм и периферийными устройствами.
- •3.3.3. Программно управляемые способы передачи данных.
- •3.3.3.1. Простые типы передачи.
- •3.3.3.2. Последовательность событий при прерываниях.
- •3.3.3.3. Идентификация прерывающего устройства.
- •3.3.4. Организация прямого доступа к памяти.
- •4. Основы вычислительных конвейеров.
- •4.1. Введение в архитектурные принципы конвейерных процессоров и эвм.
- •Конвейерные сумматоры
- •Конвейерный умножитель
- •5. Архитектура сигнальных процессоров.
- •5.1. Введение. Основные задачи обработки сигналов. Методы обработки сигналов.
- •5.2. Основные характеристики и базовая архитектура семейства adsp-21xx
- •5.2.1. Общие сведения о составе функциональных устройств
- •5.2.2. Базовая архитектура.
- •5.2.3. Средства разработчиков для процессоров семейства.
- •5.3. Интерфейс процессоров adsp-21xx с памятью.
- •5.3.1. Интерфейс с загрузочной памятью.
- •5.3.2. Интерфейс с памятью программ.
- •5.3.3. Интерфейс с памятью данных.
- •5.4. Архитектура операционных устройств.
- •5.4.1. Арифметико-логическое устройство.
- •5.4.2. Умножитель/накопитель mac.
- •5.4.3. Устройство сдвига shifter.
5.4. Архитектура операционных устройств.
Все операционные устройства в процессорах семейства 16-битные устройства с фиксированной точкой. Почти все операции подразумевают представление знаковых чисел в форме «дополнения до двух». Остальные же используют беззнаковые числа или просто строки битов. Специальная поддержка имеется для организации многословных вычислений и блочной плавающей арифметики. Некоторые нюансы работы с форматами будут пояснены в разделах описания архитектур операционных устройств.
Формат «дополнения до двух» это обычный дополнительный код в формате дроби 1.15. В нём левый бит числа обозначает его знак, а 15 оставшихся бит представляют числа от -1 до почти +1 (почти из-за несимметричности представления знаковых чисел).
Иллюстрация:
Принятое Формат 1.15 Десятичное
шестнадцатиричное значение
обозначение
0х0001 0.000000000000001 0.000031
0х7FFF 0.111111111111111 0.999969
0хFFFF 1.111111111111111 -0.000031
0х8000 1.000000000000000 -1.000000
5.4.1. Арифметико-логическое устройство.
По набору операций ALU в процессорах семейства абсолютно стандартно. Единственным дополнением следует считать включение в состав устройства специальной логической схемы для организации многоциклового деления.
Структурная схема ALU показана на рис.5.6.
ALU имеет три группы 16-битных регистров, доступных для программиста: X, Y – регистры операндов и R – регистр результата. ALU использует входной сигнал переноса (CI), который соответствует биту переноса в регистре признаков результата («арифметического состояния» - ASTAT). ALU генерирует шесть признаков результата («статусных сигналов»):
- AZ – нулевой результат;
- AN – отрицательный результат;
- AC – перенос;
- AV – переполнение разрядной сетки;
- AS – знак результата;
- AQ – состояние частного.
Установка признаков происходит в конце командного цикла в регистре ASTAT.
Входной порт X операционной схемы может принимать данные из двух источников: из регистров AX или шины результата (R). Шина результатов соединяет выходные регистры всех операционных устройств, позволяя им быть непосредственными источниками операндов инструкций. Блок регистров AX состоит из 2-х регистров: AX0 и AX1. Эти регистры читаемы и могут быть записаны через шину DMD. Выход блока регистров AX таков, что один из них может обеспечивать подачу операнда для схемы ALU, в то время как другой может использоваться для записи в память через шину DMD.
Входной порт Y операционной схемы может принимать данные из двух источников: из набора регистров AY или из регистра обратной связи AF. Блок регистров AY состоит из 2-х регистров: AY0 и AY1. Эти регистры читаемы и могут быть записаны через шину DMD. Выход блока регистров AY таков, что один из них может обеспечивать подачу операнда для схемы ALU, в то время как другой может использоваться для записи в память через шину DMD.
Результат работы операционной схемы ALU поступает либо в регистр обратной связи AF – внутренний регистр ALU, который затем можно использовать результат непосредственно как операнд Y, либо в регистр результата AR. Регистр результата AR может записываться через шину DMD или через шину результатов R. Он также непосредственно загружаем через шину DMD.
Набор команд позволяет осуществлять чтение регистров ALU через шину PMD, но при этом нужно использовать устройство обмена между шинами DMD/PMD.
Все регистры, связанные с ALU могут, как читаться, так и записываться в одном цикле. Регистры читаются в начале цикла и записываются в конце. Новое значение, записанное в регистр, не может быть считано до начала следующего цикла.
Внимание! ALU содержит два полных набора операционных регистров AX0, AX1, AY0, AY1, AR и AF, что показано на рис.5.6. как «тень». В каждый момент времени работы процессора доступен лишь один набор. Другой набор регистров может быть сделан активным для очень быстрого переключения контекстов, например при обработке прерывания. Это означает, что новая задача, такая как обработка прерывания, может быть выполнена без запоминания текущего состояния регистров. Выбор «первичного» или «вторичного» набора регистров определяется младшим битом в регистре состояния (режима работы и статуса) процессора MSTAT. Если в этом бите 0, то используется «первичный» набор регистров, а если 1, то «вторичный».
Список функций ALU:
R = X + Y;
R = X + Y + CI - сложение с переносом;
R = X – Y
R = X – Y – CI – 1 - вычитание с заёмом;
R = Y – X;
R = Y – X – CI – 1;
R = – X;
R = – Y;
R = Y + 1;
R = Y – 1;
R = X;
R = Y;
R = 0 - обнуление (очистка) результата;
R = ABS (X) - результат равен абсолютному значению X;
R = X AND Y - поразрядное логическое И;
R = X OR Y - поразрядное логическое ИЛИ;
R = X XOR Y - поразрядное логическое «исключающее ИЛИ» (сумма по модулю 2);
R = NOT X - поразрядная инверсия X;
R = NOT Y - поразрядная инверсия Y.
Список инструкций стандартизован с подавляющим большинством простых микропрограммируемых процессоров и RISC-процессоров.
Особые режимы.
Регистр AR имеет режим работы, при котором он после операции автоматически устанавливается в максимальное положительное или максимальное отрицательное значение (режим «насыщения»). Этот режим задается установкой бита 3 регистра MSTAT. При включении режима значение, получаемое в AR, зависит от комбинации значений флагов AC и AV, сгенерированных ALU в текущем цикле:
Переполнение (AV) Перенос (AC) Содержимое AR
0 0 по операции ALU
0 1 по операции ALU
1 0 0111111111111111
1 1 1000000000000000
(Внимание! Забегаем вперёд! Реализация режима «насыщения» существенно отличается от аналогичного режима MAC, где режим устанавливается в самой команде.) Регистр AF не подчиняется режиму «насыщения».
Режим «защёлки» переполнения ALU, устанавливаемый битом 2 регистра MSTAT, приводит к тому, что флаг переполнения AV сохраняет установленное по переполнению значение, несмотря на то, что следующие команды могли не генерировать переполнение. Флаг AV может быть очищен только прямой записью 0 через шину DMD.
Функция деления (не операция, а по сути дела подпрограмма!) реализуется дополнительной сдвиговой схемой, не показанной на рис.5.6. Деление обеспечивается реализацией двух «примитивов деления», которые поддерживают алгоритм деления без восстановления остатка. Деление может быть знаковым или беззнаковым, но делимое и делитель должны иметь один тип.
Стандартное деление (с одинарной точностью) предполагает 32-битное делимое и 16-битный делитель и выполняется за 16 командных циклов. Также могут быть вычислены частные меньшей и большей разрядности при некоторых коррекциях алгоритма. Делитель может располагаться в AX0, AX1 или в регистре R любого операционного устройства. Старшая часть знакового делимого может располагаться в AY1 или в AF. Старшая часть беззнакового делимого должна располагаться только в AF. Младшая часть делимого должна располагаться только в AY0. По завершении операции частное находится в AY0.
Логические схемы «примитивов деления» DIVS и DIVQ показаны на рис.5.7. Первая из них выполняется только один раз (один цикл) и только в начале деления знаковых чисел. Вторая (DIVQ) выполняется 15 раз после первой или 16 раз при выполнении знакового или беззнакового деления соответственно. Поскольку при беззнаковом делении операция DIVS не используется, то вначале флаг AQ (признак знака частичного остатка) должен быть принудительно сброшен в 0.
Проанализируйте работу приведённых схем в соответствии с алгоритмом деления без восстановления остатка самостоятельно!
Схемы корректно формируют в случае необходимости признак переполнения AV.