Архитектура компьютера и процессоров, Архитектуры фон Неймана и Гарвардская. Физические компоненты. Характеристики компьютера
Сразу хочу сказать, что здесь никакой воды про архитектура компьютера, и только нужная информация. Для того чтобы лучше понимать что такое архитектура компьютера, архитектура фон неймана, гарвардская архитектура, характеристики компьютера, архитектура процессоров , настоятельно рекомендую прочитать все из категории Компьютерная схемотехника и архитектура компьютеров.
Архитектура персонального компьютера — компоновка его основных частей, таких как процессор, ОЗУ, видеоподсистема, дисковая система, периферийные устройства и устройства ввода-вывода.
Архитектура компьютера — набор типов данных, операций и характеристик каждого отдельно взятого уровня. Архитектура описывает общую модель компьютера. Аспекты реализации (например, технология, применяемая при реализации памяти) не являются частью архитектуры .
Выделяют несколько уровней организации компьютера (компьютерной архитектуры), от двух и более:
Архитектура ЭВМ характеризуется качествами машины, влияющими на ее взаимодействие с пользователем. Архитектуpa определяет совокупность свойств машины и характеристик, которые необходимо знать программисту для эффективного использования ЭВМ при решении задач.
В свою очередь, архитектура определяет принципы организации вычислительной системы и функции центрального вычислительного устройства. Однако она не показывает то, как эти принципы реализуются внутри машины. Архитектура не зависит от программно недоступных ресурсов машины. Если у компьютеров одинаковая архитектура, то любая программа в машинном коде, написанная для одного компьютера, на другом компьютере работает аналогично с получением одинаковых результатов.
Для выполнения своих функций любой ЭВМ необходим минимальный набор функциональных блоков.
Архитектура сегодняшних компьютеров имеет классические черты, однако есть и некоторые отличия. В частности, запоминающее устройство (ЗУ) первых ЭВМ классической структуры подразделялось на два вида:
1) внутреннее, содержащее информацию, которая обрабатывалась в нем за некоторый момент времени;
2) внешнее, являющееся хранилищем всей информации, необходимой для работы компьютера.
В ходе технического прогресса число уровней в иерархии памяти компьютеров увеличивалось.
Арифметико-логическое устройство и устройство управления образуют единый блок, называемый центральным процессором. Перечень устройств для ввода и вывода данных включает в себя различные накопители на магнитных, оптических и магнитооптических дисках, сканеры, клавиатуру, мышь, джойстик, принтеры, графопостроители и т. д. Структура современного ПК содержит две основные части: центральную и периферийную, при этом к центральной части принято относить центральный процессор и внутреннюю память.
Центральным процессором (ЦП) называется устройство, обрабатывающее данные и осуществляющее программное управление этим процессом. Центральный процессор состоит из АЛУ, УУ, иногда и собственной памяти процессора; он чаще всего выполняется в виде большой интегральной схемы и носит название микропроцессора.
Внутренняя память – это устройство, предназначенное для хранения информации в специальном закодированном виде.
Оперативное запоминающее устройство, или оперативная память (ОП), – это ЦП, взаимодействующий с внутренним ЗУ. Оперативная память используется для приема, хранения и выдачи всей информации, которая требуется для выполнения операций в ЦП.
Внешние запоминающие устройства необходимы для хранения больших объемов информации, не использующейся в данный момент времени процессором. К ним относятся: накопители на магнитных дисках, накопители на магнитных лентах, накопители на оптических и магнитооптических дисках.
Виртуальной памятью является совокупность ОП, ВЗУ и комплекса программно-аппаратных средств.
Конфигурация ЭВМ– это определенный состав ее устройств с учетом их особенностей.
Операцией ввода называется передача информации от периферийных устройств в центральные, операцией вывода – процесс передачи информации из центральных устройств в периферийные.
Интерфейсы представляют собой сопряжения, осуществляющие в вычислительной технике связь между устройствами ПК.
Архитектура компьютера — набор типов данных, операций и характеристик каждого отдельно взятого уровня. Архитектура связана с программными аспектами. Аспекты реализации (например, технология, применяемая при реализации памяти) не являются частью архитектуры[
Выделяют несколько уровней организации компьютера (компьютерной архитектуры), от двух и более:[
Уровень 0
Цифровой логический уровень, это аппаратное обеспечение машины, состоящий из вентилей. См. Логические элементы (защелки), триггеры, регистры
Уровень 1
Микроархитектурный уровень, интерпретация (микропрограммы) или непосредственное выполнение. Электронные схемы исполняют машинно-зависимые программы. Совокупность регистров процессора формирует локальную память. См. арифметико-логическое устройство.
Уровень 2
Уровень архитектуры системы команд, трансляция (ассемблер).
Уровень 3
Уровень операционной системы, трансляция (ассемблер). Это гибридный уровень: одна часть команд интерпретируется операционной системой, а другая — микропрограммой. См. виртуальная память, файлы.
Уровень 4
Уровень языка ассемблера, трансляция (компилятор). Четвертый уровень и выше используется для написания прикладных программ, с первого по третий — системных программ. Программы в удобном для человека виде транслируются на язык уровней 1-3.
Уровень 5
Язык высокого уровня. Программы на языках высокого уровня транслируются обычно на уровни 3 и 4.
Схема, иллюстрирующая многоуровневую структуру компьютера
2. Архитектура персонального компьютера
Современные персональные компьютеры различаются по своим размерам, конструкции, разновидностям используемых микросхем и модулей памяти, другим характеристикам. В то же время все они имеют единое функциональное устройство, единую архитектуру — основные узлы и способы взаимодействия между ними (рис. 2.7).
Архитектура — это наиболее общие принципы построения компьютера, отражающие программное управление работой и взаимодействием его основных функциональных узлов.
На рисунке 2.7 изображены хорошо известные вам узлы современного компьютера:
процессор,
внутренняя память,
устройства ввода,
устройства вывода и внешняя память.
Рис. 2.7. Функциональная схема компьютера (К — контроллер)
Обмен данными между устройствами компьютера осуществляется с помощью магистрали.
Магистраль (шина) — устройство для обмена данными между устройствами компьютера.Магистраль состоит из трёх линий связи:
• шины адреса, используемой для указания физического адреса, к которому устройство может обратиться для проведения операции чтения или записи;
• шины данных, предназначенной для передачи данных между узлами компьютера;
• шины управления, по которой передаются сигналы, управляющие обменом информацией между устройствами и синхронизирующие этот обмен.
В компьютерах, имевших классическую фон-неймановскую архитектуру, процессор контролировал все процессы ввода/вывода. При этом быстродействующий процессор затрачивал много времени на ожидание результатов работы от значительно более медленных внешних устройств. Для повышения эффективности работы процессора были созданы специальные электронные схемы, предназначенные для обслуживания устройств ввода/вывода или внешней памяти.
Контроллер — это специальный микропроцессор, предназначенный для управления внешними устройствами: накопителями, мониторами, принтерами и т. д.
Благодаря контроллерам данные по магистрали могут передаваться между внешними устройствами и внутренней памятью напрямую, минуя процессор. Это приводит к существенному снижению нагрузки на центральный процессор и повышает эффективность работы всей вычислительной системы.
Современные компьютеры обладают магистрально-модульной архитектурой, главное достоинство которой заключается в возможности легко изменить конфигурацию компьютера путём подключения к шине новых или замены старых внешних устройств.
Если спецификация на шину (детальное описание всех её параметров) является открытой (опубликованной), то производители могут разработать и предложить пользователям разнообразные дополнительные устройства для компьютеров с такой шиной. Подобный подход называют принципом открытой архитектуры. Благодаря ему пользователь может собрать именно такую компьютерную систему, которая ему нужна.
Основные виды архитектур
По форматам используемых команд (инструкций) можно выделить:
● CISC–архитектуру, которая относится к процессорам (компьютерам) с полным набором команд (Complete Instruction Set Computer— CISC). Она реализована во многих типах микропроцессоров (например Pentium), выполняющих большой набор разноформатных команд с использованием многочисленных способов адресации.
Система команд процессоров с CISC–архитектурой может содержать несколько сотен команд разного формата (от 1 до 15 байт), или степени сложности, и использовать более 10 различных способов адресации, что позволяет программисту реализовать наиболее эффективные алгоритмы решения различных задач.
Логические схемы
Логическая схема — это набор объединенных вентилей с входными и выходными сигналами. На рис 1.1 тоже изображена схема у которой входными сигналами являются A и B, выходной сигнал идет от операции ИЛИ; также у нее есть три вентиля: два И, один ИЛИ. Теперь давайте рассмотрим некоторые виды схем с которыми нам потребуется встречаться в дальнейшем, к ним относятся: комбинационные, арифметические, интегральные схемы.
Комбинационные схемы
Комбинационная схема — это схема с одним дополнительным свойством: значения выходных сигналов зависят только от входных, или другими словами, в ней нет никаких запоминающих устройств. Из этого вида схем создаются переиспользуемые компоненты, которые применяются для реализации большинства других схем, мы рассмотрим несколько, а именно: компаратор, декодер, мультиплексор/демультиплексор.
Компаратор имеет n входных парных линий (то есть 2n входов) и одну выходную линию. Логика его работы заключается в том, чтобы сравнить каждую пару битов (биты слова A сравниваются с соответствующими битами слова B) и при неравенстве хоть одной из них выдать 0 (если за ложь принят 0), иначе 1. Давайте построим таблицу истинности (табл. 1.1) для однобитного компаратора; можно заметить, что она равна таблице истинности ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ (когда к операции добавлен НЕ, то все выходные значения в таблице становятся противоположными). Теперь давайте расширим его до двухбитного компаратора, построим таблицу истинности (табл. 1.2) для него от двух переменных значения которых зависит от двух однобитных компаратора, то есть от двух ИСКЛЮЧАЮЩЕГО ИЛИ-НЕ; в ней значение 1 в CMP0 (и CMP1) значит, что два входа какото-то компаратора равны, 0 наоборот, то есть 1 в столбце R должна быть только, когда значения равны в двух компараторах. Эта таблица истинности совпадает с таблицей И, то есть мы объединяем все ИСКЛЮЧАЮЩЕГО ИЛИ-НЕ операцией И и у нас получится двухбитный компаратор (рис. 1.3а). Для дальнейшего расширение компаратора необходимо лишь добавить ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ и подсоединить его к И. Недостаток такой реализации заключается в ее избыточности, нам требуется добавлять вентили НЕ для каждого ИСКЛЮЧАЮЩЕГО ИЛИ; мы можем от этого избавится (рис. 1.3б), если заменим вентиль И с НЕ входами на ИЛИ-НЕ, так как их таблицы истинности совпадают.
Таблица. 1.1. Таблица истинности для однобитного компаратора.
A | B | CMP |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
CMP0 | CMP1 | R |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Рисунок 1.3. Две схемы двухбитных компараторов.
Декодер обладает n входными линиями, 2^n выходными, он реализован так, чтобы сигнал (истинна, 1) прошел только в одну выходную линию. Каждый выходной вентиль И получает свою комбинацию значений переменных, которые (значения) находятся в какой-то строке таблицы истинности, а как мы уже знаем, строку таблицы истинности можно реализовать как минтерму, то есть мы каждую строку представляем как вентиль И (рис. 1.4) от нескольких переменных. Основное применение декодера заключается в выборочном включении разных частей схемы (или схем), например, у АЛУ (о нем далее) имеется несколько операции, которые он может выполнять над входными значениями, чтобы их выбрать одну из них используется декодер.
Рисунок 1.4 Декодер.
Мультиплексор/демультиплексор
Мультиплексор обладает 2^n входными линиями, n линиями управления и одной выходной линией. Он в реализации в какой-то степени похож (рис 1.5) на декодер, если представить входы декодера как линии управления, дополнить каждый вентиль И дополнительным входным сигналом и объединить выходные значения всех И одним ИЛИ. Суть его работы заключается в том, чтобы на выход поступал сигнал только от одной из возможных входных линий. Мультиплексор применяется в разных целях, например, он может пригодиться для преобразования параллельного кода в последовательный. Допустим у нас есть параллельная (это значит, что линии работают одновременно) шина с несколькими линиями по которым параллельно передаются биты; чтобы считать нужное нам слово (обычно разрядность слова соответствует разрядности регистра в процессоре) мы соединяем линий шины с входами мультиплексора и последовательно включаем по одному входу, допустим сверху вниз, тем самым на выход у нас пойдет точная последовательность битов.
Демультиплексор является обратным мультиплексору, он имеет одну входную линию, n линий управления и 2^n выходных линий. Логика его работы точно такая же как и в мультиплексоре, только один входной сигнал идет в один из выходных. Может быть использован для преобразования последовательного кода в параллельный.
Рисунок 1.5. Мультиплексор.
Арифметические схема
Данный вид схем выполняет арифметические операции над входными сигналами. Основными схемами являются: логические функции, сумматор, схема сдвига, АЛУ (ALU, Arithmetic Logic Unit).
Полусумматор и полный сумматор
Полусумматор состоит из двух входных и двух выходных линий, Полусумматор является простой схемой (рис. 1.6) из двух вентилей: И и ИСКЛЮЧАЮЩЕЕ ИЛИ. Сам по себе полусумматор может складывать только одноразрядные значения, но зачем же тогда нам нужен полный сумматор? В основном мы хотим складывать значения с большей разрядностью, но только одним полусумматором мы удовлетворить это желание не может. Когда мы складываем два одноразрядных значения, то у нас может произойти переполнение (табл. 1.3 последняя строка истинности в столбике перенос). Это когда результат операции не помещается в той разрядности, которой обладают входные элементы (в данном случае 1). При сложении двух единиц получает двойка, которую нельзя сохранить в одном бите, поэтому необходимо перенести его, чтобы воспользоваться при дальнейших вычислениях, но так как в полусумматоре не предусмотрена возможность использования двух значений и переноса одновременно, то складывать значения с разрядностью более чем единицу не получится. Например, допустим мы складываем два 3-разрядных числа, 5 (101 в двоичной) и 7 (111 в двоичной), сложение двух чисел начинается с младших разрядов, на входы полусумматора направляются 1 и 1, на выходе суммы получаем 0 и на выходе переноса 1, вот здесь и возникает проблема, следующие значения, которые должны пойти в полусумматор, это 0 и 1 соответственно, но, что делать с переносом, ведь для него нет никакого свободного входа, а отбросить его нельзя, поэтому полусумматоры не могут напрямую использоваться для сложений.
У полного сумматора есть (рис. 1.7) три входных линии и две выходные линии. Входной перенос, как и выходной, используется для возможности объединения сумматоров в один с большей разрядностью. Сумматор состоит из двух полусумматоров, чтобы построить сумматор большей разрядности, необходимо только объединить сумматоры через входные и выходные переносы.
Рисунок 1.6. Схема полусумматор.
Таблица 1.3. Таблица истинности полусумматора.
A | B | Сумма | Перенос |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
Рисунок 1.7. Схема полного сумматора.
Таблица 1.4. Таблица истинности полного сумматора.
A | B | Вход перенос | Сумма | Выход перенос |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Схема сдвига
Сдвиг необходим для того, чтобы, например, выполнять умножение (сдвиг влево) и деление (сдвиг вправо), но только с числами, которые являются степенью двойки (1, 2, 4, 8 и тд). Схема сдвига (рис. 1.8) должна выполнять смещение на одну позицию влево или вправо в зависимости от бита направления. Бит направления (С) в зависимости от своего значения включает те или иные вентили И. Если он равен 0 (сдвиг влево), то сигнал который идет напрямую (то есть не проходит через НЕ) будет выключать вентиль который находятся выше в паре из двух вентилей И и один крайний вентиль И снизу. Сигнал, который проходит через НЕ, будет включать нижние вентиль в паре из двух вентилей И и один крайний вентиль И сверху. Это значит, что входные значения In будут выходить только из вентилей И выходные сигналы, которых направлены в нижнюю сторону; старший бит (I3) будет утерян, так как самый нижний вентиль И не пропустит входной сигнал дальше. Аналогичная ситуация происходит, когда бит направления равен 1 (сдвиг вправо), только теперь будут включены другие вентили И и сигнал уже будет направлен в противоположную (в данной реализации) сторону, и, следовательно, произойдет сдвиг вправо.
Рисунок 1.8. Схема сдвига.
Арифметико Логическое Устройство
АЛУ — это схема (рис. 1.9), которая содержит в себе множество арифметических схем, она предназначена для того, чтобы в одном месте хранить все операции необходимые для какой-либо цели. Реализация АЛУ разделяется на несколько частей (в данной реализации): распространение входных операндов, логические функции, сумматор и мультиплексор. Как мы помним декодер должен выполнять«включение» операций, но здесь я решил сделать мультиплексор, который подает на выход «Результат» значение, только одной из четырех операций; два нижних вентиля И в нем делят одну и ту же комбинацию при которой мультиплексор работает, это необходимо потому, что «Выход переноса» и «Сумма» сумматора являются частью одной операции, то есть оба этих входа должны работать только когда выбрано суммирование. Наш АЛУ предназначен для работы с одноразрядными значениями, но его можно почти без проблем изменить на большую разрядность. Входные линии INA и INB предназначены для включения/выключения A и B соответственно.
Рисунок 1.9. Схема АЛУ.
Интегральные схемы
Также известна как микросхема, это те же схемы показанные выше, только они помещены в корпус, который определяет, то где должны находится выводы для сигналов. Этот вид схем возник из-за того, что продавать отдельные схемы и вентили не очень целесообразно: по крайне мере из-за того, что нет стандарта, который бы говорил как, где и в каком кол-ве должны располагаться входные и выходные сигналы.
Есть куча разных видов корпусов, но мы рассмотрим наиболее известные:
- Dual Inline Package (DIP) представляет собой корпус (рис. 2.0а) у которого выводы (входные и выходные сигналы) расположены с двух сторон параллельных друг другу, кол-во выводов в данном корпусе варьируется в пределах от 14 до 68 (только четное кол-во). Данный корпус используется при небольших и/или дешевых схемах.
- Pin Grid Array (PGA) обладает выводами со всех четырех сторон (рис. 2.0б).
- Land Grid Array (LGA) обладает выводами в виде контактов по всей (зависит от стандарта) площадке (нижняя часть) корпуса. LGA (рис. 2.0в) обладает одним важным преимуществом перед другими корпусами: большое кол-во выводов, что особенно важно для таких микросхем как процессоры.
04.2020
Skolkovo Cybersecurity Сhallenge 2020: продлен прием заявок
Читать далее
Современные многоуровневые компьютеры
Современные компьютеры можно представить как структуру, состоящую из 6 уровней:
Структура шестиуровневого компьютера
Ради полноты нужно упомянуть о существовании еще одного уровня, который расположен ниже нулевого. Этот уровень не показан на рис. выше, так как он попадает в сферу электронной техники и, следовательно, не рассматривается из-за сложности материала. Он называется уровнем физических устройств. На этом уровне находятся транзисторы, которые для разработчиков компьютеров являются примитивами. Объяснить, как работают транзисторы, — задача физики.
Уровень 0: Цифровой логический уровень
Объекты цифрового логического уровня — вентили. Хотя вентили состоят из аналоговых компонентов, таких как транзисторы, они могут быть точно смоделированы как цифровые устройства. У каждого вентиля есть один или несколько цифровых входов (сигналов, представляющих 0 или 1). Вентиль вычисляет простые функции этих сигналов, такие как И или ИЛИ. Каждый вентиль формируется из нескольких транзисторов. Несколько вентилей формируют 1 бит памяти, который может содержать 0 или 1. Биты памяти, объединенные в группы, например, по 16, 32 или 64, формируют регистры. Каждый регистр может содержать одно двоичное число до определенного предела. Из вентилей также может состоять сам компьютер.
Уровень 1: уровень Микроархитектуры
Следующий уровень называется уровнем микроархитектуры. На этом уровне находятся совокупности 8 или 32 регистров, которые формируют локальную память и схему, называемую АЛУ (арифметико-логическое устройство). АЛУ выполняет простые арифметические операции. Регистры вместе с АЛУ формируют тракт данных, по которому поступают данные. Тракт данных работает следующим образом. Выбирается один или два регистра, АЛУ производит над ними какую-либо операцию, например сложения, после чего результат вновь помещается в один из этих регистров.
На некоторых машинах работа тракта данных контролируется особой программой, которая называется микропрограммой. На других машинах тракт данных контролируется аппаратными средствами.
На машинах, где тракт данных контролируется программным обеспечением, микропрограмма — это интерпретатор для команд на уровне 2. Микропрограмма вызывает команды из памяти и выполняет их одну за другой, используя при этом тракт данных. Например, при выполнении команды ADD она вызывается из памяти, ее операнды помещаются в регистры, АЛУ вычисляет сумму, а затем результат переправляется обратно. На компьютере с аппаратным контролем тракта данных происходит такая же процедура, но при этом нет программы, интерпретирующей команды уровня 2.
Уровень 2: уровень архитектуры набора команд
Уровень 2 мы будем называть уровнем архитектуры набора команд. Каждый производитель публикует руководство для компьютеров, которые он продает, под названием «Руководство по машинному языку X», «Принципы работы компьютера У» и т. п. Подобное руководство содержит информацию именно об этом уровне. Описываемый в нем набор машинных команд в действительности выполняется микропрограммой-интерпретатором или аппаратным обеспечением. Если производитель поставляет два интерпретатора для одной машины, он должен издать два руководства по машинному языку, отдельно для каждого интерпретатора.
Уровень 3: уровень операционной системы
Этот уровень обычно является гибридным. Большинство команд в его языке есть также и на уровне архитектуры набора команд (команды, имеющиеся на одном из уровней, вполне могут быть представлены и на других уровнях). У этого уровня есть некоторые дополнительные особенности: новый набор команд, другая организация памяти, способность выполнять две и более программы одновременно и некоторые другие. При построении уровня 3 возможно больше вариантов, чем при построении уровней 1 и 2.
Новые средства, появившиеся на уровне 3, выполняются интерпретатором, который работает на втором уровне. Этот интерпретатор был когда-то назван операционной системой. Команды уровня 3, идентичные командам уровня 2, выполняются микропрограммой или аппаратным обеспечением, но не операционной системой. Другими словами, одна часть команд уровня 3 интерпретируется операционной системой, а другая часть — микропрограммой. Вот почему этот уровень считается гибридным. Мы будем называть этот уровень уровнем операционной системы.
Между уровнями уровнем архитектуры набора команд и уровнем операционной системы есть существенная разница. Нижние три уровня задуманы не для того, чтобы с ними работал обычный программист. Они изначально ориентированы на интерпретаторы и трансляторы, поддерживающие более высокие уровни. Эти трансляторы и интерпретаторы составляются так называемыми системными программистами, которые специализируются на разработке новых виртуальных машин. Уровни с четвертого и выше предназначены для прикладных программистов, решающих конкретные задачи.
Еще одно изменение, появившееся на уровне операционной системы, — механизм поддержки более высоких уровней. Уровни 2 и 3 обычно интерпретируются, а уровни 4, 5 и выше
обычно, хотя и не всегда, транслируются.
Другое отличие между уровнями 1, 2, 3 и уровнями 4, 5 и выше — особенность языка. Машинные языки уровней 1, 2 и 3 — цифровые. Программы, написанные на этих языках, состоят из длинных рядов цифр, которые воспринимаются компьютерами, но малопонятны для людей. Начиная с уровня 4, языки содержат слова и сокращения, понятные человеку.
Уровень 4: уровень Ассемблера
Уровень 4 представляет собой символическую форму одного из языков более низкого уровня. На этом уровне можно писать программы в приемлемой для человека форме. Эти программы сначала транслируются на язык уровня 1, 2 или 3, а затем интерпретируются соответствующей виртуальной или фактически существующей машиной. Программа, которая выполняет трансляцию, называется ассемблером.
Уровень 5: уровень языка прикладных программистов
Уровень 5 обычно состоит из языков, разработанных для прикладных программистов. Такие языки называются языками высокого уровня. Существуют сотни языков высокого уровня. Наиболее известные среди них — С, C++, Java, LISP и Prolog. Программы, написанные на этих языках, обычно транслируются на уровень 3 или 4. Трансляторы, которые обрабатывают эти программы, называются компиляторами. Отметим, что иногда также имеет место интерпретация. Например, программы на языке Java сначала транслируются на язык, напоминающий ISA и называемый байт-кодом Java, который затем интерпретируется.
В некоторых случаях уровень 5 состоит из интерпретатора для конкретной прикладной области, например символической логики. Он предусматривает данные и операции для решения задач в этой области, выраженные при помощи специальной терминологии.
Таким образом, компьютер проектируется как иерархическая структура уровней, которые надстраиваются друг над другом. Каждый уровень представляет собой определенную абстракцию различных объектов и операций. Рассматривая компьютер подобным образом, мы можем не принимать во внимание ненужные нам детали и, таким образом, сделать сложный предмет более простым для понимания.
Набор типов данных, операций и характеристик каждого отдельно взятого уровня называется архитектурой. Архитектура связана с программными аспектами. Например, сведения о том, сколько памяти можно использовать при написании программы, — часть архитектуры. Аспекты реализации (например, технология, применяемая при реализации памяти) не являются частью архитектуры. Изучая методы проектирования программных элементов компьютерной системы, мы изучаем компьютерную архитектуру. На практике термины «компьютерная архитектура» и «компьютерная организация» употребляются как синонимы.
По материалам книги «Архитектура компьютера» Э. Таненбаума. Советую прочитать оригинал.