Архитектура ЭВМ и микроархитектура процессора Под архитектурой ЭВМ понимают абстрактное представление вычислительной системы на структурном, схемотехническом и логическом уровнях. 1. Архитектура ЭВМ включает: 1.1. Структурную схему вычислительной системы Средства и способы доступа к элементам структурной схемы Организацию и разрядность интерфейсов вычислительной системы 1.4. Архитектуру и микроархитектуру процессора Организацию внутренней (ПЗУ, ОЗУ) и внешней памяти.
Архитектура ЭВМ и микроархитектура процессора 2. Архитектура процессора включает: 2.1. Набор и доступность регистров (программную модель процессора) 2.2. Режимы работы и логическую организацию памяти в них Способы представления и форматы данных Набор и форматы машинных команд Обработку прерываний. Микроархитектура процессора – это блочная схема процессора, соответствующая схемотехнической реализации архитектуры процессора.
Поколение Первый показ модели процессора Название характерной для поколения процессорной линейки Микро- архитектура Процесс (нм) 04004, 4040, 8008, 8080, VI.1978i8086 (i8088), i II.1982i X.1985i80386 (DX,SX) ,1000 4IV.1989i80486 (DX,DX2,DX4,SX,SX2) , 800, 600 5III.1993Pentium (P5,P54C,P54CS)586800, 600, 350 6XI.1995Pentium Pro, II, IIIP6600, 350, 250, 180, 130 7XI.2000Pentium 4NetBurst180, 130 8II.2004Pentium 4 Prescott, Pentium DNetBurst90, 65 9VII.2006Core 2 (Duo, Quard)Conroe, Penryn65, 45 10XI.2008Core i5, i7Nehalem, Westmere45, Sandy Bridge32, , , ,
Иерархия памяти [3] Микроархитектура Nehalem L0: L1: L2: L3: L4: L5: L6: Регистры (4 ядра) 4 кэша L1 (32+32 КБ) 4 кэша L2 (256 КБ) Разделяемый кэш L3 (8 МБ) Память ( используется встроенный контроллер памяти) Локальныe устройства Сетевые устройства МеньшеБыстрееДорожеДоступнееКритичнее БольшеМедленнееДешевлеУдаленнееМенеенеобходимы
Программная модель процессора [1, 2] Архитектура IA-32 до процессора Pentium 4 Программная модель процессора в архитектуре IA-32 включает следующий набор ресурсов: 1.Адресное пространство памяти до Б = 64 ГБ ( Б =4 ГБ для Pentium II). 2. Набор регистров процессора и сопроцессора. 3. Программный стек. 4. Адресное пространство портов ввода-вывода. 5. Счетчики мониторинга производительности.
Аппаратный интерфейс процессора и памяти использует для передачи данных физические адреса. Физический адрес – двоичный код ячейки памяти, устанавливаемый на шине адреса. n проводников (линий) в шине данных позволяют обращаться к 2 n ячейкам памяти. n – разрядность адреса (шины адреса) Модель памяти, в которой адреса ячеек памяти задаются последовательно от 0 до 2 n-1, называется линейной (flat, плоской, сплошной).
Адресное пространство памяти Pentium 4 Стек ss:esp (64ГБ) ( (4 ГБ) Pentium) Дисциплина LIFO – Last Input First Output
Логическая адресация осуществляется с использованием блоков смежных адресов, называемые сегментами. В пределах сегмента можно использовать линейную адресацию, начиная с 0 относительно начала сегмента. Такие адреса называются смещением (offset). Адрес начала сегмента называется базой сегмента. Для сегмента можно задавать целевое использование - тип сегмента: различают сегменты кода, стека и данных.
Набор регистров Pentium 4. Регистры общего назначения. Предназначены для хранения данных и адресов. EAX/AX/AH/AL – accumulator register для хранения промежуточных данных EBX/BX/BH/BL – base register для хранения базового адреса объекта ECX/CX/CH/CL – count register для организации циклов EDX/DX/DH/DL – data register для хранения промежуточных данных ESI/SI – source index register для текущего адреса элемента в цепочке-источнике EDI/DI – destination index register для текущего адреса в цепочке-приемнике ESP/SP – stack pointer register - указатель вершины стека в текущем сегменте стека EBP/BP – base pointer register для доступа к данным в стеке EAX AX ALAH Для IA-64 добавляется 64-битные регистры RAX, RBX,…
Сегментные регистры Аппаратная поддержка сегментной организации вычислений. 3 сегмента программы: код (команды), данные, стек. CS – code segment register – адрес сегмента с машинными командами DS – data segment register – адрес сегмента данных ES, FS, GS – extention data segment registers – адреса дополнительных сегментов данных SS – stack segment register – адрес сегмента стека.
Регистры состояния и управления EIP/IP – instruction pointer register – адрес следующей подлежащей выполнению команде (смещение относительно адреса сегмента кода в CS) EFLAGS/FLAGS – flag register – регистр флагов состояния, управления и системных флагов. Для защищенного режима работы процессора используются системные регистры: 5 регистров управления CR0 – command register 1 – системные флаги CR1 – зарезервирован CR2 – страничная организация памяти CR3 – регистр каталога страниц CR4 – включение свойств процессора
4 регистра системных адресов: GDTR (48) - Global Descriptor Table register – предел (размер таблицы) (0-15) и базовый адрес GDT LDTR (16) – Local Descriptor Table register – селектор (указатель) дескриптора LDT в GDT IDTR (48) – Interrupt Descriptor Table register – – предел (размер таблицы) (0-15) и базовый адрес IDT TR (16) – Task register – селектор (указатель) дескриптора TSS (task segment status) в GDT для переключения задач 8 регистров отладки DR0 – DR7 (32) DR0 – DR3 – для реализации точек останова DR4, DR5 - зарезервированы DR6 состояние отладки (причина останова) DR7 управления отладкой (условия останова)
Регистры сопроцессора 8 регистров стека сопроцессора R0-R7 (80) мантисса, – порядок, 79 – знак 3 служебных регистра (16): SWR – status word register – вершина стека и состояние сопроцессора CWR – control word register – управление режимами работы сопроцессора TWR – tags word register – состояние регистров стека R0-R7 (по 2 бита на регистр) 2 регистра указателей (48) DPR – data point register – адрес операнда команды, вызвавшей исключение IPR –instruction point register - адрес команды, вызвавшей исключение
Регистры целочисленного MMX-расширения MultiMedia eXtensions начиная с Pentium MMX MMX реализует целочисленные SIMD (Single Instruction Multiple Data) вычисления При выполнении целочисленных MMX-операций сопроцессор переводится в специальный режим, в котором разряды мантиссы (0-63) регистров R0-R7 (80) используются в качестве регистров RMMX0-RMMX7 (64). Целочисленные регистры MMX отображены на регистры сопроцессора. Биты устанавливаются в 1 для предотвращения исключений.
Регистры XMM-расширения eXtended MultiMedia начиная с Pentium III XMM-вычисления реализуются модулем SSE (Streaming SIMD Extentions). В Pentium 4 добавлен модуль SSE2. 8 регистров для данных с плавающей точкой: XMM0 – XMM7 в каждый регистр помещается 4 числа с плавающей точкой в коротком формате, упакованных в формат 32 бита (XMM-формат) 0-23 – мантисса, – порядок, 31 - знак 1 регистр управления/состояния: MXCSR – Multimedia eXtentions Control and Status register (32)