- •Пояснительная записка
- •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
1.4.2. Диапазон и погрешность представления чисел
Диапазон представления целых чисел с фиксированной точкой:
- (2n-1-1) ÷ 2n-1-1
Диапазон представления дробных чисел с фиксированной точкой:
2-31 ÷ 1-2-(n-1), где n – разрядность чисел, п=32
Диапазон представления чисел с плавающей точкой:
- (1 - 2-23)*2q ÷ (1- 2-23) *2q
Абсолютная максимальная погрешность для дробных чисел с фиксированной точкой составит 2-31. Погрешность для чисел с плавающей точкой будет меняться в зависимости от величины порядка и мантиссы: 2-23*2±q, где q=2-7-1.
1.4.3. Форматы команд, данных и слова состояния процессора
Форматы команд зависят от способов адресации. Общий формат:
32 15 14 11 10 0 (разряд)
код операции способ адресации адрес операнда
(КОП) (СА) (А) RI
RI-регистр инструкций
Так как разрабатываемая машина одноадресная, все команды имеют размер 2 байта: название команды (1 байт) и имя операнда (1 байт). Используемые в курсовом проекте способы адресации: прямая, косвенная, непосредственная.
Обозначим
00 – прямая адресация. Заключается в том, что адресный код прямо указывает на номер ячейки памяти, к которой происходит обращение.
01 – косвенная адресация. Заключается в том, что значение адресного поля команды остается неизменным, в то время, как содержимое ячейки, расположенной по данному адресу может изменяться в ходе выполнения программы.
10 – непосредственная адресация. Заключается в том, что в адресном поле непосредственно содержится операнд. Применяется при выполнении арифметических операций, операций сравнения.
Формат представления слова состояния процессора:
31 4 3 2 1 0
|
PF |
IF |
OF |
ZF |
SF |
Флаги анализируются и устанавливаются в ходе выполнения программы.
PF – флаг режима работы процессора: 0 – системный режим, 1 - пользовательский режим
IF – разрешение внешних прерываний по входу INTR. При IF = 1 выполняется проверка входа INTR, прерывания по входу INTR разрешены, при IF = 0 вход INTR не контролируется процессором.
OF – флаг переполнения. Отражает переполнение при сложении и вычитании знаковых чисел. При переполнении (когда число превысило пределы допустимой разрядности) OF устанавливается в 1, 0 – результат заносится в регистр данных.
ZF - флаг индикатора, показателя «0». Если проверяемое число равно ноль, значение флага устанавливается 1, если число отлично от нуля, флаг равен 0.
SF – флаг знака числа (результата вычисления). Содержит копию знакового бита числа. Если знак положительный, SF = 0, если отрицательный, SF = 1.
1.4.4. Организация виртуальной памяти
Пользователю предоставляется адресное пространство, соответствующее всему объему оперативной. Логическое адресное пространство, получаемое при использовании сегментного и страничного способов адресации, называется виртуальным адресным пространством.
Размер виртуальной страницы по заданию составляет 2 Кб.
Для более рационального использования адресного пространства памяти применяется страничный способ организации виртуальной памяти.
При простой страничной организации виртуальный адрес включает в себя номер страницы и смещение внутри нее.
31 30 11 10 0
Номер региона |
Номер страницы |
Смещение |
Отличие страничной адресации от странично-сегментной состоит в том, что при страничном способе размер страницы четко фиксирован, а программы могут быть разного размера. При сегментно-страничной адресации каждый сегмент, т.е. выделенный участок адресного пространства для какой-либо программы разбивается на определенное число страниц фиксированного размера.
Так как предусмотрено два режима работы машины, виртуальное адресное пространство делится на два равных региона: SYS – системный и USER – пользовательский.
Формат указателя виртуального адреса представлен в виде трех полей:
- в первом поле задается тип адресного пространства (SYS или USER)
- во втором поле указывается номер виртуальной страницы
- в третьем поле задается смещение описываемого объекта, относительно начала страницы.
Формат указателя физического адреса представляется двумя полями, имена и разделы которых совпадают с именами и разрядностью полей 2 и 3 указателя виртуального адреса.
Для предотвращения воздействия одних пользовательских программ на другие, каждому пользователю выделяется индивидуальное адресное пространство для выполнения и при прерывании сохраняется отдельный контекст процесса для каждого пользователя.
В начале кванта времени предоставление процессора для выполнения процесса осуществляется переключение контекста, которое заключается в том, что контекст процессора сохраняется в заданных регистрах и процессор готов к выполнению новой задачи.
Таблица страниц содержит информацию о местонахождении каждой страницы в основной памяти: адрес в основной памяти и данные о текущем состоянии страницы. Начальный адрес таблицы страниц хранится в базовом регистре таблицы страниц – GT – регистр глобальной таблицы страниц, LT – регистр локальной таблицы страниц.
В строке таблицы страниц, в соответствующих полях, указываются признаки, характеризующие страницу: признак модификации страницы, признак наличия виртуальной страницы в основной памяти(1 бит), поле для задания номера страничного кадра(4 Кб), поле для задания прав доступа к описываемой странице(1 бит), поле, в котором задана характеристика времени пребывания страницы в основной памяти, которая позволит принимать решение о замещении описываемой страницы другой страницей, если в ОЗУ нет свободного места при обработке страничного прерывания.
30 11 3 2 1 0
№ страницы |
|
Т |
M |
D |
P |
P – признак присутствия страницы в оперативной памяти. 1- находится в ОП, 0- находится на внешнем носителе (жесткий диск)
M – признак модификации страницы. 1 – в ходе выполнения программы страница была изменена, 0 – осталась неизменной. При прерывании процесса необходимо сохранить на жесткий диск модифицированные страницы..
D – признак прав доступа к описываемой странице. 1- страница доступна для записи, 0 – только для чтения.
Т – поле, в котором задается характеристика времени пребывания страницы в ОП. Эта характеристика поможет принять решение о замещении описываемой страницы другой страницей, а если в ОЗУ нет свободного места при обработке страничного прерывания.
Состав контекста и требуемый для его сохранения объем памяти: для сохранения текущего состояния процесса используется 7 регистров (аккумулятор (Акк), счетчик команд (IP), указатель стека (SP), регистр флага (FL), регистр адреса глобальной таблицы (GT), регистр адреса локальной таблицы (LD), регистр косвенной адресации (Rk)) по 4 б = 28 байт, размер виртуальной страницы 2 Кб, в таблице описания страницы 219 строк, размер каждой строки таблицы страниц 219 *3 Кб = 1,5 Мб. Для сохранения данных восьми пользовательских и одного системного контекста потребуется 1,5 * 9 +28 б*9 = 13,5 Мб + 252 байт ≈ 13,8 Мб.