Внутри машинное представление «управляющей информации»

Внутри машинное представление «управляющей информации»

Учебно-методические указания для выполнения расчетно-графических работ по дисциплине «Аппаратные средства вычислительных комплексов», специальность ПИЭ.

Издание 1-е

Тверь 2011

УДК 681.3.06 ( 075.8 )

ББК 32.97-018.2я7

Миронов, В.И. Внутри машинное представление «управляющей информации» Изд. 1-е. Учебно-методическкие указания для выполнения расчетно-графических работ. Тверь, 2011. 45 с.

В указаниях проведена проведена классификации внутри машинной информации, обрабатываемой при помощи современных ЭВМ, подробно рассмотрены способы физической реализации одного двоичного разряда, внутри машинное представление «данных» и основных элементов «управляющей информации» – машинных команд. Все теоретические выкладки под-тверждены достаточным количеством примеров.

Предназначено для более глубокого изучения и понимания дисциплин «Вычислительные системы, сети и телекоммуникации», «Архитектура ЭВМ и систем», «Организация ЭВМ и систем» и других дисциплин, связанных с эксплуатацией и использованием ЭВМ.

Рецензент:

ISBN Тверской государственный

технический университет, 2011

П Р Е Д И С Л О В И Е.

Настоящие учебно-методические указания посвящены классификации информации, которая обрабатывается в современных вычислительных машинах, и анализу существующих способов ее внутри машинного представления. Квалифицированная работа в современных информационных системах не возможна без четкого и грамотного понимания процессов обработки и хранения информации в различных устройствах ЭВМ. Технологические информационные системы, оснащенные современными микроконтроллерами, датчиками требуют еще больших усилий в этом направлении. Практически все производственные линии, приобретенные за границей, оснащены автоматизированными технологическими системами управления, которые не только со временем будут выходить из строя, но и в самом начале эксплуатации потребуют наличия грамотного персонала, хотя бы для элементарной адаптации к реальным технологическим процессам. Обеспечение надежной и эффективной работы таких автоматизированных производств невозможно без техников-программистов, владеющих навыками программирования микроконтроллеров и имеющих представление о процессах обработки внутри машинной «управляющей информации».

Структура и общие принципы организации запоминающих устройств, использующихся для внутри машинного размещения информации

После ввода в ЭВМ информация может располагаться и храниться в основной памяти (ОП), на жестком диске, в сверхоперативной памяти (СОП), входящей в состав центрального процессора. Она может также располагаться и быть доступной для обработки на сменных дисках, флэш-картах и т.д. Поскольку задачей данного пособия является рассмотрение принципов и способов представления «управляющей информации» внутри ЭВМ, то, безусловно, необходимо дать характеристику и самим основным устройствам, в которых размещается эта информация: ОП и СОП. В ЭВМ 3-его и 4-ого поколений используется абсолютная и относительная адресация. Абсолютная адресация используется при указании адресов операндов, которые располагаются в СОП, относительная для адресации операндов, которые располагаются в ОП. Выбор относительной адресации был обусловлен возможностью сокращения адресных полей операндов и длины машинной команды.

Структура и организация СОП

СОП также является адресной памятью, каждая ячейка имеет свой собственный адрес или номер (Рис.2.2). У этой памяти есть и другое название– регистры общего назначения ( РОН). Она состоит из 16-ти 32-х разрядных регистров общего назначения. Поскольку, среди числовых форматов «данных», есть форматы, которые могут иметь длину 8 байт, то разработчикам современных ЭВМ пришлось базе тех же стандартных, соседних РОН, только спаренных по два, условно выделить четыре регистра с плавающей запятой (РПЗ) с уникальными четными номерами 0,2,4,6. РПЗ с номером 0-это спаренные РОН с номерами 0 и 1, 2-это 2 и 3, 4-это 4 и 5, 6-это 6 и 7.

Номер регистра Двоичный адрес регистра (R) РОН РПЗ
A B C D E F 0 31 0 31 0 31 0 31 0 31 0 31 0 31 0 31 0 31 0 31 0 31 0 31 0 31 0 31 0 31 0 31 0 63   0 63   0 63   0 63    

Рис 2.2. Структура СОП.

Использование СОП позволяет повысить среднюю скорость выполнения операций, поскольку СОП имеет меньший цикл обращения по сравнению с ОП. СОП используется для временного хранения операндов и результатов арифметических операций, а также для хранения базовых адресов и индексов переменных типа массив (констант модификации адресов) при формировании исполнительных (абсолютных) адресов ОП. Вопрос двойного назначения регистров с номерами 0, 2, 4 и 6, использующихся в машинных командах, решается при помощи полей кодов операций (КОП), в которых заложена информация о форматах «данных», обработка которых будет осуществляться при помощи данной команды.

Управляющая информация

Понятие машинной команды.

Материал предыдущего раздела был посвящен вопросам, связанным с внутри машинным представлением основных форматов данных. Не менее актуальными являются вопросы внутри машинного представления «управляющей информации», основными задачами которой является организация взаимодействия устройств ЭВМ в процессе обработки входных данных и формирования конечных результатов. «Управляющая информация» по функциональной нагруженности и содержанию намного сложнее «данных», представляет из себя иерархическую структуру со строго подчиненными функциональными связями основных ее компонентов. Центральным элементом этой иерархической структуры является машинная команда (МК), которая является двоичным кодом определенной длины. Структура МК непосредственно связана с принципом организации и построения устройств, входящих в состав ЭВМ. Машинная команда, как правило, состоит из двух частей: операционной (КОП) и адресной (Рис.3.1.).

Коп Адресная часть

Рис.3.1. Структура машинной команды

В операционной части содержится код операции. Чем длиннее операционная часть, тем большее количество операций можно в нём закодировать. В современных ЭВМ длина этого поля равна 8 двоичным разрядам, что, в свою очередь, позволяет рассчитывать на систему машинных команд, общим объемом 256 различных команд. В адресной части машинной команды содержится информация о адресах операндов. Это либо значения адресов ячеек ОП, в которых размещаются сами операнды (абсолютная адресация), либо информация, по которой процессор определяет значения адресов ОП, (относительная адресация). Абсолютная адресация использовалась только в машинах 1-ого и 2-ого поколений. Начиная с машин 3-его поколения, наряду с абсолютной, используется относительная адресация. По количеству адресов в адресной части МК делятся на одноадресные, двухадресные, трехадресные и четырехадресные Рис. 3.2.

Коп А1
Коп А1 А2
Коп А1 А2 А3
Коп А1 А2 А3 А4

Рис. 3.2. Структуры машинных команд

В ЭВМ 1-го и 2го поколения использовались все структуры машинных команд, приведенные на Рис.3.2. В полях А1, А2, А3 находились значения абсолютных адресов ячеек ОП, в которых соответственно размещались 1-ый, 2-ой и 3-ий операнды, в поле А4 адрес ячейки ОП, где размещалась машинная команда, которая должна была выполняться следующей. От использования четырехадресных машинных команд отказались достаточно быстро по причине их информационной избыточности: уже тогда в основном использовался естественный порядок выполнения машинных команд - участок ОП отведённый ОС для программы заполнялся командами, которые выполнялись одна за другой. Наряду с обычными командами существовали команды условной и безусловной передачи управления, которые обеспечивали переход в любую точку программы. При выборе структуры машинных команд ЭВМ 3-го поколения была выбрана структура с переменным числом адресов в адресной части, т.е. было принято решение использовать одноадресные, двухадресные и трехадресные машинные команды. Одновременно с этим в машинах 3-го поколения, наряду с абсолютной адресацией стали использовать и относительную адресацию, т.к. при объёме ОП 4 гбайта на каждый абсолютный адрес потребовалось бы 32 двоичных разряда или 4 байта. Таким образом, длина трёхадресной команды с абсолютной адресацией ОП составила бы 3*4+1 =13 байтов = 104 двоичных разряда. Использование относительной адресации позволило ограничиться максимальной длиной машинной команды формата SS в 6 байтов. При количественном составе программ в несколько десятков тысяч машинных команд, экономия ОП получается ощутимая. Абсолютная адресация используется для адресации быстродействующей памяти, работающей в одном ритме с процессором и входящей в состав процессора, получившей название сверхоперативной памяти (СОП), имеющей малый объем- 16 ячеек по 32 двоичных разряда-всего 64 байта Рис 2.2.

RR –« регистр-регистр»

Длина команды 16 двоичных разрядов или полуслово. R1, R2 – номера РОН, в которых находятся соответственно 1-ый и 2-ой операнды. Результат операции записывается в регистр общего назначения, адрес которого находится в поле R1.

Задание 1. Используя формат команды RR, заполнить поля команды информацией, представленной в 16-ой СС и представить внутреннее содержимое использованных РОН до и после выполнения операции. КОП=1А-операция сложения чисел, представленных в форме с фиксированной запятой (формат F ), R1=3, R2=4, О1=+32410 – значение первого операнда, О2=+30010- значение второго операнда.

Этапность выполнения Задания 1:

1. Записать 16-ое представление полей машинной команды:

1 А

0 7 8 11 12 15

2. Представить в 16-ой СС значения О1, О2 и результата РЗ:

О1=+32410=14416 , О2=+30010=12С16 , РЗ=62410=27016

3. В соответствии с правилами внутри машинного представления чисел в формате F, представить содержимое используемых РОН до и после выполнения операции в 16- ой СС (Рис.3.3). Номера РОН располагаются справа от самих регистров и имеют значения от 0 до F в 16-ой СС. Сами РОН развернуты в виде 4-х байтов и их содержимое представлено двумя 16-ми цифрами.

Содержимое РОН до выполнения Содержимое РОН после выполнения

машинной команды. машинной команды.

                     
               
               
 
2C 2C
                 
                   
               
               
                   
        A         A
        B         B
        C         C
        D           D
        E         E
        F         F
                           

Рис.3.3.Содержимое РОН до и после выполнения машинной команды.

RS – «регистр–память»

Команды формата RS имеют длину 4 байта, трехадресные, предназначены для выполнения арифметических операций над переменными в любых числовых «форматах данных». Среди команд формата RS есть команды передачи управления, логические операции, команды сдвига слова влево, арифметического сдвига двойного слова влево и т. д. В командах формата RS 1-й операнд размещается в РОН, адрес которого находится в поле R1, адрес 2-го операнда определяется по формуле

А2= [В2] + D2 (3.4)

где В2 – номер РОН, в котором находится значение базового адреса 2-го операнда, D2 – абсолютное значение смещения младшего байта поля ОП, закрепленного за 2-м операндом, относительно базового адреса. Результат операции РЗ помещается в РОН, номер которого находится в поле R3 машинной команды.

Задание 3. Используя формат команды RS, заполнить поля команды информацией, представленной в 16-ричной СС, и представить внутреннее содержимое использованных РОН и полей ОП до и после выполнения операции. КОП = AF – операция вычитания чисел без нормализации, представленных в форме с плавающей запятой (формат «D»), R1 = 0, R3 = 2, В2 = 4.Значение первого операнда О1 = +27210, значение второго О2 = +13810. Смещение 2-го операнда относительно базового D2 = А00.

Этапность выполнения задания 3:

1. Записать 16-ое представление полей машинной команды:

A F A 0 0

0 7 8 11 12 1516 2324 31

2. Выполнение операции вычитания сводится к следующим действиям: из значения операнда, который находится в 0-м регистре общего назначения, вычесть значение операнда, который находится 8-ми байтном поле ОП, адрес которого определяется по формуле (3.4). Результат операции помещается в РПЗ с номером 2.

3. Представить в 16-ричной СС значения О1, О2 и результата РЗ:

О1 = +27210= 11016, О2 = +13810 = +8А16, РЗ = 13410 = +8616.

4. В соответствии с правилами внутри машинного представления чисел в формате «D» представить содержимое используемых РПЗ, имеющих четные номера 0 и 2, до и после выполнения операции в 16-ричной СС (рис. 3.6).

До выполнения После выполнения

машинной команды машинной команды

     
 
А0 А0
                 
                 
               
               
                   
        A         A
        B         B
        C         C
        D           D
        E         E
        F         F

Рис. 3.6. Содержимое РОН до и после выполнения машинной команды

5. Исполнительный адрес 2-го операнда определяется по формуле (7.3) и будет иметь значение

А2 = 00А0000016 + А0016 = 00А00А0016.

6. Содержимое поля ОП, в котором размещается 2-й операнд, будет неизменным после завершения выполнения машинной команды (рис. 3.7).

До выполнения После выполнения

машинной команды машинной команды

               
       
                 
     
   
      4 2 00A00A00     4 2 00A00A00  
8 A 00A00A01   8 A 00A00A01  
0 0 00A00A02   0 0 00A00A02  
2-й операнд 0 0 00A00A03     2-й операнд 0 0 00A00A03  
0 0 00A00A04 0 0 00A00A04  
0 0 00A00A05   0 0 00A00A05  
  0 0 00A00A06   0 0 00A00A06  
  0 0 00A00A07     0 0 00A00A07  
             
     
       
     
     
    FFFFFFFF   FFFFFFFF  
                             

Рис. 3.7. Содержимое ОП до и после выполнения машинной команды

SS-«память-память»

Команда SS – самая длинная команда, ее длина – 48 двоичных разряда, 6 байтов, или три машинных полуслова. Команда двухадресная, операнды находятся в ОП, результат помещается по месту 1-го операнда. В поле L указываются значения размеров полей ОП, закрепленных за операндами О1 и О2, в полях В1, В2 – номера РОН, в которых находятся значения их базовых адресов, а полях D 1, D2 – значения смещений относительно базовых адресов соответственно 1 и 2-го операндов. Команды формата SS используются для выполнения арифметических и логических операций над переменными, объявленными в форматах «Р», «H», «F», «E», «D» и др.

Задание 5. Используя формат команды SS, заполнить поля команды информацией в 16-ой СС и представить внутреннее содержимое использованных РОН и полей ОП до и после выполнения операции. КОП = FA – операция сложения целых десятичных чисел, представленных в форме с фиксированной запятой (формат «Р»). Для представления значений операндов использовать поля ОП длиной по два байта, соответственно L = 2 . Значение 1-го операнда О1 = +5610, значение 2-го операнда О2 = +3410. Базовые адреса 1 и 2-го операндов В1 = 00АА000016, В2 = 00ЕЕ000016, смещения операндов относительно базовых адресов D1 = 60016, D2 = 90016. После выполнения операции результат помещается по месту 1-го операнда.

Этапность выполнения задания 5:

1. Записать 16-ричное представление полей машинной команды:

F A 0 2 6 0 0 9 0 0

0 7 8 15 16 23 24 31 32 35 36 47

2. Выполнение операции сложения сводится к следующим действиям: значения 1 и 2-го операндов суммируются. Результат операции РЗ = 9010 помещается в ОП на место 1-го операнда.

3. Содержимое РОН с номерами 2 и 3, в которых находятся значения базовых адресов 1 и 2-го операндов до и после выполнения операции в 16-ричной СС приведено на рис. 3.10.

До выполнения После выполнения

машинной команды машинной команды

     
АА АА
ЕЕ   ЕЕ
                 
                 
               
               
                   
        A         A
        B         B
        C         C
        D           D
        E         E
        F         F

Рис. 3.10. Содержимое РОН до и после выполнения

машинной команды

4. Исполнительный адрес 1-го операнда определяется по формуле (3.4) и будет иметь значение:

А1 = 00АА000016 + 60016 = 00А0060016 .

Исполнительный адрес второго операнда определяется также по формуле (7.4) и будет иметь значение:

А2 = 00ЕЕ000016 + 90016 = 00А0090016.

5. Содержимое полей ОП, закрепленных за 1 и 2-м операндами
до и после завершения выполнения машинной команды представлено на рис. 3.11.

На основании подробного рассмотрения 5 форматов машинных команд, можно сделать выводы о том, что ассемблированная форма представления «управляющей информации» для 32-, 64-разрядных машин идентична ассемблерам, которые используются в 16-разрядных микроконтроллерах. Причем у 16-разрядных микроконтроллеров может быть значительно больший по объему набор команд (до 256). Инвариантность «форматов команд» по отношению к емкости основной памяти обеспечивается за счет использования относительной адресации. При таком способе адресации предельный объем памяти определяется исходя из максимально возможных значений базовых адресов.

До выполнения После выполнения

машинной команды машинной команды

               
       
                 
     
   
1-й операнд 0 5 6 С 00A00600 00A00A01   1-й операнд 9 0 0 С 00A00600 00A00601  
     
     
           
   
2-й операнд 0 3 4 С 00A00900 00A00901 2-ой операнд 0 3 4 С   00A00900 00A00901  
         
   
   
     
   
   
  FFFFFFFF   FFFFFFFF  
         
                           

Рис.3.11. Содержимое ОП до и после выполнения машинной команды.

В современных 32-разрядных ЭВМ выборка машинных команд из памяти в центральный процессор осуществляется порциями по 2 байта. Применение команд различных форматов, в особенности с короткими адресами, относящимися к регистровой памяти, кроме отмеченного выше сокращения частоты обращения к основной памяти, способствует уменьшению объемов программ и экономии адресного пространства ОП.

ПРИЛОЖЕНИЕ 1

Таблица 1:«НАБОР КОМАНД»

№ п/п Сред ства Код Опера ции Мнемо ника Название команды
    RR     SPM Установить маску программы Set Program Mask  
  RR     BALR Переход с возвратом Branch and Link  
    RR     BCTR Переход по счетчику Branch on Count  
  RR     BCR Условный переход Branch on Condition  
  RR     SSK Установить ключ памяти Set Storage Key  
  RR     ISK Прочитать ключ памяти Insert Storage Key  
  RR   0A   SVC Обращение к супервизору Supervisor Call  
    RR   0D   BASR Переход с записью в память Branch and Store  
    RR     LPR Загрузка положительная Load Positive  
    RR     LNR Загрузка отрицательная Load Negative  
  RR     LTR Загрузка и проверка Load and Test
RR LCR Загрузка дополнения  
RR NR И And    
    RR     CLR Сравнение кодов Compare Logical  
    RR     OR Или Or  
    RR     XR Исключающее или Exclusive Or  
    RR     LR Загрузка Load  
      RR     CR Сравнение Compare
    RR   1A   AR Сложение Add  
      RR   1B   SR Вычитание Subtract
    RR   1C   MR Умножение Multiply  
  RR   1D   DR Деление Divide  
  RR   1E   ALR Сложение кодов Add Logical  
  RR   1F   SLR Вычитание кодов Subtract Logical  
  RR     LPDR Загрузка положительная (длинная) Load Positive Long
  RR     LNDR Загрузка отрицательная (длинная) Load Negative Long
  RR     LTDR Загрузка и проверка (длинная) Load and Test Long  
  RR     LCDR Загрузка дополнения (длинная) Load Complement Long
  RR     HDR Пополам (длинное) Halve Long  
  RR     CDR Сравнение (длинное) Compare Long
  RR   2B   SDR Вычитание с нормализацией (длинное) Subtract Normalized Long
  RR   2D ` DDR Деление (длинное) Divide  
  RR   2E AWR Сложение без нормализации (длинное) Add Unnormalized Long
  RR   2F   SWR Вычитание без нормализации (длинное) Subtract Unnormalized Long
  RR     LPER Загрузка положительная (короткая) Load Positive Short
  RR     LNER Загрузка отрицательная (короткая) Load Negative Short
  RR     LTER Загрузка и проверка (короткая) Load and Test Short
  RR     LCER Дополнения (короткая) Load Complement Short
  RR     HER Пополам (короткая) Halve Short  
  RR     LER Загрузка (короткая) Load Short  
  RR     CER Сравнение (короткое) Compare Short  
  RR   3A   AER Сложение с нормализацией (короткое) Add Normalized Short
  RR   3B   SER Вычитание с нормализацией (короткое) Subtract Normalized Short
  RR   3C   MER Умножение (короткое) Multiply Short  
  RR   3D   DER Деление (короткое) Divide Short  
  RR   3E   AUR Сложение без нормализации (короткое) Add Unnjrmalized Short
  RR   3F   SUR Вычитание без нормализации (короткое) Subtract Unnormalized
  RR     LRDR Загрузка с округлением (длинная) Load Rounded Long
  RR     MXR Умножение сверхдлинное Multiply Extended  
  RR     MXDR Умножение длинных со сверхдлинным результатом Multiply to Extend
  RR     LRER Загрузка с округлением (короткая) Load Rounded Short
  RR     AXR Сложение с нормализацией сверхдлинное Add Normalized Extended
  RR     SXR Вычитание с нормализацией Сверхдлинное Subtract Normalized Extendet
  RX     MXD Умножение длинных со сверхдлинным результатом Multiply to Extend
  RX     STH Запись в память полуслова Store Halfword  
  RX     LA Загрузка адреса Load Address  
  RX     STC Запись в память символа Store Character  
  RX     IC Прочитать символ Insert Character  
  RX     EX Выполнить Execute  
  RX     BAL Переход с возвратом Branch and Link  
  RX     BCT Переход по счетчику Branch on Count  
  RX     BC Условный переход Branch on Condition  
RX LH Загрузка полуслова Load Halfword  
  RX     CH Сравнение полуслова Compare Halfword  
  RX   4A   AH Сложение полуслова Add Halfword  
  RX   4B   SH Вычитание полуслова Subtract Halfword  
    RX   4С   MH Умножение полуслова Multiply Halfword  
  RX   4D   BAS Переход с записью в память Branch and Store  
  RX   4E   CVD Преобразование в десятичную Convert to Decimal  
  RX   4F   CVB Преобразование в двоичную Convert to Binary  
  RX     ST Запись в память Store  
  RX     N И And  
  RX     CL Сравнение кодов Compare Logical  
  RX     O Или Or  
    RX     X Исключающее ИЛИ Exclusive Or  
  RX     L Загрузка Load  
  RX     C Сравнение Compare  
  RX   5A   A Сложение Add  
  RX   5B   S Вычитание Subtract  
  RX   5C   M Умножение Multiply  
    RX   5D   D   Деление Divide  
  RX   5E   AL Сложение кодов Add Logical  
  RX   5F   SL Вычитание кодов Subtract Logical  
  RX     STD Запись в память (длинная) Store Long  
  RX     LD   Загрузка (длинная) Load Long  
  RX     CD Сравнение (длинное) Compare Long  
  RX   6A   AD Сложение (длинное) Add Long  
  RX   6B   SD Вычитание (длинное) Subtract Long  
  RX   6C   MD Умножение (длинное) Multiply  
  RX   6D   DD Деление (длинное) Divide Long  
  RX   6E   AW Сложение без нормализации (длинное) Add Unnormalized Long
  RX   6F   SW Вычитание без нормализации (длинное) Subtract Unnormalized Long
  RX     STE Запись в память (короткая) Store Short  
    RX     LE Загрузка (короткая) Load Short  
  RX     CE Сравнение (короткое) Compare Short  
  RX   7A   AE Сложение с нормализацией (короткое) Add Normalized Short
  RX   7B   SE Вычитание с нормализацией (короткое) Subtract Normalized Short
  RX   7C   ME Умножение (короткое) Multiply Short  
  RX   7D   DE Деление (короткое) Divide Short  
  RX       AU Сложение без нормализации (короткое) Add Unnormalized Short
  RX   7F   SU Вычитание без нормализации (короткое) Subtract Unnormalized Short
  S1     SSM Установить маску системы Set Program Status Word  
  S1     SPSW Установить PSW Set Program Status Word  
  S1     LPSW Загрузка PSW Load Program Status Word  
 

Наши рекомендации