Понятие архитектуры ЭВМ Архитектура ЭВМ как распределение функций, реализуемых системой, между её уровнями
Уровень 5Языка высокого уровня Трансляция (компилятор) Уровень 4Языка ассемблера Трансляция (ассемблер) Уровень 3Операционной системы Трансляция (ассемблер) Уровень 2Архитектуры команд Интерпретация (микропрограмма) или непосредственное выполнение Уровень 1Микропрограммный Аппаратное обеспечение Уровень 0Цифровой логический Вентили: (a) Not (b)NotAND (c)NotOR
Уровень 5Языка высокого уровня Трансляция (компилятор) Уровень 4Языка ассемблера Трансляция (ассемблер) Уровень 3Операционной системы Трансляция (ассемблер) Уровень 2Архитектуры команд Интерпретация (микропрограмма) или непосредственное выполнение Уровень 1Микропрограммный Аппаратное обеспечение Уровень 0Цифровой логический Базовые вентили
Уровень 5Языка высокого уровня Трансляция (компилятор) Уровень 4Языка ассемблера Трансляция (ассемблер) Уровень 3Операционной системы Трансляция (ассемблер) Уровень 2Архитектуры команд Интерпретация (микропрограмма) или непосредственное выполнение Уровень 1Микропрограммный Аппаратное обеспечение Уровень 0Цифровой логический Реализация суммы по модулю два
Уровень 5Языка высокого уровня Трансляция (компилятор) Уровень 4Языка ассемблера Трансляция (ассемблер) Уровень 3Операционной системы Трансляция (ассемблер) Уровень 2Архитектуры команд Интерпретация (микропрограмма) или непосредственное выполнение Уровень 1Микропрограммный Аппаратное обеспечение Уровень 0Цифровой логический Реализация 1-битного сумматора
Уровень 5Языка высокого уровня Трансляция (компилятор) Уровень 4Языка ассемблера Трансляция (ассемблер) Уровень 3Операционной системы Трансляция (ассемблер) Уровень 2Архитектуры команд Интерпретация (микропрограмма) или непосредственное выполнение Уровень 1Микропрограммный Аппаратное обеспечение Уровень 0Цифровой логический Схема полного 1-битового сумматора
Уровень 5Языка высокого уровня Трансляция (компилятор) Уровень 4Языка ассемблера Трансляция (ассемблер) Уровень 3Операционной системы Трансляция (ассемблер) Уровень 2Архитектуры команд Интерпретация (микропрограмма) или непосредственное выполнение Уровень 1Микропрограммный Аппаратное обеспечение Уровень 0Цифровой логический Определяется: совокупность регистров, формирующих локальную память организация АЛУ тракт данных
Уровень 5Языка высокого уровня Трансляция (компилятор) Уровень 4Языка ассемблера Трансляция (ассемблер) Уровень 3Операционной системы Трансляция (ассемблер) Уровень 2Архитектуры команд Интерпретация (микропрограмма) или непосредственное выполнение Уровень 1Микропрограммный Аппаратное обеспечение Уровень 0Цифровой логический CISC – Complete Instruction Set Computer IBM/360INTEL(Pentium,Pentium Pro) RISC – Reduced Instruction Set Computer Hewlett-Packard (Pa-RISC)Sun Microsystems (SPARC) Digital Equipment (Alpha)Silicon Graphics (MIPS)
Уровень 5Языка высокого уровня Трансляция (компилятор) Уровень 4Языка ассемблера Трансляция (ассемблер) Уровень 3Операционной системы Трансляция (ассемблер) Уровень 2Архитектуры команд Интерпретация (микропрограмма) или непосредственное выполнение Уровень 1Микропрограммный Аппаратное обеспечение Уровень 0Цифровой логический Управление логическими ресурсами: файлами, виртуальной памятью, внешней и оперативной памятью и т.д.
Уровень 5Языка высокого уровня Трансляция (компилятор) Уровень 4Языка ассемблера Трансляция (ассемблер) Уровень 3Операционной системы Трансляция (ассемблер) Уровень 2Архитектуры команд Интерпретация (микропрограмма) или непосредственное выполнение Уровень 1Микропрограммный Аппаратное обеспечение Уровень 0Цифровой логический
Семейство процессоров INTEL Год выпуска Частота (MHz) К-во транзисторов (тыс) Физическая память 64К1М 16М Адресная шина Тип данных (бит) 88, : сегментирование памяти, совместимость «назад»80286: Реальный + защищенный режимы, возможности = IBM370
Семейство процессоров INTEL i386i486 Pentium P ProP II Год выпуска Частота (MHz) К-во транзисторов (тыс) Физическая память 4G4G64G Адресная шина 3236 Тип данных (бит) 8,16,32 i386: виртуальный 8086, УВВ параллельно с ЦП, очередь командi486: скалярный 5 ступенчатый конвейер, КЭШ 8 КбP I: 2 конвейера; P Pro: 3 конвейера (суперскалярные)
Процессор Разъемы для плат расширения ISA Разъемы для плат расширения AGP Разъем для модуля памяти Модули основной и КЭШ памяти 2 уровня
Дополнительный модуль памяти
Аккумулятор Модули BIOS и энергонезависимой памяти
Основные узлы и части
Внутренняя магистраль ЦП Flags КЭШ память 1 уровня УУ IP Шина Предсказание переходов Внутренняя структура процессора
Пять этапов обработки команды процессором S1: Помещение в очередь. Увеличение IP.S2: Выделение кода и формирование адреса.S3: Выбор операндов из памяти.S4: Выполнение вычислений. Формирование флагов.S5: Запись результатов.
Схема двухконвейерного процессора Pentium U-конвейер выполняет произвольные команды V-конвейер - только простые команды с целыми числами. Выполнение программ с целыми числами производится почти в 2 раза быстрее чем на 486 с той же тактовой частотой. Четыре конвейера – не эффективно: требуется громоздкое аппаратное обеспечение.
Функциональная схема суперскалярного процессора Один конвейер с несколькими функциональными блоками
Регистры общего назначения eax ax Аккумулятор ahal ebx bx Базы bhbl ecx cx Счетчик chcl edx dx Данных dhdl Регистры данных Для проведения арифметических операций Для манипуляций с адресами Для организации выполнения циклов Для выполнения операций умножения и деления
Регистры общего назначения ebp bp База кадра стека esp sp Указатель стека esi si Индекс источника edi di Индекс приемника Индекс-регистры: содержат смещение данных и команд Для указания смещения вершины стека Для манипуляций с адресами и адреса строки назначения Для манипуляций с адресами и определения местоположения переменных, передаваемых через стек Для манипуляций с адресами и адреса исходной строки Смещение = расстояние переменной, метки или команды от базисной точки сегмента.
Сегментные регистры cs Сегмент команд ss Сегмент стека ds Сегмент данных es Дополнительные сегменты данных fs 150 gs 150 Содержат адрес «базисной» точки для каждого из сегментов
Регистры управления EIP IP Указатель команд Eflags Flags Регистр флагов Содержит смещение следующей команды относительно базисной точки сегмента команд Значения битов характеризуют статус текущего состояния процессора или результата выполненной арифметической операции
Флаги состояния бита Мнемо ника ФлагСодержание и назначение 0cfCarry Flag 1 - арифметическая операция произвела перенос из старшего бита результата. Старшим является 7-й, 15-й или 31-й бит в зависимости от размерности операнда; 0 - переноса не было. 2pfParity Flag Этот флаг - только для 8 младших разрядов операнда любого размера. 1, когда 8 младших разрядов результата содержат четное число единиц; 0, когда 8 младших разрядов результата содержат нечетное число единиц. 4af Auxiliary carry Flag Только для команд, работающих с ВСD-числами: 1- в результате операции сложения был произведен перенос из разряда 3 в старший разряд или при вычитании был заем в разряд 3 младшей тетрады из значения в старшей тетраде; 0-переносов не было. 6zfZero Flag 1 - результат нулевой; 0 - результат ненулевой. 7sfSign Flag Отражает состояние старшего бита результата (биты 7, 15 или 31 для 8, 16 или 32-разрядных операндов соответственно). 11of Overflow Flag Фиксирует факт потери значащего бита при арифметических операциях. 1 - произошел перенос(заем) из(в) старшего или знакового бита; 0 – произошел перенос(заем) из(в) старшего и знакового бита или переноса не было. 12 iopl Input/Output Privilege Level Используется в защищенном режиме работы микропроцессора для контроля доступа к командам ввода-вывода в зависимости от уровня привилегий задачи ntNested Task Используется в защищенном режиме работы микропроцессора для фиксации того факта, что одна задача вложена в другую.
Системные флаги бита Мнемо ника ФлагСодержание и назначение 8tfTrace Flag Предназначен для организации пошаговой работы микропроцессора: 1- микропроцессор генерирует прерывание с номером 1 после выполнения каждой машинной команды. Может использоваться при отладке программ, в частности отладчиками; 0 - обычная работа 9if Interrupt enable Flag Предназначен для маскирования аппаратных прерываний (прерываний по входу INTR): 1- аппаратные прерывания разрешены; 0- аппаратные прерывания запрещены 16rf Resume Flag Используется при обработке прерываний от регистров отладки 17vm Virtual 8086 Mode Признак работы микропроцессора в режиме виртуального 8086: 1 - процессор работает в режиме виртуального 8086; 0 - процессор работает в реальном или защищенном режиме. 18ac Alignment Check Предназначен для разрешения контроля выравнивания при обращениях к памяти. Флаг управления 10 df Directory Flag Определяет направление поэлементной обработки в цепочечных командах: 0 - от начала строки к концу; 1 - от конца строки к ее началу.
Пример: xorax,ax moval,64 addal,64 xorax,ax moval,128 addal,128 xorax,ax moval,192 addal, cf=0 pf=0 zf=0 sf =1 of= cf=1 pf=1 zf=1 sf=0 of= cf=1 pf=0 zf=0 sf=1 of=0
Формирование линейного адреса 16-разрядные регистры могут содержать адреса от до ffff 16, т.е. от 0 до 64К 20-разрядная адресная шина позволяет адресовать fffff 16 байт, т.е. 1М Для получения возможности адресовать всю память необходимо использовать адресные пары, например: CS:IP или DS:имя_переменной Сегментные регистры содержат номера параграфов (четыре старшие цифры) адреса базисной точки сегмента
Формирование линейного адреса