Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Электронная схема это сочетание отдельных электронных компонентов, таких как резисторы, конденсаторы, индуктивности, диоды и транзисторы, соединённых между собой. Различные комбинации компонентов позволяют выполнять множество как простых, так и сложных операций, таких как усиление сигналов, обработка и передача информации и т. Д
Электронные схемы строятся на базе дискретных компонентов, а также интегральных схем, которые могут объединять множество различных компонентов на одном полупроводниковом кристалле.
Любая система на "жесткой логике" обязательно представляет собой специализированную систему, настроенную исключительно на одну задачу или (реже) на несколько близких, заранее известных задач. Это имеет свои бесспорные преимущества.
Во-первых, специализированная система (в отличие от универсальной) никогда не имеет аппаратурной избыточности, то есть каждый ее элемент обязательно работает в полную силу (конечно, если эта система грамотно спроектирована).
Во-вторых, именно специализированная система может обеспечить максимально высокое быстродействие, так как скорость выполнения алгоритмов обработки информации определяется в ней только быстродействием отдельных логических элементов и выбранной схемой путей прохождения информации. А именно логические элементы всегда обладают максимальным на данный момент быстродействием.
Но в то же время большим недостатком цифровой системы на "жесткой логике" является то, что для каждой новой задачи ее надо проектировать и изготавливать заново. Это процесс длительный, дорогостоящий, требующий высокой квалификации исполнителей. А если решаемая задача вдруг изменяется, то вся аппаратура должна быть полностью заменена. В нашем быстро меняющемся мире это довольно расточительно.
Микропроце́ссор процессор (устройство, отвечающее за выполнение арифметических, логических операций и операций управления, записанных в машинном коде), реализованный в виде одной микросхемы[1] или комплекта из нескольких специализированных микросхем[2] (в отличие от реализации процессора в виде электрической схемы на элементной базе общего назначения или в виде программной модели). Первые микропроцессоры появились в 1970-х годах и применялись в электронных калькуляторах, в них использовалась двоично-десятичная арифметика 4-битных слов. Вскоре их стали встраивать и в другие устройства, например терминалы, принтеры и различную автоматику. Доступные 8-битные микропроцессоры с 16-битной адресацией позволили в середине 1970-х годах создать первые бытовые микрокомпьютеры.
Наиболее широко применяется магистрально-модульный принцип по- строения микропроцессорных систем (МПС). Упрощенная структура такой МПС приведена ниже. Центральным устройством в системе является микро-
процессор (МП), выполняющий арифметические и логические операции над
данными, осуществляющий управление выборкой команд и данных из памяти и
организующий взаимодействие всех устройств, входящих в систему.
Работа МП происходит под воздействием тактовых сигналов, вырабатываемых
схемой синхронизации, часто выполняемой в виде отдельной микросхемы (ге-
нератора тактовых импульсов).
Программы работы МПС размещаются в модулях постоянных запоми-
нающих устройств (ПЗУ) и оперативных запоминающих устройств (ОЗУ).
Микропроцессорные устройства и МПС содержат различные средства ввода-
вывода информации. Шины адреса, данных и управления объединяют все уст-
ройства в единую систему. Периферийные устройства подсоединяются к ши-
нам через программируемые периферийные адаптеры, осуществляющие пере-
дачу информации в параллельном или последовательном кодах. Наличие про-
граммно-настраиваемых адаптеров делает весьма гибкой и функционально бо-
гатой систему ввода-вывода информации в МПС. В.П. Мокрецов
Микропроцессоры и МПС. Часть 1.
Архитектура микропроцессора К580ВМ80. Организация МП-систем
ГОУ ВПО УГТУ-УПИ 2007 стр. 4 из 143
Для разработки микропроцессорных устройств и МПС промышленность
выпускает семейства микропроцессорных БИС, позволяющих удобную реали-
зацию всех необходимых подсистем. В настоящее время выпускаются разнооб-
разные однокристальные микроконтроллеры разных классов, на базе которых
можно создавать микропроцессорные устройства, микроЭВМ, МПС (см.
рис.1.1).
Подготовка списка команд называется программированием, а подготов-
ленный список команд представляет собой программу, которая заносится в
ПЗУ или ОЗУ и предписывает микропроцессору определенные действия. МП
считывает из памяти команду и выполняет ее. Далее МП формирует адрес сле-
дующей команды в программе, считывает, выполняет и формирует адрес новой
команды. Так функционирует ЭВМ.
При классической структуре связей (рис. 1.5) все сигналы и коды между устройствами передаются по отдельным линиям связи. Каждое устройство, входящее в систему, передает свои сигналы и коды независимо от других устройств. При этом в системе получается очень много линий связи и разных протоколов обмена информацией.
При шинной структуре связей (рис. 1.6) все сигналы между устройствами передаются по одним и тем же линиям связи, но в разное время (это называется мультиплексированной передачей). Причем передача по всем линиям связи может осуществляться в обоих направлениях (так называемая двунаправленная передача). В результате количество линий связи существенно сокращается, а правила обмена (протоколы) упрощаются. Группа линий связи, по которым передаются сигналы или коды как раз и называется шиной (англ. bus).
Понятно, что при шинной структуре связей легко осуществляется пересылка всех информационных потоков в нужном направлении, например, их можно пропустить через один процессор, что очень важно для микропроцессорной системы. Однако при шинной структуре связей вся информация передается по линиям связи последовательно во времени, по очереди, что снижает быстродействие системы по сравнению с классической структурой связей.
При шинной структуре связей (рис. 1.6) все сигналы между устройствами передаются по одним и тем же линиям связи, но в разное время (это называется мультиплексированной передачей). Причем передача по всем линиям связи может осуществляться в обоих направлениях (так называемая двунаправленная передача). В результате количество линий связи существенно сокращается, а правила обмена (протоколы) упрощаются. Группа линий связи, по которым передаются сигналы или коды как раз и называется шиной (англ. bus).
Понятно, что при шинной структуре связей легко осуществляется пересылка всех информационных потоков в нужном направлении, например, их можно пропустить через один процессор, что очень важно для микропроцессорной системы. Однако при шинной структуре связей вся информация передается по линиям связи последовательно во времени, по очереди, что снижает быстродействие системы по сравнению с классической структурой связей.
Рис. 1.6. Шинная структура связей.
Большое достоинство шинной структуры связей состоит в том, что все устройства, подключенные к шине, должны принимать и передавать информацию по одним и тем же правилам (протоколам обмена информацией по шине ). Соответственно, все узлы, отвечающие за обмен с шиной в этих устройствах, должны быть единообразны, унифицированы.
Существенный недостаток шинной структуры связан с тем, что все устройства подключаются к каждой линии связи параллельно. Поэтому любая неисправность любого устройства может вывести из строя всю систему, если она портит линию связи. По этой же причине отладка системы с шинной структурой связей довольно сложна и обычно требует специального оборудования.
В системах с шинной структурой связей применяют все три существующие разновидности выходных каскадов цифровых микросхем:
Обмен по прерываниям используется тогда, когда необходима реакция микропроцессорной системы на какое-то внешнее событие, на приход внешнего сигнала. В случае компьютера внешним событием может быть, например, нажатие на клавишу клавиатуры или приход по локальной сети пакета данных. Компьютер должен реагировать на это, соответственно, выводом символа на экран или же чтением и обработкой принятого по сети пакета.
В общем случае организовать реакцию на внешнее событие можно тремя различными путями:
Проиллюстрировать эти три способа можно следующим простым примером. Допустим, вы готовите себе завтрак, поставив на плиту кипятиться молоко. Естественно, на закипание молока надо реагировать, причем срочно. Как это организовать? Первый путь постоянно следить за молоком, но тогда вы ничего другого не сможете делать. Правильнее будет регулярно поглядывать на молоко, делая одновременно что-то другое. Это программный режим с опросом флага. Второй путь установить на кастрюлю с молоком датчик, который подаст звуковой сигнал при закипании молока, и спокойно заниматься другими делами. Услышав сигнал, вы выключите молоко. Правда, возможно, вам придется сначала закончить то, что вы начали делать, так что ваша реакция будет медленнее, чем в первом случае. Наконец, третий путь состоит в том, чтобы соединить датчик на кастрюле с управлением плитой так, чтобы при закипании молока горелка была выключена без вашего участия (правда, аналогия с ПДП здесь не очень точная, так как в данном случае на момент выполнения действия вас не отвлекают от работы).
Первый случай с опросом флага реализуется в микропроцессорной системе постоянным чтением информации процессором из устройства ввода/вывода, связанного с тем внешним устройством, на поведение которого необходимо срочно реагировать.
Во втором случае в режиме прерывания процессор, получив запрос прерывания от внешнего устройства (часто называемый IRQ Interrupt ReQuest), заканчивает выполнение текущей команды и переходит к программе обработки прерывания. Закончив выполнение программы обработки прерывания, он возвращается к прерванной программе с той точки, где его прервали (рис. 1.12).
Здесь важно то, что вся работа, как и в случае программного режима, осуществляется самим процессором, внешнее событие просто временно отвлекает его. Реакция на внешнее событие по прерыванию в общем случае медленнее, чем при программном режиме. Как и в случае программного обмена, здесь все сигналы на магистрали выставляются процессором, то есть он полностью контролирует магистраль. Для обслуживания прерываний в систему иногда вводится специальный модуль контроллера прерываний, но он в обмене информацией не участвует. Его задача состоит в том, чтобы упростить работу процессора с внешними запросами прерываний. Этот контроллер обычно программно управляется процессором по системной магистрали.
Программный обмен информацией является основным в любой микропроцессорной системе. Он предусмотрен всегда, без него невозможны другие режимы обмена. В этом режиме процессор является единоличным хозяином (или задатчиком, Master) системной магистрали. Все операции (циклы) обмена информацией в данном случае инициируются только процессором, все они выполняются строго в порядке, предписанном исполняемой программой.
Процессор читает (выбирает) из памяти коды команд и исполняет их, читая данные из памяти или из устройства ввода/вывода, обрабатывая их, записывая данные в память или передавая их в устройство ввода/вывода. Путь процессора по программе может быть линейным, циклическим, может содержать переходы (прыжки), но он всегда непрерывен и полностью находится под контролем процессора. Ни на какие внешние события, не связанные с программой, процессор не реагирует (рис. 1.11). Все сигналы на магистрали в данном случае контролируются процессором.
Прямой доступ к памяти (ПДП, DMA) это режим, принципиально отличающийся от двух ранее рассмотренных режимов тем, что обмен по системной шине идет без участия процессора. Внешнее устройство, требующее обслуживания, сигнализирует процессору, что режим ПДП необходим, в ответ на это процессор заканчивает выполнение текущей команды и отключается от всехшин, сигнализируя запросившему устройству, что обмен в режиме ПДП можно начинать.
Операция ПДП сводится к пересылке информации из устройства ввода/вывода в память или же из памяти в устройство ввода/вывода. Когда пересылка информации будет закончена, процессор вновь возвращается к прерванной программе, продолжая ее с той точки, где его прервали (рис. 1.13). Это похоже на режим обслуживания прерываний, но в данном случае процессор не участвует в обмене. Как и в случае прерываний, реакция на внешнее событие при ПДП существенно медленнее, чем при программном режиме.
Архитектура с общей шиной (принстонская, фон-неймановская) проще, она не требует от процессора
одновременного обслуживания двух шин, контроля обмена по двум шинам сразу. Наличие единой
памяти данных и команд позволяет гибко распределять ее объем между кодами данных и команд.
Например, в некоторых случаях нужна большая и сложная программа, а данных в памяти надо хра-
нить не слишком много. В других случаях, наоборот, программа требуется простая, но необходимы
большие объемы хранимых данных. Перераспределение памяти не вызывает никаких проблем, глав-
ное чтобы программа и данные вместе помещались в памяти системы. Как правило, в системах с
такой архитектурой память бывает довольно большого объема (до десятков и сотен мегабайт). Это
позволяет решать самые сложные задачи.
Архитектура с раздельными шинами данных и команд.
Архитектура с раздельными шинами данных и команд сложнее, она заставляет процессор работать
одновременно с двумя потоками кодов, обслуживать обмен по двум шинам одновременно. Програм-
ма может размещаться только в памяти команд, данные только в памяти данных. Такая узкая спе-
циализация ограничивает круг задач, решаемых системой, так как не дает возможности гибкого пе-
рераспределения памяти. Память данных и память команд в этом случае имеют не слишком большой
объем, поэтому применение систем с данной архитектурой ограничивается обычно не слишком
сложными задачами. В чем же преимущество архитектуры с двумя шинами (гарвардской)? В первую очередь, в быстро-
действии.
Дело в том, что при единственной шине команд и данных процессор вынужден по одной этой шине
принимать данные (из памяти или устройства ввода/вывода) и передавать данные (в память или в
устройство ввода/вывода), а также читать команды из памяти. Естественно, одновременно эти пере-
сылки кодов по магистрали происходить не могут, они должны производиться по очереди. Совре-
менные процессоры способны совместить во времени выполнение команд и проведение циклов об-
мена по системной шине. Использование конвейерных технологий и быстрой кэш-памяти позволяет
им ускорить процесс взаимодействия со сравнительно медленной системной памятью. Повышение
тактовой частоты и совершенствование структуры процессоров дают возможность сократить время
выполнения команд. Но дальнейшее увеличение быстродействия системы возможно только при со-
вмещении пересылки данных и чтения команд, то есть при переходе к архитектуре с двумя шинами.
В случае двухшинной архитектуры обмен по обеим шинам может быть независимым, параллельным
во времени. Соответственно, структуры шин (количество разрядов кода адреса и кода данных, поря-
док и скорость обмена информацией и т.д.) могут быть выбраны оптимально для той задачи, которая
решается каждой шиной. Поэтому при прочих равных условиях переход на двухшинную архитекту-
ру ускоряет работу микропроцессорной системы, хотя и требует дополнительных затрат на аппара-
туру, усложнения структуры процессора. Память данных в этом случае имеет свое распределение
адресов, а память команд свое.
Диапазон применения микропроцессорной техники сейчас очень широк, требования к микропроцес-
сорным системам предъявляются самые разные. Поэтому сформировалось несколько типов микро-
процессорных систем, различающихся мощностью, универсальностью, быстродействием и струк-
турными отличиями. Основные типы следующие:
• микроконтроллеры наиболее простой тип микропроцессорных систем, в которых все или большин‐
ство узлов системы выполнены в виде одной микросхемы;
• контроллеры управляющие микропроцессорные системы, выполненные в виде отдельных моду‐
лей;
• микрокомпьютеры более мощные микропроцессорные системы с развитыми средствами сопряже‐
ния с внешними устройствами.
• компьютеры (в том числе персональные) самые мощные и наиболее универсальные микропроцес‐
сорные системы.
Четкую границу между этими типами иногда провести довольно сложно. Быстродействие всех типов
микропроцессоров постоянно растет, и нередки ситуации, когда новый микроконтроллер оказывает-
ся быстрее, например, устаревшего персонального компьютера. Но кое-какие принципиальные отли-
чия все-таки имеются.
Микроконтроллеры представляют собой универсальные устройства, которые практически всегда ис-
пользуются не сами по себе, а в составе более сложных устройств, в том числе и контроллеров. Сис-
темная шина микроконтроллера скрыта от пользователя внутри микросхемы. Возможности подклю-
чения внешних устройств к микроконтроллеру ограничены. Устройства на микроконтроллерах
обычно предназначены для решения одной задачи.
Контроллеры, как правило, создаются для решения какой-то отдельной задачи или группы близких
задач. Они обычно не имеют возможностей подключения дополнительных узлов и устройств, на-пример, большой памяти, средств ввода/вывода. Их системная шина чаще всего недоступна пользо-
вателю. Структура контроллера проста и оптимизирована под максимальное быстродействие. В
большинстве случаев выполняемые программы хранятся в постоянной памяти и не меняются. Кон-
структивно контроллеры выпускаются в одноплатном варианте.
Микрокомпьютеры отличаются от контроллеров более открытой структурой, они допускают под-
ключение к системной шине нескольких дополнительных устройств. Производятся микрокомпьюте-
ры в каркасе, корпусе с разъемами системной магистрали, доступными пользователю. Микрокомпь-
ютеры могут иметь средства хранения информации на магнитных носителях (например, магнитные
диски) и довольно развитые средства связи с пользователем (видеомонитор, клавиатура). Микроком-
пьютеры рассчитаны на широкий круг задач, но в отличие от контроллеров, к каждой новой задаче
его надо приспосабливать заново. Выполняемые микрокомпьютером программы можно легко ме-
нять.
Наконец, компьютеры и самые распространенные из них персональные компьютеры это самые
универсальные из микропроцессорных систем. Они обязательно предусматривают возможность мо-
дернизации, а также широкие возможности подключения новых устройств. Их системная шина, ко-
нечно, доступна пользователю. Кроме того, внешние устройства могут подключаться к компьютеру
через несколько встроенных портов связи (количество портов доходит иногда до 10). Компьютер
всегда имеет сильно развитые средства связи с пользователем, средства длительного хранения ин-
формации большого объема, средства связи с другими компьютерами по информационным сетям.
Области применения компьютеров могут быть самыми разными: математические расчеты, обслужи-
вание доступа к базам данных, управление работой сложных электронных систем, компьютерные
игры, подготовка документов и т.д.
Любую задачу в принципе можно выполнить с помощью каждого из перечисленных типов микро-
процессорных систем. Но при выборе типа надо по возможности избегать избыточности и преду-
сматривать необходимую для данной задачи гибкость системы.
В настоящее время при разработке новых микропроцессорных систем чаще всего выбирают путь ис-
пользования микроконтроллеров (примерно в 80% случаев). При этом микроконтроллеры применя-
ются или самостоятельно, с минимальной дополнительной аппаратурой, или в составе более слож-
ных контроллеров с развитыми средствами ввода/вывода.
Классические микропроцессорные системы на базе микросхем процессоров и микропроцессорных
комплектов выпускаются сейчас довольно редко, в первую очередь, из-за сложности процесса разра-
ботки и отладки этих систем. Данный тип микропроцессорных систем выбирают в основном тогда,
когда микроконтроллеры не могут обеспечить требуемых характеристик.
Наконец, заметное место занимают сейчас микропроцессорные системы на основе персонального
компьютера. Разработчику в этом случае нужно только оснастить персональный компьютер допол-
нительными устройствами сопряжения, а ядро микропроцессорной системы уже готово. Персональ-
ный компьютер имеет развитые средства программирования, что существенно упрощает задачу раз-
работчика. К тому же он может обеспечить самые сложные алгоритмы обработки информации. Ос-
новные недостатки персонального компьютера большие размеры корпуса и аппаратурная избы-
точность для простых задач. Недостатком является и неприспособленность большинства персональ-
ных компьютеров к работе в сложных условиях (запыленность, высокая влажность, вибрации, высо-
кие температуры и т.д.). Однако выпускаются и специальные персональные компьютеры, приспо-
собленные к различным условиям эксплуатации.
Одним из способов обмена данными с ВУ является обмен в режиме прямого доступа к памяти (ПДП). В этом режиме обмен данными между ВУ и основной памятью микроЭВМ происходит без участия процессора. Обменом в режиме ПДП управляет не программа, выполняемая процессором, а электронные схемы, внешние по отношению к процессору. Обычно схемы, управляющие обменом в режиме ПДП, размещаются или в специальном контроллере, который называется контроллером прямого доступа к памяти, или в контроллере самого ВУ.
Обмен данными в режиме ПДП позволяет использовать в микроЭВМ быстродействующие внешние запоминающие устройства, такие, например, как накопители на жестких магнитных дисках, поскольку ПДП может обеспечить время обмена одним байтом данных между памятью и ВЗУ, равное циклу обращения к памяти.
Для реализации режима прямого доступа к памяти необходимо обеспечить непосредственную связь контроллера ПДП и памяти микроЭВМ. Для этой цели можно было бы использовать специально выделенные шины адреса и данных, связывающие контроллер ПДП с основной памятью. Но такое решение нельзя признать оптимальным, так как это приведет к значительному усложнению микроЭВМ в целом, особенно при подключении нескольких ВЗУ. В целях сокращения количества линий в шинах микроЭВМ контроллер ПДП подключается к памяти посредством шин адреса и данных системного интерфейса. При этом возникает проблема совместного использования шин системного интерфейса процессором и контроллером ПДП. Можно выделить два основных способа ее решения: реализация обмена в режиме ПДП с «захватом цикла» и в режиме ПДП с блокировкой процессора.
Существуют две разновидности прямого доступа к памяти с «захватом цикла». Наиболее простой способ организации ПДП состоит в том, что для обмена используются те машинные циклы процессора, в которых он не обменивается данными с памятью. В такие циклы контроллер ПДП может обмениваться данными с памятью, не мешая работе процессора. Однако возникает необходимость выделения таких циклов, чтобы не произошло временного перекрытия обмена ПДП с операциями обмена, инициируемыми процессором. В некоторых процессорах формируется специальный управляющий сигнал, указывающий циклы, в которых процессор не обращается к системному интерфейсу. При использовании других процессоров для выделения таких циклов необходимо применение в контроллерах ПДП специальных селектирующих схем, что усложняет их конструкцию. Применение рассмотренного способа организации ПДП не снижает производительности микроЭВМ, но при этом обмен в режиме ПДП возможен только в случайные моменты времени одиночными байтами или словами.
Более распространенным является ПДП с «захватом цикла» и принудительным отключением процессора от шин системного интерфейса. Для реализации такого режима ПДП системный интерфейс микроЭВМ дополняется двумя линиями для передачи управляющих сигналов «Требование прямого доступа к памяти» (ТПДП) и «Предоставление прямого доступа к памяти» (ППДП).
Управляющий сигнал ТПДП формируется контроллером прямого доступа к памяти. Процессор, получив этот сигнал, приостанавливает выполнение очередной команды, не дожидаясь ее завершения, выдает на системный интерфейс управляющий сигнал ППДП и отключается от шин системного интерфейса. С этого момента все шины системного интерфейса управляются контроллером ПДП. Контроллер ПДП, используя шины системного интерфейса, осуществляет обмен одним байтом или словом данных с памятью микроЭВМ и затем, сняв сигнал ТПДП, возвращает управление системным интерфейсом процессору. Как только контроллер ПДП будет готов к обмену следующим байтом, он вновь «захватывает» цикл процессора и т.д. В промежутках между сигналами ТПДП процессор продолжает выполнять команды программы. Тем самым выполнение программы замедляется, но в меньшей степени, чем при обмене в режиме прерываний.
Применение в микроЭВМ обмена данными с ВУ в режиме ПДП всегда требует предварительной подготовки, а именно: для каждого ВУ необходимо выделить область памяти, используемую при обмене, и указать ее размер, т.е. количество записываемых в память или читаемых из памяти байт (слов) информации. Следовательно, контроллер ПДП должен обязательно иметь в своем составе регистр адреса и счетчик байт (слов). Перед началом обмена с ВУ в режиме ПДП процессор должен выполнить программу загрузки. Эта программа обеспечивает запись в указанные регистры контроллера ПДП начального адреса выделенной ВУ памяти и ее размера в байтах или словах в зависимости от того, какими порциями информации ведется обмен. Сказанное не относится к начальной загрузке программ в память в режиме ПДП. В этом случае содержимое регистра адреса и счетчика байт слов устанавливается переключателями или перемычками непосредственно на плате контроллера.
Блок-схема простого контроллера ПДП, обеспечивающего ввод данных в память микроЭВМ по инициативе ВУ в режиме ПДП «Захват цикла», приведена на рис. 3.17.
Рис. 3.17. Контроллер ПДП для ввода данных из ВУ в режиме «Захват цикла» и отключением процессора от шин системного интерфейса
Перед началом очередного сеанса ввода данных из ВУ процессор загружает в регистры его контроллера следующую информацию: в счетчик байт количество принимаемых байт данных, а в регистр адреса начальный адрес области памяти для вводимых данных. Тем самым контроллер подготавливается к выполнению операции ввода данных из ВУ в память микроЭВМ в режиме ПДП.
Байты данных из ВУ поступают в регистр данных контроллера в постоянном темпе. При этом каждый байт сопровождается управляющим сигналом из ВУ «Ввод данных», который обеспечивает запись байта данных в регистр данных контроллера. По этому же сигналу и при ненулевом состоянии счетчика байт контроллер формирует сигнал ТПДП. По ответному сигналу процессора ППДП контроллер выставляет на шины адреса и данных системного интерфейса содержимое своих регистров адреса и данных соответственно. Формируя управляющий сигнал «Вывод», контроллер ПДП обеспечивает запись байта данных из своего регистра данных в память микроЭВМ. Сигнал ППДП используется в контроллере и для модификации счетчика байт и регистра адреса. По каждому сигналу ППДП из содержимого счетчика байт вычитается единица, и как только содержимое счетчика станет равно нулю, контроллер прекратит формирование сигналов «Требование прямого доступа к памяти».
На примере простого контроллера ПДП мы рассмотрели только процесс подготовки контроллера и непосредственно передачу данных в режиме ПДП. На практике любой сеанс обмена данными с ВУ в режиме ПДП всегда инициируется программой, выполняемой процессором, и включает два следующих этапа.
1. На этапе подготовки ВУ к очередному сеансу обмена процессор в режиме программно-управляемого обмена опрашивает состояние ВУ (проверяет его готовность к обмену) и посылает в ВУ команды, обеспечивающие подготовку ВУ к обмену. Такая подготовка может сводиться, например, к перемещению головок на требуемую дорожку в накопителе на жестком диске. Затем выполняется загрузка регистров контроллера ПДП. На этом подготовка к обмену в режиме ПДП завершается и процессор переключается на выполнение другой программы.
2. Обмен данными в режиме ПДП начинается после завершения подготовительных операций в ВУ по инициативе либо ВУ, как это было рассмотрено выше, либо процессора. В этом случае контроллер ПДП необходимо дополнить регистром состояния и управления, содержимое которого будет определять режим работы контроллера ПДП. Один из разрядов этого регистра будет инициировать обмен данными с ВУ. Загрузка информации в регистр состояния и управления контроллера ПДП производится программным путем.
Наиболее распространенным является обмен в режиме прямого доступ к памяти с блокировкой процессора. Он отличается от ПДП с «захватом цикла» тем, что управление системным интерфейсом передается контроллеру ПДП не на время обмена одним байтом, а на время обмена блоком данных. Такой режим ПДП используется в тех случаях, когда время обмена одним байтом с ВУ сопоставимо с циклом системной шины.
В микроЭВМ можно использовать несколько ВУ, работающих в режиме ПДП. Предоставление таким ВУ шин системного интерфейса для обмена данными производится на приоритетной основе. Приоритеты ВУ реализуются так же, как и при обмене данными в режиме прерывания, но вместо управляющих сигналов «Требование прерывания» и «Предоставление прерывания» используются сигналы «Требование прямого доступа» и «Предоставление прямого доступа», соответственно.
Шина данных -- это основная шина, ради которой и создается вся система. Количество ее разрядов (линий связи) определяет скорость и эффективность информационного обмена, а также максимально возможное количество команд.
Шина данных всегда двунаправленная, так как предполагает передачу информации в обоих направлениях. Наиболее часто встречающийся тип выходного каскада для линий этой шины -- выход с тремя состояниями.
Обычно шина данных имеет 8, 16, 32 или 64 разряда. Понятно, что за один цикл обмена по 64-разрядной шине может передаваться 8 байт информации, а по 8-разрядной -- только один байт. Разрядность шины данных определяет и разрядность всей магистрали. Например, когда говорят о 32-разрядной системной магистрали, подразумевается, что она имеет 32-разрядную шину данных.
Шина адреса -- вторая по важности шина, которая определяет максимально возможную сложность микропроцессорной системы, то есть допустимый объем памяти и, следовательно, максимально возможный размер программы и максимально возможный объем запоминаемых данных. Количество адресов, обеспечиваемых шиной адреса, определяется как 2N, где N -- количество разрядов. Например, 16-разрядная шина адреса обеспечивает 65 536 адресов. Разрядность шины адреса обычно кратна 4 и может достигать 32 и даже 64. Шина адреса может быть однонаправленной (когда магистралью всегда управляет только процессор) или двунаправленной (когда процессор может временно передавать управление магистралью другому устройству, например контроллеру ПДП). Наиболее часто используются типы выходных каскадов с тремя состояниями или обычные ТТЛ (с двумя состояниями).
Как в шине данных, так и в шине адреса может использоваться положительная логика или отрицательная логика. При положительной логике высокий уровень напряжения соответствует логической единице на соответствующей линии связи, низкий -- логическому нулю. При отрицательной логике -- наоборот. В большинстве случаев уровни сигналов на шинах -- ТТЛ.
Для снижения общего количества линий связи магистрали часто применяется мультиплексирование шин адреса и данных. То есть одни и те же линии связи используются в разные моменты времени для передачи как адреса, так и данных (в начале цикла -- адрес, в конце цикла -- данные). Для фиксации этих моментов (стробирования) служат специальные сигналы на шине управления. Понятно, что мультиплексированная шина адреса/данных обеспечивает меньшую скорость обмена, требует более длительного цикла обмена. По типу шины адреса и шины данных все магистрали также делятся на мультиплексированные и немультиплексированные.
В некоторых мультиплексированных магистралях после одного кода адреса передается несколько кодов данных (массив данных). Это позволяет существенно повысить быстродействие магистрали. Иногда в магистралях применяется частичное мультиплексирование, то есть часть разрядов данных передается по немультиплексированным линиям, а другая часть -- по мультиплексированным с адресом линиям.
Шина управления -- это вспомогательная шина, управляющие сигналы на которой определяют тип текущего цикла и фиксируют моменты времени, соответствующие разным частям или стадиям цикла. Кроме того, управляющие сигналы обеспечивают согласование работы процессора (или другого хозяина магистрали, задатчика, master) с работой памяти или устройства ввода/вывода (устройства-исполнителя, slave). Управляющие сигналы также обслуживают запрос и предоставление прерываний, запрос и предоставление прямого доступа.
Сигналы шины управления могут передаваться как в положительной логике (реже), так и в отрицательной логике (чаще). Линии шины управления могут быть как однонаправленными, так и двунаправленными. Типы выходных каскадов могут быть самыми разными: с двумя состояниями (для однонаправленных линий), с тремя состояниями (для двунаправленных линий), с открытым коллектором (для двунаправленных и мультиплексированных линий).
Самые главные управляющие сигналы -- это стробы обмена, то есть сигналы, формируемые процессором и определяющие моменты времени, в которые производится пересылка данных по шине данных, обмен данными. Чаще всего в магистрали используются два различных строба обмена:
Строб записи (вывода), который определяет момент времени, когда устройство-исполнитель может принимать данные, выставленные процессором на шину данных;
Строб чтения (ввода), который определяет момент времени, когда устройство-исполнитель должно выдать на шину данных код данных, который будет прочитан процессором.
При этом большое значение имеет то, как процессор заканчивает обмен в пределах цикла, в какой момент он снимает свой строб обмена. Возможны два пути решения.
Первый пример это обмен по мультиплексированной асинхронной магистрали Q-bus, предложенной фирмой DEC и широко применявшейся в микрокомпьютерах и промышленных контроллерах. Упрощенные временные диаграммы циклов чтения (ввода) и записи (вывода) по этой магистрали приведены на рис. 2.3 и 2.4.
Отметим, что в дальнейшем тексте знак "минус" перед названием сигнала говорит о том, что активный уровень сигнала низкий, пассивный высокий, то есть сигнал отрицательный. Если минуса перед названием сигнала нет, то сигнал положительный, его низкий уровень пассивный, а высокий активный.
На шине адреса/данных (AD) в начале цикла обмена (в фазе адреса) процессор (задатчик) выставляет код адреса. На этой шине используется отрицательная логика. Средний уровень сигналов на шине AD обозначает, что состояния сигналов на шине в данные временные интервалы не важны. Для стробирования адреса используется отрицательный синхросигнал -SYNC, выставляемый также процессором. Его передний (отрицательный) фронт соответствует действительности кода адреса на шине AD. Фаза адреса одинакова в обоих циклах записи и чтения.
Получив (распознав) свой код адреса, устройство ввода/вывода или память (исполнитель) готовится к проведению обмена. Через некоторое время после начала (отрицательного фронта) сигнала -SYNC процессор снимает адрес и начинает фазу данных.
В фазе данных цикла чтения (рис. 2.3) процессор выставляет сигнал строба чтения данных -DIN, в ответ на который устройство, к которому обращается процессор (исполнитель), должно выставить свой код данных (читаемые данные). Одновременно это устройство должно подтвердить выполнение операции сигналом подтверждения обмена -RPLY.
В качестве второго примера рассмотрим циклы обмена на синхронной немультиплексированной магистрали ISA (Industrial Standard Architecture), предложенной фирмой IBM и широко используемой в персональных компьютерах. Упрощенные циклы записи в устройство ввода/вывода и чтения из устройства ввода/вывода приведены на рис. 2.6 и 2.7.
Оба цикла начинаются с выставления процессором (задатчиком) кода адреса на шину адреса SA (логика на этой шине положительная). Адрес остается на шине SA до конца цикла. Фаза адреса, одинаковая для обоих циклов, заканчивается с началом строба обмена данными -IOR или -IOW. В течение фазы адреса устройство-исполнитель должно принять код адреса и распознать или не распознать его. Если адрес распознан, исполнитель готовится к обмену.
В фазе данных цикла чтения (рис. 2.6) процессор выставляет отрицательный сигнал чтения данных из устройства ввода/вывода -IOR. В ответ на него устройство-исполнитель должно выдать на шину данных
SD свой код данных (читаемые данные). Логика на шине данных положительная. Через установленное время строб обмена -IOR снимается процессором, после чего снимается также и код адреса с шины SA. Цикл заканчивается без учета быстродействия исполнителя.
Но так происходит только в случае основного, синхронного обмена. Кроме него на магистрали ISA также предусмотрена возможность асинхронного обмена. Для этого применяется сигнал готовности канала (магистрали) I/O CH RDY. Тип выходного каскада для данного сигнала ОК, для предотвращения конфликтов между устройствами-исполнителями. При синхронном обмене сигнал I/O CH RDY всегда положительный. Но медленное устройство-исполнитель, не успевающее работать в темпе процессора, может этот сигнал снять, то есть сделать нулевым сразу после начала строба обмена. Тогда процессор до того момента, пока сигнал I/O CH RDY не станет снова положительным, приостанавливает завершение цикла, продлевает строб обмена. Конечно, слишком большая длительность этого сигнала рассматривается как аварийная ситуация. Для простоты понимания можно считать, что устройство-исполнитель формирует в данном случае отрицательный сигнал неготовности завершить обмен. На время этого сигнала обмен на магистрали приостанавливается.
Принципиальное отличие асинхронного обмена по магистрали ISA от асинхронного обмена по магистрали Q-bus состоит в следующем. Если в случае Q-bus сигнал подтверждения обязателен, и его должен формировать каждый исполнитель, то в случае ISA сигнал о неготовности исполнитель может не формировать, если он успевает работать в темпе процессора. Зато в случае Q-bus к концу цикла обмена процессор всегда уверен, что устройство-исполнитель выполнило требуемую операцию, а в случае ISA такой уверенности нет.
В фазе данных цикла записи по магистрали ISA (рис. 2.7) процессор выставляет на шину данных
SD код записываемых данных и сопровождает их стробом записи данных в устройство ввода/вывода -IOW. Получив этот сигнал, устройство-исполнитель должно принять с шины SD код записываемых данных. Если оно не успевает сделать это в темпе процессора, то оно может снять на нужное время сигнал I/O CH RDY после получения переднего фронта сигнала -IOW. Тогда процессор приостановит окончание цикла записи.
Упрощенная структура связей между устройствами, участвующими в обмене по прерываниям, на магистрали ISA показана на рис. 2.10. Процессор общается с контроллером прерываний как по магистрали (чтобы задать ему режимы работы), так и вне магистрали (при обработке запросов на прерывание). Сигналы запросов прерываний IRQ распределяются между всеми устройствами магистрали. На каждую линию IRQ приходится одно устройство. Тип выходного каскада для этих линий 2С, так как конфликты здесь не предусмотрены. Запросом прерывания является передний, положительный фронт сигнала IRQ. При одновременном поступлении сигналов IRQ от нескольких устройств порядок их обслуживания определяется контроллером прерываний.
Рассмотренные методы и приемы синтеза дискретных устройств (ДУ) использовали их представление в виде совокупности двух основных блоков: комбинационного логического и блока элементов памяти. Такой подход обладает универсальностью и обеспечивает хорошие результаты при построении относительно несложных ДУ. Однако полученные на его основе процедуры синтеза ДУ оказываются чрезмерно громоздкими и трудоемкими при построении устройств средней и большой сложности, имеющих важное практическое значение. Работа таких устройств обычно заключается в реализации некоторого алгоритма обработки информации, т.е. в выполнении упорядоченной последовательности определенных операций над поступающими данными. При построении таких ДУ целесообразно использовать принцип микропрограммного управления, состоящий в следующем:
1) любая операция, реализуемая устройством, рассматривается как сложное действие, которое разделяется на последовательность элементарных действий, называемых микрооперациями;
2) для управления порядком следования микроопераций используются логические условия хi, принимающие в зависимости от результатов выполнения микроопераций значения 1 или 0;
3) процесс выполнения операций в устройстве описывается в форме алгоритма, представленного в терминах микроопераций и логических условий и называемого микропрограммой;
4) микропрограмма используется как форма представления функции устройства, на основе которой определяются его структура и порядок функционирования.
Все сказанное можно рассматривать, как содержательное описание принципа микропрограммного управления.
Существует несколько подходов к классификации микропроцессоров по типу архитектуры. Так, выделяют МП с CISC (Complete Instruction Set Computer) архитектурой, характеризуемой полным набором команд, RISC (Reduce Instruction Set Computer) архитектурой, которая определяет систему с сокращенным набором команд одинакового формата, и MISC (Minimum Instruction Set Computing) вычисления с минимальным набором команд, выполняемых за один такт МП.
Анализируя адресные пространства программ и данных, определяют МП с архитектурой фон Неймана (память программ и память данных находятся в едином пространстве и нет никаких признаков, указывающих на тип информации в ячейке памяти) и МП с архитектурой Гарвардской лаборатории (память программ и память данных разделены, имеют свои адресные пространства и способы доступа к ним).
Архитектура этого типа не предполагает явного определения аккумулятора, регистров общего назначения или стека; все операнды команд адресуются к области основной памяти.
С точки зрения важности для пользователя-программиста под архитектурой в общем случае понимают совокупность следующих компонентов и характеристик:
1) разрядности адресов и данных;
2) состава, имен и назначения программно-доступных регистров;
3) форматов и системы команд;
4) режимов адресации памяти;
5) способов машинного представления данных разного типа;
6) структуры адресного пространства;
7) способа адресации внешних устройств и средств выполнения операций ввода/вывода;
8) классов прерываний, особенностей инициирования и обработки прерываний.
Большинство современных процессоров для персональных компьютеров в общем основаны на той или иной версии циклического процесса последовательной обработки информации, изобретённого Джоном фон Нейманом.
Джон фон Нейман придумал схему постройки компьютера в 1946 году.
Важнейшие этапы этого процесса приведены ниже. В различных архитектурах и для различных команд могут потребоваться дополнительные этапы. Например, для арифметических команд могут потребоваться дополнительные обращения к памяти, во время которых производится считывание операндов и запись результатов. Отличительной особенностью архитектуры фон Неймана является то, что инструкции и данные хранятся в одной и той же памяти.
Этапы цикла выполнения:
Процессор выставляет число, хранящееся в регистре счётчика команд, на шину адреса, и отдаёт памяти команду чтения;
Выставленное число является для памяти адресом; память, получив адрес и команду чтения, выставляет содержимое, хранящееся по этому адресу, на шину данных, и сообщает о готовности;
Процессор получает число с шины данных, интерпретирует его как команду (машинную инструкцию) из своей системы команд и исполняет её;
Если последняя команда не является командой перехода, процессор увеличивает на единицу (в предположении, что длина каждой команды равна единице) число, хранящееся в счётчике команд; в результате там образуется адрес следующей команды;
Снова выполняется п. 1.
Данный цикл выполняется неизменно, и именно он называется процессом (откуда и произошло название устройства).
Во время процесса процессор считывает последовательность команд, содержащихся в памяти, и исполняет их. Такая последовательность команд называется программой и представляет алгоритм полезной работы процессора. Очерёдность считывания команд изменяется в случае, если процессор считывает команду перехода тогда адрес следующей команды может оказаться другим. Другим примером изменения процесса может служить случай получения команды останова или переключение в режим обработки аппаратного прерывания.
Команды центрального процессора являются самым нижним уровнем управления компьютером, поэтому выполнение каждой команды неизбежно и безусловно. Не производится никакой проверки на допустимость выполняемых действий, в частности, не проверяется возможная потеря ценных данных. Чтобы компьютер выполнял только допустимые действия, команды должны быть соответствующим образом организованы в виде необходимой программы.
Скорость перехода от одного этапа цикла к другому определяется тактовым генератором. Тактовый генератор вырабатывает импульсы, служащие ритмом для центрального процессора. Частота тактовых импульсов называется тактовой частотой.
Конвейерная архитектура
Конвейерная архитектура (pipelining) была введена в центральный процессор с целью повышения быстродействия. Обычно для выполнения каждой команды требуется осуществить некоторое количество однотипных операций, например: выборка команды из ОЗУ, дешифрация команды, адресация операнда в ОЗУ, выборка операнда из ОЗУ, выполнение команды, запись результата в ОЗУ. Каждую из этих операций сопоставляют одной ступени конвейера. Например, конвейер микропроцессора с архитектурой MIPS-I содержит четыре стадии:
1) получение и декодирование инструкции (Fetch)
2) адресация и выборка операнда из ОЗУ (Memory access)
3) выполнение арифметических операций (Arithmetic Operation)
4) сохранение результата операции (Store)
После освобождения k-й ступени конвейера она сразу приступает к работе над следующей командой. Если предположить, что каждая ступень конвейера тратит единицу времени на свою работу, то выполнение команды на конвейере длиной в n ступеней займёт n единиц времени, однако в самом оптимистичном случае результат выполнения каждой следующей команды будет получаться через каждую единицу времени.
Действительно, при отсутствии конвейера выполнение команды займёт n единиц времени (так как для выполнения команды по прежнему необходимо выполнять выборку, дешифрацию и т. д.), и для исполнения m команд понадобится единиц времени; при использовании конвейера (в самом оптимистичном случае) для выполнения m команд понадобится всего лишь n + m единиц времени.
Факторы, снижающие эффективность конвейера:
Суперскалярная архитектура
Способность выполнения нескольких машинных инструкций за один такт процессора. Появление этой технологии привело к существенному увеличению производительности.
CISC-процессоры
Complex Instruction Set Computer вычисления со сложным набором команд. Процессорная архитектура, основанная на усложнённом наборе команд. Типичными представителями CISC является семейство микропроцессоров Intel x86 (хотя уже много лет эти процессоры являются CISC только по внешней системе команд).
RISC-процессоры
Reduced Instruction Set Computing (technology) вычисления с сокращённым набором команд. Архитектура процессоров, построенная на основе сокращённого набора команд. Характеризуется наличием команд фиксированной длины, большого количества регистров, операций типа регистр-регистр, а также отсутствием косвенной адресации. Концепция RISC разработана Джоном Коком (John Cocke) из IBM Research, название придумано Дэвидом Паттерсоном (David Patterson).
Самая распространённая реализация этой архитектуры представлена процессорами серии PowerPC, включая G3, G4 и G5. Довольно известная реализация данной архитектуры процессоры серий MIPS и Alpha.
MISC-процессоры
Minimum Instruction Set Computing вычисления с минимальным набором команд. Дальнейшее развитие идей команды Чака Мура, который полагает, что принцип простоты, изначальный для RISC процессоров, слишком быстро отошёл на задний план. В пылу борьбы за максимальное быстродействие, RISC догнал и перегнал многие CISC процессоры по сложности.
Гарвардская архитектура
Гарвардская архитектура была разработана Говардом Эйкеном в конце 1930-х годов в Гарвардском университете с целью увеличить скорость выполнения вычислительных операций и оптимизировать работу памяти.
Типичные операции (сложение и умножение) требуют от любого вычислительного устройства нескольких действий: выборку двух операндов, выбор инструкции и её выполнение, и, наконец, сохранение результата. Идея, реализованная Эйкеном, заключалась в физическом разделении линий передачи команд и данных. В первом компьютере Эйкена Марк I для хранения инструкций использовалась перфорированная лента, а для работы с данными электромеханические регистры. Это позволяло одновременно пересылать и обрабатывать команды и данные, благодаря чему значительно повышалось общее быстродействие.
В микропроцессорах с регистрами общего назначения математические операции могут выполняться над любой ячейкой памяти. В зависимости от типа операции команда может быть одноадресной, двухадресной или трёхадресной.
Принципиальным отличием аккумуляторных процессоров является то, что математические операции могут производиться только над одной особой ячейкой памяти - аккумулятором. Для того, чтобы произвести операцию над произвольной ячейкой памяти её содержимое необходимо скопировать в аккумулятор, произвести требуемую операцию, а затем скопировать полученный результат в произвольную ячейку памяти.
Микроконтро́ллер (англ. Micro Controller Unit, MCU) микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает на одном кристалле функции процессора и периферийных устройств, содержит ОЗУ или ПЗУ. По сути, это однокристальный компьютер, способный выполнять простые задачи.
Цифровой сигнальный процессор (англ. Digital signal processor, DSP; сигнальный микропроцессор, СМП; процессор цифровых сигналов, ПЦС) специализированный микропроцессор, предназначенный для цифровой обработки сигналов (обычно в реальном масштабе времени).
регистры общего назначения (РОН), представляющие собой часть регистров процессора, использующихся без ограничения в арифметических операциях, но имеющие определенные ограничения, например в строковых. РОН, не характерные для эпохи мейнфреймов типа IBM/370[1] стали популярными в микропроцессорах архитектуры X86 i8085, i8086 и последующих[2].
Сегментные регистры Регистры указывающие на сегменты.
CS (англ. Code Segment), DS (англ. Data Segment), SS (англ. Stack Segment), ES, FS, GS
В реальном режиме работы процессора сегментные регистры содержат адрес начала 64Kb сегмента, смещенный вправо на 4 бита.
В защищенном режиме работы процессора сегментные регистры содержат селектор сегмента памяти, выделенного ОС.
Регистр флагов регистр процессора, отражающий текущее состояние процессора.
Регистр флагов содержит группу флагов состояния, управляющий флаг и группу системных флагов[1]:
Эффективная система адресации памяти в значительной степени определяет производительность ЭВМ. Поэтому по мере усложнения МП в них появляются практически все возможности адресации, представляемые в мини-ЭВМ. Тем не менее у МП есть одна присущая только им особенность. Так как МП рассчитаны очень широкий диапазон применений, то они должна эффективно работать, в частности, с ЗУ небольшой емкости. У МП с малой разрядностью (восемь разрядов) необходимо также уметь очень экономно задавать адреса. Далее проблемы адресации в МП рассматриваются с учетом указанных особенностей.
Иногда машинная команда содержит три поля: кода операции, поле адреса операндов или самих oneрандов, над которыми производятся операции, и поле признака адресации, которое указывает принятый метод адресации операндов.
В МП из-за ограниченного числа разрядов ШД (узкий интерфейс) используются два поля вместо трех. При этом указание на способы адресации операнде осуществляется в неявном виде, в основном самим кодом операции.
Способы адресации МП прежде всего делятся на прямую и непрямую, на непосредственную и неявную. Кроме того, существуют безадресные команды, в которых адрес операнда неявно задается самим КОП, например пустая команда, запрет прерывания, разрешение прерывания, ожидание прерывания и т. п. Важно отметить, что в одной команде может одновременно использоваться несколько способов адресации.
При непосредственной адресации содержимое адресной части команды является операндом. Этот операнд может в принципе иметь большую разрядность, так как КОП может организовать выборку большого числа слов, расположенных в памяти вслед за первым словом команды, т. е. команды могут быть переменной длины. Команды с содержанием в адресной части самих операндов не обращаются во внешнюю память за ними, что обеспечивает экономию объема управляющей памяти и увеличивает скорость обработки данных.
При прямой адресации адрес в команде является исполнительным, он непосредственно указывает место хранения данного в памяти. Прямая адресация является наиболее простой, но годится при малых объемах адресуемой памяти. При больших объемах адресуемой памяти для прямой адресации требуются длинные многобайтовые команды. В самом деле, в современных МП объем адресуемой оперативной памяти (ОЗУ) может достигать 64 Кбайт. Прямая адресация такого объема массива требует 16 адресных разрядов в команде (216=64 К). Поэтому прямая адресация данных требует большого объема управляющей памяти и многократного обращения МП к внешней памяти, вследствие чего не обеспечивается высокая производительность.