ນີ້ແມ່ນຄໍາສັ່ງ ibdm-ibnl-file ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
ibnl - ຮູບແບບ IB netlist ທົ່ວໄປ
ລາຍລະອຽດ
ໄຟລ໌ topology IBDM ibdm-topo-file ໃຫ້ວິທີການອະທິບາຍຜ້າ IB ໂດຍໃຊ້ຊຸດຂອງ
ລະບົບທີ່ກໍານົດໄວ້ລ່ວງຫນ້າ. ຄໍານິຍາມຂອງລະບົບແມ່ນສະຫນອງໃຫ້ຢູ່ໃນໄຟລ໌ດຽວໃນຮູບແບບ IBNL
ອະທິບາຍການເຊື່ອມຕໍ່ InfiniBand ພາຍໃນຂອງລະບົບໃນແງ່ຂອງຄະນະແລະ
ອຸປະກອນ. ເມື່ອ IBDM ເລີ່ມຕົ້ນມັນຈະວິເຄາະໄຟລ໌ຄໍານິຍາມຂອງລະບົບທີ່ມີຢູ່ກ່ອນມັນ
ຈັດການໄຟລ໌ topology. ໄຟລ໌ທີ່ຕັ້ງຢູ່ໃນໄດເລກະທໍລີຕໍ່ໄປນີ້ທີ່ກ່ຽວຂ້ອງກັບ
ຄໍານໍາຫນ້າການຕິດຕັ້ງ: /lib/ibdm1.0/ibnl.
ຫນ້າຜູ້ຊາຍນີ້ອະທິບາຍຮູບແບບໄຟລ໌ IBNL ທີ່ໃຊ້ເພື່ອກໍານົດລະບົບ IB arbitrary
ການເຊື່ອມຕໍ່ IB ພາຍໃນ. ມັນອະທິບາຍແນວຄວາມຄິດຕົ້ນຕໍທີ່ໃຊ້ໂດຍໄຟລ໌, ສະຫນອງລາຍລະອຽດ
ສໍາລັບວິທີການຂຽນໄຟລ໌ດັ່ງກ່າວແລະໃຫ້ຄໍານິຍາມຢ່າງເປັນທາງການຂອງ syntax ໄຟລ໌ໃນ BNF
ເຊັ່ນຮູບແບບ (YACC/Bison ອ່ານໄດ້).
1. ຕົ້ນຕໍ ແນວຄິດ
ຮູບແບບໄຟລ໌ອະທິບາຍສໍາລັບການກໍານົດການເຊື່ອມຕໍ່ IB ລະບົບທົ່ວໄປນໍາໃຊ້ດັ່ງຕໍ່ໄປນີ້
ຄຳສັບ:
ໂນດ
ການທັນທີຂອງອຸປະກອນ IB ອາດຈະເປັນປຸ່ມສະວິດຫຼືອະແດບເຕີຊ່ອງ
ລະບົບຍ່ອຍ
ການກະຕຸ້ນຂອງກະດານຫຼືໂມດູນໃນລະບົບ
SYSTEM
ຄໍານິຍາມຂອງກະດານຫຼືໂມດູນ
TOPSYSTEM
ລະບົບສູງສຸດທີ່ຖືກກໍານົດໄວ້ໃນໄຟລ໌ທີ່ໃຫ້
ຕົວແກ້ໄຂລະບົບຍ່ອຍ
ຫຼາຍລະບົບອະນຸຍາດໃຫ້ມີການປ່ຽນແປງຫຼາຍລະບົບຍ່ອຍຂອງເຂົາເຈົ້າເຊັ່ນ: ຮຸ່ນ 12X ຂອງ a
ກະດານໃບໃນ MTS9600. ຕົວແກ້ໄຂແມ່ນຄຳຕໍ່ທ້າຍຂອງຊື່ກະດານ. ຮູບແບບ IBNL
ສະຫນັບສະຫນູນການກໍານົດຊື່ຫຼາຍກັບຄະນະດຽວກັນ.
2. ເອກະສານ ຮູບແບບ
ຮູບແບບໄຟລ໌ທີ່ແນ່ນອນແມ່ນສະຫນອງໃຫ້ຢູ່ໃນພາກ 4. ພາກນີ້ພຽງແຕ່ສະຫນອງການພິເສດ
ຂໍ້ມູນກ່ຽວກັບ semantics ສະເພາະຂອງພາກສ່ວນຕ່າງໆ.
ໄຟລ໌ IBNL ມີຄວາມອ່ອນໄຫວຕໍ່ສາຍເນື່ອງຈາກມັນຕ້ອງການພາກສ່ວນຕ່າງໆເພື່ອເລີ່ມຕົ້ນໃນແຖວໃໝ່.
ໄຟລ໌ຖືກແຍກອອກເປັນຫຼາຍລະບົບ (ທາງເລືອກ) ແລະພາກສ່ວນ TOPSYSTEM. ແຕ່ລະຄົນມີຫນຶ່ງ
ຫຼືຫຼາຍຊື່.
ການເຊື່ອມຕໍ່ຖືກກໍານົດຢູ່ໃນພາກສ່ວນລະບົບ / TOPSYSTEM ເທົ່ານັ້ນແລະດັ່ງນັ້ນອາດຈະເປັນສອງ
ປະເພດ:
1. ລະຫວ່າງ node ຫຼືລະບົບຍ່ອຍກັບ node ຫຼືລະບົບຍ່ອຍອື່ນໆ
2. ຈາກ node ຫຼືລະບົບຍ່ອຍໄປຫາຕົວເຊື່ອມຕໍ່ຂອງລະບົບ.
ຫມາຍເຫດ-1: ລະບົບເທິງສາມາດກໍານົດພອດທີ່ອາດຈະຊ້ໍາຊ້ອນແລະບໍ່ເຊື່ອມຕໍ່ກັບໃດໆ
ຕົວເຊື່ອມຕໍ່ກະດານລະດັບຕ່ໍາ. ໃນກໍລະນີເຫຼົ່ານີ້, ທ່າເຮືອຖືກຍົກເວັ້ນພຽງແຕ່ຈາກ
ລະບົບຜົນໄດ້ຮັບ. ຄຸນນະສົມບັດນີ້ເຮັດໃຫ້ການກໍານົດພອດຫນ້າຂອງ 12X / 4X ເຊັ່ນ
ວ່າຖ້າໃບ 12X ຖືກເລືອກພຽງແຕ່ພອດແຜງດ້ານຫນ້າ 12X ເທົ່ານັ້ນທີ່ຖືກນໍາໃຊ້.
ໝາຍເຫດ-2: ຄວາມກວ້າງຂອງພອດ ແລະຄວາມໄວທີ່ສະໜອງໃຫ້ຢູ່ໃນລະດັບຕໍ່າສຸດມີລຳດັບກ່ອນໜ້າ
ຄໍານິຍາມທີ່ສະຫນອງໃຫ້ຢູ່ໃນຂັ້ນເທິງຂອງລໍາດັບຊັ້ນ.
3. ຄູ່ມືແນະນໍາ ສໍາລັບການ ລາຍລັກອັກສອນ a ລະບົບ IBNL ເອກະສານ
ຂັ້ນຕອນຕໍ່ໄປນີ້ຄວນຖືກປະຕິບັດຕາມເພື່ອໃຫ້ລະບົບ IBNL ໃໝ່:
a) ຊື່ໄຟລ໌ຫຼັງຈາກຊື່ລະບົບ: .ibnl
b) ກໍານົດພາກສ່ວນລະບົບສໍາລັບແຕ່ລະກະດານລວມຢູ່ໃນລະບົບ
c) ຊື່ພອດຂອງກະດານແມ່ນພຽງແຕ່ສາຍ, ພວກເຮົາໃຊ້ຮູບແບບທີ່ງ່າຍດາຍຂອງ Pn ບ່ອນທີ່ N
ແມ່ນພຽງແຕ່ຕົວເລກ serial ແຕ່ທ່ານສາມາດເລືອກຊື່ໃດກໍໄດ້ທີ່ທ່ານຕ້ອງການ. ພຽງແຕ່ໃຫ້ແນ່ໃຈວ່າມັນແມ່ນ
ຊ້ໍາກັນ.
d) ເມື່ອລົດຊາດທີ່ແຕກຕ່າງກັນຂອງກະດານມີຢູ່ຄືກັບເວລາທີ່ທ່ານມີທາງເລືອກ 4x ແລະ 12x ສໍາລັບ
ກະດານຕັ້ງຊື່ກະດານທາງເລືອກທີ່ມີຕົວແກ້ໄຂ postfix. ຕົວຢ່າງສໍາລັບລະບົບດັ່ງກ່າວ
ທີ່ສະຫນັບສະຫນູນກະດານ LEAF ຂອງປະເພດ 12x ແລະ 4x ຈະເປັນການກໍານົດສອງລະບົບ:
ລະບົບໃບ, ໃບ: 4x, ໃບ: 4X
...
ໃບລະບົບ: 12x, ໃບ: 12X
...
ຫມາຍເຫດ-3: ການປະກົດຕົວຂອງກະດານ LEAF ໃນກະດານອື່ນຫຼືລະບົບເທິງ
ບໍ່ຈໍາເປັນຕ້ອງລະບຸ postfix ແລະຖືກຕັດສິນໃຈພຽງແຕ່ໃນເວລາທີ່ topology
ໄຟລ໌ກຳລັງຖືກວິເຄາະ. "ໃບລະບົບ" ທີ່ບໍ່ມີ postfix ຈະຖືກໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ.
ເພື່ອສືບຕໍ່ຕົວຢ່າງຕໍ່ໄປນີ້ແມ່ນວິທີການ LEAFs ທັນທີໃນລະບົບເທິງ:
TOPSYSTEM MyIbSystem
ໃບ 1
...
ໃບ 2
...
ສະບັບ 4x ຫຼື 12x ຕົວຈິງຂອງກະດານ LEAF ສາມາດຖືກລະບຸໄວ້ໃນ
ໄຟລ໌ topology ພາກສ່ວນ CFG ເພື່ອເລືອກການປະສົມປະສານທີ່ເຫມາະສົມຂອງກະດານທາງເລືອກໃນ
ລະບົບ. ຕົວຢ່າງຈະເປັນ:
MyIbSystem N001 CFG: leaf2=12x
ໃນກໍລະນີນີ້ leaf1 ຈະ 4x ເປັນບໍ່ມີການປັບປຸງພິເສດແມ່ນກໍານົດສໍາລັບມັນ (ແລະ
LEAF ແມ່ນຕາມຄ່າເລີ່ມຕົ້ນຂອງໃບ 4x). Leaf2 ຈະເປັນ 12x ຕາມທີ່ໄດ້ກໍານົດໄວ້ໃນ CFG
ສ່ວນ.
e) ຄວນພິຈາລະນາເປັນພິເສດເພື່ອອອກແບບພາກສ່ວນລະບົບເທິງເມື່ອ
ມີກະດານທາງເລືອກຫຼາຍປະເພດ. ພາກສ່ວນລະບົບສູງສຸດອາດຈະປະກອບມີຫຼາຍອັນ
ຄໍານິຍາມສໍາລັບ plug panel ດ້ານຫນ້າເຊັ່ນ P1-4x ແລະ P1-12x (ແມ່ນແລ້ວ, ນີ້ແມ່ນພຽງແຕ່
ຊື່ທີ່ຄວນຈະປະຕິບັດຕາມລາຍລັກອັກສອນຢູ່ໃນແຖບດ້ານຫນ້າຫຼືດ້ານຫຼັງ). ໃນຖານະເປັນ
ລົດຊາດທີ່ແຕກຕ່າງກັນຂອງກະດານແມ່ນບໍ່ຈໍາເປັນຕ້ອງກໍານົດຊື່ດຽວກັນສໍາລັບ
ພອດຂອງພວກເຂົາລວມທັງພອດ 12x ອາດຈະປ່ອຍໃຫ້ການເຊື່ອມຕໍ່ລະດັບສູງສຸດບາງຢ່າງ
dangling (ບໍ່ເຊື່ອມຕໍ່) ແລະດັ່ງນັ້ນ ports ກະດານດ້ານຫນ້າຂອງລົດຊາດອື່ນໆ
ຈະຖືກລຶບອອກຈາກຄໍານິຍາມລະບົບສຸດທ້າຍ. ເປັນຕົວຢ່າງໃຫ້ພວກເຮົາ
ພິຈາລະນາກະດານ LEAF ທີ່ງ່າຍດາຍທີ່ມີ 3 4x port flavors ແລະຫນຶ່ງ 12x port flavors.
ພວກເຮົາແນະນໍາໃຫ້ເຊື່ອມຕໍ່ມັນໃນລະດັບສູງສຸດໂດຍໃຊ້ໂຄງການດັ່ງຕໍ່ໄປນີ້:
ໃບລະບົບ: 4x
NODE U1
1 -4x-> 4XP1
2 -4x-> 4XP2
3 -4x-> 4XP3
...
ໃບລະບົບ: 12x
NODE U1
1 -12x-> 12XP1
...
TOPSYSTEM myIbSystem
ໃບຍ່ອຍລະບົບຍ່ອຍ1
4XP1 -> L1/P1
4XP2 -> L1/P2
4XP3 -> L1/P3
12XP1 -> L1/P1-12x
f) ເອົາໄຟລ໌ໃສ່ໃນ /lib/IBDM/ibdm1.0/ibnl directory
g) ກວດເບິ່ງ syntax ໄຟລ໌ໃຫມ່ໂດຍການວາງມັນຢູ່ໃນໄດເລກະທໍລີ ibnl ຕາມທີ່ໄດ້ອະທິບາຍ
ຂ້າງເທິງ, ການສ້າງ topology ງ່າຍດາຍ (ibdm-topo-file ໄຟລ໌ທີ່ມີຫນຶ່ງເຊັ່ນ
ລະບົບແລະແລ່ນ ibdmtr ປະໂຫຍດທີ່ຈະວິເຄາະມັນຕິດຕາມເສັ້ນທາງທີ່ງ່າຍດາຍ
ໂດຍຜ່ານມັນ.
4. ແບບຟອມ ຄໍານິຍາມ in YACC Syntax:
INT ::= ([1-9][0-9]*⎪0 ;
WIDTH ::= (4x⎪8x⎪12x);
ຄວາມໄວ ::= (2.5G⎪5G⎪10G);
NODETYPE ::= (SW⎪CA⎪HCA);
NAME ::= ([\[\]\\\*/A-Za-z0-9_.:%@~]+);
NL: LINE ⎪ NL LINE;
ONL: ⎪ NL;
ibnl: ONL ລະບົບ topsystem;
ລະບົບ: ⎪ ລະບົບລະບົບ;
sub_inst_attributes: ⎪ sub_inst_attributes sub_inst_attribute NL;
sub_inst_attribute: NAME '=' NAME '=' NAME ⎪ NAME '=' NAME '=' INT ⎪ NAME '=' NAME ;
ລະບົບເທິງ: TOPSYSTEM system_names NL sub_inst_attributes insts ;
ລະບົບ: SYSTEM system_names NL insts ;
system_names: system_name ⎪ system_names ',' system_name ;
system_name: NAME ;
insts: ⎪ insts node ⎪ insts ລະບົບຍ່ອຍ ;
node: node_header NL node_connections ;
node_header: NODE NODETYPE INT ຊື່ຊື່ ;
node_connections: ⎪ node_connections node_connection NL ;
node_connection: node_to_node_link ⎪ node_to_port_link ;
node_to_node_link: INT '-' WIDTH '-' SPEED '-' '>' NAME ⎪ INT '-' WIDTH '-' '>' NAME INT ⎪
INT '-' SPEED '-' '>' ຊື່ INT ⎪ INT '-' '>' ຊື່ INT ;
node_to_port_link: INT '-' WIDTH '-' SPEED '-' '>' NAME ⎪ INT '-' WIDTH '-' '>' NAME ⎪ INT
'-' ຄວາມໄວ '-' '>' NAME ⎪ INT '-' '>' ຊື່ ;
ລະບົບຍ່ອຍ: subsystem_header NL subsystem_connections ;
subsystem_header: SUBSYSTEM NAME NAME ;
subsystem_connections: ⎪ subsystem_connections subsystem_connection NL ;
subsystem_connection: subsystem_to_subsystem_link ⎪ subsystem_to_port_link ;
subsystem_to_subsystem_link: NAME '-' WIDTH '-' SPEED '-' '>' NAME NAME ⎪ NAME '-' WIDTH
'-' '>' NAME ⎪ NAME '-' ຄວາມໄວ '-' '>' NAME ⎪ NAME '-' '>' NAME NAME ;
subsystem_to_port_link: NAME '-' WIDTH '-' SPEED '-' '>' NAME ⎪ NAME '-' WIDTH '-' '>'
NAME ⎪ NAME '-' SPEED '-' '>' NAME ⎪ NAME '-' '>' NAME ;
ໃຊ້ ibdm-ibnl-file ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net