Электронная библиотека

  • Для связи с нами пишите на admin@kursak.net
    • Обратная связь
  • меню
    • Автореферат (88)
    • Архитектура (159)
    • Астрономия (99)
    • Биология (768)
    • Ветеринарная медицина (59)
    • География (346)
    • Геодезия, геология (240)
    • Законодательство и право (712)
    • Искусство, Культура,Религия (668)
    • История (1 078)
    • Компьютеры, Программирование (413)
    • Литература (408)
    • Математика (177)
    • Медицина (921)
    • Охрана природы, Экология (272)
    • Педагогика (497)
    • Пищевые продукты (82)
    • Политология, Политистория (258)
    • Промышленность и Производство (373)
    • Психология, Общение, Человек (677)
    • Радиоэлектроника (71)
    • Разное (1 245)
    • Сельское хозяйство (428)
    • Социология (321)
    • Таможня, Налоги (174)
    • Физика (182)
    • Философия (411)
    • Химия (413)
    • Экономика и Финансы (839)
    • Экскурсии и туризм (29)

Архитектура системы команд

Архитектура системы команд

Системой команд (СК) вычислительной машины называют полный перечень команд, которые способна выполнять данная ВМ.

Под архитектурой системы команд (АСК) принято определять те средства вычислительной машины, которые видны и доступны программисту.

АСК можно рассматривать как линию согласования нужд разработчиков программного обеспечения с возможностями создателей аппаратуры вычислительной машины

 
  clip_image001

В конечном итоге, цель тех и других – реализация вычислений наиболее эффективным образом, то есть за минимальное время. Здесь важнейшую роль играет правильный выбор архитектуры системы команд.

В упрощенной трактовке время выполнения программы (ТВЫЧ) можно определить через число команд в программе (NКОМ), среднее количество тактов процессора, приходящихся на одну команду (CPI), и длительность тактового периода tПР

clip_image003

Каждая из составляющих выражения зависит от одних аспектов архитектуры, и в свою очередь, влияет на другие, что свидетельствует ответственного подхода к выбору АСК

Общая характеристика архитектуры системы команд вычислительной машины складывается из ответов на следующие вопросы:

1. Какого вида данные будут представлены в ВМ и в какой форме?

2. Где эти данные могут храниться помимо основной памяти?

3. Каким образом будет осуществляться доступ к данным?

4. Какие операции могут быть выполнены над данными?

5. Сколько операндов может присутствовать в команде?

6. Как будет определяться адрес очередной команды?

7. Каким образом будут закодированы команды?

clip_image004

Классификация архитектуры системы команд

В истории развития вычислительной техники как в зеркале отражаются изменения, происходившие во взглядах разработчиков на перспективность той или иной архитектуры системы команд (АСК). Сложившуюся на настоящий момент ситуацию в области АСК иллюстрирует рисунок

Среди мотивов, чаще всего предопределяющих переход к новому типу АСК, остановимся на двух наиболее существенных:

1. состав операций, выполняемых вычислительной машиной, и их сложность;

2. место хранения операндов, что влияет на количество и длину адресов, указываемых в адресной части команд обработки данных.

Именно эти моменты взяты в качестве критериев вариантов классификации АСК.

Классификация по составу и сложности команд

Современная технология программирования ориентирована на языки высокого уровня (ЯВУ). Главная цель ЯВУ — облегчить процесс программирования. Переход к ЯВУ, однако, породил серьезную проблему: сложные операторы, характерные для ЯВУ, существенно отличаются от простых машинных операций реализуемых в большинстве вычислительных машин.

Проблема получила название семантического разрыва, а ее следствием становится недостаточно эффективное выполнение программ на ВМ.

Пытаясь преодолеть семантический разрыв, разработчика ВМ в настоящее время выбирают один из трех подходов и, соответственно, один из 3 типов АСК:

§ архитектура с полным набором команд: CISC (Complex Instruction Set Computer);

§ архитектура с сокращенным набором команд: RISC (Reduced Instruction Set Computer);

§ архитектура с командными словами сверхбольшой длины: VLIW (Very Long Instruction Word).

Архитектура с полным набором команд – CISC

В ВМ типа CISC проблема семантического разрыва решается за счет расширения системы команд, дополнения ее сложными командами, семантически аналогичными операторам ЯВУ.

 
  clip_image005

Основоположником CISC-архитектуры считается компания IBM, которая начала применять данный подход с семейства машин IBM 360 и продолжает его в своих мощных современных универсальных IВ М ES/9000. Аналогичный подход характерен и для компании Intel в ее микропроцессорах серии 8086 и Pentium. Для CISC – архитектуры типичны:

наличие в процессоре сравнительно небольшого числа регистров общего назначения (РОН);

большое количество машинных команд, некоторые из них аппаратно реализуют сложные операторы ЯВУ

разнообразие способов адресации операндов,

множество форматов команд различной разрядности;

наличие команд, где обработка совмещается с обращением к памяти

К типу CISC можно отнести практически все ВМ, выпускавшиеся до середины 1980-х годов, и значительную часть производящихся в настоящее время.

Архитектура с сокращенным набором команд – RISC

Рассмотренный способ решения проблемы семантического разрыва вместе с тем ведет к усложнению аппаратуры ВМ – главным образом устройства управления. Это в свою очередь, негативно сказывается на производительности ВМ в целом.

Это заставило более внимательно проанализировать программы, получаемые после компиляции с ЯВУ. Был предпринят комплекс исследований, в результате которых обнаружилось, что доля дополнительных команд, эквивалентных операторам ЯВУ, в общем объеме программ не превышает 10-20%, а для некоторых наиболее сложных команд даже 0,2%. В то же время объем аппаратных средств, требуемых для реализации дополнительных команд, возрастает весьма существенно. Так емкость микропрограммной памяти при поддержании сложных команд может увеличиваться на 60%.

Детальный анализ упомянутых исследований привел к серьезному пересмотру решений, следствием чего, стало появление RISC-архитектуры Термин RISC впервые был использован Д. Паттерсоном и Д. Дитцелем в 1980 году. Идея заключается в следующем:

список команд ВМ ограничен наиболее часто используемыми простейшими командами, которые оперируют данными, размещенными в регистрах процессорах;

обращение к памяти допускается лишь с помощью специальных команд чтения и записи;

резко уменьшено количество форматов команд и способов указания адресов операндов; это

операций обработки данных отделены от операций обращения к памяти.

Все это позволяет упростить аппаратные средства ВМ и повысить их быстродействие. RISC-архитектура разрабатывалась таким образом, чтобы уменьшить Тныч за счет сокращения CPI и tпр.

Как следствие, реализация сложных команд за счет последовательности из простых, но быстрых RISC-команд оказывается не менее эффективной, чем аппаратный вариант сложных команд в CISC-архитектуре.

Элементы RISC-архитектуры впервые появились в вычислительных машинах С6600 и суперЭВМ компании Cray Research. Достаточно успешно реализует RISC-архитектура и в современных ВМ, например в процессорах Alpha фирмы DEC, серии РА фирмы Hewlett-Packard, семействе PowerPC и т. п.

В последних микропроцессорах фирмы Intel и AMD широко используются идеи, свойственные RISC-архитектуре, так что многие различия меж СISC и RISC постепенно стираются.

Архитектура с командными словами сверхбольшой длины – VLIW

Концепция VLIW базируется на RISC-архитектуре. Несколько простых RISC – команд объединяются в одну сверхдлинную команду и выполняются параллельно. В плане АСК архитектура VLIW сравнительно мало отличается от RISC. Появился лишь дополнительный уровень параллелизма вычислений, в силу чего архитектуру VLIW логичнее адресовать не к вычислительным машинам, а к вычислительным системам.

Таблица 6.1. Сравнительная оценка CISC-, RISC-, VLIW- архитектур

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

CISC

RISC

VLIW

Длина команды

Варьируется

Единая

Единая

Расположение полей в команде

Варьируется

Неизменное

Неизменное

Количество регистров

Несколько (часто специализированных)

Много РОН

Много РОН

Доступ к памяти

Может выполняться как часть команд различных типов

Выполняется только специальными командами

Выполняется только специальными командами

Классификация по месту хранения операндов

Количество команд и их сложность, безусловно, являются важнейшими факторами, однако не меньшую роль при выборе АСК играет ответ на вопрос о том, где храниться операнды и каким образом к ним осуществляется доступ. С этих пи различают следующие виды архитектур системы команд:

§ стековую;

§ аккумуляторную

§ регистровую;

§ с выделенным доступом к памяти.

Выбор той или иной архитектуры влияет на принципиальные моменты:

§ сколько адресов будет содержать адресная часть команд

§ какова будет длина адресов в командах

§ насколько просто будет происходить доступ к операндам

§ какова общая длина команд

Стековая архитектура

Стеком называется память, по своей структурной организации отличная от основной памяти ВМ.

Рассмотрим те принципы построения стековой памяти, которые требуются для рассмотрения особенностей АСК на базе стека.

Стек образует множество логически взаимосвязанных ячеек, взаимодействующих по принципу «последним вошел, первым вышел» (LIFO, Last In First Out).

 
  clip_image006

Верхнюю ячейку называют вершиной стека.

Для работы со стеком предусмотрены две операции:

push (проталкивание данных в стек)

рор (выталкивание данных из стека).

Запись возможна только в верхнюю ячейку стека, при этом вся хранящаяся в стеке информация предварительно проталкивается на одну позицию вниз.

Чтение допустимо также только из вершины стека. Извлеченная информация удаляется из стека, а оставшееся содержимое продвигается вверх.

ВМ, в которых АСК реализована на базе стека называют стековыми. В таких ВМ операнды перед обработкой помещаются в две верхних ячейки стековой памяти. Результат операции заносится в стек.

Принцип вычислений с использованием стека обычно используется иная форма записи, известная как обратная польская запись. Ее предложил в 1958 году польский математик Лукашевич. В математике существует древняя традиция помещать оператор между операндами (X+Y), а не после операндов. (XY+).

Форма с оператором между операндами называется инфиксной записью.

Форма с оператором после операндов называется постфиксной или обратной польской записью. Это идеальная запись для вычисления формул на компьютере со стеком.

Особенность ее в том, что в выражении отсутствуют скобки, а знак операции располагается за операндами. Последовательность операций определяется их приоритетом.

Операция

Символ операции

Приоритет

Открывающаяся скобка

(

0

Закрывающаяся скобка

)

1

Сложение/вычитание

+ -

2

Умножение/деление

* /

3

Возведение в степень

**

4

Формула состоит из n символов, каждый из которых является или операндом, или оператором. При преобразовании традиционной записи в постфиксную запись, используется логическая структура. Назовем ее стеком последовательности операций (СПО)

Алгоритм для вычисления формулы в обратной польской записи с использованием стека состоит в следующем:

исходная строка с выражением просматривается слева направо.

операнды переписываются в выходную строку.

знаки в СПО заносятся по следующим правилам:

если СПО пуст, то операция из входной строки переписывается в СПО;

операция выталкивает из СПО в выходную строку все операции с большим или равным приоритетом.

если очередной символ из исходной строки есть открывающаяся скобка, то он проталкивается СПО.

закрывающаяся скобка выталкивает все операции из СПО до ближайшей открывающей скобки, сами скобки в выходную строку не переписываются, а уничтожают друг друга.

Процесс получения постфиксной записи для правой части выражения: A = A + B + A ´ C представлен в таблице

Просматриваемый символ

1

2

3

4

5

6

7

8

9

Входная строка

A

+

B

+

A

´

C

   

Состояние стека последовательности операций

 

+

 

+

 

´

+

 

+

 

Выходная строка

A

 

B

+

A

 

C

´

+

Таким образом, рассмотренное выше выражение в польской записи имеет вид: AB + AC ´+. Данная форма записи однозначно определяет порядок загрузки операндов и операций в стек.

А теперь рассмотрим последовательность вычисления этого выражения на ВМ со стековой структурой.

Push a

Push b

add

Push a

Push c

mul

add

Pop a

A

B

A+B

A

C

A*C

A+B+A*C

 
 

A

 

A+B

A

A+B

   
       

A+B

     

Основные узлы и информационные тракты одного из возможных вариантов ВМ на основе стековой АСК показаны на рисунке 6.1.

Информация может быть занесена в вершину стеки из памяти или из АЛУ.

Для записи в стек содержимого ячейки памяти с адресом х, выполняется команда push x. По этой команде информация считывается из ячейки памяти, заносится в регистр данных, а затем проталкивается в стек. Результат операции из АЛУ заносится в вершину стека автоматически.

 
  clip_image007

Сохранение содержимого вершины стека в ячейке памяти с адресом х производится командой pop x. По этой команде содержимое верхней ячейки стека подается на шину, с которой и производится запись в ячейку х, после чего вся находящаяся к стеке информация проталкивается на одну позицию вверх.

Для выполнения арифметической или логической операции на вход АЛУ подастся информация, считанная из двух верхних ячеек стека (при этом содержимое стека продвигается на две позиции вверх, то есть операнды из стека удаляются). Результат операции заталкивается в вершину стека. Возможен вариант, когда результат сразу же переписывается в память с помощью автоматически выполняемой операции pop x.

Верхние ячейки стековой памяти, где хранятся операнды, и куда заносится результат операции, как правило, делаются более быстродействующими и размещается в процессоре, в то время как остальная часть стека может располагаться в основной памяти и частично даже на магнитном диске.

Достоинства ACK на базе стека:

возможность сокращения адресной части команд (все операции производятся через вершину стека, т.е. адреса операндов и результата в командах арифметической и логической обработки информации указывать не нужно);

код программы получается компактным. Достаточно просто реализуется декодирование команд.

Недостаток:

АСК на базе стека по определению не предполагает произвольно доступа к памяти, из-за чего компилятору трудно создать эффективный программный код.

Возрождается интерес к стековой архитектуре благодаря популярности языков Java и расширением сферы применения языка Forth, семантике которых наиболее близка именно стековая архитектура.

Среди современных ВМ со стековой АСК особо следует отметить стековую машину IGNITE компании Patriot Scientist. Авторы считают ее представителем нового вида АСК — архитектурой с безоперандным набором команд. Для обозначения таких ВМ они предлагают аббревиатуру ROSC (Removed Operand Set Computer). ROSC-архитектура заложена и в некоторые российские проекты, например разработки ИТФ «Технофорт». Строго говоря, по своей сути ROSC мало отличается от традиционной архитектуры на базе стека, и выделение ее в отдельный вид представляется не вполне обоснованным.

Аккумуляторная архитектура

Архитектура на базе аккумулятора исторически возникла одной из первых. В ней для хранения одного из операндов арифметической или логической операции в процессоре имеется выделенный регистр — аккумулятор. В этот же регистр заносится и результат операции. Поскольку адрес одного из операндов предопределен, в командах обработки достаточно явно указать местоположение только второго операнда. Изначально оба операнда хранятся в основной памяти, и до выполнения операции один из них нужно загрузить в аккумулятор. После выполнения команды обработки результат находится в аккумуляторе и, если он не является операндом для последующей команды, его требуется сохранить в ячейке памяти.

Типичная архитектура ВМ на базе аккумулятора показана на рисунке 7.3.

Для загрузки в аккумулятор содержимого ячейки х предусмотрена команда загрузки load x. По этой команде информация считывается из ячейки памяти х, выход памяти подключается к входам аккумулятора и происходит занесение считанных данных в аккумулятор.

Запись содержимого аккумулятора в ячейку х осуществляется командой сохранения store х, при выполнении которой выходы аккумулятора подключаются к шине, после чего информация с шины записывается в память.

Для выполнения операции в АЛУ производится считывание одного из операндов из памяти в регистр данных. Второй операнд находится в аккумуляторе. Выходы регистра данных и аккумулятора подключаются к соответствующим входам. По окончании предписанной операции результат с выхода АЛУ заносится в аккумулятор.

Достоинствами аккумуляторной АСК можно считать короткие команды и простоту декодирования команд. Однако наличие всего одного регистра порождает многократные обращения к основной памяти.

АСК на базе аккумулятора была популярна в ранних ВМ, таких как IBM 7090, DEC PDP-8m MOS 6502.

Регистровая архитектура

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

Размер регистров обычно фиксирован и совпадает с размером машинного слона. К любому регистру можно обратиться, указав его номер.

CISC – архитектура. Количество РОН обычно невелико (от 8 до 32); для представления номера конкретного регистра необходимо не более пяти разрядов; благодаря этому в адресной части команд обработки допустимо одновременно указать номера двух, а зачастую и трех регистров (двух регистров операндов и регистра результата).

RISC-архитектура. Предполагает использование существенно большего числа РОН (до нескольких сотен). Однако типичная для таких ВМ длина команды (обычно 32 разряда) позволяет определить в команде до трех регистров.

Регистровая архитектура допускает расположение операндов в одной из двух запоминающих сред: основной памяти или регистрах.

 
  clip_image008

С учетом возможного размещения в рамках регистровых АСК выделяют три подвида команд обработки:

регистр-регистр – операнды могут находиться только в регистрах; в них же засылается и результат; основной вариант в ВМ типа RISC.

регистр-память – один из операндов размещается в регистре, а второй в основной памяти; результат замещает один из операндов; характерны для ВМ типа CISC;

память-память – оба операнда заносятся в память, результат заносится в память; неэффективен, остается в наиболее сложных моделях типа CISC.

Таблица 7.1. Сравнительная оценка вариантов размещения операндов

Вариант

Достоинства

Недостатки

Регистр-регистр

(0, 3)

Простота реализации, фиксированная длина команды, простая модель формирования объектного кода при компиляции программ, возможность выполнения всех команд за одинаковое количество тактов

Большая длина объектного кода, из-за фиксированной длины команд часть разрядов в коротких командах не используется

Регистр-память

(1, 2)

Данные могут быть доступны без загрузки в регистры процессора, простота кодирования команд, объектный код получается компактным

Потеря одного из операндов при записи результата, длинное поле адреса памяти в коде команды сокращает место под номер регистра, что ограничивает общее число РОН. CPI зависит от места размещения операнда

Память-память

(3, 3)

Компактность объектного кода, малая потребность в регистрах для хранения промежуточных данных

Разнообразие форм команд и времени их исполнения, низкое быстродействие из-за обращения к памяти

Возможную структуру и информационные тракты вычислительной машины с регистровой архитектурой системы команд иллюстрирует рисунок 7.4.

Операции загрузки регистров из памяти и сохранения содержимого регистров в памяти идентичны таким же операциям с аккумулятором. Отличие состоит в этапе выбора нужного регистра, обеспечиваемого соответствующими селекторами.

Выполнение операции в АЛУ включает в себя:

выбор регистра первого операнда;

определение расположения второго операнда (память или регистр);

подачу на вход АЛУ операндов и выполнение операции;

выбор регистра результата и занесение в него результата операции из АЛУ.

Обратим внимание на то, что между АЛУ и регистровым файлом должны быть по крайней мере три шины.

К достоинствам регистровых АСК следует отнести: компактность получаемого кода; высокую скорость вычислений за счет замены обращений к основной памяти на обращения к быстрым регистрам.

С другой стороны, данная архитектура требует более длинных инструкций по сравнению с аккумуляторной архитектурой. Примерами машин на базе РОН могут служить CDC 6600, IBM 360/370, PDP-11,все современные персональные компьютеры. Правомочно утверждать, что в наши дни этот вид архитектуры системы команд является преобладающим.

clip_image009

Архитектура с выделенным доступом к памяти

В архитектуре с выделенным доступом к памяти обращение к основной памяти возможно только с помощью двух специальных команд: load и store. В английской транскрипции данную архитектуру называют Load/Store architecture.

Команда load (загрузка) обеспечивает считывание значения из основной памяти, и занесение его в регистр процессора (в команде обычно указывается адрес ячейки памяти и номер регистра)

Пересылка информации в противоположном направлении производится командой store (сохранение). Операнды во всех командах обработки информации могут находиться только в регистрах процессора (чаще всего в РОН). Результат операции также заносится в регистр.

В архитектуре отсутствуют команды обработки, допускающие прямое обращение к основной памяти. Допускается наличие в АСК ограниченного числа команд, где операнд является частью кода команды.

Состав и информационные тракты ВМ с выделенным доступом к памяти показаны на рисунке 7.5. Две из трех шин, расположенных между массивом РОН и АЛУ обеспечивают передачу в АЛУ операндов, хранящихся в двух регистрах общего назначения. Третья служит для занесения результата в выделенный для этого регистр. Эти же шины позволяют загрузить в регистры содержимое ячеек основной памяти и сохранить в ОП информацию, находящуюся в РОН.

АСК с выделенным доступом к памяти характерна для ВМ с RISC – архитектурой. Команды имеют длину 32 бита и трехадресный формат. В качестве примеров ВМ с выделенным доступом к памяти можно отметить HP PA-RISC, IBM RS/6000, Sun SPARC, MIPS R 4000, DEC Alpha и т.д.

Достоинства: простота декодирования и исполнения команд.

 
  clip_image010

Архитектура системы команд ISA

Фон-неймановская система команд (ISA) весьма проста и содержит всего 21 команду. Фактически эту архитектуру можно назвать первым процессором с сокращенным набором команд. Как в любой системе команд в ней имеется три компонента: адреса, типы данных и операции. Рассмотрим эти компоненты.

Адреса

Адреса в системе команд определяют архитектурный стиль – организацию памяти, а также способы поиска операндов и сохранения результатов. В простой СК имеются лишь две адресуемые памяти: основная память и аккумулятор.

Основная память в фон-неймановской системе команд (ФНСК) характеризуется линейным произвольным доступом и эквивалентна динамической памяти с произвольным доступом (DRAM), используемой в современных компьютерах. Локальная память в процессоре представляет собой единственный аккумулятор (рис.8.1.)

 
  clip_image011

Регистр-аккумулятор получает результаты из АЛУ с двумя входами (один для получения одного данного из памяти, а второй из аккумулятора). В команде присутствует лишь адрес памяти, поскольку в качестве второго адреса подразумевается аккумулятор.

Типы данных

ФНСК содержит два типа данных: дроби и команды. Команды рассматриваются как особый тип данных, так как над ними можно выполнять операции как над данными. Такие программы называют самомодифицирующимся кодом.

Память состоит из 4096 слов по 40 бит каждое; в одном слове памяти помещается одна дробь или две команды.

В наше время использование такого кода считается дурным тоном. Однако современные архитектуры, например семейства Intel x86, должны поддерживать это свойство ради совместимости с такими унаследованными программами, как MS DOS.

Слово числа содержит дробь в виде дополнения до двух, диапазон значений составляет –1 £ f < +1.

Слово памяти могло хранить две команды по 20 бит каждая. В формате команды старшие 8 битов отводились для хранения код операции, определяющего вид выполняемого действия. Младшие 12 бит – для хранения адрес одного из слов памяти (адреса могли быть числами в диапазоне 0 – 999). При наличии всего 21 команды можно было сократить поле команды и увеличить число битов в поле адреса.

Рис. 8.2. иллюстрирует различное расположение битов в памяти – методы остроконечников и тупоконечников.

 
  clip_image012

Устройство управления в ISA извлекало из памяти команды по очереди и организовывало их выполнение по одной в каждом очередном цикле. Как это делалось, поясним на укрупненной структурной схеме, где устройство управления и АЛУ представлены детально (рис. 8.3.).

Регистры

В составе этих блоков имеются специальные ячейки памяти, называемые регистрами.

Фон-неймановский процессор содержит 7 регистров, поддерживающих интерпретацию команд, выбираемых из памяти. Все эти регистры вместе с их функциями перечислены в таблице 8.1.

Регистры, определенные в системе команд, называются архитектурными.

Регистры, не определенные в системе команд, но использующиеся узлом управления для пересылки битов при выполнении команды называются регистрами реализации.

Таблица 8.1. Регистры фон-неймановской системы команд


Название

Функция

Архитектурные регистры

Аккумулятор АС, 40 бит

и

регистр множимого/ частного MQ (multiplier quotient), 40 бит

Используются для временного хранения операндов и результатов в АЛУ. Например, в результате умножения двух 40-битовых сомножителей формируется 80-битовое произведение. Старшие 40 разрядов произведения или частного от деления хранятся в АС, а младшие 40 битов – в MQ

Регистры реализации

Программный счетчик или счетчик команд РС (program counter), 12 бит

Хранит адрес следующего слова команды, которое должно быть извлечено из памяти после завершения выполнения пары команд из текущего слова.

Буферный регистр команд IBR (instruction buffer register), 40 бит

Служит для временного хранения правой команды, извлеченной при чтении очередного слова команды из памяти.

Регистр команд IR (instruction register), 20 бит

Хранит код операции текущей команды длиной в 8 бит в процессе ее выполнения

Регистр адреса памяти MAR (memory address register), 12 бит

Хранит адрес ячейки памяти, к которой производится обращение для считывания слова или записи

Регистр данных памяти MBR (memory buffer register), 40 бит

Хранит слово, которое должно быть записано в память или которое только что извлечено из памяти.

Программный счетчик отличается от остальных регистров. Он может быть загружен значением при выполнении команды перехода, что делает его архитектурным регистром, но не может быть прочитан или записан, что делает его регистром реализации.

На рисунке 8.3. представлена укрупненная блок-схема фон-неймановской архитектуры.

Операции

В ФНСК предусмотрены операции трех типов:

пересылки между аккумулятором, регистром множителя-частного и памятью;

операции АЛУ, например сложение, вычитание, деление и умножение;

команды безусловных и условных переходов, приводящие к изменению программного потока.

Фон-неймановская архитектура содержит 21 команду. Этого вполне достаточно для программирования любого алгоритма. Современные СК требуют существенно меньшего числа команд.

В соответствии с таким делением ФНСК представлена в таблице 8.2. (соответствует рис. 8.2.а и б)

Таблица 8.2. Фон-неймановская система команд

Команды пересылки

1

AC ¬ MQ

Пересылка числа из MQ в аккумулятор

2

M(x) ¬ AC

Пересылка числа из аккумулятора в ячейку X памяти. Адрес памяти X извлекается из младших бит команды

3*

M(x,28:39) ¬ AC(28:39)

Замена левых 12 бит левой команды, расположенной по адресу X в памяти, левыми 12 бит аккумулятора#

4

M(x,8:19) ¬ AC(28:39)

Замена левых 12 бит правой команды, расположенной по адресу X в памяти, левыми 12 бит аккумулятора#

Команды АЛУ

5

ACc ¬ M(x)

Очистка аккумулятора и прибавление числа из ячейки с адресом х в памяти

6

AC ¬ ACc – M(x)

Очистка аккумулятора и вычитание числа из ячейки с адресом х в памяти

7

AC ¬ ACc + |M(x)|

Очистка аккумулятора и прибавление абсолютного значения числа из ячейки с адресом х в памяти

8

AC ¬ ACc – |M(x)|

Очистка аккумулятора и вычитание абсолютного значения числа из ячейки с адресом х в памяти

9

AC ¬ AC + M(x)

Прибавление числа из ячейки с адресом х в памяти к числу в аккумуляторе

10

AC ¬ AC – M(x)

Вычитание числа из ячейки с адресом х в памяти из числа в аккумуляторе

11

AC ¬ AC + |M(x)|

Прибавление абсолютного значения числа из ячейки с адресом х в памяти к числу в аккумуляторе

12

AC ¬ AC – |M(x)|

Вычитание абсолютного значения числа из ячейки с адресом х в памяти из числа в аккумуляторе

13

MQc ¬ M(x)

Очистка регистра MQ и прибавление к нему числа из ячейки с адресом х в памяти

14

ACc, MQ ¬ M(x) ´ MQ

Очистка аккумулятора и умножение числа из ячейки с адресом х в памяти на число в MQ; помещение старших 39 бит результата в аккумулятор и младших 39 бит результата в MQ

15

MQc, AC ¬ AC + M(x)

Очистка аккумулятора и деление числа в аккумуляторе на число из ячейки с адресом х в памяти; оставление остатка в аккумуляторе и помещение частного в MQ

16

AC ¬ AC ´ 2

Умножение числа в аккумуляторе на 2

17

AC ¬ AC ¸ 2

Деление числа в аккумуляторе на 2

Команды управления

18

Переход на M(x,20:39)

Передача управления на левую команду пары команд в M(x)

19

Переход на M(x,0:19)

Передача управления на правую команду пары команд в M(x)

20

Если AC ³ , то

РС ¬ M(x,0:19)

Если число в аккумуляторе ³ 0, то управление передается на правую команду в М(х)

21

Если AC i 0, то

РС ¬ M(x,20:39)

Если число в аккумуляторе ³ 0, то управление передается на левую команду в М(х)

  • Эти команды пересылают адресную часть команды между памятью и аккумулятором; они необходимы для поддержки модификации адреса.
  • # Запись М(х,0:19) – обозначает правые 20 бит ячейки М(х); М(Х,20:39) – обозначает левые 20 бит и т.д.

Команды группировались следующим образом:

Команды пересылки данных. Команды этой группы выполняют пересылку данных из заданной ячейки памяти в один из двух адресуемых регистров АЛУ – аккумулятор АС или регистр множимого/частного MQ – или из этих регистров в заданную ячейку памяти.

Команды безусловного перехода. Естественный порядок выполнения команд соответствует их расположению в ячейках памяти. Этот естественный порядок может быть изменен командами перехода. Команды безусловного перехода изменяют порядок выполнения независимо от состояния аккумулятора, т.е. фактически от результата предыдущей операции. Использование команд перехода в программе позволяет организовать повторное выполнение отдельных участков программы.

Команды условного перехода. Команды этой группы также изменяют естественный порядок выполнения команд программы, но это изменение происходит только при определенном состоянии аккумулятора, т.е. зависит от результата предыдущей операции. С помощью команд условного перехода в программе реализуется принятие решения на основе результатов вычисления.

clip_image013

Арифметические команды. Команды этой группы задают выполнение четырех арифметических действий, причем некоторые арифметические операции имеют пару модификаций.

Команды модификации адресной части команды. Команды этой группы позволяют выполнять модификацию программы программным путем, заменяя первоначально установленные значения адресных полей в командах. Новые значения вычисляются в аккумуляторе

В соответствии с таким делением ФНСК представлена в таблице 8.3. (соответствует рис. 8.2.в и г).

Таблица 8.3. Фон-неймановская система команд


Тип команды

Код операции

Символическое представление

Описание

Пересылка данных в память или из памяти

1

0000 1010

LOAD MQ

Пересылка содержимого MQ в аккумулятор

2

0000 1001

LOAD MQ, M(X)

Пересылка содержимого ячейки памяти по адресу Х в регистр MQ

3

0010 0001

STOR M(X)

Пересылка содержимого аккумулятора АС в ячейку памяти по адресу Х

4

0000 0001

LOAD M(X)

Пересылка содержимого ячейки памяти по адресу Х в аккумулятор АС

5

0000 0010

LOAD – M(X)

Пересылка взятого с обратным знаком содержимого ячейки памяти по адресу Х в аккумулятор АС

6

0000 0011

LOAD |M(X)|

Пересылка абсолютной величины cодержимого ячейки памяти по адресу Х в аккумулятор АС

7

0000 0100

LOAD – |M(X)|

Пересылка взятой обратным знаком абсолютной величины cодержимого ячейки памяти по адресу Х в аккумулятор АС

Безусловный переход

8

0000 1101

JUMP

M(X, 0:19)

Выбирает следующую команду из левой части слова по адресу X

 

9

0000 1110

JUMP

M(X, 20:39)

Выбирает следующую команду из правой части слова по адресу X

Условный переход

10

0000 1111

JUMP

+ M(X, 0:19)

Если число в аккумуляторе АС неотрицательно, выбирает следующую команду из левой части слова по адресу Х

11

0001 0000

JUMP

+ M(X, 20:39)

Если число в аккумуляторе АС неотрицательно, выбирает следующую команду из правой части слова по адресу Х

 

Арифметика

12

0000 0101

ADD M(X)

Суммирует содержимое ячейки памяти по адресу Х и содержимое аккумулятора; результат сохраняется в аккумуляторе

 

13

0000 0111

ADD |M(X)|

Суммирует абсолютную величину содержимого ячейки памяти по адресу Х и содержимое аккумулятора; результат сохраняется в аккумуляторе

 

14

0000 0110

SUB M(X)

Вычитает содержимое ячейки памяти по адресу Х из содержимого аккумулятора; разность сохраняется в аккумуляторе

 

15

0001 0000

SUB |M(X)|

Вычитает абсолютную величину содержимого ячейки памяти по адресу Х из содержимого аккумулятора; разность сохраняется в аккумуляторе

           

16

0000 1011

MUL M(X)

Умножает содержимое ячейки памяти по адресу Х на содержимое регистра MQ; старшие разряды произведения сохраняются в аккумуляторе, а младшие – регистре MQ

Арифметика

17

0000 1100

DIV M(X)

Делит содержимое аккумулятора АС на содержимое ячейка памяти по адресу Х; частное сохраняется в регистре MQ, а остаток от деления – в аккумуляторе

18

0001 0100

LSH

Умножает содержимое аккумулятора на 2 (т.е. сдвигает его содержимое на один разряд влево)

19

0001 0101

RSH

Делит содержимое аккумулятора на 2 (т.е. сдвигает его содержимое на один разряд вправо)

Модификация адресной части команды

20

0001 0010

STOR

M(X,8:19)

Заменяет поле адреса в команде, размещенной в левой части ячейки по адресу Х, содержимым младших 12 разрядов аккумулятора АС

21

0001 0011

STOR

M(X,28:99)

Заменяет поле адреса в команде, размещенной в правой части ячейки по адресу Х, содержимым младших 12 разрядов аккумулятора АС

clip_image014

Функциональная организация фон-неймановской ВМ

Чтобы получить более детальное представление о структуре и функциях устройств ВМ, обратимся к схеме гипотетической машины с аккумуляторной архитектурой. Для упрощения изложения приняты следующие характеристики машины:

Одноадресные команды. Адресная часть команды содержит только один адрес. При выполнении операций с двумя операндами предполагается, что другой операнд находится специальном регистре — аккумуляторе, а результат также остается в аккумуляторе.

Единство форматов. Длина команд и данных совпадает с разрядностью ячеек, т.е. любая команда или операнд занимают только одну ячейку памяти. Таким образом, адрес очередной команды в памяти может быть получен путем прибавления единицы к адресу текущей команды, а для извлечения из памяти любой команды или любого операнда достаточно одного обращения к памяти.

На функциональной схеме показаны типовые узлы каждого из основных устройств ВМ, а также сигналы, инициирующие выполнение отдельных операций по пересылке информации и ее обработке, необходимых для функционирования машины.

Устройство управления

Назначение устройства управления (УУ) было определено ранее при рассмотрении структурной схемы ВМ, где отмечалось, что эта часть ВМ организует автоматическое выполнение программ и функционирование ВМ как единой системы.

Теперь остановимся на описании узлов, реализующих целевую функцию УУ

Счетчик команд (СК)

СК – неотъемлемый элемент устройства управления любой ВМ, в соответствии с фон-неймановским принципом программного управления.

Согласно этому принципу соседние команды программы располагаются в ячейках памяти со следующими по порядку адресами и выполняются преимущественно в той же очередности, в какой они размещены в памяти ВМ. Таким образом, адрес очередной команды может быть получен путем увеличения адреса ячейки, из которой была считана текущая команда, на длину выполняемой команды, представленную числом занимаемых ею ячеек.

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

Для изменения естественного порядка вычислений (перехода в иную точку программы) достаточно занести в СК адрес точки перехода.

В ряде ВМ счетчик команд реализуется в виде обычного регистра, а увеличение его содержимого производится внешней схемой (схемой инкремента/декремента).

clip_image016

Регистр команды

Счетчик команд определяет лишь местоположение команды в памяти, но не содержит информации о том, что это за команда. Чтобы приступить к выполнению команды необходимо выполнить этап выборки команды – извлечь ее из памяти и разместить в регистре команды (РК).

Только с момента загрузки команды в РК она становится «видимой» для процессора. В РК команда хранится в течение всего времени ее выполнения.

Как уже отмечалось ранее, любая команда содержит два поля: поле кода операции и поле адресной части. Учитывая это обстоятельство, регистр команды иногда рассматривают как совокупность двух регистров — регистра кода операции (РКОп) и регистра адреса (РА), в которых хранятся соответствующие составляющие команды.

Если команда занимает несколько последовательных ячеек, то код операции всегда находится в том слове команды, которое извлекается из памяти первым. Это позволяет по коду операции определить, требуются ли считывание из памяти и загрузка в РК остальных слов команды. Собственно выполнение команды начинается только после занесения в РК ее полного кода.

Указатель стека

Указатель стека (УС) — это регистр, где хранится адрес вершины стека.

В реальных вычислительных машинах стек реализуется в виде участка основной памяти, обычно расположенного в области наибольших адресов. Заполнение стека происходит в сторону уменьшения адресов, при этом вершина стека — это ячейка, куда была произведена последняя по времени запись. Для хранения адреса такой ячейки и предназначен УС.

При выполнении операции push (занесение в стек) содержимое с помощью сигнала -1УС сначала уменьшается на единицу, после чего используется в качестве адреса, по которому производится запись. Соответствующая ячейка становится новой вершиной стека.

Считывание из стека (операция pop) происходит в ячейке, на которую указывает текущий адрес в УС, после чего содержимое УС сигналом +1УС увеличивается на единицу. Таким образом, вершина стека опускается, а считанное слово считается удаленным из стека. Хотя физически считанное слово и осталось в ячейке памяти, при следующей за стек оно будет заменено новой информацией.

Регистр адреса памяти (РАП)

Регистр адреса памяти (РАП) предназначен для хранении адреса ячейки основной памяти вплоть до завершения операции (считывание или запись) с этой ячейкой. Наличие РАП позволяет компенсировать различия в быстродействии ОП и прочих устройств машины.

Регистр данных памяти

Регистр данных памяти (РДП) призван компенсировать разницу в быстродействии запоминающих устройств и устройств, выступающих в роли источников и потребителей хранимой информации. В РДП при чтении заносится содержимое ячейки – помещается информация, подлежащая сохранению в ячейке ОП, собственно момент считывания и записи в ячейку определяется сигналами ЧтЗУ и ЗпЗУ соответственно.

Дешифратор кода операции

Дешифратор кода операции (ДКОп) преобразует код операции в форму, требуемую для работы микропрограммного автомата (МПА). Информация после декодирования определяет последующие действия МПА, а ее вид зависит от организации МПА. В рассматриваемой ВМ — это унитарный код УнитК. Часто код операции преобразуется в адрес первой команды микропрограммы, реализующей указанную в команде операцию. С этих позиций ДКОп правильнее было бы назвать не де­шифратором, а преобразователем кодов.

Микропрограммный автомат

Микропрограммный автомат (МПА) правомочно считать центральным узлом устройства управления. Именно МПА формирует последовательность сигналов управления, в соответствии с которыми производятся все действия, необходимые для выборки из памяти и выполнения команд. Исходной информацией для МПА слу жат: декодированный код операции, состояние признаков (флагов), характеризующих результат предшествующих вычислений, а также внешние запросы на прерывание текущей программы и переход на программу обслуживании прерывания

Арифметико-логическое устройство

Это устройство, как следует из его названия, предназначено для арифметической обработки данных. АЛУ содержит следующие узлы:

Операционный блок

Операционный блок.(ОПБ) представляет собой ту часть АЛУ, которая, собственно, и выполняет арифметические и логические операции над поданными на вход операндами. Выбор конкретной операций из возможного и списка операций для данного ОПБ определяется кодом операции команды. В нашей ВМ код операции поступает непосредственно из регистра команды. В реальных машинах КОп зачастую преобразуется в МПА в иную форму и уже из микропрограммного автомата поступает в АЛУ. Операционные блоки современных АЛУ cтроятся как комбинационные схемы (они не обладают внутренней памятью и до момента сохранения результата операнды должны присутствовать на входе блока).

Регистры операндов

Регистры РХ и PY обеспечивают сохранение операндов на входе ОПБ вплоть до получения результата операции и его записи (в нашем случае в аккумулятор).

Регистр признаков (РПрз)

РПрз предназначен для фиксации и хранения признаков (флагов), характеризующих результат последней выполненной арифметической или логической операции. Такие признаки могут информировать о равенстве результата нулю, о знаке результата, о возникновении переноса из старшего разряда, переполнении разрядной сетки и т. д. Содержимое РПрз обычно используется УУ ДЛЯ реализации условных переходов но результатам операций АЛУ. Под каждый из возможных признаков отводится один разряд РПрз. Формирование признаков осуществляется блоком формирования состояний регистра признаков, который может входить в состав ОПБ либо реализуется в внешней схемы, располагаемой между операционным блоком и РПрз.

Аккумулятор (Акк)

Акк — это регистр, на который возлагаю самые разнообразные функции. Так, в него предварительно загружается один из операндов, участвующих в арифметической или логической операции. В Акк может храниться результат предыдущей команды и в него же заносится результат очередной операции. Через Акк зачастую производятся операции ввода и вывода. Строго говоря, аккумулятор в равной мере можно отнести как к АЛУ, так и УУ, а в ВМ с регистровой архитектурой его можно рассматривать как один из регистров общего назначения.

Основная память

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

Модуль ввода/вывода (МВВ)

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

Порты ввода и порты вывода

Портом называют схему, ответственную за передачу информации из периферийного устройства ввода в аккумулятор АЛУ (порт ввода) или из аккумулятора на ПУ вывода (порт вывода). Схема обеспечивает электрическое и логическое сопряжение ВМ с подключенным к нему периферийным устройством.

Дешифратор номера порта ввода/вывода (ДВВ)

В МВВ рассматриваемой ВМ предполагается, что каждое ПУ подключается к своему порту. Каждый порт имеет уникальный номер, который указывается в адресной части команд ввода/вывода. Дешифратор номера порти ввода/вывода обеспечивает преобразование номера порта в сигнал, разрешающий операцию ввода или вывода на соответствующем порте. Непосредственно ввод (вывод) происходит при поступлении из МПА сигнала ВВ (Выв).

Тема необъятна, читайте еще:

  1. Архитектура операционной системы
  2. Реферат на тему «Архитектура операционной системы Windows»
  3. Принцип программного управления
  4. Системы дистанционного обучения по курсу Микропроцессорные системы

Автор: Настя Б. Настя Б., 31.03.2017
Рубрики: Компьютеры, Программирование
Предыдущие записи: МЕТОДИЧНІ РЕКОМЕНДАЦІЇ ДО КУРСУ “ОСНОВИ ЕКОНОМІЧНОЇ ТЕОРІЇ”
Следующие записи: Несущие конструкции из пластмасс. Пневматические конструкции.

Последние статьи

  • ТОП -5 Лучших машинок для стрижки животных
  • Лучшие модели телескопов стоимостью до 100 долларов
  • ПРЕДУПРЕЖДЕНИЕ ОТКЛОНЕНИЙ РЕЧЕВОГО РАЗВИТИЯ У ДЕТЕЙ РАННЕГО ВОЗРАСТА
  • КОНЦЕПЦИИ РАЗВИТИЯ И ПОЗИЦИОНИРОВАНИЯ СИБИРИ: ГЕОПОЛИТИЧЕСКИЕИ ГЕОЭКОНОМИЧЕСКИЕ АСПЕКТЫ ОЦЕНКИ
  • «РЕАЛИЗМ В ВЫСШЕМ СМЫСЛЕ» КАК ТВОРЧЕСКИЙ МЕТОД Ф.М. ДОСТОЕВСКОГО
  • Как написать автореферат
  • Реферат по теории организации
  • Анализ проблем сельского хозяйства и животноводства
  • 3.5 Развитие биогазовых технологий в России
  • Биологическая природа образования биогаза
Все права защищены © 2017 Kursak.NET. Электронная библиотека : Если вы автор и считаете, что размещённая книга, нарушает ваши права, напишите нам: admin@kursak.net