基于帧的数据传送并行处理的制作方法

文档序号:7639604阅读:146来源:国知局
专利名称:基于帧的数据传送并行处理的制作方法
基于帧的数据传送并行处理发明背景信息帧或分组可用于与存储装置或传送数据的其它装置通信,存储装置如有SAS(串行连接SCSI(小型计算机系统接口》HBA(主机总 线适配器)(信息技术-串行连接SCSI (SAS)、美国国家标准协会 (ANSI)国际信息技术委员会标准(INCITS) 376-2003)、 FC(光纤信道) HBA(光纤信道组帧和信令接口, ANSI/INCITS 373:2003)、 iSCSI(因特 网小型计算机系统接口) HBA(Internet Engineering Task Force Request for Comment 3720)等。从装置接收的帧能够以串行方式由固件或硬件 处理。为保持线速率,帧处理时间必须小于或等于帧接收时间。在输 ^/输出(1/0)链路速度增大时,可用于处理链路上接收帧的时间会减 少。信息帧的大小是可变化的。每个帧可包括信息单元和组帧信息, 该信息提供有关帧及其包含的信息单元的信息。传输层可负责处理诸如HBA等装置接收或发送的帧。传输层可 包括接收帧处理器,以接收帧,确定帧类型,验证帧是否有效,以及 使帧得到适当地处理。如果接收帧处理器接收具有较小信息单元的几个帧,则接收帧处 理器可能将需要比发送时间更多的时间来处理这些帧。这可能要求数 据链路停止,因此会降低数据链路的有效传输速度。


图1是实施本发明的基于帧的数据传送装置方框图。图2是实施本发明的另一基于帧的数据传送装置方框图。表。; 、、、"、、、"'、图5是实施本发明的另一基于帧的数据传送系统的方框图。 图6A-6C是体现本发明的从链路层接口传送成帧数据的方法的流 程图。图7是示出使用本发明实施例的数据传送示范时序的图表。
具体实施方式
图1显示了实施本发明的基于帧的数据传送装置10。基于帧的数 据传送装置10包括接收帧解析器14、接收帧处理器18和直接存储器 存取(DMA)引擎24。接收帧解析器14从链路层接口 12接收帧,在接 收报头队歹ll(headerqueue)16中存储帧的组帧信息,并且在信息单元緩 冲器22中存储帧的信息单元。接收帧解析器14可在帧可用于进一步 处理前检查帧中的错误。基于帧的数据传送可通过诸如串行连接SCSI (SAS)接口等可根据 功能或"协议层"层次结构定义的串行连接进行。例如,SAS体系结构 从上部层到下部层包括应用层、传输层、端口层、链路层、Phy层和 物理层。物理层定义串行连接的电气特征。Phy层定义在物理层与链 路层之间提供接口的编码和信令。SAS链路层定义原语、地址帧和连 接。链路层管理端口层与Phy层之间的连接并发射帧。端口层监视更 低层的操作,如指引连接的打开和关闭和选择要发送各帧的phy。端 口层是已经描述的较低层与包括传输层和应用层的更高层之间的接 口。如图1实施例中所示的接收帧解析器14、接收帧处理器18和DMA 引擎24可常驻在一般执行帧处理的传输层。信息帧大小可变化。每个帧可包括信息单元和组帧信息,该组帧 信息提供有关帧及其包含的信息单元的信息。图3显示在SAS协议中 使用的示范信息帧。图4显示可在SAS协议中使用的示范帧类型。要 注意的是,示范帧可包含大小可变的信息单元和固定量的开销信息。例如,如图4所示,示范DATA帧的信息单元可具有1到1024字节 的数据。诸如XFER一RDY和TASK等示范数据帧具有小的固定大小 和固定量的开销信息。在连续接收具有较小信息单元的多个帧时,必 须非常快地处理已接收帧以避免要停止帧输送。具有1024字节信息 单元(IU)和28字节组帧信息的DATA帧在每秒3 GB(Gb/s)速率的数据 链路上发射将占用3.5微秒(us)。如果IU是4字节,则发射帧将占用 133微微秒(ps)。在两种情况下,28字节的开销信息都需要由接收帧 处理器处理。术语"上下文"用地描述包括一个或多个数据帧和控制帧以执行 I/O数据传送的整个I/O数据传送的状态。上下文维持每个I/O数据传 送的状态,以便即使其处理可能与其它无关的1/0数据传送处理交织 在一起时,它也可得到连贯处理。上下文可包括诸如以下所示的字段1/0传送类型-读或写(入局或出局),对于其它I/0传送类型,上 下文字段以下述字段不同的方式定义1/0传送长度-可包括许多数据帧/分组源装置地址(例如,SAS地址、光纤信道地址)目标装置地址源I/O标记目标I/O标记4空制标志数据/緩冲器散集列表(SGL)协议类型,如SCSI、串行高级技术连接(SATA)等 为支持已接收帧的并行处理或流水线处理而在上下文中无资源冲 突,上下文必须分成两个或更多个区,如传输层任务上下文和DMA 任务上下文。因此,不同的任务可同时访问其相应的上下文部分。接收帧处理器18耦合到接收报头队列16。接收帧处理器18读取 如组帧信息标记字段中确定的传输层任务上下文,从传输层任务上下 文和组帧信息确定如何处理处理帧,生成DMA描述符,并存储更新8的传输层任务上下文。DMA描述符提供DMA引擎传送帧中包括的数 据所需的信息。DMA引擎24耦合到信息单元緩冲器22和接收帧处理器18。 DMA 引擎24读取DMA任务上下文,通过处理DMA描述符将信息单元传 送到目标存储器28,并存储更新的DMA任务上下文。接收帧处理器18和DMA引擎24能够并行操作,这是因为接收 帧处理器执行的操作所需的传输层任务上下文和DMA引擎执行的操 作所需的DMA任务上下文相互单独存储。传输层任务上下文存储器 20可耦合到接收帧处理器18以存储传输层任务上下文。DMA任务上 下文存储器26可耦合到DMA引擎24以存储DMA任务上下文。传 输层任务上下文存储器20可专用于接收帧处理器18。 DMA任务上下 文存储器26可专用于DMA引擎24。传输层任务上下文存储器20和 DMA任务上下文存储器26可布置为允许并发访问。图2显示实施本发明的另一基于帧的数据传送装置40。在此实施 例中,任务上下文高速緩存控制器60耦合到接收帧处理器48、传输 层任务上下文存储器50、DMA引擎54及DMA任务上下文存储器56。 任务上下文高速緩存控制器60可并行接收和处理来自接收帧处理器 48和DMA引擎54的传输层任务上下文存储器50和DMA任务上下 文存储器56的请求。图5显示实施本发明的基于帧的数据传送系统10。诸如串行连接 小型计算机系统接口 (SASI)磁盘驱动器等使用基于帧的数据传送的磁 盘驱动器70通过串行接口 42耦合到基于帧的数据传送装置40,如图 1或图2的装置。基于帧的数据传送装置40接收可包括用于目标存储 器58的数据的数据帧。基于帧的数据传送装置40如上所述地处理帧 以便为目标存储器58分离和传送数据。图6A-6C是体现本发明的从链路层接口传送成帧数据的方法流程 图。图6A是执行帧解析任务100的流程图。帧解析任务包括从链路 层接口接收帧102,在接收报头队列中存储帧的组帧信息104,以及在信息单元緩冲器中存储帧的信息单元。帧解析任务100还可包括检查帧中的错误108。将理解,帧解析任务100中的操作可以用所示顺 序外的其它顺序执行。帧解析任务100的一个或多个操作可并行执行, 而不是如所示按顺序执行。图6B是执行传输层任务110的流程图。传输层任务包括读取组 帧信息中标记字段确定的传输层任务上下文112,从传输层任务上下 文和组帧信息确定如何处理帧114,生成DMA描述符116,以及存储 更新的传输层任务上下文118。传输层任务上下文可从传输层任务上 下文存储器中读取,也可存储到其中。传输层任务上下文存储器可专 用于执行传输层任务。传输层任务110的一个或多个操作可并行或以 流水线形式执行,而不是如图6B所示按序执行。图6C是执行直接存储器存取(DMA)任务120的流程图。DMA任 务包括读取DMA任务上下文122,通过处理前一个生成的第二DMA 描述符将先前存储的第二信息单元传送到目标存储器124,以及存储 更新的DMA任务上下文126。 DMA任务上下文可从DMA任务上下 文存储器中读取,也可存储到其中。DMA任务上下文存储器专用于 执行DMA任务。DMA任务120的一个或多个操作可并行或以流水线 形式执行,而不是如图6C所示按序执行。DMA任务120可与传输层任务110同时执行,DMA任务在由帧 解析任务100先前存储的信息单元上操作,并使用由传输层任务先前 生成的DMA描述符。数据处理的结果并行性可使得停止数据传送到 基于帧的数据传送装置的需要降低,特别是在连续接收具有小信息单 元的多个帧时。将理解,所述示范任务还可并行处理以进一步减少数 据帧的网络处理时间。在一个实施例中,帧解析任务100和传输层任 务110按顺序交替执行,并且DMA任务120与该任务的组合并行执 行。可同时访问传输层任务上下文存储器和DMA任务上下文存储器, 以促进传输层任务和DMA任务的并行执行。图7是示出使用本发明实施例的数据传送示范时序的图表。它示出了连续接收示为A、 B和C的三个帧。笫一个帧A由帧解析任务接 收和解析IOOA。帧解析可以是相对筒单和快速的操作,能够以链路 层接口数据传送速率或近乎该速率完成。例如,解析图3所示示范帧 可包括通过计算已接收帧的循环冗余校验码(CRC)并与帧中提供的 CRC值进行比较而验证帧的正确性。解析还可包括提取包括的信息, 如数据长度和地址,并使该信息可供数据传送进程使用。随后的帧在 接收时纟皮解析100B、 100C。一旦帧A一皮解析100A,该帧的传输层任务110A便可开始。传输 层任务可以是更耗时的任务,可能占用比具有小信息单元帧传输时间 更长的时间。在所示示例时间中,巾贞B的解析100B在帧A的传输层 任务110A之前结束。因此,在帧B的解析100B结束的时间与帧B 的传输层任务110B开始之间存在延迟。所示示范时序也显示在帧C 的解析100C结束的时间与帧C的传输层任务110C开始之间的延迟。 如图所示,传输层任务所需的时间对于所有帧可能较一致,而无论信 息单元的大小如何。一旦帧A传输层任务11 OA完成,帧A DMA任务120A便可开始。 #见要传送到目标存储器的信息单元大小而定,DMA任务所需的时间或在前一帧的DMA任务完成后开始。如图7所示,帧B DMA任务 120B未在帧B传输层任务110B完成时开始,这是因为它必须等待帧 ADMA任务120A完成。另一方面,帧CDMA任务120C在帧B DMA 任务120B完成时无法开始,这是因为它必须等待帧C传输层任务 110C完成。虽然某些示范实施例已描述并在附图中显示,^f旦要理解,此类实 施例只是为了说明并非限制广义的发明。例如,本发明的实施例可用 于多种基于帧的数据传送协议,包括但不限于用于与SAS SCSI目标 通信的串行SCSI协议(SSP)、用于与串行ATA目标通信的SATA隧 道协议(STP)、用于与SAS域中存在的SAS扩展器装置通信并管理其的串行管理协议(SMP)、用于与FC集线器、交换机和域控制器通信并 管理其的光纤信道协议(FCP),及用于通过网络与SASSCSI目标通信 的因持网SCSI(iSCSI)。由于本领域的技术人员可明白各种其它修改, 因此,本发明实施例并不限于所示和所述的特定构造和布置。
权利要求
1.一种基于帧的数据传送装置,包括接收帧解析器,以接收帧,将来自所述帧的组帧信息存储在接收报头队列中,并且将来自所述帧的信息单元存储在信息单元缓冲器中;耦合到所述接收报头队列的接收帧处理器,所述接收帧处理器读取由所述组帧信息中标记字段所确定的传输层任务上下文,从所述传输层任务上下文和所述组帧信息来确定如何处理所述帧,生成DMA描述符,并存储更新的传输层任务上下文;以及耦合到所述信息单元缓冲器和所述接收帧处理器的直接存储器存取(DMA)引擎,所述DMA引擎读取DMA任务上下文,通过处理所述DMA描述符而将所述信息单元传送到目标存储器,并存储更新的DMA任务上下文。
2. 如权利要求1所述的基于帧的数据传送装置,其特征在于,所 述接收帧处理器和所述DMA引擎并行运行。
3. 如权利要求1所述的基于帧的数据传送装置,其特征在于,还 包括耦合到所述接收帧处理器以存储所述传输层任务上下文的传输 层任务上下文存储器,和耦合到所述DMA引擎以存储所述DMA任 务上下文的DMA任务上下文存储器。
4. 如权利要求3所述的基于帧的数据传送装置,其特征在于,所 述传输层任务上下文存储器是供所述接收帧处理器专用的,并且所述 DMA任务上下文存储器是供所述DMA引擎专用的。
5. 如权利要求3所述的基于帧的数据传送装置,其特征在于,可 同时访问所述传输层任务上下文存储器和所述DMA任务上下文存储 器。
6. 如权利要求3所述的基于帧的数据传送装置,其特征在于,还 包括耦合到所述接收帧处理器、所述传输层任务上下文存储器、所述DMA引擎和所述DMA任务上下文存储器的任务上下文高速緩存控 制器,所述任务上下文高速緩存控制器并行接收并处理来自所述接收 帧处理器和所述DMA引擎的所述传输层任务上下文存储器和所述 DMA任务上下文存储器的请求。
7. 如权利要求1所述的基于帧的数据传送装置,其特征在于,所 述接收帧解析器还检查所述帧中的错误。
8. —种基于帧的数据传送系统,包括具有串行连接小型计算机系统接口 (SAS)的存储装置;耦合到SAS接口的接收帧解析器,所述接收帧解析器从磁盘驱 动器接收帧,在接收报头队列中存储来自所述帧的组帧信息,并且在 信息单元緩沖器中存储来自所述帧的信息单元;耦合到所述接收"^艮头队列的接收帧处理器,所述接收帧处理器读 取由所述组帧信息中标记字段所确定的传输层任务上下文,从所述传 输层任务上下文和所述组帧信息确定如何处理所述帧,生成DMA描 述符,并存储更新的传输层任务上下文;以及耦合到所述信息单元緩冲器和所述接收帧处理器的直接存储器 存取(DMA)引擎,所述DMA引擎读取DMA任务上下文,通过处理 所述DMA描述符而将所述信息单元传送到目标存储器,并存储更新 的DMA任务上下文。
9. 如权利要求8所述的基于帧的数据传送系统,其特征在于,所 述接收帧处理器和所述DMA引擎并行运行。
10. 如权利要求8所述的基于帧的数据传送系统,其特征在于, 还包括耦合到所述接收帧处理器以存储所述传输层任务上下文的传 输层任务上下文存储器,和耦合到所述DMA引擎以存储所述DMA 任务上下文的DMA任务上下文存储器。
11. 如权利要求IO所述的基于帧的数据传送系统,其特征在于, 所述传输层任务上下文存储器是供所述接收帧处理器专用的,并且所 述DMA任务上下文存储器是供所述DMA引擎专用的。
12. 如权利要求IO所述的基于帧的数据传送系统,其特征在于, 可同时访问所述传输层任务上下文存储器和所述DMA任务上下文存 储器。
13. 如权利要求IO所述的基于帧的数据传送系统,其特征在于, 还包括耦合到所述接收帧处理器、所述传输层任务上下文存储器、所 述DMA引擎和所述DMA任务上下文存储器的任务上下文高速緩存 控制器,所述任务上下文高速緩存控制器并行接收和处理来自所述接 收帧处理器和所述DMA引擎的所述传输层任务上下文存储器和所述 DMA任务上下文存储器的请求。
14. 如权利要求8所述的基于帧的数据传送系统,其特征在于, 所述接收帧解析器还检查所述帧中的错误。
15. —种传送成帧数据的方法,包括 执行帧解析任务,包括从链路层接口接收帧;在接收报头队列中存储来自所述帧的组帧信息;以及 在信息单元緩沖器中存储来自所述帧的信息单元; 执行传输层任务,包括读取由所述组帧信息中标记字段所确定的传输层任务上下文;从所述传输层任务上下文和所述组帧信息确定如何处理所 述帧;生成DMA描述符;以及 存储更新的传输层任务上下文;以及 与所述传输层任务并发执行直接存储器存取(DMA)任务;所述 DMA任务包括读取DMA任务上下文;通过处理先前生成的第二DMA描述符,而将先前存储的笫 二信息单元传送到目标存储器;以及存储更新的DMA任务上下文。
16. 如权利要求15所述的传送成帧数据的方法,其特征在于,还包括从传输层任务上下文存储器读取所述传输层任务上下文; 将所述更新的传输层任务上下文存储到所述传输层任务上下文 存储器;从DMA任务上下文存储器读取所述DMA任务上下文;以及 将所述更新的DMA任务上下文存储到所述DMA任务上下文存 储器。
17. 如权利要求16所述的传送成帧数据的方法,其特征在于,所 述传输层任务上下文存储器专用于执行所述传输层任务,并且所述 DMA任务上下文存储器专用于执行所述DMA任务。
18. 如权利要求16所述的传送成帧数据的方法,其特征在于,同 时访问所述传输层任务上下文存储器和所述DMA任务上下文存储 器。
19. 如权利要求15所述的传送成帧数据的方法,其特征在于,还 包括在执行所述传输层任务前检查所述帧中的错误。
全文摘要
一种基于帧的数据传送装置包括接收帧解析器、接收帧处理器和DMA引擎。接收帧解析器接收帧,在接收报头队列中存储帧的组帧信息,并且在信息单元缓冲器中存储帧的信息单元。接收帧处理器耦合到接收报头队列。接收帧处理器读取组帧信息标记字段中确定的传输层任务上下文,从传输层任务上下文和组帧信息确定如何处理处理帧,生成DMA描述符,并存储更新的传输层任务上下文。DMA引擎耦合到信息单元缓冲器和接收帧处理器。DMA引擎读取DMA任务上下文,通过处理DMA描述符将信息单元传送到目标存储器,并存储更新的DMA任务上下文。
文档编号H04L12/56GK101263464SQ200680033431
公开日2008年9月10日 申请日期2006年7月27日 优先权日2005年9月16日
发明者N·张, P·塞托, S·彻穆杜帕蒂, V·劳, W·哈勒克 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1