基于UML的仲裁环公平访问算法研究

2011-08-11 08:22王蓟翔
通信技术 2011年9期
关键词:原语控制权环路

王蓟翔

0 引言

光纤通道(FC,Fibre Channel)协议由美国国家标准委员会(ANSI)负责制定和维护,具有很高的可靠性与实时性,适用于高带宽、多媒介、长距离传输[1],具有传输效率高、支持上层协议种类多、工业标准开放等特点[2],是倍受关注的通道标准和网络协议。

光纤通道协议具有分层结构,其中:FC-0与FC-1位与光纤通道底层。负责定义系统的物理链路、传输介质,为数据传输提供适应性编码方法。FC-2是中间层,主要功能是定义独立于上层协议的数据传输方法或机制,比如,分帧协议和流控制。上层协议包括 FC-3层和 FC-4层,它们不仅增强了纤维通道的功能还提供了更大范围内的互操作性。

光纤通道协议还提供了三种用于网络设计的拓扑结构:点到点、仲裁环和交换结构。所有拓扑结构都是基于GB/s数据传输速度的,其中有效带宽为100 MB/s(对于全双工模式可以达到200 MB/s)[3]。

现将重点研究仲裁环结构下的端口仲裁机制,结合UML语言进行系统建模,并且通过 C++代码实现端口类相关功能。

1 仲裁环拓扑的工作机制分析

1.1 端口寻址

仲裁环拓扑结构中,成环状连接的每一个端口都被分配一个物理地址(AL_PA),它能够确立该端口的优先级高低:地址越小,优先级越高。

光纤通道协议 FC-FS[4]提出了一种光纤通道通用的数据编码方式及寻址机制:8b/10b编码和地址的中型不均衡性机制。满足这 2个条件的有效地址覆盖从 hex'00'到 hex'EF'的总共127个数据。

1.2 仲裁机制

1.2.1 原语信号及端口历史变量

光纤通道仲裁环的有序集[5]是一个 32个比特位传输字。其中第一个字节是 K28.5专用字符。原语信号是有特殊意义的有序集,它分配传输过程中的动作或者事件,环路端口触发一次响应只需要接收一个原语信号。历史变量是一个二值变量,用来记忆端口操作过程,方便了系统其它部分随时检查端口之前的工作记录。

仲裁机制下的原语信号及端口历史变量如表 1和表 2所示。

表1 原语信号

表2 端口历史变量

1.2.2 公平访问算法

公平访问算法能够避免高优先级端口垄断环路。它通过需要发送消息的端口组成一个窗口,其中的端口都有机会申请仲裁并且赢得环路访问权。如果一个赢得控制权的端口没有完成所有数据的发送就放弃控制权,那么它必须等到所有端口都有一次访问了环路后,一个新的访问窗口开始建立时,重新赢得仲裁继续发送数据。

如果同一时刻多个端口竞争控制权,具有最高优先级AL_PA的那个才会赢。例如,某个端口正在仲裁,同时又收到了上游端口传来的 ARB(x),它就会将 AL_PA的值同自己的值进行比较,发送出优先级相对较高的 AL_PA的ARB(x)。所以在同时仲裁时,只有优先级最高的设备才能回收自己发出的ARB(x),从而赢得仲裁。

公平算法由 ARB(F0)监控:当一个环端口赢得仲裁时,它将所有接收到的原语信号都用 ARB(F0)代替,告知其他设备已经有端口赢得仲裁。而参与竞争的端口在收到ARB(F0)之后,又会用自己的 ARB(AL_PA)代替ARB(F0)(F0的优先级最低),告知取得控制权的端口,环路还有其他端口正在申请仲裁。因此,只要还有活跃的仲裁者在竞争控制权,ARB(F0)就会不断的流向当前的胜利者。

2 UML语言

作为一种可视化建模语言,UML在面向对象的系统分析与设计中得到了广泛的应用[6]。它能够可视化构造系统开发的各阶段,并提供丰富的表达方式,系统用户、分析人员、测试人员和管理人员都可以从 UML模型中无歧义地获取所需信息[7]。

标准建模语言UML 的主要内容可归纳为静态建模和动态建模两大类:其中用例图、 类图等主要用来描述系统的静态结构,活动图等主要描述系统对象之间的交互关系及相应的时序状态[8]。

3 基于仲裁机制的系统建模及代码实现

3.1 需求分析

端口需求分析如图1所示。

图1 仲裁机制需求分析

“底层电路”是光纤通道仲裁环协议硬件电路。主要负责定义光纤通道中的传输介质和传输速率;“上层请求”映射上层协议规则,使系统工作于不同的环境中,这里研究仲裁环环路端口的仲裁请求。“端口仲裁”是仲裁环端口竞争对环路控制权的工作机制。结合“接收数据”和“发送数据”完成数据接收、编码、格式转换等任务。

3.2 结构建模

根据环路仲裁机制设计的端口类如图2所示。

图2 仲裁环端口类

该类包含的端口属性有:仲裁历史变量以及端口物理地址;端口操作有:接收上层请求、接收下层数据、判断信号类型和发送信号及解析信号。

3.3 行为建模

行为建模是针对需求分析中“端口仲裁”这一用例,依赖“接收消息”和“发送消息”两个用例的业务流程建模。以不同原语信号作为消息,通过活动图描述不同端口类对象之间收发消息的关系,以及端口申请仲裁并且赢得环路控制权的过程。

假定环路拓扑为一个三端口结构,优先级高低顺序为端口2>端口1>端口3,端口连接方式为:端口1->端口2->端口3->端口1。详细行为建模如图3所示。

图3 环路仲裁行为建模

3.4 测试结果

根据以上建模结果,可以用 C++编写端口类(代码省略构造函数)及相关操作函数,对仲裁环环路端口从申请仲裁到赢得环路控制权这一工作机制进行软件实现。

初始化端口地址为hex'0xc1',所有历史变量都为0,上层发送仲裁请求,端口开始从底层依次接收原语信号:IDLE、ARB(E1)、ARB(A3)、ARB(F0)、ARB(C1)、ARB(E1)和IDLE、ARB(A3)。端口仲裁实现为图4所示。

图4 端口仲裁实现

4 结语

仲裁环拓扑结构是一种重要的光纤通道网络连接方式,它比交换结构简单,且较点对点拓扑灵活,有很强的研究意义。这里结合UML建模语言对公平访问算法进行重点分析。这种语言具有图形化的建模风格,让端口建模条理清晰、功能描述全面,适于在通信协议分析领域大范围推广。

[1]孙琦,吴勇,郑昕,等.光纤通道技术在统一航空电子网络中的应用[J].信息安全与通信保密,2009(05):80-82.

[2]于晓磊,陈绍纬,周虎.FC-AE-1553B通信结构的仿真研究[J]. 信息安全与通信保密,2010(05):52-54.

[3]NGT.存储区域网概念与应用[M].北京:人民邮电出版社,2002.

[4]INCITS.Fibre Channel-Framing And Signaling(FC-FS).[EB/OL].(2008-10-23)[2011-02-11]. http://www.t11.org/ftp/t11/pub/fc/fs-3/08-137v3.pdf.

[5]INCITS. Fibre Channel Arbitrated Loop(FC-AL-2).[EB/OL].(1999-06-28)[2011-02-11].http://www.t11.org/ftp/t11/member/fc/al-2/99-524v0.pdf.

[6]BOOCH G. Object-oriented Analysis and Design with Applications[M]. USA:Benjamin/Cummings Publishing Company,1994.

[7]张龙祥.UML与系统分析设计[M].北京:人民邮电出版社,2001.

[8]方红萍,陈和平.信息系统建模研究[J].计算机工程与设计,2006,27(09):3613.

[9]郭宁.UML及建模[M].北京:清华大学出版社,2007:66-76.

猜你喜欢
原语控制权环路
神农科技集团正式接收广誉远控制权
公司控制权的来源
FF陷控制权争夺漩涡
上市公司控制权争夺中独立董事的义务——以万华之争为例
选取环路切换策略的高动态载波跟踪算法研究*
几种环路稳定性仿真方法介绍
浅谈旅游翻译中文化差异的处理
基于ZigBee协议栈的PHY服务研究
单脉冲雷达导引头角度跟踪环路半实物仿真
莫斯科地铁计划于2019—2020年推出第三换乘环路