Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Универсальные и управляющие ЭВМСтр 1 из 17Следующая ⇒
Содержание История развития и классификация ЭВМ (Лекция 1). 4 Понятие архитектуры ЭВМ.................................................................... 4 Классификация ЭВМ.............................................................................. 4 История развития ЭВМ........................................................................... 4 Универсальные и управляющие ЭВМ................................................... 6 Программное обеспечение..................................................................... 7 Архитектура системных плат (Лекция 2)......................... 8 Шины ввода-вывода (XT, ISA, EISA, MCA, VESA, PCI)...................... 9 Сравнение и характеристики шин....................................................... 11 Основные микросхемы IBM PC........................................................... 13 BIOS........................................................................................................ 14 Микропроцессоры (Лекция 3)................................................. 16 Классификация процессоров.............................................................. 16 Общая организация современного микропроцессора..................... 17 Схема работы центнрального процессора......................................... 20 Исполнение процессорами инструкций x86 и x64 (Лекция 4) 26 Кэш инструкций.................................................................................... 26 Предсказание переходов...................................................................... 27 Исполнение инструкций...................................................................... 29 Процессоры Intel Pentium III, Pentium M и Core Duo. ..................... 30 Внеочередное исполнение операций, функциональные устройства 33 Система прерываний (Лекция 5)........................................... 38 Организация обработки прерываний в ЭВМ...................................... 38 Обработка прерываний в персональной ЭВМ.................................... 42 Память (Лекция 6)........................................................................... 45 Определения........................................................................................... 45 Система управления памятью............................................................ 49 Память. Микросхемы SDRAM (Лекция 7)............................ 54 Организация и принципы работы........................................................ 54 Физическая организация..................................................................... 57 Организация модулей памяти SDRAM.............................................. 58 Микросхема SPD................................................................................... 60 Тайминги памяти.................................................................................. 60 Схема доступа к данным микросхемы SDRAM. ............................. 60 Соотношения между таймингами. ................................................. 63 Схемы таймингов. .............................................................................. 65 Задержки командного интерфейса. ................................................. 65 DDR/DDR2 SDRAM: Отличия от SDR SDRAM................................... 66 Накопители информации. (Лекция 8)................................ 68 Эволюция носителей информации..................................................... 68 Управление распределением диска..................................................... 68 Таблицы размещения файлов.............................................................. 69 Структура таблицы разделов............................................................... 72 Периферийные устройства (Лекция 9).............................. 73 Kлaвиaтуpa и управление клавиатурой............................................. 73 Сводная таблица скан-кодов.............................................................. 74 Cвoднaя тaблицa кoдoв ASCII............................................................. 75 Сводная таблица расширенных кодов............................................... 79 Визуализация данных (Лекция 10)....................................... 81 Устройство видеомонитора................................................................. 81 Эволюция видеоадаптеров.................................................................. 82 Основа архитектуры видеоадаптеров................................................ 82 Ввод/вывод. (Лекция 11)............................................................... 86 Особенности PIO и DMA...................................................................... 88 Доступ к последовательному порту................................................... 91 Программирование микросхемы UART 8250..................................... 92 Инициализация последовательного порта....................................... 93 Установка текущего коммуникационного порта............................ 94 Инициализация и управление модемом............................................ 94 Печатающие устройства. Принтеры. (Лекция 12)...... 96 Управление работой принтера............................................................. 99 Посылка данных на принтер................................................................ 99 Параллельные вычислительные процессы и системы (Лекция 13)............................................................................................................. 100 Виды параллелизма............................................................................ 100 Реализация параллельных систем.................................................... 101 Нейровычислительные системы........................................................ 103 Сложности использования параллельных систем......................... 105 Программирование параллельных систем....................................... 106 Сети ЭВМ (Лекция 14).................................................................... 109 Организация сети................................................................................ 109 Характеристики стеков коммуникационных протоколов............ 110 Стек TCP/IP........................................................................................... 111 Типовой состав оборудования локальной сети (Лекция 15).................................................................................................................. 115 Кабельная система............................................................................. 115 Сетевые адаптеры................................................................................ 116 Повторители и концентраторы.......................................................... 117 Мосты и коммутаторы........................................................................ 118 Маршрутизаторы................................................................................. 119 Список литературы.................................................................... 121 Список тем рефератов по курсу «Архитектура ЭВМ» 122 Список вопросов к экзамену по предмету «Архитектура ЭВМ»................................................................................................................... 123 Понятие архитектуры ЭВМ Под архитектурой ЭВМ можно понимать совокупность таких компонент, как: · Внутреннее аппаратное обеспечение – комплект оборудования, технологии производства; · Программное обеспечение – операционная система, файловая система, система команд; · Внешнее аппаратное обеспечение – периферийные устройства, сети. Классификация ЭВМ Как и любые другие приборы, ЭВМ можно классифицировать по используемой элементарной базе или времени их выпуска: · Электромеханические устройства (конец 19 века – 1930-е годы); · Электронно-вакуумные приборы (1940-е – 1950-е); · Полупроводниковые транзисторы и диоды (1950-е, начало 1960-х); · Интегральные схемы, БИС, СБИС (с 1960-х по настоящее время) По производительности ЭВМ можно разделить на большие ЭВМ (mainframe-основной блок), мини - и микро-ЭВМ. Отдельным подклассом микро-ЭВМ можно выделить класс персональных ЭВМ. ПЭВМ производятся наиболее массово, стоят дешевле других машин, справляются с любыми возникающими в быту и в производстве задачами, полностью обеспечены системными и прикладными программами. Большие ЭВМ используются в промышленности и науке для высоконадежного управления и высокопроизводительной обработки огромных объемов информации. По области применения ЭВМ можно классифицировать на универсальные и управляющие. Универсальные машины спосбны найти применение почти в любой области. Управляющие ЭВМ необходимы для контроля и управления каким-то конкретным агрегатом, прибором, устройством. По функциональной принадлежности в системе из нескольких машин ЭВМ можно разделить на рабочие станции и серверы. История развития ЭВМ Первенство в этом вопросе чаще всего отдаётся такому устройству, как арифмометр. Промышленное производство арифмометров (3 операции умножения 8-значных числа в минуту) началось в 1822 году. В 1874 году Вильгод Однер, швед по национальности, живший в России, начал работать над арифмометром, а в 1890 году налаживает их массовый выпуск. В первой четверти 20-го века счетные аппараты Однера под разными названиями выпускались во всем мире и только " российский парк" подобных аппаратов составлял свыше 22 тысячи единиц.
В 1924г. компания Computing Tabulating Recording (CTR), работающая в области системного анализа в бизнесе с использованием статистических данных, обрабатываемых на электромеханических счетно-перфорационных машинах, была переименована в International Business Machines (IBM). Этим было подчеркнуто основное направление деятельности компании и назначение выпускаемых ею средств вычислительной техники (табуляторов и других счетно-перфорационных машин). Когда в 1935г. правительству США понадобились системы автоматизированного учета занятости, способные обрабатывать данные о 26 млн. человек, IBM была готова исполнить этот заказ в кратчайшие сроки. В начале 40-х годов в лабораториях IBM совместно с учеными Гарвардского университета была начата разработка одной из первых электромеханических вычислительных машин. Она была собрана в 1944 г. и получила название " Марк-1". В 1953г. была выпущена IBM 701, построенная на электронно-вакуумных лампах, с быстродействием до 17 тыс. оп./с. В 1955г. был представлен IBM 705, как первая коммерческая машина, имеющая арифметику с плавающей точкой. В 1959г. IBM выпустила IBM 1401 – коммерческую машину на транзисторах. Она была поставлена более чем в 10 тысячах экземпляров. В том же году IBM создала свой первый мэйнфрейм модели IBM 7090, полностью выполненный на базе транзисторов, с быстродействием 229 тыс. оп./c, а в 1961г. разработала модель IBM 7030 для ядерной лаборатории США в Лос-Аламосе. В апреле 1964г. IBM анонсировала System/360 – первое семейство универсальных программно-совместимых компьютеров и периферийного оборудования. Элементной базой семейства 360 были выбраны гибридные микросхемы, благодаря чему новые модели стали считать машинами третьего поколения. В 1971г. IBM представила две модели семейства System/370 (370/135 и 370/195), преемника System/360 на новой технической базе – монолитных интегральных схемах. В 1980г., переживая финансовый кризис, руководство компании приняло решение о разработке недорогого персонального компьютера (ПК), и 13 августа следующего года представило IBM 150 Personal Computer, машину, вошедшую в историю как IBM PC. В IBM PC были использованы разработки других фирм: микропроцессор i8088 корпорации Intel, операционная система DOS корпорации Microsoft. Хотя архитектуру ПК сейчас называют Wintel (Windows + Intel), все равно IBM PC стала фактически мировым стандартом. Объявленная базовая цена составляла $1565. Официальная презентация IBM PC состоялась 12 сентября 1981 г. в Нью-Йорке. Продажи были начаты в октябре 1981 г., и уже к концу года было продано более 35 тыс. машин, а в течение первого года выпуска – 136 тыс. Пять лет спустя выпуск ПК достиг 3 млн. штук. За последние 15 лет в США было куплено ПК больше, чем автомобилей. Надо отметить, что за пять лет до появления IBM РС первый ПК был создан основателями фирмы Apple Computer. Однако на становлении феномена персонального компьютера в мире сыграли роль прежде всего производственная мощь корпорации IBM и грамотная научно-техническая и маркетинговая политика (массовый выпуск программного обеспечения). Корпорация IBM является лидером по числу полученных и внедренных патентов. В 1997г. она получила 1724 патента США, из которых 550 связаны с разработкой программ, а 250 – с сетевыми технологиями. Исследовательский центр IBM предложил следующие наиболее важные решения: · дисковые накопители; · динамическую оперативную память (30 лет назад был зарегистрирован патент IBM); · реляционные СУБД (System R в конце 70-х годов, источник языка SQL, ставшего стандартом, и СУБД DB2, на которую продано 10 тыс. лицензий; · RISC-процессоры (первый создан 20 лет назад, а недавно объявлен выпуск нового микропроцессора POWER PC с тактовой частотой 2 ГГц); · технологии микроэлектроники. Программное обеспечение Любые ЭВМ необходимо снабдить программами. Управляющие ЭВМ работают по специальным программам, алгоритм которых предусматривает решение конкретной задачи. Большие универсальные ЭВМ решают узкоспециальные задачи, поэтому снабжаются специфичным программным обеспечением. Обычно для каждого класса ЭВМ разрабатывались свои ОС. Наиболее распространенными ОС для мэйнфреймов IBM семейства System/360 в своё время являлись DOS/360 для малых машин и OS/360 для больших машин. Для современных мэйнфреймов серий S/390, z900 и RS/6000, которые обслуживают сети, в настоящее время ведутся работы по модификации версий ОС Unix и Linux. Для микро-ЭВМ наиболее известны операционные системы – MS-DOS, Linux, MacOS и, конечно же, Windows. Одними из первых программ для микро-ЭВМ были языки программирования высокого уровня (Бейсик), игры, текстовые редакторы и табличные процессоры. Наличие удобного и разнообразного программного обеспечения сделало этот класс ЭВМ популярным. Основные микросхемы IBM PC Все интегральные микросхемы состоят из огромного множества микроскопических полупроводниковых транзисторов и других элементов радио цепей, которые составляют сложные схемы внутри корпуса микросхемы. Базовой схемой всех упраляющих микросхем явлеятся схема RS – триггера, реализованного с помощью логических элементов И - НЕ или ИЛИ - НЕ с соответствующими обратными связями и позволяет хранить один бит цифровой информации. При подаче на вход R уровня лог. «1» триггер принимает состояние логического «0», а при подаче управляющего сигнала «1» на вход S - состояние «1». Следует отметить также, что если до подачи управляющего сигнала, например, на вход R, триггер находился в состоянии логического «0», его состояние не изменится и после подачи сигнала «1» на вход R. Если на обоих входах триггера имеются уровни логического «0» – это состояние соответствует режиму хранения, и триггер сохраняет предыдущее состояние. При подаче на входы R и S одновременно уровня «1» триггер будет находиться в неопределенном состоянии, поэтому такое сочетание сигналов R и S называется запрещенной комбинацией управляющих. Главной микросхемой PC является микропроцессор. Рядом с микропроцессором предусмотрено место для микросхемы 80X87, числового сопроцессора, или процессора числовых данных, с его специальными возможностями по выполнению очень быстрых (и с повышенной точностью) вычислений над числами с плавающей точкой. Среди специализированных микросхем можно выделить генератор тактовых (или синхронизирующих) сигналов. В IBM PC АТ это микросхема 88248. В микросхеме генератора тактовых сигналов используется кварцевый кристалл в качестве точной основы для синхронизации. Генератор тактовых сигналов понижает частоту колебаний кристалла до частоты, требующейся компьютеру, и преобразует их в форму, приемлемую для использования другими компонентами схемы. С генератором тактовых сигналов близко связана микросхема программируемого таймера, идентифицируемая номером 8253. Программируемый таймер может порождать другие сигналы синхронизации. Некоторые компоненты компьютера могут обмениваться данными непосредственно через компьютерную память, без участия микропроцессора. Такой процесс называется прямым доступом к памяти (Bus Mastering). Имеется специальная микросхема, предназначенная для управления этим процессом, которая называется контроллером прямого доступа к памяти (номер микросхемы – 8237). Прерывания контролируются специальной микросхемой 8259. В компьютерах прерывания поступают с различной степенью важности, и одной из задач контроллера прерываний является отслеживания их в порядке приоритетов. К другим основным микросхемам относится микросхема программируемого интерфейса периферийных устройств (номер – 8255). Эта микросхема следит за работой некоторых из более простых периферийных устройств компьютера. Однако большинство периферийных устройств компьютера являются слишком сложными для того, чтобы они могли регулироваться простой обычной схемой. Для управления такими устройствами (дисковые накопители, монитор и т.д.) используются специальные контроллеры. BIOS Одной из главных микросхем системной платы является микросхема BIOS – это основная система ввода/вывода (Basic Input/Output System), «зашитая» в ПЗУ (отсюда название ROM – read only memory BIOS). Она представляет собой набор программ проверки и обслуживания аппаратуры компьютера, и исполняет роль посредника между операционной системой и аппаратурой. BIOS получает управление при включении и «сбросе» системной платы, тестирует саму плату и основные блоки компьютера (видеоадаптер, клавиатуру, контроллеры дисков и портов ввода/вывода), настраивает Chipset платы и загружает внешнюю операционную систему. При работе под DOS/Windows BIOS управляет основными устройствами, при работе под OS/2, UNIX, WinNT BIOS практически не используется, выполняя лишь начальную проверку и настройку. Обычно на системной плате установлено только ПЗУ с системным (Main, System) BIOS, отвечающим за саму плату и контроллеры FDD, HDD, портов и клавиатуры; в системный BIOS практически всегда входит System Setup – программа настройки системы. Видеоадаптеры и контроллеры HDD с интерфейсом ST-506 (MFM) и SCSI имеют собственные BIOS в отдельных ПЗУ; их также могут иметь другие платы – интеллектуальные контроллеры дисков и портов, сетевые карты и т.п. Обычно BIOS для современных системных плат разрабатывается одной из специализирующихся на этом фирм, однако некоторые производители плат сами разрабатывают BIOS'ы для них. Иногда для одной и той же платы имеются версии BIOS от разных производителей – в этом случае допускается копировать «прошивки» или заменять микросхемы ПЗУ; в общем же случае каждая версия BIOS привязана к конкретной модели платы. Раньше BIOS «зашивался» в однократно программируемые ПЗУ либо в ПЗУ с ультрафиолетовым стиранием; сейчас в основном выпускаются платы с электрически перепрограммируемыми ПЗУ (Flash ROM), которые допускают перешивку BIOS средствами самой платы. Это позволяет исправлять заводские ошибки в BIOS, изменять заводские умолчания, программировать собственные экранные заставки и т.п. Тип микросхемы ПЗУ обычно можно определить по маркировке: 27xxxx – обычное ПЗУ, 28xxxx или 29xxxx – flash. Если на корпусе микросхемы 27xxxx есть прозрачное окно – это ПЗУ с ультрафиолетовым стиранием, которое можно «перешить» программатором; если окна нет – это однократно программируемое ПЗУ, которое в общем случае можно лишь заменить на другое. Микропроцессоры (Лекция 3) Главной микросхемой ПК является микропроцессор – интегральная схема, выполняющая функции центрального основного вычисляющего элемента ЭВМ. Выполняемые микропроцессором команды предусматривают, обычно, арифметические действия, логические операции, передачу управления и перемещение данных между регистрами, оперативной памятью и портами ввода-вывода. С внешними устройствами микропроцессор сообщается благодаря своим шинам адреса, данных и управления, выведенным на специальные контакты корпуса микросхемы. Классификация процессоров По аппаратной реализации: 1. Однокристальные МП (одна БИС) 2. Многокристальные (несколько БИС) 3. Секционные (несколько БИС с возможностью аппаратного наращивания разрядности процессора) По архитектуре системы команд: Двумя основными архитектурами набора команд, используемыми компьютерной промышленностью на современном этапе развития вычислительной техники, являются архитектуры CISC (CISC – Complete Instruction Set Computer) и RISC (RISC – Reduced Instruction Set Computer). Для CISC-процессоров характерно: сравнительно небольшое число регистров общего назначения; большое количество машинных команд, некоторые из которых нагружены аналогично операторам высокоуровневых языков программирования и выполняются за много тактов; большое количество методов адресации; большое количество форматов команд различной разрядности; преобладание двухадресного формата команд; наличие команд обработки типа регистр-память.(IBM 360, IBM ES/9000, Intel x86 и модели архитектуры Pentium и AMD). Система команд RISC-процессоров разрабатывалась таким образом, чтобы выполнение любой команды занимало небольшое количество машинных тактов (предпочтительно один машинный такт). Сама логика выполнения команд с целью повышения производительности ориентировалась на аппаратную, а не на микропрограммную реализацию. Чтобы упростить логику декодирования команд использовались команды фиксированной длины и фиксированного формата. В типовых RISC-процессорах реализуются 32 или большее число регистров по сравнению с 8-16 регистрами в CISC-архитектурах, что позволяет большему объему данных храниться в регистрах на процессорном кристалле большее время и упрощает работу компилятора по распределению регистров под переменные. В разработках компании Intel (Pentium P54C, P6), а также ее конкурентов (AMD R5, Cyrix M1, NexGen Nx586 и др.) широко используются идеи, реализованные в RISC-микропроцессорах, так что многие различия между CISC и RISC стираются. Архитектура и система команд процессоров цифровой обработки сигналов (Digital Signal Processor) ориентирована на быстрое выполнение программ, реализующих определенный класс алгоритмов (цифровая фильтрация, свертка, корреляция, преобразование Фурье, адаптивная фильтрация, обработка изображений, анализ и синтез речи). Ключевые особенности: операция умножения с накоплением, выполняемая за один процессорный цикл, конвейерное выполнение программ, раздельные память программы и память данных, вспомогательные вычислительные блоки для вычисления адресов операндов за один машинный цикл. За последние годы сформировалось несколько направлений, или семейств массовых высокопроизводительных микропроцессоров, конкурирующих друг с другом на рынке применений для десктопных компьютеров. Каждое семейство имеет свою микроархитектуру, или внутреннюю организацию процессорного ядра, разработанную на основе представлений её создателей о потребностях пользователей, критериях оценки производительности и прочих потребительских качеств, перспективах развития и рыночных тенденциях. Эти представления влияют на принятие разработчиками принципиальных решений о тех или иных ключевых архитектурных особенностях процессора и о различных компромиссах, заложенных в архитектуру. Несмотря на то, что общая организация суперскалярного процессора с внеочередным исполнением операций давно устоялась и воспроизводится в каждой современной архитектуре, имеется также большое количество принципиальных отличий между семействами. По существу, воспроизводится только общая структура процессора – организация его отдельных подсистем различается весьма значительно. Кэш инструкций Во всех современных микроархитектурах, за исключением процессора P-4, кэш инструкций (I-кэш) организован классическим образом. Кэш 1-го уровня (L1-кэш) имеет размер 32 Кбайт и состоит из блоков по 64 байта, организованных в виде 64 наборов по 8 блоков. Для поиска требуемого элемента данных в кэше используется комбинированный алгоритм, сочетающий прямую адресацию по нескольким разрядам адреса с ассоциативным поиском. Младшие 6 разрядов адреса b5-0 указывают положение байта в 64-байтовом блоке и для поиска блока не используются. Следующие 6 разрядов адреса b11-6 указывают номер набора, а нахождение требуемого блока в наборе осуществляется сравнением самых старших разрядов адреса (ключа) с соответствующими разрядами адреса, хранящимися для каждого блока в наборе (тэгами). Таким образом, элемент данных по какому-либо адресу может располагаться в рассматриваемом кэше в одном из 8 блоков конкретного набора. Если нужный блок данных не найден в L1-кэше, он ищется в кэше второго уровня (L2-кэше), и далее, если не найден и там, в оперативной памяти. Затем этот блок записывается в L1-кэш. Если все блоки в наборе уже заняты, то один из блоков удаляется (вытесняется). Как правило, для вытеснения используется алгоритм LRU (Least Recently Used — «наименее используемый в последнее время»). Описанная организация кэша называется «наборно-ассоциативной» (set-associative). Число блоков в наборе (в данном случае 8) называется уровнем ассоциативности кэша. Оно определяет, сколько блоков данных, отстоящих друг от друга на расстоянии с определённой кратностью (в данном случае – кратном 4 Кбайт), может одновременно находиться в кэше. Данное ограничение называют проблемой алиасинга. Чем выше уровень ассоциативности, тем меньше вероятность, что различные блоки данных столкнутся с алиасингом. Например, у L1-кэшей процессора K8 уровень ассоциативности равен 2 при размере 64 Кбайт, а I-кэш процессора PPC970 имеет уровень ассоциативности, равный 1 при том же размере 64 Кбайт (такая организация называется прямым отображением), и состоит из блоков по 128 байт. Обычно поиск в кэшах осуществляется по физическому адресу элемента данных. Однако преобразование адреса из программного (логического) в физический требует определённого времени – для этого используется вспомогательная структура, похожая на небольшой кэш и называемая буфером преобразования адреса (TLB, Translation Lookaside Buffer). Поэтому для адресации набора L1-кэша, чтобы ускорить поиск, используют необходимые разряды программного адреса. В тех случаях, когда эти разряды адресуют не больше одной страницы памяти (размер которой, как правило, равен 4 Кбайт), они совпадают с соответствующими разрядами физического адреса. Например, в процессорах P-M и P8 для этого используются разряды b11-6, и данное условие соблюдается. Арифметически это условие можно выразить так: частное от деления размера кэша на уровень ассоциативности не должно превышать размера страницы. Легко видеть, что в процессорах K8 и PPC970 данное условие не соблюдается (64K/2=32K, 64K/1=64K). В I-кэше процессора K8, помимо байтов инструкций, хранятся также так называемые биты предекодирования — по 3 разряда на байт. Их назначение будет описано в разделе про декодирование. Инструкции считываются из I-кэша порциями (выровненными блоками), с опережающей предвыборкой, чтобы обеспечить бесперебойную работу декодера инструкций и ускорить предсказание переходов. Размер такого блока в процессорах P-III и K8 равен 16 байтам. Предсказание переходов Механизм предсказания переходов выполняет две основные функции – предсказание программного адреса инструкции, на которую производится переход (для всех инструкций перехода), и предсказание направления ветвления (для инструкций условного перехода). Оба предсказания должны быть выполнены заблаговременно – раньше, чем начнётся декодирование и обработка инструкции перехода – для того, чтобы выборка нового блока инструкций была произведена без потерь лишних тактов либо с минимальными потерями. Необходимость предсказания адреса «целевой» инструкции вызвана тем, что этот адрес может быть извлечён из x86-инструкции перехода и вычислен только на финальной стадии декодирования, с большой задержкой. Более того, даже простое выделение инструкций переменной длины из считанного блока и поиск среди них инструкций перехода займёт какое-то время. Поэтому в процессорах архитектуры x86 предсказание производят по целому блоку, без разбиения его на составляющие инструкции. В современных процессорах для предсказания адреса перехода обычно используют специальную таблицу адресов переходов BTB (Branch Target Buffer). Эта таблица устроена подобно кэшу и содержит адреса инструкций, на которые ранее производились переходы. Например, в процессоре P-III таблица BTB имеет размер 512 элементов и организована в виде 128 наборов с ассоциативностью 4. Для адресации набора используются младшие разряды адреса 16-байтового блока инструкций (b10-4). Если в этом блоке есть инструкции перехода, и если эти инструкции отрабатывали ранее, то алгоритм предсказания может очень быстро найти адрес целевой инструкции в таблице BTB и начать считывание блока, содержащего эту инструкцию. Адреса целевых инструкций помещаются в BTB в момент отставки соответствующих инструкций перехода. В более новых процессорах размер таблицы BTB достигает 2048 элементов (K8) и 4096 элементов (P-4). Организация данной подсистемы в процессоре K8 несколько отличается от классической и основывается на предварительной разметке блоков инструкций в так называемых массивах селекторов перед помещением их в I-кэш. Эти селекторы привязаны к положению инструкций в I-кэше и при их вытеснении оттуда сохраняются в L2-кэше (в так называемых ECC-битах, предназначающихся для коррекции ошибок). Элементы таблицы BTB также привязаны к положению инструкций в I-кэше и теряются при их вытеснении. Это несколько снижает эффективность предсказания адресов переходов в процессоре K8. Для предсказания направления условного перехода используется другой механизм, основанный на изучении поведения переходов в программе в процессе её выполнения (своего рода «сбор статистики»). Этот механизм учитывает как локальное поведение конкретной инструкции перехода (например, «как правило, переходит», «как правило, не переходит»), так и глобальные закономерности («чередуется по определённому закону» и т.п.). История поведения инструкций условного перехода записывается в специальных структурах, обычно называемых «таблицами истории переходов» (Branch History Table, BHT). Современные механизмы предсказания переходов обеспечивают правильное предсказание более чем в 90 процентах случаев. Механизм предсказания переходов работает одновременно с декодером инструкций и независимо от него. Благодаря эффективной реализации предсказания адреса перехода в процессорах P-III, P-M, P-M2, P8 и K8 при правильном предсказании теряется всего 1 такт. Это означает, что минимальное время, затрачиваемое на итерацию цикла (либо на один переход в цепочке переходов), составляет 2 такта. По существу, предсказатель переходов в таком цикле (или цепочке) работает в своём независимом цикле, состоящем из двух стадий – предсказания и считывания нового блока кэша – а декодер и прочие подсистемы процессора обрабатывают инструкции из вновь считываемых блоков. Поскольку предсказатель переходов «просматривает» целый блок, который может содержать большое число инструкций, то он может «опережать» декодер в своём просмотре. Благодаря этому переход может быть совершён раньше, чем исчерпаются инструкции в текущем блоке, и указанной потери такта не произойдёт – этот такт будет скрыт на фоне бесперебойной работы декодера. Когда инструкция перехода попадёт в функциональное устройство для исполнения, будет выяснено, правильно предсказан этот переход или нет. В момент её отставки при неправильном предсказании перехода все последующие инструкции будут отменены, и начнётся считывание инструкций из I-кэша по правильному адресу. Такую процедуру называют сбросом конвейера, а время (в тактах), которое было потрачено на выполнение инструкции перехода с момента её считывания из кэша, называют длиной конвейера непредсказанного перехода. Это время характеризует чистую потерю в идеальных условиях, когда инструкция проходила через все этапы «гладко» и нигде не задерживалась по внешним причинам. В реальных условиях потеря на неправильно предсказанный переход может оказаться выше. Длина конвейера непредсказанного перехода не всегда указывается в документации и известна весьма приблизительно. Её довольно трудно замерить, так как современные предсказатели переходов работают достаточно эффективно и не позволяют добиться гарантированной доли неправильных предсказаний в тестах. Можно дать следующие примерные оценки длины конвейера: P-III – 11, P-M – 12, P-4 – 20, P-4E – 30, P8 – 14, K8 – 11, PPC970 – 13. Кэш инструкций в процессоре P-4 очень сильно отличается от I-кэша в процессоре классической архитектуры. В нём преобразование исходных x86-инструкций в МОПы производится перед кэшем, а в кэш помещаются целые трассы, составленные из этих МОПов. Поэтому такой кэш в процессоре P-4 называется «кэш трасс» (Trace-cache, Т-кэш). Об устройстве T-кэша можно прочитать в статье, адрес которой в Интернете приведён в конце данной лекции. Исполнение инструкций Большинство процессоров обрабатывают и исполняют инструкции архитектуры x86 (называемой также IA-32) и расширенной архитектуры x86-64 (называемой также AMD64 либо EM64T). Принципиальных различий по структуре машинной инструкции между архитектурами x86 и x86-64 нет, поэтому по тексту будем везде использовать общее наименование «x86-инструкции». Эти инструкции имеют очень сложный и нерегулярный формат и могут состоять из нескольких составных частей: одного или нескольких однобайтных префиксов, кода операции длиной от 1 до 3 байтов, описателя типа адресации операндов (ModR/M), указателя регистров базы, индекса и масштаба индексирования (SIB), поля смещения адреса и непосредственного операнда. Длина x86-инструкции может варьироваться от 1 до 15 байтов. Для суперскалярной обработки необходимо в каждом такте извлекать из входного потока несколько инструкций переменной длины и отправлять каждую из них в отдельный блок декодирования для преобразования в микрооперации (МОПы). Эта задача представляется очень трудоёмкой, поэтому необходимо применение специальных средств, которые позволили бы её облегчить. В разных процессорах x86 используются различные приёмы и механизмы, обеспечивающие бесперебойную обработку инструкций. Лишь для процессора PPC970 не требуется никаких ухищрений, так как в RISC-архитектуре IBM Power машинные инструкции имеют фиксированную длину (4 байта) и регулярный формат. По типу используемых механизмов рассматриваемые процессоры можно разбить на четыре класса: PPC970: Не используется никакой механизм, так как инструкции имеют фиксированную длину и формат. P-III, P8: После выборки из I-кэша производится разметка инструкций (определение их границ и положения кода операции) в устройстве, называемом определителем длины инструкций (Instruction Length Decoder, ILD). K8: Перед помещением блоков инструкций в I-кэш производится предварительное декодирование (предекодирование) с аналогичной разметкой, информация о разметке записывается в дополнительные биты при каждом байте в I-кэше. P-4: Перед помещением в кэш производится полное декодирование инструкций, сформированные МОПы записываются в этот кэш (Т-кэш) в виде трасс. Ниже будет для примера рассмотрен процесс исполнения инструкций только для архитектуры P-III и P-8. Более подробно об исполнении инструкций процессорами другой архитектуры можно узнать из статьи, ссылка на которую сделана в конце лекции. Память (Лекция 6) Определения Младшими адресами памяти называется часть памяти компьютера (с самыми младшими адресами), которая отводится для некоторых важных применений, определяющих функционирование компьютера. В специальном применении младшей области памяти можно выделить три области: 1. Таблица векторов прерываний, которая определяет местоположение подпрограмм обработки прерывания. Первые 1024 байтов памяти специально отводятся для таблиц векторов прерываний, предусматривается место для 256 различных прерываний – несколько больше, чем обычно используется. Эти таблицы занимают область памяти с абсолютными адресами от 0 до 400 (значение шестнадцатеричное). 2. Рабочее места для подпрограмм ROM-BIOS. Поскольку ROM-BIOS управляет основной деятельностью компьютера и составляющих его компонент, то для хранения его собственных записей требуется определенная область памяти. Такой областью является область данных ROM-BIOS. Среди всего того многого, что хранится в области данных ROM-BIOS, имеется буфер, в котором хранится информация о клавишах, нажатых до того, как наши программы готовы принять такую информацию, а также информация об объеме имеющейся памяти в компьютере и индикатор режима использования. Для области данных ROM-BIOS устанавливается отдельная область размером в 256 байтов и с адресами от 400 до 500. 3. Рабочая область операционной системы, которая находится между абсолютными адресами 500 и 600. Эта область используется ей в качестве рабочей области, аналогично рабочей области ROM-BIOS, которая предшествует ей. Популярное:
|
Последнее изменение этой страницы: 2016-05-30; Просмотров: 1798; Нарушение авторского права страницы