7.5.1.1.2. Пакетный режим передачи
данных
На
смену конвейерной адресации предыдущих процессоров, начиная с процессора 486,
введен режим пакетной передачи (Burst Mode). Этот режим предназначен
для быстрых операций со строками кэша. Строка кэша процессора 486 имеет длину
16 байт, следовательно, для ее пересылки требуется четыре 32-разрядных шинных
цикла. Поскольку использование кэша предполагает, что строка должна в нем
присутствовать целиком, ввели пакетный цикл (Burst Cycle),
оптимизированный для операций обмена внутреннего кэша с оперативной памятью. В
этом цикле адрес и сигналы идентификации типа шинного цикла выдаются только в
первом такте пакета. В каждом из последующих тактов могут передаваться данные,
адрес для которых уже не передается по шине, а вычисляется из первого по
правилам, известным и процессору, и внешнему устройству. В пакетный цикл
процессор может преобразовать любой внутренний запрос на множественную
передачу, но при чтении его размер ограничен одной строкой кэша, а при записи в
стандартном режиме шины в пакет могут собираться не более 32 бит. Более поздние
модели процессоров при работе с WB-кэшем
при записи строк в память собирают в пакет четыре 32-битных цикла, но это уже
работа в расширенном режиме шины процессора.

Рис. 1. Пакетный цикл чтения
Пакетный
цикл (Рис. 1) начинается процессором так же, как и обычный: на внешней шине
устанавливается адрес, сигналы идентификации типа цикла и формируется строб ADS#. В следующем такте передается первая порция данных,
и, если она не единственная, сигнал BLAST#
имеет пассивное значение. Если адресованное устройство поддерживает пакетный
режим, оно должно ответить сигналом BRDY#
вместо сигнала RDY# по готовности данных в
первой же передаче данных цикла. В этом случае процессор продолжит цикл как
пакетный, не вводя такта адресации-идентификации (с сигналом ADS#), а сразу перейдет к передаче следующей порции
данных. Нормально о завершении пакетного цикла процессор сообщает устройству
сигналом BLAST#, который выдается в такте
последней передачи пакета. Если у процессора есть намерения собрать пакет, а
устройство отвечает сигналом RDY#, данные
будут передаваться обычными циклами. Введением сигнала RDY# вместо BRDY#
внешнее устройство может в любой момент прервать пакетную передачу, и процессор
ее продолжит обычными циклами. В идеальном варианте (без тактов ожидания) для
передачи 16 байт в пакетном режиме требуется всего 5 тактов шины вместо восьми,
которые потребовались бы при обычном режиме обмена.
Пакетный
режим предполагает соблюдение одних и тех же правил формирования последующих
адресов как процессором, так и внешним устройством (памятью). Во время
пакетного цикла процессора 486 старшие биты адреса А[31:4] остаются неизменными
(как и сигналы идентификации M/IO#, D/C# и
W/R#). Изменяться
могут только биты А[3:2] и сигналы ВЕ[3:0] (у процессоров с 64-битной шиной
данных неизменны А[31:5], меняются только А[4:3] и ВЕ[7:0]). Таким образом,
один пакетный цикл не может пересекать границу строки кэша. Кроме того, имеется
специфический порядок следования адресов в пакетном цикле,- который
определяется начальным адресом пакета (задается процессором) и разрядностью
передач (задается устройством сигналами BS16# и BS8#). В
табл. 1 приведен порядок следования адресов для 32-разрядных передач. Если во время
пакетного цикла процессор обнаружит активность сигналов BS16# или BS8#, до
того как перейти к следующему адресу (согласно таблице), будут завершены
текущие 32-битные циклы. Так, например, при начальном адресе 4 и введении
сигнала BS16# порядок адресов в пакетном
цикле будет 4-6-0-2-С-Е-8-А. Поскольку пакетный режим поддерживается обычно
только оперативной памятью (вместе со вторичным кэшем), разрядность которой
стараются не усекать, на практике преобразование последовательности адресов в
8- или 16-битные передачи вряд ли где используется.
Таблица 1. Последовательность адресов в пакетном
цикле 486

Приведенный
порядок чередования (interleaving)
адресов в пакетном цикле характерен для всех процессоров Intel и совместимых с ними, начиная с 486. Он оптимизирован
для двухбанковой организации памяти, подразумевающей чередование банков,
используемых в соседних передачах пакетного цикла. В процессорах с 64-битной
шиной данных идея чередования та же, но значение адресов просто удваивается. С
точки зрения памяти у каждой микросхемы во время пакетного цикла могут
изменяться только два младших бита адреса (независимо от разрядности шины
данных процессора). Данный порядок чередования поддерживает любая память с
пакетным режимом: динамическая BEDO
DRAM, SDRAM и статическая
Sync Burst SRAM, PB SRAM.
Процессоры других семейств (например, применяемые в ПК Macintosh, Power
PC) используют линейный (linear) порядок адресов в пакете. Микросхемы пакетной
памяти обычно имеют входной сигнал, задающий порядок адресов для конкретного
применения.
Процессор
486 может использовать пакетный цикл для любых передач, если требуемые данные
вписываются в принятую структуру пакета. При считывании максимальная длина
пакета не может превышать 4x32=128 бит, а при записи в стандартном режиме шины
— только 32 бита. Таким образом, при записи в стандартном режиме действительно
пакетным может быть только цикл, состоящий из неполноразрядных передач. Если
очередная требуемая порция данных не вписывается в правила формирования пакета,
она будет передана обычными (не пакетными) шинными циклами.
Во
время пакетного цикла, как обычного, темп обмена (количество тактов ожидания)
задается устройством введением сигнала BRDY# по готовности данных (в обычных циклах для этой
цели используется сигнал RDY#). Временная
диаграмма пакетных циклов обращения к памяти (главным образом, чтения) является
основной характеристикой производительности памяти компьютера. Ее описывают в
количестве тактов системной шины, требуемых для каждой передачи пакета. При
этом, естественно, оговаривают и саму частоту. Так, например, для динамической
памяти BEDO-50 не достижимый идеал — цикл 5-1-1-1 на частоте 66
МГц.