Организация данных и способы адресации

Страницы работы

Содержание работы

ГЛАВА 2

ОРГАНИЗАЦИЯ ДАННЫХ И СПОСОБЫ АДРЕСАЦИИ

Данная глава содержит описание регистров и организации данных в

MC68020.

2.1 РАЗМЕР ОПЕРАНДОВ

Размер операндов определен следующим образом: байт состоит из 8

битов, слово состоит из 16 битов, длинное слово - из 32 битов и квадрослово - из 64 битов. Размер операнда для  каждой  команды либо явно закодирован в команде, либо неявно задается самой командой.  Сопроцессорный интерфейс обеспечивает работу с операндами произвольного размера от 1 бита до 256 байтов.

2.2 ОРГАНИЗАЦИЯ ДАННЫХ В РЕГИСТРАХ

Восемь регистров данных обеспечивают работу с 1, 8,  16,  32  и

64-битными операндами, 16 и 32-битными адресами и битовыми  полями длиной от 1 до 32 битов. Семь адресных регистров и  указатели стеков обеспечивают работу с адресными  операндами  длиной

16 и 32 бита. Шесть управляющих регистров (SR, VBR,  SFC,  DFC,

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

2.2.1 Регистры данных

Длина каждого из регистров данных составляет 32 бита.  Байтовые операнды занимают младшие 8 битов,  словные  операнды  занимают младшие 16 битов и длинные словные операнды занимают все 32 бита. У целого числа младший бит адресуется как нулевой, а  самый старший - как 31-й бит. В битовых полях старший бит  адресуется как нулевой, а самый младший адресуется величиной, равной длине поля минус единица.

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

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

2.2.2 Адресные регистры

Каждый из адресных регистров и указателей стека имеет  длину  в

32 бита и содержит полный 32-битный адрес. Адресные регистры не могут использоваться для работы с байтовыми операндами. В частности, при использовании адресного регистра в качестве источника операндом (в зависимости от операции)  служит  либо  младшее слово регистра, либо длинное слово целиком.  При  использовании адресного регистра в качестве приемника  изменениям  подвержены все биты регистра независимо от размера операнда: дело  в  том, что словные операнды перед выполнением операций над ними приводятся к 32-битным путем распространения знака операнда на старшие биты. Адресный регистр может быть также использован  и  для некоторых простых операций.

2.2.3 Управляющие регистры

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

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

Регистры модификации функционального кода  (SFC  и  DFC)  имеют длину 3 бита и содержат коды адресного пространства, устанавливаемые на линиях FC0-FC2 во время операций  чтения  или  записи

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

ПРИМЕЧАНИЕ

Адресные пространства различаются по функциональному признаку: 001 - данных пользователя, 010 - программ пользователя, 101 - данных супервизора, 110  программы  супервизора,  111 - процессора и два резервных. Обращения к  этим  адресным  пространствам реализуются, вообще говоря, различными функциональными  блоками микропроцессора. Выбор термина "функциональный код" обусловлен именно этим  обстоятельством.

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

2.3 ОРГАНИЗАЦИЯ ДАННЫХ В ПАМЯТИ

Память  организована на основе байтовой адресации, причем меньшие адреса соответствуют старшим байтам. Адрес N длинного слова данных соответствует  адресу  старшего  байта  старшего  слова.

Младшее слово размещается с адреса N+2, а его младший байт - по адресу N+3 (см. Рис. 2-1). Следует обратить внимание на то, что для  MC68020 не требуется, чтобы данные выравнивались по границам четных байтов (см. Рис. 2-22), хотя пересылка  данных  осуществляется  наиболее эффективно в том случае, когда они выровнены по границам байтов, адреса которых кратны размерам операндов. Сказанное не относится к командам, которые должны быть выровнены по границам четных байтов.

MC68020 обеспечивает работу со следующими типами данных, размещающихся в памяти: биты и битовые поля; целые числа размером  в

8, 16 и 32 бита; 32-битные  адреса;  двоично-десятичные  данные

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

31              23             15             7               0

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

¦                     длинное слово $00000000                 ¦

¦                                                             ¦

¦          слово $00000000     ¦         слово $00000002      ¦

¦                              ¦                              ¦

¦ байт $00000000¦байт $00000001¦байт $00000002¦байт $00000003 ¦

+---------------+--------------+--------------+---------------+

¦                     длинное слово $00000004                 ¦

¦                                                             ¦

¦          слово $00000004     ¦         слово $00000006      ¦

¦                              ¦                              ¦

¦ байт $00000004¦байт $00000005¦байт $00000006¦байт $00000007 ¦

Похожие материалы

Информация о работе