在pcie总线上传输报文的方法、设备和系统的制作方法

文档序号:7578011阅读:183来源:国知局
专利名称:在pcie总线上传输报文的方法、设备和系统的制作方法
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种在快速局部 (PeripheralComponent Interconnect Express,简称为PCIE)总线上传输报文的方法、设 备和系统。
背景技术
小型计算机系统接口(Small Computer System Interface,简称为SCSI)协议 是一种被广泛应用于计算机与外围输入输出anput/Output,简称为1/0)设备(如硬盘、 软驱、光驱、打印机、扫描仪等)通信的协议族,在计算机与存储设备的通信应用中尤为广 泛。SCSI协议通常采用客户机-服务器架构。其中,在SCSI协议中客户机又称为启动器 (Initiator),服务器又称为目标器(Target)。启动器可以向目标器发送命令请求服务,目 标器执行完请求后向启动器返回执行结果,实现启动器和目标器之间的交互过程。其中的 命令请求服务可以但不限于包括如下指令inquiry,标识查询目标器的详细信息;Iteport LUNs,要求目标器汇报逻辑单元号情况;format Unit,要求目标器格式化;READ,向目标器 发送读数据请求;WRITE,向目标器发送写数据请求等等。现有技术中,主机和存储设备之间进行数据交互,目标器和启动器之间传输SCSI 协议报文,例如通过串行连接小型计算机系统接口(Serial AttachedSCSI,简称为SAS) 艮文、Internet 小型计算机系统接口 (Internet SmallComputer System Interface,简称 为iSCSI)报文,在启动器和目标器上需要通过特定的物理设备或者特定的适配器进行协 议的转换,在启动器本地,一般的,例如,对于SCSI的启动器端,需要SCSI的特定的适配器, 对于SAS的启动器端,需要SCSI特定的适配器,其中,启动器和目标器之间通过SCSI或SAS 的线缆进行连接,相应的,在目标器端,需要配置SCSI特定的适配器或SAS特定的适配器, 对于iSCSI或以太网光纤通道(Fibre Channel overEthernet,FCoE)需要以太网进行连 接,目标器端需要配置以太网适配器,对于光纤通道需要光纤通道进行连接,目标器端需要 配置光纤通道适配器。对于这种特定的物理设备或者特定的适配器,需要分别安装在启动 器和目标器上并且进行相应的配置才能实现协议的转换,进而使得启动器和目标器之间可 以实现数据传输交互。然而,这种安装在启动器和目标器上的特定的物理设备或者特定的适配器,数据 存储和访问需要附接于网络实现,由于其自身带宽的限制,会严重影响数据传输的传输速 度,对网络传输的依赖性较强,出现的网络传输延迟等状况也会影响数据传输和存储的速 度,即使是现有的服务器通过DAS进行附加存储,也需要特定的物理设备或者特定的适配 器,上述方式势必会提高设备或系统的成本,影响其市场竞争力。

发明内容
本发明实施例提供一种在PCIE总线上传输报文的方法、设备和系统,用以实现在 PCIE总线上直接传输SCSI协议报文,不需要特定的物理设备或者适配器进行协议的转换,提高了报文的传输速度,降低了设备的成本。本发明实施例提供一种在PCIE总线上传输报文的方法,包括发送端设备对小型计算机系统接口 SCSI协议报文进行封装,得到已封装的SCSI 协议报文;将所述已封装的SCSI协议报文携带在PCIE数据包中,并通过PCIE总线将所述 PCIE数据包发送给接收端设备,以使所述接收端设备从所述PCIE数据包中解析出所述 SCSI协议报文后根据所述SCSI协议报文的指令执行相应操作。本发明实施例还提供了一种在PCIE总线上传输报文的设备,包括封装模块,用于对小型计算机接口 SCSI协议报文进行封装,得到已封装的SCSI协 议报文;发送模块,用于将所述已封装的SCSI协议报文携带在PCIE数据包中,并通过PCIE 总线将所述PCIE数据包发送给接收端设备,以使所述接收端设备从所述PCIE数据包中解 析出所述SCSI协议报文后根据所述SCSI协议报文的指令执行相应操作。本发明实施例又提供了一种在PCIE总线上传输报文的系统,包括发送端设备和 接收端设备;所述发送端设备包括封装模块,用于对小型计算机接口 SCSI协议报文进行封装,得到已封装的SCSI协 议报文;发送模块,用于将所述已封装的SCSI协议报文携带在PCIE数据包的处理层协议 TLP包中,并通过PCIE总线将所述PCIE数据包发送给所述接收端设备;所述接收端设备包括解析模块,用于从所述PCIE数据包中解析出所述SCSI协议报文;执行模块,用于根据所述SCSI协议报文的指令执行相应操作。本发明实施例提供的在PCIE总线上传输报文的方法、设备和系统,通过对SCSI协 议报文进行封装后得到已封装的SCSI协议报文,并将已封装的SCSI协议报文携带在PCIE 数据包中,并通过PCIE总线将携带有已封装的SCSI协议报文的PCIE数据包传输给接收端 设备,实现了在PCIE总线上传输SCSI协议报文,使得通过PCIE总线建立彼此连接的任意 设备之间均可以通过SCSI协议报文进行相互的操作,且数据传输的带宽高、处理速度快, 不需要特定的物理设备或者适配器进行协议的转换,应用在存储设备上,可以不依赖于网 络附接存储的方式,减少了网络传输的延迟对数据访问和存储的影响,从而提高了报文的 传输速度,例如,由于通过系统总线进行数据传输,不需要物理线缆和特定的适配器等,可 以降低设备的成本;同时,通过在PCIE总线上传递SCSI协议报文,使得通过PCIE总线连接 的两设备之间可以通过SCSI协议报文进行相互的操作,例如,可以将将存储设备通过SCSI 接口直接连接到一台计算机上,而不需要定义各种私有的协议进行相互的操作,提升了存 储设备的通用性。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发
6明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根 据这些附图获得其他的附图。图1为本发明一个实施例提供的在PCIE总线上传输报文的方法流程图;图2为本发明一个实施例提供的在PCIE总线上传输报文的设备结构示意图;图3为本发明一个实施例提供的在PCIE总线上传输报文的系统结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明一个实施例提供的在PCIE总线上传输报文的方法流程图,如图1所 示,该方法包括步骤101 发送端设备对SCSI协议报文进行封装,得到已封装的SCSI协议报文, 并将已封装的SCSI协议报文携带在PCIE数据包中;其中,本实施例中的“封装”实际上指的是将SCSI协议报文映射为符合PCIE数据 包的形式的一种做法。其中,可以将已封装SCSI协议报文携带在PCIE的处理层协议(Transaction Layer Protocol,简称为TLP)包中。SCSI协议报文PCIE数据包中具体的位置可以如表1 中所示本发明实施例提供的PCIE数据包的格式示意图。表 1
帧开始DLLP 头TLP头已封装了 SCSIECRCLCRC帧结束协议I艮文的TLP包其中,有多种情况可以使得发送端设备将SCSI协议报文进行封装后携带在PCIE 数据包中,例如,计算机应用程序或者CPU希望通过PCIE总线对某一设备进行读写操作,则 会将读写请求转换为SCSI读写命令并对其进行封装,然后携带在PCIE数据包中。或者,某 一通过PCIE总线与计算机相连接的设备接收到计算机通过PCIE总线发送的请求报文后需 要返回响应报文时,该设备会将响应报文转换为SCSI响应报文并对其进行封装,然后携带 在PCIE数据包中。其中,如果PCIE数据包的TLP包中携带的已封装的SCSI协议报文为命令请求报 文,则发送端设备为启动器,接收端设备为目标器,封装有SCSI协议报文的TLP包可以但不 限于如表2所示表 权利要求
1.一种在快速局部PCIE总线上传输报文的方法,其特征在于,包括发送端设备对小型计算机系统接口 SCSI协议报文进行封装,得到已封装的SCSI协议 报文;将所述已封装的SCSI协议报文携带在PCIE数据包中,并通过PCIE总线将所述PCIE 数据包发送给接收端设备,以使所述接收端设备从所述PCIE数据包中解析出所述SCSI协 议报文后根据所述SCSI协议报文的指令执行相应操作。
2.根据权利要求1所述的方法,其特征在于,所述将所述已封装的SCSI协议报文携带 在PCIE数据包中包括将所述已封装的SCSI协议报文携带在所述PCIE数据包的处理层协议TLP包中。
3.根据权利要求1或2所述的方法,其特征在于,如果所述SCSI协议报文为SCSI命令 请求报文,则所述发送端设备为启动器,所述接收端设备为目标器;相应的,所述对SCSI协议报文进行封装包括 用操作类型指示所述SCSI协议报文为SCSI命令请求报文; 用命令描述块CDB指示所述SCSI命令请求报文的具体命令; 用逻辑单元号LUN指示所述SCSI命令请求报文的具体操作对象。
4.根据权利要求3所述的方法,其特征在于,所述对SCSI协议报文进行封装还包括 用命令指示位指示所述SCSI命令请求报文为读请求或写请求;用读数据长度指示所述启动器期望从所述目标器获取的数据长度; 用读缓冲区地址指示所述目标器将数据发送到读缓冲区; 用写数据长度指示所述启动器期望写入所述目标器的数据长度; 用写缓冲区地址指示所述目标器从所述写缓冲区中读取数据。
5.根据权利要求1或2所述的报文,其特征在于,如果所述SCSI协议报文为SCSI命令 响应报文,则所述发送端设备为目标器,所述接收端设备为启动器;相应的,所述对SCSI协议报文进行封装包括用操作类型指示所述SCSI协议报文为SCSI命令响应报文;用状态指示位指示SCSI命令请求报文的完成状态。
6.根据权利要求5所述的方法,其特征在于,所述对SCSI协议报文进行封装还包括 用溢出指示位指示数据溢出;用剩余数指示数据溢出的长度;用检测数据指示所述目标器反馈给所述启动器的附加数据。
7.根据权利要求1或2所述的方法,其特征在于,如果所述SCSI协议报文为SCSI任务 管理请求报文,则所述发送端设备为启动器,所述接收端设备为目标器;相应的,所述对SCSI协议报文进行封装包括用操作类型指示所述SCSI协议报文为SCSI任务管理请求报文;用功能指示所述启动器请求的任务管理内容;用逻辑单元号LUN指示具体操作对象。
8.根据权利要求1或2所述的方法,其特征在于,如果所述SCSI协议报文为SCSI任务 管理响应报文,则所述发送端设备为目标器,所述接收端设备为启动器;相应的,所述对SCSI协议报文进行封装包括用操作类型指示所述SCSI协议报文为SCSI任务管理响应报文;用响应结果指示SCSI任务管理请求报文的执行结果。
9.根据权利要求1或2所述的方法,其特征在于,如果所述SCSI协议报文为SCSI异步 事件报文,则所述发送端设备为目标器,所述接收端设备为启动器;相应的,所述对SCSI协议报文进行封装包括用操作类型指示所述SCSI协议报文为SCSI异步事件;用检测数据指示所述目标器的异常状况。
10.一种在快速局部PCIE总线上传输报文的设备,其特征在于,包括封装模块,用于对小型计算机接口 SCSI协议报文进行封装,得到已封装的SCSI协议报文;发送模块,用于将所述已封装的SCSI协议报文携带在PCIE数据包中,并通过PCIE总 线将所述PCIE数据包发送给接收端设备,以使所述接收端设备从所述PCIE数据包中解析 出所述SCSI协议报文后根据所述SCSI协议报文的指令执行相应操作。
11.根据权利要求10所述的设备,其特征在于,所述发送模块用于将所述已封装的SCSI协议报文携带在所述PCIE数据包的处理层协议TLP包中。
12.根据权利要求10或11所述的设备,其特征在于,如果所述SCSI协议报文为SCSI 命令请求报文,则所述封装模块包括第一封装单元,用操作类型指示所述SCSI协议报文为SCSI命令请求报文;用命令描述 块CDB指示所述SCSI命令请求报文的具体命令;以及,用逻辑单元号LUN指示所述SCSI命 令请求报文的具体操作对象。
13.根据权利要求12所述的设备,其特征在于,所述封装模块还包括第二封装单元,用命令指示位指示所述SCSI命令请求报文为读请求或写请求;用读 数据长度指示所述启动器期望从所述目标器获取的数据长度;用读缓冲区地址指示所述目 标器将数据发送到读缓冲区;用写数据长度指示所述启动器期望写入所述目标器的数据长 度;用写缓冲区地址指示所述目标器从所述写缓冲区中读取数据。
14.根据权利要求10或11所述的设备,其特征在于,如果所述SCSI协议报文为SCSI 命令响应报文,所述封装模块包括第三封装单元,用操作类型指示所述SCSI协议报文为SCSI命令响应报文;用状态指示 位指示SCSI命令请求报文的完成状态;第四封装单元,用溢出指示位指示数据溢出;用剩余数指示数据溢出的长度;用检测 数据指示所述目标器反馈给所述启动器的附加数据。
15.根据权利要求10或11所述的设备,其特征在于,如果所述SCSI协议报文为SCSI 任务管理请求报文,所述封装模块包括第五封装单元,用操作类型指示所述SCSI协议报文为SCSI任务管理请求报文;用功能 指示所述启动器请求的任务管理内容;用逻辑单元号LUN指示具体操作对象。
16.根据权利要求10或11所述的设备,其特征在于,如果所述SCSI协议报文为SCSI 任务管理响应报文,所述封装模块包括第六封装单元,用操作类型指示所述SCSI协议报文为SCSI任务管理响应报文;用响应 结果指示SCSI任务管理请求报文的执行结果。
17.根据权利要求10或11所述的设备,其特征在于,如果所述SCSI协议报文为SCSI 异步事件报文,所述封装模块包括第七封装单元,用操作类型指示所述SCSI协议报文为SCSI异步事件;用检测数据指示 所述目标器的异常状况。
18.一种在快速局部PCIE总线上传输报文的系统,其特征在于,包括发送端设备和接 收端设备;所述发送端设备包括封装模块,用于对小型计算机接口 SCSI协议报文进行封装,得到已封装的SCSI协议报文;发送模块,用于将所述已封装的SCSI协议报文携带在PCIE数据包的处理层协议TLP 包中,并通过PCIE总线将所述PCIE数据包发送给所述接收端设备; 所述接收端设备包括解析模块,用于从所述PCIE数据包中解析出所述SCSI协议报文; 执行模块,用于根据所述SCSI协议报文的指令执行相应操作。
全文摘要
本发明实施例提供一种在PCIE总线上传输报文的方法、设备和系统。方法包括发送端设备对小型计算机系统接口SCSI协议报文进行封装,得到已封装的SCSI协议报文;将所述已封装的SCSI协议报文携带在PCIE数据包中,并通过PCIE总线将所述PCIE数据包发送给接收端设备,以使所述接收端设备从所述PCIE数据包中解析出所述SCSI协议报文后根据所述SCSI协议报文的指令执行相应操作。设备包括封装模块和发送模块。系统包括发送端设备和接收端设备。本发明实施例提供的方案,数据传输的带宽高、处理速度快,通用性好,成本低。
文档编号H04L12/56GK102075401SQ20111003217
公开日2011年5月25日 申请日期2011年1月28日 优先权日2011年1月28日
发明者李科, 高志宏 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1