пятница, 3 августа 2012 г.

Разработка новых архитектур компьютеров


Оптимизация для архитектуры компьютера
В свое время, на заре компьютерной эры, компиляторы разрабатывались по­сле того, как создавались компьютеры. С тех пор ситуация изменилась. Поскольку программирование на языках высокого уровня стало нормой, производительность вычислительных систем определяется не просто скоростью процессоров, но и тем, насколько хорошо компиляторы могут использовать их новые возможности. Та­ким образом, при разработке архитектур современных вычислительных систем компиляторы разрабатываются на стадии проектирования процессора, и скомпи­лированный код, выполняемый на имитаторах, используется для оценки предла­гаемых архитектурных возможностей.


RISC

Одним из хорошо известных примеров, когда компиляторы повлияли на раз­работку архитектуры компьютера, было изобретение архитектуры RISC (Reduced Instruction-Set Computer — компьютер с сокращенным набором команд). До это­го изобретения основная тенденция состояла в разработке все более сложных наборов команд, предназначенных для упрощения программирования на языке

ассемблера; такие архитектуры известны как CISC (Complex Instruction-Set Com­puter — компьютер со сложным набором команд). Например, набор команд CISC включает сложные режимы адресации памяти для поддержки обращения к струк­турам, а также команды вызова процедур с сохранением регистров и передачей параметров в стеке.

Методы оптимизации зачастую способны свести такие команды к небольшому количеству более простых операций, устраняя избыточность сложных команд. Та­ким образом, желательно построить простые наборы команд, которые способны эффективно использоваться компиляторами и существенно облегчить оптимиза­цию аппаратного обеспечения.

Большинство архитектур процессоров общего назначения, включая PowerPC, SPARC, MIPS, Alpha и PA-RISC, основаны на концепции RISC. Хотя архитек­тура х86 — наиболее популярного процессора — имеет набор команд CISC, при реализации этого процессора применены многие идеи, разработанные для RISC- машин. Более того, самый эффективный способ использования высокопроизво­дительных компьютеров х86 состоит в использовании только простейших команд процессора.

Специализированные архитектуры

За последние три десятилетия было предложено множество архитектурных концепций, включающих потоковые машины (data flow machine), векторные маши­ны, машины VLIW (Very Long Instruction Word — архитектура с командными сло­вами очень большой длины), SIMD (Single Instruction, Multiple Data — один поток команд, много потоков данных), массивы процессоров, систолические матрицы, мультипроцессоры с разделяемой памятью и мультипроцессоры с распределенной памятью. Разработка каждой из этих архитектурных концепций сопровождалась исследованиями и разработкой соответствующих технологий компиляции.

Некоторые из перечисленных идей нашли свое место во встраиваемых маши­нах. Поскольку целая система может быть собрана в виде единой схемы, процес­соры больше не рассматриваются как отдельные товарные единицы, зато могут изготавливаться на заказ для достижения наивысшей эффективности решения тех или иных задач. Таким образом, в отличие от процессоров общего назначения, когда экономика заставляет использовать, по сути, единые архитектурные реше­ния, специализированные процессоры для конкретных приложений демонстри­руют огромное разнообразие архитектурных решений. Технологии компиляции должны не только поддерживать программирование для таких архитектур, но и участвовать в принятии решения об использовании той или иной архитектуры.

Комментариев нет:

Отправить комментарий