- •Введение.
- •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.
2.2.4. Аппаратные способы ускорения умножения в организации алу.
Рассматриваются только два конкретных решения.
Один из способов сокращения ТУ (времени умножения) основан на сокращении или исключении сдвигов. Идея заключается в создании «функционального пространства сдвигов».
Рис. 2.2.4.1.
Из УУ после записи в регистры В и С и обнуления SM (y1) поступает y2, открываются вентили & и информация о множимом записывается на триггера накапливающего сумматора (в n младших разрядов). Затем идет сигнал y3 и частичные произведения со сдвигом на один разряд влево подается на SM и т.д.
Еще больше время сократится, если монтажные «ИЛИ» заменить разрядами комбинационного сумматора, так как получится матричная схема умножения.
<95>
Еще одной схемой, позволяющей получить высокое быстродействие по умножению, является схема с использованием сумматоров с запоминанием переносов.
В этом случае АЛУ имеет дополнительный регистр переноса, в котором запоминается результат переноса, а в РгSM запоминается промежуточная сумма без учета переносов. При поступлении очередного слагаемого (накопление частичного произведения) выполняется суммирование разрядов трех регистров: Рг-SM; регистра переносов и «нового» слагаемого. Перенос же через все разряды реализуется только при определении окончательного результата и может быть выполнен любым способом.
Сложение в данном случае выполняется как поразрядная операция без затрат времени на распространение переносов.
Соответствующая несколько упрощенная функциональная схема АЛУ:
Рис. 2.2.4.2.
Очень существенно, что в данной схеме не предусмотрены цепи сдвига содержимого SM вправо. Этот сдвиг сумм частичных произведений получают за счет схемы соединений разрядов Рг-SM и См. В заключительном такте производится суммирование содержимого Рг-SM и РгП с распространением волны переносов. В итоге:
,
где – время задержки распространения сигнала переноса в одном разряде + время «сдвига»; ТС – время окончательного суммирования.
В конечном счете выигрыш по быстродействию по сравнению с классической схемой в n/2 раз.
<96>
2.2.5. Алгоритмические (логические) способы ускорения умножения в организации алу.
Дополнительные затраты оборудования в этих способах не зависят от разрядности АЛУ, т.к. усложняется, в основном, схема управления АЛУ.
Рассмотрим первую группу способов, позволяющих уменьшить количество суммирований частичных произведений в ходе умножения. Главное за счет чего это можно сделать: выявить в множителе группы из нескольких единиц (а также нескольких нулей). Тогда используется простое соотношение:
,
например:
(здесь используется соотношение: ),
n и k – номера разрядов числа, между которыми во всех разрядах в числе записаны единицы. Но тогда нужно лишь множимое сдвинуть вначале на n-1 разряд, а затем на k разрядов, и вслед за этим вычесть из 1-го числа второе.
Обобщенно это приводит к такому алгоритму, подлежащему реализации в АЛУ:
Шаг 1. Просматривая множитель, начиная с младшего разряда, сдвигать содержимое сумматора (частичное произведение) вправо до появления первой единицы в множителе.
Шаг 2. На первой единице передать множимое инверсным кодом в сумматор.
Шаг 3. Сдвигать содержимое сумматора синхронно с просмотром разрядов множителя до появления первого «0».
Шаг 4. Передать на первом «0» в сумматор множимое прямым кодом и перейти к первому шагу.
Завершается алгоритм с просмотром последнего (старшего разряда) множителя.
Этот алгоритм будет плох лишь при обработке комбинаций с чередующимися «0» и «1»: 01010101, так как окажется, что на каждые 2 разряда вместо одного сложения (в обычном алгоритме) нужно выполнять одно сложение и одно вычитание. Поэтому этот алгоритм используется в усовершенствованном виде в алгоритме Лемана. Идея этого алгоритма основана на соотношениях:
первое: – можно использовать, когда переходим от ожидаемого «0» к ожидаемой «1».
второе: – можно использовать при переходе от ожидаемой «1» к ожидаемому «0».
Пояснение-иллюстрация:
а) 000100 Если две группы нулей разделены «1» в k-ой позиции, то вместо вычитания в k-ой позиции и сложения в k+1-ой достаточно только выполнить сложение в k-ой позиции.
б) 110111 Если две группы единиц разделены «0» в k-ой позиции, то достаточно выполнить только вычитание в k-ой позиции.
Итак, надо знать:
-
по каким сдвигам-ожиданиям («0» или «1») происходит просмотр множителя;
-
содержимое следующего (соседнего старшего) разряда за анализируемым.
Первое очень просто реализовать с помощью триггера (начальная установка в «0»), а тогда тип передачи множимого на сумматор задается таблицей:
Содержимое триггера режима |
Содержимое k+1-го разряда |
Содержимое k-го разряда |
Тип передачи |
Примечание |
Движение по «0» |
0 |
1 |
+В |
Изолированная «1»! Режим не меняем. |
Движение по «0» |
1 |
1 |
–В |
Меняем режим (состояние Тг реж) |
Движение по «1» |
1 |
0 |
–В |
Изолированный «0»! Режим не меняем. |
Движение по «1» |
0 |
0 |
+В |
Меняем режим (состояние Тг реж) |
Следовательно, достаточно несложного конечного автомата и наличия двух цепей передачи множимого в сумматор.
Рис. 2.2.5.1.
Перед началом умножения Тг режима «гасится» (устанавливается в ноль сигналом у0).
Даже в самом неблагоприятном случае число суммирований равно n/2, а в среднем и того меньше – n/3.
<97>
Теперь о втором способе: обработке за один шаг нескольких разрядов (обычно двух).
Пусть используем первый алгоритм умножения (см. п.2.2.3.) и рассматриваем сразу два младших разряда сдвигающего регистра, хранящего множитель. Какие возможны варианты?
-
Нужен простой сдвиг частичного произведения на два разряда.
-
К частичному произведению добавляется одинарное множимое и, далее, сдвиг на два разряда.
10) Добавление к частичному произведению удвоенного множимого и, далее, сдвиг на два разряда.
11) Утраивать?? Нет! Из суммы частичных произведений вычитается одинарное множимое. Но далее будет необходима корректировка на следующем шаге. (Можно, конечно, и утроить множимое, но за 2 такта: первый такт по варианту (10) и второй по варианту (01)). И всё же корректировка эффективнее!
Как производится корректировка?
Поскольку одинарное множимое вычитается вместо добавления утроенного, то коррекция результата предполагает далее прибавление учетверенного множимого!
Именно так! Но после сдвига на два разряда вправо сумма частичных произведений, противолежащая множимому, как бы увеличилась в 4 раза. Значит, для корректировки на следующем этапе достаточно прибавить одинарное множимое.
Проще всего это сделать, преобразуя следующую просматриваемую пару разрядов множителя:
пару 00 - в пару 01
пару 01 - в пару 10
пару 10 - в пару 11
пару 11 - в пару 00, но с учетом дополнительной единицы для следующей пары.
Хранится дополнительная единица в специальном триггере. Либо она учитывается схемотехнически.
Два слова об удвоении множимого. Его можно реализовать:
а) сдвигом влево в Рг множимого и
б) переключением разрядов на другие входы сумматоров (схемный сдвиг).
Рис. 2.2.5.2.
Пунктиром на рисунке показано, что вместо специального триггера можно использовать в качестве знаковый разряд, но при этом
-
должен быть использован (при вычитании) дополнительный код;
-
SM должен иметь цепь арифметического сдвига вправо на два разряда (с размножением «1» в знаковом разряде)
– при р3 ;
-
передача из SM в РгС младших разрядов происходит в прямом коде, либо нужен достаточно сумматор.
<98>