В основу работы таких элементов так же положено хранение информации в виде заряда ёмкости, включенной между информационным МОП транзистором и общим проводом схемы, для чего используют трёхтранзисторные схемы.
Рис.20 3-хтранзисторное запоминающее устройство
В трёхтранзисторных ЗУ конденсатор изолирован от разрядной шины и считывание информаций происходит без её разрушения. Однако, из–за утечки тока в требуется её периодическая регенерация, что достигается подачей высокого потенциала на АШ, которая открывает транзистор , и специальной схемой, подключенной к РШ подаётся , т.е. ёмкость заряжается.
15.Постоянные Запоминающие Устройства ПЗУ.
Модули памяти, в которых изменить записанную информацию средствами самой системы невозможно, называютПЗУ (или ROM). В ПЗУ можно достичь намного большей плотности упаковки информации, так как их ЗЭ проще.
Базовую структуру ПЗУ можно представить себе состоящей из дешифратора адреса и совокупности подключенных к нему элементов логического ИЛИ. Выходные линии дешифратора адресов находятся во взаимнооднозначном соответствии с ЗУ ПЗУ. Число элементов логического ИЛИ определяется разрядностью выходного слова. Соединив выходную линию дешифратора, соответствующую некоторому входу памяти с выходом элемента ИЛИ получим значение одного бита в этом слове.
Процесс записи информации в ПЗУ называется программированием. По способу программирования ПЗУ делят на три вида:
1. С масочным программированием, которое производится в процессе изготовления ПЗУ
2. Однократно программируемая или электрически программируемая ПЗУ
3. Репрограммируемые (программирование с возможностью стирания)
Программируемость памяти любого из этих типов подразумевает установку или снятие специальной перемычки, связывающей линию выборки строки со входом соответствующего логического элемента ИЛИ. Место установки перемычек определяют информацию, хранимую в ПЗУ. А конкретная реализация этих перемычек и способ их программирования зависят от типа ПЗУ.
ПЗУ, программируемые в процессе изготовления.
Эти ПЗУ программируются на последних технологических этапах их производства. Элементы коммутации – это некоторые промежутки, часть которых перемыкается на последнем этапе металлизации схемы. Делается это с помощью масок, т.е. фотошаблонов, которые задают точную форму участков металлизации и изготавливаются для каждого конкретного наполнения ПЗУ.
Рассмотрим пример такого ПЗУ, где роль элементов ИЛИ выполняют полупроводниковые диодные логические элементы И от инверсных сигналов на выходе дешифратора, что по закону Де–Моргана соответствует операции И от неинвертированных выходных сигналов.
Рис.21 Структура ПЗУ
Когда на входе высокие потенциалы, то и на выходе высокие. Когда на одном из входов есть ноль, то выход ноль.
На каждый бит в каждом слове приходится один диод. В проводниках соединительные диоды с общей линией столбца есть промежутки. Для программирования ноля в определённом бите нужно установить в промежутке перемычку, т.е. произвести металлизацию промежутка, в противном случае значение бита будет равно единице. Поскольку общая линия данных в столбце нормально имеет высокий потенциал через , этот потенциал может стать низким только за счёт присоединяемой перемычкой АВС с низким потенциалом через открытый диод.
Пример ЗУ на МОП транзисторах.
Рис.22 Запоминающее устройство на МОП транзисторах
Здесь операция ИЛИ на выходе данных дешифратора выполняется при помощи –канальных нормально закрытых МОП транзисторах. Промежутки располагаются в цепи стока каждого транзистора. Когда выбирается определённая ЛВС, то дешифратор на эту линию даёт высокий потенциал и открывает все транзисторы, базы которых к ней подсоединены. Если промежуток был металлизирован, на соответствующем вертикальном столбце будет низкий потенциал, соответствующий нолю. В противном случае – единице.
16.Однократно (электрически) программируемые ПЗУ.
Эти ПЗУ программируются не изготовителями, а пользователями, они допускают однократное программирование. Их называют ПЗУ PROM (programmable ROM). В этих ЗУ состояние перемычек можно задать после изготовления БИС ПЗУ, либо создав, либо разрушив соединения перемычки. Наибольшее распространение получили БИС ПЗУ, где перемычки выполнены в виде плавких вставок из нихрома, которые можно избирательно прожечь с помощью специального оборудования – программатора, которое даёт ток, достаточный для прожига величины. Структура ППЗУ, аналогично ПЗУ, на диодах (магнитного типа), программируется с помощью маски, с той лишь разницей, что в промежутках стоят плавкие перемычки и предусмотрены средства для их пережигания. Устройство может находиться в одном из двух режимов: чтение и программирование (запись). Режим определяется значением питающего напряжения: в режиме чтения равно . В режиме программирования повышается или .
17.Репрограммируемые ПЗУ.
ПЗУ данного типа можно программировать, стирать программу и программировать заново. ПЗУ типа EPROM. Программирование таких ЗУ сводится сначала к установке всех перемычек в одно состояние, что равносильно стиранию ранее записанной информации, и последовательной поочерёдной установке нужных перемычек в противоположное состояние. В таких ПЗУ чаще всего используют специальные МОП–транзисторы (полевые) с изолированным (плавающим) затвором . Структура такого транзистора, нормально закрытого, работает в режиме обогащения с каналом р–типа, окружённым диэлектриком показана на следующем рисунке:
Рис.23 Структура МОП транзистора
Отметим, что затвор вывода не имеет, но может быть заряжен отрицательно, притягивая при этом положительные носители дырки (+) в зону канала. При наличии положительных зарядов в зоне канала транзистор проводит электрический ток, если затвор отрицательного заряда не имеет, т.е. не наводит положительных зарядов в зоне канала, транзистор закрыт. Затвор может получить отрицательный заряд путём инжекции электронов из стока через диэлектрик. Для этого на исток И подаётся достаточно большой положительный потенциал относительно стока С. В результате возникает электрическое поле, наводящее в затворе большой положительный потенциал по отношению к стоп. Это поле вызывает электрический пробой перехода между стоком и диэлектриком, в результате которого возникает поток электронов из стока в диэлектрик, который способен пройти толщу диэлектрика и достичь затвора.
Накопленный затвором отрицательный заряд будет сохраняться практически бесконечно, если его не удалить специально. Заряд затвора удаляется (стирается информация) облучением кристалла такого ПЗУ ультрафиолетовым светом с энергией, достаточной для перевода электронов диэлектрика в зону проводимости. При этом электроны, благодаря силам взаимного отталкивания, утекают из затвора.
Структура такого ПЗУ может быть аналогична структуре ПЗУ на МОП–транзисторе, программируемым с помощью маски. В этом случае в роли перемычек будут выступать транзисторы с изолированным затвором. Для программирования такого ПЗУ нужно сначала разорвать все перемычки, что соответствует записи логической единицы во все разряды, что и делает ультрафиолет достаточной интенсивности и продолжительности. А для тех разрядов, где должен быть логический ноль, необходимо эти перемычки замкнуть, зарядить затворы соответствующих транзисторов отрицательно.
По отечественному стандарту БИС ЗУ маркируется следующим образом: ОЗУ – буквами РУ; однократно программируемые ЗУ – РЕ, масочно–программируемые , многократно программируемые – ПЗУ – РФ.
Основы микропроцессорной техники.
Получить информацию о каком–либо типе микропроцессора означает выяснить следующее:
1. архитектуру микропроцессора,
2. систему его команд,
3. простейшие вычислительные системы, использующие данный микропроцессор,
4. сигналы управления,
5. назначение выводов.
Архитектура микропроцессора – это понятие, относящееся к организации регистров ЦПУ числа линий шин адресов управления данных, т.е. архитектура рассматривает аспекты, интересные программисту.
Система команд – список операций, которые может выполнять данный микропроцессор. Она включает в себя команды передачи данных, арифметические и логические операции, команды тестирования данных и ветвлений, операции ввода/вывода. При этом команды могут использовать различные способы адресации.
Простейшая вычислительная система – представляет собой схему, показывающую, как должны быть соединены различные устройства с микропроцессором. Такая схема может содержать микропроцессор, Генератор Тактовых Импульсов ГТИ, ОЗУ, ПЗУ, порты ввода/вывода информации, дешифратор адресов и источник питания. Иногда выполнение функции происходит отдельными микросхемами. Современный микропроцессор содержит названные элементы в одном корпусе (процессоре).
Сигналы управления микропроцессора являются выходными, они управляют другими схемами системы: ОЗУ, ПЗУ, УПВВ. Изучение назначения выводов каждой интегральной схемы микропроцессорного комплекта даёт дополнительную информацию о специальных входах и выходах микропроцессора. Это выводы питания, генератор тактовых импульсов ввода/вывода последовательных данных, входов прерываний и управления шинами микропроцессорной системы.
21.Состав команд микропроцессора – группа команд, которая может выполнять данные микропроцессору команды или системы команд.
Состав команд может содержать от 8 до нескольких сотен. Есть много способов классификации одного состава команд, но чаще всего их разделяют на следующие:
а) арифметические команды
б) логические команды
в) команды передачи данных
г) команды ветвления
д) команды вызова подпрограмм
е) возврата из подпрограмм
ж) прочие команды
Типовой микропроцессор обладает следующим составом арифметических команд: сложение, вычитание, инкрементирование, сравнение. Некоторые микропроцессоры могут обладать и другими арифметическими командами, например: сложение с переносом, вычитание с заёмом, умножение, деление.
Типичный набор логических команд: конъюнкция, дизъюнкция, исключающая ИЛИ, отрицание, сдвиг вправо.
Команды передачи данных: загрузка, размещение, перемещение, ввод/вывод.
Команды ветвления: безусловный переход (go to), переход "если 0", переход "если не 0", переход "если равно", переход "если не равно", переход "если положительно", переход "если отрицательно".
Микропроцессор наделяется также командой вызова подпрограммы. В конце выполнения подпрограммы микропроцессор должен иметь возможность возврата в точку отправления из основной программы. Эта операция выполняется командой возврата.
К прочим командам можно отнести: НЕТ операции, поместить в стек, выйти из стека, ожидание, останов.
При работе с микропроцессорными системами приходится сталкиваться с различными способами выражения одних и тех же команд. Одним из способов выражения команд может быть представление в виде таблицы
Операция
Мнемоника
Код операции КОП
Символика
Сложить
ADD_A
8ВН
Мнемоника всегда записывается заглавными латинскими буквами, так как регистр команд и схема декодирования микропроцессора понимает только язык нолей и единиц (двоичный код), записанный в третьей колонке (КОП) является 16–тиричным представлением семиразрядного двоичного кода.
В колонке символики показывается, что содержимое памяти (М) складывается с содержимым аккумулятора (накапливающий регистр) в микропроцессоре. Стрелка показывает, что результат помещается в аккумулятор. Если содержимое аккумулятора, например, 00011110 (30), а содержимое ячейки памяти 00001111 (15), то после сложения в аккумуляторе будет 00101101 (45).
После выполнения операции содержимое ячейки памяти не изменилось, в то время, как содержимое аккумулятора изменилось.
22.Структура элементарного микропроцессора.
Основным устройством всех информационных систем является центральный процессор, роль которого выполняет чаще всего микропроцессор. Микропроцессор содержит элементы размещения данных, называемые регистрами и операционное устройство АЛУ. В него входит схема декодирования команд (дешифратор), устройство управления и синхронизации, а также необходимые соединения с устройствами ввода/вывода (они сделаны в виде магистральной шины).
Основные функции микропроцессора, как основы центрального процессора, следующие:
1. извлечение, декодирование и выполнение команд в указанном порядке
2. передача данных из памяти и в память, из устройства ввода/вывода и в него
3. ответы на внешние прерывания
4. установка общей синхронизации (установка всех временных соотношений) сигналов управления за всей системой
Рис.24 Структура элементарного микропроцессора
Кроме указанных на рисунке регистров, современные микропроцессоры содержат много дополнительных специальных регистров.
АЛУ выполняет следующие операции: сложение, сдвиг–перестановка, сравнение, инкрементирование, декрементирование, отрицание, конъюнкция, дизъюнкция, исключающее ИЛИ, дополнение, сброс, инициализация (установка исходного состояния).
Рис.25 Функционирование АЛУ
АЛУ может принимать данные или с внутренней шины данных микропроцессора посредством РВХД, или с накопительного регистра (аккумулятора), куда могут попасть с шины данных, или с сумматора, как результат выполнения предыдущей команды.
Когда АЛУ складывает два слова, одно из них находится в аккумуляторе, после сложения результат направляется в аккумулятор для временного хранения.
Одним из важнейших устройств АЛУ является регистр состояний (флажковый индикатор). Этот регистр состоит из группы триггеров, которые устанавливаются или сбрасываются исходя из результатов последней операции, выполняемой АЛУ. Эти триггеры содержат указатели ноля, отрицание результата переноса и др. они используются для принятия решений, когда вводятся команды ветвления программы.
Устройство управления и синхронизации является в микропроцессоре наиболее сложным. Оно управляет протеканием всех процессов как внутри микропроцессора, так и во всей микропроцессорной системе. Каждая команда программы делится на два этапа: извлечение и выполнение.
Каждый из них может быть разделён на элементарные микропрограммы. Микропрограммы каждой команды находятся в секции декодирования микропроцессора и выполняются в блоке выполнения и синхронизации данных.
16–тиразрядный регистр микропроцессора называется счётчиком команд, который служит для хранения адреса следующей команды, которая извлекается из памяти. Счётчик команд может адресовать 64Кслов памяти ( ). Он считает прямым счётом, но нормальная последовательность команд может изменяться специальными командами ветвления, прерывания, вызова подпрограммы и возврата из них. Последовательность извлечения, декодирования, выполнения команд является основой функционирования микропроцессорной системы. Команда извлечение из памяти программы определяет код операции (КОП) команды и помещается в регистр команд микропроцессора устройством его управления. Код операции расшифровывается дешифратором команд микропроцессора, который указывает микропроцессору процедуру управления и синхронизации, которой и должна следовать программа для выполнения заданной команды.
24.Функционирование микропроцессорной системы
Допустим, требуется выполнить операцию сложения трёх чисел в десятичном формате: 10+5+18. Микропрограммы выполнения этой операции могут иметь вид:
Команда 1: загрузить LOAD 10
Команда 2: сложить ADD A 5
Команда 3: сложить ADD A 18
Команда 4: сохранить STORE 2000H (поместить в ячейку).
Загруженная в память ОЗУ эта микропрограмма будет иметь следующий вид:
Адрес (Н – код)
Содержимое (Н – код)
0000
86
Команда 1
0001
0А
0002
8В
ADD_A
0003
05
0004
8В
ADD_A
0005
12
0006
В7
STORE
0007
20
0008
00
0009
………………
2000
2001
Первая команда микропрограммы начинается с адреса 0000Н LOAD 0АН. Команда использует 2 байта памяти, из которой первый содержит оперативную часть. Первый байт – код команды LOAD: 86Н, а второй операнд 0АН.
Код оперативной части команды 2 (ADD A) имеет вид 8ВН, а операнд 05Н, помещённого в ячейку в ячейку 0003Н.
Код оперативной части команды 3 ADD A : 8ВН, код операнда. Последняя команда STORE занимает 3 ячейки памяти, из которых первая отводится под код операции В7Н (0006Н), а две других ячейки указывают на ячейку памяти данных 2000Н. первая половина (20) размещена в ячейке 0007Н, а вторая (00) размещена в ячейке 0008Н.
25.Рассмотрим подробную процедуру выполнения микропроцессором извлечения, декодирования и выполнения команды LOAD. Команда такого типа выполняется в микропроцессоре за доли микросекунд.
Рис.26 Инициализация
После инициализации команды микропроцессор устанавливает счётчик в ноль, через адресный регистр на адресную шину и в память.
3. Для активизации памяти программа микропроцессора выдаёт сигнал считывания, т.е. логическую единицу на линию .
4. В то время, как дешифратор адресов активизирует выбор кристалла нолём.
5. Затем счётчик команд инкрементируется до значения 0001н.
6. Ячейка программной памяти 0000н становится доступной, и её содержимое считывается на шину данных.
7. Код операции load передаётся в регистр команд микропроцессора. Этим завешается первый этап: извлечение кода операции команды load.
8. Код операции 86н, содержащийся в регистре команд микропроцессора передаётся в дешифратор команд интерпретируется им (расшифровывается). В данном случае микропроцессор определяет, что речь идёт о непосредственной загрузке в аккумулятор, т.е. адрес загружаемого содержимого в память (ОЗУ) следует непосредственно за адресом кода операции.
9, 10. Содержимое счётчика команд передаётся в адресный регистр и на адресную шину, и в память микропроцессора.
11. Микропроцессор выдаёт уровень логической единицы на вход , что означает считывание.
12. Уровень логического ноля дешифратора адреса поступает на вход памяти, что активизирует её.
13. Счётчик команд инкрементируется до состояния 0002н.
14. Ячейка памяти 0001н становится доступной и её содержимое 0ан ( ) поступает на шину данных, а затем в аккумулятор.
Этим заканчивается третий этап.
Полный цикл выполнения команды ввода завершён. В аккумуляторе находится 0АН ( ).
26.Микропроцессор
Микропроцессор – это программно управляемое устройство, предназначенное для обработки цифровой информации и управления процессом этой обработки, выполненное в виде одной интегральной схемы с высокой степенью интеграции электронных элементов.
Кристалл микропроцессора помещается в корпус с большим количеством выводов (от 40 до сотен). Число этих элементов от нескольких тысяч до десятков и сотен миллионов. Например, в 8–миразрядный микропроцессор Intel 8080 (КМ580 ВР80) имел 6000 транзисторов, 40 выводов в корпусе типа DIP.
Рис.27 Микропроцессор (внешний вид)
Один из выводов GND (ground). Питание у него было , . 16 выводов образуют канал адреса, подключаются к адресной шине. 8 выводов это входы–выходы, образуют канал данных и подключаются к шине данных. Они используют схемы с 3–мя состояниями (включено, выключено, отключено).
SYNG – выход. Синхронизация работы внешних устройств.
DBIN – выход. Выход стробов входных данных, т.е. осуществляет приём информации в микропроцессор.
WAIT – выход. Ожидание.
– выход. Строб записи.
HOLD – вход. Запрос "захвата" внешним устройством (канала прямого доступа).
HLDA – выход. Подтверждение "захвата".
INT – вход. Требование пребывания внешним устройством.
INTE – выход. Разрешение прерывания.
READY– вход. Готовность ввода данных.
RESET – вход. Сброс.
Входы и – выходы тактовых импульсов тактового внешнего генератора. Импульсы сдвинуты по фазе.
Рис.28 Тактовые импульсы внешнего генератора
Выходы – двунаправленные, т.е. могут быть как входами, так и выходами данных. Выходы соединяются с 16–тью линиями адресной шины, обеспечивая адресацию любой из ячеек памяти или внешнего устройства. 6 выходов: SYNG, DBIN, WAIT, , HLDA и INTE – являются сигналами управления и синхронизации других элементов микропроцессорной системы.
Выход SYNG формирует сигнал синхронизации в начале каждого машинного цикла.
Выход DBIN – можно назвать "приём данных". Его наличие на выходе показывает внешнему устройству на готовность микропроцессора к приёму данных.
Выход WAIT – ожидание, указывает внешним устройствам, что микропроцессор находится в состоянии ожидания.
Выход указывает, что микропроцессор установил на шину данные, которые могут быть записаны в устройство.
Выход HLDA – на этом выходе сигнал появляется в ответ на сигнал HOLD (запрос захвата) и указывает, что АШ и ШД находятся в состоянии высокого сопротивления, т.е. отключены от микропроцессора.
Выход INTE – разрешение прерывания, его сигнал указывает на состояние внутреннего триггера разрешения прерывания. Его состояние в свою очередь устанавливается программно. С помощью специальных команд "разрешение прерывания" и "запрещение прерывания". При уровне 0 (ноль) на выходе INTE приём запросов на прерывание микропроцессором невозможен.
Четыре входа: READY, HOLD, INT, RESET – являются входами управления, воспринимающие поступающие из других устройств микропроцессорной системы информацию.
Вход READY – сигнал "готов", информирует микропроцессор о готовности внешнего устройства к обмену информацией с микропроцессором. При уровне 0 (ноль) на этом входе микропроцессор будет находиться в состоянии ожидания.
Вход HOLD – принимает сигнал на перевод микропроцессора в состояние "захват", при котором АШ и ШД переводятся в состояние высокого сопротивления. Сигнал используется для организации обмена информацией с внешним устройством по каналу прямого доступа в память.
Вход INT – запрос прерывания, сигнал на него поступает от внешнего устройства на прерывание основной программы выполняемой микропроцессором и переход на выполнение подпрограммы обслуживания прерывания. Сигнал INT не воспринимается микропроцессором при работе его в режимах: "захват", "ожидание" или при нулевом состоянии внутреннего триггера "разрешения прерывания микропроцессора", т.е. когда прерывания запрещены.
Вход RESET – сброс, сюда поступает сигнал начальной установки микропроцессора, по которому обнуляются: счётчик команд и внутренние триггеры, в том числе формируются сигналы разрешения прерывания INTЕ и подтверждение захвата HLDA.
Структура БИС микропроцессора состоит из следующих функциональных блоков:
Одни компоненты структуры (стек, счётчик команд, регистр команд) служат для обработки команд, другие (АЛУ, регистр состояния, регистры общего назначения) служат для обработки данных. Остальные компоненты (дешифратор команд, устройство управления и синхронизации) управляют работой других компонентов. Взаимодействие компонентов осуществляется по внутренним каналам передачи данных микропроцессора.
Связь микропроцессора с другими блоками микропроцессорной системы: ЗУ, устройствами ввода/вывода, происходит по АШ, ШД и шине управления. Информация к микропроцессору от него передаётся по шинам. У данного микропроцессора АШ – 16 линий, ШД – 8 линий и ШУ состоит из 5 линий ведущих к блоку управления и 8 выходящих из него (итого 13).
Схема содержит внутренние регистры: аккумулятор, регистр состояния (индикатор), регистр временного хранения данных, и пар регистров ВиС, ДиЕ, HиL, а также указатель стека SP и счётчик команд РС (program counter).
В состав схемы входят также регистр команд, дешифратор команд, устройство управления и синхронизации, АЛУ и блок десятичной коррекции. Все 8 линий ШД, как и 16тиразрядные адресные выходы снабжены буферами. Микропроцессор содержит также несколько внутренних линий управления, а также питание – это одиночные линии. Используемые программистом (т.е. доступные) регистры можно выделить в отдельную группу.
Регистр состояния
Аккумулятор
B (8)
C (8)
C (8)
E (8)
H (8)
L (8)
SP (16)
PC (16)
Основным является регистр А. Регистры ВиС, LиЕ, HиL являются универсальными. Регистры SP и РС – специальные регистры.
Пара регистров HиL может использоваться в качестве одного адреса регистра. В документации на микропроцессорные комплекты содержатся также временные диаграммы, показывающие соотношение между входами тактовых импульсов и внешними сигналами (импульсы синхронизации, записи, ввода/вывода данных и т. д.), а также внутренними операциями. Документы содержат также указания по использованию микропроцессора в случаеминимальнойвычислительной системы. Такая система должна содержать микропроцессор, генератор тактовых импульсов, устройство управления системы, ПЗУ, ОЗУ и интерфейс портов ввода/вывода информации. В документы входит и подробная информация о системе команд.
Часто таблицы, содержащие состав команд, задаются для двух типов микропроцессора, например, Intel 8086/8088, т.к., имея определённые различия в схематехнике, эти процессоры имеют практически одинаковый состав команд. Часто состав команд имеет вид:
Команда
Код (Н – код)
Числобайт
Число тактов
Машинныйцикл
8080
8085
ACI DATA
СЕ
2
7
7
FR
Команда в первой колонке – сложения с непосредственным переносом.
Во второй колонке – код операции (в 16тиричном виде).
В третьей – необходимый объём памяти для команды. 2 байта. Первый будет содержать код операции СЕ, а второй – складываемое число.
В четвёртой и пятой колонке приводятся данные о продолжительности выполнения команд в числе тактов для разных типов микропроцессоров.
В шестой – основные внешние операции, выполняемые микропроцессором, где F – извлечение команды (4 периода тактовых импульсов), а R – считывание данных из памяти.
Кроме того, указания пользователю содержат дополнительные детали исполнения каждой команды.
Результатом активизации входа RESET (сброс) микропроцессора является остановка работы микропроцессора по текущей программе и переход к подпрограмме сброса, в результате выполнения которой микропроцессор сбрасывает счётчик команд до заранее предопределённого адреса, например, 0000Н.
Другие внутренние регистры микропроцессора также сбрасываются, или их содержимое, в течение операции сброса изменяется. По окончании команды RESET микропроцессор начинает выполнение команд программы с адреса 0000Н. Этот адрес соответствует началу подпрограммы инициализации системы, содержащейся обычно в ПЗУ.
Вход RESET микропроцессора является асинхронным. Появление сигнала сброса на нём может остановить даже на половину выполненную команду. Большинство других входов микропроцессора синхронные, т.е. их сигналы находятся в определенных фазовых соотношениях с сигналами генератора тактовых импульсов.
27.Обработка микропроцессором требования прерывания.
Механизм прерывания обеспечивает эффективное взаимодействие микропроцессора с устройствами ввода/вывода информации. Существуют программные, аппаратные и логические прерывания.
Идеология обработки прерываний схематически закладывается в устройство микропроцессора. Когда микропроцессор приступает к выполнению процедуры прерывания, он прежде всего выполняет 2 цикла шины – циклы подтверждения прерываний. Во время 2–го цикла микропроцессор по ШД считывает номер прерывания, а по нему в таблице векторов прерываний определяет адрес начала обработки поступившего прерывания.
Вход 14 данного типа микропроцессора называют INT –вход требования прерывания реагирует на сигнал высокого уровня от внешнего устройства. Предположим, что некоторое внешнее по отношению к микропроцессору устройство интерфейса ввода содержит 8–миразрядное слово данных, готовых для передачи в микропроцессор.
Микропроцессор в это время выполняет текущую программу. Рассмотрим процедуру обработки микропроцессором требования прерывания поэтапно:
Микропроцессор обращается в предопределённый прерыванием адрес памяти (20D0Н) и выполняет подпрограмму обслуживания прерывания
По адресу 20DЕН находится команда возврата RETURN, по которой микропроцессор определяет конец подпрограммы обслуживания прерывания.
4. Содержимое основных регистров микропроцессора и счётчика команд, размещённые в стеке, возвращаются в микропроцессор.
5. Счётчик команд отсылает микропроцессор в память на адрес 2007Н, т.е. в основную программу для продолжения её выполнения. Прерывания являются важнейшим механизмом, позволяющим внешним устройствам вмешиваться в работу микропроцессора и выполнять требуемые им операции почти сразу.
Современные микропроцессоры имеют несколько уровней прерываний.
В некотором смысле прерывание подобно переходу на подпрограмму, но этот переход инициализируется не командой в основной программе, выполняемой микропроцессором, а сигналом от внешнего устройства. Также как и подпрограмма основной программы подпрограмма обслуживания прерывания размещается в памяти, начиная с ячейки, в которой должно передаваться управление.
Микропроцессор обладает возможностью блокировать прерывания на какие–то отрезки времени, когда их обработка по тем или иным причинам неудобна. При блокировке поступающие на прерывание запросы игнорируются.
Когда в микропроцессорную систему поступают запросы на прерывание от нескольких устройств, возникает проблема идентификации устройства, присловущего запроса, с тем, чтобы можно было выполнить действия по обслуживанию именно этого устройства. Существует два основных метода решения этой проблемы. Согласно одному из них, должна существовать главная программа обработки прерывания, которая при поступлении запроса проверяет состояние каждого устройства, и находит устройство, требующее своего обслуживания. Такую схему обслуживания называют системой прерываний с программным запросом.
При другом методе информация идентифицируемая устройство, приславшее запрос, формируется аппаратной частью. Такую систему прерывания называют векторной приоритетной системой управления.
28.Прерывание с программным опросом.
В этой системе прерываний все запросы на прерывание поступают по одной управляющей линии. Эта линия является выходом схемы логического ИЛИ, на входы которых запросы поступают от индивидуальных устройств. Каждому устройству выделяется порт состояния, в котором отводится 1 бит, хранящий запрос на прерывание. Когда прерывание не заблокировано и от любого устройства по общей линии в микропроцессор поступает запрос на обслуживание, микропроцессор завершает выполнение текущей команды и передаёт управление в ячейку памяти с фиксированным адресом. С этой ячейки начинается главная программа обработки прерываний, которая последовательно вводит содержимое портов состояний и передаёт биты запросов на прерывание. Обнаружив устройство, запросившее обслуживание, главная программа обработки прерываний передаёт управление подпрограмме, предназначенной для обслуживания именно этого устройства.
Когда запросы поступают одновременно от двух или более устройств, первым обслуживается то устройство, которое попадается ранее в порядке опроса. После обслуживания одного запроса будет обслужен следующий из отложенных и т.д. таким образом, приоритетность обслуживания устройств закладывается в порядок опроса.
Главный недостаток системы прерываний с программным опросом такой же, как и у любой программы системы. Он связан со временем, затрачиваемым программой на опрос определённых устройств. Поэтому для систем, чувствительных к такой задержке, предпочтительнее векторная система прерываний. Она непосредственно указывает устройство, выдавшее запрос.
29.Векторная система прерываний.
В векторной системе прерываний устройство, которое вызвало прерывание, идентифицируется с помощью внешних, по отношению к микропроцессору схем. Эти схемы должны разрешать конфликты, возникающие при одновременном поступлении нескольких запросов и представлять обслуживание только одному из устройств.
Существуют различные способы идентификации прерывающих устройств. Например, микропроцессор может иметь не одну, а много линий запросов на прерывания, каждая из которых предназначена отдельному устройству. Сигнал на каждой линии вызывает передачу управления в свою ячейку памяти. Если эта передача внутри микропроцессора не заблокирована сигналом с более высоким приоритетом.
Ячейки памяти, в которых передаётся управление, являются начальными ячейками программ, обслуживающих различные устройства. Однако, в микропроцессоре количество выводов существенно ограниченно, поэтому данный способ используется редко и применяют его в больших ЭВМ.
Векторная система прерываний
с идентификацией устройств при помощи адресов.
Способ применим в любом типе микропроцессора. Он заключается в том, чтобы послать в микропроцессор начальный адрес, обслуживающий прерывание подпрограммы по АШ, которая формируется внешней схемой, выбирающей устройство для обслуживания в соответствие с некоторой приоритетной схемой.
Для этого в микропроцессоре и предусмотрены две управляющие линии: INT (запрос на прерывание) и INTE (подтверждение прерывания).
Линия INT является входом микропроцессора, она служит для передачи в микропроцессор внешних запросов на прерывание. Логической единице соответствует наличие запроса. Однако, микропроцессор реагирует на запросы прерываний, если внутренний его триггер разрешения прерывания установлен в 1.
Линия INTE – выход микропроцессора, служит для стробирования подаваемого извне на АШ адреса перехода на подпрограмму прерывания. Получив запрос на прерывание, микропроцессор откликается сигналом подтверждения прерывания INTE, который в каждом внешнем устройстве поступает на схему логического И. вместе с сигналом запроса прерывания устройством (INT) выход схемы логического И используется для обслуживания группы формирователей тристабальных схем, которые подают на АШ соответствующий данному устройству адрес. Таким образом этот адрес поступает в микропроцессор и задаёт начальную ячейку подпрограммы обслуживания прерывания.
Рис.30 Векторная система прерываний
Например, на IBM PC ISA (industry standard architecture) имеется 6 входов прерываний, которые обрабатываются программируемым контроллером, которые реализуют векторную систему прерываний IBM современных персональных компьютеров. Контроллер прерываний (PIC) позволяет поддерживать 8 уровней прерываний от 8–ми устройств.
Основные функции прерываний от внешних устройств:
1. Функция запросов прерываний от внешних устройств.
2. Программное маскирование внешних устройств.
3. Присваивание фиксированных или циклически изменяемых приоритетов входам контроллера, на которые поступают запросы.
4. Инициализация вызова процедуры обслуживания поступившего аппаратного прерывания. При этом количество обслуживающих внешних устройств можно увеличить путём каскадирования нескольких контроллеров прерывания.
30.Структура приоритетов.
Для обработки одновременно поступающих запросов их упорядочивают по приоритетам. Структура приоритетов может быть программной и схемной. Рассмотрим структуру приоритетов по так называемой дейзи–цепочке.
Рис.31 Структура приоритетов
Наивысшим приоритетом обладает крайнее слева устройство, подключаемое ко входу 0 (ноль). Если это устройство выдаёт запрос на прерывание по линии входа 0 (ноль), т.е. подаёт логическую единицу, то в микропроцессор через логический элемент DD7 в микропроцессоре наступит сигнал о наличии запроса на прерывание и осуществится блокировка устройства 1 и всех устройств с менее высоким приоритетом. При наступлении запроса на прерывание от устройства 1 сигнал на линии входа 1 заблокирует устройство 2 и все устройства с более низким приоритетом, кроме устройства 0 (ноль).
Системы прерываний могут быть как с программным опросом, так и с векторным с использованием приоритетов, с сохранением в стеке векторов состояний с индивидуально сбалансированными триггерами предыдущих устройств и с подпрограммами обработки прерываний.
31.Синхронизация микропроцессорной системы.
Выполнение каждой команды микропроцессором производится в строго определённой последовательности, определяемой кодом машинной команды и синхронизируется во времени не перекрывающихся сигналами Ф1 и Ф2 генератора тактовых импульсов. При анализе процессов в микропроцессорных системах используются следующие понятия:
Машинный такт Т
Машинный цикл М
Время выполнения команд.
Машинным тактом Т называется период поступления сигналов синхронизации Ф1 или Ф2. длительность машинного такта может быть от нескольких микросекунд до наносекунд.
Машинный цикл М – время, необходимое для извлечения одного байта информации из памяти или выполнения команды, определяемой одним машинным словом. Машинный цикл может состоять из 3 – 5 машинных тактов.
Время выполнения команды (цикл команды) – время получения, декодирования и выполнения команды. В зависимости от вида команды время выполнения команды может состоять из 1 – 5 машинных циклов.
Генератор тактовых импульсов может быть как внешним, так и внутренним по отношению к микропроцессору. При внутреннем – кристалл кварца, определяющий величину и стабильность вырабатываемой частоты, подключается непосредственно к микропроцессору.
Рис.32
Таким образом выход SYNC микропроцессора имеет сигнал, аналогичный сигналу фазы Ф2 тактовых импульсов и служит для синхронизации событий во всей вычислительной системе.
Сигналы ГТИ разделяются на периоды длительностью Т, определённое число которых (3 – 5) и формирует машинный цикл. Период Т всегда имеет постоянную длительность. Длительность же машинного цикла может изменяться.
Машинные циклы определяют функционирование микропроцессора. Например, для рассматриваемого нами типа микропроцессора (Intel 8080) существует 10 типов машинных циклов:
1. Извлечение кода операции.
2. Чтение данных из памяти.
3. Запись данных в память.
4. Извлечение из стека.
5. Запись в стек.
6. ввод данных из внешнего устройства.
7. Запись данных во внешнее устройство.
8. Цикл обслуживания прерывания.
9. Останов.
10. Обслуживание прерывания при работе микропроцессора в режиме останова.
В то время, как слово данных всегда состоит из 1 байта, команда может состоять из 1, 2 и 3 байт. Первый байт любой команды (код операции) поступает из памяти по ШД в регистр команд, из которого подаётся на вход дешифратора команд, который определяет смысл команды. В частности, дешифратор может определить, является ли команда однобайтовой, или она состоит из большего числа байтов. В последнем случае дополнительные байты так же передаются по ШД из памяти и принимаются или одним из регистров общего назначения (ВиС, ДиЕ), или регистром HиL может выполнять роль регистра адреса данных.
Регистр адреса данных (HиL) содержит адрес операнда для команд, обращающихся к памяти, адрес порта для команд ввода/вывода или адрес следующей команды для команд перехода.
Регистры общего назначения содержат операнды для всех команд, работающих с данными. Для указания этих регистров используются 4–хразрядные коды (двоичные). Например, код 0000Н указывает на регистр–аккумулятор. Регистр–аккумулятор участвует во всех логических и арифметических операциях. Он содержит один из операндов перед выполнением операции и получает результат после её выполнения.
Например, команда STORE (разместить данные) разделена на 4 машинных цикла.
Рис.33
М1 – цикл извлечения кода операции
М2 – считывание из программной памяти (адрес, откуда данные)
М3 – считывание из программной памяти (адрес, куда размещать)
М4 – запись данных по адресу
Первичным циклом при выполнении любой команды всегда является М1 – извлечение кода операции. На первом такте Т1 каждого машинного цикла М микропроцессор указывает тип выполняемого цикла с помощью 8–миразрядного слова состояния, выдаваемого на шину данных.
Циклы М2 и М3 (для данной команды) являются циклами считывания из программной памяти.
Цикл М4 – цикл записи в память.
Сочетание этих 4–х действий: извлечение – считывание – считывание – запись и составляет цикл команды. Видно, что машинные циклы выполняются неодинаковое время, таким образом полный цикл команды занимает 13 периодов Т.
Рассмотрим пример выполнения во времени команды непосредственного сложения.
Её цикл будет иметь вид:
Рис.34 Выполнение команды напосредственного сложения
М1 – извлечение кода операции
М2 – считывание из программной памяти числа (операнда)
М3 – сложение
Команда сложить содержимое аккумулятора с содержимым, следующим непосредственно за кодом операции байта программной памяти сумму сохранить в аккумуляторе.
Первым машинным циклом М1 является считывание (извлечение кода операнда), микропроцессор декодирует программу, определяет, что это сложение и определяет также, что для её завершения необходимо 2 дополнительных цикла.
Во втором цикле М2 считывается следующий байт программной памяти, которым является операнд, и в течение цикла М3 выполняется операция сложения в АЛУ аккумулятора. Так как результат (сумма) остаётся в аккумуляторе, то машинный цикл М4 (запись в память) данной команде не нужен и весь цикл команды занимает 9 периодов Т.
32.Программирование микропроцессоров.
Программирование – описание последовательности действий, которые должна выполнять микропроцессорная система, для решения поставленной задачи. Важно подчеркнуть, что микропроцессор выполняет только то, что ему приписывает программист и не более того. Программист должен сообщать микропроцессору абсолютно всё, что нужно делать и точно, шаг за шагом описать, как это выполнять. Для программирования работы системы на основе микропроцессора требуется описание процесса решения задачи с учётом возможностей данного микропроцессора и связанных с ним конкретных устройств. Описание процесса решения задачи таким образом, чтобы её могла решить микропроцессорная система, являющаяся основной частью того, что называется программированием.
Результат такого описания решения задачи именуют алгоритмами. Если алгоритм составлен, его нужно закодировать, т.е. представить в виде последовательности машинных команд, осуществляющих решение задачи.
Поскольку каждая модель микропроцессора имеет свой специфический набор команд, программа должна быть написана и использованием только этих команд. Составить программу, означает описать алгоритмы на языке данной микропроцессорной системы, т.е. посредством команд, которые способен выполнять данный микропроцессор, а каждый тип микропроцессора располагает своим набором команд.
Запись алгоритма посредством команд микропроцессором называется кодированием, а исполненные для этого команды – исходным кодом. Поскольку для функционирования микропроцессорной системы нужны двигательные команды, исходный код подлежит трансляции, т.е. переводу в так называемый объектный код, являющийся основным представлением исходного кода.
Машинный язык и ассемблер.
На своём рабочем уровне микропроцессор реагирует на список операций, называемый машинным языком.
Пример программирования на двоичном языке в машинном коде:
Представленную в такой форме программу понять очень трудно, однако её восприятие упрощается, если записать содержимое ячеек в 16–тиричном коде:
В ещё более удобной форме эта программа могла бы иметь следующий вид:
1. загрузить двоичное число 10110100 в аккумулятор.
2. инвертировать каждый двоичный разряд содержания аккумулятора.
3. поместить результат инверсии в ячейку памяти 2100Н и только на этом этапе становится ясно, что данная программа осуществила перевод двоичного 8–миразрядного числа в инверсную форму (обратный код). Возникает вопрос: каким образом перейти от языка, понятного человеку, к языку, понятному микропроцессору? Ответ состоит в использовании языка программирования, называемого ассемблером. Программирование на языке ассемблер до недавнего времени являлось наиболее распространённым. При работе с микропроцессором ассемблер использует слова и фразы в виде сокращённого написания или аббревиатуры английских слов, так называемые мнемонические обозначения, преобразуя их в машинные коды микропроцессора. Обычно фраза или заданная величина на языке ассемблер соответствует выражению длиной от 1 до 3–х байт машинного языка.
Суть и процедура ассемблирования.
Преобразования операторов языка ассемблера в машинные команды можно пояснить следующим образом:
Здесь вторая команда нашей программы инвертировать каждый второй разряд содержимого аккумулятора, представлена мнемоникой из трёх букв (СМА = 3 байта). Сначала каждая буква переводится в её двоичный эквивалент в ASCII коде, затем полученные 3 кода преобразуются в определённый порядок специальной программой ассемблера, которая выдаёт код операции содержимого аккумулятора на машинном языке, это код 00101111 или .
Таким образом, мнемоника трёх букв (3 байта) преобразована в 1 байт кода машинного языка. Эта программа, записанная программистом на бумаге, может иметь следующий вид, что и будет языком ассемблера:
Метка
Мнемоника
Операнд
Комментарий
MVT
A, D4H
Загрузить в аккумулятор данные, следующие непосредственно за кодом операции (В4Н)
CMA
Инвертировать содержимое аккумулятора
STA
2100Н
Разместить (STA) содержимое аккумулятора в ячейку памяти 2100Н
HLT
Остановить микропроцессор
MVI – move immediate
STA – stove address
HLT – halt
Обычным является деление программы на 4 поля: метка, мнемоника, операнд и комментарий. Поле метки используется не всегда. Поле мнемоники содержит точную мнемонику, установленную разработчиком микропроцессора. Она указывает программе ассемблер операцию для выполнения. Поле операнд содержит информацию о регистрах, данных и адресах, объединяющих данной операцией. Используя информацию только полей мнемоники и операнда, транслятор выдаёт код на машинном языке. поле комментариев ассемблером не учитывается. Оно ими просто перепечатывается. Время выполнения программой от количества и объёма комментариев не зависит.
Поле комментариев очень важно, так как позволяет понять события в программе, таким образом, задача ассемблирования состоит из 2–х этапов:
1. перевод мнемоники и операндов ассемблера на машинный язык
2. последовательное назначение ячеек памяти к каждому коду операции и каждому операнду.
В принципе, переход от ассемблера к машинному языку может быть выполнен вручную. Однако специальные программы трансляции, называемые ассемблерами, снимают с человека рутинную работу.
Программу, составленную из символичных команд ассемблер, называют исходной. А программу, переведённую на машинный язык – объектный. Таким образом, объектная программа является двоичным представлением исходной программы.
Язык программирования – набор команд и правил их применения для описания алгоритма решения задачи с целью составления программы работы микропроцессорной системы, выполняющей это решение. Разные ячейки программы имеют разную степень сходства с естественным языком человека. Языки программирования, имеющие высокую степень сходства с человеческим, называют языками высокого уровня. Они значительно проще для понимания человеком.
33.Архитектурные особенности современных микропроцессоров.
Типы команд микропроцессоров.
В ходе развития архитектур микропроцессоров, в состав системы команд вводились и, в силу требований приемлемости, закреплялись (переход в следующие поколения) в сложные команды, которые по требованию работ и систем соответствовали решениям заданий. Мерой этого соответствия был объём 2–го кода программы, так как минимизация длины программы была равнозначна минимизации времени исполнения.
Команды бывают разных типов: регистровые, регистр регистр; память, память память; регистр память и др. Это простые команды. Для реализации сложных команд, как правило, применяется микропрограммирование. Команды называются скалярными, если входные операнды и результат выполнения команды являются числами (скаляры) . Команды называются векторными, если входные операнды и, возможно, результаты являются векторами (массивами чисел), а для преобразования данных массива (вектора) использована одна векторная команда. Появление векторных команд в составе микропроцессора обусловлено стремлением ускорить обработку массивов данных, за счёт исключения затрат времени на выборку и дешифрацию затрат обработки – одинаковы для всех компонентов входных массивов.
Однако, использование векторных команд требует подготовки программ векторизованного кода команд, что эквивалентно разработке параллельных команд. При сохранении последовательных программ для ускорения обработки применяются суперскалярные процессоры, в которых, за счёт параллельной работы функциональных устройств процессора, в одном такте вырабатывается несколько скалярных результатов.
Структурный параллелизм микропроцессора.
Повышение производительности микропроцессоров достигается увеличением тактовой частоты, совершенствованием параллельной и конвейерной обработки данных. Уменьшением времени доступа современных микропроцессоров, как правило, содержат более 10–ти обрабатывающих устройств, каждое из которых представляет собой конвейер. Эффективная загрузка параллельно работающих процессов обеспечивает либо аппаратурой, либо компилятором (переводчиком, транслятором), либо совместно аппаратурой и компилятором. Стремление исполнительности присуще большинству программ, естественный параллелизм вычисления целочисленных адресных выражений и, собственно, обработки данных в формате с плавающей точкой привело к появлению разнесённых архитектур.
Рис.35
Микропроцессоры с разнесённой архитектурой состоят из 2–х связанных подпроцессоров, каждый из которых управляет собственным потоком команд. Это адресный процессор A – процессор и исполнитель процессор Е – процессор. Эти процессоры имеют собственные наборы регистров (А и Е) и т.д. (количество зависит от модели процессора) и соответственно и т.д., а также собственные наборы команд.
А – процессор выполняет все адресные вычисления и формирует обращение к памяти по чтению и записи. Это обычный целочисленный процессор.
Е – процессор реализует вычисления с плавающей точкой , извлекаемые из памяти данные, используются либо в А – процессоре, будучи помещённым в очередь типа . АА – очередь, либо в очередь, называемой АЕ. Для отсылки в Е – процессор, когда Е – процессору нужны данные из памяти, он берёт их из АЕ – очереди. Если очередь пуста, Е – процессор задерживается до поступления данных, чем и обеспечивается синхронизацией адресного и исполнительного процессоров. Если Е – процессор выработал данные, которые должны быть отправлены в очередь ЕА. При записи данных в память после вычисления адреса А – процессор отправляет адрес в очередь адресов , эта очередь адресов записи в памяти не дождалась, пока данные поступят в очередь . А – процессор группирует пары, выбирая первые элементы очередей ЕА и AW отправляет эти пары в память. Если одна из очередей или пусты, отсылка в память приостанавливается.
При чтении данных А – процессор отправляет адреса в память с указанием очередей АА и АЕ, которые должны будут записать данные из памяти. Разнесённая архитектура микропроцессора позволяет достичь при скалярной обработке производительность за счёт предварительной выборки из памяти и автоматической развёртки нескольких последовательных векторов цикла в А – процессоре. Проблемы расщепления программы для адресного и исполнительного процессоров решаются либо на уровне компилятора, либо специальным блоком процессора – расщепителя.
Структурные методы уменьшения времени доступа к памяти.
К сожалению, время доступа в основную память, как правило, в 10 и более раз больше, чем время преобразования данных в регистрах процессора. Поэтому приходится искать решение по уменьшению времени доступа, учитывая этот факт.
34.Иерархическая структура памяти.
Идеальная память должна обеспечить микропроцессор командами и данными так, чтобы не вызывать его простоев, время доступа в память, однако зависит от её объёма. Чем больше объём, тем и больше время доступа в память. Уменьшение времени доступа достигается введением многоуровневой иерархической памяти. Типовая иерархия имеет следующую структуру:
Регистровая память – со временем доступа 1 такт процессора объёмом от 64 до 256 и выше слов.
Кэш первого уровня – время доступа 1 – 2 такта процессора объёмом от 8кслов и выше.
Кэш второго уровня находится вне процессора, время от 3–х тактов, объём = от 6кслов.
Основная память до 4Гслов, время от 15 до 55 тактов.
Создание многоуровневой памяти, пересылающей блоки программы и данных между уровнями памяти за время, пока предшествующие блоки обрабатываются процессором позволяют существенно сократить простои. При этом эффективное уменьшение времени доступа: тем больше, чем больше время обработки данных в буферной памяти по сравнению с временем пересылки их между буферной (промежуточной) и основной памятью. Это достигается при локальности обрабатываемых данных, когда процессор многократно использует одни и те же данные для выработки некоторого результата, так как локально обрабатываемые данные не обязательно сконцентрированы в основной области памяти. Буферную память организовывает как ассоциативный, в котором данные содержатся в совокупности с их адресом (основной памятью), именно такая буферная память и получила название Кэш памяти. Кэш память позволяет согласовывать структуру данных, требуемых