Обзорная

Содержание

Слайд 2

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Preliminary program of lection topics

Lection#1: Математический сопроцессор.

Lection#2: Архитектура по фон Нейману.

Lection#3: Программная модель процессора.

Lection#4: Регистры.

Lection#5: Организация памяти.

Lection#6: Режимы адресации.

Lection#7: Модель памяти в реальном режиме.

Lection#8: Стек.

Lection#9: Дескрипторы и таблицы.

Lection#10: Страничное управление памятью.

Lection#11: Виртуальная память.

Lection#12: Кэш.

IMPORTANT!
Данная учебная программа является примерной и возможны некоторые отступления и дополнения.

Preliminary!!!

Слайд 3

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Outline

Двоичная система исчисления:
● идеология или как цифры попадают в компьютер;
● представление чисел в bin-форме.

Дополнительный код: представление об отрицательных числах.

Формат данных с плавающей точкой (FPU):
● одинарная точность (SP);
● двойная точность (DP);
● расширенная точность (EP).

Математический сопроцессор:
● основные понятия;
● схема взаимодействия CPU и FPU;
● программная модель FPU;
● регистры FPU.

Резюме к лекции и список используемой литературы

Слайд 4

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Двоичная система: полиномная запись чисел

Полиномная запись числа:
Zsys(p)= Cn-1*pn-1 + Cn-2* pn-2 +…+C0+…+C-m* p-m

Р = 16 – шестнадцатеричная; (hex)
P = 10 – десятичная; (dec)
P = 8 – восьмеричная; (oct)
Р = 2 – двоичная. (bin)

Например:
1. 777dec= 7·102 + 7 ·101 + 7 ·100
2. 777.32dec= 7·102 + 7 ·101 + 7 ·100 + 3 ·10-1 + 2 ·10-2
3. 101.01bin = 1·22 + 0 ·21 + 1 ·20 + 0 ·2-1 + 1 ·2-2

Слайд 5

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Системы счисления:в языках программирования

В Ада и VHDL такие числа указывают так: «16#5A3#».
В Си и языках схожего синтаксиса, например, в Java, используют префикс «0x». Например, «0x5A3».
В некоторых ассемблерах используют букву «h», которую ставят после числа. Например, «5A3h». При этом, если число начинается не с десятичной цифры, то для отличия от имён идентификаторов (например, констант) впереди ставится «0» (ноль): «0FFh» (25510).

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

Другие ассемблеры (AT&T, Motorola), а также Паскаль и некоторые версии Бейсика используют префикс «$».
Например, «$5A3».
Некоторые иные платформы, например ZX Spectrum в своих ассемблерах (MASM, TASM, ALASM, GENS и т. д.) использовали запись #5A3, обычно выровненную до одного или двух байт: #05A3.
Другие версии Бейсика используют для указания шестнадцатеричных цифр сочетание «&h». Например, «&h5A3».

В Unix-подобных ОС (и многих языках программирования, имеющих корни в Unix/linux) непечатные символы при выводе/вводе кодируются как 0xCC, где CC — hex-код символа.

Слайд 6

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Системы счисления: сводная таблица

Непозиционная двоично-десятичная (BCD) системы счисления
В BCD системе вес каждого разряда равен степени 10, как в десятичной системе, а каждая цифра i-го разряда кодируется 4-мя двоичными цифрами.
Восьмеричная СС (OCT) применяется реже.

BCD можно записывать и десятичными цифрами, например 1997, и двоичными - 0001 1001 1001 0111.
Каждое DEC можно представить в виде BCD, например 19DEC = 19BCD,
!но! их двоичные представления не равны:
19DEC = 10011BIN, а 19BCD = 1 1001BIN.
Не каждая запись из нулей и единиц имеет двоично-десятичный эквивалент.
Например:
11001001BIN = ? BCD = C9HEX = 201DEC,
т.к. десятичной цифры 12 = 1100 не существует!

Слайд 7

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Системы счисления: BCD

Преимущества

Упрощён вывод чисел на индикацию — вместо последовательного деления на 10 требуется просто вывести на индикацию каждый полубайт. Аналогично, проще ввод данных с цифровой клавиатуры.
Для дробных чисел (как с фиксированной, так и с плавающей запятой) при переводе в человекочитаемый десятичный формат и наоборот не теряется точность.
Упрощены умножение и деление на 10, а также округление.

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

Недостатки

Усложнены арифметические операции.
Требует больше памяти.
В двоично-десятичном коде BCD существуют запрещённые комбинации битов:

Запрещённые в 8421-BCD битовые комбинации
1010 1011 1100
1101 1110 1111

Запрещённые комбинации возникают обычно в результате операций сложения, т.к в BCD используются только 10 возможных комбинаций 4-х битового поля вместо 16.

Слайд 8

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Системы счисления: BCD

При сложении и вычитании BCD действуют следующие правила:

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

* **
0011 1001 0010 0111
+ 0100 1000 0101 0110
___________________
= 1000 0001 0111 1101 - Двоичная сумма
+ 0110 0110 - Коррекция ___________________
1000 0111 1000 0011

Пример операции сложения двоично-десятичных чисел:
Требуется: Найти число A = D + C,
где D = 3927, C = 4856
Решение: Представим числа D и C в двоично-десятичной форме:
D = 3927 = 0011 1001 0010 0111
C = 4856 = 0100 1000 0101 0110

'*' — тетрада, из которой был перенос в старшую тетраду; '**' — тетрада с запрещённой комбинацией битов

Слайд 9

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

МАШИННОЕ ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ

Микропроцессоры обрабатывают упорядоченные двоичные наборы. Минимальной единицей информации является один бит.

Далее следуют - тетрада (4 бита),
байт ( byte 8 бит),
двойное слово (DoubleWord 16 бит) или длинное (LongWord 16 бит) и учетверенное слова.
Младший бит обычно занимает крайнюю правую позицию.

Слайд 10

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

ЧИСЛА С ФИКСИРОВАННОЙ ТОЧКОЙ

Такие числа могут быть как целыми, так и дробными.
Точка мысленно фиксируется рядом с любым разрядом.
Если она располагается справа от младшего бита,
то число целое, если слева от старшего - число дробное.

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

Отрицательному числу соответствует единичный бит, а положительному - нулевой

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

Слайд 11

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Понятие дополнительного кода

00000111 = 7
11111010 =-5 (инверсия 00000101 = 5)
1 00000001
1
00000010 = 2

00001001 = 9 11110111 =-9
11110110 - инверсия 00001000 - инверсия
1 1
11110111 =-9 00001001 = 9

Проблемы двух нулей нет. +0 = 00000000, -0 = 11111111 + 1 = 00000000
(перенос из старшего бита не учитывается).
Сложение производится по обычным для неотрицательных чисел правилам.

Слайд 12

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

ДИАПАЗОН ЦЕЛЫХ ЧИСЕЛ С ФИКСИРОВАННОЙ ТОЧКОЙ

Беззнаковые числа: 0 <= D <= 2n – 1,
n - число разрядов
Байт: 0 - 255 (DEC)
00..0 - 11..1 (BIN)
0 - FF (HEX)
Слово: 0 - 65535
00..0 - 11..1
0 - FFFF
Числа со знаком:-2 n-1 <= D <= +2 n-1-1,
n - число разрядов.
Байт: -128 - +127 (DEC)
10..0 - 01..1 (BIN)
80 - 7F (HEX)
Слово: -32768-+32767
10..0 - 01..1
8000 - 7FFF

Слайд 13

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander Yurievich ТИПЫ ДАННЫХ

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

ТИПЫ ДАННЫХ

Слайд 14

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

ЧИСЛА С ПЛАВАЮЩЕЙ ТОЧКОЙ

Представление чисел в FPU:

Формат представления

Sign определяет знак: 0 – «+»; 1 – «-».

Exponent хранит смещенное значение двоичного порядка

Слайд 15

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

ЧИСЛА С ПЛАВАЮЩЕЙ ТОЧКОЙ

SP:

DP:

EP:

“0” ↔”+”
“1” ↔”-”

79

0

0

0

63

31

1Ненормализованная
мантисса

0Нормализованная
мантисса

Расчет характеристики:
q=p + displacement*

*displacement: SP= +127; DP= +1023; EP= +16383

Significant для нормализованного числа 1для денормализованного числа 0

Слайд 16

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Не-числа

Кроме вещественных чисел (конечных нормализованных и денормализованных, нулей и бесконечности) регистры сопроцессора могут содержать не-числа NaN (Not a Number) четырех видов:
-SNaN и +SNaN – порядок 111…111, мантисса 1,0ххх…ххх (ненулевая).
Эти сигнализирующие не-числа (signaling NaN) вызывают исключения сопроцессора, если с ними пытаются выполнить арифметические действия.
-QNaN и +QNaN – порядок 111…111, мантисса 1,1ххх…ххх (ненулевая).
Эти «тихие» не-числа (quiet NaN) не вызывают исключений при арифметических операциях.: Тихие не-числа можно применять, например, для ускорения отладки.

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

Не-числа могут определять такие случаи:

неопределённость (IND), возникает при комплексном результате (например, при вычислении квадратного корня из отрицательного числа) и в некоторых других случаях,
недействительное значение (qNaN, sNaN) - может использоваться компилятором (для предотвращения использования неинициализированных переменных) или отладчиком,
нуль - в формате с плавающей запятой, нуль также считается специальным значением.

Слайд 17

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Математический сопроцессор

Математический сопроцессор — сопроцессор для расширения командного множества CPU и обеспечивающий его функциональностью модуля операций с плавающей запятой.
“Географически” он может как представлять собой устройство в отдельном корпусе, так находиться вместе с CPU на одном кристалле.

Основным исполнительным устройством математического сопроцессора является устройство обработки чисел с плавающей запятой(FPU – floating point unit).
Как правило, он не может самостоятельно выполнять программный код и получает поток инструкций от CPU. Таким образом программы для CPU и FPU находятся в одном потоке инструкций.
Однако сопроцессор при этом обладает собственным микропрограммным автоматом, набором регистров и исполнительными устройствами, т.e. являясь функционально независимым.

Слайд 18

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Схема взаимодействия CPU и FPU

После получения команды и необходимых данных FPU начинает её выполнение.
Пока FPU выполняет команду, CPU выполняет программу дальше, параллельно с вычислениями FPU.
Если следующая команда также является командой FPU, процессор останавливается и ожидает завершения выполнения FPU предыдущей команды.

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

FIST I
FADD ST(3)
MOV AX,I

Здесь процессор, встретив команду FADD, должен ожидать завершения команды FIST.

НАПРИМЕР

Слайд 19

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

Схема взаимодействия CPU и FPU

Последовательность "занят - ожидание"
Инструкция FPU, который находится в состояние "занят - ожидание", может быть прервана. Если возникает действительное быстрое прерывание FIQ или прерывание IRQ, а также сброшен соответствующий бит в CSPR, то процессор отклоняет сопроцессорную инструкцию и сигнализирует об этом установкой высокого уровня на nCPI.
Сопроцессор, который может переходить в состояние "занят - ожидание", должен контролировать состояние nCPI для определения данного условия.
Если ядро отклоняет сопроцессорную инструкцию, то сопроцессор также отклоняет инструкцию и продолжает следить за конвейером процессора.

Слайд 20

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

В случае отсутствия сопроцессора

Прикладная программа использует инструкции FPU,но для этого ОС должна поддерживать эмуляцию сопроцессора.
Эмулятор сопроцессора – это программа-обработчик прерывания от сопроцессора или исключения #NM,которая должна «выловить» код операции сопроцессора, определить местонахождение данных и выполнить требуемые вычисления, использую целочисленную арифметику CPU.
Понятно, что эмуляция будет выполняться медленней, чем те же действия выполняемые настоящим FPU.
Для этого в регистре CR0 должны быть установлено сочетания флагов EM=1, MP=0.

Слайд 21

Physics Faculty, Electronic Devices & Systems, 7th semester,2011 Dr. Mokhovikov Alexander

Physics Faculty, Electronic Devices & Systems, 7th semester,2011 Dr. Mokhovikov Alexander

Yurievich

Принципы фон Неймана. Архитектура по фон Нейману. Что делает процессор в компьютере?

В следующей серии

Принцип двоичности: Для представления данных и команд используется двоичная система счисления

Принцип программного управления:
Программа состоит из набора команд, которые выполняются процессором друг за другом в определённой последовательности

Принцип однородности памяти: Как программы (команды), так и данные хранятся в одной и той же памяти (и кодируются в одной и той же системе счисления — чаще всего двоичной). Над командами можно выполнять такие же действия, как и над данными

Принцип адресуемости памяти: Структурно основная память состоит из пронумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка

Принцип последовательного программного управления: Все команды располагаются в памяти и выполняются последовательно, одна после завершения другой

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

Neumann J. and co. “Preliminary Discussion of the Logical Design of an Electronic Computing Instrument” — Institute for Advanced Study, Princeton, N. J., July 1946

Слайд 22

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Physics Faculty, Electronic Computing Devices & Systems, 7th semester,2011 Dr.Mokhovikov Alexander

Yurievich

В следующей серии

Программная модель FPU

Регистры математического сопроцессора

…и многое другое…

Слайд 23

Физический факультет, ЭВУ и системы, 7 семестр,2011 Доцент Моховиков А..Ю. Physics

Физический факультет, ЭВУ и системы, 7 семестр,2011 Доцент Моховиков А..Ю. Physics

Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. Mokhovikov

http://de.ifmo.ru/--books/electron/cpu-cod.htm
http://www.soft-tlt.ru/pocessora46.html
http://www.gaw.ru/html.cgi/txt/doc/micros/arm/arh_7dtmi/interfase_process.htm
http://www.arxitektura-computerov.ru/node/261
http://xpoint.ru/know-how/Articles/FloatingPointNumbers

Используемые Интернет-ресурсы: