多功能PCIE交换机之九:单NT系统中需要注意的问题


1.单NT与双NT系统差异

NTB通常用在双控或者多控的系统上,用来实现跨节点的数据传输。在由多个节点构成的系统上,通常每个节点上都有一个NTB芯片,以实现全系统地址空间划分和路由。顾名思义,单NT是指用一个PCIE非透明桥来实现节点间数据传输的方案,通常用在两个节点之间。和多NT的系统相比,这种方法实现相对比较简单,成本较低,开发周期较短,能够缩短整个系统的关键功能和性能的验证周期。


2.单NT系统的实现


单NT的实现需要结合整个系统的设计要求, 根据具体服务器的主板和各种设置,确定好物理NTB需要安装在哪台机器上,然后考虑并检查下面的设置:

a. 检查BIOS里是否有NTB相关的enable/disable开关,如果有,打开相应的开关;

b.在需要安装物理NTB的节点上,EEPROM里enable相应的NTB;而在其他的节点上,通过EEPROM来disable NTB;

c.根据系统的设计要求,设置好地址地址转换窗口的数量和大小。



3.单NT系统中PCIE设备的特点

单NT系统中,由于link port一侧的NTB实际上是disable的,link port一侧看到的NTB相应的BAR空间实际都是virtual port一侧映射过来,然后由link port一侧操作系统初始化PCIE时设置的。因此,Virtual port 端重启之后,Link port NTB相应的BAR寄存器会发生变化,因此会导致Link Port不能往virtual port读写数据。此外,如果link port节点上电的时候,virtual port一侧还没有上电,

那么link port 在初始化PCIE总线的时候无法看到NTB设备,进而导致link port一侧的NTB PCEI设备都不会存在,驱动更无从加载。


4.单NT系统中碰到的问题该如何规避

针对上面的问题,了解了问题的根源,不难想到下面的解决方法:

1.确保virtual port先于link port上电,且保证link port初始化PCIE的时候,virtual port一侧的NTB PCIE设备已经探测并初始化;

2.如果link port节点能够正常使用NTB,此后出现了virtual port节点重启,那么link port需要重启或者恢复到之前的NTB PCIE 的设置,等到virtual port成功起来之后,就可用继续使用NTB了。