История развития процессоров. Процессоры i8086/8088
Первой продукцией фирмы Intel были микросхемы оперативной памяти. При выполнении заказа японской фирмы Busicom у сотрудника Теда Хоффа возникла идея создания универсальной интегральной микросхемы, успешную разработку которой возглавил Федерико Феджин. Результатом стало появление первого микропроцессора: Intel 4004. Итак, в 1971 году был создан процессор i4004 - четырехразрядный микропроцессор, основа программируемых калькуляторов (некогда популярные журналы типа "Юный техник" и "Техника молодежи" публиковали даже ИГРЫ для подобных калькуляторов - вы помните это время? Я ещё помню ). Следующий процессор i8008 (1972 год) был быстрее своего предшественника в два раза и был уже восьмиразрядным. i8008 послужил основой для прототипа персонального компьютера. На процессоре i8080 (1974 год) следует остановиться подробнее... Именно этот процессор можно назвать первым "классическим" процессором. Его появление имело большое значение, которое трудно переоценить. i8080 являлся "сердцем" первого в мире персонального компьютера Altair. Очень удивительно, что массовое увлечение самостоятельной сборкой "компьютера" из некоего набора было популярным не только у нас, но и на западе... И даже дефицит был... Все современные процессоры х86 являются дальними потомками 8080 - все они ещё могут исполнять код i8080. Однако, несмотря на свое огромное значение и большой объем продаж, процессор оказался потеснён на рынке более удачным Zilog-80, который в свою очередь обязан ему своей популярностью... Процессор Z-80 был создан группой инженеров, ранее работавших в Intel и участвовавших в разработке 8080. Новый процессор был переработан с целью улучшения, но сохранил базовую совместимость с 8080. Z-80 был выпущен в огромном количестве и являлся "сердцем" многих микрокомпьютеров в эру CP/M. Процессор был любим программистами за простоту и гибкость. Бытует мнение, что Z-80 более подходил как основа для разработки первых 16-разрядных процессоров. Однако, последующие разработки Zilog: 16-разрядный Z-800 и 32-разрядный Z-8000 появились слишком поздно и имели определенные технические проблемы. Некоторые идеи, заложенные в процессоре, были предшественниками самых современных решений, которые появились значительно позже. Например, команды пересылки и копирования блоков являются дальними предками современного набора команд SIMD. Как бы там ни было, но процессор оказался удачным и одним из долгожителей. Даже сегодня есть устройства, базирующиеся на этом процессоре. Следующий процессор от Intel -- i8085 (1976 год). Этот процессор сменил i8080, и был достаточно популярен, особенно, как основа для машин типа CP/M. Являясь усовершенствованием i8080, он тем не менее, не смог затмить Z-80, к тому же, не был способен выполнять код, ориентированный на Z-80, а программирование для i8085 было сложнее.
16-разрядные процессоры сами по себе уже представляют в основном лишь исторический интерес. Но именно на них "выехали" миллионы РС, обеспечивающих живучесть и подстегивающих развития всего семейства.
Процессоры i8086/8088
Процессоры 8086, выпущенные фирмой Intel в 1978 году, относятся к первому поколению 16-битных процессоров. Годом позже появилась его модификация 1088. Оба эти процессора выполняют 8/86-битные логические и арифметические операции, включая умножение и деление, операции с строками и операции ввода-вывода. Процессоры имеют 20-разрядную шину адреса, которая позволяет адресовать до 1 Мб памяти. Шина данных у 8086 16-разрядная, у 8088 разрядность внешней шины данных сокращена до 8 бит. Это сокращение, сделанное с целью удешевления системы в целом, оборачивается некоторым снижением производительности: 8086 за счет большей разрядности шины работает примерно на 20-60% быстрее, чем 8088 с той же тактовой частотой. Функциональные различия этих процессоров, обусловлены разной разрядностью шины, появляются только в способе подключения 8- и 16-разрядных внешних устройств. С программной точки зрения эти процессоры идентичны, их система команд и набор процессоров включены во все процессоры РС- совместимых компьютеров. От родоначальника - процессора 8086 - пошло общее обозначения семейства: х86. Процессоры поддерживают аппаратные и программные прерывания и допускают разделяемое использование шины совместно с другими процессорами или контроллерами (например к, прямого доступа к памяти - DMA) . Также предусмотрено использование математического сопроцессора 8087, существенно повышающего производительность вычислений.
В процессорах применима конвейерная архитектура, позволяющая выполнить выборку кодов инструкций из памяти их декодирование во время выполнения внутренних операций. Конвейер повышает производительность процессора за счет сокращения времени простоя его операционных узлов. Конвейер процессора 8086 имеет 6-байтную внутреннюю очередь инструкций. Блок предварительной выборки при наличии 2 свободных байт в очереди старается ее заполнить в то время, когда внешняя шина процессора не занята операциями обмена. Очередь у процессора 8088 сокращена до 4 байт, а предварительная выборка осуществляется уже при наличии одного свободного байта. Это отличия оптимизируют конвейер с учетом разрядности шины данных. Очередь обнуляется при выполнении любой команды передачи управления, даже при переходе на следующий адрес. Этим свойством часто пользуются при программировании управления устройствами ввода-вывода, требующими задержки между соседними операциями обмена.
Организация памяти 8086/88
Память для процессоров 8086/8088 представляется в виде линейной последовательности байт. Для обращения к памяти процессор (совместно с внешней схемой) формирует шинные сигналы MEMWR# (Memory Write) и MEMRD# (Memory Read) для операции записи и считывания соответственно. Охват пространства размером 1 Мб обеспечивается 20-разрядной шиной адреса. Логическая память разбивается на сегменты размером 65 Кб. Физический адрес памяти (поступающий на шину адреса разрядностью 20 бит) состоит из двух 16-битных частей - адрес сегмента Seg и исполнительного адреса ЕА (executive address), суммируемых со смещением на 4 бита .
Адресация ввода-вывода
Для обращения к устройствам ввода-вывода процессор имеет отдельные команды IN и OUT, результатом выполнения которых является формирование шинных сигналов IORD# (Input/ Output Write) для чтения или записи одного или двух байт. Данные при чтении могут помещаться только в регистр AL или AX и выводятся из этих же регистров. В циклах ввода-вывода используется только 16 младших бит шины адреса (старшие биты при этом нулевые), что позволяет адресовать до 64 Кб регистров ввода-вывода. Адрес устройства задается либо в команде (только младший байт, старший - нулевой), либо берется из регистра DX (полный 16-битный адрес).
Категория: