Архитекту́ра компью́тера — это модель компьютерной системы, воплощённая в её компонентах, их взаимодействии между собой и окружением, включающая также принципы её проектирования и развития[1][2]. Аспекты реализации (например, технология, используемые при создании памяти) не являются частью архитектуры[3]
Микроархитектурный уровень, интерпретация (микропрограммы) или непосредственное выполнение. Электронные схемы исполняют машинно-зависимые программы. Совокупность регистров процессора формирует локальную память. См. также арифметико-логическое устройство, устройство управления. Его задача — интерпретация команд уровня 2 (уровня архитектуры команд). В настоящее время на уровне архитектуры команд обычно находятся простые команды, которые выполняются за один цикл (таковы, в частности, RISCмашины).
Уровень операционной системы, трансляция (ассемблер). Это гибридный уровень: одна часть команд интерпретируется операционной системой, а другая — микропрограммой. См. также виртуальная память, файлы.
Уровень 4
Уровень языка ассемблера, трансляция (компилятор). Четвертый уровень и выше используется для написания прикладных программ, с первого по третий — системных программ. Программы в удобном для человека виде транслируются на язык уровней 1-3.
Первая документально оформленная компьютерная архитектура содержится в переписке между Чарльзом Бэббиджем и Адой Лавлейс, в которой описывался механизм анализа. При создании компьютера Z1 в 1936 году Конрад Цузе в двух патентных заявках изложил свои будущие проекты.[5] Два других ранних и значимых примера:
Статья Джона фон Неймана 1945 года — первый проект отчета об EDVAC, в котором описана организация логических элементов.
В том же 1945 году Алан Тьюринг представил предложение по созданию Электронного Калькулятора для Автоматического Вычислительного Двигателя, что впоследствии послужило основой для статьи Джона фон Неймана.
Термин «архитектура» в компьютерной литературе зародился благодаря работам Лило Р. Джонсона, Фридриха П. Брукса-младшего и Мохаммада Усмана Хана, сотрудников отдела машинной организации главного исследовательского центра IBM в 1959 году. Джонсону представилась возможность написать собственный отчет об исследовании суперкомпьютера Stretch, разработанного IBM в Лос-Аламосской национальной лаборатории. Чтобы описать уровень детализации обсуждения устройства, он отметил, что его описание форматов, типов команд, параметров и оперативных усовершенствований находилось на уровне «архитектуры системы» — термин, который оказался более полезным, чем «машинная организация».
Позднее Брукс, дизайнер Stretch, приступил к работе над второй книгой «Планирование компьютерной системы: проект Stretch» (изд. W. Buchholz, 1962),
в которой он писал:
«Компьютерная архитектура, как и другая архитектура, — это искусство определения потребностей пользователя структуры, а затем проектирования для максимально эффективного удовлетворения этих потребностей в рамках экономических и технологических ограничений»
Брукс продолжал участвовать в разработке линейки компьютеров IBM System/360 (ныне называемой IBM zSeries), в которой «архитектура» стала термином, определяющим «то, что пользователь должен знать».
На ранних этапах компьютерная архитектура разрабатывалась на бумаге и непосредственно реализовывалась в аппаратной форме. Позже прототипы архитектур создавались в виде транзисторно-логических схем (TTL), например, прототипы 6800 и протестированный PA-RISC, которые корректировались перед переходом к окончательной аппаратной реализации. Начиная с 1990-х годов, новые компьютерные архитектуры, как правило, разрабатываются, тестируются и настраиваются с использованием симуляторов, либо реализуются в виде программных микропроцессоров на ПЛИС, либо с применением обоих подходов, прежде чем перейти к окончательной аппаратной форме.[6]
Классификация
По типу применяемого процессора
CISC (англ. complex instruction set computing) — архитектура с полным набором команд такова, что процессоры выполняют все команды, простые и сложные, за большое количество тактов, что в таких процессорах много команд, а современные компиляторы редко используют все команды;
RISC (англ. reduced instruction set computing) — архитектура с сокращённым набором команд, которую процессоры, в целом, выполняют быстрее, чем при использовании архитектуры cisc, упрощает архитектуру и сокращает количество команд, но для выполнения сложной команды она состоит из набора простых, что увеличивает время выполнения команды (в большем количестве циклов). Современные risc-процессоры приближаются к классическим CISC-аналогам или даже превосходят их по внутренней сложности;
MISC (англ. minimal instruction set computing) — Архитектура с сокращенным набором команд, которую процессоры обычно реализуют быстрее, чем при использовании архитектуры cisc, упрощает архитектуру и сокращает количество команд, но для выполнения сложной команды она состоит из набора простых команд, что увеличивает время выполнения команды (в большем количестве циклов). Современные risc-процессоры приближаются к своим классическим CISC-аналогам или даже превосходят их по внутренней сложности;
VLIW (англ. very long instruction word — «очень длинная машинная команда») — архитектура с длинной машинной командой, в которой указывается параллельность выполнения вычислений. Такие процессоры получили широкое применение в цифровой обработке сигналов.
По принципу разделения памяти
Гарвардская архитектура — характерной чертой является разделение памяти программ и памяти данных;
Дэвид Харрис, Сара Харрис. Цифровая схемотехника и архитектура компьютера, 2-е издание, перевод командой компаний и университетов России, Украины, США и Великобритании, Morgan Kaufman,2013
Таненбаум Э., Остин Т. Архитектура компьютера. 6-е изд. СПб.: Питер, 2014, ISBN 978-5-496-00337-7
Н. В. Максимов, Т. Л. Партыка, И. И. Попов. Архитектура ЭВМ и вычислительных систем. — М.: Форум — Инфра-М, 2005. — 512 с. — ISBN 5-8199-0160-6.