litceyvib.ru 1 2 ... 5 6
  1. Mälukaitse põhimõtted ja nende realiseerimine protsessoris 80286.


http://gem.dpt.ustu.ru/i286/review.htm

http://protectmode.narod.ru/

http://www.vcl.ru/html/cpu/80486/home.htm

IBM 286

  Процессор i80286, знаменующий следующий этап архитектуры, появился только в 1982 году. Он уже имел 134000 транзисторов (технология 1,5 мкм) и адресовал до 16 Мбайт физической памяти. Его принципиальные новшества - защищенный режим и виртуальная память размером до 1 Гбайт - не нашли массового применения; процессор большей частью использовался как очень быстрый 8088.

  Второе поколение процессоров Intel, т. е. 80286 с сопроцессором 80287, привнесло в семейство защищенный режим, позволяющий использовать виртуальную память размером до 1 Гбайт для каждой задачи, пользуясь адресуемой физической памятью в пределах 16 Мбайт. Защищенный режим является основой для построения многозадачных операционных систем (ОС), в которых система привилегий жестко регламентирует взаимоотношения задач с памятью, ОС и друг с другом. Защищенный режим 80286, как уже говорилось, не нашел массового применения - эти процессоры, в основном, использовались как "очень" быстрые 8086. Их производительность повысилась не только за счет роста тактовой частоты, но и за счет значительного усовершенствования конвейера. Здесь на выполнение инструкции уходило в среднем по 4,5 такта. Во втором поколении появились новые инструкции: системные (для обслуживания механизмов защищенного режима) и несколько прикладных (в том числе для блочного ввода/вывода). Наличие защищенного режима не отменяет возможности работы в реальном режиме 8086, и эта возможность сохраняется во всех последующих поколениях (дань совместимости с программным обеспечением, включая и MS DOS).

Статья №2.

Процессор 80286, выпущенный в 1982 году, представляет второе поколение 16-разрядных процессоров. Он имеет специальные средства для работы в многопользовательскмх и многозадачных системах. Самым существенным отличием от 8086/8088 является механизм управленя адресацией памяти, который обеспечивает четырёхуровневую систему защиты и поддержку виртуальной памяти . Специальные средства предназначены для поддержки механизма переключения задач (Task switching). Процессор может работать в двух режимах: 8086 Real Address Mode -- режим реальной адресации (или просто реальный режим -- Real Mode), полностью совместимый с 8086. В этом режимевозможна адресация до1 Mb физической памяти (на самом деле за счёт "удачной" ошибки -- почти на 64 Kb больше).Protected Virtual Adress Mode -- защищённый режим виртуальной адресации (или просто защищённый режим -- Pr6otected Mode). В этом режиме процессор позволяет адресовать до 16 Mb физической памяти, через которые при использовании механизма страничной адресации могут отображаться до 1 Gb виртуальноц памяти каждой задачи. В этом режиме система команд обеспечивает аппаратную реализацию функций супервизора многозадачной ОС и виртуальной памяти.Переключение в защищённый режим осуществляется одной инструкцией (с предварительно подготовленными таблицами дескрипторов) достаточно быстро. Обратное переключение в реальный режим возможно только через аппаратный сброс процессора, что требует значительных затрат времени.Система команд 80286 включает все комнанды 8086/88 и имеет ряд дополнительных команд, из которых разработчику аппаратуры наиболее интересны инструкции ввода/вывода байта (слова) в строку памяти, одиночные (INSB, INSW, OUTSB, OUTSW) или по счётчику в регистре CX (те же команды с префиксом REP). Эти инструкции обеспечивают возможность програмного ввода/вывода PIO (Programmable Input/Output), производительность которого выше, чем у стандартного прямого доступа к памяти PC.Содержание...По составу и назначени в реальном режиме регистры 80286 в основном совпадают с регистрами 8086/88. Изменения касаются назначения бит регистра и флагов и использования сегметных регистров в защённом режиме. Как и 8086, процессор 80286 имеет 16-битную шину данных и очередь команд 6 байт. За счёт архитектектуры сокращено время выполнения операций: процессор 80286 с тактовой частотой 12,5 MHz работет более чем в 6 раз быстрее чем 8086 с тактовой частотой 5 MHz. Предусмотрена возможность использования высокопроизводительного математического сопроцессора 80287, программно совместимого с 8087. Под управлением MS-DOS процессором 80286 обычно используется реальный режим. Защищённый режим используют ОС типа XENIX, UNIX, OS/2, NetWare286, и оболочка MS Windows. Хотя преимущества этого процессора в PC реализовались лишь частично (он в основном использовался как быстрый процессор 8086), именно с этим процессором связан настоящий бум на рынке PC.




  1. Multitegumrezhiim ja selle realiseerimine protsessoris 80286.

http://elancev.narod.ru/texno/raznoe/i4_rej.htm

Реальный режим.

Этот режим в качестве основного не используется. При выполнении программ в реальном режиме микропроцессор может рассматриваться как более ранняя модель, но с большим быстродействием, расширенным набором команд и увеличенным числом регистров (используются 16-ти разрядные операнды). Адреса вычисляются на основе содержимого регистров сегмента и смещения и не могут выходить за пределы 1M всего адресного пространства и 64K размера сегмента. Доступны практически все команды, за исключением тех что используют операнд как регистр селектора. В целом система прерываний не отличается от системы прицессора i8086.

Однако не следует думать, что процессор i486 идентичен процессору i8086 В нем некотрые принципиальные вопросы решены иначе, чем в базовом микропроцессоре, но эти отличия проявляются в "экзотических" ситуациях.
Всего задокументировано около 20 отличий; ниже перечислены некотрые из них:

  1. Отличается количество тактов, необходимое для выполнения команд;

  2. Ограничено максимальное количество сдвигов операнда (31 сдвиг);

  3. Установлено ограничение на длину команды (15 байт);

  4. Нет "зацикливания" внутри сегмента в 64K и в адресном пространстве 1M во всех возможных случаях;

  5. Введены ограничения на использование префикса LOCK (указан исчерпывающий список каманд при которых уместна блоккировка);

  6. Изменена логика обработки прерываний, в том числе пошагового выполнения и назначение отдельных прерываний;

  7. Введено понятие максимального отрицательного числа при операции IDIV;

  8. Изменена логика работы с шинами;
  9. Введена возможность установки размера таблицы векторов прерывания.


Отличия процессора i486 от i286 и i386 в основном касаются набора команд и архитектуры.

Реальный режим используется при начальной инициализации вычислительной системы и загрузке ОС; а так же для более быстрого выполнения программ в однозадачном режиме.

Одним из способов перехода в реальный режим является переход по сигналу RESET, вырабатываемому внешними схемами при включении питания или в другой предусмотренный схемой ЭВМ момент.
После окончания процедуры сброса процессор эмулирует 16-ти разрядный микропроцессор i8086; при этом в регистре EDX оказывается идентификатор процессора:

DH - содержит число, идентифицирующее тип процессора (4);

DL - уникальный идентификатор номера версии процессора.

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

Если во время снятия сигнала RESET присутствовал запрос на тестирование (сигнал AHOLD), то процессор выполняет процедуру автотестирования и в регистр EAX помещается код обнаруженной ошибки (в норме =0). Тестирование выполняется около 2^20 тактов, если тестирование не производилось, то состояние EAX может быть любым.

ПРИМЕЧАНИЕ: С точки зрения проектирования компьютера удобнее разрабатывать единый модуль оперативной памяти (не помещать в промежутке от 640К до 1М внешние устройства и ПЗУ). Для обеспечения совместимости с 16-ти разрядным реальным режимом процессора i86 считается, что регистр CS содержит значение F000h. Однако при выдаче адреса на шину старшие разряды устанавливаются в "1", это положение сохраняется до первой команды "дальнего" перехода.

Защищенный режим.

Основной режим работы процессора. Переход в этот режим осуществляется после подготовки всех необходимых таблиц. Переключение режима осуществляется установкой бита PE в регистре CR0 (бит 0). Для обеспечения совместимости это можно сделать командой LMSW или MOV, причем последняя позволяет вернуться в реальный режим.


В целом переход в защищенный режим не отличается от процедуры, приведенной для процессора i286 (не надо заботиться о адресе возврата - для возврата нет необходимости генерировать "сброс" и о разрешении старшей части адреса).

Для переключения в реальный режим из защищенного необходимо выполнить следующие действия:

1 Обеспечить равенство линейных адресов физическим;

2 Отключить трансляцию страниц, сбросив бит PG в ренистре CR0;

3 Загрузить ноль в регистр CR3 для сброса КЭШ-памяти страниц;

4 Передать управление сегменту кода с пределом 64К;

5 Загрузить в сегментные регистры SS, DS, ES, FS, GS селекторы дескрипторов, соответствующие реальному режиму:


  • Граница 64К (0FFFFh);

  • Байтовая дробность (G=0);

  • Расширение вверх (E=0);

  • Доступ для записи (W=1);

  • Присутствие в памяти (P=1);

  • База - любое значение

6 Запретить маскируемые и немаскируемые прерывания;

7 Сбросить бит PE регистра CR0 (бит защиты);

8 Выполнить команду дальнего перехода для очистки очереди команд;

9 Настроить систему прерываний;

10 Разрешить прерывания;

11
Загрузить сегментные регистры необходимыми программе значениями.

Мультизадачный режим (подрежим защищенного режима).

В целом организация мультизадачного режима соответствует указанному для i286, изменен формат сегмента состояния задачи TSS (смещение - назначение):

  • 0h - LINK Поле компановки задач;

  • 2h - Резерв, должны быть равны нулю;

  • 4h - ESP0

  • 6h - SS0

  • 8h - Резерв, должны быть равны нулю;

  • Ch - ESP1

  • 10h - SS1
  • 12h - Резерв, должны быть равны нулю;


  • 14h - ESP2

  • 18h - SS2

  • 1Ah - Резерв, должны быть равны нулю;

  • 1Ch - CR3 Ссылка на каталог таблиц страниц данной задачи;

  • 20h - EIP

  • 24h - EFLAGS

  • 28h - EAX

  • 2Ch - ECX

  • 30h - EDX

  • 34h - EBX

  • 38h - ESP

  • 3Ch - EBP

  • 40h - ESI

  • 44h - EDI

  • 48h - ES

  • 4Ah - Резерв, должны быть равны нулю;

  • 4Ch - CS

  • 4Eh - Резерв, должны быть равны нулю;

  • 50h - SS

  • 52h - Резерв, должны быть равны нулю;

  • 54h - DS

  • 56h - Резерв, должны быть равны нулю;

  • 58h - FS

  • 5Ah - Резерв, должны быть равны нулю;

  • 5Ch - GS

  • 5Eh - Резерв, должны быть равны нулю;

  • 60h - LDTR

  • 62h - Резерв, должны быть равны нулю;

  • 64h - Поле отладки, используется только младший бит "T" (остальныеравны 0). Если БИТ ЛОВУШКИ равен 1, то при переключении на эту задачу выполняется прерывание типа 1 (отладки);

  • 66h - Адрес битовой карты ввода вывода относительно TSS;

  • 68h - Дополнительная часть для ОС;

  • --h - Битовая карта ввода/вывода;

  • --h - последний байт должен иметь единицы во всех разрядах.

Битовая карта ввода/вывода служит для отметки портов (помечаются 1), при обращении к которым должно проверяться соотношение значений CPL <= IOPL.
Каждый бит таблицы соответствует одному байту в пространстве портов ввода/вывода. Полная таблица занимает 8К памяти.

Процессор может работать с сегментом состояния задачи, подготовленным для i286 (если будет вызван TSS с соответствующим байтом доступа).

Одновременно могут выполняться 16-ти и 32-х разрядные задачи. Проблемы могут возникнуть при обращении разноразрядных задач друг к другу, но и их можно решить.


Режим виртуального процессора i8086 (подрежим защищенного режима).

Режим V86 используется для эмуляции процессора i86 в рамках защищенного режима. Переключение осуществляется установкой бита VM в регистре EFLAGS (его номер 17). В этом режиме с точко зрения программимста адрес формируется как <сегмент:смещение>, однако реально используется трансляция страниц, что позволяет выполнять программы в мультизадачном режиме.

В этом режиме формируется так называемая "виртуальная машина"; каждой задаче выделяется пространство в 1М, с размером сегмента 64К. При выполнении операций ввода/вывода может быть предоставлен доступ непосредственно к устройству, или выполнена его эмуляция.
Возможно использование новых команд и 32-х разрядной арифметики.

Структура задачи виртуального процессора 8086:
Задача виртуального процессора состоит из программы, предназначенной для выполнения и программы "родного режима" (NATIVE MODE) процессора i486, играющией роль монитора виртуальной машины. Задача должна быть представлена при помощи TSS процессора i486 (не i286).

Монитор виртуального режима должен иметь максимальный уровень привилегий и состоять из процедур обработки исключений и инициализации. Он должен позволять выполняемой программе модифицировать ОС (по крайней мере с точки зрения программы), но защищать память за границей отведенного 1М.

Разбиение на страницы для задач виртуального режима.

Разбиение не является обязательным, но желательно в следующих случаях:


  1. При создании множества задач виртуального режима (каждой нужен "нижний" мегабайт физических адресов);

  2. При эмуляции циклического возврата через один мегабайт;

  3. При создании виртуального адресного пространства, превышающего физическое;

  4. При наличии нескольких программ, использующих ОС и ПЗУ (каждая может попытаться модифицировать ОС для своих нужд);
  5. Для эмуляции ввода/вывода.


ПРИМЕЧАНИЕ: Если используется режим виртуальной памяти, то для формирования физического адреса из линейного используется только таблица страниц и регистр CR3 указывает не на каталог таблиц страниц, а непосредственно на таблицу страниц (старшие биты равны нулю в связи с особенностью формирования линейного адреса).

Защита внутри виртуальной задачи.

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

Переключение режимов.

Вход и выход микропроцессора в режим V86 осуществляется при загрузке в регистр EFLAGS значения с установленным или сброшенным битом VM. Это происходит при переключении задач, когда изменяется старшая часть регистра флагов. Не следует забывать, что только TSS процессора i486 хранит 32-х разрядное значение EFLAGS; если текущий TSS подготовлен для i286, то старшая часть регистра считается нулевой.
При проектировании монитора виртуального режима необходимо максимально полно учитывать различия мехду процессорами 8086 и 80486.



  1. Alamprogrammidesse ja katkestuste töötlemise programmidesse pöördumise iseärasused 80286 süsteemis. Väljakutse lüüs, katkestuste lüüs.



  2. 32-bitise protsessori 80386 üldiseloomustus ja struktuur võrrelduna 80286-ga.

http://www.vcl.ru/html/cpu/386/

1. Основные характеристики

Микропроцессор 80386 является высокопроизводительным

32-битным процессором, предназначенным для построения наибо-

лее совершенных вычислительных систем сегодняшнего и завтраш-


него дня. Станции САПР, графические системы с высокой разре-

шающей способностью, издательское дело, автоматизация контор

и производства - вот те области, где сегодня может быть при-

менен 80386. Применения завтрашнего дня скорее будут ограни-

чены воображением разработчиков систем, чем вычислительной

мощностью и возможностями 80386.

Микропроцессор 80386 дает разработчику систем большое

число новых и эффективных возможностей, включая производи-

тельность от 3 до 4 миллион операций в секунду, полную

32-битную архитектуру, 4 гигабитное (2 байт) физическое ад-

ресное пространство и внутреннее обеспечение работы со стра-

ничной виртуальной памятью.

Несмотря на введение в него последних достижений микроп-

роцессорной техники, 80386 сохраняет совместимость по об'ект-

ному коду с программным обеспечением, в большом количестве

написанным для его предшественников, 8086 и 80286. Особый ин-

терес представляет такое свойство 80386, как виртуальная ма-

шина, которое позволяет 80386 переключаться в выполнении

программ, управляемых различными операционными системами,

например, UNIX и MS-DOS. Это свойство позволяет производите-

лям оригинальных систем непосредственно вводить прикладное

программное обеспечение для 16-битных машин в системе на базе

32-битных микропроцессоров.

Объединяя в себе производительность супермини ЭВМ и низ-

кую стоимость и функциональную гибкость микропроцессора,

80386 может открыть новые рынки для микропроцессорных систем.

Применения, недопустимые прежде из-за невысокого быстродейст-

вия микропроцессоров или не экономности использования супер-

мини ЭВМ, стали теперь практически осуществимы благодаря

80386. Такие новейшие применения, как машинное зрение, рас-


познавание речи, интеллектуальные работы и экспертные систе-

мы, бывшие до недавнего времени в основном на стадии экспере-

мента, теперь могут быть предложены на рынке.

Для тго, чтобы удовлетворить требованиям будущих приме-

нений, мало иметь 32-битные регистры, команды и шины. Эти ос-

новные свойства являются лишь отправной точкой для 80386. В

нижеследующих разделах в общих чертах будет рассмотрена

32-битная архитектура 80386, обладающая такими новыми допол-

нительными свойствами, как:

- высокопроизводительная технология,

- обеспечение работы с виртуальной памятью,

- механизмы защиты,

- расширенное отладочное обеспечение,

- совместимость по об'ектному коду с 8086/80286.

1.1. 32-битная архитектура

32-битная архитектура 80386 обеспечивает программные ре-

сурсы, необходимые для поддержки "больших " систем, характе-

ризуемых операциями с большими числами, большими структурами

данных, большими программами (или большим числом программ) и

т.п. Физическое адресное пространство 80386 состоит из 2 байт

или 4 гбайт; его логическое адресное пространство состоит из

2 байт или 64 терабайт (тбайт). Восемь 32-битных общих регис-

тров 80386 могут быть взаимозаменяемо использованы как опе-

ранды команд и как переменные различных способов адресации.

Типы данных включают в себя 8-, 16- или 32-битные целые и по-

рядковые, упакованные и неупакованные десятичные, указатели,

строки бит, байтов, слов и двойных слов. Микропроцессор 80386

имеет полную систему команд для операций над этими типами

данных, а также для управления выполнением программ. Способы

адресации 80386 обеспечивают эффективный доступ к элементам

стандартных структур данных: массивов, записей, массивов за-


писей и записей, содержащих массивы.



  1. Protsessori 80386 registrid: üld-, segmendi-, deskriptortabelite- ja variregistrid.

http://www.vcl.ru/html/cpu/386/

2.1. Регистры

Во всех вычислительных машинах, включая 80386, имеются

регистры, которые программисты могут использовать для срочно-

го промежуточного хранения. К данным, хранящимся в этих ре-

гистрах, можно обратиться без магистральных циклов, что сок-

ращает время использования команды и предоставляет больше ма-

гистрального времени другим процессором, например, контролле-

рам прямого доступа к памяти. В 80386 имеется восемь програм-

мно доступных общих регистров, еще восемь регистров добавля-

ется при подключении математического сопроцессора 80287 или

80387. Два других регистра 80386, предназначенных не для хра-

нения данных, а для хранения статуса и управления процессо-

ром, также важны для программистов. Это регистр флагов и

счетчик команд.

2.1.1. Общие регистры

Как видно из рис.2-1, Общие регистры 80386 имеют разряд-

ность 32 бит, внутренние шины данных, внешние шины данных и

адреса процессора также имеют разрядность 32 бит. В соответс-

твии с любым обще принятым определением 80386 являются

32-битной машиной. Однако в соответствии с практикой других

процессоров, предшественниками которых были 16-битные машины,

принято, что в 80386 слово означает 16 бит, а 32-бита образу-

ют двойное слово.

Как видно из рис.2-1 все общие регистры могут использо-

ваться как 16 или 32-битные регистры, а четыре из них могут

быть использованы и как 8-битные регистры. Почти во всех опе-


рациях любой общий регистр может быть определен как операнд.

Любые два регистра, например, могут быть перемножены. Анало-

гичным образом, любой регистр при вычислении адреса может

быть исползован в качестве базового или индексного. Поскольку

в любой практической программе требуется стек, общий регистр

ESP подразумевается как указатель вершиныРегистры математического сопроцессора, показанные на

рис.2-3, повышают производительность систем с большим объемом

вычислений. При подключении к 80386 математического сопроцес-

сора 80287 или 80387 эти регистры добавляются к 80386. Хотя

математический сопроцессор распознает форматы целых, упако-

ванных десятичных и чисел с плавающей запятой различной дли-

ны, внутри него все величины хранятся в формате с плавающей

запятой в регистровом стеке 8х80 бит. В математических опера-

циях могут быть как неявные ссылки на верхние элементы стека,

так и явные на дригие регистры. Статусный регистр содержит

указатель вершины стека, флаги, идентифицирующие особые слу-

чаи (например, переполнение) и коды состояний, отражающие ре-

зультат последней команды. Регистр управления содержит биты

вариантов и масок, которые программист может устанавливать

для выбора алгоритма округления, интерпретации бесконечности,

а также задания того, как будут обрабатываться особые случаи

- сопроцессором или программно.

1-REGISTER STACK

79 78 64 65 0

г==T==============T======================¬

¦ ¦ EXSPONENT ¦ SIGNIFICAND ¦

¦==+==============+======================¦

¦ ¦ 2 ¦ 3 ¦

¦==+==============+======================¦

¦ ¦ ¦ ¦

¦==+==============+======================¦

¦ ¦ ¦ ¦

¦==+==============+======================¦


¦ ¦ ¦ ¦

¦==+==============+======================¦

¦ ¦ ¦ ¦

L==¦==============¦======================-


15 0

г======================¬

4- ¦ CONTHOL REGISTER ¦

¦======================¦

5- ¦ STATUS REGISTER ¦

L======================-

Рис.2-3 Регистры математического сопроцессора; 1 - ре-

гистровый стек; 2 - порядок; 3 - мантисса; 4 - регистр управ-

ления; 5 - регистр статуса.

Как было отмечено выше, операционная система может опре-

делить адресное пространство как один или несколько сегмен-

тов. Сегменты являются логоческими блоками, хорошо приспособ-

ленными под программные структуры, которые по сути своей име-

ют переменную длину. Например, 1516-байтная процедура пол-

ностью содержит сегменте 1516 байт, так же, как и 8 мбайтный

массив (например, дисплейный буфер 1028X1028X8) полностью

входит в сегмент такого же размера. Имея для сегментов соот-

ветствующие архитектурные решения, 80386 повышает производи-

тельность систем, в которых механизм структурирования основан

на сегментах. (Страницы, которые рассматриваются в главе 3,

имеют фиксированные размеры; они не приспособлены под прог-

раммные структуры, но, с другой стороны, более подходят для

таких функций операционной системы, как, например, пересылки

между ОЗУ и диском).

Сегмент в системе 80386 может иметь любой размер от 1

байта до 4гбайт. Для каждого сегмента операционная система

поддерживает заданный архитектурой дескриптор, содержащий

описание сегмента. Описание сегмента включает в себя 32-бит-

ный базовый адрес и длину сегмента, а также информацию о за-

щите, предотвращающей неправильное использование сегмента.


Ввиду того, что дескрипторы поддерживаются операционными сис-

темами, их рассмотрение откладывается до главы 3. Прикладные

программы пользуются дескрипторами лишь косвенно, обращаясь к

сегментам с помощью логических адресов.



  1. Protsessori 80386 käskude üldistatud formaat, andmeformaadid.

http://www.citforum.ru/database/skbd/glava_18.shtml



  1. Protsessori 80386 reaalrezhiim ja kaitstud rezhiim.

http://mirrors.smtn.stavropol.ru/moshkow/koi/TECHBOOKS/INTEL/t80386.txt

http://www.lib.com.ua/comp/1.15.html



  1. Mälu segmentjaotuse rezhiim 80386 süsteemis. Segmendi deskriptori formaat, deskriptortabelid.

http://www.referatus.ru/r/13597/ref_part_5.shtml



  1. Mälu lehekülgjaotuse rezhiim 80386 süsteemis. Leheküljetabelite kataloogi elemendi ja leheküljetabeli elemendi formaat.

  2. Mälu segment-lehekülgjaotus 80386 süsteemis.

  3. Peidikmälu (cache) kontseptsioon. Assotsiatiivse- ja otsepeegelduspeidik.

  4. Peidikmälu kontroller 82385 otsepeegeldusrezhiimis.

  5. Peidikmälu kontroller 82385 kahesuunalises moodul-assotsiatiivrezhiimis.
  6. Protsessori i486 üldiseloomustus ja struktuur võrrelduna 80386-ga. Käskude dekodeerimise ja täitmise konveier.


  7. Põhimälu füüsiline ehitus i486 süsteemis. Andmesiini laiuse dünaamiline juhtimine.

  8. Siinitsüklid, andmete konveier- ja pakettedastus (e. paiskedastus) i486 süsteemis.

  9. i486 kiibil paiknev primaarne (L1) neljasuunaline moodul-assotsiatiivpeidik.

  10. PENTIUMi üldiseloomustus ja struktuur võrrelduna i486-ga.

модель Pentium включала около 3,3 миллиона транзисторов, а кэш-память второго уровня реализовывалась с помощью внешнего набора кристаллов памяти. Тактовая частота 66 МГц.

Кэш данных и кэш команд (8 Кбайт оба). Суперскалярная архитектура: два || конвейера декодирования и выполнения команд. Арифметический сопроцессор с плавающей запятой (примыкает к одному из конвейеров).

Brunch prediction – предсказывание перехода команды. Конвейер выполняет команду, являющеюся командой условного перехода. Выбор длины страниц: 4 Кбайта, 4 Мбайта.



  1. PENTIUMi superskalaarne kaksikkonveieril pхhinev arhitektuur. Käskude paralleelse täitmise registersõltuvus ja andmesõltuvus.

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

Выполнение двух команд за такт. Только если команды взаимно независимые. Если две рядом стоящие команды хотят использовать один и тот же регистр, то их нельзя запускать||. Или если одна из команд выполняет действие с результатом другой.



  1. PENTIUMi peidikmälusüsteem.

Первые процессоры Pentium с тактовой частотой 60 и 66 МГц обращались к вторичному КЭШу по 64-разрядной шине с той же тактовой частотой. Однако с ростом тактовой частоты Pentium для проектировщиков стало слишком сложно и дорого поддерживать такую частоту на материнской плате. Поэтому стали применяться делители частоты. Например, у 100 МГц Pentium внешняя шина работает на частоте 66 МГц (у 90 МГц Pentium - соответственно 60 МГц). Pentium использует эту шину как для обращений к вторичному КЭШу, так и для обращения к основной памяти и другим устройствам, например набору чипов PCI.



  1. PENTIUMi siini andmeedastustsüklid. Andmesiini laiuse dünaamiline juhtimine.

Есть блоки памяти, которые делятся по форматам данных. Т.е. существуют блоки, куда можно записывать только байты; байты и слова; байты, слова и двойные слова. Этим мы можем регулировать ширину шины. Ели команда для считывания двойного слова обращается в блок, где байты, то данные считываться будут 4 раза.



  1. PENTIUMil põhinev protsessormooduli kolmetasemeline siinisüsteem (HOST-PCI-EISA) ja kiibikomplekt selle juhtimiseks.

Host bus – работает на частоте в два раза меньшей, чем процессор. Самая быстрая , работает на частоте 60/66 МГц. Происходит проверка по четности.

PCI bus – Процессорно-независимая, нет отдельной адресной шины. Арбитраж- схема следит за тем, чтобы в данный момент был только один MUSTER. Происходит проверка, как адреса, так и данных.

EISA – вторичная шина, также может иметь несколько MASTER’ов , которые должны работать под арбитражем. Используется для устаревших и медленно работающих устройств.

Это стандарт современной шины, предназначенной для связывания разно уровневых шин. Также используется набор чипов, поддерживающий версию 32-битной шины PCI.

  1. PENTIUM Pro (P6) üldiseloomustus ja struktuur võrrelduna PENTIUMiga.


Конвейер процессоров семейства Р6 существенно отличается от предыдущих. В Р6 используется принципиально новый подход к выполнению команд. Применяется ряд новых приемов для предотвращения заторов конвейера, например внеочередное выполнение команд (out of order execution), переименование регистров. Конвейер Р6 состоит из трех частей

I. In-order Issue Front End. На этом этапе происходит выборка команд из памяти и декодирование в микрооперации.

II. Out-of-order Core. На этом этапе процессор выполняет микрооперации. Выполнение может происходить вне очереди.

III. IN-Order Retirement unit. На этом этапе происходит удаление команд с конвейера.

Первый процессор с двумя кристаллами в одном корпусе. Введены аппаратные регистры. Возможность выполнить несколько команд ||. Добавлено 56 новых команд. За один такт можно сделать 4 сложения. Добавлен акселератор графики.

Главное преимущество и уникальная особенность Р6 - размещенная в одном корпусе с процессором вторичная статическая кэш-память размером 256 Кб, соединенная с процессором специально выделенной шиной. Такая конструкция должна существенно упростить проектирование систем на базе Р6. Кэш второго уровня связан с процессором специально выделенной шиной шириной 64 бита и работает на той же тактовой частоте, что и процессор. Использование специально выделенной шины для доступа к вторичному КЭШу улучшает производительность вычислительной системы. Во-первых, при этом достигается полная синхронизация скоростей процессора и шины; во-вторых, исключается конкуренция с другими операциями ввода-вывода и связанные с этим задержки. Шина КЭШа второго уровня полностью отделена от внешней шины, через которую происходит доступ к памяти и внешним устройствам. 64-битоваявнешняя шина может работать со скоростью, равной половине, одной третьей или одной четвертой от скорости процессора, при этом шина вторичного КЭШа работает независимо на полной скорости.




  1. P6 mikroarhitektuur: käskude teisendamine, registrite ümbernimetamine, käskude mittejärjekorratu täitmine, saadud tulemuste järjekorrastamine.

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

В каждом такте декодеры могут производить до шести микроопераций, которые поступают в спец. Очередь. Из очереди до трех микроопераций поступают на станцию- Register Allocation Table. Здесь происходит переименование регистров и резервирование регистров в ROB .После переименования остаются только истинные взаимосвязи, ложные исчезают.

Микрооперации поступают в ROB (re-order buffer) в порядке очереди и удаляются в порядке очереди, выполняться могут вне очереди по мере готовности исходных данных и доступности исполнительных устройств процессора. До трех микроопераций могут передаваться на выполнение в каждом такте. После выполнения микрооперация возвращается обратно в РОБ, где ожидает удаления. После того, как результат операции записан в РОБ, он (результат) становится доступным для других операций.

Кэш данных Р6 позволяет обращаться к нему по двум портам: один порт для чтения, другой для записи. Процессор способен производить одновременно считывание и запись данных по одному и тому же адресу. Если обращение происходит по одному и тому же адресу – это приводит к задержке.

Для избежания задержки можно заменить фрагмент кода. Для Р6 замена команд позволит избежать задержки при обращении к памяти (увеличение числа команд). Но такое увеличение числа команд скажется негативно на производительности процессора Р5.


  1. PENTIUM II üldiseloomustus. Struktuursed ja konstruktiivsed iseärasused võrreldes PENTIUM Pro-ga.


Вытащили из чипа кэш и устанавили в отдельной микросхеме на плате. Но способ обращения к кэш такойже как и в Р6.



  1. MMX tehnoloogia.

ММХ технология разработана для ускорения мультимедиа и коммуникационных программ. Она включает в себя новые команды и типы данных, что позволяет создавать приложения нового уровня. Технология основана на || обработке данных. При этом сохраняется полная совместимость с существующими операционными системами и программным обеспечением. В основе ММХ лежит принцип SIND (single instruction multiple data), т.е. одной командой можно обрабатывать сразу несколько единиц инфо.

ММХ-регистры отображены на поля мантиссы в FPU – регистрах. Новые форматы представления данных:

  • Упакованные байты

  • упакованные слова

  • упакованные двойные слова

  • учетверенное слово

Все ММХ команды никогда не изменяют состояния флажков.



  1. Multiprotsessorsüsteemile ja graafikakiirendile (AGP) orienteeritud kiibikomplektid 440BX ja 450NX mitmetasemelistele siinidele.

  2. PENTIUM III üldiseloomustus ja iseärasused võrrelduna PENTIUM II-ga.

  3. PENTIUM III XMM registrid ja mälujuhtimise assemblerikäsud.

  4. Kahel PENTIUM III-l põhinevale multiprotsessorsüsteemile orienteeritud kiibikomplekt 840.

  5. PENTIUM IV üldiseloomustus ja struktuur võrrelduna PENTIUM III-ga.

  6. PENTIUM IV hüperkonveier ja NetBurst mikroarhitektuur.

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

    Предварительная выборка инструкций выполняется всегда 16-байтными блоками, выровненными по 16-байтным границам. Следовательно, если целевой адрес перехода (адрес метки) близок к концу блока, то в первом цикле в данном случае выбираются только два полезных байта, остальные будут выбраны в последующих циклах.
    Буфер целевых адресов переходов BTB (Branch Target Buffer) хранит историю происходивших переходов и их целевых адресов. Каждый из 512 элементов BTB хранит целевой адрес и четыре бита предыстории, которые несут информацию о том, случался ли переход за последние четыре прохода через инструкции ветвления, ссылающиеся на данный адрес. Если на основании анализа предыстории предсказывается переход, целевой адрес посылается в блок предварительной выборки, не дожидаясь выполнения инструкции ветвления. Если же предсказание не сбывается, конвейер процессора окажется в простое в течение нескольких штрафных циклов (penalty cycles).
    Буфер стековых возвратов RSB (Return Stack Buffer) позволяет корректно предсказывать адрес возврата из процедур, которые вызываются из различных точек. Таким образом, вызов процедуры в линейной последовательности кодов не приводит к потере производительности предварительной выборки.
    По числу штрафных циклов переходы различаются следующим образом:


  • переходы, не приводящие к штрафным циклам. К ним относятся корректно предсказанные отсутствия переходов к адресам, имеющимся в BTB, и не случившиеся переходы к адресам, которых нет в BTB (по умолчанию принимается отсутствие перехода);

  • переходы, приводящие к минимальному числу штрафных циклов (приблизительно к одному). К ним относятся переходы, корректно предсказанные с помощью BTB;

  • ошибочно предсказанные переходы приводят к потере 10—15 циклов (иногда до 26).

    Для переходов с целевыми адресами, которых в BTB еще нет, применяется статическое предсказание.

Декодер преобразует инструкцию x86 в одну или несколько триадных микроопераций (два логических операнда-источника и один операнд назначения на микрооперацию). Микрооперации — это примитивные инструкции, исполняемые шестью параллельно работающими исполнительными блоками процессора. Многие инструкции (простые) декодируются в одну микрооперацию, часть инструкций декодируется в 1—4 микрооперации. Наиболее сложные инструкции декодируются в предопределенные последовательности микроинструкций, получаемые от секвенсора микроинструкций. Декодер учитывает и действия префиксов инструкций, а также инструкции-циклы (LOOP). Декодер способен за один такт выдать до шести микроинструкций (по одной с декодеров простых инструкций и до четырех с декодера сложной инструкции).

    Декодер за каждый такт может декодировать до трех инструкций, однако при сложных или длинных (более 7 байт) инструкциях их число уменьшается. Инструкции декодируются тремя декодерами, работающими параллельно: двумя декодерами для простых инструкций и одним для сложных. Декодер для сложных инструкций за один такт способен декодировать одну макроинструкцию, содержащую до четырех микроопераций. Два других декодера могут за такт декодировать только инструкцию, состоящую из одной микрооперации. Более сложные инструкции декодируются за несколько тактов. Если при программировании на ассемблере планировать последовательность инструкций так, чтобы они содержали по 4—1—1 микроопераций, число инструкций, декодированных за один такт, будет максимальным. Одну микрооперацию имеют простые инструкции типа «регистр-регистр» и инструкции загрузки. Две микрооперации имеют инструкции записи и простые инструкции чтения-модификации. Простые инструкции «регистр-память» состоят из двух-трех микроопераций. Простые инструкции «чтение-модификация-запись» состоят из четырех микроопераций. Сложные инструкции обычно содержат более четырех микроопераций и, следовательно, не могут быть декодированы за один такт.
    Ограниченность набора архитектурных регистров может быть причиной простоя из-за связи инструкций по используемым регистрам. Эта проблема решается введением 40 внутренних регистров общего назначения, реально требуемых в микрооперациях. Эти регистры могут хранить как целочисленные значения, так и FP-числа. Для распределения внутренних регистров очередная микрооперация отправляется на блок поддержки таблиц псевдонимов, где ссылка на логический архитектурный регистр (EAX, EBX и т.  п.) преобразуется в имя внутреннего регистра.
    В финале процесса декодирования распределитель в блоке поддержки таблиц псевдонимов добавляет к микрооперации биты статуса и флагов для «беспорядочного» исполнения и посылки результата в пул инструкций.



следующая страница >>