Под мультиплексированием будем понимать использование линий связи интерфейсов в разные моменты времени для различных функций. Мультиплексирование позволяет уменьшить количество линий связи за счет более полного использования оставшихся. В то же время, оно требует дополнительной работы со стороны приемников и передатчиков для упаковки информации различного назначения на линии связи и определения, какая информация в данный момент передается.
Простейшим способом мультиплексирования является совмещение на одной линии связи передачи данных сразу в двух направлениях. Первые интерфейсы содержали отдельные линии связи для чтения и записи (например, интерфейс КАМАК содержит – 24 линии чтения и 24 линии записи) с целью экономии на дорогих в то время транзисторах, реализующих разделение чтения и записи. Потом появились интерфейсы, мультиплексирующие эти функции (например, VME имеет 16/32 линии чтения-записи). В современных интерфейсах (например, PCI Exprees) имеется тенденция к использованию раздельных линии связи. Связно это с высокими частотами, используемыми для передачи данных, с большой задержкой, возникающей при передачи сигнала в обе стороны, и со сложностью согласования сопротивления на физическом уровне при передаче информации в обоих направлениях. Отдельно стоит выделить интерфейсы, построенные по кольцевой топологии (например, SCI). В них передача данных идет в принципе только в одном направлении.
Во многих интерфейсах применяется передача данных и адреса по одним линиям. Это связано с тем, что пока ведущее устройство не передаст адрес, данные передавать некому, а пока данные не будут полностью переданы, нельзя начинать новый цикл. Таким образом, адрес и данные в любом случае должны передаваться в разные моменты времени (в разные такты), поэтому имеет смысл осуществлять передачу по одним линиям связи.
На рисунке приведен пример мультиплексирования адреса и данных для интерфейса PCI.
Как видно из рисунка, в этом интерфейсе после начала цикла (который задается сигналом FRAME) идет фаза адресации (второй такт) и несколько фаз передачи данных.
Самые первые интерфейсы не применяли мультиплексирование данных и адреса по причине сложности этой операции.
В современных интерфейсах (например, AGP) часто реализуется асинхронный способ передачи адреса и данных. Ведущее устройство передает адрес, который ведомое запоминает. После этого ведущее устройство может передавать следующий адрес, не дожидаясь передачи данных по предыдущему адресу (в этом и заключается асинхронность). В этом случае после передачи блока данных можно передавать следующий блок без остановки, поскольку адрес был уже передан. В результате смысл в мультиплексировании данных и адреса пропадает, поскольку линии связи и адреса и данных используются полностью. Поэтому в некоторых современных интерфейсах отказались от такого мультиплексирования.
Еще одним способом мультиплексирования является передача по линиям данных одного типа в несколько этапов.
Например, в интерфейсах оперативной памяти принято адрес передавать в два этапа: сначала адрес строки, затем адрес столбца. В какой-то мере это связано с внутренней организацией памяти, но вместе с тем, позволяет вдвое сократить количество линий адреса.
На рисунке видно, как по мультиплексированным линиям адреса (MA) по сигналу RAS считывается адрес строки (R1, R2), а по сигналу CAS по этим же линиям считывается адрес столбца.
Еще одним, более выраженным примером реализации этой идеи является интерфейс AGP. В нем для передачи адреса используется 8 линий SBA (Side Band Address), по которым за 8 тактов передается 64-битный адрес.
Наиболее полно идея мультиплексирования проявляется при использовании виртуальных линий связи.
Некоторые сигналы, такие как, например, запрос прерывания, передаются относительно редко. Отводить под подобные сигналы отдельные линии связи нецелесообразно.
Основная идея виртуальных линий связи заключается в передаче подобных сигналов с помощью сообщений. Для этого в адресном пространстве выделяется специальный диапазон адресов (адресное подпространство). При обращении к адресу из этого диапазон устройства понимают, что передаются специальное сообщение, соответствующее некому сигналу, т.е. этот сигнал передается как бы по виртуальной линии.
Виртуальные линии связи реализованы, например, в интерфейсе PCI Express. Для достижения обратной программной совместимости с интерфейсом PCI в нем часть сигналов интерфейса PCI передается по виртуальным линиям связи.
Логические линии связи являются своего рода антиподом мультиплексированных. В этом случае несколько физических линий связи объединяются в одну логическую и выполняют одну функцию.
Смысл применения логических линий связи заключается в том, что объединение нескольких линий на физическом уровне (в параллельных интерфейсах) сопряжено с рядом сложностей, которые были рассмотрены ранее. На логическом уровне таких сложностей нет, а современные микросхемы легко справляются с работой, необходимой для такого объединения.
На рисунке проиллюстрирован принцип построения логических линий связи, взятый из стандарта PCI Express.
В данном интерфейсе используется дифференциальный двунаправленный сигнал, т.е. для передачи одного бита информации необходимо 4 линии связи. Такая четверка линий называется lane, что дословно можно перевести как дорожка. На логическом уровне несколько дорожек могут объединяться в один большой поток.
Адресация – это способ определения ведомого устройства. Рассмотрим способы адресации в порядке возрастания их сложности и, соответственно, эффективности.
Географическая.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.