Архитектура ЭВМ
Архитекту́ра ЭВМ (архитектура компьютера), совокупность основных устройств электронно-вычислительной машины (ЭВМ) и способы их взаимодействия. Архитектура ЭВМ определяет общее построение аппаратных и программных средств и эффективность их работы в комплексе. Описание архитектуры ЭВМ является основным документом при проектировании ЭВМ и разработке компиляторов. Термин впервые введён корпорацией IBM (США) в 1964 г. в связи с разработкой семейства IBM System/360.
Описание архитектуры ЭВМ содержит сведения о функциях основных узлов ЭВМ – процессора (или процессоров в многопроцессорных ЭВМ или многоядерных компьютерах), о подсистемах памяти и ввода-вывода. Система команд процессора определяет методы адресации, форматы представления данных, программно доступные регистры, кодировку команд и алгоритмы их выполнения. Подсистема памяти характеризуется числом уровней памяти (оперативная память, кэш-память, регистры общего назначения), объёмами памяти на каждом уровне, методами обращения к памяти (одиночное, групповое, кванты обращения), пропускной способностью и временем доступа на каждом уровне памяти. Подсистема ввода-вывода определяет в основном состав контроллеров, периферийных устройств и адаптеров локальных сетей, форматы данных и команд ввода-вывода, пропускную способность отдельных устройств и периферийной шины в целом, время доступа к периферийным устройствам.
Время выполнения программы существенно зависит от того, в какой мере архитектурные особенности ЭВМ учитываются при формировании машинного кода программы. В связи с этим имеется постоянная тенденция включать в описание архитектуры ЭВМ сведения об устройстве ЭВМ с целью максимального использования потенциальной производительности ЭВМ. Представление об организации и времени выполнения команд, количестве одновременно выполняемых команд, количестве и составе параллельно работающих блоков ЭВМ, о методах разрешения конфликтов использования аппаратуры ЭВМ различными параллельно выполняемыми командами и т. д. позволяет компилятору планировать эффективное выполнение программы.
Стандартизация ряда основных архитектурных свойств (таких, как алгоритмы выполнения команд, их кодировка, форматы представления команд и данных и т. п.) позволяет разрабатывать семейства ЭВМ, совместимые для выполнения программ пользователя на уровне машинных кодов (на двоичном, или битовом уровне). Как правило, в рамках такого семейства ЭВМ обеспечивается совместимость снизу вверх, т. е. программы для ранее разработанных моделей семейства могут выполняться на последующих моделях без перекомпиляции. Это позволяет, оставаясь в рамках битовой совместимости с прикладными программами, разработанными для предшествующих моделей, развивать архитектурные свойства в последующих моделях семейства ЭВМ с целью улучшения их характеристик (производительности, элементной базы, габаритов и т. д.). Такой подход даёт возможность использовать ранее созданное программное обеспечение во вновь разработанных ЭВМ. Однако он накладывает существенные ограничения на разработчиков новых моделей ЭВМ данного семейства в возможностях принятия ими новых архитектурных решений и вынуждает поддерживать единожды введённую функциональность во всех дальнейших моделях. Альтернативой полной архитектурной совместимости ЭВМ является техника эмуляции, позволяющая моделировать ЭВМ заданной архитектуры для исполнения её кодов на ЭВМ иной архитектуры. Наиболее эффективным методом эмуляции различных архитектур ЭВМ является техника двоичной трансляции (битовой компиляции), основанная на трансляции двоичных кодов моделируемой (исходной) архитектуры ЭВМ в двоичные коды моделирующей (целевой) архитектуры ЭВМ. Применение оптимизирующей двоичной трансляции, основанной на средствах специализированной аппаратной поддержки, предусмотренных в целевой архитектуре ЭВМ, позволяет превосходить эффективность исполнения кодов ЭВМ исходной архитектуры по заданным параметрам [например, энергопотреблению (двоичный транслятор фирмы Transmeta для исполнения кодов архитектуры ЭВМ X86 на архитектуре ЭВМ Efficeon) или производительности (двоичный транслятор компании «МЦСТ» для исполнения кодов архитектуры ЭВМ X86 на микропроцессоре E2k)].
Часто для обозначения семейств ЭВМ, имеющих общие базисные архитектурные свойства, применяется термин «архитектурная платформа». Наиболее отличительные архитектурные свойства ЭВМ могут использоваться в обозначении типа ЭВМ, например ЭВМ с архитектурой использования командного параллелизма, векторной или массивно-параллельной архитектурой и др. Для обозначения архитектурно-совместимых семейств ЭВМ могут применяться наименования архитектур микропроцессоров известных фирм-производителей (архитектура х86 корпорации Intel, архитектура SPARC корпорации Sun Microsystems, архитектура Power корпорации IBM и т. д.).