Шина IEEE 1394 — FireWire

Регистры управления штекерами (PCR)

Регистры управления штекерами (PCR) располагаются в адресном пространстве узлов, причастных к изохронным передачам. Они занимают место в начале пространства, отведенного под блоки узла. Регистры PCR допускают только операции чтения и блокированные операции (чтение с условной модификацией). Операции записи в эти регистры отвергаются. В состав регистров PCR входят следующие:

  • общий регистр выходных штекеров OUTPUT_MASTER_PLUG (0900h, рис. а) определяет общие характеристики узла как изохронного передатчика. Поле output_plugs определяет количество выходных штекеров (0–31). Поле spd задает максимальную скорость передачи по любому из штекеров (0 — S100, 1 — S200, 2 — S400, 3 — S800). Поле broadcast_base задает базовый номер широковещательного канала. Поля persistent_ext, nonpersistent_ext и r зарезервированы. Этот регистр должен быть у узлов, поддерживающик как изохронную передачу, так и прием;
  • регистры выходных штекеров OUTPUT_PLUG (0904–097Ch, рис. б) присутствуют только у узлов, способных вести изохронную передачу. Присутствующие регистры (их число определяется регистра OUTPUT_MASTER_PLUG) располагаются по смежным адресам. Каждый из этих регистров описывает широковещательную или двухточечную передачу потока, исходящего от узла через соответствующий штекер. Бит o (online) указывает на возможность конфигурирования и использования данного штекера для передачи (o=0 — передача невозможна). Поле channel определяет номер канала, фигурирующий в качестве адреса исходящих изохронных пакетов. Бит b (broadcast) указывает на наличие широковещательного соединения для данного штекера. Поле point_to_point определяет число двухточечных соединений, установленных для данного штекера. Поле spd задает скорость передачи пакетов (0 — S100, 1 — S200, 2 — S400, 3 — S800). Поле payload задает максимальный размер поля данных изохронного пакета в квадлетах (0 соответствует 1024 квадлетам). Поле overhead позволяет более точно вычислить запрашиваемое значение полосы пропускания bw, запрашиваемое для данного канала (значение, вычитаемое из значения регистра BANDWIDTH_AVAILABLE):

bw = overhead × 32 + (payload+3)×24–spd (при overhead ≠ 0);
Если overhead = 0, то запрашиваемая полоса определяется по формуле
bw = 512 + (payload + 3) × 24–spd.

  • Общий регистр входных штекеров INPUT_MASTER_PLUG (0980h, рис. в) определяет количество входных штекеров (input_plugs в диапазоне 0–31) и максимальную поддерживаемую скорость (по любому из штекеров). Поля persistent_ext, nonpersistent_ext и r зарезервированы. Этот регистр должен быть у узлов, поддерживающих как изохронную передачу, так и прием;
  • регистры входных штекеров INPUT_PLUG (0984–09FCh, рис. г) присутствуют только у узлов, способных вести изохронный прием. Присутствующие регистры (их число определяется регистром INPUT_MASTER_PLUG) располагаются по смежным адресам. Каждый из этих регистров описывает широковещательное или двухточечное соединение для соответствующего штекера. Бит o (online) указывает на возможность конфигурирования и использования данного штекера для приема (o = 0 — прием невозможен). Поле channel определяет номер принимаемого канала. Бит b (broadcast) указывает на наличие широковещательного соединения для данного штекера. Поле point_to_point определяет число двухточечных соединений, установленных для данного штекера.

Яндекс.Метрика