Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лекция 1. Многоуровневая компьютерная организация




 

1. Языки, уровни и виртуальные машины

 

Человек пишет команды, которые в совокупности формируют язык, называемый условно Я1. Встроенные машинные команды тоже формируют язык, и мы будем называть его Я 0. Компьютер может выполнять только пропрограммы, написан- ные на его машинном языке Я 0. Компьютер не будет выполнять программы, на- писанные на языке Я 1, — ведь в конечном итоге компьютеру доступен только машинный язык Я 0.

 

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

 

Второй способ означает создание программы на языке Я 0, получающей в качест- ве входных данных программы, написанные на языке Я 1. При этом каждая ко- манда языка Я 1 обрабатывается поочередно, после чего сразу выполняется экви- валентный ей набор команд языка Я 0. Эта технология не требует составления но- вой программы на Я 0. Она называется интерпретацией, а программа, которая осуществляет интерпретацию, называется интерпретатором.

 

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

0 загружается в память компьютера и затем выполняется. При интерпретации ка-

ждая команда программы на Я 1 перекодируется в Я 0 и сразу же выполняется. В отличие от трансляции, здесь не создается новая программа на Я 0, а происходит последовательная перекодировка и выполнение команд.

 

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

 

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


туры, — самый примитивный, а тот, что расположен на ее вершине — самый сложный.

 

 

Большинство современных компьютеров состоит из двух и более уровней.

 

Существуют компьютеры с шестью уровнями (рисунок 2). Уровень 0 — это аппа- ратаппаратное обеспечение машины. Электронные схемы на уровне 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 есть существенная разница. Нижние три уровня задуманы не для того, чтобы с ними работал обычный программист. Они изначально ориен- тированы на интерпретаторы и трансляторы, поддерживающие более высокие уровни. Эти трансляторы и интерпретаторы составляются так называемыми сис- темными программистами, которые специализируются на разработке новых вир- туальных машин. Уровни с четвертого и выше предназначены для прикладных программистов, решающих конкретные задачи.

 

Еще одно изменение, появившееся на уровне 4, — механизм поддержки более вы- соких уровней. Уровни 2 и 3 обычно интерпретируются, а уровни 4, 5 и выше обычно, хотя и не всегда, транслируются.

 

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


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

 

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

 

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

 

Например, программы на языке Java сначала транслируются на язык, напоми-

нающий ISA и называемый байт-кодом Java, который затем интерпретируется.

 

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

 

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

 




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 954; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.027 сек.