![]() |
Главная -> Появление первого микропроцессора 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 [100] 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 ная 8-разрядная шина данных ШД (8) - для обмена данными между МП, памятью и портами ввода-вывода; однонаправленная 16-разряд-иая шина адреса ША(16) -для адресации памяти, портов; 10-разрядная шина управления ШУ(10), связанная с внутренним устройством управления (УУ) микропроцессора и предназначенная для временной коммутации элементов МП системы. Модель памяти (М) представляет собой упорядоченную и пронумерованную последовательность 8-разрядных структурных элементов - ячеек памяти, или внешних регистров. 8-разрядное двоичное слово, хранимое в ячейке памяти (регистре), называется байтом, а отдельный двоичный разряд слова - битом. Номер ячейки памяти является ее адресом. 16-разрядная шина адреса МП позволяет обращаться к адресному пространству (максимальной совокупности адресуемых ячеек памяти) размером 2 = 65536 = 64 К байт (К = 1024 - общепринятая константа). Для нумерации адресов памяти используется шест-надцатеричная система счисления с цифрами О, 1, 9, А, В, С, D, Е, F. Каждый байт может быть представлен двумя полубайтами (старшей и младшей тетрадами бит), значения которых однозначно кодируются указанными шестнадцатеричными цифрами. При этом адрес любой ячейки памяти представляется 4-разрядным, а ее содержимое - 2-разряднЫм шестнадцатеричными числами 10000, 0001, FFFF) и {00, 01, FF). Примем, что в модели памяти время доступа .к содержимому любой ячейки памяти не зависит от значения ее адреса и над каждой ячейкой памяти может быть выполнена пара операций: запись байта в ячейку и чтение ее содержимого. Память такого типа называют запоминающим устройством с произвольной выборкой (ЗУПВ) или оперативным запоминающим устройством (ОЗУ) (оперативной памятью). Эта память используется для хранения программ, исходных, промежуточных и результирующих данных. В реальных МП системах фактическое количество ячеек памяти - емкость, или рабочее пространство, памяти - может быть меньше адресного пространства и, кроме того, разделено на части по каким-либо конструктивным или функциональным признакам. Например, часть памяти может быть предназначена только для операции чтения хранимой информации. Такая память - постоянное (или перепрограммируемое постоянное - ППЗУ) запоминающее устройство (ПЗУ) - используется для хранения программ и констант. Для учета при программировании подобных реальных ограничений на использование адресного пространства применяют карту памяти - графическое распределение рабочего пространства памяти между отдельными блоками последовательных ячеек, сгруппированных по выделенным признакам [28]. Модель портов ввода-вывода представляет собой, как и модель памяти, упорядоченную и пронумерованную последовательность 8-разрядных регистров. В системе посредством однобайтных шестнадцатеричных адресов {00, 01, FF) адресуются до 256 портов ввода и столько же портов вывода информации. Каждое системное устройство обменивается информацией (данными, адресами, управляющими сигналами) с МП путем посылки байта информации через соответствующий порт в А-регистр или приема байта из А-регистра. В качестве системных устройств ввода-вывода могут рассматриваться как периферийные устройства типа, например, АЦПУ, НГМД или дисплея, так и внутренние устройства типа, например, программируемого контроллера прерываний КР580ВН59 или программируемого параллельного адаптера интерфейса КР580ВВ55. Взаимодействие между элементами МП, памяти М и портов ввода-вывода I/O в программной модели МП системы сводится к выполнению четырех операций: записи информации в М и I/O из регистра МП и ее чтения из М и I/O в регистр МП. Вообще говоря, в системе возможны еще две операции: запись в М из порта I/O и чтение из М в порт I/O, которые появляются при организации прямого доступа в память (ПДП) со стороны системного устройства, например программируемого устройства прямого доступа КР580ВТ57 [2, 31]. Режим ПДП реализуется исключительно техническими средствами (за исключением программной инициализации устройства ПДП) и поэтому здесь не рассматривается. Последовательность функциональных взаимодействий между элементами программной модели МП системы определяется набором команд МП. Выполнение команды в МП системе, как и в большинстве вычислительных систем, состоит из двух крупных фаз: выборки адресованной команды из памяти и ее пыполнения, причем вторая фаза в ряде случаев состоит из двух полуфаз: выборки операнда из памяти и выполнения операции над операндом. При естественной последовательности выборки команд в заключение первой фазы или первой полуфазы второй фазы (если она имеет место) происходит автоматическое увеличение на единицу содержимого счетчика команд - адресация следующей команды, и после завершения выполнения текущей команды указанный двухфазный цикл повторяется уже для очередной команды. В реальных системах этот командный цикл вьшолняется с гораздо большей детализацией фаз, но для разработчика программ эти технические тонкости несущественны (они важны для схемотехнической реализации системы). Длительность командного цикла индивидуальна для каждой команды и может быть выражена количеством тактов, или периодов, генератора синхронизации МП. Зная частоту генератора, можно определить реальное время выполнения команды и фрагментов программ. Длительность команд, оперирующих в МП системе с содержимым внутренних регистров, существенно короче, чем команд, использующих внешние регистры. Поэтому при необходимости минимизировать время выполнения программы желательно основную обработку информации вести с использованием внутренних регистров. Функциональные возможности набора команд определяются в первую очередь форматом данных, команд и способами адресации операндов в командах. Для МП характерна малая разрядность основных структурных элементов (регистров), что приводит к использованию в МП преимущественно одноадресных, реже двухадресных (типа, например, команд межрегистровых пересылок) команд и различных способов непрямой адресации памяти, сокращающих длину командных слов и размеры программ. Формат данных (базового информационного слова), принятый в МП КР580,- 8-разрядное двоичное слово (Вт, Во) - байт, где В? - старший, а Во - младший разряды байта. Хранение и пересылка всех данных в МП системе реализуются в виде последовательности байтов (побайтно), а для представления данных повышенной разрядности используются программно-организуемые многобайтные слова. Байт может использоваться для представления как целых двоичных чисел без знака в диапазоне от О до 255, так и чисел со знаком: целых положительных в диапазоне от О до 127 и отрицательных в диапазоне от -1 до -128 при представлении чисел в дополнительном коде (см. прил. 2). Интерпретация числового значения байта (число со знаком или без него) осуществляется программным путем. Для чисел со знаком старший, седьмой разряд байта интерпретируется как знаковый бит: если он равен О, число положительное; если - 1,- отрицательное. Кроме рассмотренных представлений байта в виде двоичных или шестнадцатеричных чисел, возможна их интерпретация в качестве двоично-десятичных чисел (байт содержит две десятичные двоично-кодированные цифры) или алфавитно-цифровых символов, используемых дпя обмена с периферийными устройствами (см. гл. 6). Формат команды (командного слова) зависит от типа операции и может быть одно-, двух- или трехбайтным. Байты многобайтной команды обязательно размещаются в соседних ячейках памяти, и адрес первого байта является адресом команды в целом. Первый байт команды представляет код операции, второй и третий байты - данные или адрес. Заметим, что в трехбайтных командах старший и младший байты адреса или 16-разрядных данных меняются местами, т. е. вначале следует младший, а затем старший байт. Это является особенностью МП КР580, которую необходимо учитывать при программировании. К однобайтным относятся все команды межрегистровых пересылок (или команды типа регистр - регистр), ряд команд обращения к памяти, арифметических и логических операций, команды сдвига, возврата из подпрограммы, обращения к стеку, разрешения и запрещения прерываний; к двухбайтным - команды с непосредственными данными и ввода-вывода; к трехбайтным - команды переходов, вызова подпрограмм, загрузки регистровых пар и прямой записи в память. В МП КР580 используются пять различных способов адресации. Прямая адресация, при которой второй и третий байты команды содержат прямой адрес операнда в памяти. Регистровая, или неявная, адресация, при которой адрес регистра источника и (или) приемника операнда определяется кодом команды. Регистровая косвенная адресация, при которой адрес операнда находится в регистровой паре, адресуемой кодом команды. Непосредственная адресация, при которой операнд размещается во втором байте - для двухбайтной команды или во втором и третьем байтах - для трехбайтной команды. Стековая адресация, при которой адрес определяется указателем стека. Она отличается от регистровой косвенной адресации тем, что при обращении к памяти происходит запись или чтение двух байтов, а содержимое указателя стека автоматически соответственно уменьшается или увеличивается на 2. Информация в стеке хранится в том порядке, в котором туда поступает, а извлекается в обратном порядке, по принципу: «последним пришел - первым вышел». Набор команд МП КР580 содержит 78 базовых команд, различающихся мнемоническим обозначением кода операции, а в целом включает 244 различные их модификации. Условные обозначения, используемые для описания набора команд, приведены в табл. П.1. В табл. П.2 дано описание набора команд [10, 36, 43, 55]. В табл. П.З - П.5 представлены шестнадцатеричные значения кода операций команд с регистровой адресацией, а в табл. П.6 - определитель типа команд по кодам операций [12]. Этот определитель полезен при восстановлении исходного символического текста программы по ее объектному коду, т. е. при дезассемблировании программы. Все команды МП подразделяются на 5 функционально специализированных групп: 1) команды передачи йаккьос - используются для пересылки данных из регистра в регистр, из памяти в регистр (регистровую пару) и из регистра (регистровой пары) в память; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 [100] 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 0.0118 |
|