Учебное пособие: Адресное пространство. Подсистемы ввода-вывода
Фаза данных – на шину выставляются данные.
Но все устройства имеют разное быстродействие. Для этого заводится сигнал waitstate (WS). Он устанавливается до фазы данных – в середине ФО. ЦП, получив сигнал WS (медленное устройство), продлевает ФО еще на один такт.
Есть также сигнал HighSpeed (например, для ОП) – от ФО отнимается один такт.
IO/Mem – определяет, это порт ввода-вывода или адрес памяти.
Высокочастотные шины
Из-за высокой частоты передачи возникают некоторые эффекты, из-за которых могут потеряться данные.
Применяется код Хэмминга:
Завершающие три бита формируются по восьми.
2 бита – diagnostics, 1 бит – modify
Если испорчен один бит, код Хэмминга поможет его восстановить, если два – устранить ошибку.
Контроль паритета [выявит] только одну ошибку. Биты дополняются еще одним – четность/нечетность.
Если к устройству пришел неверный адрес, оно выставляет на шину сигнал ошибки. На высокочастотных шинах появляются:
- Фаза ожидания ошибки адреса
- Фаза ожидания данных
Т.к. ошибки появляются [редко], в эти фазы все просто чего-то ждут, обмена по шине нет.
Разделение шины между несколькими ЦП
Эффективность шины очень мала:
1) Большую часть времени на шине ничего не происходит.
2) Даже во время активности шины не все провода используются одновременно.
Надо совместить разные фазы шины разных ЦП, так, чтобы ЦП друг другу не мешали и использовали шину параллельно.
Предыдущий ЦП освободил шину – следующий ее занимает. Такие шины называются транзакционными.
В настоящее время в […] системах, т.к. алгоритмы анализа очень сложны (ко всему прочему, фазы могут быть разной длины).
Используется арбитр шин – устройство, которое управляет разделением шины между разными ЦП.
П просит АШ выдать ему шину. Если несколько запросов, АШ по какому-то алгоритму выделяет шину конкретному ЦП.
ЦП тогда начинает анализировать сигнал Busy.
Использование кэш
Когда мы общаемся с ВУ, должны на шину выставить адрес.
В некоторых системах: