MC68020 - первый среди микропроцессоров семейства М68000 фирмы Motorola, имеющий полностью 32-битную архитектуру, страница 6

В MC68020 используется схема  продолжения  выполнения  команды.

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

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

1.3.2 Виртуальная машина

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

Чтобы обеспечивать полную поддержку виртуальной машины, MC68020

должен защищать ресурсы супервизора от доступа пользовательских программ. Единственный ресурс супервизора, не  полностью  защищенный в MC68000 и MC68008, - это системный байт в слове состояния. В MC68000 и MC68008 команда пересылки из регистра состояния MOVE from SR позволяет программе  пользователя  тестировать

S-бит в регистре состояния (в дополнение к T-биту и маске  прерываний), и тем самым определять, что она выполняется в  режиме пользователя. Чтобы поддержка виртуальной машины  была  полной, операционной системе не должно быть известно, что она  работает в менее привилегированном режиме  пользователя,  и  поэтому  не должна иметь прямого доступа к S-биту. По этой причине  команда

MOVE from SR в микропроцессорах MC68010, MC68012 и MC68020  переведена в категорию привилегированных команд, а для доступа  к кодам условий пользователям предоставлена команда MOVE from CCR

(регистр кодов условий). По той причине, что команда MOVE  from

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

1.4 КОНВЕЙЕРНАЯ АРХИТЕКТУРА

Как показано на Рис. 1-5, MC68020 использует трехфазный конвейер команд для реализации конвейеризованной внутренней  архитектуры. Конвейер является полностью внутренним для микропроцессора. Преимущество конвейера состоит в возможности выполнять операции параллельно над несколькими  словами  одной  команды  (до трех включительно) или над несколькими последовательными командами (до трех включительно).

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

Команда передается из ступени B через C в D. Ступень D передает полностью декодированную и проверенную команду в блок  управления для выполнения. Команда с непосредственными данными  и  дополнительными словами находит их уже загруженными в ступени C и готовыми для использования блоком управления  и  исполнительным блоком.

Рисунок подлежит сканированию стр. 1-9

-- -- -- -- -- -- -- -- -- -- -- -- ¬

предвыборка и декодирование

¦              команд               ¦

--------¬  --------¬  --------¬

¦  ¦       ¦  ¦       ¦  ¦       ¦  ¦

------------¬          ¦ступень¦  ¦ступень¦  ¦ступень<-----¬

¦ секвенсор ¦       ¦  ¦   D   ¦  ¦   C   ¦  ¦   B   ¦  ¦  ¦

¦           ¦          ¦       ¦  ¦       ¦  ¦       ¦     ¦

+-----------+       ¦  L---T----  L---T----  L---T----  ¦  ¦

¦           ¦       L- -- -+ -- -- -- +- -- -- --¦-- -- -  ¦

¦ устройство¦              ¦          ¦          ¦         ¦

¦ управления<---------------          ¦          ¦

¦           <-------------------------+          ¦       поток

¦           ¦                         ¦          ¦      команд

L-T-T-T-T-T--                         ¦          ¦      из кэша

¦ ¦ ¦ ¦ ¦                           ¦          ¦        и

--v-v-v-v-v-¬                         ¦          ¦      памяти

¦арифметико-<--------------------------          ¦

¦логическое ¦                                    ¦

¦устройство <------------------------------------L-----------Рисунок 1-5. Конвейер MC68020