Рефераты. Аппаратура, программное обеспечение и микропрограммы

Операции управления последовательностью:

РАКУП ¬ РАКУП+1 (обычный случай)

РАКУП ¬ декодированный РДП

РАКУП ¬ константа

SKIP (перескок, т. е. прибавление 2 к РАКУП, если АКК = 0; в противном случае прибавляется 1)

Операции с участием аккумулятора:

АКК ¬ АКК + РЕГ

АКК ¬ АКК – РЕГ

АКК ¬ РЕГ

РЕГ ¬ АКК

АКК ¬ РЕГ + 1


Из перечисленных микроопераций составляются последовательности, которые реализуют команды машинного языка нашей простой машины. Микропрограмма, выполняющая команды машинного языка, показана на рис. 2.4. Выполнение микропрограммы начинается с ячейки 00, с подпрограммы, которая выбирает следующую выполняемую команду машинного языка.

Рассматриваемая машина с микропрограммным управлением работает следующим образом. Вначале регистр РАКУП устанавливается в нуль и тем самым указывает на микрокод подпрограммы, осуществляющей выборку команды машинного языка. Следующая команда машинного языка для выполнения выбирается из ячейки, адрес которой находится в РАКОП. Загрузка этой команды из основной


Выбор команды:

(00) РАП ¬ РАКОП

(01) READ

(02) РАКУП ¬ декодированный РДП

ADD:

(10) АКК ¬ РАКОП 4- 1

(11) РАКОП ¬ АКК

(12) РР ¬ РДП

(13) РАП ¬ РР

(14) READ

(15) РР ¬ РДП

(16) АКК ¬ АКК + РР

(17) РАКУП ¬ 0

SUB:

(20) АКК ¬ РАКОП + 1

(21) РАКОП ¬ АКК

(22) РР ¬ РДП

(23) РАП ¬ РР

(24) READ

(25) РР ¬ РДП

(26) АКК ¬ АКК - РР

(27) РАКУП ¬ 0

LOAD:

(30) АКК ¬ РАКОП + 1

(31) РАКОП ¬ АКК

(32) РР ¬ РДП

(33) РАП ¬ РР

(34) READ

(35) РР ¬ РДП

(36) АКК ¬ РР

(37) РАКУП ¬ 0

STORE:

(40) АКК ¬ РАКОП + 1

(41) РАКОП ¬ АКК

(42) РР ¬ РДП

(43) РАП ¬ РР

(44) РДП ¬ АКК

(45) WRITE

(46) РАКУП ¬ 0

BRANCH:

(50) РАКОП ¬ РДП

(51) РАКУП ¬ 0

COND BRANCH:

(60) SKIP

(61) РАКУП ¬ 0

(62) РАКОП ¬ РДП

(63) РАКУП ¬ 0


памяти в регистр РДП осуществляется по команде чтения READ. Команда

РАКУП ( декодированный РДП

устанавливает в РАКУП адрес соответствующей микрокодированной подпрограммы управляющей памяти для интерпретации данной команды машинного языка; при этом просто анализируется код операции и осуществляется как бы табличный поиск с использованием кода операции в качестве ключа поиска. Следующий микрокомандный цикл вызывает передачу управления на микрокод подпрограммы.

Если, например, интерпретируемая машинная команда имеет вид

ADD 50

то нужно содержимое ячейки 50 основной памяти сложить с содержимым аккумулятора. Рассмотрим микрокод, который выполняет эту операцию.

(10) АКК ¬ РАКОП + 1

(11) РАКОП ¬ АКК

(12) РР ¬ РДП

(13) РАП ¬ РР

(14) READ

(15) РР ¬ РДП

(16) АКК ¬ АКК + РР

(17) РАКУП ¬ 0


Микрокоманды (10) и (11) обеспечивают установку в РАКОП адреса следующей по порядку ячейки основной памяти. Микрокоманды (12) и (13) выделяют адрес основной памяти команды, находящейся в РДП, и передают его в РАП. (Две микрокоманды с использованием РР для этого необходимы опять-таки потому, что машина не позволяет производить непосредственную передачу содержимого РДП в РАП.) После выполнения микрокоманды (13) в РАП оказывается адрес ячейки 50. Команда чтения READ (14) вызывает загрузку содержимого ячейки, указанной в РАП, в регистр РДП. По команде (15) эти данные заносятся в РР, а по команде (16) — суммируются с содержимым аккумулятора. Команда (17) устанавливает в РАКУП нулевой адрес подпрограммы выборки микрокоманд, так что следующий микрокомандный цикл начнет процесс выборки следующей команды машинного языка для выполнения.



Заключение


Аппаратура — это устройства вычислительной машины. Программное обеспечение составляют команды, интерпретируемые аппаратурой, а микропрограммы включают микрокодированные команды, размещаемые в высокоскоростной управляющей памяти.

Расслоение памяти обеспечивает возможность одновременного доступа к последовательным ячейкам основной памяти, поскольку ячейки с соседними адресами размещаются к различных модулях памяти. Механизм прерываний играет важную роль для режимов работы, при которых много операций могут выполняться асинхронно, но в определенных случаях требуют синхронизации. Буферизация с несколькими буферами позволяет эффективно совмещать операции ввода-вывода с вычислениями.

Спулинг (ввод-вывод с буферизацией) позволяет отделить работающую программу от низкоскоростных устройств ввода-вывода, таких, как принтеры и устройства ввода данных с перфокарт. При спулинге ввод-вывод данных для программы осуществляется при посредстве высокоскоростного внешнего запоминающего устройства, например накопителя на магнитных дисках, а фактическое чтение или распечатка данных производится в то время, когда устройства ввода перфокарт и принтеры свободны. Для изоляции пользователей друг от друга в многоабонентских системах необходимо предусматривать защиту памяти; защиту можно реализовывать несколькими различными способами, в том числе при помощи граничных регистров или ключей защиты.

Применение стандартного интерфейса ввода-вывода существенно упрощает подключение к машине новых внешних устройств. Внешние устройства могут работать под непосредственным управлением центрального процессора в режиме он-лайн, или автономно (оф-лайн), под управлением отдельных контроллеров, независимых от процессора. Функционально законченные вычислительные машины, которые выполняют операции ввода данных с перфокарт на магнитную ленту, вывода данных с магнитной ленты на печать и т. д. для более крупных машин, называются процессорами ввода-вывода, или компьютерами-сателлитами.

Канал — специализированная вычислительная машина для выполнения операций ввода-вывода без участия центрального процессора. Для координации взаимодействия между центральным процессором и каналом применяется, как правило, способ регулярного опроса или механизм прерываний. Наиболее известные типы каналов — это селекторные, байт-мультиплексные и блок-мультиплексные каналы.

Система управления вводом-выводом (IOCS) — это пакет программ, назначение которого заключается в том, чтобы освободить пользователя от необходимости детального управления вводом-выводом. Пакеты IOCS являются важной частью современных операционных систем.

Метод относительной адресации дает возможность работать с очень большим адресным пространством без необходимости увеличивать размер машинного слова; во время выполнения программы все адреса формируются путем прибавления смещения к содержимому базового регистра. Благодаря этому упрощается также перемещение программ по памяти.

Наличие в машине нескольких режимов работы обеспечивает защиту программ и данных. В режиме супервизора могут выполняться любые команды (включая привилегированные), а в режиме задачи — только непривилегированные. Эти режимы определяют

границу между возможностями пользователя и возможностями операционной системы. В некоторых машинах предусматриваются более двух подобных режимов работы.

Системы виртуальной памяти в обычном случае дают возможность программам работать с гораздо более широким диапазоном адресов, чем адресное пространство имеющейся основной памяти. Это позволяет освободить программиста от ограничений, связанных с емкостью основной памяти.

Метод прямого доступа к памяти исключает необходимость прерывать работу центрального процессора при передаче каждого байта блока данных во время выполнения операций ввода-вывода — в этом случае требуется только один сигнал прерывания, вырабатываемый при завершении передачи всего блока. Каждый символ записывается в основную память и читается из нее с захватом цикла памяти — здесь каналу предоставляется приоритет, поскольку центральный процессор может и подождать.

В архитектурах компьютеров высокого быстродействия применяются конвейеры, которые позволяют совмещать работу нескольких команд, в каждый конкретный момент времени находящихся на различных стадиях выполнения.

В современных вычислительных машинах реализуется иерархическая структура памяти, включающая кэш-память, основную (первичную, оперативную) память и внешнюю (вторичную, массовую) память; при переходе с уровня на уровень иерархии в указанном порядке емкости памяти увеличиваются, а стоимость в расчете на байт уменьшается.

Программное обеспечение — это программы, состоящие из команд, которые интерпретируются аппаратными средствами; команды определяют алгоритмы, обеспечивающие решение задач. Программы для компьютера можно писать на машинном языке, языке ассемблера или языках высокого уровня. Программисты редко работают непосредственно на машинных языках — программы в машинных кодах генерируются при помощи ассемблеров и компиляторов. Макропроцессоры дают возможность программистам, работающим на языке ассемблера, писать макрокоманды, которые порождают много команд на языке ассемблера. Компиляторы обеспечивают трансляцию программ, написанных на языках высокого уровня, на машинный язык. Интерпретаторы непосредственно выполняют исходные программы, не генерируя при этом объектные модули.

Процедурно-ориентированные языки являются универсальными, а проблемно-ориентированные языки специализируются для эффективного решения задач определенных классов. Компиляторы без оптимизации работают быстро, однако генерируют- относительно неэффективные коды; оптимизирующие компиляторы позволяют получать эффективные коды, но работают гораздо медленнее, чем без оптимизации.

Абсолютные загрузчики осуществляют загрузку программ в конкретные ячейки, адреса которых указываются при компиляции; перемещающие загрузчики могут размещать программы в различных свободных участках памяти. Привязка программы к памяти по абсолютным адресам осуществляется во время трансляции, а привязка перемещаемых программ — во время загрузки или даже во время выполнения.

Страницы: 1, 2, 3, 4, 5, 6, 7



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.