Архитекту́ра компью́тера — это модель компьютерной системы, воплощённая в её компонентах, их взаимодействии между собой и окружением, включающая также принципы её проектирования и развития[1][2]. Аспекты реализации (например, технология, применяемая при реализации памяти) не являются частью архитектуры[3]
Уровни организации
правитьБольшинство современных компьютеров состоит из двух и более уровней:[3][4]
- Уровень 0
- Цифровой логический уровень, это аппаратное обеспечение машины, состоящий из вентилей. См. также Логические элементы (защелки), триггеры, регистры.
- Уровень 1
- Микроархитектурный уровень, интерпретация (микропрограммы) или непосредственное выполнение. Электронные схемы исполняют машинно-зависимые программы. Совокупность регистров процессора формирует локальную память. См. также арифметико-логическое устройство, устройство управления. Его задача — интерпретация команд уровня 2 (уровня архитектуры команд). В настоящее время на уровне архитектуры команд обычно находятся простые команды, которые выполняются за один цикл (таковы, в частности, RISCмашины).
- Уровень 2
- Уровень архитектуры системы команд, трансляция (ассемблер).
- Уровень 3
- Уровень операционной системы, трансляция (ассемблер). Это гибридный уровень: одна часть команд интерпретируется операционной системой, а другая — микропрограммой. См. также виртуальная память, файлы.
- Уровень 4
- Уровень языка ассемблера, трансляция (компилятор). Четвертый уровень и выше используется для написания прикладных программ, с первого по третий — системных программ. Программы в удобном для человека виде транслируются на язык уровней 1-3.
- Уровень 5
- Язык высокого уровня. Программы на языках высокого уровня транслируются обычно на уровни 3 и 4.
История
правитьСтиль этой статьи неэнциклопедичен или нарушает нормы литературного русского языка. |
Первая документально оформленная компьютерная архитектура находилась в переписке между Чарльзом Бэббиджем и Адой Лавлейс, описывающим механизм анализа. При создании компьютера Z1 в 1936 году Конрад Цузе описал в двух патентных заявках свои будущие проекты.[5] Два других ранних и важных примера:
Статья Джона фон Неймана 1945 года, первый проект отчета об EDVAC, в котором описана организация логических элементов.
Более подробный Предложенный Электронный Калькулятор Алана Тьюринга для Автоматического Вычислительного Двигателя, также в 1945 году, который привел статью Джона фон Неймана.
Термин "архитектура" в компьютерной литературе восходит к работам Лило Р. Джонсон, Фридриха П. Брукса-младшего и Мохаммада Усмана Хана, которые все были сотрудниками отдела организации машин в главном исследовательском центре IBM в 1959 году. Джонсону представилась возможность написать собственный отчет об исследовании суперкомпьютера Stretch, разработанного IBM в Лос-Аламосской национальной лаборатории (тогда известной как Лос-Аламосская научная лаборатория). Чтобы описать уровень детализации при обсуждении роскошно оформленного компьютера, он отметил, что его описание форматов, типов команд, параметров устройства и быстрых улучшений было на уровне "архитектуры системы" - термин, который казался более полезным, чем "организация машины".
Позднее Брукс, дизайнер стрейтча, начал работу над второй книгой «Планирование компьютерной системы: проект Stretch», изд., W. Buchholz, 1962), написав:
"Компьютерная архитектура, как и другая архитектура, — это искусство определения потребностей пользователя структуры, а затем проектирования для максимально эффективного удовлетворения этих потребностей в рамках экономических и технологических ограничений"
Брукс продолжал помогать в разработке линейки компьютеров IBM System / 360 (теперь называемой IBM zSeries), в которой «архитектура» стала существительным, определяющим «то, что пользователь должен знать».[6]
Самые ранние компьютерные архитектуры разрабатывались на бумаге, а затем непосредственно внедрялись в конечную аппаратную форму, а позже прототипы компьютерной архитектуры были физически созданы в виде транзисторно-транзисторной логической системы (TTL), такой как прототипы 6800 и протестированный PA-RISC, и исправлены перед переходом к окончательному аппаратному обеспечению форма. Начиная с 1990-х годов, новые компьютерные архитектуры, как правило, "строились", тестировались и конфигурировались в рамках любой другой компьютерной архитектуры в симуляторе компьютерной архитектуры; либо в рамках ПЛИС в качестве программного микропроцессора, либо и того, и другого, прежде чем перейти к окончательной аппаратной форме.[7]
Классификация
правитьПо типу применяемого процессора
править- 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 — «очень длинная машинная команда») — архитектура с длинной машинной командой, в которой указывается параллельность выполнения вычислений. Такие процессоры получили широкое применение в цифровой обработке сигналов.
По принципу разделения памяти
править- Гарвардская архитектура — характерной чертой является разделение памяти программ и памяти данных;
- Фон Неймановская архитектура — характерной чертой является совместное хранение программ и данных.
См. также
правитьПримечания
править- ↑ IEEE 1471 . Дата обращения: 12 февраля 2022. Архивировано 12 февраля 2022 года.
- ↑ Максимов, 2005, с. 97.
- ↑ 1 2 Таненбаум Э. С. Архитектура компьютера. — СПб: Питер, 2007, ISBN 5-469-01274-3, C.23
- ↑ Таненбаум Э. Архитектура компьютера. 4-е изд. СПб.: Питер, 2003, ISBN 5-318-00298-6
- ↑ 50th Anniversary of the Manchester Baby computer . curation.cs.manchester.ac.uk. Дата обращения: 3 июня 2017. Архивировано 4 мая 2012 года.
- ↑ IBM100 - System 360 (англ.). www-03.ibm.com (7 марта 2012). Дата обращения: 3 июня 2017. Архивировано 30 мая 2017 года.
- ↑ Organization of Computer Systems: Introduction, Abstractions, Technology . www.cise.ufl.edu. Дата обращения: 3 июня 2017. Архивировано 31 октября 2016 года.
Литература
править- Joseph D. Dumas II. Computer Architecture: Fundamentals and Principles of Computer Design. — CRC Press, 2005. — ISBN 978-0-8493-2749-0.
- David A. Patterson, John L. Hennessy. Computer Architecture: A Quantitative Approach, 5th Edition. — Morgan Kaufmann, 2011. — 856 p. — ISBN 012383872X. (англ.)
- Дэвид Харрис, Сара Харрис. Цифровая схемотехника и архитектура компьютера, 2-е издание, перевод командой компаний и университетов России, Украины, США и Великобритании, Morgan Kaufman,2013
- Таненбаум Э., Остин Т. Архитектура компьютера. 6-е изд. СПб.: Питер, 2014, ISBN 978-5-496-00337-7
- Н. В. Максимов, Т. Л. Партыка, И. И. Попов. Архитектура ЭВМ и вычислительных систем. — М.: Форум — Инфра-М, 2005. — 512 с. — ISBN 5-8199-0160-6.