- •Предисловие
- •Глава 1
- •1.1. Средства микропроцессорной вычислительной техники
- •1.2. Основные характеристики, место и классификация микроЭвм
- •1.3. Индустрия микропроцессорных средств вт
- •Глава 2 элементная база микроэвм. Микропроцессоры
- •2.1. Микропроцессорные бис
- •2.2. Микропроцессор 8086
- •2.3. Развитие семейства мп 8086
- •Глава 3 элементная база микроэвм. Микропроцессорные семейства бис
- •3.1. Сопроцессоры
- •3.2 Интегральные микросхемы памяти
- •3.3. Интерфейсные схемы, контроллеры
- •3.4. Схемы обрамления
- •Глава 4 магистрально-модульная организация микроэвм
- •4.1. Интерфейсы и магистрали микроЭвм
- •4.2. Магистрали типа Multibus
- •4.3. Интерфейсы периферийного оборудования
- •4.4. Конструктивные особенности микроЭвм
- •Глава 5 аппаратура микроэвм
- •5.1. Периферия микроЭвм
- •5.2. Аппаратура персональных микроЭвм
- •5.3. Модульные системы и одноплатные микроЭвм
- •Глава 6
- •6.1. Операционные системы
- •6.2. Средства автоматизации программирования
- •6.3. Пакеты прикладных программ
- •1. Монография я учебные издания
- •2. Периодические издания
- •3. Фирменные издания
- •Глава 1. Введение в микропроцессорную технику .............................. 5
- •Глава 2. Элементная база микроЭвм. Микропроцессоры ...................... 18
- •Глава 3. Элементная база микроЭвм. Микропроцессорные семейства бис ............................................................................................................................ 81
- •Глава 4. Магистрально-модульная организация микроЭвм ……………108
- •Глава 5. Аппаратура микроЭвм ............. ……………………………….148
- •Глава 6. Программное обеспечение микроЭвм ........................................187
4.2. Магистрали типа Multibus
Первоначально магистраль Multibus была разработана фирмой Intel для своих изделий на базе 8-разрядного МП S080. Затем, в связи с появлением 16-разрядных МП класса 8086/8088, магистраль модифицировалась и под названием Multibus I и другими именами, в различных модификациях и с различными уровнями стандартизации (см. табл. 4.2 и 4.5 П.201) стала доминировать во всем мире.
Таблица 4.5. Системные магистрали типа Multibus I
|
||||
Характеристика |
Multibus Р-796 |
BUS-l |
И41 CM ЭВМ |
ИК-l КТС ЛИУС |
Стандартизация |
IEEE |
IEC |
ОСТ СССР |
ОСТ СССР |
Линии адреса данных |
20 16 |
20; 24 16 |
16; 20 16 |
19 8 |
Тип платы |
Фирменный стандарт |
Европлата 2 |
Европлата 3 |
Европлата 2 |
Разъем |
Ножевой |
Накладной С96 96 |
Накладной СНП 59 |
Ножевой
|
Количество контактов |
86 |
96 |
96 |
72 |
Переход на более мощные 16- и 32-разрядные МП заставил разработчиков заново пересмотреть спецификации интерфейса. В 1984 году была предложена система Multibus II, ориентированная на 32-разрядные средства МпВТ (табл. 4.3). Multibus II существенно отличается от своей предшественницы и пока еще не достигла такого же уровня стандартизации и распространения. К магистралям типа Multibus можно отнести и внутриплатную системную магистраль PC-bus, поддерживающую МП 8088 в ПЭВМ фирмы IBM.
Магистраль Multibus I. Приведенное ниже описание в основном соответствует стандарту IEEE 796, выполнено по [1.20, 3.7]. Будем придерживаться 16-ричной нумерации сигналов в шинах, знак * после обозначения говорит о том, что активный уровень сигнала низкий. Магистраль содержит следующие шины и линии (табл. 4.6).
Шина адреса состоит из 20 линий ADR13*— ADRO* и линии BHEN*. По линиям ADR* от ведущего устройства передается код адреса ячейки памяти или порта (регистра) ввода-вывода. Шина позволяет адресовать 1 Мбайт памяти или 64 К портов ввода-вывода. Младший разряд шины ADRO*, старший разряд адреса порта ADRF*, старший разряд адреса памяти — ADR13*. Предусмотрена возможность расширения адреса с помощью линий ADR 17*— ADR 14* на дополнительном (необязательном) разъеме магистрали. Сигнал BHEN* разрешает передачу старшего байта 16-разрядного слова. Совместное действие сигналов ADRO* и BHEN* аналогично сигналам Ад и ВНЕ МП 8086 (см. рис. 2.9). В изделиях фирмы Intel сигналы адреса формируются с помощью буферных регистров типа 8283/8282 с трехстабильным выходом, как показано на рис. 4.4. Включать (переводить из третьего состояния) и выдавать код адреса на шину может только модуль, получивший право быть ведущим.
Шина данных DATE*—DATO* обеспечивает двунаправленную передачу 8-разрядных и 16-разрядных кодов между ведущим и ведомым модулями. Младший разряд шины DATO* старший разряд байта DAT7*, старший разряд слова DATF*. Достаточно простая схема буферизации старшего байта позволяет легко связывать 8-и 16-разрядные модули в любой комбинации. Рекомендуется подключаться к линиям данных с помощью драйверов (формирователей) типа 8287/8288 (см. рис. 4.4), поддерживающих третье состояние, прием и выдачу кодов. Включать шину данных (переводить из третьего состояния) может только модуль, получивший право быть ведущим. Информацию на шину может выдавать и ведущий, и ведомый модуль, однако ведомый — только по соответствующим управляющим сигналам ведущего.
Шина управления содержит несколько групп линий (подшин), выполняющих родственные функции: общее управление магистралью, арбитраж, управление операцией, управление прерыванием. К подшине общего управления магистралью относятся:
CCLK*— постоянный синхросигнал магистрали. Может использоваться любым модулем для любых целей. Минимальный период 100 не, длительность импульса 0,35—0,65 периода;
BCLK*— управляемый синхросигнал магистрали. Используется для синхронизации схем передачи управления магистралью (по спадающему фронту). Минимальный период 100 не, длительность импульса 0,35—0,65 периода. Сигнал может формироваться одним из модулей, подключенных к магистрали, необязательно синхронно с CCLK*. При отладке BCLK* можно замедлять, приостанавливать или посылать одиночные импульсы;
Таблица 4.6. Сигналы мгжстрали Multibus I
|
|||
Шина/сигналы |
Обозначение |
Количество |
Примечание |
Шина адреса |
|
|
|
Линии адреса |
ADR13*—ADR0* |
20 |
Однонаправленные линии, три состояния |
разрешение старшего байта |
BHEN* |
1 |
Однонаправленная линия, три состояния |
Шина данных |
DATF3—DAT0* |
16 |
Двунаправленные линии, три состояния |
Шина управления |
|
|
|
Запись в память |
MWTC* |
1 |
Три состояния |
Чтение из памяти |
MRDC* |
1 |
Три состояния |
Вывод |
IOWC* |
1 |
Три состояния |
Ввод |
IORC* |
1 |
Три состояния |
подтверждение передачи |
XACK* |
1 |
Открытый коллектор |
запрет обращения к ОЗУ |
INH1* |
1
|
Три состояния |
запрет обращения к ПЗУ |
INH2* |
2
|
Три состояния |
сброс (инициализация) |
INIT* |
1 |
Открытый коллектор |
центральный синхросигнал |
CCLK* |
1 |
Основной синхросигнал |
синхросигнал |
BCLK* |
1 |
Управляющий сигнал |
шина занята |
BUSY* |
1 |
Открытый коллектор |
Запрос шины |
BREQ* |
1 |
|
общий запрос шины |
CBRQ* |
1 |
Открытый коллектор |
вход приоритета |
BPRN* |
1 |
|
выход приоритета |
BPRO* |
1 |
|
запросы прерывания |
INТ7*—INTO* |
8 |
|
подтверждение прерывания |
INTA* |
1
|
Открытый коллектор |
Шина питания |
|
|
|
питание +5В |
+5V |
8 |
|
+12 В |
+12V |
2 |
|
-12В |
-12V |
2 |
|
Общий |
GND |
8 |
|
INIT*— сигнал инициализации (сброса) системы. По активному (низкому) уровню сигнала все модули, подключенные к магистрали, должны перейти в некоторое заранее оговоренное начальное состояние. Несколько модулей и/или внешних устройств могут формировать сигнал INIT* с помощью схем с открытым коллектором.
Подшина арбитража включает следующие линии:
BUSY*— линия передачи сигнала занятости магистрали. Активный низкий уровень сигнала указывает, что магистраль отдана одному из ведущих модулей. Все остальные модули не имеют права управлять магистралью. Сигнал формируется схемами с открытым коллектором и ведущий модуль должен поддерживаться его низким, пока он управляет магистралью;
CBRQ*— линия передачи сигнала общего запроса. Активный низкий уровень сигнализирует, что некоторый модуль или модули желают получить управление магистралью для выполнения обмена. Сигнал формируется схемами с открытым коллектором, и любой модуль, которому необходима магистраль, должен поддерживать его низким;
BREQ*— линия передачи сигнала запроса. Активный низкий уровень сигнала свидетельствует о том, что модуль запрашивает право управлять магистралью;
BPRN*— входная линия цепочки арбитража. Активный низкий уровень сигнала индицирует, что нет ни одного модуля с большим приоритетом, требующего магистраль. Если хотя бы один такой модуль есть, то BPRN* находится в высоком состоянии.
BPRO*— выходная линия цепочки арбитража. Активный уровень низкий. Низкий уровень устанавливается модулем, если сигнал BPRN* в низком состоянии и сам модуль не требует магистрали. Если модуль пытается захватить магистраль или любой другой модуль с большим приоритетом требует ее (сигнал BPRN* высокий), то и BPRO* переводится в высокое состояние.
Изменение состояний сигналов BREQ*, CBRQ*, BUSY* должно происходить строго синхронно со спадающим фронтом сигнала BCLK*. Для формирования сигналов рекомендуется использовать БИС арбитра шины 8289 (см. рис. 4.4). У ведомых модулей BPRO* должен быть закорочен со входом BPRN*.
Подшина управления операцией состоит из следующих линий:
MWTC*— передачи сигнала записи в запоминающее устройство. Активный уровень сигнала низкий. Сигнал индицирует, что ведущий модуль выставил информацию на шину данных и код адреса— на шину адреса. По низкому уровню сигнала MWTC* код с линий данных должен быть записан в ячейку ЗУ с соответствующим адресом;
IOWC*— передачи сигнала записи в порт ввода-вывода (вывод). Активный уровень сигнала низкий. Сигнал показывает, что ведущий модуль выставил на шину ADR* код адреса порта, а на шину данных — информационный код. По низкому уровню сигнала IOWC* код с линий данных должен быть записан в соответствующий порт вывода;
MRDC*— передачи сигнала чтения из запоминающего устройства. Активный уровень низкий. Сигнал указывает, что ведущий модуль выставил на шину ADR* код адреса ячейки запоминающего устройства, а линии данных настроены на прием информации. По низкому уровню сигнала MRDC* ведомый модуль ЗУ должен считать информацию из соответствующей ячейки памяти и выставить код на шину данных;
IORC*— передачи сигнала чтения из порта ввода-вывода (ввод). Сигнал индицирует, что ведущее устройство выставило на шину адреса код адреса порта ввода, а линии данных настроены на прием информации. По низкому уровню сигнала IORC* ведомый модуль (контролер ввода-вывода) должен выбрать информацию из соответствующего порта и выставить код на линии данных. Перечисленные четыре сигнала управления операцией должны формироваться модулем, ставшим ведущим. Только он имеет право включить (перевести из третьего состояния) эти линии, как и линии адреса и данных и формировать на них соответствующие уровни сигналов. Для управления линиями рекомендуется использовать контроллер шины Multibus типа 8286 (см. рис. 4.4);
ХАСК*— передачи сигнала подтверждения (завершения) операции. Активный уровень сигнала низкий. Сигнал сообщает ведущему модулю, что ведомый завершил требуемую операцию, то есть принял код данных в операциях записи (вывода) или установил код на линиях данных в операциях чтения (ввода). Сигнал должен формироваться схемами с открытым коллектором, управлять линией может любой модуль;
INH1*— передает сигнал запрета обращения к оперативному ЗУ. Этот сигнал применяется, если некоторые адреса одновременно используются и ОЗУ, и ПЗУ (или УВВ). При появлении низкого уровня на линии INH1* ведомыми должны становиться модули ПЗУ (или УВВ), а не ОЗУ, конечно, если установлен соответствующий адрес. Сигнал формируется только ведущим модулем;
INH2*— передает сигнал запрета обращения к ПЗУ. Выполняет функцию, аналогичную INH1*, но по отношению к модулям ПЗУ. Использование этой линии позволяет ПЗУ и портам ввода-вывода иметь одинаковые адреса.
Подшина управления прерыванием включает линии:
INT7*— INTQ*— передачи сигналов запросов на прерывания. Сигналы запросов должны формироваться схемами с открытым коллектором, активный уровень сигнала низкий. Высшим приоритетом обладает сигнал на линии INTO*, низшим — на линии INT7*;
INTA*— передачи сигнала подтверждения прерывания. Активный уровень низкий. Сигнал формируется модулем, принявшим запрос на прерывание. Выполняет функции сигнала MRDC* (чтение) при обработке запроса для чтения вектора прерывания.
Шина питания обеспечивает модули питающими напряжениями 4- 5В, +12В, -12 В по отношению к общей линии GND («Земля»). Для увеличения подводимой мощности напряжение + 5 В и GND разведены по 8 линиям, а напряжения 4-12 В и -12 В по 2-м линиям.
Итак, магистраль на основном разъеме имеет 20 линий адреса, 16 линий данных, 25 линий управления и 20 линий питания. На втором, необязательном разъеме допускаются дополнительные линии адреса (4 разряда), линии организации прерывания при отключении основного питания, линии включения аварийного батарейного питания, ряд дополнительных и резервных линий. Все сигналы магистрали Multibus должны иметь ТТЛ уровни. Стандарт регламентирует также нагрузочные способности и динамические параметры сигналов, конструкцию модулей и каркасов.
Упрощенная схема процессорного модуля на базе МП 8086 с выходом на магистраль Multibus показана на рис. 4.4. Буферные регистры адреса 8283 и драйверы шины данных 8287 управляются сигналами AEN (разрешение адреса) и DEN (разрешение данных), поступающими с арбитра 8289 и контроллера 8286, соответственно. Только когда модуль получает право управлять шиной, арбитр формирует сигнал AEN, который переводит из третьего состояния в активное контроллер 8286 и буфер адреса 8283. Контроллер, в свою очередь, формирует сигнал DEN, включающий драйверы шины данных. Важный момент— пока модуль не имеет доступа к магистрали, выходы схем 8283, 8287, 8286 находятся в третьем состоянии, т. е. модуль отключен от Multibus. Но сам МП тем не менее работает и может выполнять операции над данными, принятыми ранее. Микропроцессор подключен к арбитру и контроллеру своими управляющими выходами Sa—So,которые несут информацию о типе текущего цикла (см. с. 41). Как только МП пытается выполнить некоторую операцию с магистралью (записать или прочитать что-либо), он информирует об этом арбитр и контроллер комбинацией сигналов на линиях статуса Sg—So. Выданный из МП адрес фиксируется в буферных регистрах 8283 сигналом ALE, хотя они находятся в третьем состоянии, данные (в операциях записи) появляются на локальной шине данных. Так как модуль не имеет доступа к магистрали, арбитр своим сигналом AEN через БИС генератора тактовых сигналов 8284 снимает сигнал готовности со входа RDY МП, чем заставляет его перейти в состояние ожидания. Арбитр же начинает действия по захвату магистрали для выполнения операции;» затребованной микропроцессором.
Магистраль Multibus поддерживает как параллельный, так и последовательный способ арбитража. Синхронизация передачи управления между устройствами осуществляется сигналом BCLK* (спадающим фронтом), который поступает в БИС арбитров 8289 всех модулей. 'При последовательном способе создается приоритетная цепочка (см. рис. 4.3, б) с помощью внемодульных соединений входов BPRN* с выходами BPRO*. Так как время распространения сигнала по цепочке ограничено одним тактом BCLK*, то ограничено и количество модулей в цепочке. При частоте BCLK* 10 МГц в цепочку можно включить только три модуля. Увеличить это число можно только снизив частоту BCLK*. Параллельный способ обеспечивает арбитраж 16 модулей. Он иллюстрируется рис. 4.5, где три процессорных модуля оспорят» за магистраль. Выходы запроса магистрали BREQ* каждого модуля подключены к входам специальной схемы контроллера магистрали. А его выходы связаны со входами BPRN* разрешения захвата. Контроллер магистрали в простейшем варианте можно построить на БИС шифратора и дешифратора, реализующих выбранную стратегию арбитража. Ясно, что при любой комбинации сигналов, на входах, только на одном выходе контроллера может быть низкий уровень, разрешающий захват магистрали. Переходной процесс в контроллере должен завершаться за один такт BCLK*. Примем в нашем примере, что высший приоритет отдан первому модулю, а низший — третьему.
В начальный момент времени ни один модуль магистрали не требует (CBRQ* высокий) и ею не владеет (BUSY* высокий), как это показано на рис. 4.5,6. По спадающему фронту BCLK* второй модуль выставляет запрос на магистраль ( становится низким) и переводит линию CBRQ* в низкое состояние. В первом такте контроллер решает задачу арбитража, и так как, кроме второго модуля, претендентов нет, формирует низкий уровень на входе . Таким образом, арбитр второго модуля узнает, что он может стать ведущим. Магистраль свободна, арбитр переводит BUSY* в низкое состояние, CBRQ* в высокое, вырабатывает сигнал AEN, сообщая контроллеру, драйверу шины данных и буферному регистру адреса, что можно перейти из третьего состояния в активное (см. рис. 4.4). Этим же сигналом арбитр выводит МП из состояния ожидания. На магистрали начинается выполнение операций под управлением контроллера 8286 второго модуля. Ведущий удерживает магистраль до тех пор, пока ее не запросит модуль с большим приоритетом или она станет ему не нужна и ее запросит модуль с низшим приоритетом. На рис. 4.5,6 показано, что в М-м такте магистраль одновременно запрашивают и первый, и третий модули. Контроллер выбирает наиболее приоритетный — первый, устанавливая в низкое состояние, и — в высокое. Теперь первый модуль должен получить управление шиной. Однако он не может этого сделать, так как второй удерживает BUSY* в низком состоянии. Только полностью завершив очередную операцию обмена, второй модуль снимает BUSY* (такт М + 2), первый модуль становится ведущим и начинает выполнять свои операции с магистралью. Обратите внимание, что CBRQ* остается низким, так как запрос третьего модуля не удовлетворен. И только в К-м такте, когда первый завершит свои операции, управление магистралью будет передано третьему, наименее приоритетному модулю.
Микропроцессор ведущего модуля может закрепить магистраль за собой, сформировав низкий уровень сигнала LOCK (блокировка), по которому арбитр будет удерживать BUSY* низким до отмены блокировки, т. е. программист с помощью префикса LOCK может указать отдельные команды и участки программ, выполнение которых запрещено приостанавливать, даже если магистраль требуется модулю с большим приоритетом.
Получив управление магистралью, ведущий модуль может выполнять четыре основные операции: чтение памяти или порта ввода-вывода и запись в память или в порт ввода-вывода. Временные диаграммы операций показаны на рис. 4.6. Все операции асинхронны по отношению к CCLK* и BCLK*, управляющие сигналы MRDC*, MWTC*, IORC*, IOWC* вырабатываются контроллером 8286 по сигналам статуса S2,—S0. Длительность сигнала составляет не менее 100 нc. Код адреса устанавливается на адресных линиях до начала управляющего сигнала не менее чем за 50 не и удерживается 50 не после его снятия, т. е. длительность истинного адреса на шине должна быть не менее 200 нc. Также формируется и код данных в операциях записи. Готовность ведомого модуля принять данные подтверждается
низким уровнем сигнала ХАСК*. Если он остается высоким, МП ведущего модуля переходит в состояние ожидания, которое сохраняется, пока от ведомого не появится низкий уровень сигнала ХАСК*. Только после этого с задержкой 50 не ведущий модуль снимает сигнал записи и еще через 50 не — адрес и данные. При чтении ведомый также должен подтвердить свою готовность низким уровнем сигнала ХАСК* и одновременно выставить код данных на линиях DATF*—DATO*. Если более 50 не нет подтверждения готовности, ведущий модуль переходит в состояние ожидания. Данные
от ведомого должны быть стабильны не менее 100 не для правильного приема их ведущим модулем. Минимальный период обмена 16-разрядным кодом в 200 не соответствует максимальной скорости 10 Мбайт/с, однако средняя скорость падает до 2—3 Мбайт/с из-за необходимости арбитража.
В стандарте Multibus I предусмотрено два способа организации прерываний: невекторный и векторный. В первом случае обработка запросов осуществляется только в одном модуле, запросы на прерывания в который от других модулей и, может быть, внешних схем поступают по линиям INT7*—INTO*. Линии запросов подключаются к контроллеру прерываний, например, типа 8259А, как показано на рис. 4.4. Последний определяет наиболее приоритетный запрос и посылает сигнал прерывания в МП 8086 по входу INT. Обработка запроса на маскируемое прерывание в МП описана в параграфе 2.2. Количество запросов ограничено количеством линий INT* и не может быть больше 8.При векторной организации в каждом модуле, генерирующем прерывания, предусматривается свой контроллер, подключенный к основному через линии INT*. В цикле подтверждения прерывания по нижнему уровню INTA* теперь уже этот контроллер выставляет на шину данных код — вектор прерывания, определяющий вход в таблицу адресов программ обслуживания запросов. Процедура векторного прерывания достаточно подробно описана в [1.131.
Система Multibus II. Система Multibus II [2.10, 3.7] предложена фирмой Intel для использования в мультимикропроцессорных вычислительных устройствах на базе 16- и 32-разрядных МП. Архитектура системы иллюстрируется рис. 4.7. Она включает три основные и три дополнительные магистрали, основные характеристики которых приведены в табл. 4.7. Многомагистральность Multibus II призвана обеспечить большую гибкость системы, высокую ее надежность, повышенную производительность.
Основная магистраль системы — параллельная системная магистраль iPSB (Parallel System Bus) предназначена для организации обмена данными с производительностью до 40 Мбайт/с при максимальной физической длине линий не более 427 мм. Магистраль позволяет подключать до 20 модулей, причем обязательным является центральный обслуживающий модуль (CSM, central service modul), выполняющий функции общие для всех устройств.
Магистраль состоит из 5 шин (групп сигналов). Адреса и данные передаются по 32-разрядной мультиплексируемой шине адреса ;
данных A/D* Возможны обмен 8-, 16-, 24- и 32-разрядными кодами и адресация 4 Гбайт памяти. Введено четыре линии паритета PAR* (контроля по модулю 2) каждого байта шины. Семь линий центрального управления, которые возбуждаются модулем CSM, обеспечивают инициализацию и синхронизацию системы и защиту от отказа питания. Арбитраж магистрали выполняется с помощью сигналов запроса шины и шести сигналов определения приоритета ARB*. Десять сигналов управления обменом SC9—SC0* используются
Таблица 4.7. Основные характеристики магистралей системы |
||||
Магистрали |
Ширина шины данных (бит) |
Максимальная Скорость передачи, Мбайт/с |
Тип |
Функциональные назначения |
iPSB |
32 |
40 |
Синхронная мультиплексная |
Параллельная системная шина |
iSBX |
32 |
48 |
Синхронная немультиплексная |
Быстролокальная шина обмена с памятью |
iSBX |
16 |
10 |
Асинхронная немультиплексная |
Локальная шина расширения ввода-вывода |
MDMA |
16 |
8 |
Асинхронная мультиплексная |
Удаленный прямой доступ к памяти |
iSSB |
1 |
2 |
Протокол CSMA/CD |
Последовательная системная шина |
BitBus |
1 |
2,4 |
Протокол типа SDLC |
Локальная шина связи с модулями промышленного телеуправления |
ведущим и ведомым модулями для передачи команд, подтверждений и сообщений об ошибках. Специальные сигналы исключающего цикла оповещают подключенные к магистрали модули о возникших ошибках паритета (на линиях A/D* и/или SC*) или недопустимо длительного «молчания» модуля (ошибка тайм-аута — time-out). Модули обеспечиваются питающими напряжениями +5; +12; -12 В, предусмотрено также аварийное питание + 5 В.
В магистрали iPSB, как собственно и во всей системе Multibus II выделяются четыре адресных пространства. Пространство памяти используется для доступа к внутренним запоминающим устройствам (ОЗУ, ПЗУ). К этому пространству возможен доступ и по магистралям iLBX, MDMA. Адрес в пространстве памяти 32-разрядный (на iLBX и MDMA — 24-разрядный). В адресном пространстве выполняются две операции — чтения и записи. При последовательном доступе ведущий модуль может автоматически наращивать адреса на 1, 2 или 4 байта. Пространство ввода-вывода предназначено для доступа к внешним ЗУ и другой периферии. Оно поддерживается также магистралями iSBX и MDMA. В пространстве возможны операции ввода и вывода, данные передаются по 8, 16, 24 или 32 бита. Адрес в пространстве ввода-вывода 16-разрядный, при последовательном доступе адрес не наращивается.
Пространство взаимосвязи предназначено для инициализации системы, установления ее конфигурации и тестирования работоспособности. Возможен доступ и по магистрали iLBX. Каждому модулю в пространстве взаимосвязи присваивается уникальный номер — идентификатор места платы в конструктиве магистрали. Для iPSB номер может изменяться от 00 до 19, для iLBX — от 20 до 29. Модуль с номером 00 выполняет функции центрального обслуживающего модуля CSM. Сам адрес взаимосвязи состоит из двух полей: 5-разрядного поля номера модуля и 9-разрядного номера регистра в модуле. Следовательно в пространстве взаимосвязи предоставляется возможность, во-первых, адресовать модули по их физическому расположению в конструктиве (географическая адресация) и, во-вторых, в каждом модуле адресовать до 512 регистров. Регистры с адресами 0 и 1 имеют специальное назначение, они несут информацию о фирме-изготовителе и о типе модуля. Назначение остальных 510 регистров определяется разработчиком, причем они могут использоваться как для записи, так и для чтения. Например, в модуле ОЗУ в такой регистр через пространство взаимосвязи записывается начальный адрес модуля в пространстве памяти. Или, при подаче питания, модуль автоматически выполняет самотестирование и результаты записывает в один из регистров взаимосвязи.
Пространство сообщений поддерживает межпроцессорные взаимодействия в многопроцессорных системах. К пространству возможен доступ и по магистрали iSSB. Каждому процессорному модулю присваиваются уникальный 8-разрядный адрес, который используется для идентификации сообщений. В пространстве допускается только операция передачи сообщения от одного модуля к другому или от одного — всем модулям (широковещательная адресация). Собственно, сообщение — это один или несколько пакетов данных от 4 до 32 байт. Причем первый байт пакета всегда содержит адрес источника сообщения, а второй байт — адрес приемника. Если адрес приемника равен FF16, то сообщение передается всем модулям. Третий и четвертый байты определяют тип сообщения и его спецификации. Назначение остальных байтов пакета зависит от типа сообщения. Предусмотрено два класса сообщений: незатребованные и затребованные. Незатребованные сообщения — это виртуальные прерывания, сигнализирующие о некотором событии, момент наступления которого заранее неизвестен. Затребованные сообщения служат для передачи массивов данных между процессорными модулями, причем одно сообщение может потребовать нескольких 32-байтных пакетов.
Магистраль iPSB полностью синхронна, так как любое изменение любого сигнала должно происходить но спадающему фронту синхросигнала BCLK*. Максимальная частота BCLK*—10 МГц. Протокол обмена данными по iPSB требует от модулей выполнения трех циклов: арбитража, передачи и исключающего цикла. В первом цикле модули, взаимодействуя между собой, решают, кто станет ведущим. Для этого каждый желающий выставляет на линии определения приоритета ARB5*— ARB0* свой арбитражный номер, присвоенный ему системой. Вопрос решается методом параллельного соревнования с помощью специальной комбинационной схемы, расположенной в каждом модуле. В результате переходного процесса во всех комбинационных схемах арбитража на линиях приоритета устанавливается наиболее приоритетный номер, и модуль, чей номер получил подтверждение, становится ведущим. Получив управление магистралью, ведущий модуль начинает цикл передачи, который распадается на ряд фаз. Первая фаза цикла передачи — всегда фаза запроса, в которой ведущий выставляет на шину адреса/данных код адреса и на шину управления обменом — сигналы управления. Здесь сигналы SC3*, SC2* определяют разрядность передаваемых данных, сигналы SC5*, SC4* задают адресное пространство, сигнал SC6* указывает направление передачи (запись или чтение). Сама фаза запроса сопровождается низким уровнем на линии SCO*. Запрос длится один такт, затем наступает фаза ответа. Назначение линий SC7*—SC2* в этой фазе изменяется, а на линии SCO* поддерживается высокий уровень. Фаза ответа может содержать один или несколько тактов. Во-первых, проверяется наличие готовности как ведущего, так и ведомого модулей (низкий уровень на линиях SC4*, SC3*). Если готовности нет, то такты синхронизации пропускаются. При подтверждении готовности выполняется один или несколько, в случае последовательного доступа, тактов обмена данными. В фазах запроса и ответа линии SC9*, SC8* используются для контроля по паритету кодов на линиях SC3*—SCO* и SC7*— SC4* соответственно. Кроме того, в фазе ответа линии SC7*—SC5* несут информацию о наличии ошибки и ее типе. Последний такт обмена ведущий модуль сопровождает низким уровнем на линии SC2*, сообщая остальным модулям, что в следующем такте он освобождает магистраль.
Если модуль, участвующий в цикле передачи, обнаружил ошибку паритета на шинах адреса/данных или управления, он устанавливает низкий уровень на линии BUSER* (ошибка на шине). Ведущий модуль прекращает выполнение обмена, а центральный обслуживающий модуль CSM переводит магистраль в исключающий цикл, в котором определенное время она бездействует. Затем работа возобновляется, модули начинают арбитраж и циклы передачи. Исключающий цикл может быть также вызван ошибкой тайм-аута, если сигналы подтверждения готовности не изменились в течение 1 мс. После включения питания или перезапуска системы центральный обслуживающий модуль выполняет специальные функции по инициализации. Особенностью iPSB является задание в этот период каждому подключенному модулю его географического адреса взаимосвязи и арбитражного номера. Для выбора конкретного модуля CSM последовательно возбуждает линии LATHn*, индивидуальные для каждого физического места магистрали. Сам номер передается из CSM в модуль по шине ARB4*— ARBO*. Причем, если сигнал ARB5*, низкий, то передается географический адрес, если ARB5* высокий — арбитражный номер. И адрес, и номер должны быть запомнены модулями в специальных регистрах и использоваться ими при операциях в пространстве взаимосвязи и арбитраже.
Последовательная системная магистраль iSSB (Serial System Bus) no существу является последовательным вариантом iPSB. Она содержит только двухпроводную линию, длиной до 10 м, к которой можно подключить не более 32 модулей. Первые двадцать из этих модулей совпадают с модулями iPSB. Для передачи используется протокол, основанный на принципе множественного доступа с прослушиванием несущей частоты. Основное назначение магистрали — передача незатребованных сообщений между модулями, работа с другими пространствами невозможна. Локальная магистраль iLBX (Lockal Bus) имеет наивысшую скорость передачи данных (48 Мбайт/с) в системе и поддерживает быстрый доступ процессора к внутренним ЗУ, не занимая при этом iPSB. Магистраль локальна для каждого процессорного модуля, т. е., в вычислительной системе может быть столько магистралей iLBX, сколько установлено процессорных модулей. По iLBX можно получить доступ к пространству взаимосвязи и пространству памяти.
Три дополнительные магистрали взяты из предшествующих разработок фирмы. Канал MDMA обеспечивает независимое подключение к процессорным модулям быстрых устройств ввода-вывода. Интерфейс iSBX предназначен для подключения к процессорному модулю так называемых мультимодулей (multimodule board), физически располагающихся непосредственно на плате основного модуля.
Мультимодули могут иметь самое разнообразное назначение: арифметические расширители, расширители ввода-вывода, контроллеры устройств ввода-вывода и тому подобное. Через муль-тимодуль возможен обмен и по последовательной магистрали ввода-вывода BITBUS, ориентированной на подключение устройств промышленного назначения, образующих системы распределенного управления.
Все магистрали Multibus II могут работать автономно, в результате суммарная скорость передачи данных в системе превышает 100 Мбайт/с.
Магистраль PC-bus. Внутриплатная системная магистраль PC-bus используется фирмой IBM в своих персональных компьютерах. Магистраль выполнена в виде набора печатных проводников на единой системной плате с несколькими разъемами расширения, к которым подключаются дополнительные модули. Перечень линий PC-bus, их назначение приведены в табл. 4.8 [1.29]. Двадцатиразрядная шина адреса обеспечивает доступ к 1 Мбайт памяти и 512 устройствам ввода-вывода. Появление адреса на шине стробируется сигналом ALE, который индицирует начало очередного цикла обмена. Шина данных восьмиразрядная, так как ПЭВМ строятся на МП Intel 8088 (см. параграф 2.2). Сигналы общего управления, управления обменом и каналом прямого доступа выполняют общепринятые функции. Уровень на линии AEN разделяет процессорные циклы обмена (низкий) и обмен по каналу прямого доступа (высокий).
Все основные «электронные» устройства ПЭВМ (процессор, ОЗУ, ПЗУ, контроллеры прерываний и прямого доступа) выполнены на системной плате. Модули расширения подключаются к магистрали с помощью 62-контактного ножевого разъема, ответная часть которого также установлена на системной плате. Несмотря на то, что на разъемах расширения все сигналы магистрали доступны, расширить память дополнительными модулями или поставить дополнительный контроллер прямого доступа затруднительно. Заняты также четыре (из шести) линии запроса на прерывание. Фактически модули расширения могут быть построены только как ведомые контроллеры устройств ввода-вывода с возможностью обращения к системному контроллеру прямого доступа [2.4]. Временная диаграмма сигналов магистрали в циклах ввода и вывода показана на рис. 4.8. Работа магистрали синхронизируется сигналом CLK с частотой 4.77 МГц, который формируется делением на три основной частоты 14,31818 МГц. Для ввода-вывода требуется не менее 5 тактов CLK, т. е. скорость передачи не может быть более 0,9 Мбайт/с. В первом такте по сигналу ALE на шине адреса появляется адрес порта ввода-вывода. Сигналы записи IOW или чтения IOR формируются во втором такте с задержкой 10—35 не. При записи во втором такте появляется и код данных на шине данных. Модуль должен принять байт до завершения пятого такта. Если он не успевает это сделать, ему необходимо снять сигнал готовности (на рисунке не показано), и МП перейдет в состояние ожидания. В цикле ч гения модуль должен выставить байт данных на шину не позже, чем за 42 не до начала пятого такта и поддерживать его стабильным не менее 14 не после начала такта. За этот интервал МП принимает байт во внутренние регистры.
Так как оперативная память в ПЭВМ фирмы IBM выполнена на динамических ЗУПВ, нормальное функционирование магистрали прерывается циклами регенерации через каждые 72 такта. Регенерация занимает 5 тактов, т. е. «съедает» 6,5 % пропускной способности магистрали.
Таблица 4.8. Сигналы магистрали PC-bus |
|||
Шина/сигналы |
Обозначение |
Коли чество |
Назначение |
Шина |
|
|
|
адреса |
А19-А0 |
20 |
Линия передачи адреса |
данных |
D7-D0 |
8 |
Линии передачи данных |
Управление обменом |
|
|
|
строб адреса
|
ALE
|
1
|
Сигнал стробирования действительного адреса на шине адреса |
запись |
|
1 |
Сигнал сопровождает выдачу данных на шину данных для записи в память |
чтение |
|
1 |
Сигнал выдачи данных из памяти на шину данных |
вывод |
|
1 |
Сигнал сопровождает выдачу данных на шину данных для записи в УВВ |
ввод |
|
1 |
Сигнал выдачи данных из УВВ на шину данных |
готовность |
I/OCHRDY |
1
|
Сигнал требования удлинить цикл обмена |
ошибка |
|
1 |
Сигнал процессору об ошибках в памяти или УВВ |
Управление каналом прямого доступа (ПДП) |
|
|
|
Запрос канала |
DRQ3-DRQ1, |
3 |
Запрос от внешнего устройства на передачу по каналу ПДП |
подтверждение запроса |
DACK3-DACK0 |
4 |
Подтверждение приема запроса на передачу по каналу ПДП |
прямой доступ |
AEN |
1 |
Сигнал обмена по каналу ПДП (передачей управляет контролер ПДП) |
завершение |
T/C |
1
|
Сигнал завершения обмена по каналу ПДП |
Общее управление |
|
|
|
генератор |
OSC |
1 |
Синхросигнал высокой частоты (14.31818 МГц) |
синхросигнал |
CLK |
1 |
Сигнал системной синхронизации (4.77 МГц) |
сброс |
RESET |
1 |
Сигнал установки модулей системы в исходное состояние |
Запрос прерывания |
IRQ7-IRQ2 |
6 |
Линии передачи запросов на прерывания |
Питание |
|
|
|
напряжение +5В |
+5V |
2 |
|
-5В |
-5V |
1 |
|
+12B |
+12V |
1 |
|
-12В |
-12V |
1 |
|
Общий сигнал |
GND |
3 |
|
Резервная линия |
|
1 |
|
Рис. 4.8. Временная диаграмма работы магистрали PC-bus