Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 / Lectures / Lect3v12.doc
Скачиваний:
56
Добавлен:
28.05.2015
Размер:
706.05 Кб
Скачать

38. Процессоры с risc-архитектурой и эвм, управляемые потоками данных

Одной из альтернатив, существенно влияющей на архитектуру (или структуру) процессора, является концепция построения системы команд.

В классических ЭВМ система команд с момента создания первых ЭВМ шла по пути усложнения. Причина этого заключалась в стремлении приблизить внутренний язык (команд) машины к используемым языкам программирования высокого уровня. Однако ряд исследований реальных программ показал, что доля сложных команд в программах не столь высока, чтобы полностью оправдывать усложнение аппаратуры, требующееся для поддержки этих команд.

Кроме того было установлено также, что операторы языков высокого уровня часто реализуются в исполнительном модуле подпрограммами, что требует вызова их, передачи им параметров, возврата результатов и возврата из подпрограмм. Процессорное время, затрачиваемое на такие вспомогательные действия, может достигать до 40% от общего времени вычислений.

Эти, а также некоторые другие результаты анализа программ привели к появлению концепции процессоров с упрощенным набором команд. Термин RISC(ReducedInstructionSetComputers– компьютеры с упрощенным, или сокращенным, набором команд) и соответствующая архитектура процессоров появились в начале 1980-х годов.

Основные соображения, положенные в основу RISC-архитектуры предполагали следующее:

- в набор команд процессора должны входить простые наиболее часто используемые команды одинаковой длины, время выполнения которых примерно одинаково;

- поскольку время обращения к памяти достаточно велико, по сравнению со временем выполнения простых команд, то обращение к памяти выполняется только командами чтение и запись, а все остальные операции имеют формат регистр-регистр;

- поскольку простые команды будут генерировать много обращений к переменным, то количество регистров, доступных командам, должно быть большим, обычно это 32 регистра или более.

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

Значительное внимание уделяется эффективности использования регистров, для чего применяются программные и аппаратные методы.

С появлением RISC-процессоров обычные процессоры стали иногда называтьCISC-процессорами (ComplexилиCompleteInstructionSetComputers– компьютеры со сложной или полной системой команд). Предсказываемого в 1980-х годах вытесненияCISC-процессоровRISC-процессорами не произошло и в настоящее время каждый из типов имеет свои области применения.

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

Поэтому на практике RISC-процессоры используются в различных специализированных и управляющих системах. Часто встречается и сочетание использования в одной ЭВМ процессоров обеих архитектур. Хотя в этих случаяхRISC-архитектуры могут выполнять вспомогательные функции, например, мониторинг системных средств.

Однако, помимо классических архитектур, в русле поиска структур ЭВМ, поддерживающих параллелизм на уровне команд, были найдены иные решения, обеспечивающие возможность автоматического распараллеливания выполнения команд программы. Их суть сводилась к выполнению операций программы не строго в порядке, предписанном алгоритмом, а по мере а) наличия свободных исполнительных ресурсов и готовности данных или б) необходимости получения результата операции для выполнения дальнейших действий. Это дает три механизма управления запуском команд:

- традиционный (controlflowdriven) – выполнение последовательности команд в соответствии с программой

- управление потоком данных (dataflowdriven) – выполнение команды при готовности всех ее операндов и наличии свободного операционного блока

- рекурсивный вызов (или вызов по запросу- recursiveилиdemanddriven) – постановка команды в очередь на выполнение, если ее результат нужен другой команде.

Третий случай, вообще говоря, требует обратного просмотра программы, начиная от команд получения конечного результата, что предполагает два прохода по программе: обратный предварительный просмотр, определяющий порядок выполнения, и прямой исполнительный проход в соответствии с выявленным порядком.

Архитектура ЭВМ, управляемой потоком данных, схематически может быть представлена так, как это показано на рис. 38.1,а). В памяти этой ЭВМ хранятся команды программы, формат которых показан на рис. 38.1,б). Этот формат отличен от классических команд. Помимо кода операции, он содержит:

- поле адресов назначения, по которым должен рассылаться результат выполнения команды;

- поля данных, куда записываются значения операндов команды;

- флаги данных, которые взводятся при готовности операндов;

- поля типов условий, определяющие порядок приема данных в соответствующее поле (безусловный, при значении .t.флага условия, при значении.f.флага условия, константа)

- поля значений флагов условий (не поступил, .t.,.f.).

Порядок работы этой ЭВМ следующий. Селекторная сеть просматривает содержимое памяти и находит команды, у которых готовы данные (взведены флаги данных). При наличии свободных операционных блоков такие данные и коды операций таких команд пересылаются в исполнительные блоки и выполняются. После этого распределительная сеть рассылает результат выполнения команды из исполнительного блока в поля данных по тем адресам, которые указаны в поле адресов назначения, с проверкой значений соответствующих флагов и типов условий и взводит соответствующие флаги данных.

Рис. 38.1. Упрощенное представление структуры ЭВМ, управляемой потоком данных (а) и формат ее команды (б)

Такая структура позволяет выполнять параллельно команды программы, без нарушения логики алгоритма, автоматически выявляя возможность такого выполнения.

Известны несколько разновидностей таких ЭВМ, рассматриваемые, например, в [1].

В ЭВМ с управлением потоком данных готовые к выполнению команды исполняются при наличии свободных исполнительных блоков вне зависимости от того, потребуется ли это при выполнении алгоритма. Стремление исключить выполнение ненужных команд положено в основу организации рекурсивных ЭВМ с выполнением команд по запросу их результата. (В некоторых источниках такие ЭВМ называют редукционными.)

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

Соседние файлы в папке Lectures