CN101273338B - 用于数据集及数据集“异或”的dma传送的方法、装置及系统 - Google Patents
用于数据集及数据集“异或”的dma传送的方法、装置及系统 Download PDFInfo
- Publication number
- CN101273338B CN101273338B CN2006800355515A CN200680035551A CN101273338B CN 101273338 B CN101273338 B CN 101273338B CN 2006800355515 A CN2006800355515 A CN 2006800355515A CN 200680035551 A CN200680035551 A CN 200680035551A CN 101273338 B CN101273338 B CN 101273338B
- Authority
- CN
- China
- Prior art keywords
- dma
- data set
- logical operation
- data
- transmits
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1054—Parity-fast hardware, i.e. dedicated fast hardware for RAID systems with parity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Bus Control (AREA)
- Communication Control (AREA)
- Multi Processors (AREA)
Abstract
用于执行数据集的直接存储器访问(DMA)传送和对数据集执行的逻辑运算的结果的DMA传送的方法与装置。在本发明的一个方面,一种方法可以包括接收指定数据集的DMA传送和对数据集执行的逻辑运算(例如异或)的DMA传送的数据结构。可响应该数据结构之接收,执行数据集的DMA传送和对数据集执行的逻辑运算的DMA传送。
Description
技术领域
本发明的实施例涉及直接存储器访问(DMA)领域。具体来说,本发明的实施例涉及数据集的DMA传送和对数据集执行的例如“异或”(XOR)运算的逻辑运算。
背景技术
直接存储器访问(DMA)是一种使计算机系统体系结构内的某些硬件子系统能将数据传送到系统内存以及从系统内存传送数据而基本上由较少处理器参与的技术。若没有DMA,处理器可能以其他方式将数据从源复制到其寄存器之一,然后将该数据写回到另一位置。由于深入地参与其中,处理器会在这样的数据传送期间降低了执行其他任务的可用性。
出于多种原因(例如为数据可靠性而要创建奇偶校验信息)而可能对数据执行“异或”(XOR)运算。可用DMA来传送对数据集执行XOR运算的结果。
发明内容
根据本发明的第一方面,提供了一种用于直接存储器访问(DMA)传送的方法,包括:
接收数据结构,所述数据结构指定多个数据集的直接存储器访问(DMA)传送以及对所述多个数据集执行的逻辑运算的DMA传送;以及
响应所述数据结构之接收而执行与所述多个数据集的DMA传送一致地执行所述多个数据集上的逻辑运算,并执行对至少部分地与所述多个数据集上执行的所述逻辑运算的DMA传送同时执行所述多个数据集的所述DMA传送。
根据本发明的第二方面,提供了一种用于直接存储器访问(DMA)传送的装置,包括:
传递指定数据集的直接存储器访问(DMA)传送和指定对所述数据集执行的逻辑运算的DMA传送的数据结构的互连部;以及
与所述互连部通信以接收所述数据结构的DMA控制器,所述DMA控制器包括用于与所述数据集的DMA传送一致地对所述数据集执行所述逻辑运算的逻辑部件,所述DMA控制器用于至少部分地与所述数据集上执行的逻辑运算的DMA传送同时执行所述数据集的DMA传送,且所述DMA控制器执行对所述数据集执行的所述逻辑运算的DMA传送。
根据本发明的第三方面,提供了一种用于直接存储器访问(DMA)传送的方法,包括:
在直接存储器访问(DMA)控制器上通过对数据A与数据B执行“异或”(XOR)运算来而与所述数据A和所述数据B的直接存储器访问(DMA)传送一致地生成A XOR B,其中A XOR B在A和B的DMA传送期间生成中的至少一个的DMA传送发生前生成;以及
将基于A XOR B的结果执行DMA传送,而不将A XOR B存储在缓冲器中。
根据本发明的第四方面,提供了一种用于直接存储器访问(DMA)传送的系统,包括:
具有系统内存的计算机系统,其中所述系统内存包括动态随机存取存储器(DRAM);以及
与所述计算机系统通信的适配器,所述适配器包括:
输入/输出处理器核,所述核生成指定数据集的直接存储器访问(DMA)传送和指定对所述数据集执行的逻辑运算的DMA传送的数据结构;以及
与所述核通信以接收所述数据结构的DMA控制器,所述DMA控制器包括用于与所述数据集的DMA传送一致且至少部分地同时地对所述数据集执行所述逻辑运算的逻辑部件,所述DMA控制器执行所述数据集的DMA传送,且所述DMA控制器用于至少部分地与所述数据集的DMA传送同时执行对所述数据集上执行的所述逻辑运算的DMA传送。
附图说明
可以通过下文描述和图示本发明实施例的附图来最佳地理解本发明。这些附图中:
图1是表示本发明的一个或多个实施例可在其中实现的计算机系统体系结构的框图。
图2是表示本发明的一个或多个实施例的执行数据集和数据集的“异或”的DMA传送的DMA控制器的框图。
图3表示本发明的一个或多个实施例的规定多个数据集和这些多个数据集的“异或”的DMA传送的DMA链描述符。
图4是表示本发明的一个或多个实施例的包括执行XOR运算的XOR逻辑部件和存储XOR运算的结果的缓冲器或其他小存储器的DMA控制器的框图。
图5是表示根据本发明一个或多个实施例的、传送数据集和数据集的XOR运算的方法的流程图。
图6是表示适于实现本发明的一个或多个实施例的计算机系统体系结构的框图。
图7是表示适于实现本发明的一个或多个实施例的另一计算机系统体系结构的框图。
具体实施方式
下文描述中,提到许多特定的细节。但是应理解,没有些特定细节,仍可实现本发明的实施例。在其他实例中,公知的电路、结构和技术均未详细说明,以免使本发明的描述变得不清晰。
图1是表示可实现本发明的一个或多个实施例的计算机系统体系结构100的框图。计算机系统体系结构包括计算机系统110、适配器120和一个或多个附加设备190。所述适配器可以与计算机系统耦合或以其他方式与计算机系统通信。该附加设备可以与适配器耦合或以其他方式与适配器通信。
在本文描述中,可能用到术语“耦合”和“连接”以及它们的派生词语。本文无意将这些术语视为彼此同义的。相反,在特定实施例中,可用“连接”来表示两个或更多组件彼此处于直接的物理接触或电接触。“耦合”可以表示两个或更多组件处于直接的物理接触或电接触。但是,“耦合”还可以表示两个或更多组件可能并不处于彼此直接的接触中,但是仍可以彼此一致工作或交互作用。例如,两个或更多组件可以经由使它们能够交互作用的一个或多个中间组件来彼此耦合。此外,如果两个或更多组件彼此交换数据或信息,则两个或更多组件可以彼此通信,而无论它们是否处于直接接触中。
计算机系统包括系统内存112,例如动态随机存取存储器(DRAM)。DRAM被包括在一些但不是全部计算机系统中。图示的适配器包括输入/输出(I/O)处理器122和I/O处理器局部内存134。作为举例,I/O处理器可以包括芯片级系统(system-on-chip),当然本发明的范围并不限于此。
图示的I/O处理器包括处理器核124、DMA控制器126、存储控制器128、可选的一个或多个其他组件130以及例如一个或多个总线的一个或多个互连部132。下文公开其他适合的组件的特定示例。如图所示,核、DMA控制器和存储控制器可以各与一个或多个总线耦合或以其他方式与之通信。同样地,核、DMA控制器和存储控制器可以各经由一个或多个中间总线彼此耦合或以其他方式彼此通信。
I/O处理器局部内存可以与存储控制器耦合或以其他方式与之通信。如图中适配器所示,I/O处理器局部内存可以在I/O处理器外部,当然也并非一定如此。例如,芯片级系统中将I/O处理器局部内存与I/O处理器集成在一起的备选适配器也是适合的。适合的I/O处理器局部内存可以包括(但不限于)那些包括双数据速率同步DRAM(DDR-SDRAM)的存储器。DDR-SDRAM也称为SDRAM II和DDRAM。
所述适配器可以协助计算机系统与附加设备之间的数据交换。具体来说,DMA控制器可以执行源(例如计算机系统的系统内存)与目标(例如I/O处理器局部内存)之间数据的DMA传送。DMA控制器可以请求并接受相关总线的控制,并通过I/O处理器核的有限参与和/或无需数据传递通过I/O处理器核而直接传送数据。DMA能够实现快速交换数据,对核的中断负载低,并且可使核能够在数据传送期间执行其他任务。当然,本发明的范围并不限于实现这些特定优点。
在适合的时候,可以将适配器的I/O处理器局部内存中存储的数据转发到附加设备,当然本发明的范围并不限于这方面。即,所述体系结构可以包括存储转发体系结构。在本发明的一个或多个实施例中,附加设备可以包括一个或多个存储设备,例如存储盘阵列。或者,附加设备可以包括其他I/O装置或其他外围装置。所述适配器可以可选地用作网络接口卡以向网络提供数据,以及附加设备可以通过网络与适配器耦合或与之通信。
图2是表示本发明的一个或多个实施例的执行数据集的和数据集的“异或”(XOR)的DMA传送的DMA控制器。此框图包括DMA控制器226、I/O处理器核224、系统内存212和I/O处理器局部内存234。
这些上文提到的组件可以可选地具有图1所示的计算机系统体系结构的相同名称组件的一些或全部特征。为了避免使下文的描述变得不清晰,下文的论述将倾向于主要着重描述不同和/或附加特征。
一方面,DMA控制器可以通过I/O处理器核进行编程。例如,I/O处理器核可以生成数据结构(例如DMA描述符)并将其提供给DMA控制器。该数据结构可以包括具有物理和/或逻辑关系以便例如支持DMA控制器的数据操纵的结构化数据。可选地,DMA描述符可以是具有指向另一DMA描述符的指针或其他链路的链描述符,当然本发明的范围并不限于此。
图3表示本发明的一个或多个实施例的指定多个数据集的DMA传送和这些多个数据集的“异或”(XOR)的DMA传送的DMA链描述符。这仅是一个说明性的DMA链描述符。可设想其他DMA链描述符,这些其他DMA描述符对于本领域技术人员和受益于本发明公开的技术人员是可想见且显然的。而且,XOR仅是可以由DMA描述符规定的多种逻辑运算中的一种。其他适合的逻辑运算包括(但不限于)AND、OR、NOT和其他公知的逻辑运算以及它们的组合。
DMA链描述符包括经可选链接的下一个描述符地址340。下一个描述符地址可以具有特定的值例如零,以指定链的结束。
DMA链描述符还包括指定第一数据集(A)的DMA传送的数据341、指定第二数据集(B)的DMA传送的数据345、以及指定第一和第二数据集的XOR(A XOR B)的DMA传送的数据349、350。
指定第一数据集(A)的DMA传送的数据341包括A的第一源/目标地址342、A的第二源/目标地址343和A的传送大小344(例如字节数)。类似地,指定第二数据集(B)的DMA传送的数据345包括B的第一源/目标地址346、B的第二源/目标地址347和B的传送大小348。
在本发明的一个特定实施例中,第一源/目标地址可以是主机端或计算机系统端远程地址,例如PCI类型总线上的地址。在此具体实施例中,第二源/目标地址可以是例如I/O处理器局部内存的适配器端本地地址。例如下文论述的控制信息中的DMA链描述符指定的传送的方向可以确定第一和第二地址分别是源地址还是目标地址。当然,本发明的范围并不限于实现这些特定实施例。
指定第一和第二数据集的XOR(A XOR B)的DMA传送的数据349、350包含A XOR B的目标地址349以及描述符控制标志(descriptor control)中包含的数据350,描述符控制标志350指定是否要对第一和第二数据集执行特定逻辑运算(例如在本例中为XOR运算)。在本发明的一个或多个实施例中,描述符控制信息的一位可以在要执行XOR运算和将XOR运算的结果进行相应的DMA传送的情况下具有第一值(例如1),或可以在不执行这些操作的情况下具有第二值(例如0),当然本发明的范围并不限于此。描述符控制标志还可以指定数据传送的方向,例如从系统内存传送到I/O处理器局部内存,或从I/O处理器局部内存传送到系统内存,或向主机传送或远离主机传送等。描述符控制标志还可以可选地包含其他信息。
现在,图示说明的描述符仅是一种可能的描述符。其他的描述符对于本领域技术人员和受益于本发明公开的技术人员是可想见且显然的。例如,可以不指定传送大小,而是可选地指定结束地址。又如,可以不指定传送的方向,而是指定源地址和目标地址。还可设想其他修改,且其他修改对于本领域技术人员和受益于本发明公开的技术人员是可想见且显然的。如前文所述,可以指定非XOR运算的逻辑运算。
DMA链描述符还包含可选的循环冗余校验(CRC)地址351。这是可选的,即使包含它,也可选为是常规的。在本发明的一个或多个实施例中,由单个DMA描述符的指定并响应单个DMA描述符,数据的逻辑CRC运算可以可选地取代或补充前面提到的数据集的XOR运算。
再参考图2,DMA控制器可以接收DMA描述符,例如图3所示的DMA链描述符,或与之相似的描述符,或完全是另一DMA描述符。在本发明的一个或多个实施例中,DMA控制器可以通过总线或其他互连部接收DMA描述符或数据结构,而该总线或其他互连部可以耦合在DMA控制器与处理器或处理器核(例如I/O处理器核)之间。
DMA描述符可用来对DMA控制器编程或告知DMA控制器或以其他方式导致DMA控制器执行指定的DMA传送。响应DMA描述符之接收,或至少在接收到DMA描述符后,DMA控制器可以执行DMA描述符指定或指示的DMA传送。
DMA控制器可以分析或以其他方式检查DMA描述符。DMA控制器可以确定数据集的源/目标地址、数据集的大小。在本发明的多个方面中,数据集的大小可以是64K、128K、其他大小的数据块、或适于特定实现的其他大小。本发明的范围不限于任何公知的数据传送的大小。
DMA控制器还可以确定数据传送的方向。如图示说明的实施例中所示,传送方向可以是从系统内存到I/O处理器局部内存,当然本发明的范围并不限于此。例如,在一个或多个备选实施例中,传送的方向可以是从I/O处理器局部内存到系统内存。
DMA控制器还可确定DMA描述符是否指定要执行逻辑运算(例如XOR运算)并将该逻辑运算(例如XOR运算)的结果进行相应的DMA传送。在本发明的一个或多个实施例中,DMA控制器可以检查DMA描述符的描述符控制字段的一位或字段或其他部分来确定是否要执行XOR运算并进行相应的DMA传送,当然本发明的范围并不限于此。例如,可以使用附加或其他不同的字段或其他部分来指定是否要执行XOR运算并将XOR运算的结果进行相应的DMA传送。例如,如果AXORB目标地址中包含非默认值(例如非零值),则可以指定执行XOR运算并将XOR运算的结果进行相应的DMA传送。默认值可以指定无需执行XOR运算。还可设想其他可能性。
响应接收到DMA描述符,或至少在接收到DMA描述符之后,可以启动DMA描述符指定或指示的DMA传送。DMA控制器可以激活或启用一个或多个DMA通道。在本发明的一个或多个实施例中,可以使用共用通道来以串行方式传送不同的数据集和不同数据集的XOR运算,当然本发明的范围并不限于此。在一个方面,共用通道可以对应于给定的处理器核以及一个或多个其他可选处理器核使用其他通道,当然本发明的范围并不限于此。
一旦激活或启用了一个或多个DMA通道,DMA控制器就可以访问或以其他方式接收要从源传送到目标的数据集。DMA控制器可以用DMA描述符中指定的字节数或其他传送大小来获知要访问多少数据。可以可选地以串行或并行方式访问数据集,或可以串行方式访问一些数据集而以并行方式访问另一些数据集。可以可选地使用一个或多于一个的DMA通道。
在访问了数据集之后,如果DMA描述符指定要执行XOR运算,则DMA控制器可以对数据集执行XOR运算。XOR运算是公知的逻辑运算。如果A与B不同,则A XOR B可以返回真值,以及如果A与B相同,则返回假值。即,A XOR B可以书写为((NOT A AND B)OR(A AND NOT B))。换言之,A XOR B可以意味着A和B的其中一个或另一个为真,而不同时为真。
再参考图2,DMA控制器包括XOR逻辑部件236。可以可选地使用本领域中公知的多种常规XOR逻辑部件。本发明的范围并不限于任何公知的XOR逻辑部件。
可以将不同的数据集提供给XOR逻辑部件,并可以对该数据执行一个或多个逻辑运算(在本例中为XOR运算)。例如,如图示说明的实施例中所示,可以将数据集A和B提供给XOR逻辑部件,并可以由XOR逻辑部件确定或生成结果A XOR B。又如,在另一实施例中,可以提供数据集P、Q和R,并可以由XOR逻辑部件确定或生成结果P XOR Q XOR R。同样地可以可选地添加其他数据集。
在本发明的一个或多个实施例中,可以生成数据集的XOR,然后执行将这些数据集中的至少一个数据集从DMA控制器DMA传送到另一个位置。例如,可以生成A XOR B,然后执行或发生B至I/O处理器局部内存的DMA传送。
在数据通过DMA控制器的同时对数据执行XOR运算或其他逻辑运算,可以避免此后对例如I/O处理器局部内存再次访问或从中再次接收该数据的需要,这样可以帮助减少一个或多个总线(例如将DMA控制器与I/O处理器局部内存耦合的一个或多个总线)上的通信量。当然,本发明的范围并不限于此。
可以用串行或并行方式执行DMA传送,或可以用串行方式执行一些DMA传送而用并行方式执行另一些DMA传送。在本发明的一个特定实施例中,可以首先传送第一数据集(例如A)。然后,可以传送第二数据集(例如B)。根据本发明的一个或多个实施例,可以将第一和第二数据集的XOR(例如A XOR B)与数据集中的一个(例如B)的DMA传送至少部分地基本同时或至少部分大致同时地传送。即,A XOR B可以与B的传送一致且实时地执行。或者,可以将数据集的XOR存储在本地缓冲器,并在传送了数据集中的最后一个数据集(例如B)之后才传送数据集的XOR运算。
图4是表示本发明的一个或多个实施例的DMA控制器426的框图,其中包括对数据集执行XOR运算的XOR块436和存储对数据集执行一个或多个XOR运算的结果的小存储器461(例如缓冲器)。该缓冲器可包括在DMA控制器中或以其他方式设在适配器中。
现在描述根据本发明一个或多个实施例的、将XOR逻辑部件与缓冲器组合使用的一个示范方法。可以将初始默认值(例如全零)存储在缓冲器中。然后,在第一数据集(例如A)的DMA传送期间,可以将第一数据集(例如A)从指定的DMA源提供给DMA控制器。如图所示,在DMA控制器内,可以将第一数据集(例如A)传送到指定的DMA目标,并作为输入提供给XOR块。可以并行方式将缓冲器中存储的初始默认值提供给XOR逻辑部件。XOR逻辑部件可以对第一数据集(例如A)和初始默认值执行XOR运算以生成中间结果。在本例中,因为初始默认值是全零,所以中间结果可以仅是重新生成的第一数据集(例如A)。XOR块可以包括做出如下确定或评估A XOR 0=A和A XOR 1=NOT A的逻辑部件。所以,如果在第一次XOR运算之前缓冲器被清空或缓冲器包含全零,则对来自DMA源的输入流与缓冲器的内容执行XOR运算的结果只是输入流的再返回(the input stream back again)。中间结果可提供给缓冲器并存储在其中。
然后,在第二数据集(例如B)的后续DMA传送期间,可以将第二数据集(例如B)与来自缓冲器的中间值提供给XOR逻辑部件。XOR逻辑部件可以对在第二数据集(例如B)与中间值(在本例中是第一数据集(例如A))执行XOR运算,以生成最终结果。作为示例,最终结果可以是A XOR B。此XOR运算可以在进行第二数据集(例如B)的DMA传送时一致且实时地执行。可以将最终结果以并行方式或与第二数据(例如B)的传送基本同时传送,或者,可以将最终结果提供给缓冲器并存储短暂的时间或延迟后再传送。以此方式,可以在缓冲器中顺序地构建XOR结果,并将作为输入提供给XOR逻辑部件的不同数据集传送到它们不同的目标。因为由已在DMA控制器中的数据生成XOR结果,所以也可以减少与DMA传送关联的总线上的通信量。
在本发明的一个或多个实施例中,至少部分由于DMA描述符的指定,可以在没有处理器(I/O处理器核)的干预中断的情况下,紧挨着地执行数据集的DMA传送和数据集的XOR的DMA传送。消除中断(或至少减少中断)可获得一些公知的优点。
在完成DMA传送之后,DMA控制器可用信号通知I/O处理器核已完成DMA传送。然后就可以撤销一个或多个DMA通道。
图5是根据本发明一个或多个实施例的、传送数据集和数据集的逻辑运算(例如XOR)的方法的流程图。在一个方面,该方法可以由DMA控制器或集成了DMA控制器逻辑的组件或系统来执行。
在框570处开始,然后可在框571处接收指定数据集的DMA传送和逻辑运算(例如XOR)的DMA传送的单个数据结构。如上所述,该数据结构可包括DMA描述符。这些数据集可包含两个或更多的数据集。
然后,响应该数据结构之接收,或至少在接收到该数据结构后,可以执行对数据集的DMA传送和逻辑运算(例如XOR)的DMA传送,如框572所示。在一个方面,可以在DMA控制器上生成对数据集的XOR或其他逻辑运算。在一个方面,可以在执行这些数据集中至少一个数据集(例如最后传送的数据集)的DMA传送前生成数据集的XOR或其他逻辑运算。在一个方面,可以执行数据集的DMA传送和这些数据集的XOR或其他逻辑运算的DMA传送,而没有处理器核的干预中断。该方法然后在框573处结束。
本文公开的DMA控制器可用于多种智能I/O应用。代表性的应用包括但不限于存储设备、联网和通信应用。
在本发明的一个或多个实施例中,本文公开的DMA控制器可以用于根据RAID(独立(或廉价盘)冗余阵列的存储协议或技术)将数据集和这些数据集的XOR传送到一个或多个存储盘阵列。某些级别的RAID(例如RAID-3和RAID-5)可以存储数据集和这些数据集的XOR,以提供可用于实现硬件故障容错的奇偶校验(或数据冗余性)。
作为示例,如果A和B以及A XOR B各存储在不同的存储设备(例如不同的存储盘阵列或RAID堆栈)上,则在存储A、B或A XOR B的存储设备中的任一个发生故障的情况下,可以由其他两个数据集中的冗余数据重新算出丢失的数据。例如,如果存储B的存储盘阵列发生故障,则可以由A和A XOR B来计算B。又如,数据A、B和C中的任一个可以由其他两个重新算出。
相应地,在本发明的一个或多个实施例中,本文公开的DMA控制器可以帮助将数据集和这些数据集的XOR运算提供给存储设备,以根据RAID技术或协议来进行存储。
作为另一选择,在本发明的一个或多个实施例中,本文公开的DMA控制器可以帮助将数据集和这些数据集的XOR运算提供给加密或解密逻辑部件,加密或解密逻辑部件可以用数据和XOR运算执行加密或解密。代表性的示例包括但不限于高级加密标准(AES)逻辑和/或三重数据加密标准(3DES)逻辑部件。这可以避免需要处理器来执行XOR运算。另外,在本发明的一个或多个实施例中,可以可选地传送对数据的逻辑加密运算来取代传送上文提到的数据的XOR运算,或作为传送上文提到的数据的XOR运算的附加操作。
作为另一选择,在本发明的一个或多个实施例中,本文公开的DMA控制器可以帮助将数据集和这些数据集的XOR运算提供给可以使用数据和XOR运算的散列逻辑部件。代表性的示例包括(但不限于)消息摘要5(MD5)逻辑部件、虚拟专用网(VPN)逻辑部件和/或安全散列算法(SHA-1)逻辑部件。这可使处理器无需执行XOR运算。
这些仅仅是几个说明性的示例。本发明的范围并不仅限于这些示例。
图6是表示适于实现本发明的一个或多个实施例的计算机系统体系结构600的框图。计算机系统体系结构包括计算机系统610、一个或多个附加设备690、便于计算机系统与附加设备之间交换数据的适配器620以及可选的用户接口系统683。
本文使用的术语“计算机系统”可以包括具有例如通过执行指令序列来处理数据的硬件和/或软件的设备。所述计算机系统可包括(但不限于)便携式计算机、膝上型计算机、台式计算机、服务器或主计算机等等。所述计算机系统代表用于实现本发明的一个或多个实施例的一种可能的计算机系统,当然也可以是其他计算机系统和所述计算机系统的改型。
所述计算机系统包括处理信息的CPU 680,有时简称为处理器。在一个或多个实施例中,所述处理器可以包括Pentium系列处理器中的处理器,例如Pentiurm 4处理器,当然本发明的范围并不限于此。Pentium系列处理器可从美国加州圣克拉拉的英特尔公司购买。或者,也可以可选地使用其他处理器。作为一例,可使用具有多个处理核的处理器。而且,在一个或多个实施例中,所述计算机系统可包括多个处理器。
所述处理器通过总线与芯片集的其他组件耦合。该总线是互连部或数据传送路径。在本发明的一个或多个实施例中,该芯片集可以包括第一桥/集线器(例如可从英特尔公司购买的存储器控制桥/集线器(MCH)681)以及第二桥/集线器(例如可从英特尔公司购买的输入/输出(I/O)桥/集线器(ICH)682)。在一个或多个其他实施例中,可以将MCH的至少一部分或全部与处理器集成,例如集成在同一芯片上。该MCH可通过集线器接口与ICH耦合。然而,本发明的范围并不限于例示的特定芯片集,其他芯片集也是适合的。
所述计算机系统包括系统内存612,它通过一个或多个总线或其他互连部或数据传送路径与芯片集耦合或以其他方式与之通信。如图示说明的实施例所示,该系统内存可以通过总线与MCH耦合。
在本发明的一个或多个实施例中,该系统内存可以包括主存储器(例如随机存取存储器(RAM)或其他动态存储设备),主存储器存储包含要由处理器执行的指令在内的信息。一些但不是全部计算机系统中的不同类型的RAM存储器包括(但不限于)静态RAM(SRAM)和动态RAM(DRAM)。也可选用不必一定是动态的或是需要刷新的其他类型的RAM。
所述计算机系统还可包括未示出的只读存储器(ROM)。该ROM可以存储用于处理器的静态信息和指令,例如基本输入输出系统(BIOS)。在本发明的一些(并非所有)实施例中,可以使用闪速BIOS。在闪速BIOS中,可以将BIOS存储在闪速存储器上。还有可能使用其他类型的存储器,例如可编程ROM(PROM)、可擦写可编程ROM(EPROM)以及电可擦写可编程ROM(EEPROM)。
该可选用户接口系统通过一个或多个总线或其他数据传送路径与芯片集耦合或以其他方式与之通信。在图示说明的实施例中,用户接口系统与ICH耦合。该用户接口系统可以代表性地包括例如显示装置、键盘、光标控制器及它们的组合,但本发明的范围并不限于此。例如,诸如服务器等一些计算机系统可以可选地采用简化的用户接口系统。
所述计算机系统还可以包括插槽684。该插槽可以通过一个或多个总线、其他互连部或其他数据传送路径与芯片集耦合或以其他方式与之通信。在图示说明的实施例中,该插槽可以与ICH耦合。
在一个或多个实施例中,所述计算机系统可以可选地包括外壳或机箱685。CPU、MCH、ICH、系统内存和插槽可装在外壳或机箱内。这些组件可以与计算机系统的主板、底板或其他单个主电路板集成。适配器可插入到插槽中,该插槽表现为外壳或机箱上的开口,并通过它与主电路板耦合。或者,所述计算机系统也可将外壳或机箱省掉。
可以将适配器插入到插槽中。当适配器插入到插槽中时,适配器的电元件可以与计算机系统的至少一些电元件(例如系统内存)电耦合或以其他方式与之通信。
在本发明的一个或多个实施例中,所述适配器可以包括I/O处理器和/或文中他处揭示的具有XOR逻辑部件的DMA控制器。如图1所示,所述适配器可以包括其他组件。在一个或多个实施例中,所述适配器可以包括与Intel 80332 I/O处理器的那些组件相似的组件的子集或超集,其中Intel 80332 I/O处理器可以从美国加州圣克拉拉的英特尔公司购买。Intel 80332 I/O处理器包括Intel XScale核、x8 PCI Express上行链路、支持PCI-X接口的两个PCI Express至PCI桥、PCI标准热插拔控制器、地址转换单元、高性能存储控制器、具有十七个外部中断输入的中断控制器、两个DMA控制器、应用程序加速器、消息传送单元、外围总线接口单元、性能监视器、两个集成电路间(I2C)总线接口单元、具有流控制的两个16550兼容UART以及八个通用I/O(GPIO)端口。在一个或多个实施例中,Intel 80332 I/O处理器的Intel XScale核和DMA控制器可以调整为包括本文公开的逻辑和方法,当然本发明的范围并不限于此。如果需要的话,在2004年8月发布且可从英特尔公司获取的开发人员手册(文档编号274065-002US)中获取有关Intel 80332 I/O处理器的更多背景信息。
第6章包括DMA控制器的更多背景信息。
该附加设备(例如存储设备)可以通过一个或多个通信链路与适配器耦合。所述适配器可以具有用于通信链路的一个或多个连接器或其他端口。适合的存储设备包括(但不限于)硬盘、多个硬盘、硬盘阵列、存储盘阵列、廉价盘的冗余阵列、CD-ROM装置、磁带驱动器、Zip驱动器、SuperDisk驱动器等。
所述计算机系统可经由适配器与附加设备交换数据。在本发明的一个或多个实施例中,所述适配器可以协助执行计算机系统与附加设备之间数据的DMA传送。
本发明的范围不限于将DMA控制器和/或I/O处理器包括在可插入到插槽中的适配器中。图7是表示适于实现本发明的一个或多个实施例的备选计算机系统体系结构700的框图。所述计算机系统体系结构包括计算机系统710、一个或多个附加设备790、便于计算机系统与附加设备之间交换数据的适配器720以及可选的用户接口系统783。图示说明的计算机系统包括CPU 780、MCH 781、ICH 782、系统内存712和主板或主电路板786。CPU、MCH、ICH以及系统内存可以与计算机系统的主板或主电路板集成或以其他方式设在计算机系统的主板或主电路板上。
所述适配器包括I/O处理器核724、DMA控制器726、存储控制器788和I/O存储器734。如图所示,包括I/O处理器核、DMA控制器、存储控制器和I/O存储器的适配器可以与计算机系统的主板或主电路板集成或以其他方式设在计算机系统的主板或主电路板上。
存储控制器与附加设备双向耦合或以其他方式与附加设备双向通信。I/O处理器核与存储控制器双向耦合或以其他方式与存储控制器双向通信。图示说明的存储控制器包含在适配器中和主板上,虽然并非一定这样要求。DMA控制器与MCH双向耦合或以其他方式与MCH双向通信。I/O处理器核与系统内存双向耦合或以其他方式与之双向通信。I/O处理器核可通过此控制器访问系统内存,例如交换控制信息。适配器的其他组件如双向箭头所示与另一组件双向通信。
在图示说明的实施例中,DMA控制器、I/O处理器核、I/O存储器以及存储控制器分别作为与主板耦合的单独芯片或其他微电子器件提供,当然本发明的范围并不限于此。在本发明的多种备选实施例中,可以将DMA控制器和I/O处理器核中的一个或多个与另一个芯片集组件集成。作为一例,DMA控制器可以可选地与MCH集成。使DMA控制器在逻辑上更靠近CPU可以获得某些潜在的优点。作为另一示例,DMA引擎可以与I/O处理器核集成,以例如能够共享XOR逻辑部件。作为再一示例,可以将DMA控制器、I/O处理器和ICH可选地集成在一起。还可设想多种其他集成。本发明的范围不限于此类芯片集组件的任何特定配置。
还可设想适于实现本发明的其他计算机系统体系结构实施例。例如,在本发明的一个或多个实施例中,不将适配器插入到插槽中,而是将适配器设于外部,并可以通过电缆或其他连接器与主板耦合。
在上文描述中,出于解释的目的,阐述了许多特定细节,以便于对本发明实施例的透彻理解。但是,本领域人员显见,可以在没有这些特定细节的情况下实施一个或多个其他实施例。所描述的特定实施例并非用来限制本发明,而是用来说明本发明。本发明的范围不由上文提供的特定示例来确定,而仅由所附的权利要求来确定。在其他实例中,未以框图形式示出或未详细示出公知的电路、结构、装置和操作,以免模糊对此描述的理解。
已经描述了多种操作和方法。这些方法的其中一些是按基本形式描述的,但是可以可选地对这些方法添加操作和/或从中删除操作。这些方法的操作还可以可选地按不同次序来执行。可以对这些方法进行许多修改和调整,并且可设想许多修改和调整。例如,不仅仅对两个数据集执行XOR运算,而是对三个、四个、五个、十个或更多的数据集执行XOR运算,然后进行传送。
可用硬件来执行某些操作,或将某些操作包含在机器可执行指令中,这些机器可执行指令可用来使或至少导致利用这些指令编程的电路执行这些操作。该电路可以包括通用或专用处理器或逻辑电路等等。这些操作还可以可选地由硬件和软件的组合来执行。
本发明的一个或多个实施例可以作为程序产品或其他制品来提供,该程序产品或其他制品可以包括其上存储有一个或多个指令和/或数据结构的机器可访问和/或可读媒体。该媒体可以提供指令,其中如果这些指令被机器执行,则可以导致和/或使机器执行本文公开的操作或方法中的一个或多个。适用的机器包括(但不限于)计算机系统、适配器、I/O处理器以及各种具有一个或多个处理器的其他装置等等。
上述媒体可以包括用于提供(例如存储和/或传送)机器可访问形式的信息的机制。例如,上述媒体可以可选地包括可记录和/或不可记录媒体,例如软磁盘、光存储媒体、光盘、CD-ROM、磁盘、磁光盘、只读存储器(ROM)、可编程ROM(PROM)、可擦写可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)、随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、闪速存储器和它们的组合。
媒体还可以可选地包括电、光、声音、射频或其他形式的传播信号(例如载波、红外信号、数字信号等)。本发明的实施例可以作为计算机程序产品来下载,其中上述程序可以通过载波或其他传播信号或媒体中包含的数据信号的方式经由通信链路(例如调制解调器或网络连接)从一个机器传送到另一个机器。
为了简明,权利要求书中未明述执行指定功能“用的装置(means for)”或执行指定功能“用的步骤(step for)”的任何组成部分不应被解释为35 U.S.C.第112节、第6段中指定的“装置(means)”或“步骤(step)”条款。具体来说,本文权利要求中任何可能使用的“的步骤(step of)”无意援引35 U.S.C.第112节、第6段的规定。
还应该认识到在本说明书中对例如“一个实施例”、“实施例”或“一个或多个实施例”的引述表示可以在本发明的实施中包括特定特征。此类复述非一定指代相同的实施例。相似地,应该认识到在本文描述中,有时为了使公开的行文流畅并帮助理解多个不同发明方面的目的,将多个特征归组在一个实施例、附图或其描述中。但是此公开方法不应解释为就本发明反映,本发明所具有的特征必须多于每项权利要求中明述的特征。相反,正如所附权利要求反映的,发明形态可基于比单个公开实施例的全部特征少的特征来实现。因此,“具体实施方式”之后所附的权利要求明确地与具体实施方式的内容结合,其中的每项权利要求由本发明的单独实施例支持。
因此,虽然本发明是依据多个实施例来透彻描述的,但是本领域技术人员将认识到本发明并不限于所描述的实施例,而是可以在所附权利要求的精神和范围内通过修改和替换来实施。因此,本说明书应视为说明性的而非限制性的。
Claims (22)
1.一种用于直接存储器访问(DMA)传送的方法,包括:
接收数据结构,所述数据结构指定多个数据集的直接存储器访问(DMA)传送以及对所述多个数据集执行的逻辑运算的DMA传送;以及
响应所述数据结构之接收而与所述多个数据集的DMA传送一致地执行所述多个数据集上的逻辑运算,并至少部分地与所述多个数据集上执行的所述逻辑运算的DMA传送同时执行所述多个数据集的所述DMA传送。
2.如权利要求1所述的方法,其特征在于,所述逻辑运算包括“异或”运算。
3.如权利要求1所述的方法,其特征在于,还包括在DMA控制器处执行所述多个数据集上的所述逻辑运算。
4.如权利要求1所述的方法,其特征在于,所述多个数据集的DMA传送和对所述数据集执行的所述逻辑运算的DMA传送,在没有处理器核的干预中断的情况下执行。
5.如权利要求1所述的方法,其特征在于,所述逻辑运算包括“异或”运算,并且其中所述数据集的“异或”的所述DMA传送与所述数据集的DMA传送被执行,而不将所述数据集或所述数据集上执行的逻辑运算存储在DMA控制器的缓冲器中。
6.如权利要求1所述的方法,其特征在于,所述数据集的DMA传送和所述数据集上执行的逻辑运算的DMA传送被同时执行。
7.如权利要求1所述的方法,其特征在于,所述数据集的DMA传送和对所述数据集执行的所述逻辑运算的DMA传送,是给输入/输出处理器的局部内存传送的。
8.如权利要求1所述的方法,其特征在于,接收所述数据结构的步骤包括接收DMA描述符,并且所述方法还包括确定:通过检查所述数据结构的字段来指定所述逻辑运算。
9.一种用于直接存储器访问(DMA)传送的装置,包括:
传递指定数据集的直接存储器访问(DMA)传送和指定对所述数据集执行的逻辑运算的DMA传送的数据结构的互连部;以及
与所述互连部通信以接收所述数据结构的DMA控制器,所述DMA控制器包括用于与所述数据集的DMA传送一致地对所述数据集执行所述逻辑运算的逻辑部件,所述DMA控制器用于至少部分地与所述数据集上执行的逻辑运算的DMA传送同时执行所述数据集的DMA传送。
10.如权利要求9所述的装置,其特征在于,所述逻辑部件包括对所述数据集执行“异或”运算的逻辑部件。
11.如权利要求9所述的装置,其特征在于,还包括与所述互连部通信的处理器核,所述处理器核生成所述数据结构并将所述数据结构提供给所述互连部。
12.如权利要求9所述的装置,其特征在于,所述DMA控制器在没有处理器核的干预中断的情况下传送所述多个数据集和对所述多个数据集执行的所述逻辑运算。
13.如权利要求9所述的装置,其特征在于,所述逻辑运算包括“异或”运算,并且其中所述DMA控制器用于执行所述数据集的“异或”的DMA传送与所述数据集的DMA传送,而不将所述数据集或所述数据集上执行的逻辑运算存储在缓冲器中。
14.如权利要求9所述的装置,其特征在于,还包括所述DMA控制器的逻辑部件,所述逻辑部件确定:所述逻辑运算通过检查所述数据结构的字段来指定。
15.一种用于直接存储器访问(DMA)传送的方法,包括:
在直接存储器访问(DMA)控制器上通过对数据A与数据B执行“异或”(XOR)运算而与所述数据A和所述数据B的直接存储器访问(DMA)传送一致地生成A XOR B,其中A XOR B在A和B的DMA传送期间生成;以及
将基于A XOR B的结果执行DMA传送,而不将A XOR B存储在缓冲器中。
16.如权利要求15所述的方法,其特征在于,还包括与所述结果的DMA传送基本同时地执行A和B的DMA传送。
17.如权利要求15所述的方法,其特征在于,
A、B及所述结果的DMA传送在没有处理器核的干预中断的情况下执行。
18.一种用于直接存储器访问(DMA)传送的系统,包括:
具有系统内存的计算机系统;以及
与所述计算机系统通信的适配器,所述适配器包括:
输入/输出处理器核,所述核生成指定数据集的直接存储器访问
(DMA)传送和指定对所述数据集执行的逻辑运算的DMA传送的数据结构;以及
与所述核通信以接收所述数据结构的DMA控制器,所述DMA控制器包括用于与所述数据集的DMA传送一致且至少部分地同时地对所述数据集执行所述逻辑运算的逻辑部件,且所述DMA控制器用于至少部分地与所述数据集的DMA传送同时执行对所述数据集上执行的所述逻辑运算的DMA传送。
19.如权利要求18所述的系统,其特征在于,所述DMA控制器执行所述数据集上的逻辑运算的DMA传送和所述数据集的DMA传送,而不将所述数据集和所述逻辑运算存储在缓冲器中。
20.如权利要求18所述的系统,其特征在于,所述DMA控制器在没有处理器核的干预中断的情况下传送所述多个数据集和对所述多个数据集执行的所述逻辑运算。
21.如权利要求18所述的系统,其特征在于,所述逻辑运算包括“异或”运算。
22.如权利要求18所述的系统,其特征在于,还包括所述DMA控制器的逻辑部件,所述逻辑部件确定:所述逻辑运算通过检查所述数据结构的字段来指定。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/240,757 US8205019B2 (en) | 2005-09-30 | 2005-09-30 | DMA transfers of sets of data and an exclusive or (XOR) of the sets of data |
US11/240,757 | 2005-09-30 | ||
PCT/US2006/037645 WO2007041154A1 (en) | 2005-09-30 | 2006-09-26 | Dma transfers of sets of data and an exclusive or (xor) of the sets of data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101273338A CN101273338A (zh) | 2008-09-24 |
CN101273338B true CN101273338B (zh) | 2011-10-05 |
Family
ID=37460145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800355515A Expired - Fee Related CN101273338B (zh) | 2005-09-30 | 2006-09-26 | 用于数据集及数据集“异或”的dma传送的方法、装置及系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8205019B2 (zh) |
EP (1) | EP1934764B1 (zh) |
CN (1) | CN101273338B (zh) |
AT (1) | ATE465453T1 (zh) |
DE (1) | DE602006013854D1 (zh) |
WO (1) | WO2007041154A1 (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015397B2 (en) | 2012-11-29 | 2015-04-21 | Sandisk Technologies Inc. | Method and apparatus for DMA transfer with synchronization optimization |
US8316258B2 (en) * | 2007-05-03 | 2012-11-20 | Oracle America, Inc. | System and method for error detection in a data storage system |
US8959307B1 (en) | 2007-11-16 | 2015-02-17 | Bitmicro Networks, Inc. | Reduced latency memory read transactions in storage devices |
US8190699B2 (en) * | 2008-07-28 | 2012-05-29 | Crossfield Technology LLC | System and method of multi-path data communications |
US8638799B2 (en) * | 2009-07-10 | 2014-01-28 | Hewlett-Packard Development Company, L.P. | Establishing network quality of service for a virtual machine |
US8665601B1 (en) | 2009-09-04 | 2014-03-04 | Bitmicro Networks, Inc. | Solid state drive with improved enclosure assembly |
US8447908B2 (en) | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
US8560804B2 (en) | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
US9372755B1 (en) | 2011-10-05 | 2016-06-21 | Bitmicro Networks, Inc. | Adaptive power cycle sequences for data recovery |
CN102521062B (zh) * | 2011-11-29 | 2015-02-11 | 西安空间无线电技术研究所 | 可全面在线自检测单粒子翻转的软件容错方法 |
US9043669B1 (en) | 2012-05-18 | 2015-05-26 | Bitmicro Networks, Inc. | Distributed ECC engine for storage media |
US9423457B2 (en) | 2013-03-14 | 2016-08-23 | Bitmicro Networks, Inc. | Self-test solution for delay locked loops |
US9734067B1 (en) | 2013-03-15 | 2017-08-15 | Bitmicro Networks, Inc. | Write buffering |
US9400617B2 (en) | 2013-03-15 | 2016-07-26 | Bitmicro Networks, Inc. | Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained |
US10489318B1 (en) | 2013-03-15 | 2019-11-26 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9720603B1 (en) | 2013-03-15 | 2017-08-01 | Bitmicro Networks, Inc. | IOC to IOC distributed caching architecture |
US9875205B1 (en) | 2013-03-15 | 2018-01-23 | Bitmicro Networks, Inc. | Network of memory systems |
US9501436B1 (en) | 2013-03-15 | 2016-11-22 | Bitmicro Networks, Inc. | Multi-level message passing descriptor |
US9672178B1 (en) | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US9430386B2 (en) | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9858084B2 (en) | 2013-03-15 | 2018-01-02 | Bitmicro Networks, Inc. | Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory |
US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9934045B1 (en) | 2013-03-15 | 2018-04-03 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9798688B1 (en) | 2013-03-15 | 2017-10-24 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
JP5740016B2 (ja) * | 2014-02-14 | 2015-06-24 | 株式会社ユニバーサルエンターテインメント | 遊技機 |
US9811461B1 (en) | 2014-04-17 | 2017-11-07 | Bitmicro Networks, Inc. | Data storage system |
US10042792B1 (en) | 2014-04-17 | 2018-08-07 | Bitmicro Networks, Inc. | Method for transferring and receiving frames across PCI express bus for SSD device |
US10055150B1 (en) | 2014-04-17 | 2018-08-21 | Bitmicro Networks, Inc. | Writing volatile scattered memory metadata to flash device |
US10078604B1 (en) | 2014-04-17 | 2018-09-18 | Bitmicro Networks, Inc. | Interrupt coalescing |
US10025736B1 (en) | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
US9952991B1 (en) | 2014-04-17 | 2018-04-24 | Bitmicro Networks, Inc. | Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation |
CN106294232B (zh) * | 2015-05-21 | 2019-04-30 | 深圳市中兴微电子技术有限公司 | 一种dma控制器及其实现方法 |
CN105446842B (zh) * | 2015-12-03 | 2019-01-04 | 南京南瑞继保电气有限公司 | 一种adi dsp代码在线监视方法 |
CN107357745A (zh) * | 2016-05-09 | 2017-11-17 | 飞思卡尔半导体公司 | 具有算术单元的dma控制器 |
US10552050B1 (en) | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
CN109947368A (zh) * | 2019-03-21 | 2019-06-28 | 记忆科技(深圳)有限公司 | 数据可靠性检测方法、装置、计算机设备及存储介质 |
TWI797554B (zh) * | 2021-02-05 | 2023-04-01 | 新唐科技股份有限公司 | 系統單晶片及控制方法 |
KR20230043408A (ko) | 2021-09-24 | 2023-03-31 | 삼성전자주식회사 | 메모리 컨트롤러 및 스토리지 장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6070182A (en) * | 1998-06-05 | 2000-05-30 | Intel Corporation | Data processor having integrated boolean and adder logic for accelerating storage and networking applications |
EP1019835B1 (en) * | 1997-09-30 | 2002-08-07 | Lsi Logic Corporation | Segmented dma with xor buffer for storage subsystems |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5789128A (en) * | 1980-11-25 | 1982-06-03 | Hitachi Ltd | Controlling system for information interchange |
US5206943A (en) * | 1989-11-03 | 1993-04-27 | Compaq Computer Corporation | Disk array controller with parity capabilities |
US5101492A (en) * | 1989-11-03 | 1992-03-31 | Compaq Computer Corporation | Data redundancy and recovery protection |
US6134003A (en) | 1991-04-29 | 2000-10-17 | Massachusetts Institute Of Technology | Method and apparatus for performing optical measurements using a fiber optic imaging guidewire, catheter or endoscope |
US5333305A (en) * | 1991-12-27 | 1994-07-26 | Compaq Computer Corporation | Method for improving partial stripe write performance in disk array subsystems |
US5682509A (en) * | 1995-12-13 | 1997-10-28 | Ast Research, Inc. | Bus interface to a RAID architecture |
US5742752A (en) * | 1995-12-29 | 1998-04-21 | Symbios Logic Inc. | Method for performing a RAID stripe write operation using a drive XOR command set |
US6145043A (en) | 1998-06-05 | 2000-11-07 | Intel Corporation | Boolean and movement accelerator |
US6999771B1 (en) | 2001-09-28 | 2006-02-14 | Arraycomm Llc | Channel assignments in a wireless communication system having spatial channels including grouping existing subscribers in anticipation of a new subscriber |
US7039363B1 (en) | 2001-09-28 | 2006-05-02 | Arraycomm Llc | Adaptive antenna array with programmable sensitivity |
US7287101B2 (en) | 2003-08-05 | 2007-10-23 | Intel Corporation | Direct memory access using memory descriptor list |
WO2005054780A1 (en) | 2003-11-28 | 2005-06-16 | The General Hospital Corporation | Method and apparatus for three-dimensional spectrally encoded imaging |
US20050204185A1 (en) | 2004-03-11 | 2005-09-15 | Tait Philip J. | Detecting and identifying data loss |
US7913148B2 (en) * | 2004-03-12 | 2011-03-22 | Nvidia Corporation | Disk controller methods and apparatus with improved striping, redundancy operations and interfaces |
US20050228917A1 (en) | 2004-03-30 | 2005-10-13 | Brink Peter C | Novel structure and method for interrupt detection and processing |
US7509559B2 (en) | 2005-06-27 | 2009-03-24 | Intel Corporation | Apparatus and method for parity generation in a data-packing device |
US8463969B2 (en) | 2005-06-30 | 2013-06-11 | Intel Corporation | Extended message signal interrupt |
-
2005
- 2005-09-30 US US11/240,757 patent/US8205019B2/en not_active Expired - Fee Related
-
2006
- 2006-09-26 EP EP06815558A patent/EP1934764B1/en not_active Not-in-force
- 2006-09-26 AT AT06815558T patent/ATE465453T1/de not_active IP Right Cessation
- 2006-09-26 CN CN2006800355515A patent/CN101273338B/zh not_active Expired - Fee Related
- 2006-09-26 DE DE602006013854T patent/DE602006013854D1/de active Active
- 2006-09-26 WO PCT/US2006/037645 patent/WO2007041154A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1019835B1 (en) * | 1997-09-30 | 2002-08-07 | Lsi Logic Corporation | Segmented dma with xor buffer for storage subsystems |
US6070182A (en) * | 1998-06-05 | 2000-05-30 | Intel Corporation | Data processor having integrated boolean and adder logic for accelerating storage and networking applications |
Also Published As
Publication number | Publication date |
---|---|
DE602006013854D1 (de) | 2010-06-02 |
CN101273338A (zh) | 2008-09-24 |
US20070079017A1 (en) | 2007-04-05 |
EP1934764A1 (en) | 2008-06-25 |
EP1934764B1 (en) | 2010-04-21 |
US8205019B2 (en) | 2012-06-19 |
WO2007041154A1 (en) | 2007-04-12 |
ATE465453T1 (de) | 2010-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101273338B (zh) | 用于数据集及数据集“异或”的dma传送的方法、装置及系统 | |
CN101221551B (zh) | 用于对称多处理器互连的方法和设备以及多处理器 | |
US10102153B2 (en) | System and method for intercept of UEFI block I/O protocol services for BIOS based hard drive encryption support | |
CN102446073B (zh) | 延迟对操作的确认直至操作完成的方法和系统 | |
US8375380B2 (en) | In-system reconfiguring of hardware resources | |
CN106575206B (zh) | 计算机系统中的存储器写入管理 | |
CN101356506B (zh) | 智能可缩放存储切换架构 | |
CN105075413B (zh) | 在配置成收纳多个模块化信息处理系统和多个模块化信息处理资源的机壳中镜像虚拟功能的系统和方法 | |
US8726086B2 (en) | Generation of simulated errors for high-level system validation | |
US8990451B2 (en) | Controller for direct access to a memory for the direct transfer of data between memories of several peripheral devices, method and computer program enabling the implementation of such a controller | |
TWI283352B (en) | Integrated circuit having multiple modes of operation | |
CN110324264A (zh) | 分配系统资源的方法与系统 | |
US7747809B2 (en) | Managing PCI express devices during recovery operations | |
CN103582879B (zh) | 管理耦合设施中的操作员消息缓冲器 | |
KR101056153B1 (ko) | 배리어 동작들의 조건부 브로드캐스트를 위한 방법 및 장치 | |
CN101038555A (zh) | 用于对系统bios本地及远程更新及配置的独立于芯片组的方法 | |
CN113468049B (zh) | 基于可配置化接口的测试方法、装置、设备及介质 | |
CN105874442A (zh) | 计算机系统和计算机系统中端点设备访问的方法 | |
US20060179219A1 (en) | Configuration definition setup method for disk array apparatus, and disk array apparatus | |
US10261699B2 (en) | Systems and methods for hardware-based RAID acceleration | |
CN102253845A (zh) | 服务器系统 | |
CN107817962A (zh) | 一种远程控制方法、装置、控制服务器及存储介质 | |
US9053092B2 (en) | System authorizing direct data transfers between memories of several components of that system | |
CN102203757A (zh) | 用于冻结对象的类型描述符管理 | |
US10467156B1 (en) | System and method of improving efficiency in parallel data processing of a RAID array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111005 Termination date: 20180926 |