Э. Таненбаум - Архитектура компьютера (1127755), страница 67
Текст из файла (страница 67)
На рисунке имеются еще регистры МРС и М1К, а также память. Их предназначение мы обсудим чуть позже. Важно понимать, что хотя в тракте данных нет никаких запоминающих элементов, для прохождения сигнала по нему требуется определенное время. Изменение значения на шине В вызывает изменения на шине С не сразу, а только после паузы (это объясняется задержками на каждом шаге). Следовательно, даже если один из входных регистров изменяется, новое значение сохраняется в регистре задолго до того, как старое (и уже неправильное) значение этого регистра, помещенное на шину В, сможет достичь АЛУ. 268 Глава 4.
Уровень микроархитектуры Выходной сигнал схемы сдвига начинается установлен Регистры загружаются с шины С и памяти на фронте синхронизирующего сигнала Здесь доступен регистр МРС Установка сигналов для запуска тракта данных АПУ и схема сдвига Регистр Н Продвижение и шина В си~нала со схемы сдвига в регистры Рис.
4.2. Временная диаграмма цикла тракта данных Для такой системы требуется жесткая синхронизация и довольно длинный цикл; должно быть известно минимальное время прохождения сипгала через АЛУ; регистры должны загружаться с шины С очень быстро. Если подойти к этому вопросу с достаточным вниманием, можно сделать так, чтобы тракт данных функционировал правильно. Цикл тракта данных можно разбить на подциклы. Начало подцикла 1 инициирует спад синхронизирующего сигнала. Далее показано, что происходит во время каждого из подциклов. В скобках приводится величина подцикла.
1. Устанавливаются сигналы управления (Ьаг). 2. Значения регистров загружаются на шину В (Ьх). 3. Действуют АЛУ и схемы сдвига (Ьу). 4. Результаты проходят по шине С обратно к регистрам (Ьг). На фронте следующего цикла результаты сохраняются в регистрах. Никаких внешних сигналов, указывающих на начало и конец подцикла и сообщающих АЛУ, когда нужно начинать работу и передавать результаты на шину С, нет.
В действительности АЛУ и схема сдвига работают постоянно. Однако их входные сигналы недействительны в течение периода Ав е Ьж Точно так же их выходные сигналы недействительны в течение периода Ате е Ах е Ау. Единственными внешними сигналами, управляющими трактом данных, являются спад синхронизирующего сигнала, с которого начинается цикл тракта данных, и фронт синхронизирующего сигнала, инициирующий загрузку регистров с шины С. Границы подциклов определяются только временем прохождения сигнала, поэтому разработчики тракта данных должны все очень четко рассчитать.
Пример микроархитектуры 269 Функционирование памяти Наша машина может взаимодействовать с памятью двумя способами: через порт с пословной адресацией (32-разрядный) и через порт с побайтовой адресацией (8-разрядный). Порт с пословной адресацией управляется двумя регистрами: МАК (Мешогу АгЫгезз Ке81згег — адресный регистр памяти) и МРК (Мепюгу РаФа Кей(згег — информационный регистр памяти), которые показаны на рис. 4.1.
Порт с побайтовой адресацией управляется регистром РС, который записывает 1 байт в 8 младших битов регистра МВК (Мешогу Вц((ег Ке81зГег — буферный регистр памяти). Этот порт может считывать данные из памяти, но не может записывать их в память. Каждый из этих регистров, а также все остальные регистры, изображенные на рис. 4.1, запускаются одним из сигналов управления. Белая стрелка под регистром указывает на сигнал управления, который разрешает передавать выходной сигнал регистра на шину В. Регистр МАК не связан с шиной В, поэтому у него нет разрешающего сигнала управления.
У регистра Н этого сигнала тоже нет, так как он является единственным возможным левым входом АЛУ и поэтому всегда разрешен. Черная стрелка под регистром указывает на сигнал управления, который записывает (то есть загружает) регистр с шины С. Поскольку регистр МВК не может загружаться с шины С, у него нет записывающего сигнала управления (но зато есть два сигнала разрешения, о которых речь пойдет далее). Чтобы инициировать процесс считывания из памяти или записи в память, нужно загрузить соответствующие регистры памяти, а затем передать памяти сигнал чтения или записи (он не показан на рис. 4.1).
Регистр МАК содержит адреса слов, таким образом, значения О, 1, 2 и т. д. указывают на последовательные слова. Регистр РС содержит адреса байтов, таким образом, значения О, 1, 2 и т. д. указывают на последовательные байты. Если значение 2 поместить в регистр РС и начать процесс чтения, то из памяти считается байт 2, который затем будет записан в 8 младших битов регистра МВК. Если значение 2 поместить в регистр МАК и начать процесс чтения, то из памяти считаются байты с 8-го по 11-й (то есть слово 2), которые затем будут записаны в регистр МРК.
Для чего потребовалось два регистра с разной адресацией? Дело в том, что регистры МАК и РС требуются для обращения к двум разным областям памяти, а зачем это нужно, станет ясно чуть позже. А пока достаточно сказать, что регистры МАК и МГЖ используются для чтения и записи слов данных на уровне архитектуры команд, а регистры РС и МВК вЂ” для считывания программы уровня архитектуры команд, которая состоит из потока байтов.
Во всех остальных регистрах, содержащих адреса, применяется принцип пословной адресации, как и в МАК. В действительности существует только одна память с байтовой адресацией. Как же регистр МАК обращается к словам, если память состоит из байтов? Когда значение регистра МАК помещается на адресную шину, 32 бита этого значения не попадают точно на 32 адресные линии (с О по 31). Вместо этого бит О соединяется с адресной линией 2, бит один — с адресной линией 3 и т. д. Два старших бита не учитываются, поскольку они нужны только для адресов свыше 2з2, а такие адреса недопустимы в нашей машине на 4 Гбайт.
Когда значение МАК равно 1, 270 Глава 4. Уровень микроархитектуры на шину помещается адрес 4; когда значение МАК равно 2, на шину помещается адрес 8 и т. д, Распределение битов регистра МАК по адресным линиям иллюстрирует рис. 4.3. 32-разрядный регистр МАГт (счет идет в словах) О О 32-разрядная адресная шина (счет идет в байтах) Рис. 4.3. Распределение битов регистра МАН в адресной шине Как уже отмечалось, данные, считанные из памяти через 8-разрядный порт, сохраняются в 8-разрядном регистре МВК. Этот регистр может быть скопирован на шину В двумя способами: со знаком и без знака. Когда требуется значение без знака, 32-разрядное слово, помещаемое на шину В, содержит значение МВК в младших 8 битах и нули в остальных 24 битах.
Значения без знака нужны для индексирования таблиц или получения целого 16-разрядного числа из двух последовательных байтов (без знака) в потоке команд. Другой способ превращения 8-разрядного регистра МВК в 32-разрядное слово — считать его значением со знаком от — 128 до +127 включительно и использовать зто значение для порождения 32-разрядного слова с тем же самым численным значением. Это преобразование делается путем дублирования знакового (самого левого) бита регистра МВК в верхние 24 битовые позиции шины В.
Такой процесс называется расширением по знаку, или знаковым расширением. Если выбран данный параметр, то либо все старшие 24 бита примут значение О, либо все они примут значение 1 в зависимости от того, каков самый левый бит регистра МВК: О или 1. В какое именно 32-разрядное значение (со знаком или без знака) превратится 8-разрядное значение регистра МВК, определяется тем, какой из двух сигналов управления (две белые стрелки под регистром МВК на рис.
4.1) установлен. Прямоугольник, обозначенный на рисунке пунктиром, показывает способность 8-разрядного регистра МВК действовать в качестве источника 32-разрядных слов для шины В. Микрокоманды Для управления трактом данных, изображенным на рис. 4.1, нам нужно 29 сигналов. Их можно разделить на пять функциональных групп: + 9 сигналов для записи данных с шины С в регистры; + 9 сигналов для разрешения передачи регистров на шину В и в АДУ; Пример микроархитектуры 271 + 8 сигналов для управления АЛУ и схемой сдвига; + 2 сигнала, которые указывают, что нужно осуществить чтение или запись через регистры МАК/М1Ж (на рисунке они не показаны); + 1 сигнал, который указывает, что нужно осуществить вызов из памяти через регистры РС/МВК (на рисунке также не показан). Значения этих 29 сигналов управления определяют операции для одного цикла тракта данных.
Цикл состоит из передачи значений регистров на шину В, прохождения этих сигналов через АЛУ и схему сдвига, передачи полученных результатов на шину С и записи их в нужный регистр (регистры). Кроме того, если установлен сигнал считывания данных, то в конце цикла после загрузки регистра МАК начинает работать память. Данные из памяти помещаются в МВК или М1Ж в конце следующего цикла, а использоваться эти данные могут в цикле, который идет после него. Другими словами, если считывание из памяти через любой из портов начинается в конце цикла к, то полученные данные не смогут использоваться в цикле л -ь 1 (только в цикле Й -ь 2 и позже). Этот процесс иллюстрирует рис. 4.2. Сигналы управления памятью выдаются только после загрузки регистров МАК и РС, которая происходит на фронте синхронизирующего сигнала незадолго до конца цикла 1.