TWI516945B - 可並行資料修改之方法及直接記憶體存取控制器 - Google Patents

可並行資料修改之方法及直接記憶體存取控制器 Download PDF

Info

Publication number
TWI516945B
TWI516945B TW099112529A TW99112529A TWI516945B TW I516945 B TWI516945 B TW I516945B TW 099112529 A TW099112529 A TW 099112529A TW 99112529 A TW99112529 A TW 99112529A TW I516945 B TWI516945 B TW I516945B
Authority
TW
Taiwan
Prior art keywords
data
dma controller
engine
data modification
cdb
Prior art date
Application number
TW099112529A
Other languages
English (en)
Other versions
TW201131372A (en
Inventor
蓋瑞 派西里歐
大衛M 歐森
Original Assignee
安華高科技通用Ip(新加坡)公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 安華高科技通用Ip(新加坡)公司 filed Critical 安華高科技通用Ip(新加坡)公司
Publication of TW201131372A publication Critical patent/TW201131372A/zh
Application granted granted Critical
Publication of TWI516945B publication Critical patent/TWI516945B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Bus Control (AREA)
  • Record Information Processing For Printing (AREA)
  • Storage Device Security (AREA)

Description

可並行資料修改之方法及直接記憶體存取控制器
直接記憶體存取(DMA)係現代電腦之一基本特徵。DMA允許一電腦之特定硬體子系統具有獨立於中央處理單元(CPU)之讀取及/或寫入存取系統記憶體。可使用DMA之一些實例性硬體系統包含但不限於:磁碟控制器、獨立冗餘磁碟陣列(RAID)單晶片(ROC)控制器、圖形卡、網路卡及音效卡。DMA亦可用於多核心處理器上之晶片內資料傳送。一DMA通道之管理及實施一般係由一DMA控制器而執行。大多數情況下,該DMA控制器裝備有本端記憶體,使得該DMA控制器自該本端DMA記憶體及外部主記憶體傳送資料及將資料傳送至該本端DMA記憶體及外部主記憶體。因為該DMA控制器管理資料之傳送而不是該電腦CPU,所以使用DMA之資料傳送很少使用到電腦CPU處理時間,因此增加了具有一DMA控制器之一電腦的有效計算能力。在沒有DMA的情況下,在整個讀取/寫入作業期間,與周邊器件之通信或介於一多核心系統之核心之間之通信可完全佔據該CPU,這使得該CPU不可用於執行其他計算任務。在具有DMA的情況下,該CPU將起始該傳送,接著在該傳送進行的同時進行其他作業,且一旦已完成該作業自該DMA控制器接收一中斷。因為與周邊器件之通信通常慢於正常系統隨機存取記憶體(RAM)之通信,所以將CPU從執行與周邊器件之資料傳送釋放是特別重要的,因此在不使用由一DMA控制器管理之一DMA通道的情況下,在與周邊器件之通信期間該CPU將於更長之持續時間係不可用的。
一典型DMA傳送將一記憶體區塊自一器件複製至另一器件。CPU起始資料傳送,但是該CPU自身不執行該資料傳送。對於一工業標準架構(ISA)匯流排,由一DMA控制器執行資料傳送,該DMA控制器通常被合併為電腦主機板晶片組之部分。一周邊元件互連(PCI)匯流排使用一管理DMA之匯流排,其中該周邊器件控制該匯流排且自身執行該傳送。
一嵌入式處理器可於晶片內包含一DMA引擎/控制器以容許處理元件發送一資料傳送,同時在該資料傳送期間繼續執行其他任務。當該DMA控制器合併於一晶片內時,該DMA控制器通常稱作DMA引擎。多核心嵌入式處理器經常包含一或多個DMA引擎,該等引擎與本端DMA記憶體組合作為該多核心處理器晶片內之子系統。
本發明之一實施例可包括一種用於對經由一DMA控制器管理之一直接記憶體存取(DMA)通道傳送之資料執行複數個資料操縱作業的方法,該方法包括:於該DMA控制器內提供複數個資料操縱引擎,而使得每個資料操縱引擎執行各種資料操縱作業之至少一者;由該DMA控制器提取一控制資料區塊(CDB),該CDB含有用於自至少一資料源讀取該資料、對該資料執行該複數個資料操縱作業及將該資料寫入至至少一目的地的指令;由該DMA控制器根據編碼於該CDB中之該等指令自至少一資料源擷取該資料;在該DMA控制器內,根據編碼於該CDB中之該等指令,對於每個資料操縱作業使用提供於該DMA控制器上之該複數個資料操縱引擎之一者,來對該DMA控制器接收之該資料執行該複數個資料操縱作業之每個資料操縱作業,使得由該DMA控制器並行執行該複數個資料操縱作業之至少兩者;及由該DMA控制器根據編碼於該CDB中之該等指令將該複數個資料操縱作業之結果發送至至少一目的地。
本發明之一實施例可進一步包括一種直接記憶體存取(DMA)控制器,其對正經由該DMA控制器管理之一直接記憶體存取(DMA)通道傳送之資料執行複數個資料操縱作業,該直接記憶體存取(DMA)控制器包括:一控制資料區塊(CDB)處理器子系統,其提取一控制資料區塊(CDB),該CDB含有用於自至少一資料源讀取該資料、對該資料執行該複數個資料操縱作業、及將該資料寫入至至少一目的地的指令;一填充子系統,其根據編碼於該CDB中之該等指令自至少一資料源擷取該資料;於該DMA控制器內之複數個資料操縱引擎,每個引擎根據編碼於該CDB中之指令對由填充子系統接收之該資料執行該複數個資料操縱作業之每個資料操縱作業之各種資料操縱作業之至少一者,使得由該DMA控制器並行執行該複數個資料操縱作業之至少兩者;及一排空(drain)子系統,其根據編碼於該CDB中之該等指令將該複數個資料操縱作業之結果發送至至少一目的地。
本發明之一實施例可進一步包括一種直接記憶體存取(DMA)控制器,其對正經由該DMA控制器管理之一直接記憶體存取(DMA)通道傳送之資料執行複數個資料操縱作業,該直接記憶體存取(DMA)控制器包括:用於在該DMA控制器內提供複數個資料操縱引擎的構件,每個資料操縱引擎執行各種資料操縱作業之至少一者;用於由該DMA控制器提取一控制資料區塊(CDB)的構件,該CDB含有用於自至少一資料源讀取該資料、對該資料執行該複數個資料操縱作業及將該資料寫入至至少一目的地的指令;用於由該DMA控制器根據編碼於該CDB中之該等指令自至少一資料源擷取該資料的構件;用於在該DMA控制器內、根據編碼於該CDB中之該等指令、對於每個資料操縱作業使用提供於該DMA控制器上之該複數個資料操縱引擎之一者、來對該DMA控制器接收之該資料執行該複數個資料操縱作業之每個資料操縱作業、使得由該DMA控制器並行執行該複數個資料操縱作業之至少兩者的構件;及用於由該DMA控制器根據編碼於該CDB中之該等指令將該複數個資料操縱作業之結果發送至至少一目的地的構件。
隨著現代電腦系統變得更複雜,期望對在一電腦系統內傳送及傳送至連接至該電腦系統之周邊器件之資料執行額外資料操縱作業。例如,可期望獨立冗餘磁碟陣列(RAID)單晶片(ROC)系統對傳送之資料執行許多資料操縱作業,該等資料操縱作業作為該等ROC系統作業之部分。一ROC系統通常包含一直接記憶體存取(DMA)引擎/控制器作為該ROC架構內之一子系統。一些典型資料操縱作業包含:雜湊、雜湊訊息鑑認碼(HMAC)、雜湊/HMAC組合、填充型樣、線性回饋移位暫存器(LFSR)、端至端資料保護(EEDP)檢查/添加/更新/移除、互斥或(XOR)、加密及解密。一實施例之DMA引擎/控制器可合併對該DMA引擎/控制器內傳送之資料執行各種資料操縱作業,以減少一電腦系統內之其他系統/子系統之處理需求。此外,一實施例之DMA引擎/控制器可對傳送之資料並行執行複數個資料操縱,使得比以串列方式一次一個地執行該複數個資料操縱作業更快速地執行該複數個資料操縱。因此,一實施例在儘可能少中斷的情況下容許資料自由地自來源移動至目的地。對由一實施例之DMA引擎/控制器傳送之資料執行之資料操縱作業亦可將資料/經修改資料儲存及擷取至在該DMA引擎/控制器本端之記憶體(即,本端記憶體)中,避免存取在該DMA引擎/控制器外部之記憶體(即,外部記憶體)所引起之不必要耗用。
舉例而言,一實施例之DMA引擎/控制器可使用該DMA引擎/控制器上之一加密引擎來加密資料且將資料儲存於定位於本端DMA記憶體中之一第一資料緩衝器中。當經加密之資料正放入於該第一資料緩衝器中時,該DMA引擎/控制器上之一XOR引擎可對該經加密資料並行執行一XOR作業,且在對該經加密資料至該第一資料緩衝器之資料流沒有任何中斷的情況下,將該XOR資料儲存於定位於本端DMA記憶體中之一第二資料緩衝器中。藉由在產生經加密資料時對該經加密資料執行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為一DMA控制器系統106之一實施例之一方塊圖100,該DMA控制器系統具有根據一控制資料區塊(CDB)120管理的複數個資料修改引擎110-112。在圖1中所示之實施例中,由DMA控制器/引擎106在該DMA控制器106之一CDB處理器122子系統處提取及接收一CDB 120。該CDB處理器子系統122於該DMA控制器106上作業且實施作為該DMA控制器106之部分。該CDB含有用於一資料傳送之指令,該等指令包含所傳送/修改之該資料之資料源102-104、對於所傳送之該資料所需之資料操縱作業、及所傳送/修改之該資料之資料目的地116-118。該CDB處理器122讀取編碼於該CDB 120中之指令且指示該DMA控制器106根據編碼於該CDB 120中之該等指令建立且實施一資料傳送。基於該CDB,該DMA控制器106可準備且發送讀取命令至該(等)資料源102-104,以引起該(等)資料源102-104發送所需資料至該DMA控制器106。來自該(等)資料源102-104之資料由該DMA控制器106接收且儲存於在該DMA控制器106本端之源資料儲存器108中。基於該CDB 120,該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使用之一中間結果。該等資料修改引擎110-112之組態及來自該等資料修改引擎110-112之結果經傳送且根據編碼於該CDB 120中之指令而實施。
對於一實施例,該(等)資料源102-104可為與典型DMA控制器/引擎106相容之任何資料源102-104。一實施例可自一單一資料源102或自複數個源102-104蒐集/讀取資料。例如,來自一單一記憶體區域之源資料可自外部記憶體(即,在該DMA控制器106外部之記憶體)讀取且傳送至各種資料目的地116-118。同樣,來自一多記憶體區域之源資料可自外部讀取且在一資料傳送作業中傳送至各種資料目的地116-118。
資料修改引擎可經創建以對經由一DMA控制器/引擎106傳送之資料執行所需之任何資料修改。舉例而言,一些資料修改引擎可包含但不限於:雜湊、HMAC、組合雜湊/HMAC、填充型樣、線性回饋移位暫存器(LFSR)、端至端資料保護(EEDP)檢查/添加/更新/移除、互斥或(XOR)、加密及解密。支援之雜湊演算法之一些類型包含可由一雜湊引擎個別或並行執行之標準安全雜湊演算法(SHA)-224、SHA-256、SHA-384及SHA-512演算法。一資料操縱引擎110-112之輸入資料可經指定以來自另一資料操縱引擎110-112作為一中間資料結果,以便允許多個資料操縱組合為一單一結果。若需要,該中間結果亦可被發送至編碼於該CDB 120中之該等目的地位置116-118之一者。然而,該中間資料結果並不一定需要發送至一資料目的地116-118。當工作於來自另一資料操縱引擎之資料上時,該第二資料操縱引擎可與該第一資料操縱引擎並行作業,但該第二資料操縱可略微在該第一資料操縱引擎之後開始,以便容許該第一資料操縱引擎在開始該第二資料操縱引擎計算之前開始串流化中間結果資料。對於各種實施例,當不同資料操縱引擎110-112平行地同時對同一資料(中間結果及/或原始接收資料)執行作業時,亦可發生資料操縱引擎110-112之並行作業。此外,各種實施例可將該原始資料及該等經修改結果都傳送至該等資料目的地116-118。
各種實施例可實施該DAM控制器106內之本端源資料儲存器108及本端修改資料儲存器114作為一或多個本端電子記憶體電路。即使電腦可讀(即,電子)記憶體可包含於需要記憶體儲存器但一般不會視為電腦的電子器件中,電子記憶體亦可稱為電腦可讀記憶體。該電子記憶體之一典型實施將為提供一組電子隨機存取記憶體(RAM),該組電子隨機存取記憶體可由該DMA控制器106分成源資料儲存器108及修改資料儲存器114。該電子記憶體可在該源資料儲存器108及該修改資料儲存器114之固定分割區中,但是該DMA控制器亦可按該源資料儲存器及該修改資料儲存器114所需來動態分配該電子記憶體RAM,使得更有效地利用整個電子記憶體。此外,該修改資料儲存器114可被細分成多個分段,以便儲存來自多個資料修改引擎110-112之資料。
一實施例之資料目的地116-118可為與典型DMA控制器/引擎106相容之任何資料目的地116-118。各種實施例可將資料及/或經修改資料結果寫入至多個資料目的地116-118或至一單一資料目的地116。單獨資料結果可被發送至可用資料目的地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且將發現之任何錯誤208報告至該DMA控制器。由該第一EEDP檢查引擎206發現之該等錯誤可由該DMA控制器系統記錄,及/或若啟用中斷功能,則可產生一中斷。該第二EEDP引擎210實際上組合兩個EEDP功能以為該傳送資料串流產生一更新之DPI或將該DPI添加至該傳送資料串流。來自該第二EEDP添加/更新引擎210之該經更新DPI係與來自該(等)資料源202之原始資料流組合212且發送至所需目的地214。可經由一多工器以一可識別方式在該資料串流中插入封包、或以資料目的地所期望之其它方式而執行該組合程序212。各種實施例可根據該CDB所界定之一區塊大小插入該DPI於該傳送資料串流中之一區塊邊界處。當發送至該(等)目的地214之該資料已達到一資料串流之資料位元組計數時,插入該DPI。可移動一給定CDB之多個資料區塊,使得對於一單一資料串流多次插入該DPI至該傳送資料串流中。
圖3為一DMA控制器系統之一實施例之一方塊圖300,該DMA控制器系統加密資料且執行一端至端資料保護(EEDP)檢查。當接收來自資料源302之資料時,該資料被儲存於該DMA控制器之源資料儲存器304中。EEDP引擎306及加密引擎310並行地對自該(等)資料源302接收之資料執行作業。該EEDP引擎306為一檢查EEDP引擎,其檢查嵌入於該所接收資料中之DPI以驗證該DPI且將發現之任何錯誤308報告至該DMA控制器。由該EEDP檢查引擎306發現之該等錯誤可由該DMA控制器系統記錄,及/或若啟用中斷功能,則可產生一中斷。該加密引擎310加密發送至資料目的地314之資料且將結果儲存於本端修改資料儲存器312中。該經加密資料自該修改資料儲存器312傳送至該(等)資料目的地314。於與圖3中所示之實施例300類似的實施例中亦可使用其他資料修改引擎。舉例而言,一實施例可利用一雜湊或一雜湊/HMAC組合之引擎替代圖3中所示之該加密引擎310。類似地,各種實施例亦可利用不同資料修改引擎替代圖4至圖7中所示之實施例之資料修改引擎。此外,圖2至圖7中所示之實施例僅代表可實施於該DMA控制器上之大量資料操縱引擎組態之一子集。傳送至該DMA控制器之每個CDB界定組態於該DMA控制器上之資料操縱引擎之組態,使得該DMA控制器可重組態為由該DMA控制器接收之每個CDB之該大量資料操縱引擎組態之任何一者。對於替代該加密引擎310而使用之一些資料操縱引擎,可能需要將該經修改資料之一些儲存於該本端修改資料儲存器312中,使得該資料操縱引擎(例如,一XOR引擎)可存取已計算之資料。
圖4為一DMA控制器系統之一實施例之一方塊圖400,該DMA控制器系統加密資料且具有一端至端資料保護(EEDP)檢查及更新循環。當接收來自資料源402之資料時,該資料被儲存於該DMA控制器之源資料儲存器404中。第一EEDP引擎406、加密引擎410及第二EEDP引擎414並行地執行作業。該第一EEDP引擎406為一檢查EEDP引擎,其檢查嵌入於該所接收資料中之DPI以驗證該DPI且將發現之任何錯誤408報告至該DMA控制器。由該第一EEDP檢查引擎406發現之該等錯誤可由該DMA控制器系統記錄,及/或若啟用中斷功能,則可產生一中斷。該加密EEDP引擎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為一DMA控制器系統之一實施例之一方塊圖500,該DMA控制器系統加密資料、對該資料執行互斥或(XOR)及執行一端至端資料保護(EEDP)檢查。當接收來自資料源502之資料時,該資料被儲存於該DMA控制器之源資料儲存器504中。EEDP引擎506、加密引擎510及第一514互斥或(XOR)引擎與第二5互斥或(XOR)引擎18並行地執行作業。該EEDP引擎506為一檢查EEDP引擎,其檢查嵌入於該所接收資料中之DPI以驗證該DPI且將發現之任何錯誤508報告至該DMA控制器。由該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且傳送至該(等)資料目的地522。可經由一多工器以一可識別方式在該資料串流中插入封包、或以該(等)資料目的地524所期望之其它方式而執行該組合程序522。
對於圖5中所示之實施例500,可一次一個固定資料部分地自每個資料源502擷取一固定資料部分(例如,1kb之資料)。接著透過該加密引擎510發送每個固定資料部分,且該經加密之結果被發送至該(等)經指定之資料目的地524。當該經加密資料自該加密引擎510發送至該經加密資料之該(等)資料目的地524時,執行XOR處理。一旦已自每個資料源502擷取一固定資料部分(例如,自每個資料源502擷取之1kb資料)且該經加密資料已被發送至該加密引擎510之該(等)經指定之資料目的地524,來自該第一XOR引擎514之結果被發送至該第一XOR引擎514之該(等)經指定之資料目的地524。在該等第一XOR引擎514結果已被發送至該第一XOR引擎514之該(等)經指定之資料目的地524之後,該等第二XOR引擎518結果被發送至該第二XOR引擎518之該(等)經指定之資料目的地524。重複來自每個資料源502之固定量資料之處理,直到已擷取最後固定量(或更少)之資料。
圖6為一DMA控制器系統之一實施例之一方塊圖600,該DMA控制器系統加密資料、對該資料執行互斥或(XOR)及具有一端至端資料保護(EEDP)檢查及更新循環。當接收來自資料源602之資料時,該資料被儲存於該DMA控制器之源資料儲存器604中。第一EEDP引擎606、加密引擎610、第一互斥或(XOR)引擎614、第二互斥或(XOR)引擎618及第二EEDP引擎624並行地執行作業。該第一EEDP引擎606為一檢查EEDP引擎,其檢查嵌入於該所接收資料中之DPI以驗證該DPI且將發現之任何錯誤608報告至該DMA控制器。由該第一EEDP檢查引擎606發現之該等錯誤可由該DMA控制器系統記錄,及/或若啟用中斷功能,則可產生一中斷。該加密引擎610加密被發送至資料目的地628之資料,且將結果儲存於本端修改資料儲存器#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引擎624實際上組合兩個EEDP功能以為該等經加密及XOR之資料串流產生一更新之DPI或將該DPI添加至該當前傳送之資料串流。來自該第二EEDP添加/更新引擎624之該經更新DPI係與來自該第一修改資料儲存器612之經加密資料串流、來自該第二修改資料儲存器616之該第一XOR資料及來自該第三修改資料儲存器620之該第二XOR資料組合626且接著被發送至該(等)所需目的地628。可經由一多工器以一可識別方式在該資料串流中插入封包、或以該資料目的地所期望之其它方式而執行該組合程序626。
在圖6中所示之該實施例之資料修改引擎之一多源移動之一實例作業中,該DMA引擎/控制器自一來源擷取資料且透過該加密引擎610而發送該資料。同時,同一資料亦可被發送至該第一EEDP檢查引擎606以驗證該DPI資料為正確的。在已加密該資料串流之每16個位元組之後,該經加密資料在除了被發送至該資料目的地628之外的同時被發送至三個不同資料修改引擎614、618、624。該經加密之資料被發送至該第一XOR引擎614、該第二XOR引擎618及該第二EEDP添加/更新引擎624。該XOR資料被儲存於相關聯之記憶體緩衝器616及620中,使得當擷取來自不同源602之資料時可累積XOR結果。當該資料被發送至該第二EEDP添加/更新引擎624時,該第二EEDP添加/更新引擎624創建所需之新DPI。當達到一區塊邊界(例如,在16個位元組之後)時,該經產生之DPI被放置於將發送至該目的地628之資料串流中。以上描述之處理繼續,直到擷取、加密且一起XOR來自所有所需源602之資料。因此,在該DMA引擎/控制器上五個不同資料修改引擎同時並行地作業。各種實施例可根據該CDB界定之一區塊大小插入該DPI於該傳送資料串流中之一區塊邊界處。當發送至該(等)目的地628之該資料已達到一資料串流之資料位元組計數時,插入該DPI。可移動一給定CDB之多個資料區塊,使得對於一單一資料串流多次插入該DPI至該傳送資料串流中。
實施圖6中所示之組態600的一實施例可一次一個固定資料部分地自每個資料源602擷取一固定資料部分(例如,1kb之資料)。接著透過該加密引擎610發送每個固定資料部分,且該經加密結果被發送至該第二EEDP引擎624且接著至該經加密資料之該(等)經指定資料目的地。當該經加密資料自該加密引擎610發送至該第二EEDP引擎624且直至該加密引擎610之該(等)資料目的地628時,執行XOR處理。一旦已自每個資料源602擷取一固定資料部分(例如,自每個資料源602擷取之1kb資料)且該經加密資料已透過該第二EEDP引擎624而被發送至該加密引擎610之該(等)經指定之資料目的地628,來自該第一XOR引擎614之結果被發送至該第二EEDP引擎624且直至該第一XOR引擎614之該(等)經指定之資料目的地628。在該等第一XOR引擎614結果已被發送至該第一XOR引擎614之該(等)經指定之資料目的地628之後,該等第二XOR引擎618結果被發送至該第二EEDP引擎624且直至該第二XOR引擎618之該(等)經指定之資料目的地628。重複來自每個資料源602之固定量資料之處理,直到已擷取最後固定量(或更少)之資料。用於將資料串流化至該第二EEDP引擎624所選定之本端修改資料儲存器612、616、620匹配當前被傳送至該(等)經指定之目的地628之資料串流(加密引擎610結果、第一XOR引擎結果614或第二XOR引擎結果618)。
圖7為一DMA控制器系統之一實施例之一方塊圖700,該DMA控制器系統對資料執行互斥或(XOR)且具有一端至端資料保護(EEDP)檢查及更新循環。當接收來自資料源702之資料時,該資料被儲存於該DMA控制器之源資料儲存器704中。第一EEDP引擎706、第一XOR引擎710、第二XOR引擎714及第二EEDP引擎720並行地執行作業。該第一EEDP引擎706為一檢查EEDP引擎,其檢查嵌入於該所接收資料中之DPI以驗證該DPI且將發現之任何錯誤708報告至該DMA控制器。由該第一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功能以為該等XOR資料串流產生一更新之DPI或將該DPI添加至當前傳送之資料串流。來自該第二EEDP添加/更新引擎720之該經更新DPI係與來自該第一修改資料儲存器712之該第一XOR資料及來自該第二修改資料儲存器716之該第二XOR資料組合722且接著發送至該(等)所需目的地724。可經由一多工器以一可識別方式在該資料串流中插入封包、或以該資料目的地所期望之其它方式而執行組合程序722。各種實施例可根據該CDB所界定之一區塊大小插入該DPI於該傳送資料串流中之一區塊邊界處。當發送至該(等)目的地724之該資料已達到一資料串流之資料位元組計數時,插入該DPI。可移動一給定CDB之多個資料區塊,使得對於一單一資料串流多次插入該DPI至該傳送資料串流中。
對於圖7中所示之實施例700,可一次一個固定資料部分地自每個資料源702擷取一固定資料部分(例如,1kb之資料)。每個固定資料部分接著被同時發送至該第一XOR引擎710與該第二XOR引擎714。當自該(等)資料源702擷取資料時,每個XOR引擎710、714對當前經擷取之資料及在XOR引擎710、714之各自本端修改資料儲存器712、716中之資料執行互斥或作業。一旦已自每個資料源702擷取一固定資料部分(例如,自每個資料源702擷取之1kb資料),來自該第一XOR引擎710之結果被發送至該第二EEDP引擎720且直至該第一XOR引擎710之該(等)經指定之資料目的地724。在該等第一XOR引擎710結果已被發送至該第一XOR引擎710之該(等)經指定之資料目的地724之後,該等第二XOR引擎714結果被發送至該第二EEDP引擎720且直至該第二XOR引擎714之該(等)經指定之資料目的地724。重複來自每個資料源702之固定量資料之處理,直到已擷取最後固定量(或更少)之資料。用於將資料串流化至該第二EEDP引擎720所選定之本端修改資料儲存器712、716匹配當前被傳送至該(等)經指定之目的地724之資料串流(第一XOR引擎結果710或第二XOR引擎結果714)。
圖8為一獨立冗餘磁碟陣列(RAID)單晶片(ROC)系統802之一實施例之一方塊圖800,該系統包含一DMA引擎/控制器812。圖8中所示之該ROC 802實施例提供在一多功能晶片上包含一DMA引擎/控制器812之一實施例。在圖8中所示之該實例ROC 802實施例中,該ROC 802包括若干子系統,該等子系統包含:一串列附接小型電腦系統介面(SCSI)(SAS)核心810、一DMA引擎/控制器812、一記憶體佇列及記憶體控制器813、一時鐘組態/重設子系統(CCR)814、一周邊組件互連(PCI)-Express(PCE)核心818、一輸入/輸出(I/O)子系統820、一處理器本端匯流排(PLB)靜態RAM(SRAM)822及一周邊匯流排存取模組(PBAM)824。該ROC 802之各種子系統透過該處理器本端匯流排(PLB)816及/或經由直接連接830-836而彼此通信。該DMA引擎/控制器812具有與該記憶體佇列及記憶體控制器813之一直接連接836,以控制至外部連接之雙資料速率(DDR)RAM記憶體806之直接記憶體存取通道808。該記憶體佇列及記憶體控制器813可與該DMA引擎/控制器812合併以形成該ROC 802之一單一邏輯元件,但是其等係分開繪示以清晰繪示該DMA引擎/控制器812之位置。該SAS核心810透過允許SAS協定通信804之傳輸的一通信路徑而提供往返於SAS器件之外部通信。同樣,該PCE核心818透過允許PCI-Express協定通信826之傳輸的一通信路徑而提供往返於PCI-Express器件之外部通信。該PBAM透過允許串列資料(SD)828之傳輸的一通信路徑而提供往返於串列資料(SD)周邊器件之外部通信。該CCR 814、I/O處理器子系統820及PLB SRAM 822提供用於互連各種外部通信子系統(810、812-813、818及824)之支援功能。
在圖8中所示之ROC 802實施例中,該DMA引擎/控制器812透過至該記憶體佇列及記憶體控制器813之直接連接836而存取外部DDR RAM記憶體806。此外,該DMA引擎/控制器812具有透過該PLB 816至該ROC 802上之其他系統(810、814、818、820、822、824)之連接。該DMA引擎/控制器812係透過該PLB 816而連接至該ROC 802實施例之剩餘子系統。為了增強通信速度,尤其對於大資料移動,除了合併該PLB 816連接以外,亦可合併介於該ROC 802實施例之子系統之間之一些直接通信連接(830-836)。例如,在圖8中所示之實施例中,在該PCE核心818與該SAS核心810之間有一直接通信連接830。在圖8中所示之實施例中,在該DMA引擎/控制器812與該PCE核心818之間亦有一直接通信連接832以及在該記憶體佇列及記憶體控制器813與該SAS核心810之間有一直接通信連接834。透過該SAS核心810、該PCE核心818及該PBAM 824,該DMA引擎/控制器812可與SAS器件804、PCI-Express器件826及串列連接之周邊器件828通信。一ROC 802或其他具備DMA能力之器件/系統之各種實施例可由一系統設計者按需要合併更少或更多外部資料通信連接。
圖9為一DMA控制器之一實施例之CDB處理之一實施例之一方塊圖900。CDB提取引擎904可提取一CDB 902且將該CDB儲存於預提取本端RAM 906中。CDB提取引擎906分析嵌入於該CDB 902中之指令且指示CDB處理器908執行必要動作以實施編碼於該CDB 902中之該等指令。該CDB處理器908亦可與記憶體管理器910互動,以決定在該DMA控制器本端RAM 912中有多少可用空間。該CDB處理器908亦可與該DMA控制器本端RAM 912互動,以按所需儲存資料及經修改之資料以傳送資料及執行所需之複數個資料操縱。該CDB處理器908可自該DMA控制器上可用之資料修改引擎916-932選擇適當資料修改引擎914。對於圖9中所示之實施例,該等可用資料修改引擎包含:一雜湊/HMAC引擎916、一填充型樣引擎918、一LFSR引擎920、一EEDP產生引擎922、一EEDP檢查引擎924、一XOR引擎#1(926)、一XOR引擎#2(928)、一解密引擎930及一加密引擎932。對於各種實施例,該雜湊/HMAC引擎916可一起或單獨為一雜湊、HMAC或組合雜湊/HMAC引擎。該填充型樣引擎918可用於利用一固定資料型樣填充修改儲存器。因此,因為寫入之型樣係一固定資料型樣,所以該填充型樣引擎918不需要自一資料源讀取資料。該LFSR引擎920亦可不需要自一資料源讀取資料以執行該LFSR引擎920之作業。類似地,一些資料操縱引擎不寫入資料至一目的地,而是僅對自一來源(諸如,該EEDP檢查引擎924)接收之資料執行檢查。因此,對於某些資料操縱引擎(例如,該填充型樣引擎918及/或該LFSR引擎920),根據該CDB自資料源讀取可不需要自一資料源讀取任何實際資料。同樣,對於某些資料操縱引擎(例如,該EEDP檢查引擎924),根據該CDB寫入資料至資料目的地可不需要實際資料被寫入至一資料目的地。該CDB處理器908處置將該資料寫入至資料目的地,及追蹤一CDB之資料操縱引擎之效能。一旦該CDB處理器908完成一給定CDB 902之所有資料移動,CDB完成引擎934將CDB完成結果寫入至完成佇列936。該完成佇列936可定位於在該DMA控制器/引擎外部之記憶體中。
圖10為一CDB處理器實施例之CDB處理之有限狀態機(FSM)作業之一方塊圖1000。若干CDB提取引擎有限狀態機(FSM)1002分析嵌入於一CDB中之指令,且可與四個有限狀態機(1006-1012)互動以執行必要動作來執行嵌入於由該DMA控制器接收之一CDB中之指令。該填充FSM 1006自CDB提取引擎FSM 1002接收指令,且控制用於自資料源擷取資料之讀取命令1004之創建及發送。該修改FSM 1008根據嵌入於該CDB中之指令使用DMA控制器資料修改引擎1018來控制資料操縱作業之效能。排空命令(CMD)FSM 1010創建寫入命令,該等寫入命令將指示系統自該等資料修改引擎1018發送該資料及/或經修改資料至所需之資料目的地1016。該排空資料FSM 1012執行創建於該排空命令 FSM 1010中之寫入命令,以將該資料及/或經修改之資料寫入至該(等)所需資料目的地1016。在一些情形下,該排空資料FSM 1012亦可使用資料修改引擎1018來執行一些資料修改作業,諸如用於不需要在本端DMA控制器RAM中緩衝資料的一EEDP產生,以便執行資料操縱計算。當一第一CDB之資料操縱接近完成或已完成時,各種實施例亦可允許排空有限狀態機(FSM)1012處理寫入該第一CDB之資料,同時填充FSM 1006可開始擷取一第二(例如,下一個)CDB之資料之程序,以便增強總處理速度。
各種實施例可經由作業於一電腦系統、一場可程式化閘陣列(FPGA)、一特定應用積體電路(ASIC)、其他可程式化邏輯電路或其他電子器件上之一應用程式來提供本文中詳細描述控制及管理功能。實施例可提供為一電腦程式產品,該電腦程式產品可包含一電腦可讀媒體或機器可讀媒體,該媒體上儲存有可用於程式化/操作一電腦(或其他電子器件)或電腦系統以執行根據本發明之一程序或若干程序的指令。該電腦可讀媒體可包含但不限於硬碟機、軟碟、光碟、光碟唯讀記憶體(CD-ROM)、數位多功能碟ROM(DVD-ROM)、通用串列匯流排(USB)記憶體棒、磁光碟、ROM、隨機存取記憶體(RAM)、可擦除可程式化ROM(EPROM)、電可擦除可程式化ROM(EEPROM)、磁光卡、快閃記憶體或適合於儲存電子指令之其他類型媒體/機器可讀媒體。該等電腦程式指令可駐留及作業於一單一電腦/電子器件/電子電路上,或各種部分可散佈於包括一電腦系統之多個電腦/器件/電子電路上。此外,實施例亦可下載為一電腦程式產品,其中該程式可以體現於一載波或其他傳播媒體中之資料信號方式而經由一通信鏈結(例如,一數據機或網路連接,包含有線及無線連接兩者)自一遠端電腦傳送至一請求電腦。
為了說明及描述目的,已經提出本發明之上述描述。這並不意味其為詳盡的或限制本發明於所揭示之確切形式,且鑒於以上教案,其他修飾及變動是可能的。該實施例經選擇且描述以便最佳解釋本發明之原理及其實際應用,從而使其他熟習此項技術者能夠在適合考慮之特定用途之各種實施例及各種修飾中最佳利用本發明。這意味著所附技術方案視為包含除了先前技術所限制以外之本發明之其他替代性實施例。
100...一直接記憶體存取(DMA)控制器系統之一實施例之方塊圖,該系統具有根據一控制資料區塊(CDB)管理之複數個資料修改引擎
102...資料源
104...資料源
106...DMA控制器/引擎
108...源資料儲存器
110...資料記憶體引擎
112...資料記憶體引擎
114...修改資料儲存器
116...資料目的地(外部器件及/或外部記憶體)
118...資料目的地
120...控制資料區塊
122...CDB處理器(選擇資料源、資料目的地及資料修改引擎)
200...具有一端至端資料保護(EEDP)檢查及更新循環之一DMA控制器系統之一實施例之方塊圖
202...來自源之資料
204...源資料儲存器
206...EEDP引擎(檢查)
208...於DMA控制器處發現之EEDP檢查錯誤
210...EEDP引擎(添加、更新)
212...組合
214...至目的地之資料
300...一DMA控制器系統之一實施例之方塊圖,該系統加密且執行一EEDP檢查
302...來自源之資料
304...源資料儲存器
306...EEDP引擎(檢查)
308...於DMA控制器處發現之EEDP檢查錯誤
310...加密引擎
312...修改資料儲存器
314...至目的地之資料
400...一DMA控制器系統之一實施例之方塊圖,該系統加密且執行一EEDP檢查及更新循環
402...來自源之資料
404...源資料儲存器
406...EEDP引擎(檢查)
408...於DMA控制器處發現之EEDP檢查錯誤
410...加密引擎
412...修改資料儲存器
414...EEDP引擎(添加、更新)
416...組合
418...至目的地之資料
500...一DMA控制器系統之一實施例之方塊圖,該系統加密、互斥或且執行一EEDP檢查
502...來自源之資料
504...源資料儲存器
506...EEDP引擎(檢查)
508...於DMA控制器處發現之EEDP檢查錯誤
510...加密引擎
512...修改資料儲存器
514...互斥或引擎
516...修改資料儲存器
518...互斥或引擎
520...修改資料儲存器
522...組合
524...至目的地之資料
600...一DMA控制器系統之一實施例之方塊圖,該系統加密、互斥或且執行一EEDP檢查及更新循環
602...來自源之資料
604...源資料儲存器
606...EEDP引擎(檢查)
608...於DMA控制器處發現之EEDP檢查錯誤
610...加密引擎
612...修改資料儲存器
614...互斥或引擎
616...修改資料儲存器
618...互斥或引擎
620...修改資料儲存器
626...組合
628...至目的地之資料
700...一DMA控制器系統之一實施例之方塊圖,該系統互斥或且執行一EEDP檢查及更新循環
702...來自源之資料
704...源資料儲存器
706...EEDP引擎(檢查)
708...於DMA控制器處發現之EEDP檢查錯誤
710...互斥或引擎
712...修改資料儲存器
714...互斥或引擎
716...修改資料儲存器
718...組合
720...EEDP引擎(添加、更新)
722...組合
724...至目的地之資料
800...一獨立冗餘磁碟陣列(RAID)單晶片(ROC)系統之一實施例之方塊圖,該系統包含一DMA控制器
802...RAID單晶片(ROC)系統
804...至串列附接小型電腦系統介面(SCSI)(SAS)器件之SAS協定
806...雙資料速率(DDR)隨機存取記憶體(RAM)
808...外部直接記憶體存取(DMA)通道
810...SAS核心
812...DMA引擎/控制器
813...記憶體佇列及記憶體控制器
814...時鐘組態、重設
816...處理器本端匯流排
818...周邊組件互連(PCI)-Express(PCI-E)核心
820...輸入輸出處理器子系統
822...處理器本端匯流排(PLB)靜態隨機存取記憶體
824...周邊匯流排存取模組
826...至PCI-Express器件之PCI-Express協定
828...至周邊器件之串列資料
830...直接通信連接
832...直接通信連接
834...直接通信連接
836...直接通信連接
900...一DMA控制器之一實施例之控制資料區塊處理之方塊圖
902...控制資料區塊
904...CDB提取引擎
906...CDB預提取本端RAM
908...CDB處理器
910...記憶體管理器
912...DMA控制器本端RAM
914...資料修改引擎選擇
916...雜湊/HMAC引擎
918...填充型樣引擎
920...LFSR引擎
922...EEDP產生引擎
924...EEDP檢查引擎
926...互斥或引擎
928...互斥或引擎
930...解密引擎
932...加密引擎
934...CDB完成引擎
936...寫入至完成佇列之CDB完成結果
1000...一CDB處理器實施例之CDB處理之有限狀態機(FSM)作業之方塊圖
1002...控制資料區塊提取引擎有限狀態機
1004...讀取自資料源擷取資料的命令
1006...填充有限狀態機(控制讀取命令)
1008...修改有限狀態機(執行資料操縱)
1010...排空命令有限狀態機(創建發送資料之寫入命令)
1012...排空資料有限狀態機(執行寫入命令及添加操作)
1014...寫入命令
1016...寫入資料及經修改資料至目的地
1018...DMA控制器資料修改引擎
圖1為一直接記憶體存取(DMA)控制器系統之一實施例之一方塊圖,該DMA控制器系統具有根據一控制資料區塊(CDB)管理的複數個資料修改引擎;
圖2為具有一端至端資料保護(EEDP)檢查及更新循環之一DMA控制器系統之一實施例之一方塊圖;
圖3為一DMA控制器系統之一實施例之一方塊圖,該DMA控制器系統加密資料且執行一端至端資料保護(EEDP)檢查;
圖4為一DMA控制器系統之一實施例之一方塊圖,該DMA控制器系統加密資料且具有一端至端資料保護(EEDP)檢查及更新循環;
圖5為一DMA控制器系統之一實施例之一方塊圖,該DMA控制器系統加密資料、對該資料執行互斥或(XOR)及執行一端至端資料保護(EEDP)檢查;
圖6為一DMA控制器系統之一實施例之一方塊圖,該DMA控制器系統加密資料、對該資料執行互斥或(XOR)及具有一端至端資料保護(EEDP)檢查及更新循環;
圖7為一DMA控制器系統之一實施例之一方塊圖,該DMA控制器系統對該資料執行互斥或(XOR)且具有一端至端資料保護(EEDP)檢查及更新循環;
圖8為獨立冗餘磁碟陣列(RAID)單晶片(ROC)系統之一實施例之一方塊圖,該系統包含一DMA引擎/控制器;
圖9為一DMA控制器之一實施例之控制資料區塊(CDB)處理之一實施例之一方塊圖;及
圖10為一CDB處理器實施例之CDB處理之有限狀態機(FSM)作業之一方塊圖。
100...一直接記憶體存取(DMA)控制器系統之一實施例之方塊圖,該系統具有根據一控制資料區塊(CDB)管理之複數個資料修改引擎
102...資料源
104...資料源
106...DMA控制器/引擎
108...源資料儲存器
110...資料記憶體引擎
112...資料記憶體引擎
114...修改資料儲存器
116...資料目的地(外部器件及/或外部記憶體)
118...資料目的地
120...控制資料區塊
122...CDB處理器(選擇資料源、資料目的地及資料修改引擎)

Claims (17)

  1. 一種用於對經由一直接記憶體存取(DMA)控制器管理之一DMA通道傳送之原始資料執行複數個資料修改作業的方法,該方法包括:於該DMA控制器內提供複數個資料修改引擎,每個資料修改引擎執行各種資料修改作業之至少一者;由該DMA控制器提取一控制資料區塊(CDB),該CDB含有用於自至少一資料源讀取該原始資料、對該原始資料執行該複數個資料修改作業、及將包含該原始資料及由該等資料修改作業所修改之資料之資料寫入至至少一目的地的指令;由該DMA控制器根據編碼於該CDB中之該等指令自該至少一資料源擷取該原始資料;在該DMA控制器內,根據編碼於該CDB中之該等指令,對於每個資料修改作業使用提供於該DMA控制器上之該複數個資料修改引擎之一者,來對該DMA控制器接收之該原始資料執行該複數個資料修改作業之每個資料修改作業,使得由該DMA控制器並行執行該複數個資料修改作業之至少兩者,以及該複數個資料修改引擎之一第一資料修改引擎創建第一資料結果,使用該第一資料結果作為該複數個資料修改引擎之一第二資料修改引擎執行該複數個資料修改作業之至少一資料修改作業之計算基礎;及由該DMA控制器根據編碼於該CDB中之該等指令將該 複數個資料修改作業之結果發送至該至少一目的地。
  2. 如請求項1之方法,其中自該至少一資料源擷取該原始資料進一步包括:在該DMA控制器內根據編碼於該CDB中之該等指令創建讀取命令以自該至少一資料源讀取該原始資料;將該等讀取命令自該DMA控制器發送至該至少一資料源;及根據該等讀取命令在該DMA控制器處接收來自該至少一資料源之由該至少一資料源發送之該原始資料。
  3. 如請求項1之方法,其中將該複數個資料修改作業之結果發送至該至少一目的地進一步包括:在該DMA控制器內根據編碼於該CDB中之該等指令創建寫入命令,以將該複數個資料修改作業之結果寫入至該至少一目的地;及由該DMA控制器根據該等寫入命令將該複數個資料結果作業之結果發送至該至少一目的地。
  4. 如請求項1之方法,其進一步包括將由該DMA控制器擷取之該原始資料儲存於一電子記憶體中,該電子記憶體包含於該DMA控制器中。
  5. 如請求項1之方法,其進一步包括將該複數個資料修改作業之結果儲存於一電子記憶體中,該電子記憶體包含於該DMA控制器中。
  6. 如請求項1之方法,其中該複數個資料修改引擎之各者執行一群組之資料修改作業之至少一資料修改作業,該 等資料修改作業包括:雜湊、雜湊訊息鑑認碼HMAC、雜湊/HMAC組合、填充型樣、線性回饋移位暫存器LFSR、端至端資料保護EEDP檢查、EEDP添加、EEDP更新、EEDP移除、互斥或XOR、加密及解密。
  7. 如請求項1之方法,其中該複數個資料修改引擎包括至少兩個單一類型之資料修改作業,使得該單一類型資料修改作業可並行執行於該DMA控制器上。
  8. 如請求項1之方法,其中將該複數個資料修改作業之結果發送至該至少一目的地進一步將該DMA控制器所擷取之該原始資料發送至該至少一資料目的地。
  9. 一種直接記憶體存取(DMA)控制器,其對正經由該DMA控制器管理之一直接記憶體存取DMA通道傳送之原始資料執行複數個資料修改作業,該直接記憶體存取DMA控制器包括:一控制資料區塊(CDB)處理器子系統,其提取一控制資料區塊CDB,該CDB含有用於自至少一資料源讀取該原始資料、對該原始資料執行該複數個資料修改作業、及將包含該原始資料及由該等資料修改作業所修改之資料之資料寫入至至少一目的地的指令;一填充子系統,其根據編碼於該CDB中之該等指令自該至少一資料源擷取該原始資料;於該DMA控制器內之複數個資料修改引擎,每個引擎根據編碼於該CDB中之該等指令對由該填充子系統接收之該原始資料執行該複數個資料修改作業之每個資料修 改作業之各種資料修改作業之至少一者,使得由該DMA控制器並行執行該複數個資料修改作業之至少兩者,以及該複數個資料修改引擎之一第一資料修改引擎創建第一資料結果,使用該第一資料結果作為該複數個資料修改引擎之一第二資料修改引擎執行該複數個資料修改作業之至少一資料修改作業之計算基礎;及一排空子系統,其根據編碼於該CDB中之該等指令將該複數個資料修改作業之結果發送至該至少一目的地。
  10. 如請求項9之DMA控制器,其中該填充子系統藉由根據編碼於該CDB中之該等指令創建讀取命令以自該至少一資料源讀取該原始資料、將該等讀取命令發送至該至少一資料源,且根據該等讀取命令接收來自該至少一資料源之由該至少一資料源發送之該原始資料而自該至少一資料源擷取該原始資料。
  11. 如請求項9之DMA控制器,其中該排空子系統藉由根據編碼於該CDB中之該等指令創建寫入命令,以將該複數個資料修改作業之結果寫入至該至少一目的地且根據該等寫入命令將該複數個資料修改作業之結果發送至該至少一目的地而將該複數個資料修改作業之結果發送至該至少一目的地。
  12. 如請求項9之DMA控制器,其進一步包括一源資料儲存器,其儲存由該填充子系統擷取之該原始資料,該源資料儲存器係一電子記憶體,該電子記憶體包含於該DMA控制器內。
  13. 如請求項9之DMA控制器,其進一步包括至少一修改資料儲存器,其儲存該複數個資料修改作業之結果,該至少一修改資料儲存器係一電子記憶體,該電子記憶體包含於該DMA控制器內。
  14. 如請求項9之DMA控制器,其中該複數個資料修改引擎之各者執行一群組之資料修改作業之至少一資料修改作業,該等資料修改作業包括:雜湊、雜湊訊息鑑認碼HMAC、雜湊/HMAC組合、填充型樣、線性回饋移位暫存器LFSR、端至端資料保護EEDP檢查、EEDP添加、EEDP更新、EEDP移除、互斥或XOR、加密及解密。
  15. 如請求項9之DMA控制器,其中該複數個資料修改引擎包括至少兩個單一類型之資料修改作業,使得該單一類型資料修改作業可並行執行於該DMA控制器上。
  16. 如請求項9之DMA控制器,其中該排空子系統進一步將由該DMA控制器擷取之該原始資料發送至該至少一資料目的地。
  17. 一種直接記憶體存取(DMA)控制器,其對正經由該DMA控制器管理之一直接記憶體存取DMA通道傳送之原始資料執行複數個資料修改作業,該直接記憶體存取DMA控制器包括:用於在該DMA控制器內提供複數個資料修改引擎的構件,每個資料修改引擎執行各種資料修改作業之至少一者;用於由該DMA控制器提取一控制資料區塊(CDB)的構 件,該CDB含有用於自至少一資料源讀取該原始資料、對該原始資料執行該複數個資料修改作業,及將包含該原始資料及由該等資料修改作業所修改之資料之資料寫入至至少一目的地的指令;用於由該DMA控制器根據編碼於該CDB中之該等指令自該至少一資料源擷取該原始資料的構件;用於執行資料修改作業之構件,以在該DMA控制器內,根據編碼於該CDB中之該等指令,對於每個資料修改作業使用提供於該DMA控制器上之該複數個資料修改引擎之一者,來對該DMA控制器所接收之該原始資料執行該複數個資料修改作業之每個資料修改作業,使得由該DMA控制器並行執行該複數個資料修改作業之至少兩者,以及該複數個資料修改引擎之一第一資料修改引擎創建第一資料結果,使用該第一資料結果作為該複數個資料修改引擎之一第二資料修改引擎執行該複數個資料修改作業之至少一資料修改作業之計算基礎;及用於由該DMA控制器根據編碼於該CDB中之該等指令將該複數個資料修改作業之結果發送至該至少一目的地的構件。
TW099112529A 2010-03-05 2010-04-21 可並行資料修改之方法及直接記憶體存取控制器 TWI516945B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/718,279 US8458377B2 (en) 2010-03-05 2010-03-05 DMA engine capable of concurrent data manipulation

Publications (2)

Publication Number Publication Date
TW201131372A TW201131372A (en) 2011-09-16
TWI516945B true TWI516945B (zh) 2016-01-11

Family

ID=44067291

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099112529A TWI516945B (zh) 2010-03-05 2010-04-21 可並行資料修改之方法及直接記憶體存取控制器

Country Status (6)

Country Link
US (1) US8458377B2 (zh)
EP (1) EP2365444B1 (zh)
JP (1) JP5437922B2 (zh)
KR (1) KR101340865B1 (zh)
CN (1) CN102193886B (zh)
TW (1) TWI516945B (zh)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
KR20110050665A (ko) * 2008-08-06 2011-05-16 아스펜 액퀴지션 코포레이션 정지가능하고 재시작가능한 dma 엔진
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
US8281218B1 (en) * 2009-11-02 2012-10-02 Western Digital Technologies, Inc. Data manipulation engine
US20130086315A1 (en) * 2011-10-04 2013-04-04 Moon J. Kim Direct memory access without main memory in a semiconductor storage device-based system
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US8892787B2 (en) * 2012-03-06 2014-11-18 Lsi Corporation Methods and apparatus for packing received frames in buffers in a serial attached SCSI (SAS) device
KR101975027B1 (ko) 2012-05-04 2019-05-03 삼성전자주식회사 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
US9235798B2 (en) 2012-07-18 2016-01-12 Micron Technology, Inc. Methods and systems for handling data received by a state machine engine
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US10489318B1 (en) 2013-03-15 2019-11-26 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
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
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
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
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
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
US10120694B2 (en) 2013-03-15 2018-11-06 Bitmicro Networks, Inc. Embedded system boot from a storage device
CN103207847B (zh) * 2013-04-27 2015-07-22 杭州士兰微电子股份有限公司 Dma控制器及直接内存存取控制方法
US9542238B2 (en) * 2013-05-23 2017-01-10 Nxp Usa, Inc. Systems and methods for direct memory access coherency among multiple processing cores
US10248587B2 (en) 2013-11-08 2019-04-02 Sandisk Technologies Llc Reduced host data command processing
WO2015067983A1 (en) * 2013-11-08 2015-05-14 Sandisk Il Ltd. Reduced host data command processing
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
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
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
US10310998B2 (en) 2015-06-30 2019-06-04 Microsoft Technology Licensing, Llc Direct memory access with filtering
US10073977B2 (en) * 2015-07-20 2018-09-11 Intel Corporation Technologies for integrity, anti-replay, and authenticity assurance for I/O data
US9984009B2 (en) * 2016-01-28 2018-05-29 Silicon Laboratories Inc. Dynamic containerized system memory protection for low-energy MCUs
CN107357745A (zh) * 2016-05-09 2017-11-17 飞思卡尔半导体公司 具有算术单元的dma控制器
JP6935190B2 (ja) * 2016-12-07 2021-09-15 いすゞ自動車株式会社 制御装置、及び、制御装置へのデータ書き込み方法
EP3343384A1 (en) * 2016-12-30 2018-07-04 Intel IP Corporation Data operations performed between computing nodes using direct memory access (dma)
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
US10175912B1 (en) 2017-07-05 2019-01-08 Google Llc Hardware double buffering using a special purpose computational unit
US10515036B2 (en) * 2017-10-25 2019-12-24 Microchip Technology Incorporated Bit manipulation capable direct memory access
US11403067B2 (en) * 2019-03-20 2022-08-02 Micron Technology, Inc. Memory array data structure for posit operations
US11379373B2 (en) 2019-08-13 2022-07-05 Micron Technology, Inc. Memory tiering using PCIe connected far memory
US11874897B2 (en) 2020-04-09 2024-01-16 Micron Technology, Inc. Integrated circuit device with deep learning accelerator and random access memory
US11887647B2 (en) 2020-04-09 2024-01-30 Micron Technology, Inc. Deep learning accelerator and random access memory with separate memory access connections
US11355175B2 (en) 2020-04-09 2022-06-07 Micron Technology, Inc. Deep learning accelerator and random access memory with a camera interface
US20210320967A1 (en) * 2020-04-09 2021-10-14 Micron Technology, Inc. Edge Server with Deep Learning Accelerator and Random Access Memory
KR20220067396A (ko) * 2020-11-17 2022-05-24 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
CN114648319A (zh) * 2020-12-18 2022-06-21 深圳比特微电子科技有限公司 执行哈希算法的电路、计算芯片、加密货币矿机和方法
CN112837565B (zh) * 2021-01-20 2022-11-11 山东师范大学 一种散点图的多标签教学演示系统及方法
CN113721838B (zh) * 2021-07-22 2023-12-19 成都忆芯科技有限公司 用于存储设备的写、读数据方法、存储控制器以及dma引擎
US11714767B1 (en) * 2021-12-30 2023-08-01 Lightbits Labs Ltd. DMA mechanism with inline data services
CN115658571B (zh) * 2022-11-16 2023-02-28 浪潮电子信息产业股份有限公司 一种数据传输方法、装置、电子设备及介质

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6318452A (ja) * 1986-07-10 1988-01-26 Nec Corp Dmaコントロ−ラ
US5390304A (en) * 1990-09-28 1995-02-14 Texas Instruments, Incorporated Method and apparatus for processing block instructions in a data processor
US5305446A (en) * 1990-09-28 1994-04-19 Texas Instruments Incorporated Processing devices with improved addressing capabilities, systems and methods
JPH05242009A (ja) * 1992-03-03 1993-09-21 Japan Radio Co Ltd 直接メモリアクセス装置
JP3181398B2 (ja) * 1992-10-06 2001-07-03 三菱電機株式会社 アレイ型記録装置
US5448702A (en) * 1993-03-02 1995-09-05 International Business Machines Corporation Adapters with descriptor queue management capability
JPH06318183A (ja) * 1993-05-06 1994-11-15 Sega Enterp Ltd Dmaコントローラ
US5652796A (en) * 1994-06-21 1997-07-29 Pitney Bowes Inc. Data encryption control system
US5982672A (en) * 1996-10-18 1999-11-09 Samsung Electronics Co., Ltd. Simultaneous data transfer through read and write buffers of a DMA controller
US6161165A (en) * 1996-11-14 2000-12-12 Emc Corporation High performance data path with XOR on the fly
US6151641A (en) * 1997-09-30 2000-11-21 Lsi Logic Corporation DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
US6341342B1 (en) * 1997-11-04 2002-01-22 Compaq Information Technologies Group, L.P. Method and apparatus for zeroing a transfer buffer memory as a background task
US7181548B2 (en) * 1998-10-30 2007-02-20 Lsi Logic Corporation Command queueing engine
US6330374B1 (en) 1998-11-13 2001-12-11 Ricoh Company, Ltd. Image manipulation for a digital copier which operates on a block basis
US6636922B1 (en) * 1999-03-17 2003-10-21 Adaptec, Inc. Methods and apparatus for implementing a host side advanced serial protocol
US6609167B1 (en) * 1999-03-17 2003-08-19 Adaptec, Inc. Host and device serial communication protocols and communication packet formats
US7089391B2 (en) 2000-04-14 2006-08-08 Quickshift, Inc. Managing a codec engine for memory compression/decompression operations using a data movement engine
US6898646B1 (en) * 2000-05-03 2005-05-24 Hewlett-Packard Development Company, L.P. Highly concurrent DMA controller with programmable DMA channels
US7003702B2 (en) * 2002-03-18 2006-02-21 Emc Corporation End-to-end checksumming for read operations
US7302503B2 (en) 2002-04-01 2007-11-27 Broadcom Corporation Memory access engine having multi-level command structure
US20060123152A1 (en) * 2002-07-23 2006-06-08 Koch Stefan M Inter-processor communication system for communication between processors
US6925519B2 (en) * 2002-07-25 2005-08-02 Lsi Logic Corporation Automatic translation from SCSI command protocol to ATA command protocol
US7934021B2 (en) * 2002-08-29 2011-04-26 Broadcom Corporation System and method for network interfacing
US7181578B1 (en) * 2002-09-12 2007-02-20 Copan Systems, Inc. Method and apparatus for efficient scalable storage management
US7219169B2 (en) 2002-09-30 2007-05-15 Sun Microsystems, Inc. Composite DMA disk controller for efficient hardware-assisted data transfer operations
JP4253224B2 (ja) * 2003-07-02 2009-04-08 株式会社日立製作所 アドレス管理方法および装置
US7421520B2 (en) * 2003-08-29 2008-09-02 Aristos Logic Corporation High-speed I/O controller having separate control and data paths
US7200691B2 (en) 2003-12-22 2007-04-03 National Instruments Corp. System and method for efficient DMA transfer and buffering of captured data events from a nondeterministic data bus
US7596639B2 (en) * 2004-09-01 2009-09-29 Lsi Corporation Skip mask table automated context generation
US7620746B2 (en) * 2005-09-29 2009-11-17 Apple Inc. Functional DMA performing operation on DMA data and writing result of operation
US7496695B2 (en) * 2005-09-29 2009-02-24 P.A. Semi, Inc. Unified DMA
US8151014B2 (en) * 2005-10-03 2012-04-03 Hewlett-Packard Development Company, L.P. RAID performance using command descriptor block pointer forwarding technique
US7716389B1 (en) 2006-03-17 2010-05-11 Bitmicro Networks, Inc. Direct memory access controller with encryption and decryption for non-blocking high bandwidth I/O transactions
US7715428B2 (en) 2007-01-31 2010-05-11 International Business Machines Corporation Multicore communication processing
US8516163B2 (en) * 2007-02-27 2013-08-20 Integrated Device Technology, Inc. Hardware-based concurrent direct memory access (DMA) engines on serial rapid input/output SRIO interface
US7984448B2 (en) 2007-06-26 2011-07-19 International Business Machines Corporation Mechanism to support generic collective communication across a variety of programming models
JP2009053948A (ja) * 2007-08-27 2009-03-12 Toshiba Corp 半導体集積回路装置及びこれを用いたデータ転送方法
US20090248910A1 (en) * 2008-04-01 2009-10-01 Apple Inc. Central dma with arbitrary processing functions

Also Published As

Publication number Publication date
CN102193886B (zh) 2014-07-30
US20110219150A1 (en) 2011-09-08
JP2011187039A (ja) 2011-09-22
TW201131372A (en) 2011-09-16
JP5437922B2 (ja) 2014-03-12
EP2365444A1 (en) 2011-09-14
US8458377B2 (en) 2013-06-04
CN102193886A (zh) 2011-09-21
KR20110101029A (ko) 2011-09-15
KR101340865B1 (ko) 2013-12-13
EP2365444B1 (en) 2015-05-06

Similar Documents

Publication Publication Date Title
TWI516945B (zh) 可並行資料修改之方法及直接記憶體存取控制器
EP2803012B1 (en) Using storage controller bus interfaces to secure data transfer between storage devices and hosts
JP5611597B2 (ja) 空データトークン指令を用いてストレージデバイス中のデータを管理するための装置、システム及び方法
US8762789B2 (en) Processing diagnostic requests for direct block access storage devices
US9354822B2 (en) Programmable data read management system and method for operating the same in a solid state drive
US9263102B2 (en) Apparatus, system, and method for data transformations within a data storage device
US20150261456A1 (en) Configurable read-modify-write engine and method for operating the same in a solid state drive
US9092362B1 (en) Programmable data write management system and method for operating the same in a solid state drive
KR102330391B1 (ko) 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 가비지 컬렉션 방법
KR101837111B1 (ko) 비휘발성 반도체 메모리를 위한 인터페이스 관리 제어 시스템 및 방법
JP7492511B2 (ja) ストリーミングプラットフォームフローおよびアーキテクチャ
US10901624B1 (en) Dummy host command generation for supporting higher maximum data transfer sizes (MDTS)
US20220374164A1 (en) Storage device set including storage device and reconfigurable logic chip, and storage system including storage device set
US10901733B1 (en) Open channel vector command execution
US10515036B2 (en) Bit manipulation capable direct memory access
CN113196253A (zh) 具有主机周转时间的预测器引擎的存储设备
Xue et al. SoftSSD: enabling rapid flash firmware prototyping for solid-state drives
CN116842549A (zh) 基于bmc的数据加解密处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees