Архитектура системы команд

Автор работы: Пользователь скрыл имя, 17 Февраля 2011 в 08:56, реферат

Описание работы

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

Архитектура таких уровней часто называется архитектурой физического

ввода/вывода.

Файлы: 1 файл

Курсовая работа по Архитектуре ЭВМ. 4-курс кафедра ВТ.doc

— 266.50 Кб (Скачать файл)
  1. Задание на проектирование
 

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

   Общие требования

  1. Операции обращения к памяти отделены от операций, связанных с обработкой данных.
  2. Операции преобразования данных выполняются по принципу регистр-регистр
  3. Поддерживаются операции над данными представленными в формате с фиксированной точкой и плавающей точкой.
  4. Должен быть предусмотрен механизм работы с виртуальной памятью, а так же возможность работы в многозадачном  режиме.

Исходные  данные

 

Формат данных – 8 разрядов с ФТ

                              16 разрядов с ФТ

                               32 разряда с ФТ

                              64 разряда с ФТ

Система команд – трехадресная

Способы адресации  – непосредственная

                                      относительная

                                      прямая

Регистровая память  кол-во –8

                                    Тип – универсальные

                                     Разрядность – 32

Шина адрес - данные  -  совмещенная

Наличие сопроцессора – Да

Основная  память  Объем –32

                                Разрядность – 32

Ввод –  вывод -  изолированный   

Прерывания  – равный приоритет  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

2. Введение 

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

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

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

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

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

      Следующий уровень отражает основную линию  разграничения системы, а именно границу между системным программным  обеспечением и аппаратурой. Эту  идею можно развить и дальше и  говорить о распределении функций  между отдельными частями физической системы. Например, некоторый интерфейс определяет, какие функции реализуют центральные процессоры, а какие - процессоры ввода/вывода.

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

Архитектура таких уровней часто называется архитектурой физического

ввода/вывода.  

      Архитектура системы команд.

        Классификация процессоров  (CISC и   RISC  ) 

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

      Двумя основными архитектурами набора команд, используемыми компьютерной промышленностью на современном  этапе развития вычислительной техники  являются архитектуры CISC и   RISC  . Основоположником CISC-архитектуры можно считать компанию IBM с ее базовой архитектурой /360, ядро которой используется с1964 года и дошло до наших дней, например, в таких современных мейнфреймах как IBM ES/9000.

      Лидером в разработке микропроцессоров c полным набором команд (CISC - Complete Instruction Set Computer) считается компания Intel со своей серией x86 и Pentium. Эта архитектура является практическим стандартом для рынка микрокомпьютеров. Для CISC-процессоров характерно: сравнительно небольшое число регистров общего назначения; большое количество машинных команд, некоторые из которых нагружены семантически аналогично операторам высокоуровневых языков программирования и выполняются за много тактов; большое количество методов адресации; большое количество форматов команд различной разрядности; преобладание двухадресного формата команд; наличие команд обработки типа регистр-память.

      Основой архитектуры современных рабочих  станций и серверов является архитектура  компьютера с сокращенным набором  команд (   RISC   - Reduced Instruction Set Computer). Зачатки этой архитектуры уходят своими корнями к компьютерам CDC6600, разработчики которых (Торнтон, Крэй и др.) осознали важность упрощения набора команд для построения быстрых вычислительных машин. Эту традицию упрощения архитектуры С. Крэй с успехом применил при создании широко известной серии суперкомпьютеров компании Cray Research. Однако окончательно понятие   RISC   в современном его понимании сформировалось на базе трех исследовательских проектов компьютеров: процессора 801 компании IBM, процессора   RISC   университета Беркли и процессора MIPS Стенфордского университета.

Разработка  экспериментального проекта компании IBM началась еще в конце 70-х годов, но его результаты никогда не публиковались  и компьютер на его основе в промышленных масштабах не изготавливался. В 1980 году Д.Паттерсон со своими коллегами из Беркли начали свой проект и изготовили две машины, которые получили названия   RISC  -I и   RISC  -II. Главными идеями этих машин было отделение медленной памяти от высокоскоростных регистров и использование регистровых окон.

      В 1981году Дж.Хеннесси со своими коллегами  опубликовал описание стенфордской машины MIPS, основным аспектом разработки которой была эффективная реализация конвейерной обработки посредством  тщательного планирования компилятором его загрузки.

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

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

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

      Следует отметить, что в последних разработках  компании Intel (имеется в виду Pentium P54C и процессор следующего поколения P6), а также ее последователей-конкурентов (AMD R5, Cyrix M1, NexGen Nx586 и др.) широко используются идеи, реализованные в   RISC  -микропроцессорах, так что многие различия между CISC и   RISC   стираются. Однако сложность архитектуры и системы команд x86 остается и является главным фактором, ограничивающим производительность процессоров на ее основе.  
 
 
 
 
 

3. Методы адресации  и типы данных 

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

команде методом  адресации.

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

      Ниже  на примере команды сложения (Add) приведены наиболее употребительные названия методов адресации, хотя при описании архитектуры в документации разные производители используют разные названия для этих методов.

Метод адресации  Пример команды Смысл команды 
метода
Использование
Регистровая Add R4,R3 R4=R4+R5 Требуемое значение в регистре
Непосредственная  или литеральная Add R4,#3 R4=R4+3 Для задания констант
Базовая со смещением Add R4,100(R1) R4=R4+M[100+R1] Для обращения к локальным переменным
Косвенная регистровая Add R4,(R1) R4=R4+M[R1] Для обращения по указателю или вычисленному адресу
Индексная Add R3,(R1+R2) R3=R3+M[R1+R2] Иногда полезна  при работе с 

Массивами: R1 - база, R3 - индекс

Прямая или  абсолютная Add R1,(1000) R1=R1+M[1000] Иногда полезна  для обращения к       статическим данным
Косвенная Add R1,@(R3) R1=R1+M[M[R3]] Если R3-адрес указателя p, то  выбирается значение по этому  указателю 
Автоинкрементная Add R1,(R2)+ R2=R2+d

R1=R1+M[R2]

Полезна для прохода  в цикле по массиву с шагом: R2 – начало массива

      В  каждом цикле R2 получает приращение d

Автодекрементная Add R1,(R2)- R1=R1+M[R2]

R2=R2-d

Аналогична предыдущей
Базовая индексная  со смещением и масштабированием Add R1,100(R2)[R3] R1=R1+M[100]+R2+R3*d Для индексации массивов

Информация о работе Архитектура системы команд