Внутри машинное представление «управляющей информации»
Внутри машинное представление «управляющей информации»
Учебно-методические указания для выполнения расчетно-графических работ по дисциплине «Аппаратные средства вычислительных комплексов», специальность ПИЭ.
Издание 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 | ||
  Наши рекомендации
|