- •Пояснительная записка
- •1.4.2. Диапазон и погрешность представления чисел
- •1.4.3. Форматы команд, данных и слова состояния процессора
- •1.4.4. Организация виртуальной памяти
- •1.4.5. Способы организации ввода-вывода информации
- •1.4.6. Способ оценки производительности эвм
- •1.4.7. Приращение производительности эвм
- •2.2. Функциональная модель эвм
- •2.3. Алгоритм функционирования эвм
- •2.4. Средства управления прерываниями
- •2.5. Организация виртуальной памяти
- •Алгоритм работы виртуальной памяти
- •2.6. Оценка производительности эвм
- •3. Модификация созданной эвм
- •3.1. Возможности повышения производительности эвм
- •3.2. Организация конвейерной обработки команд
- •3.3. Расчет прироста производительности эвм
- •4. Тестовая задача
- •4.1. Алгоритм и программа для тестирования эвм
- •4.2. Моделирование процесса выполнения программы
- •5. Программирование ввода и вывода
- •5.1. Пример использования системных функций для ввода
- •5.2. Общие сведения об интерфейсе Win32 api
Федеральное агентство по образованию.
Санкт-Петербургский государственный электротехнический
университет «ЛЭТИ» имени В. И. Ульянова
КАФЕДРА ВТ
Пояснительная записка
К КУРСОВОМУ ПРОЕКТУ
по дисциплине «Архитектура ЭВМ»
Студент:
Преподаватель: Валов А.А.
Санкт-Петербург
2007
Содержание
Введение 3
1. Техническое задание 3
1.1. Область применения 3
1.2. Индивидуальное задание и литературные источники 3
1.3. Метод конвейеризации 4
1.4. Технические требования 4
Мнемокод 4
Код 4
Операнд 4
Назначение и действия 4
1.5. Способ тестирования ЭВМ 11
1.6. Взаимодействие программ пользователя с внешними устройствами 11
1.7. Демонстрация возможностей взаимодействия CPU с внешними устройствами 12
1.8. Интерфейс Win32 API 12
2. Структура и алгоритм функционирования ЭВМ классической модели 12
2.1. Вводные замечания 12
2.2. Функциональная модель ЭВМ 14
2.3. Алгоритм функционирования ЭВМ 16
2.4. Средства управления прерываниями 20
2.5. Организация виртуальной памяти 21
2.6. Оценка производительности ЭВМ 26
3. Модификация созданной ЭВМ 28
3.1. Возможности повышения производительности ЭВМ 28
3.2. Организация конвейерной обработки команд 28
3.3. Расчет прироста производительности ЭВМ 29
4. Тестовая задача 32
4.1. Алгоритм и программа для тестирования ЭВМ 32
4.2. Моделирование процесса выполнения программы 34
5. Программирование ввода и вывода 35
5.1. Пример использования системных функций для ввода 35
5.2. Общие сведения об интерфейсе Win32 API 36
ЗАКЛЮЧЕНИЕError: Reference source not found7
Введение.
Целью курсового проекта является приобретение навыков по составлению структурных и алгоритмических описаний ЭВМ. Цель достигается созданием классической принстонской модели ЭВМ с заданными характеристиками, которая далее совершенствуется с помощью реализации метода конвейеризации для повышения производительности ЭВМ.
1. Техническое задание
1.1. Область применения
Проектируемая ЭВМ относится к области электронных приборов, использующихся в спорте. Пользователь может задать на электронном табло счет спортивной игры.
Вариант |
Объем виртуальной страницы |
Способ Адресации |
Основная память | ||||
|
Кбайт |
Н |
О |
П |
К |
Объем Мбайт
|
ШД
|
1 |
2 |
+ |
- |
+ |
+ |
64 |
32 |
1.2. Индивидуальное задание и литературные источники
Параметры создаваемой ЭВМ:
При выполнении данной работы были использованы следующие источники информации
1) Лекции доцента кафедры ВТ Валова А.А. по курсу «Архитектура ЭВМ».
2) «Организация ЭВМ и систем» Н.Н.Горнец, А.Г.Рощин, В.В.Соломенцев, Москва: Издательский центр «Академия», 2006 г.
3) Дан Эпплман «Win32 API. Для профессионалов» С.-Пб.: Издательский дом «Питер», 2001 г.
4) «Руководство по микроконтроллерам», Майк Предко, М.: Издательство «Постмаркет», 2001 г.
1.3. Метод конвейеризации
В проекте используется простой способ конвейеризации, обеспечивающий совмещение выполнения текущей команды и выборки следующей. Каждая команда выполняется пошагово: сначала – выбирается из памяти, затем обрабатывается процессором. Процесс обработки предыдущей команды и выборки следующей можно совместить, так как задействованы разные системные ресурсы. С помощью этого метода можно увеличить производительность процессора. Этот метод называется конвейерный принцип обработки информации.
1.4. Технические требования
1.4.1. Команды ЭВМ
Мнемокод |
Код |
Операнд |
Назначение и действия |
Флаги |
ADD |
11001 |
Rr |
Сложение с фиксированной точкой Акк Акк + Rr |
OF, ZF, SF |
FADD |
10100 |
Rr |
Сложение с плавающей точкой Акк Акк + Rr |
OF, ZF, SF |
WR
|
00110
|
Rd
|
Запись в память из Акк RAM(Rd) Акк |
None |
READ |
01001 |
Rr |
Чтение из памяти в Акк Акк RAM(Rr) |
None |
Jmp |
01011 |
K |
Безусловный переход IP K + IP |
None |
JS |
00011 |
K |
Условный переход If (S==1) then IP IP+K |
None |
JZ |
00100 |
K |
Условный переход If (Z==1) then IP+K |
None |
HLT |
01000 |
- |
Останов Тп 0 |
None |
CLI |
01101 |
- |
Сброс флага IF IF 0 |
IF
|
StI |
01111 |
- |
Установка IF 1F 0 |
IF |
PtrRk |
10101 |
Rk |
Загружает косвенный адрес в Rk RkRAM(Rr) |
|
AND |
01100 |
Rr |
Логическое “и” – логическое умножение значений из регистра и аккумулятора Акк Акк&Rr |
None |
OR |
01110 |
Rr |
Логическое “или” – логическое сложение значений из регистра и аккумулятора Акк АккV Rr |
None |
IRET |
11101 |
|
Возвращение управления прерванному процессу SPSP+4 IPRAM(SP) SPSP+4 FLAGRAM(SP) |
all |
SMSW |
00111 |
KontPr |
Сохранение контекста (в т.ч. слова состояния – регистра FLAG) процессора KontPr KontPr KontPr-4 RAM(KontPr)FLAG KontPr KontPr-4 RAM(KontPr)IP KontPr KontPr-4 RAM(KontPr)Acc KontPr KontPr-4 RAM(KontPr)Rk KontPr KontPr-4 RAM(KontPr)GT KontPr KontPr-4 RAM(KontPr)LT KontPr KontPr-4 RAM(KontPr)TOS |
none |
LMSW |
01010 |
KontPr |
Восстановление контекста (в т.ч. слова состояния – регистра FLAG) процесcа KontPr KontPr KontPr+4 FLAG RAM(KontPr) KontPr KontPr+4 IP RAM(KontPr) KontPr KontPr+4 Acc RAM(KontPr) KontPr KontPr+4 Rk RAM(KontPr) KontPr KontPr+4 GT RAM(KontPr) KontPr KontPr+4 LT RAM(KontPr) KontPr KontPr+4 TOS RAM(KontPr) |
none |
SYSCALL |
11011 |
|
Переключение в пользовательский режим PF 0 |
PF |
SYSCALL |
11011 |
|
Переключение в системный режим PF 1 |
PF |
GTRead |
01110 |
Rr |
Загружает из памяти начальный адрес глобальной таблицы страниц GTRAM(Rr) |
None |
GTWrite |
01111 |
Rd |
Сохраняет в память начальный адрес глобальной таблицы RAM(Rd)GT |
None |
LTRead |
11110 |
Rr |
Загружает из памяти начальный адрес локальной таблицы RAM(Rr)LT |
None |
LTWrite |
11111 |
Rd |
Сохраняет в память начальный адрес локальной таблицы страниц RAM(Rd)LT |
None |
IN |
11011 |
Npr |
Вводит в аккумулятор байт или слово из порта, указываемого в качестве операнда AccPort(Npr) |
None |
OUT |
11101 |
Npr |
Выводит из аккумулятора байт или слово в порт, указанного в качестве операнда Port(Npr) Acc |
None |
CMP |
11010 |
Rr |
Сравнение путем вычитания Акк-Rr |
OF, ZF, SF |
В таблице использованы следующие обозначения:
Акк – (аккумулятор) источник данных или приемник;
К – адресная константа, для задания которой выделены n+1 разрядов. Диапазон значений адресной константы: -2**nK+(2**n-1).
Rr – источник данных;
Rd – приемник данных;
Rk – регистр косвенной адресации
KontPr – регистр, в котором хранится адрес таблицы виртуальных страниц;
PF – флаг рабочего режима.
GT – регистр глобальной таблицы страниц
LT – регистр локальной таблицы страниц
Npr – номер порта ввода/вывода
TOS – регистр, содержащий количество строк виртуальной страницы
Адрес операнда вычисляется в зависимости от используемого в команде способа адресации.