Современные многоуровневые машины

Большинство современных компьютеров состоит из двух и более уровней. Су¬ществуют машины даже с шестью уровнями (рис. 1.2). Уровень 0 — это аппарат¬ное обеспечение машины. Электронные схемы на уровне 1 выполняют машин¬но-зависимые программы. Ради полноты нужно упомянуть о существовании еще одного уровня, который расположен ниже нулевого. Этот уровень не показан на рис. 1.2, так как он попадает в сферу электронной техники и, следовательно, не рассматривается в этой книге. Он называется уровнем физических устройств. На этом уровне находятся транзисторы, которые для разработчиков компью¬теров являются примитивами. Объяснить, как работают транзисторы, — задача физики.

Рисунок 1.2

На самом нижнем уровне из тех, что мы будем изучать, а именно, на цифро¬вом логическом уровне, объекты называются вентилями. Хотя вентили состо¬ят из аналоговых компонентов, таких как транзисторы, они могут быть точно смоделированы как цифровые устройства. У каждого вентиля есть один или не¬сколько цифровых входов (сигналов, представляющих 0 или 1). Вентиль вычис¬ляет простые функции этих сигналов, такие как И или ИЛИ. Каждый вентиль формируется из нескольких транзисторов. Несколько вентилей формируют 1 бит памяти, который может содержать 0 или 1. Биты памяти, объединенные в группы, например, по 16, 32 или 64, формируют регистры. Каждый регистр мо¬жет содержать одно двоичное число до определенного предела. Из вентилей так¬же может состоять сам компьютер.

Следующий уровень называется уровнем микроархитектуры. На этом уровне находятся совокупности 8 или 32 регистров, которые формируют локальную па¬мять и схему, называемую АЛУ (арифметико-логическое устройство). АЛУ выполняет простые арифметические операции. Регистры вместе с АЛУ форми¬руют тракт данных, по которому поступают данные. Тракт данных работает сле¬дующим образом. Выбирается один или два регистра, АЛУ производит над ними какую-либо операцию, например сложения, после чего результат вновь помеща¬ется в один из этих регистров.

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

На машинах, где тракт данных контролируется программным обеспечением, микропрограмма — это интерпретатор для команд на уровне 2. Микропрограмма вызывает команды из памяти и выполняет их одну за другой, используя при этом тракт данных. Например, при выполнении команды ADD она вызывается из памяти, ее операнды помещаются в регистры, АЛУ вычисляет сумму, а затем ре¬зультат переправляется обратно. На компьютере с аппаратным контролем тракта данных происходит такая же процедура, но при этом нет программы, интерпре¬тирующей команды уровня 2.

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

Следующий уровень обычно является гибридным. Большинство команд в его языке есть также и на уровне архитектуры набора команд (команды, имеющиеся на одном из уровней, вполне могут быть представлены и на других уровнях). У этого уровня есть некоторые дополнительные особенности: новый набор ко¬манд, другая организация памяти, способность выполнять две и более программы одновременно и некоторые другие. При построении уровня 3 возможно больше вариантов, чем при построении уровней 1 и 2.

Новые средства, появившиеся на уровне 3, выполняются интерпретатором, ко¬торый работает на втором уровне. Этот интерпретатор был когда-то назван опе¬рационной системой. Команды уровня 3, идентичные командам уровня 2, выпол¬няются микропрограммой или аппаратным обеспечением, но не операционной системой. Другими словами, одна часть команд уровня 3 интерпретируется опе¬рационной системой, а другая часть — микропрограммой. Вот почему этот уро¬вень считается гибридным. Мы будем называть этот уровень уровнем операци¬онной системы.

Между уровнями 3 и 4 есть существенная разница. Нижние три уровня изначально ориентированы на интерпретаторы и трансляторы, поддерживающие более вы¬сокие уровни. Эти трансляторы и интерпретаторы составляются так называемыми системными программистами, которые специализируются на разработке новых виртуальных машин. Уровни с четвертого и выше предназначены для приклад¬ных программистов, решающих конкретные задачи.

Уровни 2 и 3 обычно интерпретируются, а уровни 4, 5 и выше обычно, хотя и не всегда, транслируются. Другое отличие между уровнями 1, 2, 3 и уровнями 4, 5 и выше — особен¬ность языка. Машинные языки уровней 1, 2 и 3 — цифровые. Программы, напи¬санные на этих языках, состоят из длинных рядов цифр, которые воспринимают¬ся компьютерами, но малопонятны для людей. Начиная с уровня 4, языки содержат слова и сокращения, понятные человеку.

Уровень 4 представляет собой символическую форму одного из языков более низкого уровня. На этом уровне можно писать программы в приемлемой для че¬ловека форме. Эти программы сначала транслируются на язык уровня 1, 2 или 3, а затем интерпретируются соответствующей виртуальной или фактически суще¬ствующей машиной. Программа, которая выполняет трансляцию, называется ас¬семблером.

Уровень 5 обычно состоит из языков, разработанных для прикладных про-граммистов. Такие языки называются языками высокого уровня. Существуют сотни языков высокого уровня. Наиболее известные среди них — С, С++, Java, LISP и Prolog. Программы, написанные на этих языках, обычно транслируются на уровень 3 или 4. Трансляторы, которые обрабатывают эти программы, назы¬ваются компиляторами.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: