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

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

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

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

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

Для некоторых команд использование регистра ТОК,напротив, влечет за собой большее количество обращений к памяти. Например, команда РОР отбрасывает верхнее слово стека и, следовательно, должна вызвать новое значение вершины стека из памяти и записать его в регистр ТОК. ОРС вЂ” временный регистр. У него нет определенного назначения. В нем, например, может храниться адрес кода операции для команды перехода, пока значение РС увеличивается, чтобы получить доступ к параметрам. Он также используется в качестве временного регистра в командах условного перехода. Как и все интерпретаторы, микропрограмма, приведенная в табл.

4.3, включает в себя основной цикл, который вызывает, декодирует и выполняет команды интерпретируемой программы (в данном случае 11ЧМ-команды). Основной цикл начинается со строки Иа1п1, а именно — с инварнанта (утверждения), что в регистр РС уже загружен адрес ячейки памяти, в которой содержится код операции. Более того, этот код операции уже вызван из памяти в регистр МВК. Когда мы вернемся к этой ячейке, мы должны быть уверены, что значение РС уже обновлено и указывает на код следующей операции, а сам код операции уже вызван из памяти в МВК. Такая последовательность действий имеет место в начале каждой команды, поэтому важно сделать ее как можно более короткой.

Разрабатывая аппаратное и программное обеспечение микроархитектуры М(с-1, мы смогли сократить основной цикл до одной микрокоманды. Каждый раз, когда выполняется эта микрокоманда, код выполняемой операции уже находится в регистре МВК. Эта микроко- 298 Глава 4. Уровень микроархитектуры манда, во-первых, осуществляет переход к микрокоду, выполняющему данную операцию, во-вторых, вызывает следующий после кода операции байт, который может быть либо операндом, либо кодом операции. Теперь мы можем объяснить главную причину того, почему в каждой микрокоманде явным образом указывается следующая микрокоманда, а последовательность команд может не соответствовать порядку их расположения в памяти. Все адреса управляющей памяти, соответствующие кодам операций, должны быть зарезервированы для первого слова интерпретатора соответствующей команды.

Так, из табл. 4.2 мы видим, что программа, которая интерпретирует команду РОР, начинается в ячейке Ох57, а программа, которая интерпретирует команду 00Р, начинается в ячейке Ох59. (Как язык МАЕ узнает, что команду РОР нужно поместить в ячейку Ох57 — одна из загадок Вселенной. Предположительно, где-то существует файл, который сообщает ему об этом.) К сожалению, программа, интерпретирующая команду РОР, включает в себя три микрокоманды, поэтому если их расположить в памяти последовательно, то эта программа смешается с началом команды 00Р. Поскольку все адреса управляющей памяти, которые соответствуют кодам операций, зарезервированы, то все микрокоманды, идущие после первой микрокоманды в каждой последовательности, должны размещаться в промежутках между зарезервированными адресами.

По этой причине происходит очень много «скачков», и было бы нерационально каждый раз вставлять микрокоманду перехода, чтобы перейти от одной последовательности адресов к другой. Чтобы понять, как работает интерпретатор, предположим, что регистр МВВ содержит значение Ох60, то есть код операции 1Я00 (см. табл. 4.2). В основном цикле, который состоит из одной микрокоманды, выполняется следующее: 1. Значение регистра РС увеличивается, после чего он содержит адрес первого байта после кода операции. 2. Начинается передача следующего байта в регистр МВВ. Этот байт понадобится рано или поздно либо в качестве операнда текущей 1)'х'М-команды, либо в качестве кода следующей операции (как в случае с командой 1А00, у которой нет операндов). 3.

Совершается переход к адресу, который содержался в регистре МВК в начале цикла Ма1л1. Номер адреса равен значению кода операции, которая выполняется в данный момент. Этот адрес помещается туда предыдущей микрокомандой. Отметим, что значение, которое вызывается из памяти во время этой микрокоманды, не играет никакой роли в межуровневом переходе. Здесь начинается вызов следующего байта, поэтому он будет доступен уже к концу третьей микрокоманды. Хотя в тот момент указанный байт может быть не нужен, в любом случае когда-нибудь он понадобится, поэтому не будет никакого вреда в том, что вызов происходит именно здесь.

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

Пример реализации микроархитектуры 299 Еще раз подчеркнем, что микрокоманды, приведенные в табл. 4.3, расположены в памяти не последовательно, а микрокоманда Ма1п1 вовсе не находится в ячейке с адресом О (поскольку в этой ячейке должна находиться микрокоманда пор1). Задача микроассемблера — поместить каждую команду в подходящую ячейку и связать их в короткие последовательности, использовав поле ЫЕХТ А1)1ЖЕЯБ. Каждая последовательность начинается с адреса, который соответствует численному значению кода операции (например, команда РОР начинается с адреса Ох57), но остальные части последовательности могут находиться в любых ячейках управляющей памяти, и эти ячейки не обязательно смежные.

А теперь рассмотрим команду 1А00. Она начинается с микрокоманды 1а661. Требуется выполнить следующие действия: 1. Значение регистра ТОЯ уже есть, но из памяти нужно вызвать второе слово стека. 2. Значение регистра ТОЯ нужно прибавить ко второму слову стека, вызванному из памяти. 3. Результат, который помещается в стек, должен быть сохранен в памяти и в регистре ТОК. Для того чтобы вызвать операнд из памяти, необходимо уменьшить значение указателя стека и записать его в регистр МАК. Отметим, что этот адрес будет использоваться для последующей записи.

Более того, поскольку эта ячейка памяти станет новой вершиной стека, данное значение должно быть присвоено регистру ЗР. Следовательно, определить новое значение ЯР и МАК, уменьшить значение БР на 1 и записать его в оба регистра можно за одну операцию. Все этн действия выполняются в первом цикле (1а661). Здесь же инициируется операция чтения.

Кроме того, регистр МРС получает значение из поля ЫЕХТ А111ЖЕБЗ микрокоманды 1а661. Это адрес микрокоманды 1а662. Затем За662 считывается из управляющей памяти. Во втором цикле, пока происходит считывание операнда из памяти, мы копируем верхнее слово стека из ТОЗ в Н, где оно будет доступно для сложения, когда процесс считывания завершится. В начале третьего цикла (1а663) М1Ж содержит второе слагаемое, вызванное из памяти. В этом цикле оно прибавляется к значению регистра Н, а результат сохраняется обратно в регистрах М1Ж и ТОК. Кроме того, начинается операция записи, в процессе которой новое верхнее слово стека сохраняется в памяти.

В этом цикле команда поЬо приписывает адрес Иазп1 регистру МРС, и таким образом мы возвращаемся к исходному пункту, и можем начать выполнение следующей операции. Если следующий код 1)ЧМ-операции, который содержится в данный момент в регистре МВК, равен Ох64 (150В), то повторяется практически та же последовательность действий. После выполнения Ма1п1 управление передается микрокоманде с адресом Охб4 (1зцЬ1). За этой микрокомандой следуют 1зцЬ2, 1зцЬЗ, а затем снова Иа1п1. Единственное различие между этой и предыдущей последовательностями состоит в том, что в цикле ЗэцЬЗ содержимое регистра Н не прибавляется к значению М1Ж, а вычитается из него.

Команда 1АМ0 идентична командам 1А00 и 15ОВ, только в данном случае два верхних слова стека подвергаются логическому умножению (операция И), а не 300 Глава 4. Уровень микроархитектуры складываются и не вычитаются. Нечто подобное происходит и во время выполнения команды 10К Если код операции соответствует команде 00Р, РОР или 5))АР, то нужно использовать стек. Команда 00Р дублирует верхнее слово стека.

Поскольку значение этого слова уже находится в регистре ТОК, нужно просто увеличить 5Р на 1. После этого регистр 5Р будет указывать на новый адрес. В эту новую ячейку и записывается значение регистра ТО5. Команда РОР тоже достаточно проста: нужно только уменьшить значение ЯР на 1, чтобы отбросить верхнее слово стека. Однако после этого необходимо считать новое верхнее слово стека из памяти и записать его в регистр ТОК. Наконец, команда 5)(АР меняет местами значения двух ячеек памяти, а именно — два верхних слова стека.

Регистр ТОК уже содержит одно из этих значений, поэтому считывать его (значение) из памяти не нужно. Подробнее мы обсудим эту команду немного позже. Команда 01Р05Н сложнее предыдущих, поскольку за кодом операции следует байт, как показано на рис. 4.13. Этот байт представляет собой целое число со знаком.

Указанный байт, который был передан в регистр МВК во время выполнения микрокоманды Ма1П1, нужно расширить до 32 бит (знаковое расширение) и скопировать его в регистр М?Ж. Затем значение ЯР увеличивается на 1 и копируется в МАК, что позволяет записать операнд на вершину стека.

Этот операнд также должен копироваться в регистр ТОК. Отметим, что значение регистра РС требуется увеличить на 1, чтобы в микрокоманде Иа(п1 имелся код следующей операции. Рис. 4.13. Формат команды В)РОЯН Теперь рассмотрим команду П ОА0. В этой команде за кодом операции также следует байт (рис. 4.14, а), но этот байт представляет собой индекс (без знака), используемый для того, чтобы найти в пространстве локальных переменных слово, которое нужно поместить в стек. Поскольку здесь имеется всего 1 байт, доступно только 2з = 256 слов, а именно первые 256 слов пространства локальных переменных. Для выполнения команды 100А0 требуются и чтение (чтобы вызвать слово), и запись (чтобы поместить его в стек).

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

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

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

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