Организация ЭВМ и систем: Курс лекций (Позиционные системы счисления. Процессоры семейства IA-32. Лазерные принтеры), страница 4

Чтобы не думать о трансляции и интерпретации, в литературе часто прибегают к понятию виртуальной, то есть не существующей реально, но возможной, машины, для которой машинным языком является язык Я1. Обозначим такую машину посредством М1, а виртуальную или реальную — в данном случае это неважно — машину с языком Я0 — посредством М0. Если бы машину М1 можно было изготовить без чрезмерных затрат, машина М0 вместе со своим языком Я0 была бы не нужна. Можно было бы сразу писать программы на языке Я1, и машина сразу бы их выполняла. Но даже если виртуальная машина М1 не существует реально, всё равно можно писать для неё программы, которые будут транслироваться, а затем выполняться или просто интерпретироваться на машине М0. Иными словами, можно писать программы для виртуальных машин, как будто они существуют в виде физического объекта.

Чтобы трансляцию или интерпретацию можно было осуществить без больших трудностей, языки Я0 и Я1 не должны сильно различаться. Это значит, что язык Я1 хотя и удобнее для программиста, чем Я0, но всё равно недостаточно удобен.

Очевидный выход из положения — создание ещё одного языка Я2, более ориентированного на человека и менее — на реальную машину, чем Я1. Программы, написанные на языке Я2, могут либо транслироваться на язык Я1, либо выполняться интерпретатором, написанным на языке Я1.

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

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

Прикладные программы для виртуальной машины Мn можно писать и не зная о более низких уровнях. Но для того, чтобы понять, как работает ВС, нужно изучить все уровни.

1.3.2. Современные многоуровневые системы

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

Ради полноты нужно упомянуть о существовании ещё одного уровня, расположенного ниже уровня 0. Этот уровень называется уровнем физических устройств. Он является предметом не архитектуры ЭВМ, а электронной техники.

Уровень 0 — первый снизу уровень, на котором расположены цифровые устройства. Этими устройствами являются вентили, как их называют в переводной литературе.

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

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

Уровень 2 будем называть уровнем системы команд. Руководства, которые публикуют производители для своих компьютеров, содержат информацию именно об этом уровне. Когда производитель описывает набор машинных команд, он, в действительности, описывает команды, которые выполняются микропрограммой-интерпретатором или аппаратным обеспечением. Если производитель поставляет два микропрограммных интерпретатора для одной машины, он должен издать два руководства по машинному языку, отдельно для каждого интерпретатора.