- •Основные понятия и определения
- •Принципы программного управления Фон Неймана
- •Представление данных в эвм
- •Позиционные системы счисления Перевод чисел из одной системы счисления в другую
- •Структура и форматы команд
- •Типи машинных операций
- •Системы адресации
- •Построение вычислительной машины
- •Регистровое запоминающее устройство
- •Операции умножения и деления в эвм операция умножения чисел с фиксорованной запятой сводится к операциям сложения и сдвига Числа с фиксированной запятой (ф.З.) – правильная дробь со знаком
- •Сдвиг вправо двойного
- •Произведение и множимое хранятся в рзу, множитель – в регистре расширения Умножение чисел со знаком
- •Деление
- •1. Новые алгоритмы
- •2. Построение специализированных схем Два варианта быстрых схем
- •Такая организация каких-либо операций – это основа таблично-алгоритмических методов Память (зу) не является памятью автомата
- •Разобьем число на две части
- •В микрокоманде определяются адреса регистров, выбираемых по умолчанию
- •Кодирование микроопераций
- •Построение управляющего автомата
- •Управляющие автоматы с жесткой логикой
- •Управляющие автоматы с программируемой логикой
- •С хема фам
- •Реализация переходов
- •Условные переходы
- •Реализация оператора ключ (Многоразрядные условия)
- •Конвейер
- •Простейшая машина
- •Управляющий автомат
- •Операционный автомат
- •Системы памяти
- •Классическая четырехуровневая система памяти
- •Типы выборки
- •Предположим, что работаем с одним банком
- •Метод сегментов
- •Если добавить сегмент векторов прерываний, то в сумме объем сегментов будет равен 320 Кб
- •Метод сегментов является развитием метода банков, здесь банки памяти выделяются под каждый тип данных
- •Для каждого типа данных заводить большую физическую память
- •Метод окна
- •Распределение адресного пространства диспетчером памяти
- •Страничная организация памяти
- •Стратегии замещения
- •Физическая память не бесконечна, и по мере ее заполнения нам нужно выбирать, какие страницы мы будем из нее убирать, для этого существуют стратегии замещения.
- •При этом известны два подхода к решению этой проблемы:
- •Б.) При аппаратной реализации требуется определить:
- •Сверхоперативные запоминающие устройства
- •Память с расслоением обращений
- •Где № блока – адрес внутри модуля памяти; № сл. В бл. – адрес (смещение) в блоке;
- •За одно обращение читается весь блок из «к» слов в некоторый буфер
- •Синхронизация процессов обмена
- •Организация гальванической развязки
- •Общая шина
- •Варианты построения схем арбитража
- •Машина, управляемая данными.
- •Основные принципы организации суперЭвм
- •Risc-архитектура
- •Технологический обзор
- •Способы и уровни введения параллелизма
Разобьем число на две части
A
= A1
+ A2
· 2n/2
сдвиг вправо на n/2
разрядов
AB = (A1+A2·2n/2)·( B1+B2·2n/2) = A1·B1 + A1·B2·2n/2 + A2·B1·2n/2 + A2·B2·2n
Умножение двух чисел будем производить как в предыдущем случае
Например, умножаются два 8-ми разрядных числа
24 – возможное количество результатов операции умножения
24*4р = 256 8р будет занимать таблица результатов
Малорегистровая и многорегистровая структура автоматов. Варианты реализации аккумулятора.
Если n 4 (n – число слов), то выгодно использовать РЗУ
Слова – известные программе или некоторые внутренние (собственные) слова алгоритма
Например, вспомним команду JSB (переход на подпрограмму) – под считанный адрес отводится внутренняя переменная
Микропрограммный аккумулятор – аккумулятор это одна из ячеек РЗУ, доступ к нему осуществляется как к одному из регистров; может быть обращение к аккумулятору по умолчанию
Рграсш вводится для ускорения операций умножения, деления
Регистры собираются в РЗУ
Микрокоманда – совокупность УС (управляющих сигналов), вырабатываемых за 1 такт.
В микрокоманде определяются адреса регистров, выбираемых по умолчанию
Акк – один из регистров РЗК
Регистры можно определять как по команде, так и по микрокоманде
В ассемблере, как правило, регистр указывается явно
Акк – регистр, используемый по умолчанию
В Акк помещается результат
Многорегистровая схема с аппаратным аккумулятором
Когда говорят об Акк, говорят о младшей части Акк и старшей
Рг расширения – младшая часть аккумулятора
просто Рг Акк – старшая часть аккумулятора
Схема без РЗУ при n = 4 (или меньше) может быть более выгодной, чем с РЗУ
Схема без Рграсш (регистра расширения)
За каждым словом закрепляется свой регистр
Схема с непосредственными связями
Управляющий автомат
Как уже рассматривалось, процессор можно представить в виде двух автоматов: операционного и управляющего. Операционный автомат получает на вход некоторые данные и управляющую информацию из управляющего автомата, на выходе – результат операции над исходными данными. Управляющий автомат имеет на входе признаки (данных из ОА и внешние), а вырабатывает совокупности управляющих сигналов для ОА.
Микрокоманда – совокупность сигналов (двоичное слово), которые определяют действия.
Кодирование микроопераций
Микрооперация -?. Необходимо кодирование микроопераций.
Существует несколько вариантов кодирования микроопераций:
В
ертикальное
Горизонтальное
Смешанное
Косвенное (с нанопамятью)
Первый и второй вариант кодирования в чистом виде не встречается.
Вертикальное кодирование:
В данном случае микрооперация представляет собой унарный код, т.о. за один такт выполняется только одна микрооперация.
Достоинство: небольшой размер закодированной микроопераций (№ опер), а следовательно, и небольшие аппаратные затраты. Если количество микроопераций равно N, то размерность номера микрооперации равна n=log2N, т.к. N=2n .
Недостаток: выполняется всего одна микрооперация за такт – неэффективно, большие временные затраты.
Г
оризонтальное
кодирование:
В этом случае одна микрооперация может определить до k операций за такт, т.к. если микрооперация представляет собой двоичное слово длиной k, то единица в каком-нибудь i-м разряде означает выполнение некоторой i-й операции, а соответственно ноль - невыполнение.
При этом достоинства и недостатки противоположны достоинствам и недостаткам вертикального кодирования микроопераций. Сокращаются временные затраты, т.к. параллельно выполняются несколько операций, но увеличиваются аппаратные затраты, т.к. эту параллельность надо обеспечить соответствующим схемным решением и увеличением длины микрооперации (равна общему количеству операций).
Смешанное кодирование:
Множество микроопераций разбивается на группы, внутри одной группы микрооперации не совместимы во времени (из-за того, что выполняются на одной схеме, например, сложение и вычитание выполняются на одном сумматоре, но с разным знаком второго слагаемого). Т. к. микрооперации одной группы не совместимы по времени, то они представляются унарным кодом и их можно закодировать (как при вертикальном кодировании).
Микрокоманда состоит из нескольких полей, каждое из которых представляет соответствующую группу микроопераций.
Каждое поле управляет своим функциональным элементом.
Микрооперация - действие в одном функциональном элементе (поэтому несовместимы действия одной группы микроопераций).
Смешанное кодирование совмещает достоинства предыдущих способов:
за один такт выполняется несколько микроопераций (при условии что они совместимы во времени);
небольшие аппаратные затраты, т.к. длина микрокоманды меньше (равна не общему количеству микроопераций, а количество групп*[log2(Количество микроопераций в группе)] ) и не требуется дополнительных схем, т.к. необходимые дешифраторы уже есть в ОА и распараллеливаются только несовместимые микрооперации (не нужно стоить несколько сумматоров как при горизонтальном кодировании).
Косвенное кодирование с нанопамятью:
Нанопамять - малая память, которая хранит микрокоманды. Каждой микрокоманде соответствует свой номер в нанопамяти ( 0 … количество микрокоманд-1 ), которым она и кодируется. Т.о. при небольшой длине закодированной микрокоманды можно определить микрокоманду любой необходимой длины, т.е. возможно совмещение во времени любого числа микроопераций. Из затрат только введение небольшого ПЗУ.
