新四季網

能夠進行並發數據操縱的dma引擎的製作方法

2023-06-24 06:18:41

專利名稱:能夠進行並發數據操縱的dma引擎的製作方法
技術領域:
本發明涉及直接存儲器訪問(DMA),更具體地涉及能夠進行並發數據操縱的DMA 引擎。
背景技術:
直接存儲器訪問(DMA)是現代計算機的一種基本特徵。DMA允許計算機的特定硬體子系統能夠獨立於中央處理單元(CPU)讀訪問和/或寫訪問系統存儲器。可以使用DMA 的某些示例硬體系統包括但不限於硬碟驅動器控制器、晶片上的RAID(獨立磁碟冗餘陣列)(ROC)控制器、圖形卡、網卡和音效卡。DMA還可用於多核心處理器上的晶片內數據傳輸。 通常由DMA控制器執行DMA通道的管理和實現。很多時候DMA控制器配備有本地存儲器, 從而DMA控制器向/從本地DMA存儲器和外部主存儲器傳輸數據。由於DMA控制器而不是 CPU管理數據傳輸,使用DMA的數據傳輸使用很少的計算機CPU處理時間,因此增加了具有 DMA控制器的計算機的有效計算能力。不使用DMA,與外設的通信或多核心系統的核心之間的通信可能在整個讀/寫操作過程中完全佔據CPU,這使得CPU不能用於執行其它計算任務。使用DMA,CPU可以啟動傳輸,並且然後在進行傳輸的同時進行其它操作,並且一旦操作完成,從DMA控制器接收中斷。因為與外設通信通常比與常規系統隨機訪問存儲器(RAM) 慢,從而如果不使用由DMA控制器管理的DMA通道,在與外設通信過程中不能使用CPU的時間將會更長,所以CPU擺脫執行與外設的數據傳輸尤其重要。典型的DMA傳輸將一個存儲器塊從一個設備拷貝到另一個設備。CPU啟動數據傳輸,但是CPU自身不執行數據傳輸。對於工業標準體系結構(ISA)總線,由DMA控制器執行數據傳輸,DMA控制器通常被結合為計算機主板晶片組的一部分。外設組件互連(PCI)總線使用總線主控DMA,其中外設接管總線控制並且自己執行傳輸。嵌入式處理器可以在晶片內包括DMA引擎/控制器,以便允許處理元件發起數據傳輸,同時在數據傳輸期間繼續執行其它任務。當DMA控制器被結合在晶片內時,DMA控制器通常被稱為DMA引擎。嵌入多核心的處理器通常包括一個或更多個DMA引擎和本地DMA 存儲器的組合作為晶片多核心處理器晶片內的子系統。

發明內容
本發明的實施例可以包括一種對通過直接存儲器訪問(DMA)通道傳輸的數據執行多個數據操縱操作的方法,所述DMA通道由DMA控制器管理。該方法包括以下步驟在 DMA控制器中提供多個數據操縱引擎,每個數據操縱引擎執行各種數據操縱操作中的至少一種;由DMA控制器獲取控制數據塊(⑶B),⑶B包含用於從至少一個數據源讀數據、對該數據執行多個數據操縱操作、以及將數據寫到至少一個目的地的指令;由DMA控制器根據編碼在CDB內的指令從至少一個數據源檢索數據;根據編碼在CDB內的指令,使用為每種數據操縱操作在DMA控制器上提供的多個數據操縱引擎之一在DMA控制器中對由DMA控制器接收的數據執行多個數據操縱操作中的每個數據操縱操作,從而由DMA控制器並發地執行多個數據操縱操作中的至少兩個;和根據編碼在CDB內的指令,由DMA控制器將多個數據操縱操作的結果發送到至少一個目的地。本發明的實施例還可以包括一種直接存儲器訪問(DMA)控制器,該DMA控制器對通過直接存儲器訪問(DMA)通道傳輸的數據執行多個數據操縱操作,所述DMA通道由DMA 控制器管理。該DMA控制器包括控制數據塊(⑶B)處理器子系統,該⑶B處理器子系統獲取控制數據塊(CDB),CDB包含用於從至少一個數據源讀數據、對數據執行多個數據操縱操作、以及將數據寫到至少一個目的地的指令;填充子系統,該填充子系統根據編碼在CDB內的指令從至少一個數據源檢索數據;DMA控制器內的多個數據操縱引擎,每個數據操縱引擎根據編碼在CDB內的指令,對由填充子系統接收的數據執行針對多個數據操縱操作中的每個數據操縱操作的各種數據操縱操作中的至少一種,從而由DMA控制器並發地執行多個數據操縱操作中的至少兩個;和排出子系統,排出子系統根據編碼在CDB內的指令,將多個 DMA控制器的結果發送到至少一個目的地。本發明的實施例還可以包括一種直接存儲器訪問(DMA)控制器,該DMA控制器對通過直接存儲器訪問(DMA)通道傳輸的數據執行多個數據操縱操作,所述DMA通道由所述 DMA控制器管理。所述DMA控制器包括用於在DMA控制器內提供多個數據操縱引擎的裝置,每個數據操縱引擎執行各種數據操縱操作中的至少一種;用於由DMA控制器獲取控制數據塊(⑶B)的裝置,⑶B包含用於從至少一個數據源讀數據、對該數據執行多個數據操縱操作、以及將數據寫到至少一個目的地的指令;用於由DMA控制器根據編碼在⑶B內的指令從至少一個數據源檢索數據的裝置;用於根據編碼在CDB內的指令使用為每種數據操縱操作在DMA控制器上提供的多個數據操縱引擎之一在DMA控制器中對以DMA控制器接收的數據執行多個數據操縱操作中的每個數據操縱操作的裝置,從而由DMA控制器並發地執行多個數據操縱操作中的至少兩個;和用於由DMA控制器根據編碼在CDB內的指令將多個數據操縱操作的結果發送到至少一個目的地的裝置。


在附圖中圖1是具有被根據控制數據塊(CDB)管理的多個數據修改引擎的直接存儲器訪問 (DMA)控制器系統的實施例的框圖;圖2是具有端到端數據保護(EEDP)檢查和更新周期的DMA控制器系統的實施例的框圖;圖3是對數據加密並且執行端到端數據保護(EEDP)檢查的DMA控制器系統的實施例的框圖;圖4是對數據加密並且具有端到端數據保護(EEDP)檢查和更新周期的DMA控制器系統的實施例的框圖;圖5是對數據加密、對數據執行異或O(OR)、並且執行端到端數據保護(EEDP)檢查的DMA控制器系統的實施例的框圖;圖6是對數據加密、對數據執行異或O(OR)、並且具有端到端數據保護(EEDP)檢查和更新周期的DMA控制器系統的實施例的框圖;圖7是對數據執行異或O(OR)、並且具有端到端數據保護(EEDP)檢查和更新周期的DMA控制器系統的實施例的框圖;圖8是包括DMA引擎/控制器的晶片上的RAID (獨立磁碟冗餘陣列)(ROC)系統的實施例的框圖;圖9是DMA控制器的實施例的控制數據塊(CDB)處理的實施例的框圖;圖10是⑶B處理器實施例的⑶B處理的有限狀態機(FSM)操作的框圖。
具體實施例方式隨著現代計算機系統變得更為複雜,期望對在計算機系統內傳輸的數據和被傳輸到連接到計算機系統的外設的數據執行附加的數據操縱操作。例如,作為RAID(獨立磁碟冗餘陣列)(ROC)系統操作的一部分,可以期望晶片上的ROC系統對正被傳輸的數據執行若干數據操縱操作。ROC系統通常包括直接存儲器訪問(DMA)引擎/控制器作為ROC體系結構內的子系統。某些典型的數據操縱操作包括散列、散列消息鑑別碼(HMAC)、散列/HMAC 組合、填充模式、線性反饋移位寄存器(LFSR)、端到端數據保護(EEDP)檢查/添加/更新/ 去除、異或(Χ0Ι )、加密和解密。一個實施例的DMA引擎/控制器可以合併對在DMA引擎/ 控制器內傳輸的數據執行的各種數據操縱操作,以便減少對計算機系統內的其它系統/子系統的處理要求。另外,一個實施例的DMA引擎/控制器可以並發地對正被傳輸的數據執行多種數據操縱,從而比以串行方式每次一個地執行多個數據操縱操作更快地執行多種數據操縱。因此,一個實施例允許以儘可能少的中斷將數據自由地從源移動到目的地。對正被一個實施例的DMA引擎/控制器傳輸的數據執行的數據操縱操作還可以在位於DMA引擎 /控制器的存儲器內存儲和檢索數據/修改後的數據(即,本地存儲器),從而避免訪問DMA 引擎/控制器之外的存儲器(即,外部存儲器)的不必要的開銷。例如,一個實施例的DMA引擎/控制器可以使用DMA引擎/控制器上的加密引擎加密並且在位於本地DMA存儲器內的第一數據存儲器內存儲數據。在加密數據被置於第一數據緩衝器內的同時,DMA引擎/控制器上的XOR引擎可以對加密數據並發地執行XOR操作, 並且在位於本地DMA存儲器內的第二數據緩衝器內存儲XOR數據,而不會對到第一數據緩衝器的加密數據的數據流產生任何中斷。通過在產生加密數據的同時對加密數據執行XOR 操作,一個實施例可以避免在執行XOR操作之前等待加密數據被完整寫入數據緩衝器的延遲。另外,一個實施例的DMA引擎/控制器還可以與加密和XOR數據操縱操作並行地執行 EEDP檢查、添加和/或去除操作,從而進一步減少在正被DMA引擎/控制器傳輸的數據上執行多個數據操縱操作所涉及的延遲。可以在具有DMA引擎/控制器的各種計算機系統和電子設備中的DMA引擎/控制器上實現各種實施例。如果希望,如果需要多個DMA通道,計算機系統和/或電子設備可以包括多個DMA引擎/控制器。另外,某些DMA引擎/控制器可以提供多個DMA通道,從而在系統中包括多個DMA引擎/控制器導致乘法器效果,其中可獲得的DMA通道的數目是DMA引擎/控制器的數目乘以每個DMA引擎/控制器上可獲得的DMA通道的數目。一個實施例的 DMA控制器可被實現為單獨系統,這些單獨系統可被作為單獨的專用計算機「卡」、單獨的專用晶片或作為單獨的專用電子設備結合在計算機系統和/或電子設備內。然而,DMA控制器通常被結合為集成在計算機系統或電子設備內的較大多功能晶片、卡或電路的子系統或引擎。因此,一個實施例的DMA控制器可被實現為被包括在較大多功能晶片、卡或電路內的DMA引擎子系統。通常,當DMA控制器被作為較大多功能晶片、卡或電路的子系統包括時, DMA控制器被稱為DMA引擎。因此,在本文檔中,術語DMA控制器和DMA引擎被可互換地使用,從而當指代DMA控制器時也指代DMA引擎,並且反之亦然。圖1是具有被根據控制數據塊(⑶B) 120管理的多個數據修改引擎110-112的DMA 控制器系統106的實施例的框圖100。在圖1所示的實施例中,由DMA控制器/引擎106在 DMA控制器106的⑶B處理器122子系統處獲取和接收⑶B120。CDB處理器子系統122在 DMA控制器106上操作,並且被實現為DMA控制器106的一部分。⑶B包含用於數據傳輸的指令,且包括正被傳輸/修改的數據的一個或更多數據源102-104、希望對正被傳輸的數據進行的數據操縱操作、和正被傳輸的數據的一個或更多數據目的地116-118。⑶B處理器122 讀取編碼在⑶B120內的指令,並且根據編碼在⑶B120內的指令指揮DMA控制器106建立並且進行數據傳輸。基於⑶B,DMA控制器106可以準備並且向一個或更多數據源102-104 發出讀命令,以便使得一個或更多數據源102-104向DMA控制器106發送所希望的數據。 來自一個或更多數據源102-104的數據被DMA控制器106接收,並且被存儲在位於DMA控制器106上的源數據存儲設備108內。基於⑶B120,DMA控制器106可以選擇多個數據修改引擎110-112,以便對正被通過DMA控制器106傳輸的數據執行所希望的數據修改操作。 來自數據修改引擎110-112的結果數據可被直接傳遞到數據目的地116-118,或結果數據可被存儲在位於DMA控制器106上的修改數據存儲設備114內。存儲在DMA控制器106的修改數據存儲設備114內的來自數據修改引擎110-112的結果數據可被其它數據修改引擎 110-112或原始數據修改引擎(例如,執行與過去結果相關的操作的數據修改引擎)使用, 從而可由數據修改引擎110-112讀/寫修改數據存儲設備114。一旦完成了所希望的數據修改操作,DMA控制器可將數據/修改後的數據傳遞到所希望的數據目的地116-118。在某些情況下,數據修改引擎110-112的結果可被僅僅作為由其它數據修改引擎110-112使用的中間結果。根據編碼在⑶B120中的指令實現數據修改引擎110-112的配置,以及從數據修改引擎110-112傳遞哪些結果數據。對於一個實施例,一個或更多數據源102-104可以是與典型的DMA控制器/引擎106兼容的任何數據源102-104。一個實施例可以從單個數據源102或從多個數據源 102-104收集/讀取數據。例如,可以從外部存儲器(即,DMA控制器106之外的存儲器) 讀取來自單個存儲器區域的源數據,並且將其傳輸到各種數據目的地116-118。類似地,可以從外部讀取來自多個存儲器區域的源數據,並且在一個數據傳輸操作中將其傳輸到各種數據目的地116-118。可以創建數據修改引擎,以便對正被通過DMA控制器/引擎106傳輸的數據執行所希望的數據修改。例如,某些數據修改引擎可以包括(但不限於)散列、HMAC、散列/ HMAC組合、填充模式、線性反饋移位寄存器(LFSR)、端到端數據保護(EEDP)檢查/添加/ 更新/去除、異或O(OR)、加密和解密。支持的散列算法的某些類型包括可由散列引擎單獨或並發執行的標準安全散列算法(SHA)-224、SHA-256、SHA-384和SHA-512算法。用於數據修改引擎110-112的輸入數據可被指定為是來自另一個數據修改引擎110-112的中間數據結果,以便允許組合在單個結果中的多個數據操縱。如果希望,中間結果還可被編碼在 ⑶B120內發送到目的地位置116-118之一。然而,中間數據結果不是必須被發送到數據目的地116-118。當工作於來自另一個數據操縱引擎的數據時,第二個數據操縱引擎可以與第一個數據操縱引擎並發地操作,但是第二數據操縱可以略微晚於第一數據操縱引擎開始, 以便允許在開始第二數據操縱引擎計算之前,第一數據操縱引擎開始流化發送(stream) 中間結果數據。對於各種實施例,當不同數據操縱引擎110-112並行地在相同時刻對相同數據(中間結果和/或原始接收數據)執行操作時,也可以發生數據修改引擎110-112的並發操作。另外,各種實施例可以將原始數據和修改後的數據結果兩者傳遞到數據目的地 116-118。各種實施例可以將DMA控制器106內的本地源數據存儲設備108和本地修改數據存儲設備114實現為一個或更多個本地電子存儲器電路。電子存儲器還可被稱為計算機可讀存儲器,雖然計算機可讀(即,電子)存儲器可被包括在需要存儲器存儲設備的電子設備 (但是通常不被認為是計算機)內。電子存儲器的典型實現為提供可被DMA控制器106劃分為源數據存儲設備108和修改數據存儲設備114的一組電子隨機訪問存儲器(RAM)。電子存儲器可以是用於源數據存儲設備108和修改數據存儲設備114的固定部分,但是DMA 控制器還可以按照源數據存儲設備和修改數據存儲設備114的需要動態地分配電子存儲器RAM,從而可以更有效地利用整個電子存儲器。另外,修改數據存儲設備114可被細分為多個段,以便存儲來自多個數據修改引擎110-112的數據。一個實施例的數據目的地116-118可以是與典型的DMA控制器/引擎106兼容的任意數據目的地116-118。各種實施例可以向多個數據目的地116-118或向單個數據目的地116寫數據和/或修改後的數據結果。各個數據結果可被發送到所有可獲得的數據目的地116-118,或僅被發送到可獲得的數據目的地116-118的子組。即一個結果可被發送到數據目的地116-118,而其它結果可被僅僅發送到單個目的地116,或被發送到目的地 116-118的子集。典型的數據目的地116-118可以包括但不限於盤驅動器、計算機外設、 單獨的外部存儲器段和/或其它外部設備。圖2是具有端到端數據保護(EEDP)檢查和更新周期的DMA控制器系統的實施例的框圖200。當接收來自一個或更多數據源202的數據時,該數據被存儲在DMA控制器的源數據存儲設備204內。第一 EEDP引擎206和第二 EEDP引擎210並行地對從一個或更多數據源202接收的數據執行操作。第一 EEDP引擎206是檢查EEDP引擎,它檢查嵌入在接收的數據內的數據保護信息(DPI),以便驗證該DPI並且向DMA控制器報告發現208的任意錯誤。由第一 EEDP檢查引擎206發現的錯誤可被DMA控制器記錄和/或如果啟用(enable) 了中斷功能則可以產生中斷。第二 EEDP引擎210實際上組合兩個EEDP功能,以便產生用於傳輸數據流的更新的DPI或將DPI添加到傳輸數據流。來自第二 EEDP添加/更新引擎 210的更新的DPI被與來自一個或更多數據源202的原始數據流組合212,並且被發送到所希望的一個或更多目的地214。可以作為按照以可標識方式在數據流中插入數據包,或作為數據目的地所期望的其它處理,通過多路復用器執行組合處理212。各個實施例可以根據由 CDB定義的塊大小在傳輸數據流內的塊邊界處插入DPI。當對於被發送到一個或更多目的地214的數據來說已經達到了數據流的數據字節計數時,插入DPI。對於給定的⑶B可以移動多個數據塊,從而對於單個數據流DPI被多次插入傳輸數據流。圖3是對數據加密並且執行端到端數據保護(EEDP)檢查的DMA控制器系統的實施例的框圖300。當接收來自一個或更多數據源302的數據時,該數據被存儲在DMA控制器的源數據存儲設備304內。EEDP306和加密引擎310並行地對從一個或更多數據源302接收的數據執行操作。EEDP引擎306是檢查EEDP引擎,它檢查嵌入在接收的數據內的DPI, 以便驗證該DPI並且向DMA控制器報告發現的任意錯誤308。由EEDP引擎306發現的錯誤可被DMA控制器記錄和/或如果啟用了中斷功能可以產生中斷。加密引擎310加密正被發送到一個或更多數據目的地314的數據,並且將結果存儲在本地修改數據存儲設備312內。 加密的數據被從修改數據存儲設備312傳遞到一個或更多數據目的地314。還可以在類似於圖3所示的實施例300的實施例中使用其它數據修改引擎。例如,一個實施例可以用散列或散列/HMAC組合引擎取代圖3所示的加密引擎310。類似地,各種實施例還可以用不同的數據修改引擎取代圖4-7所示的實施例的數據修改引擎。另外,圖2-7所示的實施例僅僅表示可以在DMA控制器上實現的大量各種數據操縱引擎配置的子集。傳遞給DMA控制器的每個CDB定義了在DMA控制器上配置的數據操縱引擎的配置,從而DMA控制器可被針對由DMA控制器接收的每個⑶B重新配置為大量各種數據操縱引擎配置中的任意一種。對於取代加密引擎310使用的某些數據操縱引擎,可能必須在本地修改數據存儲設備312中存儲某些修改後的數據,從而數據操縱引擎(例如,異或O(OR)引擎)可以訪問已被計算的數據。圖4是對數據加密並且具有端到端數據保護(EEDP)檢查和更新周期的DMA控制器系統的實施例的框圖400。當接收來自一個或更多數據源402的數據時,該數據被存儲在 DMA控制器的源數據存儲設備404內。第一 EEDP引擎406、加密引擎410和第二 EEDP引擎 414並行地執行操作。第一 EEDP引擎406是檢查EEDP引擎,它檢查嵌入在接收的數據內的 DPI,以便驗證該DPI並且向DMA控制器報告發現的任意錯誤408。由第一 EEDP引擎406發現的錯誤可被DMA控制器系統記錄和/或如果啟用了中斷功能可以產生中斷。加密引擎410 加密正被發送到一個或更多數據目的地418的數據,並且將結果存儲在本地修改數據存儲設備412內。加密的數據被從修改數據存儲設備412傳遞到一個或更多數據目的地418,並且被傳遞到第二 EEDP添加/更新引擎414。第二 EEDP引擎414實際上組合兩個EEDP功能,以便產生用於傳輸數據流的更新的DPI或將DPI添加到傳輸數據流。來自第二 EEDP添加/更新引擎414的更新的DPI被與來自修改數據存儲設備412的加密數據流組合416,並且被發送到所希望的一個或更多目的地418。可以作為按照以可標識方式在數據流中插入數據包,或作為數據目的地所期望的其它處理,通過多路復用器執行組合處理416。各個實施例可以根據由CDB定義的塊大小在傳輸數據流內的塊邊界處插入DPI。當對於正被發送到一個或更多目的地418的數據來說已經達到了數據流的數據字節計數時,插入DPI。對於給定的CDB可以移動多個數據塊,從而對於單個數據流DPI被多次插入傳輸數據流。圖5是對數據加密,對數據執行異或O(OR),並且執行端到端數據保護(EEDP)檢查的DMA控制器系統的實施例的框圖500。當接收來自一個或更多數據源502的數據時, 該數據被存儲在DMA控制器的源數據存儲設備504內。EEDP506、加密引擎510和第一 514 和第二 518異或O(OR)引擎並行地執行操作。EEDP引擎506是檢查EEDP引擎,它檢查嵌入在接收的數據內的DPI,以便驗證該DPI並且向DMA控制器報告發現的任意錯誤508。由 EEDP引擎506發現的錯誤可被DMA控制器系統記錄和/或如果啟用了中斷功能可以產生中斷。加密引擎510加密正被發送到一個或更多數據目的地524的數據,並且將結果存儲在本地修改數據存儲設備#1(512)內。加密的數據被從修改數據存儲設備512傳遞到一個或更多數據目的地524,並且被傳遞到第一 XOR引擎514和第二 XOR引擎518。每個XOR引擎514和518可能需要訪問已經計算的數據,以正確地完成計算。因此,第一 XOR引擎514可以在第二修改數據存儲設備516內存儲結果數據。類似地,第二 XOR引擎518可以在第三修改數據存儲設備520內存儲結果數據。XOR結果數據被從第二修改數據存儲設備516和第三修改數據存儲設備520傳遞到一個或更多數據目的地524。來自第一修改數據存儲設備512的加密數據,來自第二修改數據存儲設備516的第一 XOR數據和來自第三修改數據存儲設備520的第二 XOR數據被組合522,並且傳遞到一個或更多數據目的地524。可以作為按照以可標識方式在數據流中插入數據包,或作為數據目的地5M所期望的其它處理, 通過多路復用器執行組合處理522。對於圖5所示的實施例500,可以從每個數據源502檢索固定的數據部分(例如, Ikb數據),每次檢索一個固定數據部分。然後,每個固定的數據部分被發送到加密引擎 510,並且加密結果被發送到指定的一個或更多數據目的地524。當加密數據被從加密引擎 510發送到加密數據的一個或更多數據目的地5 時,執行XOR處理。一旦已經從每個數據源502檢索了固定的數據部分(例如,從每個數據源502檢索的11Λ數據),並且加密數據已被發送到了加密引擎510的指定的一個或更多數據目的地524,第一 M)R引擎514的結果被發送到第一 XOR引擎514的指定的一個或更多數據目的地524。在第一 XOR引擎514的結果被發送到第一 XOR引擎514的指定的一個或更多數據目的地5M之後,第二 XOR引擎 518的結果被發送到第二 XOR引擎518的指定的一個或更多數據目的地524。重複來自每個數據源502的固定數量數據的處理,直到已經檢索了最後的固定數量數據(或更少)為止。圖6是對數據加密,對數據執行異或O(OR),並且具有端到端數據保護(EEDP)檢查和更新周期的DMA控制器系統的實施例的框圖600。當接收來自一個或更多數據源602的數據時,該數據被存儲在DMA控制器的源數據存儲設備604內。第一 EEDP引擎606、加密引擎610、第一 614和第二 618異或O(OR)引擎和第二 EEDP引擎擬4並行地執行操作。第一 EEDP引擎606是檢查EEDP引擎,它檢查嵌入在接收的數據內的DPI,以便驗證該DPI並且向 DMA控制器報告發現的任意錯誤608。由第一 EEDP引擎606發現的錯誤可被DMA控制器系統記錄和/或如果啟用了中斷功能可以產生中斷。加密引擎610加密正被發送到一個或更多數據目的地擬8的數據,並且將結果存儲在本地修改數據存儲設備#1 (612)內。加密的數據被從第一修改數據存儲設備612傳遞到一個或更多數據目的地628,傳遞到第二 EEDP添加/更新引擎624,並且傳遞到第一 XOR引擎614和第二 XOR引擎618。每個XOR引擎614 和618可能需要訪問已經計算的數據,以正確地完成計算。因此,第一 XOR引擎614可以在第二修改數據存儲設備616內存儲結果數據。類似地,第二 XOR引擎618可以在第三修改數據存儲設備620內存儲結果數據。XOR結果數據被從第二修改數據存儲設備616和第三修改數據存儲設備620傳遞到一個或更多數據目的地618,並且傳遞到第二 EEDP添加/更新引擎624。來自第一修改數據存儲設備612的加密數據,來自第二修改數據存儲設備616 的第一 XOR數據和來自第三修改數據存儲設備620的第二 XOR數據被組合併且傳遞到第二 EEDP引擎624。可以作為按照以可標識方式在數據流中插入數據包,或作為第二 EEDP引擎 624所期望的其它處理,通過多路復用器執行組合處理622。第二 EEDP引擎擬4實際上組合兩個EEDP功能,以便產生用於加密並且異或的數據流的更新的DPI,或將DPI添加到當前傳輸數據流。來自第二 EEDP添加/更新引擎624的更新的DPI被與來自第一修改數據存儲設備612的加密數據流、來自第二修改數據存儲設備616的第一 XOR數據和來自第三修改數據存儲設備620的第二 XOR數據組合626,並且被發送到所希望的一個或更多目的地 628。可以作為按照以可標識方式在數據流中插入數據包,或作為數據目的地所期望的其它處理,通過多路復用器執行組合處理626。在圖6所示的實施例的數據修改引擎的多源移動的示例操作中,DMA引擎/控制器從源檢索數據,並且通過加密弓丨擎610發送該數據。同時,相同的數據還被發送到第一 EEDP 檢查引擎606,以便驗證DPI數據是正確的。在已經加密了數據流的每16位元組之後,除了被發送到數據目的地6 之外,加密的數據被同時發送到三個不同的數據修改引擎614、618、 624。加密的數據被發送到第一 XOR引擎614、第二 XOR引擎618和第二 EEDP添加/更新引擎624。XOR數據被存儲在相關的存儲器緩衝器616和620內,從而當檢索到來自不同源 602的數據時可以累積XOR結果。第二 EEDP添加/更新引擎6M創建當數據被發送到第二 EEDP添加/更新引擎624時所需的新DPI。當達到塊邊界時(例如,在16位元組之後), 產生的DPI被置於被發送到目的地628的數據流內。上述處理繼續,直到來自所有所需源 602的數據被檢索、加密並且被異或在一起為止。因此,5個不同的數據修改引擎同時在DMA 引擎/控制器上並發地操作。各種實施例可以根據由CDB定義的塊大小在傳輸數據流內的塊邊界處插入DPI。當對於正被發送到一個或更多目的地628的數據來說已經達到了數據流的數據字節計數時,插入DPI。對於給定的CDB可以移動多個數據塊,從而對於單個數據流DPI被多次插入傳輸數據流。實現圖6所示的配置600的實施例可以從每個數據源602檢索固定的數據部分 (例如,Ikb數據),每次檢索一個固定數據部分。然後,每個固定的數據部分被發送到加密引擎610,並且加密結果被發送到第二 EEDP引擎624,並且然後被發送到加密數據的指定的一個或更多數據目的地524。當加密數據被從加密引擎610發送到第二 EEDP引擎624並且被發送到加密引擎610的一個或更多數據目的地628時,執行XOR處理。一旦已經從每個數據源602檢索了固定的數據部分(例如,從每個數據源602檢索的11Λ數據),並且加密數據已被通過第二 EEDP引擎6M發送到了加密引擎610的指定的一個或更多數據目的地628,第一 XOR引擎614的結果被發送到第二 EEDP引擎624,並且被發送到第一 XOR引擎 614的指定的一個或更多數據目的地628。在第一 XOR引擎614的結果被發送到第一 XOR引擎614的指定的一個或更多數據目的地6 之後,第二 XOR引擎618的結果被發送到第二 EEDP引擎624,並且被發送到第二 XOR引擎618的指定的一個或更多數據目的地628。重複來自每個數據源602的固定數量數據的處理,直到已經檢索了最後的固定數量數據(或更少)為止。為向第二 EEDP引擎擬4流化發送數據選擇的本地修改數據存儲設備612、616、 620與當前傳輸到指定一個或更多目的地628的數據流匹配(加密引擎610的結果、第一 XOR引擎614或第二 XOR引擎結果618)。圖7是對數據執行異或O(OR),並且具有端到端數據保護(EEDP)檢查和更新周期的DMA控制器系統的實施例的框圖700。當接收來自一個或更多數據源702的數據時,該數據被存儲在DMA控制器的源數據存儲設備704內。第一 EEDP弓丨擎706、第一 XOR引擎710 和第二 XOR引擎714和第二 EEDP引擎720並行地執行操作。第一 EEDP引擎606是檢查 EEDP引擎,它檢查嵌入在接收的數據內的DPI,以便驗證該DPI並且向DMA控制器報告發現的任意錯誤708。由第一 EEDP引擎706發現的錯誤可被DMA控制器系統記錄和/或如果啟用了中斷功能可以產生中斷。每個XOR引擎710和714可能需要訪問已經計算的數據,以正確地完成計算。因此,第一 XOR引擎710可以在第一修改數據存儲設備712內存儲結果數據。類似地,第二 XOR引擎714可以在第二修改數據存儲設備716內存儲結果數據。XOR 結果數據被從第一修改數據存儲設備712和第二修改數據存儲設備716傳遞到一個或更多數據目的地724,並且傳遞到第二 EEDP添加/更新引擎720。來自第一修改數據存儲設備 712的第一 XOR數據和來自第二修改數據存儲設備716的第二 XOR數據被組合併且傳遞到第二 EEDP引擎720。可以作為按照以可標識方式在數據流中插入數據包,或作為第二 EEDP 引擎720所期望的其它處理,通過多路復用器執行組合處理718。第二 EEDP引擎720實際上組合兩個EEDP功能,以便產生用於異或數據流的更新的DPI,或將DPI添加到當前傳輸數據流。來自第二 EEDP添加/更新引擎720的更新的DPI被與來自第一修改數據存儲設備 712的第一 XOR數據和來自第二修改數據存儲設備716的第二 XOR數據組合722,並且然後被發送到所希望的一個或更多目的地724。可以作為按照以可標識方式在數據流中插入數據包,或按照數據目的地所期望的其它處理,通過多路復用器執行組合處理722。各種實施例可以根據由⑶B定義的塊大小在傳輸數據流內的塊邊界處插入DPI。當對於正被發送到一個或更多目的地7M的數據來說已經達到了數據流的數據字節計數時,插入DPI。對於給定的CDB可以移動多個數據塊,從而對於單個數據流DPI被多次插入傳輸數據流。對於圖7所示的實施例700,可以從每個數據源702檢索固定的數據部分(例如, 11Λ數據),每次檢索一個固定數據部分。然後,每個固定的數據部分被同時發送到第一 M)R 引擎710和第二 XOR引擎714。當從一個或更多數據源702檢索數據時,每個XOR引擎710、 714以當前檢索到的數據在XOR引擎710、714各自的本地修改數據存儲設備712、716內執行異或操作。一旦已經從每個數據源702檢索了固定的數據部分(例如,從每個數據源702 檢索的11Λ數據),來自第一 XOR引擎710的結果被發送到第二 EEDP引擎720,並且被發送到第一 XOR引擎710的指定的一個或更多數據目的地724。在第一 XOR引擎710的結果被發送到第一 XOR引擎710的指定的一個或更多數據目的地7M之後,第二 XOR引擎714的結果被發送到第二 EEDP引擎720,並且被發送到第二 XOR引擎714的指定的一個或更多數據目的地724。重複來自每個數據源702的固定數量數據的處理,直到已經檢索了最後的固定數量數據(或更少)為止。為向第二 EEDP引擎720流化發送數據所選擇的本地修改數據存儲設備712、716與當前傳輸到指定一個或更多目的地724的數據流匹配(第一 XOR引擎結果710或第二 XOR引擎結果714)。圖8是包括DMA引擎/控制器812的晶片上的RAID(獨立磁碟冗餘陣列)(ROC) 系統802的實施例的框圖800。圖8所示的R0C802實施例提供了在多功能晶片上包括DMA 引擎/控制器812的例子。在圖8所示的示例R0C802實施例中,R0C802由幾個子系統組成,包括串行附加SCSI (小型計算機系統接口 ) (SAS)核心810、DMA引擎/控制器812、存儲器隊列和存儲器控制器813、時鐘配置/重置子系統(CCR) 814、外設組件互連(PCI)特快(Express) (PCE)核心818、輸入/輸出(I/O)子系統820、處理器本地總線(PLB)靜態 RAM (SRAM) 822和外設總線訪問模塊(PBAM) 824。R0C802的各種子系統通過處理器本地總線 (PLB) 816和/或通過直接連接830-836彼此通信。DMA引擎/控制器812具有與存儲器隊列和存儲器控制器813的直接連接836,以便控制到外部連接的雙數據速率(DDR) RAM存儲器806的直接存儲器訪問通道808。存儲器隊列和存儲器控制器813可被與DMA引擎/控制器812結合在一起,以便形成R0C802的單個邏輯元件,但是它們被分別示出,以便清楚地示出DMA引擎/控制器812的位置。SAS核心810在允許傳輸SAS協議通信804的通信路徑上提供與SAS設備之間的往來外部通信。類似地,PCE核心818在允許傳輸PCI-Express協議通信擬6的通信路徑上提供與PCI-Express設備之間的往來外部通信。PBAM在允許傳輸串行數據(SD)^S的通信路徑上提供與串行數據(SD)外設之間的往來外部通信。CCR814、 I/O處理器子系統820和PLB SRAM 822提供互連各種外部通信子系統810、812_813、818和 824的支持功能。在圖8所示的ROC實施例802中,DMA引擎/控制器812通過到存儲器隊列和存儲器控制器813的直接連接836訪問外部DDRRAM存儲器806。另外,DMA引擎/控制器812 具有通過PLB 816到ROC 802上的其它系統810、814、818、820、822、824的連接。DMA引擎 /控制器812被通過PLB 816連接到ROC實施例802的其餘子系統。為了提高通信速度,特別是對於大量的數據移動,除了 PLB816連接之外,可以結合ROC 802的子系統之間的某些直接通信連接830-836。例如,在圖8所示的實施例中,PCE核心818和SAS核心810之間存在直接通信連接830。在圖8所示的實施例中,還存在DMA引擎/控制器812和PCE核心818之間的直接通信連接832,以及存儲器隊列和存儲器控制器813和SAS核心810之間的直接通信連接834。通過SAS核心810、PCE核心818和PBAM824.DMA引擎/控制器812 可以與SAS設備804、PCI-Express設備擬6和串連外設828通信。如果系統設計者需要, ROC 802或其它可以使用DMA的設備/系統的各種實施例可以結合更少或更多的外部數據通信連接。圖9是DMA控制器的實施例的⑶B處理的實施例的框圖900。⑶B獲取引擎904 可以獲取⑶B902,並且將該⑶B存儲在預取本地RAM906中。⑶B獲取引擎906分析嵌入 ⑶B902內的指令,並且指揮⑶B處理器908執行必須的動作,以便執行編碼在⑶B902內的指令。⑶B處理器908還可以與存儲器管理器910交互,以便確定DMA控制器的本地RAM912 中存在多少可用空間。⑶B處理器908還可以與DMA控制器的本地RAM912交互,以便當傳輸數據並且執行所希望的多種數據操縱需要時,存儲數據和修改後的數據。CDB處理器908 可以從DMA控制器上可以獲得的數據修改引擎916-932中選擇適當的數據修改引擎914。 對於圖9所示的實施例,可獲得的數據修改引擎包括散列/HMAC引擎916、填充模式引擎 918、LFSR引擎920、EEDP產生引擎922、EEDP檢查引擎924、第一(#1)X0R引擎926、第二 (#2)XOR引擎928、解密引擎930和加密引擎932。對於各種實施例,散列/HMAC引擎916 可以是,一起或單獨地,散列、HMAC或散列/HMAC組合引擎。填充模式引擎918可用於以固定的數據模式填充修改存儲設備。因此,由於所寫的模式是固定的數據模式,填充模式引擎 918不需要從數據源讀數據。LFSR引擎920也不需要從數據源讀數據來執行LFSR引擎920 的操作。類似地,某些數據操縱引擎不向目的地寫數據,而是僅僅對從源接收的數據執行檢查,諸如EEDP檢查引擎924。因此,對於某些數據操縱引擎(例如,填充模式引擎918和/ 或LFSR引擎920),根據CDB從數據源讀取可能不需要從數據源讀取任何實際數據。類似地,對於某些數據操縱引擎(例如,EEDP檢查引擎924),根據⑶B向數據目的地寫數據可能不需要將實際數據寫到數據目的地。CDB處理器908處理將數據寫到數據目的地,並且針對 ⑶B追蹤數據操縱引擎的執行。一旦⑶B處理器908完成了給定⑶B902的所有數據移動, ⑶B完成引擎934將⑶B完成結果寫到完成隊列936。完成隊列936可以位於DMA控制器/引擎之外的存儲器內。當第一 CDB的數據操縱接近完成或完成時,各種實施例還可以允許排出FSM1012處理第一⑶B的寫數據,同時填充FSM1006可以為第二( S卩,下一個)⑶B開始檢索數據的處理,以便提高整體處理速度。圖10是⑶B處理器實施例的⑶B處理的有限狀態機(FSM)操作的框圖1000。 ⑶B獲取引擎有限狀態機(FSM) 1002分析嵌入⑶B內的指令,並且可以與4個有限狀態機 1006-1012交互來執行必須的動作,以便執行嵌入由DMA控制器接收的⑶B內的指令。填充FSM1006從⑶B獲取引擎FSM1002接收指令,並且控制讀命令1004的創建和發出,以便從一個或更多數據源檢索數據。修改FSM1008根據嵌入CDB內的指令使用DMA控制器數據修改引擎1018控制數據操縱操作的執行。排出命令(CMD)FSM1010創建寫命令,該寫命令指揮系統將數據和/或修改後的數據從數據修改引擎1018發送到所希望的一個或更多數據目的地1016。排出數據FSM1012執行在排出命令FSM1010中創建的寫命令,以便將數據和/或修改後的數據寫到所希望的一個或更多數據目的地1016。在某些情況下,排出數據FSM1012還可以使用數據修改引擎1018執行某些數據修改操作,諸如用於不需要在本地 DMA控制器RAM中緩存數據以便執行數據操縱計算的EEDP產生的數據修改操作。各種實施例可以通過操作在計算機系統、現場可編程門陣列(FPGA)、專用集成電路(ASIC)、其它可編程邏輯電路或其它電子設備上的應用,提供此處詳述的控制和管理功能。實施例可被作為可被包括在計算機可讀或計算機可用介質電腦程式產品提供, 所述介質上存儲有可用於對計算機(或其它電子設備)編程/操作計算機(或其它電子設備)或計算機系統,以便執行根據本發明的一個或更多處理的指令。計算機可讀介質可以包括但不限於硬碟驅動器、軟盤、光碟、壓縮盤只讀存儲器(⑶-ROM)、數字通用盤 ROM(DVD-ROM)、通用串行總線(USB)存儲器棒、磁光碟、ROM、隨機訪問存儲器(RAM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、磁光卡、快閃記憶體或適合於存儲電子指令的其它類型的介質/機器可讀介質。電腦程式指令可以駐留在並且運行在單個計算機/電子設備/電子電路上,或各種部分可以分布在構成計算機系統的多個計算機/設備/電子電路上。另外,實施例還可以被作為電腦程式產品下載,其中程序可被藉助於包含在載波內的數據信號或其它傳播介質通過通信鏈路(例如,數據機或網絡連接,包括有線/纜線和無線連接兩者)從遠程計算機傳輸到做出請求的計算機。已經出於說明和描述的目的給出了本發明的上面描述。它不旨在是窮盡性的或將本發明局限於公開的精確形式,並且根據上面的教導可以有其它修改和變形。選擇並且描述實施例,以便最好地解釋本發明的原理和其實際應用,從而使得本領域的其它技術人員能夠在適合於構想的特定用途的各種實施例和各種修改中最好地利用本發明。所附的權利要求旨在被認為包括本發明的除了受到現有技術限制之外的其它替換實施例。
權利要求
1.一種對通過直接存儲器訪問DMA通道傳輸的數據執行多個數據操縱操作的方法,所述DMA通道由DMA控制器管理,該方法包括以下步驟在所述DMA控制器內提供多個數據操縱引擎,每個數據操縱引擎執行各種數據操縱操作中的至少一種;由所述DMA控制器獲取控制數據塊⑶B,所述⑶B包含用於從至少一個數據源讀數據、 對所述數據執行所述多個數據操縱操作、以及將所述數據寫到至少一個目的地的指令;由所述DMA控制器根據編碼在所述CDB內的所述指令從至少一個數據源檢索所述數據;根據編碼在所述CDB內的所述指令,使用為每種數據操縱操作在所述DMA控制器上提供的所述多個數據操縱引擎之一,在所述DMA控制器中對由所述DMA控制器接收的所述數據執行所述多個數據操縱操作中的每個數據操縱操作,從而由所述DMA控制器並發地執行所述多個數據操縱操作中的至少兩個;和根據編碼在所述CDB內的所述指令,由所述DMA控制器將所述多個數據操縱操作的結果發送到至少一個目的地。
2.如權利要求1所述的方法,其中所述從所述至少一個數據源檢索所述數據的步驟進一步包括根據編碼在所述CDB內的所述指令,在所述DMA控制器內創建讀命令,以便從所述至少一個數據源讀取所述數據;將所述讀命令從所述DMA控制器發送到所述至少一個數據源;和在所述DMA控制器處接收由所述至少一個數據源根據所述讀命令發送的來自所述至少一個數據源的所述數據。
3.如權利要求1所述的方法,其中所述將所述多個數據操縱操作的所述結果發送到至少一個目的地的步驟進一步包括根據編碼在所述CDB內的所述指令,在所述DMA控制器內創建寫命令,以便將所述多個數據操縱操作的所述結果寫到所述至少一個目的地;和根據所述寫命令,由所述DMA控制器將所述多個數據操縱操作的所述結果發送到所述至少一個目的地。
4.如權利要求1所述的方法,還包括以下步驟將由所述DMA控制器檢索到的所述數據存儲在本地地包括在所述DMA控制器內的電子存儲器內。
5.如權利要求1所述的方法,還包括以下步驟將所述多個數據操縱操作的所述結果存儲在本地地位於所述DMA內的電子存儲器內。
6.如權利要求1所述的方法,其中所述多個數據操縱引擎中的每個數據操縱引擎執行一組數據操縱操作中的至少一個數據操縱操作,所述一組數據操縱操作包括散列、散列消息鑑別碼HMAC、散列/HMAC組合、填充模式、線性反饋移位寄存器LFSR、端到端數據保護 EEDP檢查、EEDP添加、EEDP更新、EEDP去除、異或M)R、加密和解密。
7.如權利要求1所述的方法,其中使用為每個數據操縱操作在所述DMA控制器上提供的所述多個數據操縱引擎之一,對由所述DMA控制器接收的所述數據執行所述多個數據操縱操作中的每個數據操縱操作的步驟進一步包括所述多個數據操縱引擎中的第一數據操縱引擎創建第一數據結果,第一數據結果用作所述多個數據操縱引擎中的第二數據操縱引擎的計算的基礎,以便執行所述多個數據操縱操作中的至少一個數據操縱操作。
8.如權利要求1所述的方法,其中所述多個數據操縱引擎包括至少兩個單一類型的數據操縱操作,從而能夠在所述DMA控制器上並發地執行所述單一類型的數據操縱操作。
9.如權利要求1所述的方法,其中所述將所述多個數據操縱操作的所述結果發送到至少一個目的地的步驟還將由所述DMA控制器檢索到的原始數據發送到所述至少一個數據目的地。
10.一種直接存儲器訪問DMA控制器,該DMA控制器對通過直接存儲器訪問DMA通道傳輸的數據執行多個數據操縱操作,所述DMA通道由所述DMA控制器管理,所述DMA控制器包括控制數據塊⑶B處理器子系統,該⑶B處理器子系統獲取控制數據塊⑶B,所述⑶B包含用於從至少一個數據源讀數據、對所述數據執行所述多個數據操縱操作、以及將所述數據寫到至少一個目的地的指令;填充子系統,該填充子系統根據編碼在所述CDB內的所述指令從至少一個數據源檢索所述數據;所述DMA控制器內的多個數據操縱引擎,每個數據操縱引擎根據編碼在所述CDB內的所述指令,對由填充子系統接收的所述數據執行針對所述多個數據操縱操作中的每個數據操縱操作的各種數據操縱操作中的至少一種,從而由所述DMA控制器並發地執行所述多個數據操縱操作中的至少兩個;和排出子系統,排出子系統根據編碼在所述CDB內的所述指令,將所述多個DMA控制器的結果發送到至少一個目的地。
11.如權利要求10所述的DMA控制器,其中所述填充子系統通過根據編碼在所述CDB 內的所述指令創建讀命令來從所述至少一個數據源讀取所述數據,將所述讀命令發送到所述至少一個數據源,以及接收由所述至少一個數據源根據所述讀命令發送的來自所述至少一個數據源的所述數據,而從所述至少一個數據源檢索所述數據。
12.如權利要求10所述的DMA控制器,其中所述排出子系統通過根據編碼在所述CDB 內的所述指令創建寫命令來將所述多個數據操縱操作的所述結果寫到所述至少一個目的地,以及根據所述寫命令將所述多個數據操縱操作的所述結果發送到所述至少一個目的地,而將所述多個數據操縱操作的所述結果發送到至少一個目的地。
13.如權利要求10所述的DMA控制器,還包括存儲由所述填充子系統檢索到的所述數據的源數據存儲設備,所述源數據存儲設備是本地地包括在所述DMA控制器內的電子存儲器。
14.如權利要求10所述的DMA控制器,還包括存儲所述多個數據操縱操作的所述結果的至少一個修改數據存儲設備,所述至少一個修改數據存儲設備是本地地包括在所述DMA 內的電子存儲器。
15.如權利要求10所述的DMA控制器,其中所述多個數據操縱引擎中的每個數據操縱引擎執行一組數據操縱操作中的至少一個數據操縱操作,所述一組數據操縱操作包括散列、散列消息鑑別碼HMAC、散列/HMAC組合、填充模式、線性反饋移位寄存器LFSR、端到端數據保護EEDP檢查、EEDP添加、EEDP更新、EEDP去除、異或M)R、加密和解密。
16.如權利要求10所述的DMA控制器,其中所述多個數據操縱引擎中的第一數據操縱引擎創建第一數據結果,第一數據結果用作所述多個數據操縱引擎中的第二數據操縱引擎的計算的基礎,以便執行所述多個數據操縱操作中的至少一個數據操縱操作。
17.如權利要求10所述的DMA控制器,其中所述多個數據操縱引擎包括至少兩個單一類型的數據操縱操作,從而能夠在所述DMA控制器上並發地執行所述單一類型的數據操縱操作。
18.如權利要求10所述的DMA控制器,其中所述排出子系統還將由所述DMA控制器檢索到的原始數據發送到所述至少一個數據目的地。
19.一種直接存儲器訪問DMA控制器,該DMA控制器對通過直接存儲器訪問DMA通道傳輸的數據執行多個數據操縱操作,所述DMA通道由所述DMA控制器管理,所述DMA控制器包括用於在所述DMA控制器內提供多個數據操縱引擎的裝置,每個數據操縱引擎執行各種數據操縱操作中的至少一種;用於由所述DMA控制器獲取控制數據塊⑶B的裝置,所述⑶B包含用於從至少一個數據源讀數據、對所述數據執行所述多個數據操縱操作、以及將所述數據寫到至少一個目的地的指令;用於由所述DMA控制器根據編碼在所述CDB內的所述指令從至少一個數據源檢索所述數據的裝置;用於根據編碼在所述CDB內的所述指令使用為每種數據操縱操作在所述DMA控制器上提供的所述多個數據操縱引擎之一在所述DMA控制器中對由所述DMA控制器接收的所述數據執行所述多個數據操縱操作中的每個數據操縱操作的裝置,從而由所述DMA控制器並發地執行所述多個數據操縱操作中的至少兩個;和用於由所述DMA控制器根據編碼在所述CDB內的所述指令將所述多個數據操縱操作的結果發送到至少一個目的地的裝置。
全文摘要
本公開涉及能夠進行並發數據操縱的DMA引擎。公開了在通過以DMA控制器/引擎管理的DMA通道傳輸的數據上並發地執行多個數據操縱操作的方法和設備。可以由DMA控制器獲取控制從何處檢索數據、將數據傳遞到何處和如何執行多個數據操縱操作的控制數據塊(CDB)。工作於DMA控制器內的CDB處理器可以讀取CDB,並根據CDB的內容建立數據讀、數據操縱操作和數據寫。數據被從一個或更多個源提供,並且數據/修改後的數據可被傳遞到一個或更多個目的地。在數據被通過DMA控制器傳遞時,DMA控制器可以對數據並發地執行多個數據操縱操作。執行數據操縱操作的數據修改引擎可實現在DMA控制器上,從而在數據操縱操作過程中使用本地RAM以避免在數據操縱操作過程中訪問外部存儲器。
文檔編號G06F13/28GK102193886SQ201010185538
公開日2011年9月21日 申請日期2010年5月19日 優先權日2010年3月5日
發明者D·M·奧爾森, G·皮奇裡洛 申請人:Lsi公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀