1.单NTB设置

NTB有多种使用方式,一种常使用的模式是单NT Active-Passive模式,整体结构如下图:

为了实现这种模式,具体到EEPROM设置上,它要求保证节点0上的EEPROM里使能NT0,并且保证bar4/5的窗口是大小不小于目的地址空间的大小。而在节点1上的NTB都disable 掉.

考虑到fail-over和上电重启,这种设置会造成下面的问题:

在每次两个节点同时上电的情况下,如果Passive节点先于Active节点启动,Passive节点的BIOS和内核启动时无法探测到NTB设备,更无法为它分配PCI memory和IO地址空间。如果此时仲裁确定的双控master 节点刚好是Passive节点,那么在后续有IO的时候,它无法通过NTB把数据同步到远端节点。

在之前作为双控master节点被新的master节点杀死后的重启的过程当中,新的双控master节点此时也无法看到PLX NTB物理设备,此时NTB通道无法传递数据。

2. 实现双NT的改动

虽然可以通过每次上电时保证让active节点先启动的方式来确保上电后的NTB通路可用,但是这种方式显然对客户不太友好,而且会延长系统启动时间。为了从根本上解决这个问题,有必实现双NTB,通过完全对称的方式来使用NTB,彻底避免单NT对启动顺序的限制。

基于单NT的实现原理,以及参考设计和NTB芯片手册,我们可以实现下图所示意的双NT:

具体而言,可以通过下面的几个步骤来实现:

a.更新之前NT被禁止一侧的NTB eeprom, 把它配置成和NT使能一侧同样的设置:

b.设置本地和远端的地址转换寄存器

master 端virtual port 的地址转换寄存器设置成salve端NTB link port bar2/3或者bar4/5的mem 起始地址;

slave端 virtual port bar2/3或者bar4/5的地址转换寄存器设置成目的地址的总线地址;

这样做的目的是把远端的目的地址映射到远端bar2/3或bar4/5的PCI memory地址,把远端bar2/3或bar4/5的PCI memory地址映射到本地bar2/3或bar4/5的PCI memory地址。

在做master-slave Fail-over切换的时候,新的master/slave节点相关地址转换寄存器的值依旧依据上面的规则进行设置。

为了支持这种模式下更平滑的的fail-over,找到两组bar,比如一组是bar4/5,它用在节点0根据上面的规则访问节点1的时候,另外一组是bar2/3,它用在节点1根据上面的规则来访问节点0的时候,在此设置的情况下,即便发生系统级别的fail-over,也不需要更改任何地址转换寄存器的设置.

c . 设置ReqID

根据PLX Ethan Wan的证实,ReqID的设置和之前单NT一样。

转载于:https://blog.51cto.com/xiamachao/1883499

多功能PCIE交换机之七:单NT到双NT相关推荐

  1. 多功能PCIE交换机之三:PCIE非透明桥 cache一致性

    关于PCIE非透明桥 cache一致性 PCIE非透明桥提供了两种机制来从local node往remote node迁移数据,分别是基于地址映射和内嵌的 DMA.对remote节点而言,当它接受数据 ...

  2. PCIe交换机的作用和参数解读:PEX89144为例,PCIe交换机能做些什么

    引言 超微的SYS-821GE-TNHR/FTNHR服务器的PCIe扩展接口数量确实超过了第四代英特尔至强处理器所能提供的通道数.这是因为该服务器采用了一种称为PCIe交换机的硬件设备,它可以将少量P ...

  3. GD25LQ32ENIGR NOR 存储器、SLB9670VQ2.0模块应用、PM8533B-F3EI PCIe 交换机 接口

    FLASH - NOR 存储器:GD25LQ32ENIGR 8-USON(明佳达电子) 存储器类型:非易失 存储器格式:闪存 技术:FLASH - NOR 存储容量:32Mb 存储器组织:4M x 8 ...

  4. 跨交换机间单臂路由的实现方法

    跨交换机间单臂路由的实现方法 2007-06-11 17:13:37 标签:vlan 单臂路由 跨交换机 [推送到博客圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...

  5. vue + element-ui 对登录功能、重置表单、退出功能、路由重定向、挂载路由导航守卫的实现

    vue + element-ui 对登录功能.重置表单.退出功能.路由重定向.挂载路由导航守卫的实现 表单验证规则: 重置表单 和 对登录功能的验证: 路由重定向: 挂载路由导航守卫: 退出功能的实现 ...

  6. 二层交换机vlan单臂路由的配置

    一.实验目的 1.掌握vlan的基本原理和作用. 2.熟练掌握二层交换机vlan路由的定义. 3.熟练掌握二层交换机vlan单臂路由实验配置过程. 二.实验内容 1.绘制拓扑图,根据拓扑图进行试验: ...

  7. 什么是交换机?描述一下工作过程?交换机基本功能、交换机是如何转发数据包的,什么是三层交换机?和二层交换机有什么区别?三层交换机是否可以代替路由器?为什么?

    ** 14. 什么是交换机?描述一下工作过程? ** 交换机是一种工作在数据链路层对流量进行转发的网络设备.主要应用于延长传输距离,解决冲突域,实现单播等功能. ** 工作过程: **当流量进入交换机 ...

  8. BOS项目(SSH)04_02_修改密码功能-easyui的表单验证、表单检验 easyUI实现表单验证、如果加密的密码忘记了怎么办

    系列文章目录 文章目录 系列文章目录 前言 修改密码功能-easyui的表单检验 如果加密的密码忘记了怎么办 总结 前言 这些是easyUI帮我们做好的,我们只需要在easyUI里面声明好一些属性即可 ...

  9. proe输入数字时成双出现_罗斯蒙特温度变送器3144P单只和双只输入输出的的含义...

    罗斯蒙特温度变送器一共有三款,248温度变送器,这款是不带显示的,644温度变送器是带显示的,3144P温度变送器这款是带显示双输入温度变送器,罗斯蒙特3144P温度变送器具有卓越的测量精度.稳定性和 ...

最新文章

  1. 17个Python的骚操作,你都OK吗?
  2. 新闻媒体的“社会热点事件”催发微博客的诞生
  3. 第三章:Creating Utilities--24.一个交互式的计算器
  4. properties 配置回车_在Ubuntu上部署基于Docker的RSSHub,并配置SSL证书
  5. spacy库的安装与使用_为 SpaCy 提供的中文数据模型
  6. linux c之memcpy拷贝结构体到结构体、拷贝字符数组到结构体
  7. 嵌入式算法-傅里叶变换算法
  8. DAY06-Python入门学习-元组、字典、集合类型
  9. 利用ajax,巧妙的sql语句组合,轻松做出不错的树型菜单
  10. windows内存管理(2)
  11. python中pandas库里的read_table和read_csv的区别
  12. mysql几百万的表关联_mysql SQL优化,百万级2张表关联,从40分钟到3秒
  13. Docker contanier comunication with route
  14. 简单易用的网络调试工具——NetAssist
  15. 使用git进行word版本管理
  16. star法则开发简历模板_软件开发的第一法则
  17. 判断浏览器是否支持html5
  18. 【爬虫知识】浏览器开发者工具使用技巧总结
  19. IP协议详解【IP报文头部结构、IP分片、IP路由、IP转发】
  20. 微信小程序实现雪花飘落的效果

热门文章

  1. python爬虫--爬取豆瓣top250电影名
  2. Spring Data 开发环境搭建(二)
  3. Flask 应用最佳实践
  4. 接收POst数据流数据
  5. 性能强悍的开源关系数据库PostgreSQL
  6. 写给嵌入式方向的某些同学 - 基于WINCE系统的程序开发[不完整版]
  7. 【OpenCV】图像金字塔详解及编程实现
  8. 考会计中级职称能用计算机,2019年中级会计职称计算机考试操作常见问题答疑...
  9. python以读写方式打开文件_python 文件读写with open模式r,r+,w,w+,a,a+的区别
  10. php curl iis,解决IIS运行PHP出现Call to undefined function curl_init()的问题