Cтраница 3
Каждой машинной команде языка соответствует в транслированной программе одна команда в машинном коде. Предложения управления трансляцией служат для выполнения вспомогательных функций: различных проверок, управления выдачей листинга Ассемблера, управления назначением адресов оперативной памяти, объединения программ, определения констант, резервирования областей памяти. Эти предложения, за некоторыми исключениями, не порождают команд в машинном коде. [31]
Недостатком такой системы обмена является нерациональное использование времени процессора, который в момент пересылки информации простаивает. Значительно более высокий коэффициент использования процессора получается при динамическом распределении программ в ОЗУ, когда целевые программы не привязываются к определенным адресам оперативной памяти. Для автоматической переадресации программы при считывании ее из ВЗУ в произвольную часть ОЗУ процессор УВМ имеет специальные базовые регистры управления памятью. Работа диспетчерской системы заключается в нахождении места в памяти для вызываемой программы и установки соответствующего ей числа в базовый регистр. Это число прибавляется к условным адресам, в которых записывается целевая программа, образуя истинный адрес памяти. [32]
Собственно буферная память состоит из блоков объемом в 32 байта каждый. Кроме того, в локальной памяти располагается адресный массив. В каждом элементе этого массива содержится адрес оперативной памяти, в котором располагается копия соответствующего блока буферной памяти. Перед тем как обратиться к оперативной памяти, для того, чтобы выбрать или записать операнд, схемы устройства управления обращаются к массиву адресов блоков, определяя по нему, находится ли Искомый операнд в буфере или в оперативной памяти. Это делается путем сравнения адресов, выработанных командой, с адресами массива. Коль скоро нужный операнд находится в буфере, обращение к оперативной памяти не производится, а используется операнд из буфера. Одновременно с этим операнд также переносится в буферную память и производится соответствующее изменение в адресном массиве, элемент которого теперь будет уже указывать на другую область основной памяти, где расположен блок, содержащий использованный операнд. [33]
Двоичные данные могут размещаться в качестве полуслов в оперативной памяти и в регистрах. При арифметических операциях двоичные данные рассматриваются как целые положительные двоичные числа без знака, изменение которых может происходить в диапазоне от 0 до ( 216 - 1) включительно. Двоичные данные используются в основном в качестве адресов оперативной памяти. [34]
Программные модули, полученные в результате трансляции соответствующего текста на ассемблере, обладают всеми преимуществами традиционных машинных процедур. По сравнению с библиотеками подпрограмм использование этих модулей связано с некоторыми накладными расходами. Приведение модуля в вид, готовый для выполнения, требует предварительной настройки на соответствующие адреса оперативной памяти и на возможные контакты с другими совместно работающими модулями. Однако после загрузки и настройки ассембле-ровский модуль может быть многократно использован и при хорошей организации обеспечит максимальное быстродействие в выполнении запрограммированной функции. [35]
Несколько подряд идущих канальных команд могут образовывать цепочку данных. В этом случае имеется одна команда обмена, например чтения физической записи из нескольких адресов оперативной памяти со счетчиков. Одна физическая запись распределяется в несколько адресов оперативной памяти. [36]
Однако программист может разбираться в аппаратуре и схемотехнических элементах микроЭВМ не столь детально, как инженер-разработчик микропроцессорных устройств. В отличие от последнего программист должен четко представлять лишь те элементы и характеристики вычислительной машины, которые явно отражаются в программах и должны быть учтены при разработке и выполнении программ. К таким элементам и характеристикам микроЭВМ следует отнести, в частности, число и имена программно-доступных регистров, разрядность машинного слова, систему команд, доступный размер и адреса оперативной памяти, быстродействие процессора, схему обработки прерываний, способы адресации оперативной памяти и внешних устройств. [37]
Несколько подряд идущих канальных команд могут образовывать цепочку данных. В этом случае имеется одна команда обмена, например чтения физической записи из нескольких адресов оперативной памяти со счетчиков. Одна физическая запись распределяется в несколько адресов оперативной памяти. [38]
![]() |
Регистр адреса ОЗУ ЭВМ ЕС-1020. [39] |
Блок адресных регистров включает в свой состав регистр адреса ( РА) и ряд вспомогательных регистров и схем. Регистр адреса служит для приема и хранения адреса ячейки памяти, к которой производится обращение при обработке очередной команды в процессоре ЭВМ. Регистр имеет информационные и контрольные разряды. На рис. 6.7 приведена схема регистра адреса оперативной памяти ЕС 3220 - 1, применяемой в ЭВМ ЕС-1020. Регистр имеет 18 информационных разрядов, разбитых на 3 байта ( из них 1 - й и 2 - й полные, а 3 - й неполный) и 3 контрольных разряда, по одному в каждом байте. Код адреса поступает в РА по адресным шинам из процессора и запоминается в 0 - 17 - м разрядах регистра. Каждый разряд регистра представляет собой триггер с потенциальными связями. Контроль записи информации в регистр осуществляется побайтно с помощью схем контроля на четность. На рисунке показана двухступенчатая схема проверки на четность старшего неполного байта регистра. На первой ступени в схеме совпадения сравниваются потенциалы 16-го и 17-го триггеров регистра. В другой схеме совпадения сравниваются потенциалы выхода первой схемы и триггера контрольного разряда КЗ. В случае неверного приема информации в РА со схемы контроля идет сигнал о сбое регистра адреса. [40]
Во время трансляции для каждой программной секции Ассемблер заводит свой счетчик адреса. Этот счетчик содержит адрес оперативной памяти для следующей команды, которую требуется исполнить. Счетчик адреса служит для присвоения адресов памяти предложениям программ. Всякий раз, когда Ассемблер обнаруживает в предложении типа машинной команды символическое имя, являющееся ссылкой на адрес оперативной памяти, Ассемблер проверяет, имеется ли в его распоряжении базовый регистр, содержащий подходящий базовый адрес. Базовый адрес, содержащийся в регистре, является подходящим только тогда, когда он не превосходит адреса, требуемого в команде. Разность этих адресов не должна быть больше 4095 байтов. [41]
![]() |
Фрагмент микропрограммы записи состояния ЦП. [42] |
Пересылка в РИП осуществляется через МЗ. ЦП и по диагностическому микроприказу АКЗЧ ( закодирован в поле А ДМК1) активизирует поле ЗЧТ чтения на магистраль МЗ ( см. рис. 61), где закодирован этот микроприказ ЦП. После считывания информации на МЗ сброс магистрали блокируется по микроприказу блокировки сброса магистралей БСМ. Адрес оперативной памяти АДР ОП, код которого С8, из поля АДРЕС поступает в БУ ОП. Одновременно поле РЛ формирует диагностический запрос ЗПРД ( см. рис. 55) в ОП для записи информации, находящейся в РИП. В конце такта магистрали сбрасываются. Запись второго слова РССП происходит аналогично. [43]