- •Введение
- •1. Техническое задание
- •1.1. Предмет проектирования
- •1.2. Общие требования к разрабатываемому процессору
- •1.3. Исходные данные для курсового проектирования
- •1.4. Средства реализации модели
- •1.5. Результаты проект ирования
- •2. Последовательность выполнения курсового проекта
- •2.1. Общая последовательность
- •2.2. Разработка архитектуры цп
- •2.2.1. Уточнение структуры системы
- •2.2.2. Разработка архитектуры внешних выводов
- •2.2.3. Выбор форматов данных
- •2.2.4. Определение модели памяти и структуры регистровой памяти
- •2.2.5. Выбор форматов команд
- •2.2.6. Разработка системы команд
- •2.2.7. Внутренняя организация
- •2.2.8. Основные алгоритмы функционирования
- •2.2.9. Алгоритмы выполнения отдельных операций
- •2.2.10. Разработка алгоритмов выполнения основных операций на шине
- •4. Оформление курсового проекта
Министерство образования Российской Федерации
_________
Санкт-Петербургский государственный электротехнический
университет “ЛЭТИ”
___________________________________________
АРХИТЕКТУРА ЭВМ
Методические указания
к выполнению курсового проекта
Санкт-Петербург
Издательство СПбГЭТУ “ЛЭТИ”
2008
Министерство образования Российской Федерации
_________
Санкт-Петербургский государственный электротехнический
университет “ЛЭТИ”
___________________________________________
АРХИТЕКТУРА ЭВМ
Методические указания
к выполнению курсовой работы
Санкт-Петербург
Издательство СПбГЭТУ “ЛЭТИ”
2008
УДК 621.32
Архитектура ЭВМ: Методические указания к выполнению курсового проекта/Сост.: А. И. Водяхо, А. Ф. Казак, А. С. Маркин/ С.-Пб.: Изд-во СПбГЭТУ “ЛЭТИ” 2008. 32 с.
Приводятся варианты заданий и даются рекомендации к выполнению курсового проекта по дисциплине “Архитектура ЭВМ”. Определяются содержание разрабатываемой проектной документации и требования к ее оформлению.
Предназначены для бакалавров по направлению 552800.
Утверждено
редакционно-издательским советом университета
в качестве методических указаний
СПбГЭТУ “ЛЭТИ”, 2008
Введение
Курсовая работа предназначена для практического освоения разделов курса “Архитектура ЭВМ”, посвященных изучению архитектуры и принципов структурной организации и функционирования ЭВМ.
Эта цель наилучшим образом достигается самостоятельной проработкой студентом архитектурного, схемного и алгоритмического описаний ЭВМ.
Курсовой проект выполняется в течение одного семестра. Учебный план дисциплины предусматривает аудиторную групповую проработку основных разделов задания, проработку отдельных вопросов выполнения курсовой работы в процессе индивидуальных консультаций с преподавателем, самостоятельную работу студента и защиту курсовой работы в условиях.
Качественное выполнение курсовой работы требует от студентов знаний отдельных разделов смежных дисциплин (“Организация ЭВМ”, “Объектно-ориентированное программирование”) и систематической работы над проектом.
1. Техническое задание
1.1. Предмет проектирования
Курсовая работа для бакалавров посвящается разработке программной модели однокристального RISC-процессора.
В зависимости от варианта задания проектируется либо процессор общего назначения, предназначенный для использования в качестве центрального процессора (ЦП) рабочей станции, ориентированной на работу в многопользовательском режиме, либо процессор для встроенных применений (контроллер).
1.2. Общие требования к разрабатываемому процессору
Система команд должна удовлетворять следующим требованиям.
1. Операции обращения к памяти отделены от операций, связанных с обработкой данных.
2. Операции, связанные с преобразованием данных, выполняются по принципу регистр-регистр.
3. В общем случае аппаратно поддерживаются операции над целыми числами со знаком и без знака, а также над числами, представленными в формате с плавающей точкой (ПТ).
4. Система команд должна быть функционально полной и включать команды общего назначения, команды для обработки чисел с ПТ и привилегированные команды.
5. Процессор должен иметь векторную систему прерываний.
6. Для процессоров с традиционной (принстонской) архитектурой должны быть предусмотрены механизмы поддержки многозадачности.
7. Процессоры должны иметь встроенную кэш-память.
Программная модель представляет собой симулятор, который должен удовлетворять следующим требованиям:
1. Отображать содержимое регистров общего назначения, системных регистров и регистров, используемых для хранения чисел с плавающей точкой.
- 2. Симулятор должен позволять выполнять покомандное выполнение программы.
3. Выполняемая программа хранится в отдельном файле и представляет собой псевдоасемблерный код.
4. В зависимости от варианта задания симулятор пишется либо на С++, либо на Java.
1.3. Исходные данные для курсового проектирования
Исходные данные для выполнения курсового проекта определяются как общими требованиями к разрабатываемому процессору, так и вариантом задания.
Варианты заданий приведены в табл. 1 –4. Состав исходных данных обусловлен типом архитектуры. Для традиционной архитектуры варианты заданий, приведенные в табл. 1 и 2, включают следующие исходные данные для проектирования:
- перечень аппаратно поддерживаемых типов данных;
- адресность операционных команд;
- способы адресации;
- основные характеристики регистровой памяти (количество регистров, их тип и разрядность);
- тип локальной шины;
- наличие сопроцессора;
- характеристики основной памяти;
- способ организации ввода-вывода;
Аппаратно могут поддерживаться шесть основных форматов:
- 8-разрядные числа со знаком и без знака;
- 16-разрядные числа со знаком и без знака;
Таблица 1
Традиционная архитектура
|
Формат данных |
Регистровая память | |||||
N |
8 |
16 |
32 |
64 |
Количество регистров |
Тип |
Разрядность |
1 |
+ |
+ |
+ |
- |
8 |
ФО |
32 |
2 |
- |
+ |
+ |
+ |
8 |
У |
64 |
3 |
+ |
- |
+ |
+ |
8 |
ФО |
64 |
4 |
+ |
+ |
- |
+ |
8 |
ФО |
64 |
5 |
+ |
+ |
+ |
- |
16 |
У |
32 |
6 |
- |
+ |
+ |
+ |
16 |
У |
32 |
7 |
+ |
- |
+ |
+ |
16 |
ФО |
32 |
8 |
+ |
+ |
- |
+ |
16 |
ФО |
64 |
9 |
+ |
+ |
+ |
- |
32 |
У |
32 |
10 |
- |
+ |
+ |
+ |
32 |
У |
32 |
11 |
+ |
- |
+ |
+ |
32 |
ФО |
64 |
12 |
+ |
+ |
- |
+ |
32 |
ФО |
32 |
13 |
+ |
+ |
+ |
- |
64 |
У |
32 |
14 |
- |
+ |
+ |
+ |
64 |
У |
32 |
15 |
+ |
- |
+ |
+ |
64 |
ФО |
64 |
16 |
+ |
+ |
- |
+ |
64 |
ФО |
32 |
17 |
+ |
+ |
+ |
- |
64 |
ФО |
32 |
18 |
- |
+ |
+ |
+ |
64 |
ФО |
32 |
19 |
+ |
- |
+ |
+ |
64 |
У |
32 |
20 |
+ |
+ |
- |
+ |
64 |
У |
64 |
21 |
+ |
+ |
+ |
- |
32 |
ФО |
32 |
22 |
- |
+ |
+ |
+ |
32 |
ФО |
64 |
23 |
+ |
- |
+ |
+ |
32 |
У |
32 |
24 |
+ |
+ |
- |
+ |
32 |
У |
64 |
25 |
+ |
+ |
+ |
- |
16 |
ФО |
32 |
26 |
- |
+ |
+ |
+ |
16 |
ФО |
32 |
27 |
+ |
+ |
- |
+ |
16 |
У |
32 |
28 |
+ |
+ |
- |
+ |
16 |
У |
64 |
29 |
- |
+ |
+ |
+ |
8 |
ФО |
32 |
30 |
- |
+ |
+ |
+ |
8 |
ФО |
64 |
Таблица 2
Традиционная архитектура
|
Шина адрес-данные |
Наличие сопро- цессора |
Основная память |
Ввод-вывод |
Поддержка графики | |||
N |
С |
Р |
|
Объем, Гбайт |
ШД |
И |
П | |
1 |
+ |
- |
+ |
2 |
64 |
+ |
- |
+ |
2 |
+ |
- |
+ |
16 |
32 |
+ |
- |
- |
3 |
+ |
- |
+ |
64 |
64 |
+ |
- |
+ |
4 |
+ |
- |
+ |
32 |
32 |
+ |
- |
- |
5 |
+ |
- |
+ |
4 |
64 |
+ |
- |
+ |
6 |
- |
+ |
+ |
4 |
32 |
- |
+ |
- |
7 |
- |
+ |
+ |
4 |
64 |
- |
+ |
+ |
8 |
- |
+ |
- |
8 |
32 |
- |
+ |
- |
9 |
- |
+ |
- |
4 |
32 |
- |
+ |
+ |
10 |
- |
+ |
- |
4 |
32 |
- |
+ |
- |
11 |
+ |
- |
- |
16 |
32 |
+ |
- |
+ |
12 |
+ |
- |
- |
4 |
32 |
+ |
- |
- |
13 |
+ |
- |
- |
4 |
64 |
+ |
- |
+ |
14 |
+ |
- |
- |
2 |
32 |
+ |
- |
- |
15 |
+ |
- |
+ |
32 |
64 |
+ |
- |
+ |
16 |
- |
+ |
+ |
16 |
32 |
- |
+ |
- |
17 |
- |
+ |
+ |
2 |
32 |
- |
+ |
+ |
18 |
- |
+ |
+ |
4 |
64 |
- |
+ |
- |
19 |
- |
+ |
+ |
4 |
32 |
- |
+ |
+ |
20 |
- |
+ |
+ |
32 |
32 |
- |
+ |
- |
21 |
+ |
- |
+ |
4 |
64 |
+ |
- |
+ |
22 |
+ |
- |
- |
64 |
32 |
+ |
- |
- |
23 |
+ |
- |
- |
4 |
32 |
+ |
- |
+ |
24 |
+ |
- |
- |
48 |
32 |
+ |
- |
- |
25 |
+ |
- |
- |
2 |
32 |
+ |
- |
+ |
26 |
- |
+ |
- |
4 |
32 |
- |
+ |
- |
27 |
- |
+ |
- |
2 |
32 |
- |
+ |
+ |
28 |
- |
+ |
- |
24 |
32 |
- |
+ |
- |
29 |
- |
+ |
+ |
2 |
32 |
- |
+ |
+ |
30 |
- |
+ |
+ |
32 |
32 |
- |
+ |
- |
Таблица 3
Гaрвардская архитектура
Но-мер вари-анта |
Формат данных |
Адрес-ность |
Способ адресации |
Регистровая память | |||||||
|
8 |
16 |
32 |
|
Н |
О |
П |
К |
Коли- чество |
Тип |
Разряд-ность |
1 |
+ |
+ |
- |
3 |
+ |
+ |
+ |
- |
8 |
У |
16 |
2 |
- |
+ |
+ |
2 |
- |
+ |
+ |
+ |
8 |
У |
32 |
3 |
+ |
+ |
- |
3 |
+ |
+ |
+ |
- |
8 |
ФО |
16 |
4 |
- |
+ |
+ |
3 |
+ |
+ |
+ |
- |
8 |
ФО |
16 |
5 |
+ |
+ |
- |
2 |
+ |
+ |
|
+ |
16 |
У |
32 |
6 |
- |
+ |
+ |
3 |
+ |
+ |
|
+ |
16 |
У |
32 |
7 |
+ |
+ |
- |
3 |
+ |
+ |
+ |
- |
16 |
ФО |
16 |
8 |
- |
+ |
+ |
2 |
+ |
+ |
+ |
- |
16 |
ФО |
16 |
9 |
+ |
+ |
- |
3 |
|
+ |
+ |
+ |
32 |
У |
16 |
10 |
- |
+ |
+ |
3 |
|
+ |
+ |
+ |
32 |
У |
16 |
11 |
+ |
+ |
- |
2 |
+ |
+ |
+ |
- |
32 |
ФО |
16 |
12 |
- |
+ |
+ |
3 |
+ |
+ |
+ |
- |
32 |
ФО |
16 |
13 |
+ |
+ |
- |
3 |
- |
+ |
+ |
+ |
64 |
У |
16 |
14 |
- |
+ |
+ |
2 |
|
+ |
+ |
+ |
64 |
У |
32 |
15 |
+ |
+ |
- |
3 |
+ |
+ |
+ |
- |
64 |
ФО |
16 |
16 |
- |
+ |
+ |
3 |
+ |
+ |
- |
- |
64 |
ФО |
32 |
17 |
+ |
+ |
- |
2 |
+ |
+ |
+ |
- |
64 |
ФО |
16 |
18 |
- |
+ |
+ |
3 |
+ |
+ |
+ |
- |
64 |
ФО |
16 |
19 |
+ |
+ |
- |
3 |
+ |
+ |
- |
+ |
64 |
У |
16 |
20 |
- |
+ |
+ |
2 |
+ |
+ |
- |
+ |
64 |
У |
32 |
21 |
+ |
+ |
- |
3 |
+ |
+ |
+ |
- |
32 |
ФО |
16 |
22 |
- |
+ |
+ |
3 |
+ |
+ |
+ |
- |
32 |
ФО |
32 |
23 |
+ |
+ |
- |
2 |
+ |
+ |
- |
+ |
32 |
У |
16 |
24 |
- |
+ |
+ |
3 |
+ |
+ |
- |
+ |
32 |
У |
32 |
25 |
+ |
+ |
- |
3 |
+ |
+ |
+ |
- |
16 |
ФО |
16 |
26 |
- |
+ |
+ |
2 |
+ |
+ |
+ |
- |
16 |
ФО |
32 |
27 |
+ |
+ |
- |
3 |
+ |
+ |
- |
+ |
16 |
У |
16 |
28 |
- |
+ |
+ |
3 |
+ |
+ |
- |
+ |
16 |
У |
32 |
29 |
+ |
+ |
- |
2 |
+ |
+ |
+ |
- |
8 |
ФО |
16 |
30 |
- |
+ |
+ |
3 |
+ |
+ |
+ |
- |
8 |
ФО |
32 |
Таблица 4
Гарвардская архитектура
Но-мер варианта |
Шина адрес-данные |
Память данных |
Память команд |
Ввод-вывод | ||||
С |
Р |
Объем, Кбайт |
ШД
|
Объем, Кбайт |
ШК |
И |
П | |
1 |
+ |
- |
16 |
16 |
16 |
16 |
- |
+ |
2 |
+ |
- |
32 |
16 |
32 |
32 |
- |
+ |
3 |
+ |
- |
48 |
16 |
64 |
64 |
- |
+ |
4 |
+ |
- |
48 |
32 |
64 |
16 |
- |
+ |
5 |
+ |
- |
256 |
16 |
32 |
16 |
- |
+ |
6 |
+ |
- |
128 |
16 |
16 |
32 |
- |
+ |
7 |
+ |
- |
256 |
16 |
32 |
16 |
- |
+ |
8 |
- |
+ |
128 |
32 |
16 |
32 |
+ |
- |
9 |
- |
+ |
46 |
16 |
48 |
64 |
+ |
- |
10 |
- |
+ |
64 |
16 |
64 |
16 |
+ |
- |
11 |
- |
+ |
128 |
16 |
24 |
16 |
+ |
- |
12 |
- |
+ |
256 |
32 |
64 |
32 |
+ |
- |
13 |
- |
+ |
256 |
16 |
32 |
16 |
+ |
- |
14 |
- |
+ |
64 |
16 |
48 |
32 |
+ |
- |
15 |
+ |
- |
128 |
16 |
16 |
64 |
- |
+ |
16 |
+ |
- |
128 |
32 |
32 |
16 |
- |
+ |
17 |
+ |
- |
32 |
16 |
48 |
16 |
- |
+ |
18 |
+ |
- |
64 |
16 |
48 |
32 |
- |
+ |
19 |
+ |
- |
48 |
16 |
48 |
16 |
- |
+ |
20 |
+ |
- |
128 |
32 |
16 |
32 |
- |
+ |
21 |
+ |
- |
256 |
16 |
32 |
64 |
- |
+ |
22 |
- |
+ |
32 |
16 |
48 |
16 |
+ |
- |
23 |
- |
+ |
128 |
16 |
32 |
16 |
+ |
- |
24 |
- |
+ |
48 |
32 |
48 |
32 |
+ |
- |
25 |
- |
+ |
64 |
16 |
64 |
16 |
+ |
- |
26 |
- |
+ |
32 |
16 |
32 |
32 |
+ |
- |
27 |
- |
+ |
128 |
16 |
32 |
64 |
+ |
- |
28 |
- |
+ |
128 |
32 |
16 |
16 |
+ |
- |
29 |
- |
+ |
48 |
16 |
48 |
16 |
- |
+ |
30 |
- |
+ |
2 |
16 |
64 |
32 |
- |
+ |
- 32-разрядные числа со знаком и без знака;
- 64-разрядные числа со знаком и без знака;
- 32-разрядные числа в формате с ПТ;
- 64-разрядные числа в формате с ПТ.
Для тех вариантов, в которых предусмотрены 32- и 64-разрядные форматы, требуется реализовать их для целых чисел со знаком и без знака, а также в формате с ПТ.
Графические команды выполняются на сопроцессоре с ПТ по типу команд ММХ; при этом используются регистры с ПТ.
Для регистровой памяти задаются количество регистров, их тип, а также разрядность. Регистры могут быть либо универсальными (У), либо функционально ориентированными (ФО). В первом случае речь идет о регистрах общего назначения (РОН), которые предназначены для хранения как адресов, так и целых чисел. Если предусматривается наличие сопроцессора, то для хранения чисел с ПТ должны использоваться отдельные регистры с ПТ, которые физически размещаются внутри сопроцессора. Если сопроцессор отсутствует, то возможны различные варианты организации РОН для данных с ПТ:
- использование одной и той же физической памяти для целочисленных данных и чисел, представленных в формате с ПТ. В этом случае, как правило, данные с ПТ занимают несколько РОН, используемых для хранения целых чисел. Вариант совмещения РОН для хранения целых чисел и чисел в формате с ПТ ставит перед разработчиком архитектуры следующую задачу: размещать число с ПТ можно, начиная с любого РОН или же только определенным образом, например, только с четных адресов. Во втором случае встает вопрос задания адресов для данных с ПТ: либо они совпадают с адресами для целочисленных данных, либо для них вводится своя сквозная нумерация (0, 1, 2, ...);
- использование различных модулей физической памяти для реализации РОН для целочисленных данных и чисел, представленных в формате с ПТ.
Функциональная ориентация РОН подразумевает их разбиение на группы в зависимости от функционального назначения (например, регистры для хранения: данных, индексов, базы, и т. п.).
В процессоре используется либо совмещенная шина адреса и данных (С), либо раздельные шины адреса и данных (Р). В состав системы входит сопроцессор, обеспечивающий выполнение операций с ПТ, который должен иметь собственные регистры с ПТ.
В задании определяется объем оперативной памяти, к которому необходимо обеспечить доступ, в режиме прямоадресуемой памяти. Разрядность шины данных определяется разрядностью памяти.
Ввод-вывод может быть организован либо изолированным (И), т. е. с использованием специальных команд ввода-вывода, либо по аналогии с обращением к ячейкам памяти (П). Изолированный ввод-вывод подразумевает использование специальных команд ввода-вывода. Идентификация обращения к регистрам внешних устройств осуществляется по коду операции. Организация ввода-вывода по аналогии с обращением к ячейкам оперативной памяти (ОП) предполагает использование единого адресного пространства для ячеек памяти и портов ввода-вывода. В этом случае адресное пространство делится между ячейками ОП и регистрами внешних устройств. Данный подход позволяет по коду адреса определить, идет ли обращение к ячейке ОП или к регистру ВУ, не требует введения специальных команд ввода-вывода и дает возможность использовать различные способы адресации при обращении к регистрам ВУ (однако в этом случае возникают дополнительные проблемы при работе кэша и использовании виртуальной памяти).
Для всех вариантов требуется разработать систему прерываний; при этом требуется реализовать векторную систему прерываний. (Таблица векторов может находиться по произвольным адресам). Предлагается использовать внешний контроллер прерываний.
Отличительной особенностью гарвардской архитектуры является наличие отдельной памяти команд (см. табл. 4). Принимается, что память команд размещается внутри кристалла, кроме того, возможно подключение дополнительной внешней памяти команд.
Раздельная реализация памяти команд и памяти данных упрощает организацию конвейера по выборке команд из памяти и по размещению их в очередь для дальнейшего исполнения. Такая организация позволяет избежать конфликтов при обращении к памяти, которые имеют место при использовании традиционной архитектуры, однако не снимает проблем, связаннных с реализацией команд переходов.
Наличие поддержки виртуальной памяти для процессоров с традиционной архитектурой подразумевает решение следующих задач:
- разработки формата и способа хранения таблицы виртуальных и физических страниц;
- выбора способа преобразования виртуального адреса в физический и его аппаратную поддержку;
- выбора варианта удаления страницы из ОЗУ и его алгоритмическую проработку;
- разработки алгоритма обмена страницами между ОЗУ и внешней памятью.
Наличие кэш-памяти данных для процессоров с гарвардской архитектурой подразумевает решение следующих задач:
- разработки основных алгоритмов работы кэш-памяти;
- проработки вопросов структурной организации кэш-памяти;
- разработки стратегии и алгоритма замены строк.