русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Системы RISC и CISC


Дата добавления: 2013-12-23; просмотров: 1933; Нарушение авторских прав


 

В 1980 году группа разработчиков в университете Беркли во главе с Дэвидом Паттерсоном (David Patterson) и Карло Секвином (Carlo Sequin) начала разра¬ботку не ориентированных на интерпретацию процессоров VLSI. Для обозначения этого понятия они придумали термин RISC, а новый процессор назвали RISC I, вслед за которым вскоре был выпущен RISC II. Немного позже, в 1981 году, Джон Хеннеси (John Hennesy) в Стенфорде разработал и выпустил другую микросхему, которую он назвал MIPS. Эти две микросхемы разви¬лись в коммерчески важные продукты SPARC и MIPS соответственно.

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

В то время, когда разрабатывались эти простые процессоры, всеобщее внима¬ние привлекало относительно небольшое количество команд (обычно около 50). Для сравнения: число команд в компьютерах VAX производства DEC и больших компьютерах производства IBM в то время составляло от 200 до 300. Компьютер RISC (Reduced Instruction Set Computer — компьютер с сокращенным набором команд) противопоставлялся системе CISC (Complex Instruction Set Compu¬ter — компьютер с полным набором команд). В качестве примера машины ти¬па CISC можно привести компьютер VAX, который доминировал в то время в университетской среде. На сегодняшний день мало кто считает, что главное отличие RISC и CISC состоит в количестве команд, но названия сохраняются до сих пор.



Процессоры Intel, начиная с процессора 486, содержат RISC-ядро, которое выполняет самые простые (и обычно самые распространен¬ные) команды за один цикл тракта данных, а по обычной технологии CISC ин¬терпретируются более сложные команды. В результате обычные команды вы¬полняются быстро, а более сложные и редкие — медленно. Хотя при таком «гибридном» подходе производительность ниже, чем в архитектуре RISC, новая архитектура CISC имеет ряд преимуществ, поскольку позволяет использовать старое программное обеспечение без изменений.

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

♦ Все команды должны выполняться непосредственно аппаратным обеспече¬нием. То есть обычные команды не интерпретируются микрокомандами. Устранение уровня интерпретации повышает скорость выполнения боль¬шинства команд. В компьютерах типа CISC более сложные команды могут разбиваться на несколько шагов, которые затем выполняются как последо¬вательность микрокоманд. Эта дополнительная операция снижает быстро¬действие машины, но может использоваться для редко применяемых ко¬манд.

♦ Компьютер должен запускать как можно больше команд в секунду. В со-временных компьютерах используется много различных способов повы¬шения производительности, главный из которых — запуск как можно большего количества команд в секунду. Процессор 500-MIPS способен за¬пускать 500 млн команд в секунду, и при этом не имеет значения, сколько времени занимает выполнение этих команд. (MIPS — это сокращение от Millions of Instructions Per Second — миллионы команд в секунду.) Этот принцип предполагает, что параллелизм должен играть главную роль в по¬вышении производительности, поскольку запустить на выполнение боль¬шое количество команд за короткий промежуток времени можно только в том случае, если есть возможность одновременного выполнения несколь¬ких команд.

Хотя команды любой программы всегда располагаются в памяти в определен¬ном порядке, компьютер способен изменить порядок их запуска (так как не¬обходимые ресурсы памяти могут быть заняты) и (или) завершения. Конеч¬но, если команда 1 устанавливает значение в регистр, а команда 2 использует этот регистр, нужно действовать с особой осторожностью, чтобы команда 2 не считала значение из регистра раньше, чем оно там окажется. Чтобы не допус¬кать подобных ошибок, необходимо хранить в памяти большое количество дополнительной информации, но благодаря возможности выполнять несколь¬ко команд одновременно производительность все равно оказывается выше.

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

♦ К памяти должны обращаться только команды загрузки и сохранения. Один из самых простых способов разбить операцию на отдельные шаги — сделать так, чтобы операнды большей части команд брались из регистров и возвращались туда же. Операция перемещения операндов из памяти в регистры и обратно может осуществляться в разных командах. Поскольку доступ к памяти занимает много времени, причем длительность задержки не поддается прогнозированию, выполнение этих команд могут взять на себя другие команды, единственное назначение которых — перемещение операндов между регистрами и памятью. То есть к памяти должны обра¬щаться только команды загрузки и сохранения (LOAD и STORE).

♦ Регистров должно быть много. Поскольку доступ к памяти происходит до¬вольно медленно, в компьютере должно быть много регистров (по крайней мере, 32). Если слово однажды вызвано из памяти, при наличии большого числа регистров оно может содержаться в регистре до тех пор, пока не по¬требуется. Возвращение слова из регистра в память и новая загрузка этого же слова в регистр нежелательны. Лучший способ избежать излишних пе¬ремещений — наличие достаточного количества регистров.

 



<== предыдущая лекция | следующая лекция ==>
Выполнение команд | Конвейеры


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.