logo search
Дубинин Н

3. Процессор i486

ЭВМ на базе процессора i486 появились в 1989 г., когдаIntelвпервые продемонстрировала СБИСi486DX. Процессорi486 в дальнейшем был усовершенствован с использованием новой технологии и, как указывалось выше, имеет несколько модификаций. Наиболее важные его возможности следующие [21]:

- совместимость с системой команд i86,i286,i386;

- 32-битная шина адреса и 32-битная шина данных;

- совместимость FPUс сопроцессорамиi87,i287,i387 и поддержка 32/64/80-битных форматов чисел;

- наличие кэш первого уровня с быстродействием регистров МП;

- конвейеризация команд, т.е. их параллельная подготовка к выполнению;

- пакетные циклы обмена, снижающие общее время вычислений и передачи данных между МП и DRAMс использованием внутренних буферов записи;

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

Схема процессора i486 представлена на рис. 2.8. Он содержит устройство управления (УУ), арифметико-логическое устройство (АЛУ), устройство с плавающей точкой (FPU), устройства сегментации и страничного преобразования, кэш-память (КЭШ), устройство предвыборки команд и шинный интерфейс. В составе устройств на схеме показаны все пользовательские и системные регистры процессора. Рассмотрим более подробно назначение устройств процессора.

Шинный интерфейс – это устройство связи i486 с шиной процессора и через контроллер шины с другими блоками ЭВМ. Он обеспечивает двунаправленную передачу данных и адресов, формирование управляющих сигналов (УС) для подключения внешних блоков к контроллеру шины. Передача данных и их прием осуществляется через буферные регистры интерфейса в режиме сквозной записи и пакетного обмена.

Для повышения быстродействия данные и команды (коды) поступают в процессор в режиме опережающей выборки и располагаются в сверхбыстродействующем кэш. Кэш емкостью 8 Кб предназначен для хранения данных и кодов, непосредственно участвующих в вычислениях. Информация в кэш располагается ячейками (строками) по 16 байт, соответствует физическим адресам (ФА) в ОЗУ. Обычно часть (21 старший разряд) ФА представлена в кэш как тэг для обеспечения быстрого ассоциативного поиска. При обращении к кэш процессор передает из устройств сегментации или страничного преобразования ФА. Если по данному ФА информация в кэш имеется, то нужная строка в 16 байт считывается в буфер заполнения, затем из нее 8/16/32-разрядные данные передаются на внутреннюю шину данных (ВШД). Если данный ФА отсутствует в кэш (“промах”), то осуществляется обращение к ОЗУ.Считанная из ОЗУ информация передается по ШД на ВШД и параллельно в буфер заполнения кэш. В следующие такты (опережающая выборка) в буфер заполнения передаются еще 3 старших ячейки ОЗУ по значению ФА.

Затем информация из буфера заполнения размерностью строки кэш заносится в ячейку кэш по адресу ФА(11, 4), соответствующему 7 младшим разрядам ФА, начиная с четвертого, и в направлении, определенном блоком достоверности (LRU). Так как данные и коды в программах располагаются чаще всего возле близлежащих адресов, такой режим позволяет уменьшить число промахов при обращении к кэш. При объявлении строки недостоверной по шине адреса А(31,4) передается ФА, и при обнаружении этого адреса в кэш соответствующий бит достоверности в блокеLRUсбрасывается.

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

Первая ступень дешифрации позволяет обратиться команде к памяти еще до момента передачи ее на выполнение в УУ. Тем самым в момент выполнения команды соответствующие микрокоманды УУ реализуют ее за 1,2 такта, включая передачу результата в регистр. При ветвлениях в программе и смене естественного порядка следования адресов устройство предвыборки очищается, а затем заполняется новой очередью команд.

Устройство управления i486 микропрограммного типа оптимизировано с целью уменьшения числа микрокоманд для обработки каждой команды. Кроме того, часть микроопераций для выполнения операции каждой команды реализуется в результате конвейеризации в устройстве предвыборки команд. Другая часть микроопераций выполняется аппаратно в целочисленном устройстве (АЛУ) и сопроцессоре. Поэтому на последнем шаге выполнения многие команды имеют одну микрокоманду, которая выполняется за один такт синхронизации. Микрооперации этой микрокоманды чаще всего управляют АЛУ,FPUили устройством сегментации, где определяется выбор конкретного сегмента. Системные регистрыDR0DR7 используются в УУ для отладки программ.

Устройство с плавающей точкой (FPU) предназначено для вычисления математических операций с повышенной точностью аналогично по выполняемым функциям сопроцессору 80387. Оно имеет одинаковую систему команд и набор регистров (см. рис. 2.5) стекаR0-R7, указатель командIP, указатель данныхDP, регистры: тэговTW, состоянияSWи управленияCW. Все командыFPUначинаются с кода <11011> в поле кода операции и по этому признаку передаются в регистрIP, где при необходимости используются для обработки особых случаев. Повышенная точность вычислений достигается использованием представления чисел с плавающей точкой и увеличением разрядности представления нормализованной мантиссы до 64 бит.

Устройство страничного преобразования используется для программ, обрабатывающих множество данных и кодов, больше емкости ОЗУ. Для этого все данные и коды размещаются по страницам емкостью 4 Кб (каждой странице присваивается линейный адрес). В процессе работы программы страницы с диска последовательно загружаются в ОЗУ по новым физическим адресам страниц (кадр). Устройство страничного преобразования вычисляет их новый адрес по линейному адресу в программе, используя в работе регистры CR0,CR2 иCR3. Для повышения быстродействия вычислений физического адреса данных в кадре предназначен ассоциативный буфер преобразования (TLB), который можно контролировать регистрамиTR6,TR7.

Устройство сегментации обеспечивает поиск данных и кодов, распределенных по разным областям ОЗУ. Такое распределение информации позволяет избежать влияния одних задач на другие, исключить ошибки программирования и реализовать привилегии для системных программ. Для определения адреса данных или кода используются селекторы CS,SS,DS,ES,FS,GS,LDTRиTR. Каждый селектор имеет теневой регистр, в который по содержимому селектора и регистровGDTRилиLDTRзагружается из глобальной или локальной дескрипторной таблицы базовый адрес сегмента. По адресам теневых регистров вычисляются линейные адреса данных и кода, используемых программой. РегистрTRобеспечивает работуi486 в многозадачномV-режиме, постоянно перезагружаясь со сменой задач с сохранением контекста (значений пользовательских и системных регистров) в сегменте состояния задачи (TSS).

АЛУ целочисленного типа предназначено для выполнения арифметических операций с фиксированной точкой, сдвига данных, логических операций, операций в двоично-десятичном представлении, обмена между портами, хранения и вычисления адресов данных и следующих команд. В состав его входят 8 регистров общего назначения, счетчик команд EIPи регистр флаговEFLAGS. Многие команды в АЛУ выполняются за один такт. Более подробно работа блоков процессораi486 рассмотрена ниже.