Минаев Е.И. - Основы радиоэлектронники (1266569), страница 74
Текст из файла (страница 74)
Запись программы и данных в память необходима, так как электронная вычислительная система работает автоматически по записанной программе со скоростью, во много раз большей, чем скорость записи программы программистом. Центральный процессор работает по алгоритму, показанному на рис. 15.6. При запуске микропроцессорной системы в регистре адреса команд (см. рис. 15.7) записан адрес команды. Этот адрес центральный процессор посылает в память. По адресу из памяти извлекается команда и записывается в регистр команд ЦП. Затем содержимое регистра адреса команд увеличивается на числе единиц, равное числу байтов в команде, т. е.
устанавливается адрес следующей команды. Этим завершается первый полуцикл, обозначенный на рис. 15.6 верхним прямоугольником и называемый выборкой. Затем команда, находящаяся в регистре команд ЦП, расшифровывается в устройстве управления и исполняется. Это полуцикл выполнения, показан вторым прямоугольником на Шина агрсса Гаюлсаьй *астра ср Рис. 10.5. Типичная архитектура центрального процессора 370 Паюююагю Первгюсююю Вююююы а аююююююю Рнс. 15.7.
Работа центрального процессора Рис. 15.б. Блок-схема алгоритма машинного цикла аыборка-аыполненне рис. 15.6. В схеме проверки условия 124], показанной ромбом, решается вопрос, выполнять ли следующие команды программы, аналогичные командам в описанном цикле выборки-выполнения, или закончить работу. Из вышеописанного принципа работы ЦП видна роль двух регистров: адреса команд и команд. Они служат для временного хранения адреса следующей команды и самой текущей выполняемой команды, записанных в виде двоичных чисел.
Остальные регистры ЦП служат также для временного хранения других двоичных чисел. Это прежде всего регистры оби1его назначения (РОН). Один или несколько арифметических регистров, называемых аккумуляторами, служат для временного хранения одного из анероидов (слова данных) и для запоминания результата выполнения операции. Арифметические и логические операции над числами и адресами производятся в арифметика-логическом устрог(стве (АЛУ), управляемом сигналами, поступающими из устройства управленим Рис. 15.7 поясняет работу ЦП.
На рисунке показано движение данных и команд, но не показаны сигналы управления, под действием которых происходят пересылка и обработка данных. Кроме регистров, перечисленных выше, в ЦП имеется еще регистр флагов. 371 Регистр Флагов, называеМый также регистром состояния, имеет несколько не зависимых друг от друга однобитовых ячеек. (В регистре флагов число однобитовых ячеек равно числу разрядов остальных регистров ЦП, но в нем используются лишь некоторые ячейки.) Флаг знака Яг равен старшему биту результата; 1 †д отрицательного числа и Π— для положительного.
Флаг нуля ХГ устанавливается в 1, если в результате выполнения операции получается нуль во всех разрядах, и в О, если результат опсрации отличен от нуля. Флаг переноса СГ при сложении устанавливается в 1, если возникает перенос из старшего бита, и в О, если переноса нет. Флаг переполнения ОР устанавливается в 1, если возникает переполнение. Это наиболее употребительные флаги состояния. Кроме этих флагов в регистре состояния могут быть и другие. Стек — это память из нескольких регистров с последовательным доступом, организованным по принципу «последним вошел— первым вышел». Этот принцип аналогичен принципу закладки и извлечения монет в пружинном металлическом портмоне. В таком портмоне монеты располагаются одна над другой. Причем последняя вложенная монета вынимается из него первой.
Стеки используются для временного запоминания информации и последующего считывания ее в обратном порядке. Доступ к стеку производится через специальный регистр — указатель стека. В некоторых случаях стоковая память эффективнее обычной памяти с произвольным доступом. Она дополняет, но не заменяет последнюю.
Кроме регистров и АЛУ в ЦП имеется устройство управления и синхронизации. 153. кодиРОВАние инФОРлтАции Вся информация в компьютере закодирована в двоичной форме. Она передается в виде последовательных посылок, называемых машинными словами, состоящих из одновременно передаваемых по п параллельным линиям а бит информации. Длина машинного слона обычно равна одному или двум байтам, т. е. а=8 или 16. Совершенно одинаковые слова„состоящие из одинакового чередования единиц и нулей, могут быть адресом, числом или командой.
Например, слово, состоящее из двух единиц, впереди которых стоят 14 нулей, может означать число 3, адрес ячейки памяти с номером 3 и команду, требующую определенного действия, например сложить. Смысл информации зависит от того, в каком из регистров или в какой ячейке памяти она находится. Ранее, в 5 14.17 и 14.18, кратко описаны некоторые виды кодов: обратный, дополнительный и двоично-десятичный. В компьютерах, кроме того, используются восьмеричный (октальный) и шестнадцатеричный коды.
372 При восьмеричном коде по аналогии с десятичным используются восемь цифр десятичного кода 0 — 7. Например, нетрудно понять, что 1О~о=12в', 15!о=17в', 291о=35в Для шестнадцатеричного кода используются десять цифр десятичного кода 0 — 9, а вместо цифры 10 используется латинская буква Л, вместо 11!о — буква В. Далее 12!в — — С; 13Ф=П; 14!о — — Е и, наконец, 15ы=Р. Отсюда следует, что 16!о=10!в., 17,о=11!в' 3110= !Р1б. В компьютерах восьмеричный и шестнадцатеричный коды применяются по двум причинам. Во-первых, числа 8 и 16 кратны 2 и удобны с точки зрения бинарного принципа построения компьютера.
Во-вторых, они облегчают запись и запоминание многоразрядных двоичных чисел, Для перевода пройзвольного 16-разрядного бинарного числа, например 0101 1!01 1111 0110, в шестнадцатеричное его можно записать в виде четырех 4-разрядных групп и каждую группу обозначить соответствующей ей шестнадцатеричной цифрой. Тогда получим 5ПРбм. Мы рассмотрели различные способы кодирования числовой информации, Буквы Л, В, С, П, Е и Р в шестнадцатеричной системе по существу не буквы, а цифры шестнадцатеричной системы 1О, 11, 12, 13, 14 и 15. Однако в компьютерах приходится кодировать не только числа, но и слова, записанные буквами, а следовательно, и сами буквы.
Широко применяется двоичный восьмеричный код ЛБСП (Лшег!сап 5!апдаг1 Собе !ог 1п1огтпаВоп 1п1егс!аапде) — американский стандартный код для обмена информацией. Так, при нажатии клавиши на терминале компьютера с какой-либо буквой в машиву вводится восьмибитовая комбинация, соответствующая данной букве. !84, КОМАНДЫ МИКРОПРОЦЕССОРА Командой в компьютере называют машинные слова, записанные в двоичном коде, которые после декодирования указывают ЦП, что он должен делать. Число команд в микропроцессорах измеряется несколькими десятками. Например, микропроцессор КР580 имеет 78 команд, а микропроцессор КМ!810 — 91 команду.
Команды можно классифицировать по различным признакам, Дадим представление о структуре команды. Команда содержит код операции, указывающий ту операцию, которая должна быть выполнена, и два адреса, определяющие данные, или операнды, участвующие в операции. На рис. 15.8 схематически изображена команда в виде 16-разрядного числа, где старшие биты 15 — 12 задают код операции КОП, а остальные биты указывают адреса источника и приемника информации, Например, код операции аа гг г! Рнс, 188. Формат двухадресной команды 378 0001 может означать команду МОЧ вЂ” пересылки данных, а адреса источника и приемника могут указывать, откуда и куда данные пересылаются.
Команды могут быть одноадресными, так и двухадресными. Перейдем к описанию команд различного назначения. Команды пересылки кодов. Это наиболее часто применяемые команды. В микропроцессорах примерно каждая третья команда является командой пересылки — из регистра в регистр, из регистра в память, из памяти в регистр, из одних ячеек памяти в другие ячейки памяти, пересылка из процессора в периферийные устройства, пересылки в стек из регистра или из стека и т, д. Арифметические и логические команды.
Это команды сложения, вычитания, умножения, деления и выполнения логических операций И, ИЛИ, Исключающее ИЛИ и НЕ. Команды сдвига. Для выполнения ряда вычислений требуется сдвиг битов числа влево или вправо на один илн несколько разрядов. Эта операция выполняется в сдвиговом регистре (см. рис. 14.46). Пример команды сдвига показан на рис. 15.9. Биты 3 — 0 указывают число и направление сдвига.
Например, если первоначальное число по указанному в команде адресу операнда равно 101011!О, то при логическом сдвиге вправо на две позиции получим число 00101011, а при сдвиге влево также на две позиции получим число 10111000. Из этого примера видно, что при сдвиге вправо два старших разряда становятся нулями, а все число сдвигается вправо. При этом два младших бита первоначального числа исчезают. При сдвиге влево заменяются нулями два младших бита, все число сдвигается влево, а исчезают два старших бита первоначального числа. Выше описан логический сдвиг. При арифметическом сдвиге, например, вправо исчезают лишь младшие разряды. Старшие освобождающиеся разряды отрицательных чисел, всегда обозначаемые единицей в старшем разряде, при сдвиге заменяются единицами, а положительных — нулями.
Например, первоначальное число 10101110 является отрицательным. При арифметическом сдвиге вправо на две позиции оно становится равным 1110!011, т, е. остается отрицательным. Если сдвигается на две позиции положительное число, равное 011!0001, то после сдвига получим 00011100. Кроме логического и арифметического сдвигов в компьютерах используется циклический сдвиг, когда при сдвиге вправо младшие биты первоначального числа переходят по кругу на место старших, а при сдвиге влево старшие биты переходят на место млад- и ат ° д д м пн а Рнс. 15.9. Формат команды сдвнта Рнс.