Шинная организация микропроцессорных систем- с одной шиной, с дв. Программа для эвм это упорядоченная последовательность команд, подлежащая обработке
Скачать 1.97 Mb.
|
38. Регистровые структуры микропроцессоровФункциональная неоднородность регистров Количество и назначение регистров зависит от архитектуры микропроцессора. Часть регистров микропроцессора не используется в качестве средств программирования. Это объясняется не их физическим отсутствием, а тем, что программисту не предоставляются средства изменения содержимого этих регистров. Такие регистры называются программнонедоступными. Для другой части регистров микропроцессора программисту предоставляются средства изменения их содержимого. Такие регистры называются программнодоступными. Они образуют регистровую область микропроцессора. Регистровую область или набор программно доступных регистров можно рассматривать как скоростное ОЗУ малой емкости, входящее в состав микропроцессора. Этот набор регистров используется для временного хранения данных, адресной информации, информации о состоянии микропроцессора и управляющей информации, контролируемых программистом. Короткая адресация регистровой области и быстрый доступ к ней обеспечивают создание эффективно исполняемых программ. Регистры микропроцессора функциональнонеоднородны: одни служат для хранения данных и/или адресной информации, другие для управления работой микропроцессора. В соответствии с этим все регистры микропроцессора можно разделить на 3 группы: регистры данных; указатели или адресные регистры; регистры специального назначения или специальные регистры. Регистрыданных участвуют в арифметических и логических операциях в качестве источников операндов и приемников результата, адресныерегистрыиспользуются для вычисления данных и команд, расположенных в основной памяти. Специальныерегистрыслужат для индикации текущего состояния микропроцессора и управления режимами его работы. Часть регистров может использоваться для хранения как операндов, так и адресов. Их называют регистрамиобщегоназначения(РОН). Функциональная неоднородность регистров микропроцессора связана с широким использованием неявной(подразумеваемой) адресации регистров, которая, в свою очередь, определяется стремлением к созданию коротких программ. В то же время функциональная специализация регистров затрудняет программирование, так как требует учета особенностей организации регистрового набора, присущих данному микропроцессору. Однако в результате программа выполняется быстрее и для ее хранения требуется меньше памяти. На уровне символической записи (мнемоники) команд для прямой ссылки на конкретные регистры микропроцессора им присваиваются имена, например, A, B, C, D, SP, X или R0, R1, R2 и т.д. Обычно эти имена отражают функциональное назначение регистра и способствуют пониманию мнемоники команд. Адресные регистры Адресные регистры применяются для реализации различных методов непрямой(вычисляемой) адресации данных (рис. 59). Рисунок 59 – Адресные регистры К адресным регистрам относятся: регистркосвенногоадресаDP (Data Pointer). Содержит непосредственно адрес операнда; базовыйрегистр(регистр базы) BP (Base Pointer). Используется для хранения начального адреса массива; индексныйрегистрX. Содержит относительный (по отношению к базе) адрес (индекс) операнда (элемента массива); регистрыавтоинкрементнойиавтодекрементнойадресации. Автоматически увеличивают или уменьшают свое содержимое до или после выполнения операции доступа в соответствии с длиной адресуемого ими операнда; регистррасширенияадресногопространства. Обеспечивает расширение адресного пространства путем переключения между несколькими банками основной памяти. Содержит номер текущего банка основной памяти; указателисегментовистраниц К классу адресных регистров с автоинкрементированием относится программныйсчетчик(счетчиккоманд, указателькоманд) PC (Program Counter), содержимое которого после очередной выборки элемента командной последовательности увеличивается на длину этого элемента. За счет использования такого регистра в микропроцессоре процесс адресации следующего элемента командной последовательности в основном осуществляется неявно и автоматически. Изменение последовательности процесса выборки команд осуществляется специальными командами передачи управления, связанными с загрузкой в PC адреса, отличного от адреса следующей команды. Частным случаем регистра с автомодификацией является указательстекаSP (Stack Pointer), который указывает на положение вершины стека. При использовании стека для хранения локальных переменных и обмена параметрами между вызываемой и вызывающей процедурами может оказаться полезным специальный адресный регистр, указывающий на начало области локальных переменных и/или параметров в стеке, – указателькадраFP (Frame Pointer). Значение указателя стека SP непрерывно меняется, поэтому применять его в качестве точки отсчета при доступе к данным в стеке неудобно. Процедуру доступа можно значительно упростить, если функцию точки отсчета отдать специально зарезервированному для этой цели регистру – указателю кадра FP. Указатель кадра относится к классу базовых регистров. Специальные регистры При выполнении операций АЛУ генерирует ряд признаков, характеризующих их результат. Функцию хранения этих признаков, а также некоторых других выполняет специальный регистрсостоянияSR (Status Register) или словасостоянияпрограммыPSW (Program Status Word). С каждым признаком связывается одноразрядная переменная – флажок. Флажки, связанные с признаками результата операции, группируются в полекодаусловияCC (Condition Code). Типовой состав флажков-признаков результата операции: CF (Carry Flag) – флажок переноса из старшего разряда АЛУ при выполнении арифметических операций. При сдвигах CF равен выдвинутому значению младшего или старшего разряда; ZF (Zero Flag) – флажок признака нуля; SF (Sign Flag) – флажок знака результата. SF равен значению старшего разряда результата; AF (Auxiliary carry Flag) – флажок дополнительного переноса (переноса из младшей тетрады); OF (Overflow Flag) – флажок арифметического переполнения; PF (Parity Flag) – флажок четности количества единичных разрядов в результате. Удобно в поле кода условия CC иметь один или несколько флажковпользователя, функциональное назначение которых определяет он сам. Обычно эти флажки служат для связи между отдельными частями программы. Состояние поля кода условия CC тестируется командамиусловноготипа. В состав PSW входит также ряд специальных флажков, управляющихработоймикропроцессора, например: IF (Interrupt Flag) – маски и приоритеты прерываний, а также условия реакции на прерывания; TF (Trace Flag) – флажок пошаговой трассировки, маска специального прерывания. Регистр PSW включает также различные модификаторыкоманд, изменяющие реакцию МП на отдельные команды (например, флажок направления DF). Для обеспечения особыхусловийвыполненияпрограммв PSW вводят специальный флажок, определяющий эти условия. Так, например, флажок H/U (Halt/User) служит для разрешения особых условий выполнения программ и реализации директив пультового терминала, а флажок U/S (User/System) используется для перевода микропроцессора из специального системного режима, в котором выполняются программы ОС, в пользовательский. Упаковка всех флажков в одно слово (и соответственно хранение в одном регистре) дает возможность организовать их быструю запись в память с последующим восстановлением. В некоторых микропроцессорах поле кода условия, а также ряд других флажков (например, флажки, управляющие работой МП, и модификаторы команд) выделяются в отдельный регистрпризнаков(флагов)F. В сложных микропроцессорах состав специальных регистров более широкий. В этих микропроцессорах имеются специальные регистры, используемые преимущественно ОС, – системныерегистры. К системным регистрам относятся: управляющиерегистры(разрешают защищенный режим, страничную организацию памяти, управляют работой с сопроцессором, задают информацию для управления памятью, например, адреса системных таблиц, и т.п.); отладочныерегистры; тестовыерегистры. Регистры данных Наиболее типичным представителем регистров данных является аккумуляторA (Accumulator), который используется для временного хранения операндов и промежуточных результатов. С аккумулятором связано большинство команд арифметической и логической обработки. Ссылка на него, как правило, производится неявно с помощью кода операции. В состав микропроцессора может входить один или несколько аккумуляторов. Другим примером регистров данных являются рабочиерегистры. В отличие от аккумулятора они адресуются явно и могут рассматриваться как сверхскоростное регистровое ОЗУ данных. Рабочие регистры могут совмещать свою функцию хранения данных с функцией их адресации. В этом случае они приобретают функции регистров общего назначения (РОН). Как аккумуляторы, так и РОН могут при необходимости объединяться в регистровые пары. Микропроцессор может содержать несколько (например, два или четыре) наборов рабочих регистров. При этом один из них используется для системных целей или обработки прерываний, в все остальные – для прикладных программ пользователя. В каждый момент времени доступен только один набор рабочих регистров, выбираемый специальным регистром – указателемрабочегонабораWP (Work Pointer). Переключение доступного рабочего набора связано с перезагрузкой малоразрядного указателя WP. Расширение разрядности указателя WP до полного размера адресного регистра и отображение набора рабочих регистров на основную память данных с базой в WP приводит к типовой архитектуресрабочими областями. Однако при этом теряется быстрый доступ к данным, хранящимся в рабочих регистрах. Решение этой проблемы связано с реализацией части основной памяти данных на одном кристалле с микропроцессором и размещением рабочей области в этой внутренней части ОЗУ |