專利名稱:數(shù)據(jù)集及數(shù)據(jù)集“異或”的dma傳送的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例涉及直接存儲(chǔ)器訪問(DMA)領(lǐng)域。具體來說, 本發(fā)明的實(shí)施例涉及數(shù)據(jù)集的DMA傳送和對(duì)數(shù)據(jù)集執(zhí)行的例如"異 或"(XOR)運(yùn)算的邏輯運(yùn)算。
背景技術(shù):
直接存儲(chǔ)器訪問(DMA)是一種使計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)內(nèi)的某 些硬件子系統(tǒng)能將數(shù)據(jù)傳送到系統(tǒng)內(nèi)存以及從系統(tǒng)內(nèi)存?zhèn)魉蛿?shù)據(jù)而 基本上由較少處理器參與的技術(shù)。若沒有DMA,處理器可能以其他 方式將數(shù)據(jù)從源復(fù)制到其寄存器之一,然后將該數(shù)據(jù)寫回到另 一位 置。由于深入地參與其中,處理器會(huì)在這樣的數(shù)據(jù)傳送期間降低了執(zhí) 行其他任務(wù)的可用性。出于多種原因(例如為數(shù)據(jù)可靠性而要?jiǎng)?chuàng)建奇偶校驗(yàn)信息)而可 能對(duì)數(shù)據(jù)執(zhí)行"異或"(XOR)運(yùn)算??捎肈MA來傳送對(duì)數(shù)據(jù)集執(zhí)行 XOR運(yùn)算的結(jié)果。
可以通過下文描述和圖示本發(fā)明實(shí)施例的附圖來最佳地理解本 發(fā)明。這些附圖中圖1是表示本發(fā)明的 一個(gè)或多個(gè)實(shí)施例可在其中實(shí)現(xiàn)的計(jì)算機(jī)系 統(tǒng)體系結(jié)構(gòu)的框圖。圖2是表示本發(fā)明的一個(gè)或多個(gè)實(shí)施例的執(zhí)行數(shù)據(jù)集和數(shù)據(jù)集的 "異或"的DMA傳送的DMA控制器的框圖。圖3表示本發(fā)明的一個(gè)或多個(gè)實(shí)施例的規(guī)定多個(gè)數(shù)據(jù)集和這些多個(gè)數(shù)據(jù)集的"異或"的DMA傳送的DMA鏈描述符。圖4是表示本發(fā)明的一個(gè)或多個(gè)實(shí)施例的包括執(zhí)行XOR運(yùn)算的XOR邏輯部件和存儲(chǔ)XOR運(yùn)算的結(jié)果的緩沖器或其他小存儲(chǔ)器的DMA控制器的框圖。圖5是表示根據(jù)本發(fā)明一個(gè)或多個(gè)實(shí)施例的、傳送數(shù)據(jù)集和數(shù)據(jù)集的XOR運(yùn)算的方法的流程圖。圖6是表示適于實(shí)現(xiàn)本發(fā)明的 一個(gè)或多個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)的框圖。圖7是表示適于實(shí)現(xiàn)本發(fā)明的 一個(gè)或多個(gè)實(shí)施例的另 一計(jì)算機(jī)系 統(tǒng)體系結(jié)構(gòu)的框圖。
具體實(shí)施方式
下文描述中,提到許多特定的細(xì)節(jié)。但是應(yīng)理解,沒有些特定細(xì) 節(jié),仍可實(shí)現(xiàn)本發(fā)明的實(shí)施例。在其他實(shí)例中,^^知的電路、結(jié)構(gòu)和 技術(shù)均未詳細(xì)說明,以免使本發(fā)明的描述變得不清晰。圖1是表示可實(shí)現(xiàn)本發(fā)明的 一個(gè)或多個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)體系 結(jié)構(gòu)100的框圖。計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)包括計(jì)算機(jī)系統(tǒng)110、適配器 120和一個(gè)或多個(gè)附加設(shè)備190。所述適配器可以與計(jì)算機(jī)系統(tǒng)耦合 或以其他方式與計(jì)算機(jī)系統(tǒng)通信。該附加"^殳備可以與適配器耦合或以 其他方式與適配器通信。在本文描述中,可能用到術(shù)語"耦合"和"連接,,以及它們的派 生詞語。本文無意將這些術(shù)語視為彼此同義的。相反,在特定實(shí)施例 中,可用"連接"來表示兩個(gè)或更多組件彼此處于直接的物理接觸或 電接觸。"耦合"可以表示兩個(gè)或更多組件處于直接的物理接觸或電 接觸。但是,"耦合,,還可以表示兩個(gè)或更多組件可能并不處于彼此 直接的接觸中,但是仍可以彼此一致工作或交互作用。例如,兩個(gè)或 更多組件可以經(jīng)由使它們能夠交互作用的 一 個(gè)或多個(gè)中間組件來彼 此耦合。此外,如果兩個(gè)或更多組件彼此交換數(shù)據(jù)或信息,則兩個(gè)或更多組件可以彼此通信,而無論它們是否處于直接接觸中。計(jì)算機(jī)系統(tǒng)包括系統(tǒng)內(nèi)存112,例如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。 DRAM被包括在一些但不是全部計(jì)算機(jī)系統(tǒng)中。圖示的 適配器包括輸入/輸出(I/O)處理器122和1/0處理器局部?jī)?nèi)存134。 作為舉例,1/0處理器可以包括芯片級(jí)系統(tǒng)(system-on-chip ),當(dāng)然本 發(fā)明的范圍并不限于此。圖示的I/0處理器包括處理器核124、 DMA控制器126、存儲(chǔ)控 制器128、可選的一個(gè)或多個(gè)其他組件130以及例如一個(gè)或多個(gè)總線 的一個(gè)或多個(gè)互連部132。下文/>開其他適合的組件的特定示例。如 圖所示,核、DMA控制器和存儲(chǔ)控制器可以各與一個(gè)或多個(gè)總線耦 合或以其他方式與之通信。同樣地,核、DMA控制器和存儲(chǔ)控制器 可以各經(jīng)由 一個(gè)或多個(gè)中間總線彼此耦合或以其他方式彼此通信。I/O處理器局部?jī)?nèi)存可以與存儲(chǔ)控制器耦合或以其他方式與之通 信。如圖中適配器所示,1/0處理器局部?jī)?nèi)存可以在I/0處理器外部, 當(dāng)然也并非一定如此。例如,芯片級(jí)系統(tǒng)中將I/O處理器局部?jī)?nèi)存與 I/O處理器集成在一起的備選適配器也是適合的。適合的I/O處理器局 部?jī)?nèi)存可以包括(但不限于)那些包括雙數(shù)據(jù)速率同步DRAM(DDR-SDRAM)的存儲(chǔ)器。DDR-SDRAM也稱為SDRAM II和 DDRAM。所述適配器可以協(xié)助計(jì)算機(jī)系統(tǒng)與附加設(shè)備之間的數(shù)據(jù)交換。具 體來說,DMA控制器可以執(zhí)行源(例如計(jì)算機(jī)系統(tǒng)的系統(tǒng)內(nèi)存)與 目標(biāo)(例如I/O處理器局部?jī)?nèi)存)之間數(shù)據(jù)的DMA傳送。DMA控制 器可以請(qǐng)求并接受相關(guān)總線的控制,并通過I/O處理器核的有限參與 和/或無需數(shù)據(jù)傳遞通過I/O處理器核而直接傳送數(shù)據(jù)。DMA能夠?qū)?現(xiàn)快速交換數(shù)據(jù),對(duì)核的中斷負(fù)載低,并且可使核能夠在數(shù)據(jù)傳送期 間執(zhí)行其他任務(wù)。當(dāng)然,本發(fā)明的范圍并不限于實(shí)現(xiàn)這些特定優(yōu)點(diǎn)。在適合的時(shí)候,可以將適配器的1/0處理器局部?jī)?nèi)存中存儲(chǔ)的數(shù) 據(jù)轉(zhuǎn)發(fā)到附加設(shè)備,當(dāng)然本發(fā)明的范圍并不限于這方面。即,所述體系結(jié)構(gòu)可以包括存儲(chǔ)轉(zhuǎn)發(fā)體系結(jié)構(gòu)。在本發(fā)明的一個(gè)或多個(gè)實(shí)施例 中,附加設(shè)備可以包括一個(gè)或多個(gè)存儲(chǔ)設(shè)備,例如存儲(chǔ)盤陣列。或者, 附加設(shè)備可以包括其他I/O裝置或其他外圍裝置。所述適配器可以可 選地用作網(wǎng)絡(luò)接口卡以向網(wǎng)絡(luò)提供數(shù)據(jù),以及附加設(shè)備可以通過網(wǎng)絡(luò) 與適配器耦合或與之通信。圖2是表示本發(fā)明的一個(gè)或多個(gè)實(shí)施例的執(zhí)行數(shù)據(jù)集的和數(shù)據(jù)集的"異或"(XOR)的DMA傳送的DMA控制器。此框圖包括DMA 控制器226、 1/0處理器核224、系統(tǒng)內(nèi)存212和I/0處理器局部?jī)?nèi)存 234。這些上文提到的組件可以可選地具有圖1所示的計(jì)算機(jī)系統(tǒng)體系 結(jié)構(gòu)的相同名稱組件的一些或全部特征。為了避免使下文的描述變得 不清晰,下文的論述將傾向于主要著重描述不同和/或附加特征。一方面,DMA控制器可以通過I/0處理器核進(jìn)行編程。例如,I/O 處理器核可以生成數(shù)據(jù)結(jié)構(gòu)(例如DMA描述符)并將其提供給DMA 控制器。該數(shù)據(jù)結(jié)構(gòu)可以包括具有物理和/或邏輯關(guān)系以便例如支持 DMA控制器的數(shù)據(jù)操縱的結(jié)構(gòu)化數(shù)據(jù)。可選地,DMA描述符可以是 具有指向另一 DMA描述符的指針或其他鏈路的鏈描述符,當(dāng)然本發(fā) 明的范圍并不限于此。圖3表示本發(fā)明的一個(gè)或多個(gè)實(shí)施例的指定多個(gè)數(shù)據(jù)集的DMA 傳送和這些多個(gè)數(shù)據(jù)集的"異或"(XOR)的DMA傳送的DMA鏈描 述符。這僅是一個(gè)說明性的DMA鏈描迷符??稍O(shè)想其他DMA鏈描 述符,這些其他DMA描述符對(duì)于本領(lǐng)域技術(shù)人員和受益于本發(fā)明公 開的技術(shù)人員是可想見且顯然的。而且,XOR僅是可以由DMA描述 符規(guī)定的多種邏輯運(yùn)算中的一種。其他適合的邏輯運(yùn)算包括(但不限 于)AND、 OR、 NOT和其他公知的邏輯運(yùn)算以及它們的組合。DMA鏈描述符包括經(jīng)可選鏈接的下一個(gè)描述符地址340。下一 個(gè)描述符地址可以具有特定的值例如零,以指定鏈的結(jié)束。DMA鏈描述符還包括指定第一數(shù)據(jù)集(A)的DMA傳送的數(shù)據(jù)341、指定第二數(shù)據(jù)集(B)的DMA傳送的數(shù)據(jù)345、以及指定第一 和第二數(shù)據(jù)集的XOR (AXORB)的DMA傳送的數(shù)據(jù)349、 350。指定第一數(shù)據(jù)集(A)的DMA傳送的數(shù)據(jù)341包括A的第一源/ 目標(biāo)地址342、 A的第二源/目標(biāo)地址343和A的傳送大小344 (例如 字節(jié)數(shù))。類似地,指定第二數(shù)據(jù)集(B)的DMA傳送的數(shù)據(jù)345包 括B的第一源/目標(biāo)地址346、 B的第二源/目標(biāo)地址347和B的傳送 大小348。在本發(fā)明的一個(gè)特定實(shí)施例中,第一源/目標(biāo)地址可以是主機(jī)端或 計(jì)算機(jī)系統(tǒng)端遠(yuǎn)程地址,例如PCI類型總線上的地址。在此具體實(shí)施 例中,第二源/目標(biāo)地址可以是例如I/O處理器局部?jī)?nèi)存的適配器端本 地地址。例如下文論述的控制信息中的DMA鏈描述符指定的傳送的 方向可以確定第 一和第二地址分別是源地址還是目標(biāo)地址。當(dāng)然,本 發(fā)明的范圍并不限于實(shí)現(xiàn)這些特定實(shí)施例。指定第一和笫二數(shù)據(jù)集的XOR (AXOR B )的DMA傳送的數(shù)據(jù) 349、 350包含A XOR B的目標(biāo)地址349以及描述符控制標(biāo)志 (descriptor control)中包含的數(shù)據(jù)350,描述符控制標(biāo)志350指定是 否要對(duì)第一和第二數(shù)據(jù)集執(zhí)行特定邏輯運(yùn)算(例如在本例中為XOR 運(yùn)算)。在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,描述符控制信息的一位可 以在要執(zhí)行XOR運(yùn)算和將XOR運(yùn)算的結(jié)果進(jìn)行相應(yīng)的DMA傳送的 情況下具有第一值(例如1 ),或可以在不執(zhí)行這些操作的情況下具有 第二值(例如0),當(dāng)然本發(fā)明的范圍并不限于此。描述符控制標(biāo)志還 可以指定數(shù)據(jù)傳送的方向,例如從系統(tǒng)內(nèi)存?zhèn)魉偷?/0處理器局部?jī)?nèi) 存,或從I/0處理器局部?jī)?nèi)存?zhèn)魉偷较到y(tǒng)內(nèi)存,或向主機(jī)傳送或遠(yuǎn)離 主機(jī)傳送等。描述符控制標(biāo)志還可以可選地包含其他信息。現(xiàn)在,圖示說明的描述符僅是一種可能的描述符。其他的描述符 對(duì)于本領(lǐng)域技術(shù)人員和受益于本發(fā)明公開的技術(shù)人員是可想見且顯 然的。例如,可以不指定傳送大小,而是可選地指定結(jié)束地址。又如, 可以不指定傳送的方向,而是指定源地址和目標(biāo)地址。還可設(shè)想其他修改,且其他修改對(duì)于本領(lǐng)域技術(shù)人員和受益于本發(fā)明公開的技術(shù)人員是可想見且顯然的。如前文所述,可以指定非XOR運(yùn)算的邏輯運(yùn)算。DMA鏈描述符還包含可選的循環(huán)冗余校驗(yàn)(CRC)地址351。 這是可選的,即使包含它,也可選為是常規(guī)的。在本發(fā)明的一個(gè)或多 個(gè)實(shí)施例中,由單個(gè)DMA描述符的指定并響應(yīng)單個(gè)DMA描述符, 數(shù)據(jù)的邏輯CRC運(yùn)算可以可選地取代或補(bǔ)充前面提到的數(shù)據(jù)集的 XOR運(yùn)算。再參考圖2, DMA控制器可以接收DMA描述符,例如圖3所示 的DMA鏈描述符,或與之相似的描述符,或完全是另一DMA描述 符。在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,DMA控制器可以通過總線或 其他互連部接收DMA描述符或數(shù)據(jù)結(jié)構(gòu),而該總線或其他互連部可 以耦合在DMA控制器與處理器或處理器核(例如I/O處理器核)之 間。DMA描述符可用來對(duì)DMA控制器編程或告知DMA控制器或以 其他方式導(dǎo)致DMA控制器執(zhí)行指定的DMA傳送。響應(yīng)DMA描述 符之接收,或至少在接收到DMA描述符后,DMA控制器可以執(zhí)行 DMA描述符指定或指示的DMA傳送。DMA控制器可以分析或以其他方式檢查DMA描述符。DMA控 制器可以確定數(shù)據(jù)集的源/目標(biāo)地址、數(shù)據(jù)集的大小。在本發(fā)明的多個(gè) 方面中,數(shù)據(jù)集的大小可以是64K、 128K、其他大小的數(shù)據(jù)塊、或適 于特定實(shí)現(xiàn)的其他大小。本發(fā)明的范圍不限于任何公知的數(shù)據(jù)傳送的 大小。DMA控制器還可以確定數(shù)據(jù)傳送的方向。如圖示說明的實(shí)施例 中所示,傳送方向可以是從系統(tǒng)內(nèi)存到I/O處理器局部?jī)?nèi)存,當(dāng)然本 發(fā)明的范圍并不限于此。例如,在一個(gè)或多個(gè)備選實(shí)施例中,傳送的 方向可以是,人I/O處理器局部?jī)?nèi)存到系統(tǒng)內(nèi)存。DMA控制器還可確定DMA描述符是否指定要執(zhí)行邏輯運(yùn)算(例如XOR運(yùn)算)并將該邏輯運(yùn)算(例如XOR運(yùn)算)的結(jié)果進(jìn)行相應(yīng)的 DMA傳送。在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,DMA控制器可以檢查 DMA描述符的描述符控制字段的 一位或字段或其他部分來確定是否 要執(zhí)行XOR運(yùn)算并進(jìn)行相應(yīng)的DMA傳送,當(dāng)然本發(fā)明的范圍并不限 于此。例如,可以使用附加或其他不同的字段或其他部分來指定是否 要執(zhí)行XOR運(yùn)算并將XOR運(yùn)算的結(jié)果進(jìn)行相應(yīng)的DMA傳送。例如, 如果AXORB目標(biāo)地址中包含非默認(rèn)值(例如非零值),則可以指定 執(zhí)行XOR運(yùn)算并將XOR運(yùn)算的結(jié)果進(jìn)行相應(yīng)的DMA傳送。默認(rèn)值 可以指定無需執(zhí)行XOR運(yùn)算。還可設(shè)想其他可能性。響應(yīng)接收到DMA描述符,或至少在接收到DMA描述符之后, 可以啟動(dòng)DMA描述符指定或指示的DMA傳送。DMA控制器可以激 活或啟用一個(gè)或多個(gè)DMA通道。在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中, 可以使用共用通道來以串行方式傳送不同的數(shù)據(jù)集和不同數(shù)據(jù)集的 XOR運(yùn)算,當(dāng)然本發(fā)明的范圍并不限于此。在一個(gè)方面,共用通道可 以對(duì)應(yīng)于給定的處理器核以及一個(gè)或多個(gè)其他可選處理器核使用其 他通道,當(dāng)然本發(fā)明的范圍并不限于此。一旦激活或啟用了一個(gè)或多個(gè)DMA通道,DMA控制器就可以 訪問或以其他方式接收要從源傳送到目標(biāo)的數(shù)據(jù)集。DMA控制器可 以用DMA描述符中指定的字節(jié)數(shù)或其他傳送大小來獲知要訪問多少 數(shù)據(jù)??梢钥蛇x地以串行或并行方式訪問數(shù)據(jù)集,或可以串行方式訪 問 一些數(shù)據(jù)集而以并行方式訪問另 一 些數(shù)據(jù)集??梢钥蛇x地使用 一個(gè) 或多于一個(gè)的DMA通道。在訪問了數(shù)據(jù)集之后,如果DMA描述符指定要執(zhí)行XOR運(yùn)算, 則DMA控制器可以對(duì)數(shù)據(jù)集執(zhí)行XOR運(yùn)算。XOR運(yùn)算是公知的邏 輯運(yùn)算。如果A與B不同,則AXOR B可以返回真值,以及如果A 與B相同,則返回假值。即,AXORB可以書寫為((NOTAANDB) OR (A AND NOT B》。換言之,AXOR B可以意味著A和B的其中 一個(gè) 或另一個(gè)為真,而不同時(shí)為真。再參考圖2, DMA控制器包括XOR邏輯部件236??梢钥蛇x地 使用本領(lǐng)域中公知的多種常規(guī)XOR邏輯部件。本發(fā)明的范圍并不限 于任何公知的XOR邏輯部件??梢詫⒉煌臄?shù)據(jù)集提供給XOR邏輯部件,并可以對(duì)該數(shù)據(jù)執(zhí) 行一個(gè)或多個(gè)邏輯運(yùn)算(在本例中為XOR運(yùn)算)。例如,如圖示說明 的實(shí)施例中所示,可以將數(shù)據(jù)集A和B提供給XOR邏輯部件,并可 以由XOR邏輯部件確定或生成結(jié)果AXORB。又如,在另一實(shí)施例 中,可以提供數(shù)據(jù)集P、 Q和R,并可以由XOR邏輯部件確定或生成 結(jié)果P XOR Q XOR R。同樣地可以可選地添加其他數(shù)據(jù)集。在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,可以生成數(shù)據(jù)集的XOR,然 后執(zhí)行將這些數(shù)據(jù)集中的至少一個(gè)數(shù)據(jù)集從DMA控制器DMA傳送 到另一個(gè)位置。例如,可以生成AXORB,然后執(zhí)行或發(fā)生B至I/0 處理器局部?jī)?nèi)存的DMA傳送。在數(shù)據(jù)通過DMA控制器的同時(shí)對(duì)數(shù)據(jù)執(zhí)行XOR運(yùn)算或其他邏 輯運(yùn)算,可以避免此后對(duì)例如I/O處理器局部?jī)?nèi)存再次訪問或從中再 次接收該數(shù)據(jù)的需要,這樣可以幫助減少一個(gè)或多個(gè)總線(例如將 DMA控制器與I/O處理器局部?jī)?nèi)存耦合的一個(gè)或多個(gè)總線)上的通信 量。當(dāng)然,本發(fā)明的范圍并不限于此。可以用串行或并行方式執(zhí)行DMA傳送,或可以用串行方式執(zhí)行 一些DMA傳送而用并行方式執(zhí)行另 一些DMA傳送。在本發(fā)明的一 個(gè)特定實(shí)施例中,可以首先傳送笫一數(shù)據(jù)集(例如A)。然后,可以 傳送笫二數(shù)據(jù)集(例如B)。根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施例,可以將 第一和第二數(shù)據(jù)集的XOR (例如A XOR B )與數(shù)據(jù)集中的一個(gè)(例 如B )的DMA傳送至少部分地基本同時(shí)或至少部分大致同時(shí)地傳送。 即,AXORB可以與B的傳送一致且實(shí)時(shí)地4丸行。或者,可以將數(shù)據(jù) 集的XOR存儲(chǔ)在本地緩沖器,并在傳送了數(shù)據(jù)集中的最后一個(gè)數(shù)據(jù) 集(例如B )之后才傳送數(shù)據(jù)集的XOR運(yùn)算。圖4是表示本發(fā)明的一個(gè)或多個(gè)實(shí)施例的DMA控制器426的框圖,其中包括對(duì)數(shù)據(jù)集執(zhí)行XOR運(yùn)算的XOR塊436和存儲(chǔ)對(duì)數(shù)椐集 執(zhí)行一個(gè)或多個(gè)XOR運(yùn)算的結(jié)果的小存儲(chǔ)器461 (例如緩沖器)。該 緩沖器可包括在DMA控制器中或以其他方式設(shè)在適配器中?,F(xiàn)在描述根據(jù)本發(fā)明一個(gè)或多個(gè)實(shí)施例的、將XOR邏輯部件與 緩沖器組合使用的一個(gè)示范方法。可以將初始默認(rèn)值(例如全零)存 儲(chǔ)在緩沖器中。然后,在第一數(shù)據(jù)集(例如A)的DMA傳送期間, 可以將第 一數(shù)據(jù)集(例如A)從指定的DMA源提供給DMA控制器。 如圖所示,在DMA控制器內(nèi),可以將第一數(shù)據(jù)集(例如A)傳送到 指定的DMA目標(biāo),并作為輸入提供給XOR塊。可以并行方式將緩沖 器中存儲(chǔ)的初始默認(rèn)值提供給XOR邏輯部件。XOR邏輯部件可以對(duì) 第一數(shù)據(jù)集(例如A)和初始默認(rèn)值執(zhí)行XOR運(yùn)算以生成中間結(jié)果。 在本例中,因?yàn)槌跏寄J(rèn)值是全零,所以中間結(jié)果可以僅是重新生成 的第 一數(shù)據(jù)集(例如A )。 XOR塊可以包括做出如下確定或評(píng)估A XOR 0 = A和A XOR 1 = NOT A的邏輯部件。所以,如果在第 一次XOR運(yùn) 算之前緩沖器被清空或緩沖器包含全零,則對(duì)來自DMA源的輸入流 與緩沖器的內(nèi)容執(zhí)行XOR運(yùn)算的結(jié)果只是輸入流的再返回(the input stream back again )。中間結(jié)果可提供給緩沖器并存儲(chǔ)在其中。然后,在第二數(shù)據(jù)集(例如B)的后續(xù)DMA傳送期間,可以將 第二數(shù)據(jù)集(例如B)與來自緩沖器的中間值提供給XOR邏輯部件。 XOR邏輯部件可以對(duì)在第二數(shù)據(jù)集(例如B)與中間值(在本例中是 第一數(shù)據(jù)集(例如A))執(zhí)行XOR運(yùn)算,以生成最終結(jié)果。作為示例, 最終結(jié)果可以是AXORB。此XOR運(yùn)算可以在進(jìn)行第二數(shù)據(jù)集(例 如B)的DMA傳送時(shí)一致且實(shí)時(shí)地執(zhí)行??梢詫⒆罱K結(jié)果以并行方 式或與第二凝:據(jù)(例如B)的傳送基本同時(shí)傳送,或者,可以將最終 結(jié)果提供給緩沖器并存儲(chǔ)短暫的時(shí)間或延遲后再傳送。以此方式,可 以在緩沖器中順序地構(gòu)建XOR結(jié)果,并將作為輸入提供給XOR邏輯 部件的不同數(shù)據(jù)集傳送到它們不同的目標(biāo)。因?yàn)橛梢言贒MA控制器 中的數(shù)據(jù)生成XOR結(jié)果,所以也可以減少與DMA傳送關(guān)聯(lián)的總線上的通信量。在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,至少部分由于DMA描述符的 指定,可以在沒有處理器(I/O處理器核)的千預(yù)中斷的情況下,緊 挨著地執(zhí)行數(shù)據(jù)集的DMA傳送和數(shù)據(jù)集的XOR的DMA傳送。消除 中斷(或至少減少中斷)可獲得一些公知的優(yōu)點(diǎn)。在完成DMA傳送之后,DMA控制器可用信號(hào)通知I/O處理器核 已完成DMA傳送。然后就可以撤銷一個(gè)或多個(gè)DMA通道。圖5是根據(jù)本發(fā)明一個(gè)或多個(gè)實(shí)施例的、傳送數(shù)據(jù)集和數(shù)據(jù)集的 邏輯運(yùn)算(例如XOR)的方法的流程圖。在一個(gè)方面,該方法可以由 DMA控制器或集成了 DMA控制器邏輯的組件或系統(tǒng)來執(zhí)行。在框570處開始,然后可在框571處接收指定數(shù)據(jù)集的DMA傳 送和邏輯運(yùn)算(例如XOR)的DMA傳送的單個(gè)數(shù)據(jù)結(jié)構(gòu)。如上所述, 該數(shù)據(jù)結(jié)構(gòu)可包括DMA描述符。這些數(shù)據(jù)集可包含兩個(gè)或更多的數(shù) 據(jù)集。然后,響應(yīng)該數(shù)據(jù)結(jié)構(gòu)之接收,或至少在接收到該數(shù)據(jù)結(jié)構(gòu)后, 可以執(zhí)行對(duì)數(shù)據(jù)集的DMA傳送和邏輯運(yùn)算(例如XOR)的DMA傳 送,如框572所示。在一個(gè)方面,可以在DMA控制器上生成對(duì)數(shù)據(jù) 集的XOR或其他邏輯運(yùn)算。在一個(gè)方面,可以在執(zhí)行這些數(shù)據(jù)集中 至少一個(gè)數(shù)椐集(例如最后傳送的數(shù)據(jù)集)的DMA傳送前生成數(shù)據(jù) 集的XOR或其他邏輯運(yùn)算。在一個(gè)方面,可以執(zhí)行數(shù)據(jù)集的DMA傳 送和這些數(shù)據(jù)集的XOR或其他邏輯運(yùn)算的DMA傳送,而沒有處理器 核的干預(yù)中斷。該方法然后在框573處結(jié)束。本文公開的DMA控制器可用于多種智能I/O應(yīng)用。代表性的應(yīng) 用包括但不限于存儲(chǔ)設(shè)備、聯(lián)網(wǎng)和通信應(yīng)用。在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,本文公開的DMA控制器可以 用于根據(jù)RAID (獨(dú)立(或廉價(jià)盤)冗余陣列的存儲(chǔ)協(xié)議或技術(shù))將 數(shù)據(jù)集和這些數(shù)據(jù)集的XOR傳送到一個(gè)或多個(gè)存儲(chǔ)盤陣列。某些級(jí) 別的RAID (例如RAID-3和RAID-5 )可以存儲(chǔ)數(shù)據(jù)集和這些數(shù)據(jù)集的XOR,以提供可用于實(shí)現(xiàn)硬件故障容錯(cuò)的奇偶校驗(yàn)(或數(shù)據(jù)冗余 性)。作為示例,如果A和B以及A XOR B各存儲(chǔ)在不同的存儲(chǔ)設(shè)備 (例如不同的存儲(chǔ)盤陣列或RAID堆棧)上,則在存儲(chǔ)A、 B或AXOR B的存儲(chǔ)設(shè)備中的任一個(gè)發(fā)生故障的情況下,可以由其他兩個(gè)數(shù)據(jù)集 中的冗余數(shù)據(jù)重新算出丟失的數(shù)據(jù)。例如,如果存儲(chǔ)B的存儲(chǔ)盤陣列 發(fā)生故障,則可以由A和AXORB來計(jì)算B。又如,數(shù)據(jù)A、 B和C 中的任一個(gè)可以由其他兩個(gè)重新算出。相應(yīng)地,在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,本文/^開的DMA控 制器可以幫助將數(shù)據(jù)集和這些數(shù)據(jù)集的XOR運(yùn)算提供給存儲(chǔ)設(shè)備, 以根據(jù)RAID技術(shù)或協(xié)議來進(jìn)行存儲(chǔ)。作為另一選擇,在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,本文公開的 DMA控制器可以幫助將數(shù)據(jù)集和這些數(shù)據(jù)集的XOR運(yùn)算提供給加密 或解密邏輯部件,加密或解密邏輯部件可以用數(shù)據(jù)和XOR運(yùn)算執(zhí)行 加密或解密。代表性的示例包括但不限于高級(jí)加密標(biāo)準(zhǔn)(AES)邏輯 和/或三重?cái)?shù)據(jù)加密標(biāo)準(zhǔn)(3DES)邏輯部件。這可以避免需要處理器 來執(zhí)行XOR運(yùn)算。另外,在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,可以可 選地傳送對(duì)數(shù)據(jù)的邏輯加密運(yùn)算來取代傳送上文提到的數(shù)據(jù)的XOR 運(yùn)算,或作為傳送上文提到的數(shù)據(jù)的XOR運(yùn)算的附加操作。作為另一選擇,在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,本文公開的 DMA控制器可以幫助將數(shù)據(jù)集和這些數(shù)據(jù)集的XOR運(yùn)算提供給可以 使用數(shù)據(jù)和XOR運(yùn)算的散列邏輯部件。代表性的示例包括(但不限 于)消息摘要5 (MD5)邏輯部件、虛擬專用網(wǎng)(VPN)邏輯部件和/ 或安全散列算法(SHA-1)邏輯部件。這可使處理器無需"l丸行XOR 運(yùn)算。這些僅僅是幾個(gè)說明性的示例。本發(fā)明的范圍并不僅限于這些示例。圖6是表示適于實(shí)現(xiàn)本發(fā)明的 一個(gè)或多個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)600的框圖。計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)包括計(jì)算機(jī)系統(tǒng)610、 一個(gè) 或多個(gè)附加設(shè)備690、便于計(jì)算機(jī)系統(tǒng)與附加設(shè)備之間交換數(shù)據(jù)的適 配器620以及可選的用戶接口系統(tǒng)683。本文使用的術(shù)語"計(jì)算機(jī)系統(tǒng)"可以包括具有例如通過執(zhí)行指令 序列來處理數(shù)據(jù)的硬件和/或軟件的設(shè)備。所述計(jì)算機(jī)系統(tǒng)可包括(但 不限于)便攜式計(jì)算機(jī)、膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、服務(wù)器或主計(jì) 算機(jī)等等。所述計(jì)算機(jī)系統(tǒng)代表用于實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)實(shí)施例 的一種可能的計(jì)算機(jī)系統(tǒng),當(dāng)然也可以是其他計(jì)算機(jī)系統(tǒng)和所迷計(jì)算 ;f幾系統(tǒng)的改型。所述計(jì)算機(jī)系統(tǒng)包括處理信息的CPU 680,有時(shí)簡(jiǎn)稱為處理器。 在一個(gè)或多個(gè)實(shí)施例中,所述處理器可以包括Pentium 系列處理器中 的處理器,例如Pentium 4處理器,當(dāng)然本發(fā)明的范圍并不限于此。 Pentium 系列處理器可從美國(guó)加州圣克拉拉的英特爾^^司購買?;?者,也可以可選地使用其他處理器。作為一例,可使用具有多個(gè)處理 核的處理器。而且,在一個(gè)或多個(gè)實(shí)施例中,所述計(jì)算機(jī)系統(tǒng)可包括 多個(gè)處理器。所迷處理器通過總線與芯片集的其他組件耦合。該總線是互連部 或數(shù)據(jù)傳送路徑。在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,該芯片集可以包 括第 一橋/集線器(例如可從英特爾公司購買的存儲(chǔ)器控制橋/集線器 (MCH) 681 )以及第二橋/集線器(例如可從英特爾公司購買的輸入 /輸出(I/O)橋/集線器(ICH) 682 )。在一個(gè)或多個(gè)其他實(shí)施例中, 可以將MCH的至少一部分或全部與處理器集成,例如集成在同一芯 片上。該MCH可通過集線器接口與ICH耦合。然而,本發(fā)明的范圍 并不限于例示的特定芯片集,其他芯片集也是適合的。所述計(jì)算機(jī)系統(tǒng)包括系統(tǒng)內(nèi)存612,它通過一個(gè)或多個(gè)總線或其 他互連部或數(shù)據(jù)傳送路徑與芯片集耦合或以其他方式與之通信。如圖 示說明的實(shí)施例所示,該系統(tǒng)內(nèi)存可以通過總線與MCH耦合。在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,該系統(tǒng)內(nèi)存可以包括主存儲(chǔ)器(例如隨機(jī)存取存儲(chǔ)器(RAM)或其他動(dòng)態(tài)存儲(chǔ)設(shè)備),主存儲(chǔ)器存儲(chǔ)包^^要由處理器執(zhí)行的指令在內(nèi)的信息。 一些但不是全部計(jì)算機(jī)系統(tǒng)中的不同類型的RAM存儲(chǔ)器包括(但不限于)靜態(tài)RAM (SRAM) 和動(dòng)態(tài)RAM (DRAM)。也可選用不必一定是動(dòng)態(tài)的或是需要刷新的 其他類型的RAM。所述計(jì)算機(jī)系統(tǒng)還可包括未示出的只讀存儲(chǔ)器(ROM )。該ROM 可以存儲(chǔ)用于處理器的靜態(tài)信息和指令,例如基本輸入輸出系統(tǒng)(BIOS )。在本發(fā)明的一些(并非所有)實(shí)施例中,可以使用閃速BIOS。 在閃速BIOS中,可以將BIOS存儲(chǔ)在閃速存儲(chǔ)器上。還有可能使用 其他類型的存儲(chǔ)器,例如可編程ROM ( PROM )、可擦寫可編程ROM(EPROM )以及電可纟察寫可編程ROM (EEPROM )。該可選用戶接口系統(tǒng)通過一個(gè)或多個(gè)總線或其他數(shù)據(jù)傳送路徑 與芯片集耦合或以其他方式與之通信。在圖示說明的實(shí)施例中,用戶 接口系統(tǒng)與ICH耦合。該用戶接口系統(tǒng)可以代表性地包括例如顯示裝 置、鍵盤、光標(biāo)控制器及它們的組合,但本發(fā)明的范圍并不限于此。 例如,諸如服務(wù)器等一些計(jì)算機(jī)系統(tǒng)可以可選地釆用簡(jiǎn)化的用戶接口 系統(tǒng)。所述計(jì)算機(jī)系統(tǒng)還可以包括插槽684。該插槽可以通過一個(gè)或多 個(gè)總線、其他互連部或其他數(shù)據(jù)傳送路徑與芯片集耦合或以其他方式 與之通信。在圖示說明的實(shí)施例中,該插槽可以與ICH耦合。在一個(gè)或多個(gè)實(shí)施例中,所述計(jì)算機(jī)系統(tǒng)可以可選地包括外殼或 機(jī)箱685。 CPU、 MCH、 ICH、系統(tǒng)內(nèi)存和插槽可裝在外殼或^L箱內(nèi)。 這些組件可以與計(jì)算機(jī)系統(tǒng)的主板、底板或其他單個(gè)主電路板集成。 適配器可插入到插槽中,該插槽表現(xiàn)為外殼或機(jī)箱上的開口,并通過 它與主電路板耦合?;蛘撸鲇?jì)算機(jī)系統(tǒng)也可將外殼或機(jī)箱省掉??梢詫⑦m配器插入到插槽中。當(dāng)適配器插入到插槽中時(shí),適配器 的電元件可以與計(jì)算機(jī)系統(tǒng)的至少一些電元件(例如系統(tǒng)內(nèi)存)電耦 合或以其他方式與之通信。在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,所述適配器可以包括I/O處理器和/或文中他處揭示的具有XOR邏輯部件的DMA控制器。如圖1 所示,所述適配器可以包括其他組件。在一個(gè)或多個(gè)實(shí)施例中,所述 適配器可以包括與Intel 80332 I/O處理器的那些組件相似的組件的 子集或超集,其中Intel 80332 I/O處理器可以從美國(guó)加州圣克拉拉的 英特爾公司購買。Intel 80332 I/O處理器包括Intel XScale⑧核、x8 PCI Express上行鏈路、支持PCI-X接口的兩個(gè)PCI Express至PCI橋、PCI 標(biāo)準(zhǔn)熱插拔控制器、地址轉(zhuǎn)換單元、高性能存儲(chǔ)控制器、具有十七個(gè) 外部中斷輸入的中斷控制器、兩個(gè)DMA控制器、應(yīng)用程序加速器、 消息傳送單元、外圍總線接口單元、性能監(jiān)視器、兩個(gè)集成電路間 (I2C)總線接口單元、具有流控制的兩個(gè)16550兼容UART以及八 個(gè)通用I/O (GPIO)端口。在一個(gè)或多個(gè)實(shí)施例中,Intel 80332 I/O 處理器的Intel XScale⑧核和DMA控制器可以調(diào)整為包括本文/>開的 邏輯和方法,當(dāng)然本發(fā)明的范圍并不限于此。如果需要的話,在2004 年8月發(fā)布且可從英特爾公司獲取的開發(fā)人員手冊(cè)(文檔編號(hào) 274065-002US )中獲取有關(guān)Intel 80332 I/O處理器的更多背景信息。 第6章包括DMA控制器的更多背景信息。該附加設(shè)備(例如存儲(chǔ)設(shè)備)可以通過一個(gè)或多個(gè)通信鏈路與適 配器耦合。所述適配器可以具有用于通信鏈路的一個(gè)或多個(gè)連^l妄器或 其他端口。適合的存儲(chǔ)設(shè)備包括(但不限于)硬盤、多個(gè)硬盤、硬盤 陣列、存儲(chǔ)盤陣列、廉價(jià)盤的冗余陣列、CD-ROM裝置、磁帶驅(qū)動(dòng)器、 Zip驅(qū)動(dòng)器、SuperDisk驅(qū)動(dòng)器等。所述計(jì)算機(jī)系統(tǒng)可經(jīng)由適配器與附加設(shè)備交換數(shù)據(jù)。在本發(fā)明的 一個(gè)或多個(gè)實(shí)施例中,所述適配器可以協(xié)助執(zhí)行計(jì)算機(jī)系統(tǒng)與附加設(shè) 備之間數(shù)據(jù)的DMA傳送。本發(fā)明的范圍不限于將DMA控制器和/或I/O處理器包括在可插 入到插槽中的適配器中。圖7是表示適于實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)實(shí) 施例的備選計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)700的框圖。所述計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)包括計(jì)算機(jī)系統(tǒng)710、 一個(gè)或多個(gè)附加設(shè)備790、便于計(jì)算機(jī)系統(tǒng) 與附加設(shè)備之間交換數(shù)據(jù)的適配器720以及可選的用戶接口系統(tǒng)783。圖示說明的計(jì)算機(jī)系統(tǒng)包括CPU 780、 MCH 781、 ICH 782、系 統(tǒng)內(nèi)存712和主板或主電路板786。 CPU、 MCH、 ICH以及系統(tǒng)內(nèi)存 可以與計(jì)算機(jī)系統(tǒng)的主板或主電路板集成或以其他方式設(shè)在計(jì)算機(jī) 系統(tǒng)的主板或主電路板上。所述適配器包括I/0處理器核724、 DMA控制器726、存儲(chǔ)控制 器788和I/0存儲(chǔ)器734。如圖所示,包括l/0處理器核、DMA控制 器、存儲(chǔ)控制器和I/O存儲(chǔ)器的適配器可以與計(jì)算機(jī)系統(tǒng)的主板或主 電路板集成或以其他方式設(shè)在計(jì)算機(jī)系統(tǒng)的主板或主電路板上。存儲(chǔ)控制器與附加設(shè)備雙向耦合或以其他方式與附加設(shè)備雙向 通信。I/O處理器核與存儲(chǔ)控制器雙向耦合或以其他方式與存儲(chǔ)控制 器雙向通信。圖示說明的存儲(chǔ)控制器包含在適配器中和主板上,雖然 并非一定這樣要求。DMA控制器與MCH雙向耦合或以其他方式與 MCH雙向通信。I/O處理器核與系統(tǒng)內(nèi)存雙向耦合或以其他方式與之 雙向通信。I/O處理器核可通過此控制器訪問系統(tǒng)內(nèi)存,例如交換控 制信息。適配器的其他組件如雙向箭頭所示與另 一組件雙向通信。在圖示說明的實(shí)施例中,DMA控制器、1/0處理器核、1/0存儲(chǔ) 器以及存儲(chǔ)控制器分別作為與主板耦合的單獨(dú)芯片或其他微電子器 件提供,當(dāng)然本發(fā)明的范圍并不限于此。在本發(fā)明的多種備選實(shí)施例 中,可以將DMA控制器和I/O處理器核中的一個(gè)或多個(gè)與另一個(gè)芯 片集組件集成。作為一例,DMA控制器可以可選地與MCH集成。使 DMA控制器在邏輯上更靠近CPU可以獲得某些潛在的優(yōu)點(diǎn)。作為另 一示例,DMA引擎可以與I/O處理器核集成,以例如能夠共享XOR 邏輯部件。作為再一示例,可以將DMA控制器、I/O處理器和ICH 可選地集成在一起。還可設(shè)想多種其他集成。本發(fā)明的范圍不限于此 類芯片集組件的任何特定配置。還可設(shè)想適于實(shí)現(xiàn)本發(fā)明的其他計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)實(shí)施例。例如,在本發(fā)明的一個(gè)或多個(gè)實(shí)施例中,不將適配器插入到插槽中,而 是將適配器設(shè)于外部,并可以通過電纜或其他連接器與主板耦合。在上文描述中,出于解釋的目的,闡述了許多特定細(xì)節(jié),以便于 對(duì)本發(fā)明實(shí)施例的透徹理解。但是,本領(lǐng)域人員顯見,可以在沒有這 些特定細(xì)節(jié)的情況下實(shí)施一個(gè)或多個(gè)其他實(shí)施例。所描述的特定實(shí)施 例并非用來限制本發(fā)明,而是用來說明本發(fā)明。本發(fā)明的范圍不由上 文提供的特定示例來確定,而僅由所附的權(quán)利要求來確定。在其他實(shí) 例中,未以框圖形式示出或未詳細(xì)示出公知的電路、結(jié)構(gòu)、裝置和操 作,以免才莫糊對(duì)此描述的理解。已經(jīng)描述了多種操作和方法。這些方法的其中一些是按基本形式 描述的,但是可以可選地對(duì)這些方法添加操作和/或從中刪除操作。這 些方法的操作還可以可選地按不同次序來執(zhí)行??梢詫?duì)這些方法進(jìn)行 許多修改和調(diào)整,并且可設(shè)想許多修改和調(diào)整。例如,不僅^l對(duì)兩個(gè)數(shù)據(jù)集執(zhí)行XOR運(yùn)算,而是對(duì)三個(gè)、四個(gè)、五個(gè)、十個(gè)或更多的數(shù) 據(jù)集執(zhí)行XOR運(yùn)算,然后進(jìn)行傳送。可用硬件來執(zhí)行某些操作,或?qū)⒛承┎僮靼跈C(jī)器可執(zhí)行指令 中,這些機(jī)器可執(zhí)行指令可用來使或至少導(dǎo)致利用這些指令編程的電 路執(zhí)行這些操作。該電路可以包括通用或?qū)S锰幚砥骰蜻壿嬰娐返?等。這些操作還可以可選地由硬件和軟件的組合來執(zhí)行。本發(fā)明的 一個(gè)或多個(gè)實(shí)施例可以作為程序產(chǎn)品或其他制品來提 供,該程序產(chǎn)品或其他制品可以包括其上存儲(chǔ)有一個(gè)或多個(gè)指令和/ 或數(shù)據(jù)結(jié)構(gòu)的機(jī)器可訪問和/或可讀^某體。該^某體可以提供指令,其中 如果這些指令被機(jī)器執(zhí)行,則可以導(dǎo)致和/或使機(jī)器執(zhí)行本文公開的操 作或方法中的一個(gè)或多個(gè)。適用的機(jī)器包括(但不限于)計(jì)算機(jī)系統(tǒng)、 適配器、1/0處理器以及各種具有一個(gè)或多個(gè)處理器的其他裝置等等。上述i 某體可以包括用于提供(例如存儲(chǔ)和/或傳送)機(jī)器可訪問形 式的信息的機(jī)制。例如,上述纟某體可以可選地包>^舌可記錄和/或不可記 錄媒體,例如軟磁盤、光存儲(chǔ)媒體、光盤、CD-ROM、磁盤、磁光盤、只讀存儲(chǔ)器(ROM)、可編程ROM (PROM)、可擦寫可編程ROM (EPROM)、電可擦寫可編程ROM (EEPROM)、隨機(jī)存取存儲(chǔ)器 (RAM)、靜態(tài)RAM(SRAM)、動(dòng)態(tài)RAM(DRAM)、閃速存儲(chǔ)器和它們的組合。媒體還可以可選地包括電、光、聲音、射頻或其他形式的傳播信 號(hào)(例如載波、紅外信號(hào)、數(shù)字信號(hào)等)。本發(fā)明的實(shí)施例可以作為 計(jì)算機(jī)程序產(chǎn)品來下載,其中上述程序可以通過載波或其他傳播信號(hào) 或i某體中包含的數(shù)據(jù)信號(hào)的方式經(jīng)由通信鏈路(例如調(diào)制解調(diào)器或網(wǎng) 絡(luò)連接)從一個(gè)機(jī)器傳送到另一個(gè)機(jī)器。為了簡(jiǎn)明,權(quán)利要求書中未明述執(zhí)行指定功能"用的裝置(means for)"或執(zhí)行指定功能"用的步驟(stepfor)"的任何組成部分不應(yīng)一皮解 釋為35U.S.C.笫112節(jié)、第6段中指定的"裝置(means)"或"步驟 (step)"條款。具體來說,本文權(quán)利要求中任何可能使用的"的步驟(step of)"無意援引35U.S.C.第112節(jié)、第6段的規(guī)定。還應(yīng)該認(rèn)識(shí)到在本說明書中對(duì)例如"一個(gè)實(shí)施例"、"實(shí)施例"或 "一個(gè)或多個(gè)實(shí)施例"的引述表示可以在本發(fā)明的實(shí)施中包括特定特 征。此類復(fù)述非一定指代相同的實(shí)施例。相似地,應(yīng)該認(rèn)識(shí)到在本文 描述中,有時(shí)為了使公開的行文流暢并幫助理解多個(gè)不同發(fā)明方面的 目的,將多個(gè)特征歸組在一個(gè)實(shí)施例、附圖或其描述中。但是此公開 方法不應(yīng)解釋為就本發(fā)明反映,本發(fā)明所具有的特征必須多于每項(xiàng)權(quán) 利要求中明述的特征。相反,正如所附權(quán)利要求反映的,發(fā)明形態(tài)可施方式"之后所附的權(quán)利要求明確地與具體實(shí)施方式
的內(nèi)容結(jié)合,其 中的每項(xiàng)權(quán)利要求由本發(fā)明的單獨(dú)實(shí)施例支持。因此,雖然本發(fā)明是依據(jù)多個(gè)實(shí)施例來透徹描述的,但是本領(lǐng)域 技術(shù)人員將認(rèn)識(shí)到本發(fā)明并不限于所描述的實(shí)施例,而是可以在所附 權(quán)利要求的精神和范圍內(nèi)通過修改和替換來實(shí)施。因此,本說明書應(yīng) 視為說明性的而非限制性的。
權(quán)利要求
1.一種方法,包括接收數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)指定多個(gè)數(shù)據(jù)集的直接存儲(chǔ)器訪問(DMA)傳送以及對(duì)所述多個(gè)數(shù)據(jù)集執(zhí)行的邏輯運(yùn)算的DMA傳送;以及響應(yīng)所述數(shù)據(jù)結(jié)構(gòu)之接收而執(zhí)行所述多個(gè)數(shù)據(jù)集的DMA傳送,并執(zhí)行對(duì)所述多個(gè)數(shù)據(jù)集執(zhí)行的所述邏輯運(yùn)算的DMA傳送。
2. 如權(quán)利要求1所述的方法,其特征在于,所述邏輯運(yùn)算包括"異 或"運(yùn)算。
3. 如權(quán)利要求l所述的方法,其特征在于,還包括在DMA控制 器上對(duì)所述多個(gè)數(shù)據(jù)集執(zhí)行所述邏輯運(yùn)算,其中在執(zhí)行所述多個(gè)數(shù)據(jù) 集中的至少一個(gè)數(shù)據(jù)集的DMA傳送前執(zhí)行所述邏輯運(yùn)算。
4. 如權(quán)利要求1所述的方法,其特征在于,所述多個(gè)數(shù)據(jù)集的 DMA傳送和對(duì)所述數(shù)據(jù)集執(zhí)行的所述邏輯運(yùn)算的DMA傳送,在沒有 處理器核的干預(yù)中斷的情況下執(zhí)行。
5. 如權(quán)利要求1所述的方法,其特征在于,所述邏輯運(yùn)算包括"異 或"運(yùn)算,并且所述方法還包括在執(zhí)行所述數(shù)據(jù)集的"異或,,的所述 DMA傳送前,將對(duì)所述數(shù)據(jù)集中的至少一個(gè)數(shù)據(jù)集執(zhí)行的"異或"作 為中間結(jié)果存入緩沖器中。
6. 如權(quán)利要求5所述的方法,其特征在于,還包括在執(zhí)行所述數(shù) 據(jù)集的"異或"的DMS傳送前,執(zhí)行所述中間結(jié)果與所述數(shù)據(jù)集中 的另一個(gè)數(shù)據(jù)集的"異或"運(yùn)算。
7. 如權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)集的DMA 傳送和對(duì)所述數(shù)據(jù)集執(zhí)行的所述邏輯運(yùn)算的DMA傳送,是給輸/v/輸 出處理器的局部?jī)?nèi)存?zhèn)魉偷摹?br>
8. 如權(quán)利要求l所述的方法,其特征在于,接收所述數(shù)據(jù)結(jié)構(gòu)的 步驟包括接收DMA描述符,并且所述方法還包括確定通過檢查所 述數(shù)據(jù)結(jié)構(gòu)的字段來指定所述邏輯運(yùn)算。
9. 一種裝置,包括傳遞指定數(shù)據(jù)集的直接存儲(chǔ)器訪問(DMA)傳送和指定對(duì)所述數(shù) 據(jù)集執(zhí)行的邏輯運(yùn)算的DMA傳送的數(shù)據(jù)結(jié)構(gòu)的互連部;以及與所迷互連部通信以接收所述數(shù)據(jù)結(jié)構(gòu)的DMA控制器,所述 DMA控制器包括用于對(duì)所述數(shù)據(jù)集執(zhí)行所述邏輯運(yùn)算的邏輯部件,所 述DMA控制器執(zhí)行所述數(shù)據(jù)集的DMA傳送,且所述DMA控制器執(zhí) 行對(duì)所述數(shù)據(jù)集執(zhí)行的所述邏輯運(yùn)算的DMA傳送。
10. 如權(quán)利要求9所述的裝置,其特征在于,所述邏輯部件包括 對(duì)所述數(shù)據(jù)集執(zhí)行"異或"運(yùn)算的邏輯部件。
11. 如權(quán)利要求9所述的裝置,其特征在于,還包括與所迷互連 部通信的處理器核,所迷處理器核生成所述數(shù)據(jù)結(jié)構(gòu)并將所述數(shù)據(jù)結(jié) 構(gòu)提供給所述互連部。
12. 如權(quán)利要求9所述的裝置,其特征在于,所述DMA控制器 在沒有處理器核的干預(yù)中斷的情況下傳送所述多個(gè)數(shù)據(jù)集和對(duì)所述多 個(gè)數(shù)據(jù)集執(zhí)行的所述邏輯運(yùn)算。
13. 如權(quán)利要求9所述的裝置,其特征在于,所述邏輯運(yùn)算包括"異或"運(yùn)算,并且所述裝置還包括緩沖器,所述緩沖器在所述執(zhí)行 所述數(shù)據(jù)集的"異或"的DMA傳送前,作為中間結(jié)果存儲(chǔ)所述數(shù)據(jù) 集中的至少一個(gè)數(shù)據(jù)集的"異或"。
14. 如權(quán)利要求9所述的裝置,其特征在于,還包括所述DMA 控制器的邏輯部件,所迷邏輯部件確定所迷邏輯運(yùn)算通過檢查所迷 數(shù)據(jù)結(jié)構(gòu)的字段來指定。
15. —種方法,包括在直接存儲(chǔ)器訪問(DMA)控制器上通過對(duì)數(shù)據(jù)A與數(shù)據(jù)B執(zhí) 行"異或"(XOR)運(yùn)算來生成AXORB,其中AXORB在A和B中 的至少一個(gè)的DMA傳送發(fā)生前生成;以及將基于A XOR B的結(jié)果執(zhí)行DMA傳送。
16. 如權(quán)利要求15所述的方法,其特征在于,還包括與所迷結(jié)果 的DMA傳送基本同時(shí)地執(zhí)行A和B中至少一個(gè)的DMA傳送。
17. 如權(quán)利要求15所述的方法,其特征在于,還包括 執(zhí)行A的DMA傳送;以及執(zhí)行B的DMA傳送,其中A、 B及所述結(jié)果的DMA傳送在沒 有處理器核的干預(yù)中斷的情況下執(zhí)行。
18. —種系統(tǒng),包括具有系統(tǒng)內(nèi)存的計(jì)算機(jī)系統(tǒng),其中所述系統(tǒng)內(nèi)存包括動(dòng)態(tài)隨機(jī)存 取存儲(chǔ)器(DRAM);以及與所述計(jì)算機(jī)系統(tǒng)通信的適配器,所述適配器包括 輸入/輸出處理器核,所述核生成指定數(shù)據(jù)集的直接存儲(chǔ)器訪問 (DMA)傳送和指定對(duì)所迷數(shù)據(jù)集執(zhí)行的邏輯運(yùn)算的DMA傳送的數(shù)據(jù)結(jié)構(gòu);以及與所述核通信以接收所述數(shù)據(jù)結(jié)構(gòu)的DMA控制器,所述DMA 控制器包括用于對(duì)所述數(shù)據(jù)集執(zhí)行所述邏輯運(yùn)算的邏輯部件,所述 DMA控制器執(zhí)行所述數(shù)據(jù)集的DMA傳送,且所述DMA控制器執(zhí)行 對(duì)所述數(shù)據(jù)集執(zhí)行的所迷邏輯運(yùn)算的DMA傳送。
19. 如權(quán)利要求18所述的系統(tǒng),其特征在于,所述DMA控制器 在執(zhí)行所迷數(shù)據(jù)集中的至少一個(gè)數(shù)據(jù)集的DMA傳送前,對(duì)所述數(shù)據(jù) 集執(zhí)行所述邏輯運(yùn)算。
20. 如權(quán)利要求18所述的系統(tǒng),其特征在于,所述DMA控制器 在沒有處理器核的干預(yù)中斷的情況下傳送所述多個(gè)數(shù)據(jù)集和對(duì)所迷多 個(gè)數(shù)據(jù)集執(zhí)行的所述邏輯運(yùn)算。
21. 如權(quán)利要求18所述的系統(tǒng),其特征在于,所述邏輯運(yùn)算包括 "異或,,運(yùn)算,并且所迷系統(tǒng)還包括所述DMA控制器的緩沖器,在執(zhí)行所述數(shù)據(jù)集的"異或"的DMA傳送前,作為中間結(jié)果存儲(chǔ)所述 數(shù)據(jù)集中的至少一個(gè)數(shù)據(jù)集的"異或"。
22. 如權(quán)利要求18所述的系統(tǒng),其特征在于,還包括所述DMA 控制器的邏輯部件,所述邏輯部件確定所述邏輯運(yùn)算通過檢查所述 數(shù)據(jù)結(jié)構(gòu)的字段來指定。
全文摘要
用于執(zhí)行數(shù)據(jù)集的直接存儲(chǔ)器訪問(DMA)傳送和對(duì)數(shù)據(jù)集執(zhí)行的邏輯運(yùn)算的結(jié)果的DMA傳送的方法與裝置。在本發(fā)明的一個(gè)方面,一種方法可以包括接收指定數(shù)據(jù)集的DMA傳送和對(duì)數(shù)據(jù)集執(zhí)行的邏輯運(yùn)算(例如異或)的DMA傳送的數(shù)據(jù)結(jié)構(gòu)??身憫?yīng)該數(shù)據(jù)結(jié)構(gòu)之接收,執(zhí)行數(shù)據(jù)集的DMA傳送和對(duì)數(shù)據(jù)集執(zhí)行的邏輯運(yùn)算的DMA傳送。
文檔編號(hào)G06F13/38GK101273338SQ200680035551
公開日2008年9月24日 申請(qǐng)日期2006年9月26日 優(yōu)先權(quán)日2005年9月30日
發(fā)明者B·斯克里, P·布賴恩克, R·博伊德 申請(qǐng)人:英特爾公司