CN101167336A - 用于提供信息验证和传送的技术 - Google Patents
用于提供信息验证和传送的技术 Download PDFInfo
- Publication number
- CN101167336A CN101167336A CN200680013985.5A CN200680013985A CN101167336A CN 101167336 A CN101167336 A CN 101167336A CN 200680013985 A CN200680013985 A CN 200680013985A CN 101167336 A CN101167336 A CN 101167336A
- Authority
- CN
- China
- Prior art keywords
- logic
- data
- api
- crc
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/321—Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Communication Control (AREA)
- Telephonic Communication Services (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
发出单个应用编程接口(API)以请求数据复制和CRC验证两种操作的技术。在一些实施例中,API的接收方可观测哪一个逻辑(例如软件或硬件和/或软件和硬件的结合)可用于执行数据复制和CRC验证操作的指令。
Description
技术领域
本文所公开的主题涉及信息验证和传送技术。
背景技术
从网络接收业务的一些计算机采用因特网小计算机系统接口(iSCSI)协议。iSCSI的某些实现(例如在Linux或MicrosoftWindows中实现的)请求从网络缓冲器到iSCSI目标缓冲器的数据传送,然后再发出请求对目标缓冲器中的数据验证循环冗余校验(CRC)。在一些情况下,堆栈层,如TCP/IP处理堆栈请求从网络缓冲器到目标缓冲器的数据传送,以及iSCSI层对所传送数据单独执行CRC验证(或者请求对所传送数据进行验证CRC)。核心套接字层可用于分隔iSCSI层和堆栈层,以及在通信上将iSCSI层与堆栈层链接。
发明内容
根据本发明的第一方面,提供了一种方法,包括:
从第一协议处理层向中间层发出组合数据复制和循环冗余校验(CRC)验证应用编程接口;
从所述中间层向第二协议处理层传送所述应用编程接口;以及
基于所述第二协议处理层可用的逻辑从所述第二协议处理层向逻辑发出执行所述应用编程接口中指定的请求的指令。
根据本发明的第二方面,提供了一种包括存储在其中的指令的计算机可读介质,所述指令由机器执行时,使所述机器执行以下操作:
从第一协议处理层向中间层发出组合数据复制和循环冗余校验(CRC)验证应用编程接口;
从所述中间层向第二协议处理层传送所述应用编程接口;以及
基于所述第二协议处理层可用的逻辑从所述第二协议处理层向逻辑发出执行所述应用编程接口中指定的请求的指令。
根据本发明的第三方面,提供了一种装置,包括:
第一协议处理逻辑,向中间层逻辑发出组合数据复制和循环冗余校验(CRC)验证应用编程接口;
中间层逻辑,向第二协议处理层逻辑传送所述应用编程接口;以及
第二协议处理层逻辑,基于所述第二协议处理层可用的逻辑从所述第二协议处理层向逻辑发出执行所述应用编程接口中指定的请求的指令。
根据本发明的第四方面,提供了一种系统,包括:
主机系统,包括处理器和存储设备;
总线;以及
芯片组,在通信上将所述主机系统连接到所述总线,其中,所述芯片组包括网络接口,并且所述主机系统包括:
第一协议处理逻辑,向中间层逻辑发出组合数据复制和循环冗余校验(CRC)验证应用编程接口;
中间层逻辑,向第二协议处理层逻辑传送所述应用编程接口;以及
第二协议处理层逻辑,向所述第二协议处理层逻辑可用的逻辑发出执行基于所述应用编程接口的请求的指令。
附图说明
图1A示出能够采用本发明的实施例的一种示例计算机系统。
图1B示出可用于本发明的一个实施例的主存储器的内容的一个示例实现。
图1C示出可在单个API中提供数据传送和CRC验证操作的本发明的一个实施例的示例操作。
图2-5示出可提供分组复制和CRC验证操作的本发明的实施例的示例操作。
图6示出根据本发明的一个实施例的过程600的适当流程图。
注意,不同附图中使用的相同附图标记表示相同或相似的要素。
具体实施方式
本说明书中提到“一个实施例”或“一实施例”表示结合该实施例所述的具体特征、结构或特性包含在本发明的至少一个实施例中。因此,词组“在一个实施例中”或“在一实施例中”在本说明书的各个位置中的出现不一定都表示同一个实施例。此外,特定特征、结构或特性可结合在一个或多个实施例中。
图1A在计算机系统100中示出其中可采用本发明的某些实施例的适当系统。计算机系统100可包括主机系统102、总线116和网络接口118。
主机系统102可包括芯片组105、处理器110、主存储器112和存储设备114。芯片组105可提供处理器110、主存储器112、存储设备114、总线116以及图形适配器(图中未示出)之间的相互通信,其中的图形适配器可用于传送图形和信息以在显示装置(图中未示出)上进行显示。例如,芯片组105可包括存储能够提供与存储设备114相互通信的适配器(图中未示出)。例如,存储适配器可能能够按照下列协议的任一个与存储设备114进行通信:小型计算机系统接口(SCSI)、光纤信道(FC)和/或串行高级技术配件(S-ATA)。
在一些实施例中,芯片组105可包括直接存储器存取(DMA)引擎,以对主存储器和/或计算机系统的主存储设备执行信息的直接存储器存取。
处理器110可作为复杂指令集计算机(CISC)或简化指令集计算机(RISC)处理器、多核心或者其它任何微处理器或中央处理器来实现。
主存储器112可作为易失性存储设备来实现,易失性存储设备例如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
存储设备114可作为非易失性存储设备来实现,非易失性存储设备例如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附加存储设备和/或网络可访问存储设备。
总线116可提供至少主机系统102和网络接口118以及其它外部设备之间的相互通信。总线116可支持串行或并行通信。总线116可支持节点对节点或节点对多节点的通信。总线116可兼容下列标准:例如在可从PCI特别兴趣小组(Portland,Oregon,U.S.A)得到的外设部件互连(PCI)本地总线规范版本2.2(1998年12月18日)(及其修订版本)中所述的外设部件互连(PCI);PCI特别兴趣小组的PCI Express基础规范版本1.0a(及其修订版本)中描述的PCIExpress;可从上述PCI特别兴趣小组(Portland,Oregon,U.S.A.)得到的PCI-X规范版本1.0a(2000年7月24日)(及其修订版本)中描述的PCI-x;和/或通用串行总线(USB)(及相关标准)以及其它互连标准。
网络接口118能够按照网络120所支持的协议来提供主机系统102与网络120之间的相互通信。网络接口118可采用总线116与主机系统102相互通信。在一个实施例中,网络接口118可集成到芯片组105中。
网络120可以是任何网络,例如因特网、内联网、局域网(LAN)、存储区域网络(SAN)、广域网(WAN)或无线网络。网络120可采用以太网标准(IEEE 802.3及相关标准中所述)或者任何通信标准与网络接口118交换业务。
图1B示出可用于本发明的一个实施例的主存储器的内容的一个示例实现。例如,主存储器可存储操作系统(OS)150、堆栈152、设备驱动程序154、源缓冲器156、目标缓冲器158和应用程序160。
OS 150的一些实施例至少可包括能够根据因特网小型计算机系统接口(iSCSI)标准来执行处理和编码的iSCSI堆栈、至少提供iSCSI堆栈与堆栈层152之间的应用编程接口(API)的通信的核心套接字层。例如,至少在标题为“因特网小型计算机系统接口(iSCSI)”(2004年4月)的IP存储工作组因特网草案RFC 3720中描述了iSCSI。例如,OS 150的适当实施例包括但不限于与Linux或MicrosoftWindows兼容的操作系统。
堆栈152可处理分组,以至少根据TCP/IP标准来确定TCP/IP适应性。例如,至少在为国防高级研究计划局准备的标题为“传输控制协议:DARPA因特网程序协议规范”的出版物(RFC 793,1981年9月发布)中描述了TCP/IP协议。
在本发明的一些实施例中,iSCSI层可向堆栈152提供单个应用编程接口(API)以请求数据复制和CRC验证两种操作。单个API可指定多个数据的复制和CRC。例如,数据可包括从网络接收的分组和/或其它类型的信息。在一些实施例中,堆栈152可观测哪一个逻辑(例如软件或硬件和/或软件和硬件的结合)可用于执行数据复制和CRC验证操作的命令。举例来说,术语“逻辑”可包括软件或硬件和/或软件和硬件的结合。在一些实施例中,堆栈152可根据响应数据复制和CRC验证两种操作的单个API而可得到的计算资源来发出数据复制和CRC验证操作的请求。在一些实施例中,DMA引擎可用于至少数据传送,而在一些实施例中,CPU用来复制数据。例如,在一些实施例中,DMA引擎可执行CRC验证操作,而在一些实施例中,由CPU执行的指令用来执行CRC验证操作。在一些实施例中,DMA引擎可缓冲数据并对已缓冲数据执行CRC验证。API可允许iSCSI层独立于所使用的操作系统和平台,但仍然从可用的平台得到复制和CRC的最有效性能。
在本发明的一些实施例中,OS 150的核心套接字层可至少修改为允许请求组合数据复制和CRC验证操作的API的部分的传送。
在一些实施例中,堆栈152可集成到OS 150中。在这类实施例中,堆栈152可修改为执行请求数据复制和CRC验证操作的API。在这类实施例中,堆栈152可修改为允许堆栈观测什么逻辑可用来执行数据复制和CRC验证操作。
因此,虽然不是任何实施例的必要特征,但是,可提供iSCSI协议中规定的操作的加速,同时保持iSCSI与堆栈层之间的公共操作系统施加的边界(即核心套接字层)。保持接口边界可允许堆栈基于可用逻辑在接口边界下灵活管理数据复制和CRC验证操作。
设备驱动程序154可以是网络接口118的设备驱动程序。设备驱动程序154至少可协调主机系统与网络接口之间的数据传送。
源缓冲器156存储待传送到目标缓冲器158的数据。例如,源缓冲器156可存储从网络接收的数据。例如,在iSCSI下,目标缓冲器158可实现文件系统缓冲器。
应用程序160可以是至少可利用从网络接收的或者传送给网络的数据的一个或多个机器可执行程序。应用程序可包括但不限于例如万维网浏览器、输入/输出滤波器、电子邮件服务应用、文件服务应用或者数据库应用。
图1C示出在从iSCSI层到堆栈层的单个应用编程接口(API)中提供数据复制和CRC验证操作的本发明的一个实施例的示例操作。在一些实施例中,与iSCSI层不同的层可发出API。在一些实施例中,与堆栈层不同的层可接收API。例如,API呼叫可具有以下形式:
getBufferListWithCRC(复制列表,CRC列表),其中:
复制列表表示待复制的数据量以及数据将被复制到的位置的目标分散集中列表;以及
CRC列表表示将对其执行CRC的数据的长度以及数据所在位置的分散集中列表。
在一些实施例中,在复制和CRC列表中没有指定源地址,因为依次存储源数据,但是,在其它实施例中可指定源地址。在一些实施例中,复制列表和CRC列表的内容可能不是同延(coextensive)的,使得列表中的某些项可能仅被复制,而其它项可能仅被执行CRC验证。在一些实施例中,可对复制数据的一部分执行CRC验证。
在一些实施例中,数据可包括标记(至少由iSCSI描述)或者其它区域,以及不会对标记或其它区域执行CRC验证操作。例如,标记可用来指定帧边界,并且可用于分组丢失或者被破坏的情况以传递数据供使用。API可根据对第一标记的偏移量、各标记的大小以及标记之间的间隔来确定标记的位置。例如,在一个实施例中,如果在待复制数据中存在标记,则不对标记执行CRC。在一些实施例中,如果在待复制数据中不存在标记,则CRC列表可能与复制列表相同。
图2-5示出可提供分组复制和CRC验证操作的本发明的实施例的示例操作。毫无疑问,在图2-5中,其它类型的信息可被复制并进行CRC验证。图2示出提供数据复制和CRC验证操作的本发明的一个实施例的示例操作。在该实例中,可用于堆栈层的计算资源没有包括DMA引擎的使用的可用性。因此,堆栈层可通过向CPU发出执行到数据被写入其中的目标缓冲器存储空间的高速缓存的预取的指令,以及向CRC验证逻辑发出对将被传送给目标缓冲器存储空间的数据执行CRC的计算的指令,来响应复制和CRC验证API。通过消除在CRC验证之后费时的从目标缓冲器到高速缓存的内容的传送,与CRC验证并行地预取目标缓冲器内容的操作提供速度优势,但不是任何实施例的必要特征。
根据本发明的一个实施例,在项201中,iSCSI层250向堆栈252发出组合复制和CRC API。组合复制和CRC API可指定多个分组的复制和CRC。例如,组合复制和CRC API可采用getBufferListWithCRCAPI来实现。例如,组合复制和CRC API可规定将要进行源缓冲器中的数据的复制和CRC验证。
在项202中,部分响应组合复制和CRC API,堆栈252可向CRC验证操作逻辑请求CRC验证操作。CRC验证操作将对源缓冲器中存储的数据进行,并且将在项204中传送给目标缓冲器256。例如,CRC验证操作逻辑可集成到堆栈252中,并且是通过发出函数调用可访问的。在其它实现中,CRC验证操作逻辑可能可用作独立元件。
在项203-A-1中,部分响应来自项202的CRC验证操作请求,CRC验证操作逻辑可发出从源缓冲器254存取要对其执行CRC验证的数据的请求。例如,数据可由组合复制和CRC API来指定。
在项203-A-2中,部分响应项203-A-1,所请求数据从源缓冲器254传送到高速缓存258(表示为“源缓冲器的高速缓存副本”)。
在项203-A-3中,对高速缓存258中存储的数据(表示为源缓冲器的高速缓存副本)执行CRC验证操作。
在项203-B-1中,堆栈252发出从目标缓冲器256预取数据以存储到高速缓存258的请求。预取数据可以是将由部分响应组合复制和CRC API而从源缓冲器254传送给目标缓冲器256的数据所改写的目标缓冲器256的一部分。在项203-B-2中,部分响应项203-B-1中预取数据的请求,高速缓存258可从目标缓冲器中检索供预取的所请求数据(检索数据表示为“目标缓冲器的高速缓存副本”)。
在一个实施例中,项203-A-1和203-B-1可能在时间上重叠或者大致同时发生。在一个实施例中,项203-B-2可能与项203-A-2和/或203-A-3在时间上重叠或者实质上同时发生。
在项204,高速缓存258中的源缓冲器的高速缓存副本的数据从源缓冲器的高速缓存副本传送到目标缓冲器的高速缓存副本。例如,传送源缓冲器的高速缓存副本以改写目标缓冲器的高速缓存副本。在项205,在稍后时间,例如,每当目标缓冲器将从高速缓存258中清除时,目标缓冲器的高速缓存副本被复制到目标缓冲器256,以完成来自项201的组合复制和CRC API中所请求的数据复制操作。
在项203-A-4中,部分响应复制(即项204)和CRC验证(即项203-A-3)两种操作的完成而将复制和CRC成功/失败的指示提供给iSCSI层。例如,复制和CRC成功/失败的指示可响应项201中API所请求的动作的完成而提供给iSCSI。例如,对iSCSI层的复制和CRC成功/失败的指示可在成功的复制和CRC验证对于项201中发出的API中所标识的所有分组进行时表示成功,而可在对于所请求的任何复制或CRC出现失败时表示失败。失败的指示还可表明哪一个操作(例如复制或CRC)失败以及针对什么分组。
图3示出提供数据复制和CRC验证操作的本发明的一个实施例的示例操作。在该实例中,可用于堆栈层的计算资源包括DMA引擎的可用性。因此,堆栈层可通过向DMA引擎发出执行从源缓冲器254到目标缓冲器256的数据传送的指令以及向独立CRC验证逻辑发出对所传送数据执行CRC的计算的指令,来响应复制和CRC验证请求。虽然不是任何实施例的必要特征,但通过请求DMA引擎加载数据,在CRC验证的执行的至少一部分中,随后安排对所述数据进行CRC验证,可产生时间效率。
在项301中,iSCSI层250向堆栈252发出组合复制和CRC API,以请求分组1和2的复制及CRC验证。在该实例中,分组2安排为在分组1的复制和CRC验证之后被复制及进行CRC验证。例如,组合复制和CRC API可采用getBufferListWithCRC API来实现。图3没有示出采用DMA引擎260从源缓冲器254到目标缓冲器256的分组1的传送。分组1的传送可随项301中发出的API进行。
在项302中,堆栈252向DMA引擎260发出分组传送请求,以将分组2从源缓冲器254传送给目标缓冲器256。部分响应传送分组2的请求,在项303-1中,DMA引擎260从源缓冲器254中检索分组2,以及在项303-2中,DMA引擎260将分组2存储到目标缓冲器256。例如,分组2可以是在分组1的CRC验证之后将对其进行数据传送和CRC验证的分组。
在项304-1中,堆栈252请求对高速缓存258中存储的分组1进行CRC验证操作。例如,CRC验证操作可用于堆栈252。在项304-2中,部分响应CRC验证操作的开始,目标缓冲器256中存储的分组1被传送到高速缓存258。例如,在项304-2中,执行CRC验证操作的CPU可请求分组1到高速缓存258的传送。在项304-3中,可进行分组1的CRC验证。没有说明分组2的CRC验证。在项304-4中,响应复制和CRC验证两种操作的完成,堆栈252可将复制和CRC成功/失败的指示提供给iSCSI层。例如,复制和CRC成功/失败的指示可响应项301中API所请求的动作的完成而提供给iSCSI。例如,对iSCSI层的复制和CRC成功/失败的指示可在成功的复制和CRC验证对于分组1和分组2进行时表示成功,而可在对于所请求的任何复制或CRC出现失败时表示失败。失败的指示还可表明哪一个操作(例如复制或CRC)失败以及针对什么分组。
例如,除了分组1和2的复制及CRC验证之外,项301中发出的API还可扩展为请求分组3的复制和CRC。在这种情况下,分组3可由DMA引擎260至少在时间上与分组2的CRC验证重叠地从源缓冲器254传送给目标缓冲器256。
图4示出提供数据复制和CRC验证操作的本发明的一个实施例的示例操作。在该实例中,可用于堆栈层的计算资源包括具有传送数据以及执行CRC验证操作的能力的DMA引擎(表示为具有CRC验证能力的DMA 262)。因此,堆栈层可通过向DMA引擎发出执行从源缓冲器到目标缓冲器的数据传送的指令以及向DMA引擎发出对待传送数据执行CRC验证的指令,来响应复制和CRC验证请求。
根据本发明的一个实施例,在项401中,iSCSI层250向堆栈252发出组合复制和CRC API,以请求复制和CRC验证。组合复制和CRCAPI可指定多个分组的复制和CRC。例如,组合复制和CRC API可采用getBufferListWithCRC API来实现。例如,组合复制和CRC API可规定将要进行分组1的传送和CRC验证。分组1可存储在源缓冲器254中。
在项402中,堆栈252可向DMA引擎262请求复制操作。例如,项402可包括执行向DMA引擎262发出数据传送请求的堆栈252的CPU。在项403中,堆栈252可请求由DMA引擎262进行对于项402中请求传送的数据的CRC验证操作。
在项404-1中,部分响应项402中的请求,DMA引擎262可请求从源缓冲器254中的分组1的传送,以及在项404-2中,DMA引擎262可请求到目标缓冲器256中的分组1的存储。
在项405-1中,部分响应项403中的请求,DMA引擎262可向源缓冲器254请求分组1。在项405-2中,部分响应项403中的请求,DMA引擎262可对分组1执行CRC验证操作。在项405-3中,DMA引擎262可随复制和CRC操作的完成而向堆栈252表明复制和CRC成功/失败。在项405-4中,响应由堆栈252所接收的复制和CRC成功/失败的指示,堆栈252可向iSCSI层250表明复制和CRC成功/失败。例如,复制和CRC成功/失败的指示可响应项401中API所请求的动作的完成而提供给iSCSI。对iSCSI层的复制和CRC成功/失败的指示可在成功的复制和CRC验证对于项401中发出的API中所标识的所有分组进行时表示成功,而可在对于所请求的任何复制或CRC出现失败时表示失败。失败的指示还可表明哪一个操作(例如复制或CRC)失败以及针对哪些分组。
图5示出提供复制和CRC验证操作的本发明的一个实施例的示例操作。在该实例中,可用于堆栈层的计算资源包括具有传送数据以及缓冲数据并对缓冲数据执行CRC验证操作的能力的DMA引擎(表示为具有CRC验证能力的DMA 264)。因此,堆栈层可通过向DMA引擎发出执行从源缓冲器到目标缓冲器的数据传送的指令以及向DMA引擎发出对待传送数据执行CRC验证的指令,来响应复制和CRC验证请求。
除了向DMA引擎264至少发出项402和403之外,针对图4描述项401-403。
在项504-1中,部分响应项402中的请求,DMA引擎264请求从源缓冲器254的分组1的传送。在项504-2中,DMA引擎264将分组1存储到DMA引擎264可访问的缓冲器中。在项504-3中,DMA引擎264将分组1传送到目标缓冲器256供存储。项504-1和504-3可实现所请求复制操作。
在项505-1中,部分响应项403中的请求,DMA引擎264可对缓冲分组1执行CRC验证。项505-1可实现CRC操作。在项505-2中,DMA引擎264可随复制和CRC操作的完成而向堆栈252表明复制和CRC成功/失败。在项505-3中,响应由堆栈252所接收的复制和CRC成功/失败的指示,堆栈252可向iSCSI层250表明复制和CRC成功/失败。例如,复制和CRC成功/失败的指示可响应项501中API所请求的动作的完成而提供给iSCSI。对iSCSI层的复制和CRC成功/失败的指示可在成功的复制和CRC验证对于项501中发出的API中所标识的所有分组进行时表示成功,而可在对于所请求的任何复制或CRC出现失败时表示失败。失败的指示还可表明哪一个操作(例如复制或CRC)失败以及针对哪些分组。
图6示出根据本发明的一个实施例的过程600的适当流程图。
在步骤602,过程600可发出数据复制和CRC验证的单个API。例如,iSCSI层可发出数据传送和CRC验证的单个API。组合复制和CRC API可指定多个数据的复制和CRC。
在步骤604,过程600可部分根据可用计算环境来发出执行数据复制和CRC验证的一个或多个命令。例如,TCP堆栈层可观测哪一个装置、软件或逻辑可用于执行数据传送和CRC验证操作的命令。在一些实施例中,DMA引擎可用于至少数据传送,而在一些实施例中,CPU用来传送数据。例如,在一些实施例中,DMA引擎可执行CRC验证操作,而在一些实施例中,由CPU执行的指令用来执行CRC验证操作。在某个实施例中,DMA引擎可缓冲数据并对已缓冲数据执行CRC验证。
本发明的实施例可实现为下列任一个或者它们的组合:采用主板互连的微芯片或集成电路,硬连线逻辑,由存储设备存储并由微处理器执行的软件,固件,专用集成电路(ASIC),和/或现场可编程门阵列(FPGA)。
附图和以上描述给出了本发明的实例。虽然表示为多个不同的功能项,但是,本领域的技术人员会理解,这类元件的一个或多个可完全组合为单一功能元件。作为备选的方案,某些元件可分离为多个功能元件。一个实施例的元件可添加到另一个实施例中。例如,本文所述过程的顺序可改变,并且不限于本文所述的方式。但是,本发明的范围绝不受这些具体实例限制。无论说明书中是否明确提供,诸如结构、尺寸和材料使用的差别等各种变形例是可行的。本发明的范围至少与权利要求给出的范围一样宽。
Claims (30)
1.一种方法,包括:
从第一协议处理层向中间层发出组合数据复制和循环冗余校验(CRC)验证应用编程接口;
从所述中间层向第二协议处理层传送所述应用编程接口;以及
基于所述第二协议处理层可用的逻辑从所述第二协议处理层向逻辑发出执行所述应用编程接口中指定的请求的指令。
2.如权利要求1所述的方法,其特征在于,所述第一协议处理层包括符合因特网小型计算机系统接口的层。
3.如权利要求1所述的方法,其特征在于,所述中间层包括核心套接字层。
4.如权利要求1所述的方法,其特征在于,所述第二协议处理层包括符合传输控制协议的层。
5.如权利要求1所述的方法,其特征在于,所述第二协议处理层可用的逻辑包括下列中的至少一个:中央处理器、高速缓存、直接存储器存取引擎以及能够对第二直接存储器存取引擎传送的数据执行CRC验证的第二直接存储器存取引擎。
6.如权利要求1所述的方法,其特征在于,所述应用编程接口包括传送数据以及对所述数据的至少一部分执行CRC验证的指令。
7.如权利要求1所述的方法,其特征在于,所述应用编程接口包括传送数据以及对所述数据的另一部分执行CRC验证的指令。
8.如权利要求1所述的方法,其特征在于,所述应用编程接口指定多个数据的复制和CRC验证。
9.如权利要求1所述的方法,其特征在于,所述应用编程接口允许所述第一协议处理层独立于所使用的操作系统和平台逻辑。
10.一种包括存储在其中的指令的计算机可读介质,所述指令由机器执行时,使所述机器执行以下操作:
从第一协议处理层向中间层发出组合数据复制和循环冗余校验(CRC)验证应用编程接口;
从所述中间层向第二协议处理层传送所述应用编程接口;以及
基于所述第二协议处理层可用的逻辑从所述第二协议处理层向逻辑发出执行所述应用编程接口中指定的请求的指令。
11.如权利要求10所述的计算机可读介质,其特征在于,所述第一协议处理层包括符合因特网小型计算机系统接口的层。
12.如权利要求10所述的计算机可读介质,其特征在于,所述中间层包括核心套接字层。
13.如权利要求10所述的计算机可读介质,其特征在于,所述第二协议处理层包括符合传输控制协议的层。
14.如权利要求10所述的计算机可读介质,其特征在于,所述第二协议处理层可用的逻辑包括下列中的至少一个:中央处理器、高速缓存、直接存储器存取引擎以及能够对第二直接存储器存取引擎传送的数据执行CRC验证的第二直接存储器存取引擎。
15.如权利要求10所述的计算机可读介质,其特征在于,所述应用编程接口包括传送数据以及对所述数据的至少一部分执行CRC验证的指令。
16.如权利要求10所述的计算机可读介质,其特征在于,所述应用编程接口包括传送数据以及对所述数据的另一部分执行CRC验证的指令。
17.如权利要求10所述的计算机可读介质,其特征在于,所述应用编程接口指定多个数据的复制和CRC验证。
18.如权利要求10所述的计算机可读介质,其特征在于,所述应用编程接口允许所述第一协议处理层独立于所使用的操作系统和平台逻辑。
19.一种装置,包括:
第一协议处理逻辑,向中间层逻辑发出组合数据复制和循环冗余校验(CRC)验证应用编程接口;
中间层逻辑,向第二协议处理层逻辑传送所述应用编程接口;以及
第二协议处理层逻辑,基于所述第二协议处理层可用的逻辑从所述第二协议处理层向逻辑发出执行所述应用编程接口中指定的请求的指令。
20.如权利要求19所述的装置,其特征在于,所述第一协议处理层逻辑包括符合因特网小型计算机系统接口的逻辑。
21.如权利要求19所述的装置,其特征在于,所述中间层逻辑包括核心套接字层逻辑。
22.如权利要求19所述的装置,其特征在于,所述第二协议处理层逻辑包括符合传输控制协议的逻辑。
23.如权利要求19所述的装置,其特征在于,所述第二协议处理层逻辑可用的所述逻辑包括下列中的至少一个:中央处理器、高速缓存、直接存储器存取引擎以及能够对所述第二直接存储器存取引擎传送的数据执行CRC验证的第二直接存储器存取引擎。
24.如权利要求19所述的装置,其特征在于,所述应用编程接口包括传送数据以及对所述数据的至少一部分执行CRC验证的指令。
25.如权利要求19所述的装置,其特征在于,所述应用编程接口包括传送数据以及对所述数据的另一部分执行CRC验证的指令。
26.如权利要求19所述的装置,其特征在于,所述应用编程接口指定多个数据的复制和CRC验证。
27.一种系统,包括:
主机系统,包括处理器和存储设备;
总线;以及
芯片组,在通信上将所述主机系统连接到所述总线,其中,所述芯片组包括网络接口,并且所述主机系统包括:
第一协议处理逻辑,向中间层逻辑发出组合数据复制和循环冗余校验(CRC)验证应用编程接口;
中间层逻辑,向第二协议处理层逻辑传送所述应用编程接口;以及
第二协议处理层逻辑,向所述第二协议处理层逻辑可用的逻辑发出执行基于所述应用编程接口的请求的指令。
28.如权利要求27所述的系统,其特征在于,所述应用编程接口指定多个数据的复制和CRC验证。
29.如权利要求27所述的系统,其特征在于,所述应用编程接口包括传送数据以及对所述数据的至少一部分执行CRC验证的指令。
30.如权利要求27所述的系统,其特征在于,所述应用编程接口包括传送数据以及对所述数据的另一部分执行CRC验证的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/115,656 | 2005-04-26 | ||
US11/115,656 US7454667B2 (en) | 2005-04-26 | 2005-04-26 | Techniques to provide information validation and transfer |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101167336A true CN101167336A (zh) | 2008-04-23 |
Family
ID=36972946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680013985.5A Pending CN101167336A (zh) | 2005-04-26 | 2006-04-25 | 用于提供信息验证和传送的技术 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7454667B2 (zh) |
EP (1) | EP1875721A2 (zh) |
CN (1) | CN101167336A (zh) |
RU (1) | RU2420007C2 (zh) |
WO (1) | WO2006116521A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113643546A (zh) * | 2021-05-19 | 2021-11-12 | 海南师范大学 | 一种应用于车内行为检测系统的监控管理终端及其方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958436B2 (en) | 2005-12-23 | 2011-06-07 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US7925957B2 (en) | 2006-03-20 | 2011-04-12 | Intel Corporation | Validating data using processor instructions |
US7809870B2 (en) * | 2006-10-17 | 2010-10-05 | Broadcom Corporation | Method and system for interlocking data integrity for network adapters |
US7953878B1 (en) * | 2007-10-09 | 2011-05-31 | Netapp, Inc. | Multi-threaded internet small computer system interface (iSCSI) socket layer |
US8838817B1 (en) | 2007-11-07 | 2014-09-16 | Netapp, Inc. | Application-controlled network packet classification |
US9049123B2 (en) * | 2008-01-08 | 2015-06-02 | International Business Machines Corporation | Determining policy follow-up action based on user-specified codes |
US8566833B1 (en) | 2008-03-11 | 2013-10-22 | Netapp, Inc. | Combined network and application processing in a multiprocessing environment |
JP2010262715A (ja) * | 2009-05-11 | 2010-11-18 | Renesas Electronics Corp | メモリ検査システム及びメモリ検査方法 |
CN106940428B (zh) * | 2016-01-04 | 2020-11-03 | 中兴通讯股份有限公司 | 芯片验证方法、装置及系统 |
US10505566B2 (en) * | 2017-06-15 | 2019-12-10 | Huawei Technologies Co., Ltd. | Methods and apparatus for encoding and decoding based on layered polar code |
US10467076B1 (en) | 2018-10-22 | 2019-11-05 | Capital One Services, Llc | System and method of input validation |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389479B1 (en) * | 1997-10-14 | 2002-05-14 | Alacritech, Inc. | Intelligent network interface device and system for accelerated communication |
US6904519B2 (en) * | 1998-06-12 | 2005-06-07 | Microsoft Corporation | Method and computer program product for offloading processing tasks from software to hardware |
US7191240B1 (en) * | 2000-02-14 | 2007-03-13 | International Business Machines Corporation | Generic network protocol layer with supporting data structure |
US6711621B1 (en) * | 2000-10-13 | 2004-03-23 | Hewlett-Packard Development Company, L.P. | System and method of implementing netware core protocol within a sockets model |
US6996105B1 (en) * | 2000-12-19 | 2006-02-07 | Adaptec, Inc. | Method for processing data packet headers |
JP2002208981A (ja) * | 2001-01-12 | 2002-07-26 | Hitachi Ltd | 通信方法 |
GB2372680B (en) * | 2001-02-27 | 2003-02-19 | 3Com Corp | Calculation and transmission of error check codes |
GB2372914B (en) * | 2001-02-28 | 2003-12-24 | 3Com Corp | Direct data placement and message reassembly |
US7007103B2 (en) * | 2002-04-30 | 2006-02-28 | Microsoft Corporation | Method to offload a network stack |
US6721806B2 (en) * | 2002-09-05 | 2004-04-13 | International Business Machines Corporation | Remote direct memory access enabled network interface controller switchover and switchback support |
US7043578B2 (en) * | 2003-01-09 | 2006-05-09 | International Business Machines Corporation | Method, system, and program for processing a packet including I/O commands and data |
US7010548B2 (en) * | 2003-06-27 | 2006-03-07 | Emulex Design & Manufacturing Corporation | Sparse and non-sparse data management method and system |
US7953819B2 (en) | 2003-08-22 | 2011-05-31 | Emc Corporation | Multi-protocol sharable virtual storage objects |
US7010469B2 (en) * | 2003-09-30 | 2006-03-07 | International Business Machines Corporation | Method of computing partial CRCs |
-
2005
- 2005-04-26 US US11/115,656 patent/US7454667B2/en not_active Expired - Fee Related
-
2006
- 2006-04-25 CN CN200680013985.5A patent/CN101167336A/zh active Pending
- 2006-04-25 RU RU2007143547/09A patent/RU2420007C2/ru not_active IP Right Cessation
- 2006-04-25 WO PCT/US2006/015847 patent/WO2006116521A2/en active Application Filing
- 2006-04-25 EP EP06751516A patent/EP1875721A2/en not_active Ceased
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113643546A (zh) * | 2021-05-19 | 2021-11-12 | 海南师范大学 | 一种应用于车内行为检测系统的监控管理终端及其方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2006116521A3 (en) | 2007-03-22 |
WO2006116521A2 (en) | 2006-11-02 |
RU2420007C2 (ru) | 2011-05-27 |
US20060242532A1 (en) | 2006-10-26 |
US7454667B2 (en) | 2008-11-18 |
RU2007143547A (ru) | 2009-06-10 |
EP1875721A2 (en) | 2008-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101167336A (zh) | 用于提供信息验证和传送的技术 | |
US11422976B2 (en) | Distributed deduplicated storage system | |
US10257273B2 (en) | Systems, methods and devices for RDMA read/write operations | |
US9886257B1 (en) | Methods and apparatus for remotely updating executing processes | |
KR102023122B1 (ko) | 탄성 패브릭 어댑터 - 무접속의 신뢰할 수 있는 데이터그램 | |
US8805951B1 (en) | Virtual machines and cloud storage caching for cloud computing applications | |
JP6534989B2 (ja) | レプリケーションターゲットサービス | |
US20080126578A1 (en) | Method, system, and program for managing data read operations | |
CN108780450A (zh) | 用户空间中的基于服务器的持久性管理 | |
US20240202863A1 (en) | Resiliency Schemes for Distributed Storage Systems | |
WO2014014579A1 (en) | Source reference replication in a data storage subsystem | |
US11994944B2 (en) | Efficient networking for a distributed storage system | |
US20060168400A1 (en) | Packet data placement in a processor cache | |
US9639496B2 (en) | Systems and methods for providing protocol independent disjoint drive letter sets | |
CN100452795C (zh) | 利用iSCSI协议访问逻辑设备的方法 | |
US20080270480A1 (en) | Method and system of deleting files from a remote server | |
US10120594B1 (en) | Remote access latency in a reliable distributed computing system | |
US20050141434A1 (en) | Method, system, and program for managing buffers | |
WO2017092402A1 (zh) | 虚拟网络硬盘挂载方法、局域网服务器、用户终端和系统 | |
US10824748B2 (en) | Method and system for low overhead control/status handshake for remote shared file server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20080423 |