【对存储器通道MC构架传输系统的研究分析】四通道主板

  摘 要:集群系统可以将多台同构或异构的计算机连接起来协同完成特定的任务。本文通过从MC系统基本概念、功能等分析,结合MC的工作原理,提出了基于标准PCI总线的分布共享存储器的组建及关键技术在数据传输过程中的应用。
  关键词:存储通道;MC;PCI总线
  中图分类号:TN915.142 文献标识码:A随着计算机互联技术发展的日新月异,集群技术的应用也越来越深入和广泛,通过集群系统可以将多台同构或异构的计算机连接起来协同完成特定的任务,因此我们考虑利用基于集群技术的存储通道MC系统来实现数据的传输。
  1 基本概念和结构
  1.1 DEC设计存储器通道(MC)所要达到的技术目标
  ●技术性能定位在SMP和标准网络之间,带宽100MB/s、延迟5s、开销0.5s;●高可靠性,提供自动切换、错误修复等支持。
  1.2 MC技术能够提供的功能
  ●32位数据通道;●由硬件自动实现对MC通道检/纠错功能,提供消息无错到达检测原语,可以保证MC系统信道具有10-16的传输出错率;●全部有硬件实现流控制,严格的消息顺序控制,保证消息A的传输错误对正在传输的消息B没有任何影响;●MC上的节点互联,采用32位16入口单级交叉开关结构,支持MC节点之间点到点、选播和广播通信方式。
  2 MC的工作原理
  2.1 MC技术的定义
  MC为一个基于标准PCI总线的分布共享存储器方案。MC通过提供一个存储器映射电路,实现源节点的一个虚拟存储器(VM)页面到目标节点的一个物理存储器(PM)页面的写连接,而目标节点通过本节点VM到PM的存储器读映射,完成数据的读取,从而实现源节点一个只写VM页面到目标节点的一个只读VM的连接。在MC上连接的所有计算机节点称之为簇节点。
  2.2 程序中使用MC连接的工作过程
  图1说明MC簇中两个簇节点之间虚拟存储器空间的连接。在图1中节点1虚页A(只写)与节点2的虚页E连接(只读);节点2的虚页F(只写)与节点1的虚页J连接(只读)。
  
  图1 程序中使用MC连接的工作过程
  2.2.1 节点1的虚页A(只写)与节点2的虚页E连接(只读)的情形
  应用程序通过系统调用,申请获得MC页C。
  节点1定义页面C为只写,它在节点1虚存空间中为A。节点1的存储器虚实转换将页A对应到节点1的发送窗,即页B,这是一个I/O空间;页B通过MC接口板上的PCT完成到MC页面C的映射。
  节点2定义MC页C为只读,它在节点2虚存空间中为E。节点2的存储器虚实转换将页E对应到节点2的物理存储器页D,这是一个只读页;页C通过节点2的MC接口板上的PCT完成到MC页面C到节点2物理存储器页面D的映射,这个映射由节点2的PCT控制,由DMA通道完成映射。
  节点1对页面A的写操作,经过一段时间(约5 s),就可以出现在节点2的物理存储器页面D中。节点2的应用程序可以通过读页面E而取得节点1的数据。
  节点2的虚页F(只写)与节点1的虚页J连接(只读)的连接过程与此相似。
  从程序使用MC连接的过程中可以看出,程序只能通过虚实地址转换来访问MC空间,因此,程序的可靠性和安全性是有充分保证的。这种使用MC的可靠性和安全性是由系统的虚拟存储器管理系统的保护机制和安全机制提供的。MC空间的使用与程序存储器空间的使用具有类似的步骤和相同的可靠性。
  2.2.2 MC映射的一些可控制特性
  为了便于程序设计控制,MC在定义存储器映射时允许定义MC的以下一些控制位:
  ●发送位(只写);●接收位(只读);●广播、选播或点到点方式定义;●本节点复制特性;●所有节点完成接收标志;●写中断
  这些控制位在节点连接MC页面时给予定义。
  2.2.3 连接示例
  图2表示使用MC进行广播、选播或点到点通信方式的连接示例。数字1、2和3分别代表三个连接,即“连接1”、“连接2”和“连接3”。
  图2中的连接分别表示了下面连接示例:
  连接1:具有写时中断的单向点到点连接。由节点1写,节点3接收。
  连接2:单向广播。由节点3写,所有节点接收。
  连接3:双向选播。节点2和4写,节点2和4接收。
  从图2中可以看出,连接是以MC空间为标准的,即使用同一块MC空间的为同一个连接。
  2.2.4 MC连接特性参数
  MC是基于存储器页面的连接,因此它的连接以页面为粒度。在Alpha系统中,页面大小为8KB。
  目前的每个MC簇通过MC可以建立64K个连接,由于每个连接的粒度为一个页面(8KB),所以在一个MC簇中,可以使用的MC总空间最大为
  64K×8KB=512MB
  这也就是MC目前能够提供的最大簇通信空间。
  2.3 MC硬件实现技术
  图3说明MC连接中CPU、存储器、I/O接口和MC通道之间的连接关系。其中MC卡是一块占用一个PCI插槽的PCI卡,其输出通道占用512MB只写PCI存储器空间,输入通道占用另外一个512MB的PCI存储器空间。这两个512MB可以在4GB的PCI存储器空间中的任意位置。
  
  图3 MC网络的实际连接
  2.3.1节点1的CPU访问节点2的存储器
  节点1:
  执行一条存指令,指令地址在MC空间,被映射到MC发窗,MC的发窗为I/O 空间,因此指令操作通过CPU的cache、Buffers和系统总线,进入PCI总线。
  PCI总线对写进行译码,选中MC卡发送通道。
  利用MC卡上的PCT信息对数据打包,形成MC包。MC包由报头、数据和包尾组成。报头为目标节点标识,包尾为32位的CRC校验数据。
  送入MC网络。
  节点2:
  MC卡接收MC网络上来的数据,对其进行解包,去掉头尾,得到数据;
  使用MC卡上的PCT信息,根据数据包地址映射到节点2 的物理存储器地址;
  与一般的I/O设备一样,MC卡通过总线桥,将数据送入物理存储器中。
  2.3.2节点2的I/O设备访问节点1的存储器
  PCI上的I/O设备可以象CPU一样直接访问MC卡,称为I/O到MC直达。使用I/O到MC直达,节点无须通过其它节点访问盘,盘会主动将数据送到最终需要的节点。
  2.3.3 MC通信与cache数据的问题
  由节点1送到节点2存储器单元中的数据,允许节点2进入cache。因为DEC和Intel的CPU都支持这种外部数据到存储器时的cache数据一致性校验。当MC的接收通道通过总线桥将数据送入目标节点存储器时,同时引起CPU中cache数据的一致性校验。
  2.4 MC系统下软件的结构和功能简介
  MC系统下软件的结构如图4所示。
  参考文献
  [1]鲁士文.计算机网络原理与网络技术[M].北京:机械工业出版社,1996.
  [2]Andrew S. Tanenbaum.计算机网络[M].清华大学出版社,1998.
  [3]许广斌.基于linux的集群系统[J].2001.