Архитектура
Содержание
Термин “архитектура ЭВМ” является одним из самых неоднозначно используемых. Можно выделить как минимум три наиболее распространенных уровня его применения:
· под архитектурой понимаются любые сведения, относящиеся к устройству ЭВМ (данная трактовка встречается в основном среди пользователей, весьма поверхностно знакомых с устройством ВТ, и авторами серьезной компьютерной литературы не признается);
· архитектура — это самые общие принципы устройства ЭВМ: функциональные узлы и их связь, механизм исполнения программы, принцип двоичного кодирования команд и обрабатываемых данных и т.д.; именно в этом ключе во многих книгах используется устойчивое сочетание “архитектура фон Неймана”, применимое практически к любой ЭВМ любого поколения (см. “Базовые принципы устройства”);
· наконец, в наиболее узкопрофессиональном смысле термин “архитектура” используется в значении базовые принципы данного программно-совместимого семейства машин, в частности, IBM PC, Apple, PDP или MSX; в настоящей статье принята именно такая трактовка понятия.
“К концу 50-х годов компания IBM, которая лидировала тогда на компьютерном рынке, решила, что производство семейства компьютеров, каждый из которых выполняет одни и те же команды, имеет много преимуществ и для самой компании, и для покупателей. Чтобы описать этот уровень совместимости, компания IBM ввела термин архитектура. Новое семейство компьютеров должно было иметь одну общую архитектуру и много разных разработок, различающихся по цене и скорости, которые могли выполнять одну и ту же программу” 4.

Слово “архитектура” в изначальном своем смысле используется в градостроении. Обладая достаточно сложной структурой, современный город состоит из районов, площадей, улиц, домов и т.п., расположенных определенным образом. Жителей города обычно мало интересует, как выглядит конкретный дом и из каких материалов он построен. Зато очень важно знать район, где этот дом расположен, улицы, ведущие к нему, и транспорт, пользуясь которым можно сократить время в пути. Для того чтобы ориентироваться в хитросплетении улиц и площадей, в любом городе существует исторически сложившаяся система названий, а также определенная нумерация домов. Классическим примером продуманной планировки города может служить известная система взаимно перпендикулярных улиц города Нью-Йорка (они называются avenue и street).
Используя аналогию с градостроительством, естественно предположить, что под архитектурой ЭВМ следует понимать основные устройства и блоки ЭВМ, а главное — структуру связей и способы взаимодействия между ними. И действительно, в “Толковом словаре по вычислительным системам” 5 сказано, что данный термин “используется для описания принципа действия, конфигурации и взаимного соединения основных логических узлов ЭВМ (вследствие чего термин “архитектура” оказывается ближе к обыденному значению этого слова)”.

К архитектуре относится именно логическое построение вычислительных средств, без учета конкретных деталей их реализации. Вопросы физического построения (элементная база, емкость памяти, тактовая частота) образуют отдельный круг проблем, который принято определять понятием организация 6. Архитектура и организация — это две дополняющие друг друга стороны описания ЭВМ.
Итак, с точки зрения архитектуры представляют интерес лишь те связи и принципы, которые являются наиболее общими, присущими многим конкретным реализациям вычислительных машин. Как уже отмечалось выше, об архитектуре чаще всего говорят в связи с семействами ЭВМ, т.е. группами моделей, совместимых между собой. В пределах одного семейства основные принципы функционирования машин одинаковы, хотя отдельные модели могут существенно различаться по элементной базе, конкретному устройству, производительности, стоимости и другим параметрам. Ярким примером могут служить семейства коллективных ЭВМ третьего поколения IBM-360 и 370, различные модификации компьютеров PDP фирмы DEC (более известные нашим пользователям по “отечественным аналогам” серий ДВК, БК и даже школьному КУВТ УКНЦ), семейство MSX-машин, к которому принадлежала некогда широко распространенная в системе образования “Yamaha”, а также заполнившие мир IBM-совместимые персональные компьютеры.
Целью явного формулирования основополагающих принципов служит вполне понятное стремление: все машины одного семейства независимо от их конкретного устройства и фирмы-производителя должны быть способны выполнять одну и ту же программу. На практике из-за постоянного роста мощности вычислительной техники чаще используется менее жесткий принцип совместимости снизу вверх: все программы данной модели выполнимы на более старших, но не обязательно наоборот.
Из сказанного следует важный вывод, что с точки зрения архитектуры важны не все сведения о строении ЭВМ, а только те, которые могут быть хоть как-то использованы при программировании. Приведем примеры.
Математический сопроцессор исполняет специализированные команды программы, связанные с обработкой вещественных чисел; следовательно, независимо от того, представлен ли он отдельной микросхемой или находится внутри центрального процессора (начиная с Intel 80486), сопроцессор может рассматриваться как составная часть архитектуры IBM PC. Напротив, наличие кэш-памяти “невидимо” для программы: у нее нет адреса, по которому программист мог бы к ней обращаться, — значит, кэш, строго говоря, к архитектуре не относится.
В первых 16-разрядных микропроцессорах фирмы Intel ради увеличения длины адреса до 20 битов был придуман весьма специфический метод адресации данных в ОЗУ — сегментный. Его суть заключается в том, что адрес любого байта является суммой содержимого двух 16-битных регистров, причем один из них предварительно сдвинут влево на 4 бита, так что суммарное значение получается 20-разрядным (16 + 4 = 20). Питер Нортон метко назвал данный способ словом “kludge” 7 (по-английски это означает приспособление для временного устранения проблемы). Не без некоторой иронии, он написал: “Такой способ адресации более 64 Кб памяти кажется довольно странным, однако он работает”. Современные “интеловские” процессоры, начиная с 80386, стали 32-разрядными, и одним регистром могут адресовать до 4 Гб памяти, что существенно больше и проще, чем при сегментном способе. Последний, очевидно, стал совершенно излишним, но сохраняется ради обеспечения программной совместимости.
В заключение сформулируем, что же обычно относят к архитектуре ЭВМ. Не претендуя на полный охват, назовем наиболее важное: методы выполнения команд программы и влияние анализа тех или иных условий на их порядок (например, условные переходы), способы доступа к памяти и внешним устройствам, возможности изменения конфигурации оборудования, принципы построения системы команд и их кодирования, форматы данных и особенности их машинного представления.
Методические рекомендации
Термин “архитектура” используется в литературе по вычислительной технике очень часто. К сожалению, содержание этого понятия может у разных авторов отличаться достаточно существенно. В частности, к архитектуре компьютера порой относят абсолютно все, что хоть как-то связано с его устройством, вплоть до конструктивного оформления.
В свете этого мы убедительно рекомендуем учителю внимательно разобраться в сути данного понятия и не приучать школьников к его неоправданно расширительной трактовке.
4 Таненбаум Э. Архитектура компьютера. СПб.: Питер, 2003, 704 с.
5 Толковый словарь по вычислительным системам / Под ред. В.Иллингуорта и др. М.: Машиностроение, 1989, 568 с.
6 Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем. СПб.: Питер, 2004, 668 с.
7 Нортон П., Соухэ Д. Язык ассемблера для IBM PC. М.: Компьютер, 1992, 352 с.