CISC.pptx
- Количество слайдов: 8
Процессора CISC архитектуры Complete Instruction Set Computer – машина с полным набором команд. Основоположником CISC-архитектуры можно считать компанию IBM с ее базовой архитектурой , ядро которой используется с 1964 года и дошло до наших дней. Лидером в разработке микропроцессоров c полным набором команд считается компания Intel со своей серией x 86 и Pentium. Эта архитектура является практическим стандартом для рынка микрокомпьютеров. Стратегия CISC архитектуры формировалась в большой степени по желанию программистов иметь в своем распоряжении как можно больший набор команд, упрощающий программирование. Для CISC-процессоров характерно: - небольшое число регистров общего назначения; - большое количество машинных команд, - наличие сложных (многотактных) команд, функционально аналогичных операторам языков высокого уровня программирования, - большое количество методов адресации; - большое количество форматов команд различной разрядности; - преобладание двухадресного формата команд; - наличие команд обработки типа регистр-память.
При этом подходе выполнение любой сколь угодно сложной команды из системы команд процессора реализовывается аппаратно внутри самого процессора. В систему команд CISC-процессора может входить, например, вычисление квадратного корня, что требует многих десятков тактов. Добавление каждой новой команды ведет к увеличению общего числа транзисторов в процессоре. CISC-архитектура позволяет создавать универсальные процессоры, но их производительность ограничена, в частности, сложностью микросхемы процессора. Микропроцессоры с CISC-архитектурой (например, Intel Pentium II, III, и IV или Athlon и Duron компании AMD) обычно устанавливаются в настольных и переносных компьютерах общего назначения.
Схема «идеального» СISC-процессора
Центральным "вычислителем" является АЛУ. Данные в него подаются из шины данных. Данные из АЛУ перед отправкой на шину накапливаются в аккумуляторе. Текущее состояние вычислений отслеживается в регистре флагов, из которого они считываются в шину данных. АЛУ также способно управлять стеком через регистры стека и адреса, напрямую управляющие запросами в шину адреса. Отметим, что стек в CISC-процессоре компенсирует недостаток регистров общего назначения – в стек можно записать содержимое любого РОН, также как и считать из него значение в любой РОН. УУ работает, только получая инструкции после дешифратора команд, а последовательность команд задается программным счетчиком. В программном счетчике находится адрес следующей выполняемой команды, поступающая на вход дешифратора команд и затем – в УУ. Данные в дешифратор и регистр программного счетчика загружаются по шине данных, а далее модифицируются по собственным алгоритмам.
В CISC-процессорах устройство управления должно осуществлять следующие операции: 1. Проводить дешифрацию кодов команд, поступающих в виде инструкций из памяти компьютера. 2. Производить пересылку данных между регистрами центрального процессора, центральным процессором и памятью и т. п. 3. Осуществляет преобразование данных разных форматов. 4. Помогает АЛУ осуществлять сложные многошаговые инструкции (типа умножения, деления, смены знака, нахождение модуля числа) при целочисленных и вещественных вычислениях, а также вычисление специальных функций (например, синуса, логарифма, степени вещественного числа. ) 5. Выполнение сегментации памяти. 6. Производить страничные преобразования при организации виртуальной памяти. 7. Осуществлять управление шиной компьютера (только для однопроцессорных и асимметричных мультипроцессорных систем). 8. Управлять разделением потоков в симметричных мультипроцессорных системах и взаимодействие с сопроцессорами. 9. Формировать сигналы управления арифметико-логическим устройством и системными регистрами. 10. Реализовать конвейерные вычисления и инструкции, организацию доступа SIMD). 11. Проводить политику защиты выполняемых процессов путем назначение программам разных уровней привилегий и приоритетов (уровни доступа к памяти, уровни привилегий, уровни прерываний, работа в режиме супервизора и т. п. ) 12. Управляет контроллерами ввода-вывода. 13. Эмулировать другие процессоры или работать в "режиме совместимости". 14. И некоторые другие, менее важные. В связи с тем, что УУ CISC-процессора осуществляет такие сложные функции, то, во первых, это устройство логически разбивается на разные модули, а во-вторых, устройство управления имеет наибольшую сложность при проектировании и изготовлении.
"Идеальный" CISC-процессор второго поколения. Во втором поколении CICS-процессоров появились такие важные системы, как системы управления прерываниями и многозадачностью, кэш-память, страничное и сегментное разбиение памяти и, наконец, конвейер. В CISC-микропроцессоре второго поколения АЛУ, УУ, и другие основные его блоки уже не обращаются напрямую к шинам адреса и данных. Весь обмен информации идет через внутреннюю шину процессора. На внутренней шине расположена кэш-память 1 -го уровня. Весь обмен данными между микропроцессором и шиной данных осуществляется через нее. С возникновением многозадачности в микропроцессорах 2 -го поколения появился блок управления прерываниями и многозадачностью. Этот блок ответственен за: - обработку сигналов таймера TIMER и запросов прерываний IRQ#; - синхронизацию процессора и шины (сигнал CLK); - формирование слова состояния задачи (TSS) для сохранения информации о текущей задаче/ прерывании при переключении к следующей задаче/прерыванию; - осуществляет переключение между задачами (процессами), выполняющимися на микропроцессоре. Блок управления разбиением памяти (страничного и сегментного). Он занимается преобразованием базового адреса в линейный, а затем в физический, и формирует запрос по шине адреса. (Примечание. Запрос инициируется только в том случае, если данных нет в кэш-памяти. ) Эти блоки состоят из управляющих регистров и специальных логических схем, выявляющих ошибки в сегментном/страничном разбиении и теневые регистры для хранения наиболее важных результатов работы (например, текущего дескриптора сегмента или страницы и т. п. ) Все эти системные блоки плавно "перетекают" в CISC-процессоры 3 -го и 4 -го поколения, а также в RISC-процессоры.
Двухуровневая организация современных CISC-процессоров RISC-процессоры доказали свою состоятельность уже в начале 90 -х годов XX века. К этому времени начался перевод большинства высокопроизводительных компьютеров (серверов) на RISC-архитектуру. Однако к тому времени накопилось большое количество программ, написанных для CISC-процессоров. Их перевод (перекомпиляция) для выполнения на RISC-процессоры заняло бы много времени , поэтому фирмы производители традиционных CISC-процессоров придумали оригинальный способ решения этой проблемы. Они разделили процессор на две части. В первой части, названной ядром, был реализован оригинальный RISC-процессор. Он работал с высокой тактовой частотой, и мог обращаться только к кэш-памяти. Во второй же части располагался блок "перекодировки" CISC-инструкций в RISC-команды, выполняемых ядром микропроцессора. В ней также находились: - система управления сегментацией и страничного преобразования памяти; - система управления кэш-памятью; - конвейер; - система предсказания ветвлений. Таким образом на входе этот процессор получал набор инструкций традиционного CISC-компьютера, а выполнял вычисления как RISC-компьютер. Это, вопервых, позволило увеличить производительность компьютера, а во-вторых, появилась возможность введения дополнительных, потоковых инструкций, благодаря которым контейнер стал работать производительнее и уменьшилось время перевода CISCинструкций в RISC-команды. Традиционные, "чистые CISC-процессоры" этого не могли достигнуть
Недостатки CISC архитектуры: - высокая стоимость аппаратной части; - сложности с распараллеливанием вычислений.