多功能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了。