logo
стр 103-113

Архитектура компьютера

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

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

На самом нижнем уровне (нулевом) – цифровом логическом уровне, объекты называются вентилями или переключателями. Эти переключатели могут находиться в одном из двух устойчивых состояний: переключатель включен или выключен, конденсатор заряжен или разряжен, магнитный домен намагничен или нет, транзистор находится в проводящем состоянии или непроводящем и т.п. Одно из таких физических состояний создает высокий уровень выходного напряжения (например, 4 В), а другое – низкий (например, 0 В). В компьютере эти электрические напряжения принимаются соответственно за 1 (логическая) и 0 (логический). Хотя возможно и обратное кодирование.

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

Второй уровень называется уровнем архитектуры системы команд. В процессе работы МП обслуживает данные, находящиеся в его регистрах, в поле ОП, а также во внешних портах ЭВМ. Часть данных он интерпретирует как непосредственно данные, часть как адресные данные, а часть как команды. Совокупность всех возможных команд образует систему команд процессора. Именно система команд (расширенная или сокращенная) разделяет процессоры на RISC, CISC или векторные, суперскалярные и т.д. Машинная команда состоит из двух частей: операционной и адресной. Операционная часть команды – это группа разрядов в команде, предназначенная для предоставления кода операции машины (КОП). Адресная часть команды – это группа разрядов, в которых записываются коды адреса ячеек памяти машины. Часто эти адреса называются адресами операндов, т.е. чисел, участвующих в операции. По количеству адресов, записываемых в команде, команды делятся на безадресные, одно -, двух- и трехадресные. Типовая структура трехадресной команды:

КОП

Адрес 1-го операнда

Адрес 2-го операнда

Адрес результата

Типовая структура двухадресной команды:

КОП

Адрес 1-го операнда

Адрес 2-го операнда

В этом случае, результат операции записывается на место 1-го операнда.

Типовая структура одноадресной команды:

КОП

Адрес операнда, результата или перехода

Типовая структура безадресной команды:

КОП

Расширение кода операции

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

Следующий уровень – уровень ОС обычно гибридный. Большинство команд в его языке есть также и на уровне архитектуры системы команд. Далее идут высокоуровневые блоки, которые уже предназначены для прикладных программистов, первые три для системных программистов. На рисунке 3.1 показан пример такого подхода.

У

Язык высокого уровня

ровень 5

Трансляция (компилятор)

У

Уровень ассемблера

ровень 4

Уровень ОС

Трансляция (ассемблер)

Уровень 3

Трансляция

У

Уровень архитектуры команд

ровень 2

Интерпретация (микропрограмма)

У

Микроархитектурный уровень

ровень 1

Аппаратное обеспечение

У

Цифровой логический уровень

ровень 0

Рис. 3.1 Шестиуровневое представление компьютера.