Структура типовой микросистемы
Магистраль микросистемы. На физическом уровне ЦП взаимодействует с памятью и подсистемой ВВ через единый набор системных шин—внутрисистемную магистраль (рис. 1.5), в общем случае состоящую из:
шины данных DB (Data Bus), по которой производится обмен данными между ЦП, памятью и подсистемой ВВ;
шины адреса АВ (Address Bus), используемой для передачи адресов ячеек памяти и портов ВВ, к которым осуществляется обращение;
шины управления СВ (Control Bus), реализующей функцию управления циклами обмена и работой системы.
Рис. 1.5. МикроЭВМ с трехшинной магистралью | Рис. 1.6. МикроЭВМ с двухшинной магистралью |
Этот же набор шин применяется и для организации канала ПДП. Магистраль такого типа носит название трехшинной с раздельными шинами передачи адреса и данных. Примером внутрисистемной магистрали с тремя шинами служит широко распространенная магистраль И41 [33] и ей подобные.
Физическое совмещение линий связи ЦП с памятью и подсистемой ВВ было необходимым в связи с технологической особенностью производства БИС—ограниченным числом физических выводов, допустимых на кристалле. До середины 80-х гг. стандартная микропроцессорная БИС имела около 40 выводов, через которые требовалось связаться как с памятью, так и с подсистемой ВВ.
В некоторых МС с целью дальнейшего сокращения ширины физической магистрали вводят совмещенную шину адреса/данных AD (Address/Data Bus), по которой передаются как адреса, так и данные (рис. 1.6). Этап передачи адресной информации отделен по времени от этапа передачи данных и стробируется специальным сигналом ALE (Address Latch Enable), который включен в состав СВ.
Данную магистраль обычно называют двухшинной с совмещенными шинами передачи адреса и данных. В качестве примера магистрали последнего типа можно привести внутрисистемную магистраль, формируемую в МП К1821ВМ85А, а также хорошо известную магистраль МПИ (межмодульный параллельный интерфейс) микросистем на базе БИС серии К1801.
Входящий в состав шины управления сигнал ALE используется для разделения функций, выполняемых совмещенной шиной AD. Для этой цели обычно служит срез ALE (переход из состояния 1 в 0), по которому присутствующая на шине AD адресная информация должна быть принята во внешний адресный регистр. При напряжении низкого уровня (0) на линии ALE шина AD выполняет функцию передачи данных.
Обычно каждый модуль МС с двухшинной магистралью, будь то модуль памяти или ВВ, содержит локальный адресный регистр RG, который представлен на рис. 1.7, или другие средства для запоминания адресной информации по срезу ALE. Для фиксации адресной информации может быть использован и один общий регистр (рис. 1.8), в результате ЦП с двухшинной магистралью преобразуется в подобный ему ЦП с тремя раздельными шинами. Построенная таким образом система относится уже к классу трехшинных МС.
Рис. 1.7. Схема фиксации адреса (а) и временные диаграммы ее работы (б) | Рис. 1.8. Преобразователь магистрали: 1—двухшинная магистраль; 2—трехшинная магистраль |
Циклы обращения к магистрали. Физический обмен данными через магистраль выполняется словами или байтами в виде следующих друг за другом обращений к каналу. За один цикл обращения к магистрали между ЦП, памятью и подсистемой ВВ передается одно слово или байт. Существует несколько типовых циклов обмена. Среди них чтение памяти и запись в память. При изолированном ВВ добавляются чтение порта ВВ и запись в порт ВВ. В случае архитектуры гарвардского типа, когда памяти программ и данных физически разделены, вводится также цикл чтения памяти программ. При двухшинной организации МС для увеличения пропускной способности системной магистрали применяется комбинированный обмен типа чтение-запись в память, связанный с однократной передачей адреса в начале цикла обмена.
Рассмотренный выше командный цикл состоит из ряда циклов обращения к магистрали. Если командный цикл образует основное неделимое действие для программиста, то цикл обращения к магистрали является главным звеном работы МС.
В зависимости от числа типовых циклов обращения к магистрали шина СВ должна содержать определенное число линий для передачи сигналов синхронизации и управления доступом, среди которых:
MRDC | (Memory Read Command) | Строб чтения памяти |
MWTC | (Memory Write Command) | Строб записи в память |
IORC | (Input/Output Read Command) | Строб чтения из порта ВВ |
IOWC | (Input/Output Write Command) | Строб записи в порт ВВ |
PSEN | (Program Segment Enable) | Строб чтения программной памяти |
Иногда для передачи этих сигналов отводятся отдельные физические линии. В некоторых случаях такой набор сигналов заменяется другим, например:
RD WR M/IO СOD | (Read) (Write) (Memory or Input/Output) (Code) | Строб чтения Строб записи Выбор пространства памяти или ВВ Выбор памяти программ |
Эти сигналы и образуют физическую шину управления. Нетрудно перейти от втоporo набора к первому, используя дополнительную внешнюю логику, входящую в преобразователь магистрали.
Компоненты, расположенные в пространстве памяти, управляются стробами MRDC и MWTC или RD/WR при = 1. Система ВВ реагирует па стробы IORC и IOWC или RD/WR при = 0, программная память—на строб PSEN или RD при COD = 1. Временные диаграммы передачи данных через магистраль однотипны и имеют вид, представленный на рис. 1.9. Здесь обобщенный строб RD или WR может быть заменен любым другим с соответствующим направлением передачи данных. В случае МС с совмещенной шиной AD в состав шины управления добавляется сигнал ALE (рис. 1.10). Сигналы управления выбором и COD могут рассматриваться как расширение адресной информации, поэтому на них обычно накладываются те же временные ограничения, что и на адрес.
Рис. 1.9. Циклы чтения (а) и записи (б) трехшинной магистрали | Рис. 1.10. Циклы чтения (а) и записи (б) двухшинной магистрали |
На диаграммах рис. 1.9, 1.10 выходные данные истинны в момент окончания строба RD, тогда как формируемые ЦП выходные данные истинны в течение действия сигнала WR. Магистрали с такими характеристиками применяются в простых МС, так как в них для вывода данных используются упрощенные выходные фиксирующие схемы со статическим входом синхронизации. Разработанные с расчетом на потенциальную запись периферийные БИС относятся к приборам первого поколения.
Улучшение скоростных характеристик МС потребовало перехода к магистралям, в которых истинность как входных, так и выходных данных гарантируется только в момент окончания стробов RD и WR, генерируемых с упреждением. Это, в свою очередь, усложнило организацию периферийных модулей и привело к необходимости применения выходных фиксирующих схем двухтактного типа или с динамическим входом синхронизации.
Стробы с новыми временными ограничениями получили название улучшенных или модифицированных. Для их обозначения будем использовать букву A (Advance), стоящую впереди типового имени. Так, стробы улучшенного типа AWR, AMWC и AIOWC можно считать расширенными по сравнению с типовыми WR, MWTC и IOWC. Периферийные модули, спроектированные для работы с модифицированными стробами, относятся к усовершенствованным приборам второго поколения [42].
Из представленных на рис. 1.9 и 1.10 временных диаграмм следует, что периферийные модули, такие как память или подсистема ВВ, успевают отреагировать на стробы RD и WR. В этом случае говорят о синхронном режиме работы системной магистрали, который обеспечивает безусловную передачу данных со скоростью, определяемой ЦП.
В некоторых случаях, например когда в МС используются медленно работающие модули или некоторые из модулей еще не готовы к очередному обмену по ряду причин, не зависящих от ЦП, длительности стробов RD и WR могут оказаться недостаточными для правильного выполнения операции обмена со стороны периферийного модуля. Тогда для организации надежного завершения магистральной операции в состав шины управления вводят специальную линию ХАСК (Exchange Acknowledge), служащую для передачи сигнала подтверждения обмена.
В каждом цикле обращения к каналу перед окончанием строба RD или WR ЦП проверяет линию ХАСК, контролируя установку сигнала подтверждения обмена. При подтверждении обмена ЦП завершает операцию на магистрали, в противном случае он переходит в состояние ожидания подтверждения WAIT, в котором остается до установления сигнала ХАСК (рис. 1.11). В состоянии WAIT ЦП тестирует линию ХАСК с периодом, равным, например, периоду следования импульсов CLK, формируемых генератором тактовых импульсов (ГТИ) процессора. Организованный таким образом обмен называется асинхронным режимом работы системной магистрали. На практике встречаются магистрали как с синхронным, так и асинхронным доступом.
Рис. 1.11. Временные диаграммы цикла чтения-записи с подтверждением обмена
Классическая организация магистрали с асинхронным доступом предполагает, что сигнал подтверждения ХАСК устанавливается в 1 выбранным периферийным модулем во время операции обмена и снимается после ее завершения (пассивная по умолчанию магистраль). Этой ситуации соответствуют временные диаграммы с низкими начальным и конечным уровнями напряжения сигнала ХАСК (см. рис. 1.11). Классическая организация свойственна большим МС. Для достижения максимальной производительности без состояния WAIT периферийные модули должны успевать возвращать сигнал подтверждения к моменту первой его проверки. Задержки ответа приводят к появлению состояний WAIT и снижению скорости обмена.
Существует еще один вариант организации асинхронного доступа, который предполагает изначальную готовность модулей к синхронному доступу. Этому варианту соответствуют диаграммы на рис. 1.11 с высокими начальным и конечным уровнями напряжения сигнала ХАСК. Устройство, не отвечающее требованиям синхронного доступа, должно устанавливать сигнал ХАСК в 0 до момента первого его тестирования, что приведет к переводу ЦП в состояние WAIT и приостановке операции обмена. Такое решение характерно для небольших однопроцессорных МС, так как позволяет максимально сократить объем логики подтверждения обмена.
Внутри МС или в связанной с ней внешней среде могут возникать разнообразные события, которые требуют ее немедленной реакции на свое появление [18], т. е. временной приостановки процесса обработки основной программы, и выполнения другой, предназначенной для обслуживания возникшего события. Реакция МС на событие завершается возвратом к основной программе. Так как состав и моменты возникновения этих событий заранее не известны, то процессы их обслуживания не могут быть учтены при составлении основной программы и должны выполняться параллельно и скрытно для нее.
Процесс обслуживания событий называется прерыванием программы. Каждое прерывающее программу событие сопровождается генерацией специального сигнала IRQi (Interrupt Request), i = 0, 1, ..., который называется радиальным запросом прерывания, а вызываемые им программы—программами обслуживания прерываний. Аппаратные и программные средства, ответственные за организацию прерываний, образуют систему прерываний.
Часто в процессе связывания запроса на прерывание с программой его обслуживания участвует не только ЦП, но и периферийные модули МС. В этом случае ЦП получает общий сигнал запроса на прерывание INTR, называемый векторным запросом и свидетельствующий о появлении одного или нескольких радиальных запросов IRQi, и переходит к выполнению специального машинного цикла—цикла ввода вектора прерывания. Этот цикл состоит во вводе некоторой информации, однозначно связанной с номером i радиального запроса IRQi, которая используется ЦП для перехода к соответствующей программе обслуживания. В общем случае можно считать, что цикл ввода вектора прерываний подобен обычному циклу ввода данных, за исключением того, что сигнал IORC заменяется стробом подтверждения прерывания INTA (Interrupt Acknowledge). Это еще один типовой сигнал, входящий в состав шины СВ.
Прерывания изменяют общее состояние МС и могут влиять на ход выполнения основной программы. Однако их влияние не является прямым, так как осуществляется через размещаемые в памяти структуры данных—области взаимодействия. Основная программа взаимодействует с программами обслуживания прерываний, считывая и модифицируя данные в этих областях. В остальном она создается и выполняется независимо от программ обслуживания, при этом прерывания рассматриваются как параллельно развивающийся изолированный процесс, контролирующий состояние области взаимодействия. Взаимодействие основной программы с процессом прерываний, связанное с получением внешней информации, подобно ВВ данных, поэтому система прерываний может рассматриваться как составная часть системы ВВ [4, 39, 40].
К рассмотренным выше циклам обращения к магистрали обычно добавляют еще два: пуска и останова, обеспечивающие запуск и соответственно останов МС. Они реализуют граничные точки основного алгоритма работы МС, представленного на рис. 1.4.
Типовые структуры МС. Память и подсистема ВВ включают отдельные функционально законченные модули, состав и организация которых раскрывают структуру соответствующей подсистемы. В представленной на рис. 1.12, а МС магистрального типа эти модули выполняются так, чтобы имелась возможность их подключения непосредственно к единой внутрисистемной магистрали. По такому магистрально-модульному принципу построено большинство современных МС.
Рис. 1.12. Типовые структуры МС:
а—магистральная; б—магистрально-каскадная; в—магистрально-радиальная
В подсистеме памяти можно выделить модули постоянного запоминающего устройства (ПЗУ), используемые для хранения программ и констант. Они являются важнейшими компонентами организации такого класса МС, как программируемые микроконтроллеры (МК). При этом емкость ПЗУ может быть достаточно большой. Ко второму типу входящих в подсистему памяти стандартных модулей относятся оперативные запоминающие устройства (ОЗУ), предназначенные для хранения переменных и загружаемого извне объектного кода. Микроконтроллеры обычно имеют ОЗУ незначительных размеров, тогда как микроЭВМ общего назначения должны иметь ОЗУ достаточно большой емкости.
В составе подсистемы ВВ также можно выделить ряд функционально законченных устройств, которые оформляются в виде модулей, подключаемых непосредственно к единой магистрали МС. В простейшем случае это адресуемые ЦП буферные схемы и регистры подсистемы ВВ—порты. Более сложные программно-управляемые подсистемы ВВ, содержащие блоки портов, получили название периферийных адаптеров (ПА). В случае, когда средства ВВ предназначаются для управления специальным внешним оборудованием и реализации специальных функций ВВ, их называют периферийными контроллерами.
Наиболее сложными из современных средств обмена с внешними устройствами ВВ считаются сопроцессоры ВВ [58], которые работают по собственным программам, хранящимся в памяти МС, и по сути дела представляют собой отдельные МС.
Модули подсистем памяти и ВВ, реализуемые по магистральной или радиальной схеме, образуют магистрально-каскадные или магистрально-радиальные структуры МС, приведенные на рис. 1.12, б, в. В состав этих структур включаются специальные контроллеры шин, основное назначение которых—реализовать приоритетные соотношения при использовании магистрали.
В каждый момент времени на магистрали допускается только один активный модуль, в распоряжение которого отдаются все ресурсы магистрали. В простейших системах роль активного модуля всегда выполняет ЦП, который и организует управление магистралью. В более сложных системах со многими активными модулями (параллельно работающими другими ЦП, арифметическими или периферийными сопроцессорами, контроллерами ПДП) магистраль распределяется между ними в соответствии с последовательностью запросов на захват магистрали и приоритетными соглашениями. Эта задача возлагается на арбитра системной магистрали. В системах средней сложности функции арбитра выполняет МП.
Использование в МС единой магистрали обеспечивает выполнение за один рабочий цикл одной операции обмена данными между двумя (в общем случае любыми) модулями системы, например чтения командного слова или слова данных из памяти в МП, выдачи данных из процессора в порт подсистемы ВВ или наоборот и т. д.
Дата добавления: 2019-02-07; просмотров: 726;