ГЛАВА 1
ВВЕДЕНИЕ
MC68020 - первый среди микропроцессоров семейства М68000 фирмы
Motorola, имеющий полностью 32-битную архитектуру. На основе технологии СБИС в MC68020 реализованы 32-битные регистры и тракты данных, 32-битные адреса, богатая система команд и гибкие режимы адресации.
MC68020 совместим по машинному коду с младшими членами семейства М68000 и обладает дополнительными возможностями, включающими новые режимы адресации для поддержки языков высокого уровня, кэш-память команд непосредственно на кристалле и гибкий интерфейс с сопроцессором MC68881, полностью удовлетворяющим требованиям стандарта IEEE для арифметики вещественных чисел (или чисел с плавающей точкой). Кроме того, внутренние операции микропроцессора организованы таким образом, что возможно параллельное выполнение нескольких команд. Время выполнения отдельной команды может быть полностью поглощено временем выполнения окружающих ее команд, так что в общем балансе времени эта команда вносит нулевой вклад по тактам.
Асинхронная структура шины MC68020 использует немультиплексированные 32-битные шины адреса и данных. В процессоре реализован динамический механизм изменения ширины шины, что позволяет ему передавать и принимать данные от внешних устройств, автоматически определяя разрядность порта устройства на каждом цикле шины. Этот динамический механизм обеспечивает простой, высокоэффективный доступ к устройствам с различной разрядностью шины, одновременно устраняя все ограничения по выравниванию данных.
Пользователю MC68020 доступны следующие ресурсы:
- механизм поддержки виртуальной памяти/машины
- шестнадцать 32-битных регистров общего назначения и адресных регистров
- два 32-битных указателя стека супервизора
- 32-битный программный счетчик
- пять управляющих регистров специального назначения
- 4 гигабайт непосредственно адресуемой памяти
- 18 способов адресации
- регистры ввода/вывода, адресуемые в памяти
- интерфейс сопроцессора
- высокопроизводительная кэш-память команд на кристалле
- операции над данными 7-и типов
- полный набор операций вещественной арифметики при использовании сопроцессора MC68881
Структурная схема MC68000 представлена на Рис. 1-1. Основные блоки, изображенные на ней, функционируют в значительной мере независимо, что повышает параллелизм работы при соблюдении синхронности выполнения команд и операций на шине.
Рисунок подлежит сканированию стр. 1-2
г==============================================¬
¦ -----------¬ -------------¬ ¦
¦ ¦секвенсор ¦ ¦ блок ¦ ¦
¦ +----------+ ---------------+предвыборки ¦ ¦
¦ ¦устройство¦ ---------------+и декодиро- ¦ ¦
¦ ¦управления¦ ¦вания команд¦ ¦
¦ L---- ------ L-- -----^---- ¦
¦ ¦ ¦
¦ ¦ ¦ ¦ ¦ ¦ ¦
¦ ¦ L------------------------- ¦ ¦ ¦
¦ ¦ --------------¬ ------------ ¦ ¦
¦ ¦ ¦ ¦ ¦ ---------v---¬ ¦
¦ ¦ L---- ¦ контроллер ¦ - шина
¦ ----- -----¬ L------ ¦ шины ¦ - управления
¦ ¦арифметико¦ +------------+ ¦
¦ ¦логическое¦ ------------- ¦ кэш-память ¦ - шина
¦ ¦устройство¦ ------------- ¦ команд ¦ - данных (32)
¦ L---- ------ L------------- ¦
¦ ¦
L==== ¦ ¦ =====================================¦ ¦
¦ L--- шина
L----- адреса (32)
Рис. 1-1. Структурная схема MC68020
Контроллер шины загружает команды с шины данных в декодирующее устройство и в кэш-память команд. Секвенсор и блок управления обеспечивают общее управление процессором, согласуя работу внутренних шин, регистров и исполнительного блока.
Как видно из формальной модели (Рис.1-2 и 1-3), MC68020 имеет шестнадцать 32-битных регистров общего назначения, 32-битный программный счетчик, 16-битный регистр состояния, 32-битный базовый регистр векторов исключений, два 3-битных регистра модификации функционального кода и два 32-битных регистра для работы с кэш-памятью (управляющий регистр и регистр адреса). Регистры D0-D7 используются как регистры данных для операций над битами, битовыми полями (от 1 до 32 бит), байтами (8 бит), словами (16 бит), длинными словами (32 бит) и квадрословами (64
бит). Регистры A0-A6 и указатели стека пользователя, стека прерываний и основного стека являются адресными регистрами, которые могут быть использованы в программе как указатели стека или базовые регистры. Кроме того, адресные регистры могут быть использованы для операций над словами и длинными словами. Все 16
регистров (D0-D7, A0-A7) могут быть использованы в качестве индексных регистров.
Базовый регистр векторов исключений используется для определения местоположения в памяти таблицы векторов исключений, что позволяет организовывать несколько таблиц векторов. Регистры модификации функционального кода позволяют супервизору обращаться к любому адресному пространству.
Регистры кэш-памяти (управляющий - CACR, адреса - CAAR) позволяют программе манипулировать кэш-памятью команд на кристалле.
С помощью управляющего регистра кэш-памяти (CACR) осуществляется как управление ею, так и получение информации о ее состоянии, в регистре же адреса кэш-памяти (CAAR) хранится адрес, который может быть при необходимости использован для функций управления.
31 16 15 8 7 0
--------------------------T------------T------------¬
¦ ¦ ¦ ¦ D0
+-------------------------+------------+------------+
¦ ¦ ¦ ¦ D1
+-------------------------+------------+------------+
¦ ¦ ¦ ¦ D2
+-------------------------+------------+------------+
¦ ¦ ¦ ¦ D3
+-------------------------+------------+------------+
¦ ¦ ¦ ¦ D4
+-------------------------+------------+------------+
¦ ¦ ¦ ¦ D5
+-------------------------+------------+------------+
¦ ¦ ¦ ¦ D6
+-------------------------+------------+------------+
¦ ¦ ¦ ¦ D7
L-------------------------+------------+------------регистры данных
31 16 15 0
--------------------------T-------------------------¬
¦ ¦ ¦ A0
+-------------------------+-------------------------+
¦ ¦ ¦ A1
+-------------------------+-------------------------+
¦ ¦ ¦ A2
+-------------------------+-------------------------+
¦ ¦ ¦ A3
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.