mirror of
https://github.com/MPSU/APS.git
synced 2025-09-15 09:10:10 +00:00
339 lines
31 KiB
Markdown
339 lines
31 KiB
Markdown
# Лекция 19. Шины.
|
||
|
||
- [Лекция 19. Шины.](#лекция-19-шины)
|
||
- [Системы соединений](#системы-соединений)
|
||
- [Интерфейс](#интерфейс)
|
||
- [Шина](#шина)
|
||
- [Терминология](#терминология)
|
||
- [Обмен информации](#обмен-информации)
|
||
- [Типы шин](#типы-шин)
|
||
- [Иерархия шин](#иерархия-шин)
|
||
- [Арбитраж шин](#арбитраж-шин)
|
||
- [Алгоритмы арбитража](#алгоритмы-арбитража)
|
||
- [Схемы арбитража](#схемы-арбитража)
|
||
- [Протоколы шин](#протоколы-шин)
|
||
- [Повышение эффективности шин](#повышение-эффективности-шин)
|
||
- [Увеличение полосы пропускания](#увеличение-полосы-пропускания)
|
||
- [Стандартизация шин](#стандартизация-шин)
|
||
- [Последовательный синхронный обмен](#последовательный-синхронный-обмен)
|
||
- [Последовательный асинхронный обмен](#последовательный-асинхронный-обмен)
|
||
- [Основные материалы лекции](#основные-материалы-лекции)
|
||
|
||
## Системы соединений
|
||
|
||
**Система** — это объединение нескольких элементов для решения общей задачи.
|
||
Система соединений должна обеспечивать обмен информации между:
|
||
|
||
- процессором и памятью;
|
||
- процессором и модулями ввода\вывода;
|
||
- памятью и модулями ввода\вывода.
|
||
|
||
Как же воедино соединить элементы системы?
|
||
|
||
Нужно использовать несколько шин, каждая из которых соединяется с разными элементами системы. Например, это необходимо потому что ЦП обменивается информацией с памятью в гигабитах в секунду, а с клавиатурой в байтах в секунду, поэтому неразумно помещать их на одну шину.
|
||
|
||

|
||
|
||
_Рис. 1. Идеальный вариант системы соединений._
|
||
|
||
### Интерфейс
|
||
|
||
Интерфейс — это совокупность механических, электрических (аппаратных) и программных средств, с помощью которых компоненты системы объединяются для решения задачи обмена информации.
|
||
Существуют три категории интерфейсов:
|
||
|
||
- машинные (решают задачу соединения процессора с другими устройствами);
|
||
- системно-модульные (унифицируют сопряжение модулей, предназначенных для работы в системе, что и определяет их особенности);
|
||
- системно-приборные (осуществляют объединение в систему модулей, которые могут работать автономно и для которых характерны широкие функциональные возможности).
|
||
|
||
### Шина
|
||
|
||
**Шина** с это группа сигнальных линий, предназначенных для выполнения определенной функции в программно-управляемом процессе передачи данных.
|
||
Чтобы охарактеризовать шину, нужно описать:
|
||
|
||
- совокупность сигнальных линий;
|
||
- физические, механические и электрические шины;
|
||
- используемые сигналы арбитража, состояния, управления, и синхронизации;
|
||
- правила взаимодействия подключённых к шине устройств (протокол шины).
|
||
|
||

|
||
|
||
_Рис. 2. Абстрактное представление модели шины._
|
||
|
||
## Терминология
|
||
|
||
Операции на шине ("bus") называются транзакциями, существует:
|
||
|
||
- транзакция чтения (ввода);
|
||
- транзакция записи (вывода).
|
||
|
||
Одна транзакция — цикл шины (может занимать несколько тактовых импульсов).
|
||
Когда два устройства обмениваются информацией на шине, одно из них должно инициировать обмен и управлять им.
|
||
|
||
Устройство, которое инициирует обмен, называется "Bus master" [main] — любое устройство, способное взять на себя владение шиной и управлять пересылкой данных.
|
||
|
||
"Bus slave" [secondary] (ведомое устройство) — устройство не способное владеть шиной и управлять ей.
|
||
|
||
В любой момент времени на шине может управлять только одно ведущее устройство. Шиной предусматривается процедура допуска управления только одного из претендентов, это называет **арбитраж**.
|
||
|
||
### Обмен информации
|
||
|
||
Существуют три основных обмена информацией:
|
||
|
||
- Обмен по инициативе процессора.
|
||
Микропроцессор формирует запрос для внешнего устройства, затем внешнее устройство сообщает "Подтверждение" на обмен информацией микропроцессору и происходит обмен информацией.
|
||
|
||

|
||
|
||
_Рис. 3. Пример обмена по инициативе процессора._
|
||
|
||
- Обмен по инициативе внешнего устройства.
|
||
Внешнее устройство формирует запрос для микропроцессора, затем микропроцессор сообщает "Подтверждение" на обмен информацией внешнему устройству и происходит обмен информацией. При этом во время обмена ведущее устройство (микропроцессор) управляет всеми процессами.
|
||
|
||

|
||
|
||
_Рис. 4. Пример обмена по инициативе внешнего устройства._
|
||
|
||
- Обмен между внешними устройствами по инициативе одного из них.
|
||
|
||

|
||
|
||
_Рис. 5. Пример обмена внешними устройствами по инициативе одного из них._
|
||
|
||
## Типы шин
|
||
|
||
Шины делятся по целевому назначению:
|
||
|
||
- шины "процессор-память" (которые специализированы для передачи информацией между процессором и памятью);
|
||
|
||

|
||
|
||
_Рис. 6. Пример шины "процессор-память"._
|
||
|
||
- шины ввода-вывода (их особенность заключается в том, что они хорошо стандартизированы и более медленные, потому что ввод-вывод генерирует информацию медленно);
|
||
- системные шины (нужны для объединения элементов систем).
|
||
Системная шина условно состоит из трёх шин: шины данных, адреса и управления.
|
||
- Шина адреса — это шина, по которой выставляются адреса устройства, к которому мы хотим обратиться. Ширина шины данных может быть 32, 64, 128 бит (ширина обычно называется "словом").
|
||
- Шина данных — это шина, по которой передаются данные (адреса ячеек памяти, портов ввода\вывода, регистры процессора и так далее. Может быть выбран диапазон адресов "broadcast" и "broadcall") — 36-40 битов.
|
||
- Шина управления (Control Bus) — шина для передачи управляющей информации и информации о состоянии участвующих в транзакции устройств.
|
||
|
||

|
||
|
||
_Рис. 7. Модель системной шины._
|
||
|
||
Какие сигналы могут быть внутри шины управления:
|
||
|
||
1. Сигналы управления транзакциями (среднее значение сигнальных линий: 2-8) делятся на:
|
||
1. указание типа транзакции (чтение\запись);
|
||
2. указание количества байт и номер байт, если пересылается часть слова;
|
||
3. указание типа адреса выданного на шину;
|
||
2. информация состояния (статус) — для передачи кодов ошибок и состояний (среднее значение сигнальных линий: 1-4).
|
||
3. Линии арбитража — выбор управляющего шиной устройства (среднее значение сигнальных линий: 3-11).
|
||
4. Линии прерывания (среднее значение сигнальных линий: 1-2).
|
||
5. Последовательные локальные сети (среднее значение сигнальных линий: 1-4).
|
||
6. Линии позиционного кода (среднее значение сигнальных линий: 4-5).
|
||
7. Тактирование и синхронизация (среднее значение сигнальных линий: 2-6).
|
||
8. Линии питания и заземления.
|
||
|
||
В некоторых системах применяют мультиплексированную шину адреса/данных для экономии количества линий, из-за чего повышается скорость передачи информации.
|
||
|
||

|
||
|
||
_Рис. 8. Мультиплексируемая шина адреса/данных._
|
||
|
||
## Иерархия шин
|
||
|
||
Существует три основных уровня иерархии шин:
|
||
|
||
- Одноуровневая иерархия:
|
||
В этом уровне иерархии медленные устройства занимают системную шину и она не доступна для центрального процесса и памяти.
|
||
|
||

|
||
|
||
_Рис. 9. Одноуровневая иерархия._
|
||
|
||
- Двухуровневая иерархия:
|
||
В данном типе есть адаптеры, к которым подключаются шины. На системной шине "висят" высокопроизводительные элементы системы, а через адаптеры сгруппированы и подключены более медленные внешние устройства. Главным минусом является то, что если устройствам модуля ввода\вывода нужно обменяться информацией друг с другом — они будут обмениваться через системную шину, а значит будут её занимать.
|
||
|
||

|
||
|
||
_Рис. 10. Двухуровневая иерархия._
|
||
|
||
- Многоуровневая иерархия:
|
||
В этом уровне иерархии существует системная шина для объединения высокопроизводительных элементов, к ней подключен адаптер, который в свою очередь ограничивает другую шину с подключёнными к ней другими адаптерами.
|
||
В таком случае, если устройствам модуля ввода\вывода нужно обменяться информацией друг с другом — они будут делать это в обход системной шине. Когда им надо будет выйти на системную шину они смогут сделать это на высокой скорости, потому что есть адаптер, который будет выполнять задачу буферизации.
|
||
|
||

|
||
|
||
_Рис. 11. Многоуровневая иерархия._
|
||
|
||
## Арбитраж шин
|
||
|
||
### Алгоритмы арбитража
|
||
|
||
Каждому потенциальному 'ведущему' присваивается приоритет, для того чтобы дать устройствам возможно обмениваться информацией:
|
||
|
||
- **Статический приоритет** (за каждым устройством закреплён номер приоритета, чем меньше номер, тем выше приоритет. Проблема заключается в том, что одно устройство может занять шину навсегда и другие устройства не смогут общаться между собой).
|
||
- Динамический приоритет (при повторном использовании шины меняется приоритет).
|
||
Варианты смен приоритета:
|
||
- **Простая циклическая смена приоритетов** (после каждой итерации разыгрывается приоритет и тот, у кого был самый низкий приоритет становится самым высоким).
|
||
|
||

|
||
|
||
_Рис. 12. Распределение приоритетов._
|
||
|
||
- **Циклическая смена приоритетов с учётом последнего запроса** (Rotating Daisy Chain — RDC):
|
||
Допустим, третье устройство "выигрывает" шину, начинает передавать информацию. После "общения" устройство, которое передавало информацию получает самый низкий приоритет.
|
||
- **Смена приоритетов по случайному закону** (RND):
|
||
Приоритеты меняются по закону псевдослучайной последовательности чисел (Псевдослучайная последовательность чисел - это последовательность, которая кажется статистически случайной, несмотря на то, что была получена в результате полностью детерминированного и повторяемого процесса).
|
||
- **Алгоритм наиболее дальнего использования** (LRU):
|
||
Приоритет устройства, которое дольше всего не использовали, постепенно возрастает после каждого арбитража шины.
|
||
- Можно использовать **фиксированный квант времени**.
|
||
Допустим, у нас есть 10 устройств и каждому из устройств даётся момент времени, когда ему надо определиться хочет ли он общаться или нет. Этот цикл происходит до того момента, пока не найдут готового к общению на шине устройства. Однако скорость реакции на запрос шины будет меньше, чем в других реализациях.
|
||
- На основе очереди (FIFO), когда одно устройство заканчивает общение на шине — сразу же начинает общение устройство, которое стоит следующим в очереди. Но FIFO можно легко "забить". Например, пока обрабатываем один запрос ещё 20 других запросов пришло и буфер "забился".
|
||
|
||
### Схемы арбитража
|
||
|
||
Схемы арбитража бывают двух типов:
|
||
|
||
- Централизованный арбитраж (есть устройство, которое называется "арбитр", все устройства подключаются к нему и спрашивают кто из них получит доступ к общению) делится на две категории:
|
||
- Параллельный;
|
||
- Последовательный.
|
||
- Децентрализованный арбитраж ("арбитр" у каждого устройства свой).
|
||
|
||
**Централизованный параллельный арбитраж**.
|
||
|
||
В этой схеме у нас присутствуют ведущие устройства, которые могут занимать шину и могут инициировать обмен информацией. Есть центральный арбитр, решающий кто будет общаться на шине. Каждое устройство соединено с арбитром двумя сигналами — это "запрос шины" и "предоставление шины". Все устройства подключены к общей линии "Шина Занята" (ШЗ), с помощью этой линии все устройства могут видеть свободна ли шина или занята. Задача центрального арбитра заключается в определении устройства с максимальным приоритетом и предоставлении шины этому устройству.
|
||
|
||

|
||
|
||
_Рис. 13. Схема централизованного параллельного арбитража._
|
||
|
||
**Централизованный последовательный арбитраж**.
|
||
В данной реализации приоритеты фиксированы и зависят от того где конкретно подключено устройство. Есть сигнал "Шина Занята" (ШЗ), есть сигнал "запрос шины" и "предоставление шины" от центрального арбитра.
|
||
|
||

|
||
|
||
_Рис. 14. Схема централизованного последовательного арбитража._
|
||
|
||
Для примера рассмотрим ситуацию, когда два устройства одновременно запросили общение на шине ("Ведущий n-2" и "Ведущий 0"). Центральный арбитр видит, что шина не занята и даёт сигнал первому устройству.
|
||
|
||

|
||
|
||
_Рис. 15. Предоставление сигнала на пользование шиной устройству "Ведущий n-1"._
|
||
|
||
Первое устройство ("Ведущий n-1") получило этот сигнал, но так как ему не нужно общаться на шине — оно передаёт его следующему устройству ("Ведущий n-2")
|
||
|
||

|
||
|
||
_Рис. 16. Передача сигнала устройству "Ведущий n-2"._
|
||
|
||
После этого устройство "Ведущий n-2" не распространяет этот сигнал дальше и занимает шину.
|
||
|
||

|
||
|
||
_Рис. 17. Устройство "Ведущий n-2" заняло шину для общения._
|
||
|
||
**Децентрализованный арбитраж**.
|
||
В данной реализации все устройства связаны друг с другом проводами. Когда какое-то из устройств хочет занять шину — оно видит сигналы от других устройств. Таким образом, перед тем как выставить свой запрос, устройство смотрит нет ли запросов с большим приоритетом. Если есть, то устройство не отправляет свои запросы, так как это не имеет смысла.
|
||
|
||

|
||
|
||
_Рис. 18. Схема децентрализованного арбитража._
|
||
|
||
### Протоколы шин
|
||
|
||
Протоколы шин бывают двух типов:
|
||
|
||
- синхронные (когда происходит синхроимпульс, тогда происходят и какие-то события на шине);
|
||
|
||

|
||
|
||
_Рис. 19. Схема синхронного протокола шин._
|
||
|
||
- асинхронные (как только устройство способно отреагировать — оно сразу же реагирует).
|
||
|
||

|
||
|
||
_Рис. 20. Схема асинхронного протокола шин._
|
||
|
||
## Повышение эффективности шин
|
||
|
||
Методы повышения эффективности шин:
|
||
|
||
- Пакетный режим пересылки информации (передаётся не одна порция данных, а сразу несколько порций данных по нескольким адресам).
|
||
|
||

|
||
|
||
_Рис. 21. Схема пакетного режима пересылки информации._
|
||
|
||
- Конвейеризация транзакций (предназначена для высокоскоростных шин).
|
||
|
||

|
||
|
||
_Рис. 22. Схема конвейеризации транзакций._
|
||
|
||
Можно менять данные на выходе А ещё до того момента времени, когда эти данные окончательно воспринялись устройством B, главное выдерживать нужные временные ограничения ("тайминги").
|
||
|
||
- Протокол с расщеплением транзакций (мы не ждём ответ на конкретную транзакцию, а выдаём его когда у нас есть возможность).
|
||
|
||

|
||
|
||
_Рис. 23. Схема протокола с расщеплением транзакций._
|
||
|
||
Ответ на транзакцию приходит с запросом не сразу. То есть мы не ждём ответ на конкретную транзакцию, и выдаём ответ когда есть возможность.
|
||
Например, на рисунке 23 для _адреса 1_ у нас была возможность получить ответ сразу, так же и с _адресами 3 и 4_, а вот для _адреса 2_ возможность получить ответ появилась только получения ответов для _адреса 3 и 4_. Таким образом, за счёт протокола с расщеплением транзакций всё будет работать корректно.
|
||
|
||
- Арбитраж с перекрытием (очередной арбитраж происходит ещё на стадии передачи прошлой информации).
|
||
Очередной арбитраж происходит ещё на стадии передачи прошлой информации. Допустим, "разыграли" шину и мы ей завладели, затем другое устройство сообщает, что хочет завладеть этой шиной. Вместо того чтобы он просто ждал — включается арбитр и определяет, можно ли будет этому устройству завладеть шиной или нельзя. Как только заканчивается передача, сразу же идёт переключение на другое устройство.
|
||
- Арбитраж с удержанием шины (ведущее устройство захватывает шину и начинает передавать большое количество информации, то есть передача шины происходит только при возникновении запроса)
|
||
|
||
Например, ведущее устройство захватывает шину и начинает передавать **большое количество информации**. Это устройство передаёт информацию и видит, что другие устройства не отправляют запрос на пользование шиной, тогда ведущее устройство продолжает передавать информацию. То есть когда возникнет запрос, тогда устройство сразу передаёт шину.
|
||
|
||
### Увеличение полосы пропускания
|
||
|
||
Для увеличения полосы пропускания существуют следующие способы:
|
||
|
||
- отказ от мультиплексирования шин адреса и данных;
|
||
- увеличение ширины данных;
|
||
- повышение тактовой частоты.
|
||
|
||
### Стандартизация шин
|
||
|
||
Из стандартизированных шин можно выделить две большие группы:
|
||
|
||
- Шины "большого" интерфейса (высокопроизводительные шины, связывают память, процессор, модули ввода\вывода)
|
||
- PCI Express
|
||
- Hyper Transport
|
||
- QPI
|
||
- Шины "малого" интерфейса (служат для присоединения периферийных устройств к модулям ввода\вывода)
|
||
- USB
|
||
- Bluetooth
|
||
- UART
|
||
- CAN
|
||
- SPI
|
||
- I2C
|
||
|
||
### Последовательный синхронный обмен
|
||
|
||

|
||
|
||
_Рис. 24. Схема последовательного синхронного обмена._
|
||
|
||
Для того чтобы организовать последовательный синхронный обмен информации, нам нужна линия, по которой мы передаём информацию и линия, по которой происходит синхронизация.
|
||
|
||
Как работает последовательный синхронный обмен:
|
||
На схеме есть генератор импульсов (ГН), который генерирует тактовый сигнал (он управляет сдвиговым регистром и передаёт сигналы на приёмник). Передатчик параллельно с этим загружает информацию в сдвиговый регистр, затем информация по одному биту перемещается в другой сдвиговый регистр. После того как вся информация передалась — приёмник просто считывает эту информацию
|
||
|
||
### Последовательный асинхронный обмен
|
||
|
||

|
||
|
||
_Рис. 25. Схема последовательного асинхронного обмена._
|
||
|
||
Отличие от последовательного синхронного обмена заключается в том, что из-за отсутствия тактовых импульсов приёмнику и передатчику необходимо договориться про скорость, на которой будет происходить обмен. На нашей схеме генератор импульсов на приёмнике в 16 раз выше частотой чем на передатчике. Схема управления будет 16 раз считывать каждый бит, то есть если 14 раз была единица и 2 раза ноль, значит была единица.
|
||
|
||
### Основные материалы лекции
|
||
|
||
1. [Ссылка](https://www.youtube.com/watch?v=UXmY3LS_xWk&list=PL0def37HEo5KHPjwK7A5bd4RJGg4djPVf&index=23) на видеозапись лекции
|
||
2. [Ссылка](https://onedrive.live.com/view.aspx?resid=1FF28DEC684C2C56!81737&cid=1ff28dec684c2c56&authkey=!AIXUSz0MyutL6hs&CT=1698668305325&OR=ItemsView) на лекцию в формате Power Point
|