- •ЮУрГУ
- •Кодирование программ
- •Тема 2 Архитектурные особенности организации
- •1. Назначение и структура базовой ЭВМ
- •Структура базовой ЭВМ
- •Компьютер PDP-8
- •Характеристики базовой ЭВМ:
- •Характеристики регистров
- •Характеристики регистров
- •2. Кодирование программ и система команд
- •Мнемоническое (символическое) кодирование для записи команд:
- •Форматы команд базовой ЭВМ:
- •Способы адресации
- •Способы адресации
- •3. Арифметические операции
- •Арифметические операции в базовой ЭВМ
- •Операция сложения
- •Выполнение команды сложения ADD 21 (жирные линии – передача адреса, двойная – команд
- •Размещение целого двоичного числа в нескольких словах памяти
- •Операции с несколькими словами
- •Изменение знака числа (команды CMA и INC)
- •4. Управление вычислительным процессом, сдвиги и логические операции
- •Почти все программы ЭВМ должны обладать способностью проверять исходные данные, промежуточные и окончательные
- •Разветвления в программах (команды BCS, BPL,BMI,BEQ, BR)
- •ЦиклическЦиклическиее программы программы используются в тех случаях, когда требуется
- •Циклические программы
- •Циклические программы
- •Циклические программы
- •Циклические программы
- •Циклические программы
- •Циклические программы
- •Побитовая обработка данных
- •Побитовая обработка данных (команды ROL, ROR, CMC, CLC)
- •Побитовая обработка данных (команда ROL)
- •5. Подпрограммы и параметры
- •Подпрограммы
- •Стековая память
- •Примеры использования подпрограмм
- •Примеры использования подпрограмм
- •Использование подпрограмм
- •6. Основные стадии выполнения команды
- •Цикл команды
- •Соотношение между микрооперациями и микрокомандами на примере выполнения одноадресной команды (микропрограммы) вычитания в
- •1.Выборка команды
- •1. Выборка команды
- •2. Выборка адреса
- •2. Выборка адреса
- •3. Исполнение
- •3. Исполнение
- •4. Прерывание
- •Литература:
Использование подпрограмм
Один из возможных способов передачи параметров: размещение
параметров непосредственно за командой JSR. Адрес возврата, записываемый командой JSR, в действительности является адресом первого параметра. В подпрограмме приходится производить наращивание этого адреса для выборки остальных параметров и получения действительного адреса возврата — адреса команды, расположенной за последним из параметров. В качестве параметров можно использовать константы или переменные (адреса). В последнем случае несколько усложняется обработка этих параметров.
Возможно и размещение параметров в специальной области параметров с передачей в подпрограмму начального адреса этой области. Основная программа может использовать эту область для нескольких подпрограмм, что позволит сократить объем памяти.
6. Основные стадии выполнения команды
Цикл команды
В процессе исполнения машинных команд устройство управления ЭВМ производит анализ и пересылку команды, отдельных ее частей (кода операции, признака адресации и адреса) или операнда из одного регистра машины в другой ее регистр, АЛУ, память или устройство ввода-вывода.
Эти действия (микрооперации) протекают в определенной временной последовательности и скоординированы между собой. Для создания временной последовательности используется генератор тактовых импульсов (импульсов с частотой в сотни и тысячи МГц).
Для реализации одной команды требуется выполнить определенное количество микрокоманд, каждая из которых инициирует одновременное осуществление одной или нескольких микроопераций за время одного рабочего такта ЭВМ. Общее число тактовых импульсов (микрокоманд), требуемых для выполнения команды, определяет время ее выполнения, называемое циклом команды. Цикл команды обычно включает один или несколько машинных циклов.
Типичный цикл команды
Устройство управления может находиться в четырех возможных состояниях:
- выборки команды; выборки адреса; исполнения; прерывания.
Длительность каждого из этих четырех состояний определяет время выполнения соответствующего машинного цикла. Каждый машинный цикл предназначен для определенной цели.
Соотношение между микрооперациями и микрокомандами на примере выполнения одноадресной команды (микропрограммы) вычитания в простом процессоре
1.Выборка команды
Вданном цикле выполняются чтение команды из памяти, ее частичное
декодирование и иногда исполнение (для безадресных команд и команд ввода-вывода,
являющихся одноцикловыми командами).
1)содержимое ячейки памяти, указываемой счетчиком команд, читается из памяти в регистр данных (а, б);
2)содержимое счетчика команд увеличивается на единицу (б, в);
3)содержимое регистра данных пересылается в регистр команд (г), код
операции команды частично декодируется для выяснения типа команды (адресная, безадресная или ввода-вывода), анализируется бит признака адресации и происходит подготовка цепей, необходимых для выполнения команды; 4) если выбрана адресная команда, то осуществляется переход к
микрокомандам следующего машинного цикла; в противном случае выполняются действия по завершению одноцикловой команды.
1. Выборка команды
Исполнение одноцикловой команды CMA, инвертирующей содержимое аккумулятора, в конце цикла выборки команды
2. Выборка адреса
Этот цикл следует за выборкой команды для адресных команд с косвенной адресацией и используется для чтения адреса операнда (адреса результата или перехода) из
памяти.
1) адресная часть команды пересылается из регистра данных (где пока еще сохраняется копия команды) в регистр адреса (а);
2)содержимое ячейки памяти, указываемой регистром адреса, читается в регистр данных (б); теперь в этом регистре находится адрес операнда (адрес результата или перехода), который будет использоваться при выполнении
команды (в цикле исполнения).
Если косвенно адресуется одна из индексных ячеек (ячеек с номерами от 008 до 00F), то цикл выборки адреса операнда (результата) продолжается;
3)содержимое регистра данных увеличивается на единицу (в, г);
4)измененное содержимое регистра данных пересылается и ячейку памяти но
адресу, указываемому регистром адреса (д); 5) содержимое регистра данных уменьшается на 1 (д, е).
После этой операции в регистре данных восстанавливается значение адреса, находившегося в индексной ячейке до выполнения шага 3. Содержимое же индексной ячейки увеличилось на единицу, и при следующем обращении к ней будет выбран новый адрес операнда (результата).
2. Выборка адреса
Цикл выборки адреса для обычных ячеек (а, б) и индексных ячеек (в, г, д, е)
3. Исполнение
Последовательность действий определяется типом выполняемой адресной команды:
-для команд, при исполнении которых требуется выборка операнда из памяти ЭВМ (AND, ADD, ADC, SUB, ISZ), используется для чтения операнда в регистр данных и выполнения операции, указываемой кодом операции команды;
Пример цикла исполнения для команды ADD 21 с прямой адресацией
Оба цикла (выборки и исполнения) будут такими же и при сложении с косвенной адресацией. В последнем случае между этими циклами будет выполнен цикл выборки адреса операнда, и этот адрес, так же, как и при прямой адресации, будет помещен в регистр данных.
3. Исполнение
- по команде пересылки (MOV) производится запись содержимого аккумулятора в ячейку памяти с адресом, расположенным в регистре данных, для чего содержимое регистра данных пересылается в регистр адреса, а содержимое аккумулятора и регистр данных и далее в ячейку памяти, указываемую регистром адреса;
- при исполнении команд переходов (BCS, BPL, BMI, BEQ) производятся проверка соответствующего условия (1 в регистре переноса, 0 в знаковом разряде аккумулятора и т. п.) и пересылка адреса из регистра данных в счетчик команд при выполнении этого условия. Если исполняется команда безусловного перехода (BR), то пересылка адреса перехода в счетчик команд осуществляется без какой-либо проверки; следовательно, при выполнении условия, определяемого кодом операции команды, или при выполнении команды BR следующей будет выбираться команда из ячейки памяти с адресом, расположенным в регистре данных (адресом, расположенным в исполняемой команде или избранным из ячейки, на которую указывает этот адрес); в противном случае будет выбрана команда, расположенная вслед на исполняемой;
- для команды обращения к подпрограмме (JSR) во время этого машинного цикла осуществляются пересылка содержимого счетчика команд в ячейку памяти, адрес которой содержится в регистре данных, и занесения в счетчик команд увеличенного на единицу содержимого регистра данных.
Цикл исполнения команды JSR 30
