Укажите номер уровня который в многоуровневой организации компьютера занимает уровень ассемблера

Обновлено: 03.07.2024

4.1. УРОВНИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

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

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

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

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

Яркой особенностью программного обеспечения любого компьютера является то, что оно имеет уровневую структуру. Многоуровневая организация вычислительной среды представлена на рисунке:


Организация вычислительной среды

Эта структура является достаточно условной и, в зависимости от степени детализации, число уровней может измениться.

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

· Уровень 1 . На самом низшем – первом уровне находится базовая система ввода-вывода – BIOS . Она занимает промежуточное положение между техническим и программным видами обеспечения. Поэтому её относят к микропрограммному обеспечению. С помощью BIOS реализуются связи технической и программной компонент вычислительной системы. Как и всё остальное программное обеспечение, микропрограммы - это набор команд, но подобно техническому обеспечению этот набор не носит временного характера, а находится в постоянной памяти компьютера. Кратко рассмотрим назначение BIOS. Любой компьютер имеет множество внутренних и внешних компонент. Для реализации управления необходимо точно знать, какие компоненты содержит компьютер, их параметры, и как к ним можно обратиться при работе. Безусловно, если бы все компьютеры имели единую конфигурацию, этих проблем бы не было. Однако современные компьютеры тем и хороши, что пользователь может сам компоновать вычислительную систему для своих нужд, сообразуясь со своими возможностями. BIOS может настраиваться на определенную конфигурацию технических средств, имеющихся в распоряжении пользователя. При включении компьютера BIOS производит тестирование каждого из компонентов машины и читает настройки компьютера. В дальнейшем с помощью BIOS выполняются все операции по работе с устройствами компьютера, поскольку, говоря техническим языком, BIOS содержит постоянную адресную часть кодов управления для обслуживания системных вызовов.

· Уровень 2. На втором уровне вычислительной среды находится операционная система (ОС). Операционная система занимает особое место среди всех системных программ, поскольку простота и удобство работы на компьютере во многом определяется установленной на нём операционной системой. Операционная система представляет собой комплекс программ, которые обеспечивают пользователю и прикладным программам способы общения с устройствами компьютера. Принято говорить, что операционная система предлагает пользователю интерфейс – методы и средства управления компьютерным процессом. В отличие от BIOS операционная система гораздо больше по размерам, поэтому на неработающем компьютере она хранится на устройствах внешней памяти (обычно на жестком диске). После включения компьютера ОС автоматически загружается в его основную память и берет на себя все функции управления, осуществляя их через BIOS .

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

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

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

Объекты на уровне 0 называются вентилями. Вентили состоят из аналоговых компонентов (транзисторы) и смоделированы как цифровые средства, на входе у которых цифровые сигналы (или набор 0 и 1), а на выходе – результат простых функций («И» или «ИЛИ»). Каждый вентиль формируется из нескольких транзисторов. Несколько вентилей формируют 1 бит памяти, который может содержать 0 или 1. Биты памяти,объединенные в группы, например, по 16,32 или 64, формируют регистры. Каждый регистр может содержать одно двоичное число до определенного
предела.
Уровень 1. Микроархитектурный уровень, представляет собой локальную память ( совокупность регистров) и схему, называемую АЛУ (арифметико-логическое устройство). АЛУ выполняет простые арифметические операции. Регистры вместе с АЛУ формируют тракт данных, по которому поступают данные. Основная операция тракта данных состоит в следующем. Выбирается один или два регистра, АЛУ производит над ними какую-либо операцию, например сложения, а результат помещается в один из этих регистров.
Уровень 2. Уровень архитектуры команд. Этот уровень включает набор машинных команд, которые выполняются микропрограммой-интерпретатором или аппаратным обеспечением.

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

Современные компьютеры можно представить как структуру, состоящую из шести уровней (рис. 1.2).

Структура шестиуровневого компьютера

Рис. 1.2. Структура шестиуровневого компьютера

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

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

Уровень 0: Цифровой логический уровень. Цифровой логический уровень представляет собой аппаратное обеспечение компьютера. Объектами цифрового логического уровня являются цифровые логические устройства. Для описания того, как функционируют цифровые логические устройства, применяется математический аппарат алгебры логики, в которой используются логический ноль и логическая единица.

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

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

Триггер — это электронная схема, широко применяемая в регистрах компьютера для надежного запоминания двоичной единицы (бита памяти).

Биты памяти, объединенные в группы, например, по 16, 32 или 64, формируют регистры. Каждый регистр может содержать одно двоичное число до определенного предела.

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

На этом уровне в обработке команд участвует арифметико-логическое устройство (АЛУ).

АЛУ состоит из регистров, сумматора с соответствующими логическими схемами и элемента управления выполняемым процессом. Оперативная память организована в виде последовательностей, которые группируются в машинные слова. Арифметико-логическое устройство работает в соответствии с сообщаемыми ему именами (кодами) операций, которые при пересылке данных нужно выполнить над переменными, помещаемыми в регистры. Над какими кодами производится операция, куда помещается ее результат — определяется выполняемой командой. Примерами обработки могут служить логические операции («И», «ИЛИ», «Исключающего ИЛИ» ит.д.), т.е. побитные операции над операндами, а также арифметические операции (сложение, вычитание, умножение, деление и т.д.). Команды содержат от одного до трех операндов.

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

Различают два вида микрокоманд: внешние — такие микрокоманды, которые поступают в АЛУ от внешних источников и вызывают в нем преобразование информации, и внутренние — те, которые генерируются в АЛУ и оказывают влияние на микропрограммное устройство, изменяя таким образом нормальный порядок следования команд.

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

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

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

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

Уровень 2: уровень архитектуры набора команд. Архитектура набора команд (англ, instruction set architecture, ISA) — часть архитектуры компьютера, определяющая программируемую часть ядра микропроцессора. На этом уровне определяются реализованные в микропроцессоре конкретного типа:

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

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

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

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

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

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

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

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

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

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

Уровень 4: уровень ассемблера. Уровень 4 представляет собой символическую форму одного из языков более низкого уровня — ассемблера. Ассемблер (от англ, assembler — сборщик) — транслятор исходного текста программы, написанной на языке ассемблера, в программу на машинном языке.

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

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

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

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

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

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

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

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

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



Рис. 2.1. Компьютер с шестью уровнями. Способ поддержки каждого уровня указан под ним. В скобках указывается название поддерживающей программы

Уровень 0

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

Уровень 1

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

Уровень 2

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

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

Уровень 3

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

Уровень 4

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

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

Уровень 5

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

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

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

Читайте также: