На сколько банков разбита оперативная память в пэвм реализованных на базе процессора 8086

Обновлено: 17.05.2024

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

Intel 8086 - первый 16-ти битный микропроцессор, разрабатывавшийся с весны 1976 года и выпущенный двумя годами позже 8 июня. Он открыл нам великий и ужасный одновременно мир x86 архитектуры комманд.

Отец, дед, прадед

intel 8086 был не первым процессором компании, первым был его прадед intel 4004, 4-х битный монстр на частоте 500-700 килогерц. В 1969 году к руководству компании постучался выдающийся электротехник Тед Хофф и сказал: "Господа, для каждого компьютера, что мы создаём, нам приходится заново прорабатывать всю логику его работы используя интегральные микросхемы, почему бы нам базовый набор операций не засунуть в одну интегральную схему и использовать её, вместо россыпи электроники?" Так родилась идея об однокристальном процессоре, который мог бы выполнять большинство математических операций без постоянной переработки схем для каждого компьютера.

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

Сын выстрелил

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

  • Тактовая частота: от 4 до 16 МГц
  • производительность:
  • 5 МГц (модель 8086), при частоте 4,77 МГц ( IBM PC ) — 0,33 MIPS
  • 8 МГц (модель 8086-2 — 0,66 MIPS)
  • 10 МГц (модель 8086-1 — 0,75 MIPS)
  • Приблизительные затраты времени на операции, процессорных циклов (EA — время, необходимое для расчёта эффективного адреса памяти, которое варьируется от 5 до 12 циклов):
  • Суммирование: 3—4 (регистровое), (9—25) +EA — при операциях с памятью
  • Умножение без знака: 70—118 (регистровое), (76—139) +EA — при операциях с памятью
  • Умножение знаковое: 80—154 (регистровое), (86—160) +EA — при операциях с памятью
  • Деление без знака: 80—162 (регистровое), (86—168) +EA — при операциях с памятью
  • Деление знаковое: 101—184 (регистровое), (107—190) +EA — при операциях с памятью
  • Перемещение данных: 2 (между регистрами), (8—14) +EA — при операциях с памятью
  • Разрядность регистров : 16 бит
  • Разрядность шины данных : 16 бит
  • Разрядность шины адреса : 20 бит
  • Объём адресуемой памяти: 1 Мбайт
  • Адресное пространство I/O: 64 Кбайт
  • Количество транзисторов: 29 000
  • Техпроцесс: 3000 нм (3 мкм)
  • Площадь кристалла:

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

Но внук-то хотя бы выстрелил?

image

Сегодня, в 2018 году, мы отмечаем сорокалетие, пожалуй, ключевого в истории персональных компьютеров процессора, а именно – Intel 8086.

Именно с него началась эпоха архитектуры x86, заложившей основы развития процессоров на многие годы и десятилетия вперед, именно ему мы обязаны взлету популярности компьютера как индивидуальной единицы, доступной каждому пользователю. В честь 40-летнего юбилея процессора, с которого началось превращение Intel в многомиллиардную корпорацию, компания представила небольшой символический подарок своим поклонникам — им стал юбилейный i7-8086K, первым процессором в истории Intel, способным работать на частоте 5 ГГц прямо из коробки.

image

Но сегодня мы не будем петь дифирамбы инженерам современных процессоров-лидеров, а вернемся в далекое прошлое, в 1976 год, где и началась история Intel 8086. И началась она с совершенно другого процессора.

Но как оказалось позже, они были крайне полезными – уже в июле 1976 года небольшая компания Zilog, основанная изобретателем Intel 4004 и Intel 8008 Федерико Фаджином, а также менеджером Intel Ральфом Унгерманном и еще одним разработчиком 4004, японцем Масатоси Сима, представила на рынке свой процессор Z-80, ставший фактической работой над ошибками на базе Intel 8080.

image

Усовершенствовав архитектуру оригинального процессора Intel, команда Zilog предложила недорогой и производительный процессор, сразу же полюбившийся многим производителям техники и ведущих платформ того времени. Именно Z-80 лег в основу легендарного ZX Spectrum, а также был установлен в не менее известный Commodore 128 в качестве сопроцессора. Z-80 стал невероятно успешным во многих уголках мира, и этот успех не мог остаться незамеченным – в Intel срочно решили, что Z-80 нужен достойный конкурент.

Именно здесь руководители компании вспомнили о замечаниях Стивена Морса, и предложили тому возглавить создание принципиально нового процессора, призванного составить конкуренцию новинке от Zilog. Intel не видели особенных причин задавать рамки в этом проекте – тогда всем казалось, что новый процессор будет быстрым ответом на Z-80, и забудется в течение следующих лет, поэтому Морс получил зеленый свет на любые эксперименты. Именно навязчивая мысль о том, что процессор должен строиться вокруг эффективности работы с ПО, как выяснилось позже, стала ключевой для развития всей индустрии.

Морсу приходилось отталкиваться от проекта 8080, в соответствии с которым процессор назначал «адрес» каждому месту, где хранились числа, подобно ярлыкам классификатора. Адреса представляли собой 16-битные двоичные числа, что позволяло обозначить 65536 различных адресов. Этот потолок был приемлем, когда разработчикам требовалось экономно использовать память. Однако теперь потребителям понадобился больший объем, они настаивали на преодолении барьера в 64 Кбайт.

В июле 1978 года новый процессор, получивший название Intel 8086, появился на рынке.

image

Его выход не стал фурором или невероятным успехом. Впервые процессор попал на прилавки в составе нескольких бюджетных компьютеров, не пользующихся популярностью, а также использовался в различных терминалах. Чуть позже он лег в основу микроконтроллера NASA, где использовался для контроля над диагностическими системами ракетного пуска вплоть до начала 2000-х годов.

Легендарный статус 8088 получил позже, когда в 1980 году IBM впервые задумалась о покорении рынка персональных компьютеров и создании компьютера, который был бы достаточно недорогим, и включал в себя комплектующие среднего класса. Именно IBM 5150, более известный под брендом IBM PC, и получил в основу процессор 8088 (по сути, все тот же 8086), благодаря чему Intel стала широко известной даже в кругах рядовых пользователей. А ведь на место 8088 претендовала и Motorola 68000 (основа первого Apple Macintosh), но руководство IBM отдала предпочтение Intel.

image

IBM PC быстро превратился в главную силу на рынке компьютерных систем, и Intel, следуя логике «дальше-лучше», продолжила выпускать процессоры – 80186, 80286, 80386, 80486, Pentium и так далее – на базе все той же основы Стивена Морса, заложенной им еще в 8086. Именно благодаря двум последним цифрам архитектура стала известна как «х86», а невероятная популярность компьютеров IBM обеспечила Intel огромные прибыли и узнаваемость в качестве бренда.

Архитектурные особенности 8086

В плане архитектурных особенностей Intel 8086 во многом опирался на опыт разработки процессора 8080, и его усовершенствованного собрата 8085, вышедшего на рынок летом 1976 года. Несмотря на некоторые параллели, 8086 стал первым 16-битным процессором компании, располагавшим 16 каналами данных и 20 адресными каналами, способными обрабатывать до 1 Мб данных, а также имел широкий набор инструкций, позволявших, среди всего прочего, проводить операции деления/умножения. Особенностью работы 8086 было наличие двух режимов – Минимального и Максимального, последний из которых предполагал использование процессора в системе с несколькими процессорами, а первый – в классических системах с одним процессором.

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

Конечно, из-за такого масштабного набора инноваций 8086 был значительно дороже предшественника, но и в подобном ключе у потребителя был выбор — Intel предлагала купить новинку в нескольких вариантах, зависевших от частот процессора – они варьировались от 5 до 10 МГц.

С точки зрения архитектуры микропроцессор Intel 8086 состоял из двух аппаратных модулей – модуля выполнения и модуля интерфейса шины. Модуль выполнения указывал модулю интерфейса шины, откуда получать данные инструкций, а после этого приступал к их подготовке и выполнению. Его суть сводилась к управлению данными с помощью декодера инструкций и блока ALU, при этом сам модуль не имел прямого соединения с шинами данных, и работал исключительно через модуль интерфейса шины.

Модуль выполнения содержал блок АЛУ, предназначенный для выполнения логических и арифметических операций, таких как умножение, деление, сложение, вычитание или операции по типу OR, AND и NOT. Также здесь был 16-битный регистр флагов, хранивший различные состояния операций в аккумуляторе – всего их было 9, 6 из которых были флагами состояния, а 3 являлись системными флагами, отражающими статус работы устройства.

К первым относились: флаг переноса, флаг четности, вспомогательный флаг переноса, флаг нуля, флаг знака и флаг переполнения. К системным флагам относились: флаг трассировки, флаг разрешения прерываний, а также флаг направления.

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

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

В данном модуле содержится одна из ключевых архитектурных особенностей процессора 8086 – очередь инструкций. Модуль интерфейса шины включает очередь инструкций, способную хранить до 6 байт инструкций в буфере, отсылая новые инструкции по конвейеру после того, как от модуля выполнения поступит соответствующий запрос. Термин pipelining появился именно с выходом на рынок процессора 8086, так как он означает подготовку следующей инструкции в момент, когда предыдущая находится в процессе выполнения.

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

Наконец, последним из регистров является 16-битный указатель команды, содержащий адрес следующей для выполнения инструкции.

Intel 8086 стал первым 16-битным процессором компании, доступном в 40-контактном DIP (ди ай пи) корпусе, который наряду со множеством прочих особенностей, стал одним из стандартов в микроэлектронике последующих лет.

Влияние и наследие

Стивен Морс, создавая концепцию небольшого «дочернего» процессора в стенах Intel, едва ли мог предположить, что находится на пороге создания исторического микропроцессора. Выход Intel 8086 был скромным и неоднозначным, однако его младший брат 8088 обрел славу в составе IBM PC/XT, позволив компании Intel обрести известность и получить колоссальную прибыль.

Архитектура х86 легла в основу всех дальнейших процессоров Intel, осознавшей удобство и универсальность концепции Морса «сначала ПО — потом начинка». Каждый следующий процессор строился на фундаменте предыдущего, обрастая новыми технологиями, инструкциями и блоками, но по своей сути немногим отличался от 8086.

image

И даже сегодня, глядя на i7 8086K, нужно понимать, что где-то глубоко внутри него еще находятся корни того самого процессора, увидевшего свет 40 лет назад, ознаменовавшего открытие эпохи х86.

Digposrw 03.jpg

Логический адрес в процессоре соответствует: сегмент + смещение.

Digposrw 05.jpg

21 бит, но брали младшие 20 бит(всего 20-ти разрядная шина памяти)

Digposrw 06.jpg

\,\!> - способов различного представления.

Введение сегментов различного назначения:

  • сегмент кода: const, доступные для чтения + команды
  • сегмент данных: чтение + запись
  • сегмент стека: чтение и запись - последовательно.

Digposrw 07.jpg

Digposrw 08.jpg

Содержание

Центральные процессоры: Intel 8086

То обстоятельство, что 16 из линий адреса микропроцессора используются и как линии данных, приводит к тому, что на системную шину нельзя одновременно выдавать адреса и данные. Мультиплексирование адресов и данных во времени сокращает число контактов корпуса до 40, но и замедляет скорость передачи данных. Однако благодаря тщательно разработанной временной диаграмме работы скорость передачи уменьшается не столь значительно, как этого следовало бы ожидать. Микропроцессор имеет 16 линий управления, предназначенных для сигналов квитирования во время передач данных и внешнего управления ЦП. Он рассчитан на одно напряжение питания +5 В и однофазную синхронизацию, частота которой достигает 5 МГц. (Модель 8086-2 имеет частоту синхронизации до 8 МГц, а модель 8086-1 – до 10 МГц.) Потребляемая процессором 8086 мощность составляет 1,75 Вт.

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

Внутри микропроцессора имеются следующие регистры: регистр команд, которым фактически служит 6-байтная очередь; 4 регистра данных, представляющих собой, по существу, набор арифметических регистров; группа указательных регистров, содержащая базовый и два индексных регистра, а также программный счётчик и указатель стека; группа из четырёх сегментных регистров; 16-битное слово состояния процессора (регистр флажков). Все регистры имеют длину 16 бит. Регистры данных допускают адресацию не только целых регистров, но и их младшей и старшей половин.

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

Как говорилось ранее, участвующие в формировании адреса указательные регистры имеют длину всего 16 бит, поэтому эффективный адрес (сумма базового и индексного адресов и смещения) имеет такую же длину. Но, с другой стороны, выдаваемый на шину адреса физический адрес должен содержать 20 бит. Дополнительные 4 бита образуются при сложении эффективного адреса с содержимым одного из сегментных регистров, умноженным на 16. Если результат сложения превосходит 220 – 1, 21-й бит отбрасывается; это называется «заворачиванием» адреса, потому что за максимальным адресом как бы следует нулевой.

Применение сегментных регистров, по существу, разделяет пространство памяти на перекрывающиеся сегменты, каждый из которых имеет размер 64 Кбайт и начинается на 16-байтной границе (называемой границей параграфа), т.е. начинается с адреса, кратного 16. 16 сегментов, начинающихся с адресов, кратных 64К, называют страницами памяти, а такие адреса – границами страниц. Как нетрудно увидеть, страницы не пересекаются между собой и покрывают всю доступную память. Обычно деление на страницы используется для совместного функционирования устройств, интерфейсы которых отображены на адресное пространство памяти; тогда каждое такое устройство использует одну страницу памяти, и адрес ячейки в адресном пространстве устройства будет совпадать с её адресом в сегменте, начинающемся там же, где и эта страница памяти. Также страничное деление упрощает разработку устройств, совместимых друг с другом, поскольку оно допускает лишь 16 типов устройств, отображающих свои интерфейсы на память. Так, в компьютере IBM PC страницы памяти с A по E используются как «видеопамять» (адресное пространство видеоадаптера), а страница F занята БСВВ, размещённой в ПЗУ45. Это ограничивает память, доступную пользователю, до 640 Кбайт. В защищённом режиме при использовании виртуальной памяти понятию «страница памяти» придаётся совершенно иное значение. Об этом будет рассказано в дальнейшем.

Наличие сегментных регистров обеспечивает следующие преимущества:

  • ёмкость памяти может доходить до 1 Мбайт, хотя команды оперируют 16-битными адресами;
  • секции кода, данных и стека могут иметь длину более 64 Кбайт благодаря использованию нескольких сегментов кода, данных или стека;
  • упрощается использование отдельных областей памяти для программы, её данных и стека;
  • при каждом выполнении программы она сама и (или) её данные могут размещаться в разных областях памяти. (Это связано также с мультипрограммированием, поскольку позволяет динамически перемещать программы между различными областями памяти.)

Сигнал сброса процессора обнуляет все его регистры, кроме регистра сегмента кода, в который загружается шестнадцатеричное значение FFFF. Таким образом, при перезагрузке процессора управление передаётся по физическому адресу FFFF0 (шестнадцатеричное значение). Обычно блок памяти, адресуемый этим значением, располагается в ПЗУ и содержит инструкции инициализации компьютера.

Очередь команд микропроцессора непрерывно заполняется, когда системная шина не требуется для других операций. Такое «опережение»46 значительно увеличивает пропускную способность ЦП, так как к моменту завершения текущей команды следующая команда чаще всего уже находится в ЦП, и нет необходимости дополнительно считывать её из памяти. В случае перехода очередь сбрасывается и заполняется заново, что не даёт экономии времени, но в среднем это происходит нечасто. Длина команд микропроцессора 8086 составляет от одного до шести байт, но организация очереди позволяет считывать команды только словами по чётным адресам. Имеется только одно исключение, связанное с переходом по нечётному адресу. В этом случае ЦП считывает сначала один байт, а затем продолжает считывать слова по чётным адресам.

Система команд микропроцессора 8086 состоит из 98 команд: 19 команд передачи данных, 38 команд их обработки, 24 команд перехода и 17 команд управления процессором. Каждая команда состоит из кода операции (КОП, или опкод47), идентифицирующего её, и операндов, несущих требуемую для операции информацию. Команды могут содержать несколько операндов, но чем больше операндов и чем они длиннее, тем больше места занимает команда в памяти и тем больше времени требуется для передачи её в ЦП. КОП и операнды могут иметь произвольную длину и не обязаны быть непрерывными; в то же время общая длина команды должна выражаться целым числом байт. Часто КОП занимает первый байт команды и три средних бита второго байта (это 3-битовое поле часто называют mod). КОП других команд занимает часть первого байта команды, а остальные биты этого байта занимает(ют) операнд(ы). Команды, добавленные к системе команд процессора 8086 в более совершенных процессорах (главным образом, в процессорах 80186 и 80386), содержат КОП в первых двух байтах и операнд(ы) – в остальных. Всего же в системе команд процессора 8086 насчитывается более 3800 команд вместе со всеми их вариантами.

Чтобы минимизировать общее число бит в команде, большинство команд процессора 8086 имеют не более двух операндов, причём минимум одним из операндов в двухоперандной команде является регистр, так как адреса памяти и ввода-вывода требуют сравнительно много бит (8…20), а из-за ограниченного числа регистров для определения регистра требуется всего несколько бит. Ограничение двумя операндами, конечно, уменьшает гибкость многих операций, но в действительности излишняя гибкость и не нужна. Например, команда сложения, в которой необходимо указывать два слагаемых и результат, приводится к двум операндам посредством загрузки суммы на место одного из слагаемых. При этом оно теряется, но обычно это не играет роли. Если же слагаемое потребуется в дальнейшем, его приходится дублировать (запоминать где-то ещё) до выполнения сложения.

В персональных компьютерах микропроцессор 8086 практически не использовался, т.к. до 1980 г. 16-битные микросхемы поддержки для него были весьма дороги и дефицитны, а в 1979 г. уже был выпущен микропроцессор 8088, системы на базе которого дешевле в производстве. Однако в компьютерах Compaq DeskPro использовался именно этот процессор, что повышало производительность таких ПК по сравнению с IBM PC, построенным на основе микропроцессора 8088.

Устройство и работа микропроцессора Intel 8086 (К1810ВМ86)

Структура микропроцессора Intel 8086

Микропроцессор содержит две основные части (рис. 2): операционное устройство и устройство шинного интерфейса. Оба устройства могут работать параллельно, что обеспечивает совмещение во времени процессов выборки и исполнения команд. Операционное устройство содержит регистры общего назначения, арифметико-логическое устройство (АЛУ), регистр флагов (F). блок управления и обеспечивает выполнение команд.


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

Микропроцессор имеем следующие программно доступные регистры:

АХ(АН/AL) - регистр-аккумулятор; ВХ(ВH/BL) - индексный регистр базы: СХ(СН/CL) - регистр-счетчик; DX(DH/DL) - регистр данных; SР - регистр-указатель стека; ВР - регистр-указатель базы; SI - индекс источника; DI - индекс приемника; СS - регистр сегмента кода; DS - регистр сегмента данных; SS - регистр сегмента стека; ES регистр дополнительного сегмента данных.

Регистр флагов содержит следующие флаги:

СF (Саrrу Flаg) - флаг переноса; РF (Раrity Flаg) - флаг паритета; АF (Auxiliary Flag) - вспомогательный флаг переноса; ZF (Zero Flаg) - флаг нуля; SF (Sign Flаg) - флаг знака; OF (Overflow Flag) - флаг переполнения; ТF (Тrар Flаg) - флаг трассировки; IF (Interrupt Flаg) - флаг прерывания: DF (Direction Flag) - флаг направления.


Циклы работы микропроцессора

Рассмотрим работу цикла вывода/записи (рис. 3). В процессе работы микропроцессор не использует сигнал обратной связи. Каждый шинный цикл инициализируется устройством шинного интерфейса и имеет минимальную продолжительность - 4 такта генератора тактовых импульсов. В такте Т1 на совмещенную шину адреса/данных выдается адрес, который может быть считан с выводов АD0-АD15 и зафиксирован по сигналу АLЕ.

Если внешнее устройство является медленным и оказывается не готово к обмену, 0 чем оно информирует процессор с помощью сигналов READY или RDY (на рис 3 не показан), то процессор переходит в режим ожидания готовности (TW) между тактами ТЗ и Т4.


Рис. 3. Временной цикл работы процессора i8086 (цикл записи).


Рис. 4. Условно-графическое обозначение микросхемы процессора К1810ВМ86.

Структура минимально укомплектованной системы на базе микропроцессора К1810ВМ86

Системная магистраль микропроцессора имеет раздельные шины адреса и данных, но на выходах микропроцессора они мультиплексированы (рис. 5).


Рис. 5. Схема минимально укомплектованной системы на базе процессора К1810ВМ86.

В ходе разработки микропроцессорной системы на базе микропроцессора ВМ86 возникают задачи демультиплексирования шины адреса и данных (ШАД), буферирования шин адреса (ША). а также формирования сигналов управления для блоков памяти и внешних устройств.

Для управления взаимодействия с внешними устройствами микропроцессор генерирует сигналы:

Несмотря на то, что первый персональный компьютер был выпущен фирмой Apple, сейчас персональными компьютерами называют в основном IBM PC -совместимые компьютеры. Это связано, прежде всего, с тем, что фирма IBM выбрала правильную рыночную политику: она не скрывала принципов устройства своих компьютеров и не патентовала основных решений. В результате многие производители стали выпускать совместимые компьютеры, и они быстро стали фактическим стандартом. Из-за большого объема выпуска персональные компьютеры начали быстро дешеветь. К тому же для IBM -совместимых персональных компьютеров стали разрабатывать множество программных средств, что еще больше способствовало их распространению. Поэтому, несмотря на некоторые существенные архитектурные недостатки, IBM -совместимые персональные компьютеры сейчас уверенно занимают первое место на рынке.

С самого начала фирма IBM ориентировалась на процессоры Intel. У этих процессоров были очень мощные конкуренты, например, процессоры фирм Motorola или Zilog, превосходившие процессоры Intel по многим параметрам, но именно благодаря персональным компьютерам процессоры Intel смогли выйти победителями в конкурентной борьбе. К тому же еще некоторые фирмы (например, AMD , VIA , Cyrix) выпускают Intel-совместимые процессоры. Поэтому мы рассмотрим основные особенности процессоров фирмы Intel. Это позволит нам также проследить основные тенденции в развитии процессоров за последние десятилетия.

16-разрядный процессор i80286, выпущенный в 1982 году, был использован в персональных компьютерах IBM PC AT. Принципиально новым было в нем то, что он мог адресовать до 16 Мбайт памяти и имел помимо реального режима, аналогичного i8086, еще и так называемый защищенный режим , позволяющий более гибко управлять памятью. Производительность этого процессора при тактовой частоте 8 МГц составляла 1,2 MIPS .

Важным шагом стало появление в 1985 году полностью 32-разрядного процессора i80386, способного адресовать до 4 Гбайт памяти (32-разрядная адресная шина ). Он имел еще более развитую систему управления памятью MMU ( Memory Management Unit). Производительность его при тактовой частоте 16 МГц составляла 6 MIPS . С появлением этого процессора стала бурно развиваться операционная система MS Windows , существенно изменившая процесс работы с компьютерами типа IBM PC .

Еще одним принципиальным шагом стало создание в 1989 году процессора Intel 486DX, в котором появились встроенный математический сопроцессор , существенно ускоривший выполнение арифметических операций, и внутренняя кэш - память , ускоряющая обмен с оперативной памятью. Максимальный объем адресуемой памяти этого процессора — 4 Гбайт. На тактовой частоте 25 МГц производительность была 16,5 MIPS . Начиная с процессора 486, получило распространение так называемое умножение тактовой частоты, то есть внутреннее удвоение и даже учетверение внешней тактовой частоты (обозначается 486DX2, 486DX4).

В 1995 году появились первые процессоры Pentium, открывшие новый этап в развитии семейства. Они были 32-разрядными внутри, но имели 64-разрядную внешнюю шину данных . Принципиальным отличием было использование в них так называемой суперскалярной архитектуры , следствием чего стало более высокое быстродействие при той же тактовой частоте, что и i486DX. При тактовой частоте 66 МГц производительность процессора достигала 112 MIPS . В 1996 году тактовая частота Pentium была доведена до 200 МГц, а стоимость снизилась настолько, что он стал рядовым процессором персональных компьютеров семейства IBM PC .

В 1997 году Pentium был дополнен технологией MMX , призванной ускорять выполнение мультимедийных приложений (обработку изображений и звука). И в этом же году появился процессор Pentium II, который включает в себя технологию ММХ и имеет более высокое быстродействие . Возможная тактовая частота достигла 400 МГц.

В последние годы появились процессоры Pentium III и Pentium IV, имеющие еще более развитую архитектуру и тактовую частоту, превышающую 1 ГГц у Pentium III и 3 ГГц у Pentium IV.

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

7.2.1. Особенности процессоров 8086/8088

Описание микропроцессоров фирмы Intel мы начнем с процессоров i8086/8088. Именно заложенные в них архитектурные решения во многом определили архитектуру последующих моделей семейства Intel, поддерживающих совместимость с более ранними моделями. В том числе и с недостатками и ограничениями предыдущих моделей.

Одна из характерных особенностей процессоров i8086/8088 — принцип сегментирования памяти. То есть вся память представляется не в виде непрерывного пространства, а в виде нескольких кусков — сегментов заданного размера (по 64 Кбайта), положение которых в пространстве памяти можно программно изменять. Об этом уже говорилось в разделе 3.1.2 (см. рис. 3.5 и 3.6).

Процессор 8086/8088 имеет 14 регистров разрядностью по 16 бит. Об их назначении также уже говорилось в разделе 3.2.

Для ускорения выборки команд из памяти в процессоре 8086 предусмотрен внутренний 6-байтный конвейер (в процессоре 8088 — 4-байтный). Конвейер заполняется читаемыми из памяти командами во время выполнения предыдущей команды и сбрасывается (считается пустым) при выполнении любой команды перехода (даже если это команда перехода на следующий адрес).

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

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

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

При старте процессора (по внешнему сигналу RESET ) он переходит в адрес памяти FFFF0 и начинает выполнение программы, которая размещается начиная с этого адреса.

Процессор может обрабатывать 256 типов прерываний: внешних (аппаратных), программных и внутренних. Векторы прерываний представляют собой двойное слово (два слова по 16 разрядов), определяющее сегмент и смещение начального адреса программы обработки прерываний. Для векторов прерываний отведена область памяти с адресами 00000…003FF. Внутренние прерывания вырабатываются при особых ситуациях:

  • прерывание 0 соответствует переполнению при делении на нуль;
  • прерывание 1 вырабатывается после каждой команды при установленном флаге трассировки TF в регистре состояния процессора (см. раздел 3.2);
  • прерывание 4 вырабатывается по специальной команде INTO , если установлен флаг переполнения OF в регистре состояния процессора (это условное прерывание по переполнению).

Особое место занимает немаскируемое прерывание NMI (Non- Masked Interrupt ), которое вырабатывается при поступлении внешнего сигнала NMI и не зависит от состояния флага разрешения аппаратных прерываний IF . В компьютере оно используется для контроля четности памяти, контроля корректности обмена с памятью и устройствами ввода/вывода, а также для обработки так называемых исключений, то есть особых условий, возникающих в процессе работы. Немаскируемым оно называется именно потому, что его нельзя запретить.

Важная отличительная особенность процессора — разделение операций обмена с устройствами ввода/вывода и с памятью. Для обмена с устройствами ввода/вывода используются как отдельные команды ввода и вывода, так и специальные управляющие сигналы на шине управления . Адреса и данные как при обмене с памятью, так и при обмене с устройствами ввода/вывода передаются по одним и тем же шинам. Но если для обмена с памятью используются все 20 разрядов шины адреса (адресуется 1 Мбайт — адреса 00000 . FFFFF), то в циклах обмена с устройствами ввода/вывода — только 16 разрядов шины адреса (адресуется 64 Кбайта — адреса 00000 . 0FFFF). Такой подход имеет как свои преимущества (например, упрощение реализации прямого доступа к памяти), так и недостатки (усложнение системы команд, увеличение количества управляющих сигналов).

Микропроцессоры i8086/8088 выполнены в виде интегральной микросхемы в 40-выводном корпусе. Отличие в назначении выводов микросхемы между ними только одно: адрес в процессоре 8088 не мультиплексирован с данными (передается по отдельным линиям), а в процессоре 8086 — мультиплексирован.

Процессор работает от одного источника питания напряжением +5В и требует внешнего тактирующего сигнала с частотой, определяемой номером модели (от 4,77 МГц до 10 МГц).

Специальный управляющий сигнал MN/ MX определяет минимальный или максимальный режим работы процессора. В минимальном режиме процессор сам вырабатывает сигналы управления для внешней шины. Этот режим используется для построения простейших систем. Для работы в составе компьютера применяется максимальный режим, при котором сигналы управления внешней шиной вырабатываются специальной микросхемой контроллера шины i8288.

7.2.2. Особенности процессора 80286

Несмотря на то, что процессор 80286 остался 16-разрядным, как и его предшественник 8086, он представлял собой новое поколение процессоров, что определило его высокую популярность и обеспечило персональному компьютеру на его основе (IBM PC AT) довольно долгую жизнь. Этот процессор отличается тем, что он имеет специальные средства для работы в многопользовательских и многозадачных системах.

Наиболее существенное отличие от процессора 8086/8088 — это механизм управления адресацией памяти, который обеспечивает четырехуровневую систему защиты и поддержку виртуальной памяти. ( Виртуальная память — это внешняя память большого объема, с которой процессор может взаимодействовать как со своей системной памятью, но с некоторыми ограничениями). Специальные средства предусмотрены также для поддержки механизма переключения задач (Task switching). То есть процессор способен выполнять несколько задач одновременно, переключаясь время от времени между ними. В процессоре 80286 также расширена система команд за счет добавления команд управления защитой и нескольких новых команд общего назначения.

Процессор 80286 может работать в двух режимах:

  • Реальный режим (8086 Real Address Mode — режим реальной адресации), полностью совместимый с процессором 8086/8088. В этом режиме возможна адресация только в пределах 1 Мбайта физической памяти. Он используется для обеспечения программной преемственности с процессором 8086/8088.
  • Защищенный режим (Protected Virtual Address Mode — защищенный режим виртуальной адресации). В этом режиме возможна адресация в пределах 16 Мбайт физической памяти. Такое решение связано с необходимостью построения компьютеров с большим объемом памяти, которые обеспечивали бы поддержку более сложных программ. В защищенном режиме система команд включает набор команд 8086, расширенный для обеспечения аппаратной поддержки многозадачного режима и виртуальной памяти.

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

В составе компьютера под управлением операционной системы MS DOS процессор 80286 работает в реальном режиме, а защищенный режим используют операционные системы типа UNIX, OS/2, NetWare286, а также операционные системы семейства MS Windows. Подробнее особенности этих режимов будут рассмотрены в следующем разделе.

Как и процессор 8086, 80286 имеет 16-разрядную внешнюю шину данных и 6-байтный конвейер команд. Однако быстродействие процессора 80286 при тактовой частоте 12,5 МГц примерно в 6 раз выше, чем у 8086 с тактовой частотой 5 МГц. Это достигается за счет усовершенствованной архитектуры и снижения количества тактов на одну команду. Для ускорения выполнения математических операций предусмотрено подключение к процессору 80286 микросхемы математического сопроцессора 80287.

Назначение внутренних регистров процессора 80286 такое же, как у процессора 8086/8088. Но в слове состояния процессора ( PSW ) добавлены три используемых разряда, и, кроме того, появился еще один внутренний регистр — регистр управления со словом состояния машины ( MSW — Machine State Word), в котором используется только четыре бита (рис. 7.4).


Рис. 7.4. Форматы регистров признаков (PSW) и управления (MSW) процессора 80286.

Дополнительные биты слова состояния процессора PSW имеют следующее назначение (подробнее о них — в следующем разделе):

  • IOPL (Input/Output Privilege Level ) — два бита, определяющие уровень привилегий ввода/вывода;
  • NT ( Nested Task flag) — флаг вложенной задачи.

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

  • PE (Protection Enable) — разрешение защиты. Установка этого флага переводит процессор в защищенный режим . Но очистка флага не переводит в реальный режим (требуется аппаратный сброс процессора).
  • MP (Monitor Processor extension) — мониторинг внешнего математического сопроцессора .
  • EM (Processor Extension Emulated ) — эмуляция математического сопроцессора .
  • TS ( Task Switch ) — переключение задач. Как и два предыдущих разряда, этот разряд управляет сопроцессором.

Сочетание MP =0 EM=0 TS=0 , устанавливаемое по аппаратному сбросу (по сигналу RESET ), обеспечивает совместимость с 8086/8088. Сочетание MP =1 EM=0 используется при совместном включении с сопроцессором 80287, а сочетание MP =0 EM=1 применяется в случае программной эмуляции сопроцессора, при которой функции сопроцессора выполняются основным процессором, но гораздо медленнее.

Остановимся подробнее на организации памяти процессора 80286. 24-разрядная внешняя шина адреса позволяет адресовать 16 Мбайт физической памяти, но в реальном режиме доступен только 1 Мбайт, начинающийся с нулевого адреса (000000…0FFFFF). Так же, как и в 8086, применяется сегментация памяти, но управление сегментацией в реальном и защищенном режимах различно.

В реальном режиме процессор 80286, в отличие от 8086, имеет средства контроля перехода через границу сегмента. Например, при попытке обращения к слову, имеющему смещение FFFF (его старший байт выходит за границу сегмента), или при выполнении команды, все байты которой не умещаются в данном сегменте, процессор вырабатывает специальное прерывание — Segment Overrun Interrupt .

В защищенном режиме существуют отличия от 8086, касающиеся определения сегментов:

  • Сегментные регистры CS , DS , SS и ES хранят не сами базовые (начальные) адреса сегментов, а селекторы, определяющие адреса в памяти, по которым хранятся дескрипторы ( описатели ) сегментов. Область памяти с дескрипторами называется таблицей дескрипторов.
  • Каждый дескриптор сегмента содержит базовый адрес сегмента, размер сегмента (от 1 до 64 Кбайт) и его атрибуты.
  • Базовый адрес сегмента имеет разрядность 24 бит, что и обеспечивает адресацию 16 Мбайт физической памяти.
  • Селекторы, загружаемые в 16-битные сегментные регистры , имеют три поля: RPL (Requested Privilege Level ) — запрашиваемый уровень привилегий , TI (Table Indicator ) — индикатор использования локальной или глобальной таблицы дескрипторов, INDEX — номер дескриптора в таблице (формат показан на рис. 7.5).

Рис. 7.5. Формат селектора сегмента процессора 80286.

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

Дескрипторы хранятся в памяти и занимают по четыре смежных 16-разрядных слова (то есть 8 байт). При загрузке нового значения селектора дескрипторы считываются из памяти и сохраняются во внутренних программно недоступных (и невидимых) регистрах процессора. До смены значения селектора при обращениях к памяти используются значения дескрипторов только из этих невидимых регистров (их называют кэш -регистрами).

В защищенном режиме команды ввода/вывода процессора являются привилегированными. Это означает, что они могут выполняться задачами только с определенным уровнем привилегий, определяемых полем IOPL регистра признаков. Несанкционированная попытка выполнения этих команд вызывает прерывание по нарушению защиты.

Как и 8086, процессор 80286 может обрабатывать до 256 типов прерываний. Прерывания подразделяются на аппаратные (маскируемые или немаскируемые), вызываемые сигналами на входах процессора, программные, вызываемые командой INT , и исключения инструкций. При этом аппаратные и программные прерывания работают точно так же, как в 8086/8088.

Исключения инструкций (Instruction Exceptions) или просто исключения случаются при возникновении особых условий при выполнении операций (в 8086 аналогом исключений являлись внутренние прерывания процессора). Обработка исключений проводится аналогично обработке прерываний.

Система команд процессора 80286 включает, помимо полного набора8086, ряд дополнительных команд, например:

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

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

Микропроцессор КР1810ВМ86, советский аналог Intel 8086

Содержание

История [ ]

Предшественники [ ]

Описание [ ]

Всего в процессоре Intel 8086 было 14 16-разрядных Шины [ ]

Размер Работа с памятью [ ]

Сегментная адресация памяти использует тот факт, что обращения к памяти со стороны процессора легко можно разделить на обращения к коду программы, обрабатываемым данным и языков высокого уровня для платформы x86 позволяют указывать модель памяти в соответствии с требуемыми объёмами кода и данных.

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

Возможное переполнение при вычислении физического адреса в процессоре 8086 игнорируется. Например, инструкция безусловного перехода по адресу 001016 при значении сегмента кода FFFF16 выполнит переход по физическому адресу 0. Этого не происходит в старших моделях процессоров x86, например 80286, имевшем 24 адресных линии, поэтому в компьютерах IBM PC/AT для обеспечения совместимости был введен специальный вентиль Gate A20, принудительно обнуляющий бит А20 системной шины адреса.

Поскольку в старших моделях процессоров x86 были введены новые способы расширения адресного пространства, способ, используемый процессором 8086, был назван « Система команд [ ]

Процессоры 8086 и 8088 могут работать в двух режимах: максимальном и минимальном Микросхемы поддержки [ ]

  • Intel 8251 — универсальный синхронно/асинхронный последовательный приёмопередатчик
  • Микрокомпьютеры на основе Intel 8086 [ ]

Тем не менее, дальнейшее развитие 16-разрядных систем со временем привело к выпуску большого ассортимента 16-разрядных микросхем поддержки от различных производителей по доступным ценам. Это позволило разрабатывать дешёвые и разнообразные микрокомпьютеры на процессорах Intel 8086. Однако, к 1982 году в ассортименте Intel появились более современные и производительные процессоры с 16-разрядными шинами данных, Intel 80186 и Intel 80286, и производительные компьютеры стали строиться преимущественно на процессоре Intel 80286 и, реже, на основе Intel 80186 . Но всё же в основе некоторых микрокомпьютеров использовался Intel 8086, одним из таких является Технические характеристики [ ]

Читайте также: