link840 link841 link842 link843 link844 link845 link846 link847 link848 link849 link850 link851 link852 link853 link854 link855 link856 link857 link858 link859 link860 link861 link862 link863 link864 link865 link866 link867 link868 link869 link870 link871 link872 link873 link874 link875 link876 link877 link878 link879 link880 link881 link882 link883 link884 link885 link886 link887 link888 link889 link890 link891 link892 link893 link894 link895 link896 link897 link898 link899 link900 link901 link902 link903 link904 link905 link906 link907 link908 link909 link910 link911 link912 link913 link914 link915 link916 link917 link918 link919 link920 link921 link922 link923 link924 link925 link926 link927 link928 link929 link930 link931 link932 link933 link934 link935 link936 link937 link938 link939 link940 link941 link942 link943 link944 link945 link946 link947 link948 link949 link950 link951 link952 link953 link954 link955 link956 link957 link958 link959 link960 link961 link962 link963 link964 link965 link966 link967 link968 link969 link970 link971 link972 link973 link974 link975 link976 link977 link978 link979

PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

Шина IEEE 1394 — FireWire

Информационный блок последовательной шины и корневой каталог

Информационный блок последовательной шины

Информационный блок последовательной шины (bus_info_block) занимает 4 квадлета (см. рисунок ниже). Назначение его полей:

  • bus_name — имя шины («1394» в ASCII)
  • irmc — признак способности к роли диспетчера изохронных ресурсов;
  • cmc — признак способности к роли мастера циклов;
  • isc — признак способности к изохронным передачам;
  • bmc — признак способности к роли диспетчера шины;
  • pmc — признак способности к управлению питанием (введено в 1394a);
  • cyc_clk_acc — точность генерации интервалов циклов (в миллионных долях, ppm, допустимо 0–100), только для узлов с cmc = 1;
  • max_rec — указатель максимального размера поля данных, равного 2max_rec + 1. Допустимо max_rec = 1…13 (длина пакета 4, 8, 16… 16 384 байт);
  • node_vendor_id — идентификатор производителя (то же, что и vendor_id в минимальном формате);
  • chip_id_hi, chip_id_lo — две составные части 40-битного идентификатора микросхемы LINK-уровня, который в совокупности с node_vendor_id дает глобально уникальный идентификатор узла;
  • gen — номер генерации содержимого памяти, инкрементируется с каждой его модификацией (введено в 1394a). Позволяет конфигурационному ПО сократить объем запрашиваемой информации, если считанное значение номера после сброса совпадает с предыдущим;
  • link_speed — максимальная скорость, поддерживаемая LINK-уровнем; может не совпадать со скоростью PHY, сообщаемой в пакете самоидентификации (введено в 1394a).

 

Корневой каталог

Корневой каталог содержит элементы, состоящие из двух полей:

  • key (8 бит) — ключ элемента, в котором можно выделить:
         -----key_type (2 бита) — тип ключа: 0 — непосредственный параметр, 1 — смещение (в начальном пространстве регистров), по которому находится параметр; 2 —смещение (в памяти конфигурации), по которому находится структура данных (лист); 3 — смещение, по которому находится каталог;
         -----key_value (6 бит) — значение ключа, по которому определяется назначение элемента.
  • value или offset (24 бита) — значение элемента или смещение ячейки памяти, с которой начинается данный элемент. Смещение указывается в квадлетах относительно положения данного элемента каталога.

Элементы корневого каталога приведены в таблице. Для всех узлов шины обязательны первые три элемента из приведенных в таблице. Структура элемента, содержащего уникальный 64-битный идентификатор узла, приведена на рисунке. Этот идентификатор, называемый EUI-64 (Extended Unique Identifier), состоит из идентификаторов производителя узла и идентификатора микросхемы LINKуровня. Он может использоваться для идентификации программного драйвера данного узла. В CSR определен еще и 88-битный глобальный идентификатор GUI (Globally Unique Identifier), в котором к EUI-64 в качестве старших 24 бит добавлен идентификатор Company_Id. Идентификатор GUI уникально определяет узел во всем мире всех шин, отвечающих CSR-архитектуре.

Таблица. Элементы корневого каталога

Ключ Смещение или значение
03h Module_Vendor_Id, значение идентификатора производителя модуля (может совпадать с идентификатором производителя узла)
0Ch Node_Capabilities, значение свойств узла (см. рисунок после этой таблицы):
spt — признак наличия регистра SPLIT_TIMEOUT, должен быть единичным у узла, способного участвовать в транзакциях
ms — признак наличия регистров Messaging Passing
int — признак наличия регистров Interrupt_Traget и Interrupt_Mask
ext — признак наличия регистра TEST_ARGUMENT
bas — признак наличия регистров TEST_START и TEST_STATUS
prv — признак наличия приватного пространства узла
64 — признак поддержки
64-битной адресации (в IEEE 1394 всегда установлен)
fix — признак фиксированной (а не расширенной) адресации (в IEEE 1394 всегда установлен)
lst — признак наличия бита Lost в регистрах State_Clear и State_Set
drq — признак наличия бита Dreq в регистрах State_Clear и State_Set
elog — признак наличия регистра Error_Log и бита Elog в регистрах State_Clear и State_Set
atn, off — признак наличия одноименных битов в регистрах State_Clear и State_Set
ded — узел поддерживает состояние Dead
init — узел поддерживает состояние Initializing
8Dh Node_Unique_Id_offset — смещение элементалиста с уникальным идентификатором узла. Смещение (в квадлетах) задается относительно положения данного ключа в памяти конфигурации. Формат элемента приведен на рисунок выше
82h Bus_Dependent_Info_Offset — смещение элемента информации, относящейся к шине
C2h Bus_Dependent_Info_Offset — смещение каталога информации, относящейся к шине
04h Module_Hw_Version, значение версии аппаратных средств модуля
05h Module_Spec_Id, значение идентификатора спецификации модуля
07h Module_Sw_Version, значение версии программных средств модуля
87h Module_Dependent_Info_Offset — смещение элемента информации, относящейся к модулю
C7h Module_Dependent_Info_Offset — смещение каталога информации, относящейся к модулю
08h Node_Vendor_Id, идентификатор производителя узла
09h Node_Hw_Version, значение версии аппаратных средств узла
0Ah Node_Spec_Id, значение идентификатора спецификации узла
0Bh Node_Sw_Version, значение версии программных средств узла
90h Node_Dependent_Info_Offset — смещение элемента информации, относящейся к узлу
D0h Node_Dependent_Info_Offset — смещение каталога информации, относящейся к узлу
D1h Unit_Directory_Offset — смещение каталога информации, относящейся к блоку
F0h Node_Power_Directory_Offset — относительное смещение каталога управления потреблением, относящегося к узлу (введено в 1394a)