Главная » Просмотр файлов » Э. Таненбаум - Архитектура компьютера

Э. Таненбаум - Архитектура компьютера (1127755), страница 75

Файл №1127755 Э. Таненбаум - Архитектура компьютера (Э. Таненбаум - Архитектура компьютера) 75 страницаЭ. Таненбаум - Архитектура компьютера (1127755) страница 752019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 75)

Чтобы определить адрес для считывания, нужно прибавить смещение, которое хранится в регистре МВК (это буферный регистр памяти), к содержимому регистра 1Л'. Доступ к регистрам МВК и 1Л' можно получить только через шину В, поэтому сначала значение 1Лт копируется в регистр Н (в цикле 1) оаб1), а затем прибавляется значение МВК. Результат суммирования копируется в регистр МАК, и начинается процесс чтения (в цикле 1) оаб2). ЧЧ(ОЕ Переый бейт второй байт (ОхС4) (Ох16) индекса индекса Рис. 4.14. Команда П.ОАО с однобайтным индексом (а); команда ЧЧ)ОЕ П.ОАО с двухбайтным индексом (б) Пример реализации микроархитектуры 301 Однако здесь регистр МВК используется не совсем так, как в команде 61РО5Н, где байт расширен по знаку.

В случае с индексом смещение всегда положительно, поэтому байт смещения должен быть целым числом без знака (в отличие от 01РОЗН, где байт представляет собой 8-разрядное целое число со знаком). Интерфейс между регистром МВК и шиной В разработан таким образом, чтобы были возможны обе операции. В случае с командой 81РО5Н (где байт — 8-рззрядное целое число со знаком) самый левый бит значения МВК копируется в 24 старших бита шины В. В случае с командой П ОАО (где байт — 8-разрядное целое число без знака) 24 старших бита шины В заполняются нулями. Два специальных сигнала помогают определить, какую из этих двух операций нужно выполнить (см.

Рис. 4.5). В микропрограмме слово МВК указывает на байт со знаком (как в команде ЕйрозНЗ), а МВК(3 — на байт без знака (как в команде Лоаб2). Пока ожидается поступление операнда из памяти (во время 11оабЗ), значение регистра 8Р увеличивается на 1 для записи новой вершины стека. Это значение также копируется в регистр МАК (это требуется для записи операнда в стек). Затем значение РС снова увеличивается на 1, чтобы вызвать следующий код операции (микрокоманда 11оа44). Наконец, значение МТ)К копируется в регистр ТО5, чтобы показать новое верхнее слово стека (микрокоманда Лоа45). Команда 15ТОйЕ противоположна команде 1ЕОА0 (из стека выталкивается верхнее слово и сохраняется в ячейке памяти, адрес которой равен сумме значения регистра 1Л' и индекса данной команды).

В данном случае используется такой же формат, как и в команде 1ЕОЮ (см. рис. 4.14, а), только здесь код операции равен не Ох15, а Ох36. Поскольку верхнее слово стека уже известно (оно находится в регистре ТО5), его можно сразу сохранить в памяти. Однако новое верхнее слово стека все же необходимо вызвать из памяти, поэтому требуются и чтение, и запись, хотя эти операции можно выполнять в любом порядке (или даже одновременно, если бы это было возможно). Команды 1ЕОА0 и 15ТОйЕ имеют доступ только к первым 256 локальным переменным.

Хотя для большинства программ этого пространства достаточно, все же нужно иметь возможность обращаться к любой локальной переменной, в какой бы части фрейма она ни находилась. Чтобы обеспечить такую возможность, (1Ъ'М использует то же средство, что и )'х'М, — специальный код операции Н10Е (так называемый префиксный байт), за которым следует код операции 1ЫАО или 15ТОйЕ. Когда встречается такая последовательность, формат команды П.ОЮ или 15ТОЙЕ меняется; в соответствии с новым форматом за кодом операции следует не 8-разрядный, а 16-разрядный индекс, как показано на рис.

4.14, б. Команда Н10Е декодируется обычным способом. Сначала происходит переход к микрокоманде и14е1, которая обрабатывает код операции команды Н10Е. Хотя код операции, который нужно расширить, уже присутствует в регистре МВК, микрокоманда кц4е1 вызывает первый байт после кода операции, поскольку этого требует логика микропрограммы. Затем совершается еще один межуровневый переход, но на этот раз для перехода используется байт, следующий за Н10Е. Однако, поскольку команда Н10Е П.ОАО требует иного, чем 1ЕОА0, набора микрокоманд, команда Ы10Е 15ТОНŠ— иного, чем 15ТОйЕ, и т. д., при межуровневом переходе код операции нельзя использовать в качестве целевого адреса. 302 Глава 4. Уровень микроархитектуры Вместо этого микрокоманда итое1 подвергает логическому сложению адрес Ох100 и код операции, поместив его в регистр МРС. В результате интерпретация И10Е ЫАО начинается с адреса Ох115 (а не Ох15), интерпретация И10Е 1ЗТОкŠ— с адреса Ох136 (а не Ох36) и т.

д. Таким образом, каждый код операции И10Е начинается с адреса, который в управляющей памяти на 256 (то есть Ох100) слов выше, чем соответствующий код обычной операции. Начальная последовательность микрокоманд для 11.0АО и И10Е И.ОАО показана на рис. 4.15. Адрес УпРавплющал памЯть Порядок выполнения микрокоманд УУ10Е 110АО 1ЕОАО 3 1 1 Рис. 4.1 В. Начало последовательности микрокоманд для команд 1ьОАО и ЧЛОЕ 1ЕОАО. Адреса приводятся в качестве примера Команда И10Е 1ЕОАО отличается от обычной команды 1ЫАО только тем, что индекс в ней состоит из двух индексных байтов.

Слияние и последующее суммирование этих байтов должно происходить поэтапно, при этом сначала первый индексный байт сдвигается влево на 8 бит и копируется в Н. Поскольку индекс— целое число без знака, здесь используется регистр МВВ() (24 старших бита заполняются нулями). Затем прибавляется второй байт индекса (операция сложения идентична слиянию, поскольку младший байт регистра Н в данный момент равен 0), при этом гарантируется, что между байтами не будет переноса. Результат снова сохраняется в регистре Н.

С этого момента происходят те же действия, что и в стандартной команде 11.ОАО. Вместо того чтобы дублировать последние микрокоманды (от т1оабЗ до т1оа45) команды 1ЕОАО, мы просто совершили переход от итбе т1оа44 к тцоаоЗ. Отметим, что во время выполнения этой команды значение РС должно увеличиваться на 1 дважды, чтобы в конце этот регистр указывал на следующий код операции. Команда П.ОАО увеличивает значение один раз; последовательность команд И10Е 1ЕОАО также увеличивает это значение один раз.

Пример реализации микроархитектуры 303 Такая же ситуация имеет место при выполнении Ы10Е 15ТОйЕ. После первых четырех микрокоманд (от кббе )зтоге1 до кббе 1зтоге4) последовательность действий та же, что и в команде 15ТОйЕ после первых двух микрокоманд, поэтому мы совершаем переход от и)бе 1зсоге4 к 1згогеЗ. Далее мы рассмотрим команду СОС М. Есть два отличия этой команды от 1СОАО. Во-первых, она содержит 16-разрядное смещение без знака (как и расширенная версия 1СОАО), во-вторых, эта команда индексируется из регистра СРР, а не из 1Л~, поскольку она считывает значение из набора констант, а не из фрейма локальных переменных.

(Существует еще и краткая форма этой команды — СОС, но мы не стали включать ее в машину 11'х'М, поскольку полная форма содержит в себе все варианты краткой формы, хотя при этом занимает 3 байта вместо 2.) Команда 1!МС вЂ” единственная команда, помимо 15ТОЙЕ, которая может изменять локальную переменную. Она включает в себя два операнда по одному байту, как показано на рис. 4.16. Рис. 4.16.

Команда ВЫС содержит двв поля операндов Поле индекса нужно для того, чтобы определить смещение от начала фрейма локальных переменных. Команда считывает эту переменную, увеличивает ее на константу (константа содержится во втором поле) и помещает результат обратно в ту же ячейку памяти. Отметим, что константа является 8-разрядным числом со знаком в промежутке от -128 до +127.

Машина ЗУМ поддерживает расширенную версию этой команды, в которой длина каждого операнда составляет 2 байта. Рассмотрим первую команду перехода — ЮТО. Эта команда изменяет значение регистра РС таким образом, чтобы следующая 1)Ъ'М-команда находилась в ячейке памяти с адресом, который вычисляется путем прибавления 16-разрядного смещения (со знаком) к адресу кода операции ЮТО. Сложность здесь в том, что смещение связано со значением, находящимся в регистре РС в начале декодирования команды, а не тем, которое содержится в том же регистре после вызова 2 байт смещения. Чтобы лучше это понять, посмотрите на рис. 4.17, а. Здесь показана ситуация, которая имеет место в начале цикла Ма1п1.

Код операции уже находится в регистре МВК, но значение РС еще не увеличилось. На рис. 4.17, б мы видим ситуацию в начале цикла досо1. В данном случае значение РС уже увеличено на 1, а первый байт смещения уже передан в МВК. В следующей микрокоманде (рнс. 4.17, в) прежнее значение РС, которое указывает на код операции, сохраняется в регистре ОРС. Это значение требуется сохранять, поскольку именно от него, а не от текущего значения РС зависит смещение команды 6ОТО.

И именно для этого предназначен регистр ОРС. Микрокоманда досо2 начинает вызов второго байта смещения, что приводит к ситуации, показанной на рис. 4.17, г (мнкрокоманда дойоЗ). После того как первый байт смещения сдвигается влево на 8 бит и копируется в регистр Н, мы переходим к микрокоманде досо4 (рис. 4.17, д). Теперь у нас первый байт смещения, сдвинутый влево, находится в регистре Н, второй байт смещения — в реги- 304 Глава 4. Уровень микроархитектуры стре МВК, а основание смещения — в регистре ОРС. В микрокоманде дособ путем прибавления полного 16-разрядного смещения к основанию смещения мы получаем новый адрес, который помещается в регистр РС.

Характеристики

Тип файла
DJVU-файл
Размер
13,7 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее