Автор: Пользователь скрыл имя, 09 Ноября 2011 в 22:35, доклад
Процессор - устройство, осуществляющее процесс автоматической обработки
данных и программное управление этим процессом. Процессоры можно классифици-
ровать, например, по следующим признакам:
ста».
Исторически первые микропроцессоры, появившиеся в 70-х годах XX века, имели от-
носительно простую систему команд, что объяснялось небольшими возможностями ин-
тегральной схемотехники. По мере увеличения степени интеграции ИМС разработчи-
ки МП старались расширять систему команд и делать команды более функциональны-
ми, «семантически нагруженными». Это объяснялось, в частности, двумя моментами -
во-первых, требованиями экономить память для размещения программ, оставлять
больше памяти под данные и т.д., а во-вторых - возможностью реализовать внутри
кристалла процессора сложные инструкции быстрее, чем при их программной реализа-
ции.
В результате появились процессоры с большими наборами команд, причем команды
эти также зачастую являлись достаточно сложными. В последствии эти МП назвали CISC
- от Complete Instruction Set Computer - компьютер с полным набором команд или Complex
ISС - со сложным набором команд. Типичным примером CISC-процессоров явля-
ются процессоры семейства x86 корпорации Intel и ее конкурентов (а также Motorola 68K
и другие). Наряду с отмеченными преимуществами процессоры CISC обладали и рядом
недостатков, в частности - команды оказывались сильно неравнозначными по времени
выполнения (разное количество тактов), плохо конвейеризовывались, требовали сложного
(и длительного) декодирования и выполнения.
Для повышения производительности стали использовать жесткую логику управления,
что отразилось на регулярности и сложности кристаллов (нерегулярные кристаллы менее
технологичны при изготовлении). На кристалле оставалось мало места для РОН и КЭШ.
Кроме того, исследования показали, что производители компиляторов и просто про-
граммисты не используют многие сложные инструкции, предпочитая использовать после-
довательность коротких.
Разработчики подошли к концепции более простого и технологичного процессора с
некоторым откатом назад - к простым и коротким инструкциям. С конца 70-х до середины
80-х годов
появляются проекты таких
верситета Беркли (Калифорния) - MIPS и RISC.
В основу архитектуры RISC (от Reduced Instruction Set Computer -компьютер с сокра-
щенным набором команд) положены, в частности, принципы отказа от сложных и много-
функциональных команд, уменьшения их количества, а также концентрация на обработку
всей информации преимущественно на кристалле процессора с минимальными обраще-
ниями к памяти.
Основные особенности архитектуры RISC:
1. Уменьшение числа команд (до 30-40).
2. Упрощение и унификация форматов команд.
3. В системе команд преобладают короткие инструкции (например, часто в СК от-
сутствуют умножения).
4. Отказ от команд типа память-память (например, MOVSB в x86).
5. Работа с памятью сводится к загрузке и сохранению регистров (поэтому другое
название RISC - Load-Store Architecture - архитектура типа «загрузка-сохранение»).
6. Преимущественно
реализуются 3-х адресные
сложить r2 с r3 и поместить результат в r1.
7. Большой регистровый файл - до 32-64 РОН.
8. Предпочтение
отдается жесткой логике
RISC:
1. Облегчается конвейерная, суперскалярная и другие виды параллельной
обработки, планирование загрузки, предвыборка, переупорядочивание и
т.д.
2. Более эффективно
используется площадь
3. Быстрее выполняется
декодирование и исполнение
соответственно, выше тактовая частота.
Примерами семейств процессоров с RISC-архитектурой могут служить DEC Alpha ,
SGI MIPS, Sun SPARC и другие. Большинство современных суперскалярных и VLIW-
процессоров (в т.ч. и Intel) либо имеют архитектуру RISC, либо реализуют похожие на
RISC принципы, либо - поддерживают CISC-инструкции, но внутри транслируют их в
RISC-подобные
команды для облегчения
4.5. Устройства управления процессоров
4.5.1 Назначение
и классификация устройств
Как уже упоминалось ранее, устройство управления процессора отвечает за выполне-ние собственно команд процессора, включая основные этапы (загрузка, декодирование,
обращение к памяти, исполнение, сохранение результатов), управление выполнением про-
55
грамм (организация ветвлений, циклов, вызов подпрограмм, обработка прерываний и др.),
а также - управляет работой процессора в целом.
Устройства управления классифицируются в зависимости от типа процессора, или -
типа управления исполнением команд, который в нем применяется :
- устройства управления процессора общего назначения или -спецпроцессора;
- устройства управления с поддержкой конвейера команд, без такой поддержки, или
- с поддержкой многопотокового конвейера ( в суперскалярных процессорах), а
также - устройство управления процессора с длинным командным словом;
- устройство управления с упорядоченным исполнением команд, неупорядоченным
исполнением, выдачей, или завершением команд (с поддержкой динамической оп-
тимизации).
Кроме того, можно выделить устройства управления, построенные на базе памяти
микропрограмм (с программируемой логикой), либо - на базе триггерных автоматов (с же-
сткой логикой).
Мы рассмотрим организацию устройства управления (а вернее - пары устройство
управления - операционное устройство) для очень простого учебного RISC - процессора, а
затем - рассмотрим способы ускорения работы процессора, основанные на конвейериза-
ции и распараллеливании команд.
4.5.2 Архитектура простого RISC - процессора
Рассмотрим архитектуру простого RISС-процессора на примере некоторого процессо-ра ARC («A RISC Computer») с системой команд, являющейся подмножеством системы
команд процессора SPARC. / 16 /
Процессор является 32-разрядным (то есть обрабатывает 32-битовые слова в сво-
ем АЛУ), разрядность его команд - также 32 бита. Адресуемая память - 232 байт или
230 команд. Большинство
команд процессора –
разделить на следующие группы:
1. Команды работы с памятью : ld (load - загрузка) и st (store - сохранение).
2. Логические команды : and, or, nor, srl (сдвиг),
sethi rd, imm22 (установка старших 22 бит регистра в заданные значения).
3. Арифметическая команда : add (сложение).
4. Команды управления: ветвления be, bneg, bcs, bvs, ba (безусловный
переход), все ветвления в формате be imm22 (относительное смещение), команда call
imm30 -вызов подпрограммы, jmpl (ret) - возврат из подпрограммы.
56
Регистры процессора: 32 РОН, IR (instruction register -регистр команды), PC (program
count e r - п р о г р а м м н ы й счетчик), PSR (Program Status Register - слово состояния
программы - 4 флага). Все регистры - 32- разрядные.
В процессоре поддерживаются следующие режимы с адресации:
• непосредственная регистровая;
• косвенная регистровая;
• косвенная регистровая по базе (индексная).
Адресная арифметика в процессоре реализуется на том же АЛУ, что и основные
операции. АЛУ построено на таблицах истинности, а также включает программируемый
нетактируемый сдвигатель на базе мультиплексора. АЛУ выполняет до 16 арифметиче-
ских или логических операций. Форматы команд приведены на рис. 4.7
.
Микроархитектура процессора представлена на рис. 4.8. На рисунке использованы
следующие обозначения:
− Data Section - операционное устройство (ОУ);
− Control Section - устройство управления (УУ);
− Main Memory - основная память (ОП);
− Scratchpad-сверхоперативное ОЗУ;
Рис. 4.7
− C BUS MUX - шинный мультиплексор C для выбора источника данных для
регистра-приемника из памяти или с выхода АЛУ;
в регистре команд ir:
rd - адрес регистра-приемника, rs1, rs2 - адреса регистров источников, i - флаг
непосредственной адресации, ops - код операции;
− MIR - регистр микрокоманды (РМК);
мультиплексоры A, B, C - выбирают адрес соответствующего регистра либо из ir,
либо - из соответствующего поля РМК в зависимости от флагов MUXA, MUXB,
MUXC;
− Control Store (CS) - память микропрограмм (ПМП);
− CSAI - счетчик адреса микропрограммы;
− CS Address MUX - мультиплексор адреса микропрограммы (3 канала –Next сле-
дующий адрес из CSAI, Jump -переход по адресу, указанному в РМК, Decode - пе-
реход к микро-подпрограмме реализации команды);
− CBL - логика управления ветвлением; %psr - регистр состояния программы, хра-
нит 4 флага результата последней операции: n-netgative (отрицательное число), zzero
(ноль), v-overflow (переполнение), с-carry (перенос);
− АСК - подтверждение о готовности памяти для инкремента адреса микрокоманды;
в РМК также отметим поля: RD/WR - чтение/запись памяти, ALU - код операции
АЛУ, JUMP ADDR - адрес перехода в микропрограмме.