где n количество адресных полей в команде.Максимальное количество операций, которое может быть закодировано в поле кода операций длиной nкоп , составляетKmax = 2nКОпТогда по известному количеству команд (K), составляющих систему команд данной ЭВМ, можно определить необходимую длину поля операции:nКОп ⊇ log2K.Естественно, что эта величина должна быть минимально возможным целым числом. Так, для ЭВМ, имеющей систему команд из 100 команд, длина поля кода операции составит 7 бит.Если поле адреса команды содержит просто номер ячейки ЗУ, к которой производится обращение, то длина этого поля определяется следующим образом:nадр ⊇ log2VЗУ,где VЗУ объем запоминающего устройства.Правомерна и другая постановка задачи определение максимального объема запоминающего устройства (VЗУmax), к которому можно обратиться при заданной длине поля адреса. В этом случаеVЗУmax=2nадрСовременные ЭВМ имеют, как правило, запоминающие устройства с минимальной адресуемой единицей 1 байт (1 байт = 8 бит). Поэтому, например, адресация ЗУ объемом 1 мегабайт (1М байт = 220 байт) требует 20 разрядов адресного поля, а поле адреса длиной 16 разрядов позволяет обращаться к памяти максимального объема 64 килобайта (1К байт = 210 байт).Одним из способов уменьшения длины поля адреса является введение в состав ЭВМ дополнительно специального блока памяти небольшого объема регистровой памяти (РП). Это запоминающее устройство имеет высокое быстродействие и служит для хранения часто используемой информации: промежуточных результатов вычислений, счетчиков циклов, составляющих адреса при некоторых режимах адресации и т.д.. Так как объем РП невелик, адресация ее элементов требует относительно короткого адресного поля. Например, для регистровой памяти объемом 8 регистров требуется всего лишь трехразрядное адресное поле.Способы адресацииРешить проблему сокращения разрядности команды только за счет сокращения количества указываемых в команде операндов и применения регистровой памяти невозможно. Этой же цели служит использование различных способов адресации операндов. Кроме того, применение нескольких способов адресации повышает гибкость программирован
nком = nКОп + Σ nадрi,
Схема выполнения операции в ЭВМ с безадресной системой командПроиллюстрируем работу такой ЭВМ на примере вычисления выражения ((a + b) * c - d) / e.На первых двух тактах работы из памяти извлекаются операнды a и b и помещаются в рабочие регистры РР1 и РР2. Считав следующую ячейку стековой памяти, устройство управления по ее тэгу определяет, что данная информация представляет собой код операции. Этот код направляется в АЛУ, где и проводится сложение хранящихся в регистрах операндов с записью результата в один из рабочих регистров. Так как в следующей ячейке хранится операнд, то он направляется в РР, свободный от записанного результата. После этого производится выполнение следующей операции и так далее.Такая структура ЭВМ обеспечивает высокое быстродействие, но требует весьма сложного программирования.Взаимозависимость формата команды и основных параметров ЭВМВажной характеристикой команды служит ее длина, которая складывается из длины поля кода операции и суммы длин адресных полей:
Схема выполнения операции в ЭВМ с одноадресной системой командСхема выполнения операции на ЭВМ с одноадресной системой команд имеет вид:(А) * (РР) -> А или(А) * (РР) -> РР.Операцию c = a + b в одноадресной системе команд можно выполнить следующим образом: КОпА1MOVRaРР = aADDbРР = РР + bMOVScc = РРРассмотренные форматы команд используются при так называемом естественном порядке выполнения программы. При этом подразумевается, что после выполнения любой команды, не меняющей в явном виде порядок выполнения программы, очередная команда выбирается из ячейки ЗУ, располагающейся сразу же вслед за ячейкой (или ячейками), содержащей код текущей команды. При четырехадресной системе кодирования команд ( ) первые три адреса выполняют те же функции, что и в трехадресной команде, а четвертый адрес указывает адрес ячейки, где хранится следующая выполняемая команда. Такая система обеспечивает принудительный порядок выполнения команд программы. Она хотя и повышает гибкость программирования, но практического применения не получила. Основной причиной этого является существенное увеличение размера каждой команды и, соответственно, увеличение объема ЗУ, необходимого для размещения программы, в то время как реальной потребности в такой кодировке каждой команды не существует.Несколько особое положение занимает безадресное кодирование команд. Оно используются в компьютерах, имеющих стековую организацию памяти. Обращение к ячейкам такой памяти производится последовательно с помощью специального указателя стека (УС), определяющего рабочую в данный момент ячейку. Каждая ячейка снабжена тэгом специальным признаком хранимой информации. Такая ЭВМ имеет структуру, представленную на . В ее состав помимо АЛУ входят два специальных буферных регистра РР1 и РР2. Здесь значение тэгов следующее: Op в данной ячейке хранится операнд, C признак наличия в ячейке кода операции. Рис. 11.3.P
Системы кодирования командДля выполнения операции сложения операндов, находящихся по адресам a и b, с записью результата в ячейку c (c = a + b) требуется одна команда такого формата: КОпА1А2А3ADDabcЗдесь ADD код операции сложения.Формат двухадресной команды представлен на . Выполнение операции с помощью такой команды проходит по следующей схеме:(А1) * (А2) -> А1 или(А1) * (А2) -> А2Выполнение того же самого действия c = a + b в двухадресной системе кодирования команд потребует уже двух команд, например: КОпА1А2ADDaba = a + bMOVcac = aОдноадресная команда имеет формат, приведенный на . Обычно ЭВМ с одноадресной системой команд имеют особую структуру, в состав которой входит специальный регистр (регистр результата РР). Он служит для хранения результата операции и используется в качестве одного из операндов при выполнении операции ( ). Рис. 11.2.P
Система кодирования командЗапись любой команды определяется ее форматом. Формат команды это структура команды, позволяющая распознать назначение отдельных ее полей.Исходя из определения, команда должна содержать информацию о выполняемой операции, адресах операндов и адресе ячейки ЗУ для записи результата. Этому в наибольшей степени соответствует формат команды, содержащий поле кода операции и три адресных поля. Такая система кодирования команд называется трехадресной ( ).Схема выполнения трехадресной команды имеет вид:(А1)*(А2)->А3.Здесь (А1) и (А2) адреса ячеек ЗУ, в которых хранятся первый и второй операнды соответственно; * знак обобщенной операции (например, сложение или умножение), задаваемой полем кода операции (КОп). Знак -> обозначает передачу результата операции в ячейку памяти с адресом А3. Рис. 11.1.P
Рассматриваются различные системы кодирования команд, взаимосвязь основных параметров ЭВМ с форматом команды, основные способы адресации и их влияние на время выборки операнда, длину поля адреса, особенности их использования при составлении программ для обработки различных структур данных.
Система кодирования команд. Способы адресации: версия для печати
Логические и арифметические основы и принципы работы ЭВМ
INTUIT.ru::Интернет-Университет Информационных Технологий
Комментариев нет:
Отправить комментарий