Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory gosy.docx
Скачиваний:
123
Добавлен:
03.05.2019
Размер:
5.99 Mб
Скачать

108. Приведите основные архитектурные варианта построения операционных систем. Поясните понятие «виртуальная машина»

109. Спроектировать устройство управления программного типа. Число микрокоманд в цикле – не более 7. Привести примеры циклов: выборка команды, чтение памяти и запись в память. Чем определяется период следования тактового сигнала

Распространены в CPU с командным управлением. С выхода регистра микрокоманд часть разрядов возвращается на дешифратор – это обратная связь. Цепь разделена регистром и соответственно изменяет состояние по тактовому сигналу «С». Поэтому если в обратной связи 2 разряда, то на двух разрядах вернувшихся на вход дешифратора возможны 4 комбинации. Т.е. из одного КОП мы можем сделать 4 комбинации микрокоманд. Основной блок устройства дешифратор имеет жесткие связи (пайка, металл на ИМС), поэтому изменить микрокоды возможно только если заменить схему на новую. Предлагалось сделать дешифратор на основе программируемой матрицы. Мы запрограммировали матрицу – получили свои микрокоды. Где-то эти микрокоды нас не устроили. Мы можем перепрограммировать этот дешифратор и получить новые микрокоды. Микрокоды считаются секретными, поскольку именно от них зависит время выполнения команды. На практике дешифраторы размещают на кристалле процессора и настраивают (программируют) металлом, выполняя соединение в матрице. В тех случаях, когда время выполнения команд должно быть строго фиксировано лучше применять микропрограммный способ управления.

110. Спроектировать устройство микропрограммного управления автономного типа. Источник управляющих кодов – счетчик микрокоманд, число состояний счетчика – 32. Разрядность регистра микрокоманд – 24

В отличие от управления с жесткими связями, в микропрограммных устройствах используют не дешифратор команд, а микропрограммную память с тем, чтобы просто из нее извлекать коды. На вход устройства подается код операции (управляющий код из ПЗУ). Однако из этого кода мы получаем начальный адрес подпрограммы которая выполнит нужную команду. Для чего схема управления адресом микрокоманд на всякий такт генератора формирует следующий адрес по которому из микропрограммной памяти мы читаем код микрокоманды. Обычно разбитый по полям (как 8 полей тренажера МТ 1804). Обратная связь из памяти и с выхода регистра позволяет выполнять переходы на следующий адрес (поле управляет видом перехода и адресом перехода если нужно). На схему управления могут подаваться сигналы признаков с выхода АЛУ CPU. Признаки позволяют выполнять условные переходы. Регистр микрокоманд включает не только сами коды управления посылаемые на микропроцессор, но и дополнительные сигналы которые могут управлять другими блоками схемы (мультиплекс. сдвига, чтение/запись из памяти, разрешение доступа в ОЗУ, ПЗУ и т.д.). Поскольку МПП можно сделать программируемой, то мы можем сами корректировать микрокоманды, делать сигналы управления такими какими они нам нужны в реальности. Основное достоинство микропрограммного способа – гибкость в написании кодов.

Недостаток: большие аппаратные затраты т.к. разрядность микрокоманды может быть большой до 100 и больше, что требует большого количества корпусов и регистров.

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

Принцип работы любого вычислителя основан на использовании содержимого памяти: по адресу читаем содержимое, модифицируем его и возвращаем назад в память. При этом в вычислителе выделяем два потока информации: 1) команды от ПЗУ до регистра команд, адрес выбирает команды устанавливаемые счетчиком адресов процессора. Последовательная выборка, переходы выполняются только с использованием этого счетчика. 2) данные. Объем памяти данных значительно больше памяти команд. К данным процессора обращается по адресу зачастую зависимому от алгоритма – пользователя. Поэтому чтение (запись) возможно с применением нескольких способов формирования адреса данных. Эти способы называют – адресацией. Переход от одного типа к другому объясняется стремлением пользователя упростить процедуру написания программы, сэкономить память команд. Основными типами адресации данных являются: 1) прямая адресация 2) косвенная 3) непосредственная.

  1. прямая адресация применяется для R/W данных в ОЗУ. Формат команды прямой адресации имеет вид.

КОП младший байт старший байт

Прямая адресация наиболее проста. Она обеспечивает произвольный доступ к любой ячейки памяти в интервале всего адресного пространства. В большинстве систем команд разрядность 16, следовательно, прямая адресация обеспечит доступ к любой ячейке памяти в интервале 64К.

Недостаток – способ не позволяет произвольно обращаться к большей памяти. Прямая адресация осталась основной в малых вычислителях, в которых нет расширения памяти. В ЭВМ прямая адресация применяется для работы внутри сегмента. Последовательность прохождения сигнала: процессор читает КОП по признаку. В КОП он выбирает следующие два бита, записывает их в регистр адреса ,и содержимое регистра адреса выставляет на шину адреса. От туда идет в ОЗУ и из него в регистр входа данных процессора. Т. о. Такая команда требует 4 цикла при выполнении. Прямая адресация основа для расширения модификации адресов.

2) непосредственная адресация. Применяют для ввода данных, начальных данных, констант в ОЗУ. Эти данные должны храниться в ПЗУ. Эти данные не могут быть модифицированы, поэтому работа с ними возможна с ними только через ОЗУ. Такая адресация применяется во всех командах загрузки данных. Формат

КОП данные КОП младший байт старший байт данные

Основные ограничения на непосредственную адресацию – это сам операнд. Поскольку операнд должен храниться в памяти команд невозможно оперативно его изменить. Отсюда команды применяются только для загрузки.

3) Наиболее удобным способом обращения к ОЗУ – косвенная адресация. Как правило она применяется при работе с масштабами: формирование масштаба, накопление данных, ввод данных, при чтении и выводе информации на дисплей через ЦАП на процессор. В основе косвенного метода лежит использование промежуточного ОЗУ для получения физического адреса. Последовательность формирования адреса:

КОП адрес промежуточное ОЗУ ША ОЗУ

В поле команды за КОП располагается адресная часть, ее разрядность не велика, поэтому она занимает немного места. Содержимое адресной части: адрес 1 поступает на промежуточное ОЗУ, выбирая из него ячейку содержащую физический адрес. Последний пересылается на ША. По нему выбирается нужная ячейка ОЗУ. В старых разработках в качестве промежуточного ОЗУ применяли специальные схемы СОЗУ малой емкости. Число слов хранения в них 16-32. В тоже время, разрядность таких СОЗУ соответствовала полной разрядности памяти данных (16,20). С появлением процессора промежуточное ОЗУ начали размещать непосредственно на кристалле микропроцессора, поэтому связь кода команды с промежуточным ОЗУ – по внутренним сигналам процессора. Пользователь не ощущает этого промежуточного ОЗУ. Га ША появляется уже физический адрес. В отличие от прямой адресации косвенная: 1) формат команды короче, он занимает один байт. Адресная часть размещена в КОП. Количество адресов (объем промежуточного ОЗУ) уменьшилось, но команда занимает в памяти меньше места. 2) Любая команда прямой адресации требует нескольких обращений в память команд. КОП, адрес младший, адрес старший и адрес доступа к данным, т.е. минимум 4 раза на ША. Косвенная адресация обходится двумя циклами: КОП, физический адрес доступа к данным. В косвенной адресации прежде чем воспользоваться ее, требуется определить содержимое памяти: в регистровую пару необходимо занести адрес начальной ячейки памяти данных, т.е. определить составные этой памяти. Если это не сделать, обращение произойдет по нулевому адресу, либо по случайному адресу. При обращении к следующей ячейке содержимое регистровой пары следует увеличить (уменьшить) на единицу специальной командой. Команды косвенной адресации дают заметное преимущество, если массив пересылает данных более 10. Тем более, что косвенная адресация легко вписывается в цикл – прямая же нет. Косвенная адресация позволяет просто организовать цикл в программе, прямая – затруднительно.

(2) С расширением адресного пространства ОЗУ стала проблема увеличения разрядности адреса без изменения процессора. С этой целью разрабатываются различные подходы к получению физического адреса при сохранности структуры самого процессора.

1) страничная адресация – это варианты позволяющие увеличить разрядность шины адреса. Дополнительно к адресной шине процессор комплексируется разряды с триггера адреса.

Триггеры адреса – обычно счетчик с последовательным счетом и возможностью установки данных дополнительно в ША. Использует выходные разряды такого счетчика. ША увеличивается во много раз. Основной недостаток этого способа – необходимость управления счетчиком. Им необходимо управлять через внешние сигналы процессора. Идея страничной адресации интегрирована в сегментную. Этот триггер выполнен внутри процессора, его выходы образуют дополнительные 4 разряда адреса.

Поскольку сегментный регистр выполняется 16 разрядным, его содержимое сдвигается на 4 разряда влево и складывается с регистром адреса. В результате формируется смещение содержимого адресного регистра. При таком способе изменить адрес можно двумя путями. Появляющаяся степень свободы накладывает дополнительно заботу о состоянии всех внутренних регистров процессора. Сформировать физический адрес можно и с участием третьего регистра – регистра смещения или базового регистра. Его содержимое как бы перемещает физический адрес в пространстве адресов на некоторую величину. Если вместо базового использовать другой регистр получают относительный адрес.

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

Рассмотренные способы адресации позволяют успешно обращаться к любым ячейкам памяти в предельно максимальный адрес системы.

Согласно принципам программного управления вся информация хранится в ячейках памяти по адресам, т.е. при работе ЭВМ необходимо как-то формировать адреса для доступа к ячейкам памяти. Адресный счетчик CPU формирует адреса для схемы памяти команд. И если нам нужно обратиться за командой – адреса берем из счетчика адреса, либо с его помощью. Существует 3 способа формирования адресов (способов добычи данных из памяти), также есть один четвертый по умолчанию.

  1. П рямая адресация. Формат команды прямой адресации должен иметь min 2 части: код операции и адресную часть. В коде операции содержится управляющий код для выполнения команды. В этом коде включен тип адресации, направление передачи данных, источник/приемник. Адресная часть – это адрес 1 байт, 2 байта той ячейки, к которой производится доступ. Если адрес 1 байт – эти команды работают с внешними устройствами (у них адрес однобайтный). Адреса ВУ вынесены из общего адресного пространства. Двухбайтный адрес – обращение к памяти данных. 16-разрядов данных позволяет обращаться лишь к 64К адресов. Этот объем называется страницей. Команда прямой адресации содержит прямой адрес т.е. в коде операции содержится код команды, во 2-ом байте младший байт прямого адреса, в 3-ем старший байт прямого адреса. Деление на байты вызвано тем, что система команд работает с однобайтной шиной. Основной недостаток адресации – значительное время требующееся на подготовку самой пересылки.

Достоинства: логически простая т.к. адрес видит пользователь, он сам пишет к какой ячейке обратиться. Поскольку команда длинная, она используется не часто, обычно когда требуется работать с выделенными, замечательными, особенными ячейками памяти.

  1. Косвенная адресация. Основной тип адресного доступа к памяти данных. Работает с массивами (малыми, большими), таблицами. Код операции включает только код операции и признак адресации. Чтобы выполнить такую команду нужно предварительно заготовить в каких либо регистрах CPU адрес который эта команда привлечет для своего выполнения. В малых микропроцессорах для этих целей существуют регистровые пары HL, DE, BC. В 16-разрядных и выше CPU используются самостоятельные регистры (базовые, индексные). Смысл косвенной адресации состоит в том, что содержимое адресного регистра просто модифицировать.

<Ci+1> инкремент

<Ci-1> декремент

Команда косвенной адресации выполняется в следующей последовательности:

0 подготовить адрес

1 выбираем КОП (Сч.А -> ША -> ПЗУ -> <КОП> ->ШД -> Рг.команд процессора)

2 <HL> -> ША -> ОЗУ -> <данные> -> ШД -> Рг.процессора

1-й цикл: выборка стандартная

2-ой цикл: содержимое регистровой пары (адресного регистра в CPU) коммутируем на ША и выполняем обращение к памяти данных (ОЗУ). Выбирается ячейка из которой можно прочитать в CPU либо в которую можно записать из Рг.процессора. Косвенной – эта адресация называется потому, что адрес не присутствует в коде команды, он подразумевается как находящийся в CPU. При описании команды указываем не сам адрес, а лишь место его хранения. Косвенная адресация позволяет использовать цикл для работы с массивом произвольной длины.

  1. Непосредственная адресация.

Любая процедура решения задачи предусматривает ввод начальных, исходных данных. Эти данные обычно берутся из памяти команд. Непосредственно в командах указываем начальные данные, которые присваиваются той или иной переменной. Единственный способ сохранить их вписать в память команд. Поэтому команды непосредственной адресации работают с данными, но эти данные хранятся в ПЗУ. Как таковой адрес ячейки для обращения к ОЗУ нам не нужен. Нам проще писать эти данные в команды и читать их вместе с кодами операций. Таким образом процедура инициализации предусматривает ввод начальных данных из памяти команд. Последовательность выполнения команды:

1-ое ввод 1 байта начальных данных

- выборка Сч.А -> ША -> ПЗУ -> <КОП> -> ШД -> Рг.команд процессора

2-ое Сч.А+1 -> ША -> ПЗУ -> <начальн. данные> -> ШД -> Рг.процессора

Способ непосредственной адресации можно назвать способом ввода начальных данных из ПЗУ. Поскольку как такового адреса в ПЗУ мы не ищем.

Кроме основных существует: прямая регистровая – когда выполняется пересылка из одного регистра в другой в самом CPU, в память данных мы не ходим, но адреса регистров нужно определить, они прописываются в коде операции, в старшей и младшей части кода.

Неявная адресация – обычно это выбор нескольких замечательных ячеек. Ее можно назвать адресацией по умолчанию. Адрес ячейки хранится где либо в CPU. Причем мы не интересуемся этим адресом. Например запись в программный стэк выполняется неявно: по содержанию указателя стэка.

Главным недостатком является то, что разрядность адреса в них небольшая что ограничивает объем адресуемой памяти одной страницей (64К). Поэтому в современных системах, где ОЗУ имеет большой объем применяют модификацию адресов – способ увеличить длину адреса и тем самым дать возможность увеличить объем памяти или сегодня получить возможность просто изменять адрес (прыгать по адресному пространству).

  1. Первым способом модификации адресов считается страничная адресация. К типовой ША, например 16-разрядов добавляем еще 4 взятых с выхода регистра. Информацию в этот регистр мы можем записать с ШД, обратившись к нему как к любому внешнему устройству (16+4=20) и объем адресного пространства увеличивается до 1 Мбайта. Все поле памяти делим на страницы номера которых хранит 4-разрядный регистр. Пока его состояние неизменно мы находимся в пределах одной страницы (64К). Чтобы перейти на другую требуется поменять состояние регистра. Такое подключение использовали в системе сбора, когда применялся небольшой МП с 16-разрядной ША.

  2. Использование сумматоров в адресных цепях CPU. Способ оказался более перспективен т.к. легко модифицируется, занимает мало времени. В CPU имеются 16-разрядные регистры. Поэтому напрямую чтение регистра не увеличивает разрядность. Тогда предложили объединить содержимое двух регистров на сумматоре по следующей схеме. 4 младших разряда одного регистра выводятся напрямую на ША, а оставшиеся 12 объединяются (складываются) в сумматоре с 16-разрядами другого регистра. Получаем 16-разрядов старших и в целом 20 разрядов по адресу. Объединение содержимого двух регистров позволило выполнить быстрые манипуляции с адресами.

С ростом разрядности внутренних регистров до 32 модификация адресов проводится с другой целью: возможность быстрого изменения адреса в текущей программе. С этой целью выбираем некий базовый регистр (BX) и регистр смещения. Счетчик адреса в такой манипуляции сохраняет свое старое состояние (+1), но диапазон адресов другой. В зависимости от того какой регистр мы используем в качестве базового (начального) и различают виды модификации: базовая – использует базовый регистр BX; индексная – использует индексный регистр; индексно – относительная адресация это совместное использование индексной и базовой относительной адресации.

Использование комбинаций адресных регистров позволило относительно быстро менять физический адрес выставляемый на ША. При этом состояние счетчика адреса практически не меняется и мы контролируем через счетчик адреса начальные адреса. Стоит такая модификация дополнительных затрат оборудования: сумматор, дополнительный регистр, которые в устройстве управления явно не предусмотрены.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]