專利名稱:具有任意處理功能的中央dma的制作方法
具有任意處理功能的中央DMA技術(shù)領(lǐng)域
本發(fā)明一般地涉及直接存儲器存取傳輸過程中數(shù)據(jù)到修改狀態(tài)的變換。
技術(shù)背景
這個部分旨在向讀者介紹可能與在下面描述和/或提出的本發(fā)明的各個方面有 關(guān)的技術(shù)的各個方面。相信本討論有助于給讀者提供背景信息,以便于更好地理解本發(fā)明 的各個方面。因此,應(yīng)當理解,應(yīng)該從這個角度閱讀這些描述,而不是作為對現(xiàn)有技術(shù)的承 認。
直接存儲器存取(“DMA”)控制器被廣泛用于現(xiàn)代電子設(shè)備。DMA控制器允許電 子設(shè)備中的數(shù)據(jù)傳輸,而不給中央處理單元(“CPU”)帶來負擔。CPU利用一列命令或指令 進行操作。這些指令通常被作為程序分組在一起。程序通常被存儲在諸如硬盤驅(qū)動器或非 易失存儲器的長期存儲設(shè)備內(nèi)。訪問這些長期存儲設(shè)備需要特定時間量,期間CPU必須空寸。
使用DMA控制器可以減少CPU必須保持空閑的時間。通常,CPU將作為程序分組 在一起的一列指令的獲取轉(zhuǎn)手給DMA控制器。然后,在DMA為CPU獲取程序的同時,CPU能 夠自由執(zhí)行以前獲取的指令。DMA控制器通常在存儲器內(nèi)的一個位置和I/O設(shè)備之間,或在 I/O設(shè)備和存儲器內(nèi)的一個位置之間傳輸數(shù)據(jù)。DMA控制器還可用于在存儲器內(nèi)的兩個位 置之間或直接在I/O設(shè)備之間傳輸數(shù)據(jù)。沿著DMA通道完成DMA控制器在某個數(shù)據(jù)源到某 個數(shù)據(jù)接收器之間的數(shù)據(jù)傳輸。DMA通道是DMA控制器和設(shè)備之間的路徑。DMA通道通常 向設(shè)備傳遞數(shù)據(jù)、命令信號和時鐘信號。
對于現(xiàn)代便攜電子設(shè)備中的數(shù)據(jù)來說,針對黑客的安全性和操作過程中不出錯誤 都是重要的。然而,保護數(shù)據(jù)安全的當前努力以系統(tǒng)延遲的形式給設(shè)備增加了開銷。類似 地,確保設(shè)備用戶可以獲得未被破壞的數(shù)據(jù)的努力也以系統(tǒng)延遲的形式給設(shè)備增加了開 銷。例如,由于在傳輸可以完成之前必須被通過安全或糾錯系統(tǒng)發(fā)送,在DMA傳輸過程中的 數(shù)據(jù)訪問可能減慢。從而,需要保護未被破壞的數(shù)據(jù)的安全而不減慢設(shè)備操作的能力。發(fā)明內(nèi)容
下面概述此處作為例子公開的實施例的某些方面。應(yīng)當理解,給出這些方面,以便 僅僅給讀者提供此處公開和/或提出的發(fā)明可以采取的某些形式的簡要概述,并且這些方 面不旨在限制此處公開和/或提出的任意發(fā)明的范圍。實際上,此處公開和/或提出的任 意發(fā)明可以包含可能未在下面提出的各種方面。
提供了具有DMA控制器的電子設(shè)備。在一個實施例中,DMA控制器被連接到DMA總 線,可以通過DMA總線訪問多個I/O設(shè)備和存儲設(shè)備。DMA控制器還可被通過多個單獨布線 的DMA通道,單獨連接到多個I/O設(shè)備和存儲設(shè)備。在每個I/O設(shè)備沿著特定的DMA通道 通信的同時,I/O設(shè)備可以共享DMA總線的帶寬。在一個實施例中,DMA控制器包含密碼電 路,密碼電路可以利用解密技術(shù)解密DMA傳輸?shù)男畔?,并且將?shù)據(jù)直接發(fā)送到進行請求的3設(shè)備。以這種方式,由于在被發(fā)送到進行請求的設(shè)備之前,傳輸設(shè)備中不存在未加密的未受 保護的數(shù)據(jù),因此減少了數(shù)據(jù)被未經(jīng)授權(quán)用戶破壞的機會。密碼電路還可以使用加密技術(shù) 加密數(shù)據(jù),以便在電子設(shè)備中進行安全存儲該數(shù)據(jù)。
在另一個實施例中,DMA控制器包含錯誤檢測和糾正電路,其可以利用糾錯碼檢測 和糾正DMA傳輸數(shù)據(jù)中的錯誤。錯誤檢測和糾正電路還可以包含糾錯編碼電路,其允許DMA 控制器對存儲在電子設(shè)備內(nèi)的數(shù)據(jù)進行編碼,以便幫助實現(xiàn)該數(shù)據(jù)的糾錯檢索。
當參考附圖閱讀某些示例實施例的下列詳細描述時,將更好地理解本發(fā)明的這些 和其它特征、方面和優(yōu)點,貫穿各附圖中類似的編號表示類似的部分,其中
圖1是示出了根據(jù)本發(fā)明的一個實施例的電子設(shè)備諸如便攜媒體播放器的立體 圖2是根據(jù)本發(fā)明的一個實施例的圖1的便攜媒體播放器的簡化方框圖3是根據(jù)本發(fā)明的第二個實施例的圖1的便攜媒體播放器的簡化方框圖4是示出了根據(jù)本發(fā)明的一個實施例的便攜媒體播放器執(zhí)行DMA傳輸時的操作 的流程圖5是根據(jù)本發(fā)明的一個實施例的圖1和2的DMA控制器的簡化方框圖6是示出了根據(jù)本發(fā)明的一個實施例的DMA控制器的操作的流程圖7是根據(jù)本發(fā)明的一個實施例的圖5的DMA通道接口的簡化方框圖8是示出了 DMA傳輸期間的通道控制邏輯的操作的流程圖。
具體實施方式
下面將描述本發(fā)明的一個或多個特定實施例。這些描述的實施例僅是本發(fā)明的例 子。另外,為了提供這些示例實施例的簡潔描述,本說明書中可能不是描述實際實現(xiàn)的所有 特征。應(yīng)當理解,在任意這種實際實現(xiàn)的開發(fā)中,如同任意工程或設(shè)計項目,必須做出多種 特定于實現(xiàn)的決策,以便實現(xiàn)開發(fā)者特定的目標,諸如符合關(guān)于系統(tǒng)和關(guān)于商業(yè)的約束,這 些約束可以隨著實現(xiàn)的不同而改變。另外,應(yīng)當理解,這種開發(fā)努力可能是復(fù)雜和費時的, 但是仍然是受益于本公開的普通技術(shù)人員的設(shè)計、加工和制造的例行任務(wù)。
現(xiàn)在轉(zhuǎn)到附圖,圖1示出了根據(jù)本發(fā)明的一個實施例的電子設(shè)備10。在某些實施 例中,電子設(shè)備10可以是用于播放音樂和/或視頻的媒體播放器、蜂窩電話、個人數(shù)據(jù)管理 器或其任意組合。因此,電子設(shè)備10可以是提供媒體播放器、蜂窩電話、個人數(shù)據(jù)管理器等 功能的任意一種或其組合的統(tǒng)一設(shè)備。另外,電子設(shè)備10可以允許用戶連接到并且通過因 特網(wǎng)或通過諸如局域網(wǎng)或廣域網(wǎng)的其它網(wǎng)絡(luò)通信。例如,電子設(shè)備10可以允許用戶使用電 子郵件、文本消息、即時消息或使用其它形式的電子通信進行通信。作為例子,電子設(shè)備10 可以是可從蘋果公司獲得的具有顯示屏的一種型號的iPod 或iPhone 。
在某些實施例中,可由可再充電或可更換電池給電子設(shè)備10供電。這些以電池供 電的實現(xiàn)可以是高度便攜的,允許用戶在行進、工作、鍛煉等的同時攜帶電子設(shè)備10。以這 種方式,根據(jù)電子設(shè)備10提供的功能,電子設(shè)備10的用戶可以在帶著設(shè)備10自由移動的 同時聽音樂、玩游戲或播放視頻、攝像或拍照、接電話和打電話、與其它人通信、控制其它設(shè)備(例如,設(shè)備10可以包括遙控器和/或藍牙功能)等等。另外,在某些實施例中,設(shè)備 10可以具有這樣的大小,從而其可被相對容易地放置在用戶的口袋或手內(nèi)。在這些實施例 中,設(shè)備10相對小并且容易被用戶握持和使用,并且因此實際上可被帶到用戶行進到的任 意位置。雖然本討論和此處描述的例子一般涉及諸如圖1所示的便攜電子設(shè)備10,應(yīng)當理 解,此處討論的技術(shù)可被應(yīng)用于具有顯示器的任意電子設(shè)備,不論這些設(shè)備是否是便攜的。
在示出的實施例中,電子設(shè)備10包括外殼12、顯示器14、用戶輸入結(jié)構(gòu)16和輸入 /輸出連接器18。外殼12可由塑料、金屬、合成材料或其它適合材料或其任意組合形成。外 殼12可以保護電子設(shè)備10的內(nèi)部組件不受物理損壞,并且還可以為內(nèi)部組件屏蔽電磁干 擾(EMI)。
顯示器14可以是液晶顯示器(IXD)或可以是基于發(fā)光二極管(LED)的顯示器、基 于有機發(fā)光二極管(OLED)的顯示器或其它適合的顯示器。根據(jù)本技術(shù)的某些實施例,顯示 器14可以顯示用戶界面22以及各種圖像,諸如標志、化身(avatar)、照片、專輯封面等。另 外,在一個實施例中,顯示器14可以是觸摸屏,用戶可以通過該觸摸屏與用戶界面交互。顯 示器14還可以顯示各種功能和/或系統(tǒng)指示器,以便向用戶提供反饋,諸如電源狀態(tài)、呼叫 狀態(tài)、存儲器狀態(tài)等。這些指示器可被結(jié)合到顯示在顯示器14上的用戶界面內(nèi)。如此處討 論的,在某些實施例中,用戶界面22可被顯示在顯示器14上,并且可以為用戶提供與電子 設(shè)備10交互的機制。該用戶界面可以是文本用戶界面、圖形用戶界面(GUI)或其任意組合, 并且可以包括可被顯示在顯示器14的所有或某些區(qū)域內(nèi)的各種分層、窗口、屏幕、模板、元 素或其它組件。
在一個實施例中,一個或多個用戶輸入結(jié)構(gòu)16被配置為,諸如,通過控制操作模 式、輸出級別、輸出類型等來控制設(shè)備10。例如,用戶輸入結(jié)構(gòu)16可以包括開關(guān)設(shè)備10的 按鈕。一般地,電子設(shè)備10的實施例可以包括任意數(shù)目的用戶輸入結(jié)構(gòu)16,包括按鈕、開 關(guān)、控制板、按鍵、旋鈕、滾動輪或任意其它適合的輸入結(jié)構(gòu)。輸入結(jié)構(gòu)16可以顯示在設(shè)備 10上的用戶界面工作,以便控制設(shè)備10或連接到或由設(shè)備10使用的其它設(shè)備的功能。例 如,用戶輸入結(jié)構(gòu)16可以允許用戶導(dǎo)航到顯示的用戶界面,或?qū)⑦@種顯示的用戶界面返回 到默認的或主屏幕。
在某些實施例中,用戶界面22可以允許用戶通過一個或多個用戶輸入結(jié)構(gòu)16和/ 或通過顯示器14的觸敏實現(xiàn)來與顯示的界面元素交互。在這些實施例中,用戶界面提供交 互功能,允許用戶通過觸摸屏或其它輸入結(jié)構(gòu),在顯示在顯示器14上的選項中進行選擇。 因此用戶可以通過與用戶界面22的適當交互操作設(shè)備10。用戶界面22可以具有任意適 合的設(shè)計,以便允許用戶和設(shè)備10之間的交互。因此,用戶界面22可以提供窗口、菜單、圖 形、文本、鍵盤或數(shù)字小鍵盤、滾動設(shè)備或任意其它元素。在一個實施例中,用戶界面22可 以包括屏幕、模板和UI組件,并且可以包括或被劃分為任意數(shù)目的這些或其它元素。用戶 界面22的元素的布置可以是分層的,從而屏幕包括一個或多個模板,模板包括一個或UI組 件。應(yīng)當理解,其它實施例可以在任意分層或非分層結(jié)構(gòu)中布置用戶界面元素。
電子設(shè)備10還可以包括各種輸入和輸出端口 18,以便允許附加設(shè)備的連接。例 如,端口 18可以是提供耳機連接的耳機插座。另外,端口 18可以具有輸入/輸出兩種能力, 以便提供耳麥(headset)(例如,耳機和麥克風的組合)連接。本發(fā)明的實施例可以包括任 意數(shù)目的輸入和/或輸出端口,包括耳機和耳麥插座、通用串行總線(USB)端口、Firewire或IEEE-1394端口以及AC和/或DC電源連接器。另外,設(shè)備10可以使用輸入和輸出端口 與任意其它設(shè)備(諸如其它便攜電子設(shè)備、個人計算機、打印機等)連接并且發(fā)送或接收數(shù) 據(jù)。例如,在一個實施例中,電子設(shè)備10可以通過Firewire或IEEE-1394連接而連接到個 人計算機,以便發(fā)送和接收數(shù)據(jù)文件,諸如媒體文件。
電子設(shè)備10還可以包括各種音頻輸入和輸出端口。例如,輸入接收器20可以是 接收用戶音頻輸入的麥克風。另外,輸出發(fā)射器21可以是向用戶傳輸音頻信號的揚聲器。 輸入接收器20和輸出發(fā)射器21可被作為電話的音頻元件結(jié)合使用。
現(xiàn)在轉(zhuǎn)到圖2,示出了說明性電子設(shè)備10的組件的方框圖200。該方框圖包括連 接到中央處理單元(“CPU”) 204的DMA控制器202。CPU 204可以包括單個處理器,或它可 以包括多個處理器。在另一個實施例中,CPU 204可以包括一個或多個“通用”微處理器, 通用和專用微處理器的組合,和/或ASIC。例如,CPU 204可以包括一個或多個精簡指令集 (RISC)處理器,以及圖形處理器、視頻處理器和/或相關(guān)芯片組。CPU 204可以提供執(zhí)行操 作系統(tǒng)、程序、用戶界面22和設(shè)備10的任意其它功能所需的處理能力。CPU 204還可以包 括非易失存儲器,諸如ROM,其可用于存儲設(shè)備10的固件,諸如設(shè)備10的操作系統(tǒng)和/或設(shè) 備10發(fā)揮功能所需的任意其它程序或可執(zhí)行代碼。
CPU 204可被連接到高速緩存存儲器206,高速緩存存儲器206可用做將被CPU 204迅速存取的數(shù)據(jù)的臨時存儲位置。高速緩存存儲器206可被連接到存儲器控制器208, 存儲器控制器208調(diào)節(jié)主存儲器210和高速緩存存儲器206之間的數(shù)據(jù)和指令流,或如果 對數(shù)據(jù)和指令的需要是緊迫的,或數(shù)據(jù)和指令被禁止臨時存儲在高速緩存存儲器206內(nèi), 則調(diào)節(jié)主存儲器210和CPU 204之間的直接數(shù)據(jù)和指令流。在一個實施例中,進行DMA控 制器202和存儲器控制器208之間的數(shù)據(jù)和指令流,而不用確定高速緩存存儲器206的內(nèi) 容。在另一個實施例中,在確定高速緩存存儲器206的當前內(nèi)容之后完成DMA控制器202 和存儲器控制器208之間的數(shù)據(jù)和指令流。在另一個實施例中,DMA控制器202可被直接 連接到CPU 204。另外,可以在與DMA控制器202的操作相分離的從屬總線上執(zhí)行對于主存 儲器210和高速緩存存儲器206內(nèi)的存儲的數(shù)據(jù)訪問。
DMA控制器202可以作為例如USB設(shè)備218和音頻電路230的I/O設(shè)備之間、主存 儲器210和例如音頻電路230的I/O設(shè)備之間或例如音頻電路230的I/O設(shè)備和主存儲器 210之間的數(shù)據(jù)傳輸?shù)目刂圃O(shè)備進行操作??梢栽O(shè)想所使用的特定DMA控制器202可以具 有提交于2008年3月27日的題目為〃 Clock Control for DMA Busses"的共同待決且共 同受讓的美國專利申請No. 12/047,156中描述的其它功能,通過引用將其公開完整結(jié)合在 此。從而通過引用結(jié)合這些功能。DMA控制器202可以借助于DMA互連212連接到DMA總 線214。DMA互連212用于傳輸數(shù)據(jù)、命令和時鐘信號,以及從目標1/0設(shè)備接收DMA請求 信號和傳輸?shù)臄?shù)據(jù)。這些傳輸和接收的信號可被總地稱為“DMA傳輸信號”。DMA互連212 還接收通過DMA總線214從1/0設(shè)備傳輸?shù)拿詈蛿?shù)據(jù)信號。DMA總線214作為DMA傳輸 信號和來自1/0設(shè)備的命令和數(shù)據(jù)信號的管道。DMA總線214可以包括多個DMA通道。每 個DMA控制器可以是將DMA控制器202連接到任意特定1/0設(shè)備的路徑。在一個實施例中, 這些路徑可被同時激活,實際上,共享DMA總線214。
DMA總線214可被連接到多個設(shè)備,諸如通過USB ( “通用串行總線”)接口 216連 接到USB設(shè)備218、相機電路220、電話電路222、視頻電路226、JPEG (聯(lián)合圖像專家組)電路2 和音頻電路230。附加電路諸如相應(yīng)于圖1中繪出的元件的用戶接口電路和顯示電 路也可被連接到DMA總線214。另外,長期存儲器2 可被連接到DMA總線214。長期存儲 器2M可以是非易失存儲器,諸如閃存存儲器、磁驅(qū)動器、光學驅(qū)動器或只讀存儲器電路。 長期存儲器2M可以存儲數(shù)據(jù)文件,諸如媒體(例如,音樂和視頻文件)、軟件(例如,用于 實現(xiàn)設(shè)備10上的功能)、偏好信息(例如,媒體回放偏好)、無線連接信息(例如,使得媒體 設(shè)備能夠建立無線連接諸如電話連接的信息)、預(yù)訂信息(例如,保持用戶預(yù)訂的播客或電 視節(jié)目或其它媒體的記錄的信息)、電話信息(例如,電話號碼)和任意其它適合的數(shù)據(jù)。
USB接口 216可以連接到USB設(shè)備218。該USB設(shè)備218可以例如是外部閃存電路 或外部硬盤驅(qū)動器。相機電路220可以允許用戶拍攝數(shù)碼相片。電話電路222可以允許用 戶接收或進行電話呼叫。在一個實施例中,電話電路222可以與圖1的輸入接收器20和輸 出發(fā)射器21交互,以便完成電話呼叫。視頻電路2 可用于編碼和解碼用戶結(jié)合相機電路 220拍攝的或從諸如因特網(wǎng)的外部來源下載的視頻樣本。類似地,JPEG電路2 可以允許 編碼和解碼用戶結(jié)合相機電路220拍攝的或從諸如因特網(wǎng)的外部來源下載的圖片。最后, 音頻電路230可以允許播放音頻文件,諸如壓縮的音樂文件。
現(xiàn)在轉(zhuǎn)到圖3,示出了說明性電子設(shè)備10的組件的方框圖。該方框圖包括連接到 CPU 304的DMA控制器302。CPU 304可以包括單個處理器或它可以包括多個處理器。在 另一個實施例中,CPU 304可以包括一個或多個“通用”微處理器、通用和專用微處理器的 組合、和/或ASIC。例如,CPU 304可以包括一個或多個精簡指令集(RISC)處理器,以及圖 形處理器、視頻處理器和/或相關(guān)芯片組。CPU 304可以提供執(zhí)行操作系統(tǒng)、程序、用戶界 面22和設(shè)備10的任意其它功能所需的處理能力。CPU304還可以包括非易失存儲器,諸如 ROM,其可用于存儲設(shè)備10的固件,諸如設(shè)備10的操作系統(tǒng)和/或設(shè)備10發(fā)揮功能所需的 任意其它程序或可執(zhí)行代碼。
CPU可被連接到高速緩存存儲器306,高速緩存存儲器306可用做將被CPU迅速存 取的數(shù)據(jù)的臨時存儲位置。高速緩存存儲器306可被連接到存儲器控制器308,存儲器控制 器308調(diào)節(jié)主存儲器310和高速緩存存儲器306之間的數(shù)據(jù)和指令流。另外,如果對數(shù)據(jù) 和指令的需要是緊迫的,或數(shù)據(jù)和指令被禁止臨時存儲在高速緩存存儲器306內(nèi),則調(diào)節(jié) 主存儲器310和CPU 304之間的直接數(shù)據(jù)和指令流。在一個實施例中,進行DMA控制器302 和存儲器控制器308之間的數(shù)據(jù)和指令流,而不用確定高速緩存存儲器306的內(nèi)容。在另 一個實施例中,在確定高速緩存存儲器306的當前內(nèi)容之后完成DMA控制器302和存儲器 控制器308之間的數(shù)據(jù)和指令流。在另一個實施例中,DMA控制器302可被直接連接到CPU 304。另外,可以在與DMA控制器302的操作相分離的從屬總線上執(zhí)行對于主存儲器310和 高速緩存存儲器306內(nèi)的存儲的數(shù)據(jù)訪問。
DMA控制器302可以作為例如USB設(shè)備318和音頻電路330的I/O設(shè)備之間、主存 儲器310和例如音頻電路330的I/O設(shè)備之間或例如音頻電路330的I/O設(shè)備和主存儲器 310之間的數(shù)據(jù)傳輸?shù)目刂圃O(shè)備操作。每個DMA通道可以是將DMA控制器302連接到任意 特定I/O設(shè)備的路徑。DMA控制器302可以沿著多個獨立的DMA通道(例如,獨立DMA通 道線路31 連接到多個I/O設(shè)備。獨立DMA通道線路312表示具有I/O設(shè)備的特定DMA 路徑。獨立DMA通道線路312可被用于借助于USB接口 316從DMA控制器302向USB設(shè) 備318傳輸數(shù)據(jù)、命令和時鐘信號。USB設(shè)備318可以是外部閃存電路或外部硬盤驅(qū)動器。獨立DMA通道線路312還可用于從I/O設(shè)備(例如,通過USB接口 316從USB設(shè)備318)向 DMA控制器302傳輸DMA請求信號和數(shù)據(jù)。
DMA控制器302還可以沿著獨立DMA通道線路連接到多個設(shè)備,諸如,相機電路 320、電話電路322、視頻電路326、JPEG電路3 和音頻電路330。附加電路諸如相應(yīng)于圖 1中繪出的元素的用戶接口電路和顯示電路也可被連接到DMA控制器302。相機電路320 可以允許用戶拍攝數(shù)碼相片。電話電路322可以允許用戶接收或進行電話呼叫。在一個實 施例中,電話電路322可以與圖1的輸入接收器20和輸出發(fā)射器21交互,以便完成電話呼 叫。視頻電路3 可用于編碼和解碼用戶結(jié)合相機電路320拍攝的或從諸如因特網(wǎng)的外部 來源下載的視頻樣本。類似地,JPEG電路2 可以允許編碼和解碼用戶結(jié)合相機電路320 拍攝的或從諸如因特網(wǎng)的外部來源下載的圖片。音頻電路330可以允許播放音頻文件,諸 如壓縮的音樂文件。
類似地,獨立DMA通道線路314表示連接到長期存儲器3M的DMA通道。獨立DMA 通道線路314可被用于從DMA控制器302向長期存儲器3M傳輸數(shù)據(jù)、命令和時鐘信號。長 期存儲器3M可以是非易失存儲器,諸如閃存、磁驅(qū)動器、光學驅(qū)動器或只讀存儲器電路。 長期存儲器3M可以存儲數(shù)據(jù)文件,諸如媒體(例如,音樂和視頻文件)、軟件(例如,用于 實現(xiàn)設(shè)備10上的功能)、偏好信息(例如,媒體回放偏好)、無線連接信息(例如,使得媒體 設(shè)備能夠建立無線連接諸如電話連接的信息)、預(yù)訂信息(例如,保持用戶預(yù)訂的播客或電 視節(jié)目或其它媒體的記錄的信息)、電話信息(例如,電話號碼)和任意其它適合的數(shù)據(jù)。 獨立DMA通道線路314可被用于從長期存儲器324向DMA控制器302傳輸DMA請求信號和 數(shù)據(jù)。
圖4示出了表示方法400的流程圖,其示出了根據(jù)本發(fā)明的一個實施例的DMA傳 輸。首先結(jié)合圖3概述的系統(tǒng)討論這些步驟。在步驟402,DMA控制器302從進行請求的設(shè) 備例如音頻電路330接收數(shù)據(jù)傳輸請求。DMA控制器確定所請求數(shù)據(jù)的位置。這個位置是 目標設(shè)備。這個目標設(shè)備例如可以是長期存儲器324。DMA控制器302可以沿著相應(yīng)于進 行請求的設(shè)備例如音頻電路330的獨立DMA通道線路312以及相應(yīng)于目標設(shè)備例如長期存 儲器324的獨立DMA通道線路314激活DMA通道時鐘。然后DMA控制器302可以通過沿著 獨立DMA通道線路314向目標設(shè)備發(fā)送通道時鐘和DMA命令信號,啟動來自目標設(shè)備的DMA 傳輸。
在步驟404,目標設(shè)備接收DMA通道時鐘和命令信號,并且向DMA控制器302傳輸 所請求的數(shù)據(jù)。DMA控制器302接收該傳輸數(shù)據(jù),并且隨后在步驟406,在DMA控制器302 中對傳輸數(shù)據(jù)進行變換,而不用首先將傳輸數(shù)據(jù)保存在中間介質(zhì)上。
在一個實施例中,通過使用包含在DMA控制器302內(nèi)的密碼電路完成步驟406的 變換。密碼電路可以利用解密技術(shù)對DMA傳輸數(shù)據(jù)進行解密。以這種方式,由于在被發(fā)送到 進行請求的設(shè)備之前,任何位置都不存在未受保護的數(shù)據(jù),減少了數(shù)據(jù)被未經(jīng)授權(quán)用戶破 壞的機會。例如,如果長期存儲器3M是目標設(shè)備,并且音頻電路330是進行請求的設(shè)備, 傳統(tǒng)上,解密電路將數(shù)據(jù)從長期存儲器3M拷貝到主存儲器310內(nèi)的臨時緩沖區(qū)內(nèi),并且然 后將數(shù)據(jù)從主存儲器310內(nèi)的臨時緩沖區(qū)解密到主存儲器310內(nèi)的第二個緩沖區(qū)。最后, 解密電路將解密后的數(shù)據(jù)從主存儲器內(nèi)的第二個緩沖區(qū)拷貝到音頻電路330。這將造成數(shù) 據(jù)以未加密形式臨時暴露于主存儲器310內(nèi)的臨時緩沖區(qū)內(nèi)的結(jié)果。利用當前方法400,將被訪問的數(shù)據(jù)不被以未加密形式暴露。取而代之,對DMA控制器302內(nèi)的數(shù)據(jù)解密而不首 先在中間介質(zhì)上保存?zhèn)鬏敂?shù)據(jù)允許在步驟408將解密后的數(shù)據(jù)直接發(fā)送到音頻電路330, 而不用以未加密形式臨時存儲將被傳輸?shù)臄?shù)據(jù)。密碼電路還可以包括加密技術(shù),以便加密 數(shù)據(jù)在電子設(shè)備10內(nèi)安全存儲該數(shù)據(jù)。在一個實施例中,密碼電路包括符合高級加密標準 的電路。在另一個實施例中,密碼電路可以采用散列函數(shù)。在另一個實施例中,密碼電路可 被用于解密Fairplay 加密數(shù)據(jù)。在通過加密或解密技術(shù)對傳輸數(shù)據(jù)進行變換之后,變 換后的數(shù)據(jù)在步驟408被發(fā)送到進行請求的設(shè)備。
在另一個實施例中,通過使用包含在DMA控制器302內(nèi)的錯誤檢測和糾正電路完 成步驟406中的數(shù)據(jù)變換。錯誤檢測和糾正電路可以利用錯誤糾正和檢測解碼電路。糾 正和檢測解碼電路可以利用糾錯碼檢測和糾正DMA傳輸數(shù)據(jù)中的錯誤。錯誤檢測和糾正 電路還可以包括錯誤檢測和糾正編碼電路,其允許DMA控制器302對要在電子設(shè)備內(nèi)進行 存儲的數(shù)據(jù)進行編碼,以便幫助該數(shù)據(jù)的糾錯檢索。在一個實施例中,錯誤檢測和糾正電 路使用線性塊編碼和解碼。再一個實施例使用二值BCH碼的特殊子類,諸如Hamming碼,以 便在錯誤檢測和糾正電路中執(zhí)行錯誤檢測和糾正。另一個實施例使用非二值BCH碼,諸如 Reed-Solomon碼,以便在錯誤檢測和糾正電路中執(zhí)行數(shù)據(jù)的錯誤檢測和糾正。錯誤檢測和 糾正電路還可以采用校驗和檢測傳輸數(shù)據(jù)內(nèi)的錯誤。在通過錯誤編碼或解碼技術(shù)變換傳輸 數(shù)據(jù)之后,變換后的數(shù)據(jù)被在步驟408發(fā)送到進行請求的設(shè)備。
方法400可以相對于系統(tǒng)200以大體類似的方式操作。然而,當被結(jié)合系統(tǒng)200 使用時,方法400可以利用DMA總線214執(zhí)行步驟402-412,而不是如上所述利用專用的和 獨立的DMA通道線路(例如,通道線路312和314)。
圖5示出了根據(jù)本發(fā)明的一個實施例的圖2和3的DMA控制器的簡化方框圖。圖 5示出了 DMA控制器202,然而,圖5還可以可替換地對應(yīng)于DMA控制器302。DMA控制器 202包括控制電路502。DMA控制器202能夠通過利用控制電路502啟動DMA傳輸、管理所 有DMA通道、以及管理DMA通道時鐘和DMA總線214。由于DMA控制器202是DMA總線214 的主控設(shè)備,因此DMA控制器202能夠通過控制電路502執(zhí)行這些功能。類似地,DMA控制 器302是獨立DMA通道線路例如312和314的主控設(shè)備。因此,DMA控制器202認識使用 DMA總線214的任意和所有設(shè)備,并且可以基于這一知識確定特定DMA傳輸特性。類似地, DMA控制器302認識使用獨立DMA通道線路例如312和314的任意和所有設(shè)備,并且可以基 于這種知識確定特定DMA傳輸特性。
調(diào)度器504輔助確定設(shè)備何時正在使用DMA總線214或獨立DMA通道線路例如 312和314??刂齐娐?02從調(diào)度器504接收屬于傳輸設(shè)備DMA請求的信息。在一個實施 例中,調(diào)度器504可以駐留在控制電路502內(nèi)。在另一個實施例中,任意DMA請求被沿著每 個獨立DMA通道線路例如312發(fā)送,并且被借助于特定DMA通道接口例如510傳遞到調(diào)度 器504。調(diào)度器504操作以便確定應(yīng)當給予哪個數(shù)據(jù)傳輸DMA請求優(yōu)先權(quán)。在一個實施例 中,借助于先入先出方法處理請求。在另一個實施例中,每個通道被給予一個權(quán)重值。分配 給特定DMA通道的權(quán)重值越高,該通道為特定DMA傳輸接收的調(diào)度優(yōu)先級越高。
DMA控制器還包括轉(zhuǎn)換器508。轉(zhuǎn)換器508可以包括密碼電路。轉(zhuǎn)換器508還可以 包括錯誤檢測和糾正電路。轉(zhuǎn)換器508可以從DMA接口 510-514接收數(shù)據(jù)并且傳輸數(shù)據(jù), 而不用首先將傳輸?shù)臄?shù)據(jù)保存在中間介質(zhì)上。一旦變換完成,轉(zhuǎn)換器508可以將變換后的數(shù)據(jù)發(fā)送回發(fā)出該數(shù)據(jù)的DMA接口 510-514。控制電路502可以與轉(zhuǎn)換器508交互。這種 交互可以包括轉(zhuǎn)換器508中的加密或解密電路的激活。這種交互還可以包括轉(zhuǎn)換器508內(nèi) 的編碼或解碼電路的激活。
DMA通道時鐘和DMA命令信號可被作為輸入發(fā)送到特定的DMA通道接口,例如,DMA 通道接口 510。DMA接口 510-514還可以從轉(zhuǎn)換器508接收信號。在一個實施例中,從轉(zhuǎn)換 器508接收的信號包括變換后的數(shù)據(jù)信號。DMA接口 510-514還可以將信號傳輸?shù)娇刂齐?路502并且傳輸?shù)睫D(zhuǎn)換器508。在一個實施例中,傳輸?shù)睫D(zhuǎn)換器508的信號包括從目標設(shè)備 傳輸?shù)臄?shù)據(jù)信號。DMA接口 510-514還可以沿著獨立DMA通道線路例如312傳輸和接收數(shù) 據(jù)。DMA接口 510-514還可以沿著DMA通道向共享線路諸如DMA互連212上的目標設(shè)備傳 輸和接收數(shù)據(jù)。在一個實施例中,存在對應(yīng)于每個DMA通道的特定DMA通道接口。
圖6示出了表示方法600的流程圖,其示出了根據(jù)本發(fā)明一個實施例的DMA傳輸。 首先結(jié)合圖5概述的系統(tǒng)討論這些步驟。在步驟602,調(diào)度器504從進行請求的設(shè)備例如音 頻電路330接收DMA傳輸請求。調(diào)度器504還可以在步驟602接收從屬DMA請求。
在步驟604,調(diào)度器504可以調(diào)度DMA傳輸。在一個實施例中,這可以使用FIFO (先 入先出)方法完成。即,根據(jù)調(diào)度器504接收DMA傳輸?shù)捻樞蛘{(diào)度DMA傳輸。在第二個實 施例中,調(diào)度器504可以基于評分系統(tǒng)調(diào)度接收的DMA傳輸請求。在這個實施例中,每個進 行請求的設(shè)備被分配一個優(yōu)先級評分。具有高優(yōu)先級評分的設(shè)備的DMA傳輸請求被先于低 優(yōu)先級設(shè)備的DMA傳輸請求調(diào)度。具有低于高優(yōu)先級DMA傳輸請求的優(yōu)先級的所有DMA傳 輸請求被根據(jù)其各自的優(yōu)先級評分排隊。在另一個實施例中,具有某個優(yōu)先級的DMA傳輸 請求造成調(diào)度器504中斷當前正在處理的任何DMA傳輸。以這種方式,可以按時完成必須 實時發(fā)生的DMA傳輸。
一旦調(diào)度器504確定將要處理哪個DMA傳輸請求,適當?shù)腄MA傳輸請求信息被發(fā) 送到控制電路502。在一個實施例中,該信息可以包括目標設(shè)備信息和將被檢索的數(shù)據(jù)。然 后控制電路502可以在步驟606使用這種信息訪問適當?shù)腄MA通道接口。在步驟606的一 個實施例中,控制電路502確定將被接收的數(shù)據(jù)的位置,并且激活相應(yīng)的DMA通道接口,例 如,510。隨后,控制電路502可以向轉(zhuǎn)換器508發(fā)送激活信號。這些激活信號可以激活轉(zhuǎn) 換器508。轉(zhuǎn)換器508的激活可以包括在轉(zhuǎn)換器508內(nèi)啟動錯誤檢測和糾正編碼電路、啟動 錯誤檢測和糾正解碼電路、啟動加密電路或啟動解密電路。
除了接收通道時鐘之外,所選擇的DMA接口例如510可以從控制電路502接收DMA 命令信號。在步驟608,所選擇的DMA接口例如510可以沿著DMA通道將DMA傳輸命令和 DMA通道時鐘傳輸?shù)姜毩MA通道線路諸如312上的目標設(shè)備。所選擇的DMA接口例如510 還可以沿著DMA通道將DMA傳輸命令和通道時鐘傳輸?shù)焦蚕砭€路諸如連接到共享DMA總線 214(圖2)的DMA互連212上的目標設(shè)備。
目標設(shè)備例如318接收DMA傳輸信息,并且作為響應(yīng),將所請求的數(shù)據(jù)傳輸回啟動 DMA通道接口例如510。在步驟610,所選擇的通道接口例如510接收從目標設(shè)備傳輸?shù)臄?shù) 據(jù)。一旦該數(shù)據(jù)被接收,控制電路502可以向該通道接口例如510發(fā)出命令,以便將來自目 標設(shè)備的接收數(shù)據(jù)發(fā)送到轉(zhuǎn)換器508。在步驟612,DMA通道接口例如510將從目標設(shè)備接 收的數(shù)據(jù)傳輸?shù)睫D(zhuǎn)換器508。
轉(zhuǎn)換器508接收來自傳輸DMA接口例如510的數(shù)據(jù),并且在步驟614,轉(zhuǎn)換器50810變換該數(shù)據(jù),而不用首先將傳輸?shù)臄?shù)據(jù)保存在中間介質(zhì)上。這種變換可以包括數(shù)據(jù)的錯誤 檢測和糾正編碼、數(shù)據(jù)的錯誤檢測和糾正解碼、數(shù)據(jù)的加密或數(shù)據(jù)的解密。在一個實施例 中,該變換使用高級加密標準密碼技術(shù)。在另一個實施例中,加密或解密數(shù)據(jù)可以采用散列函數(shù)。在另一個實施例中,轉(zhuǎn)換器508可以根據(jù)FairP丨ay 解密技術(shù)變換數(shù)據(jù)。轉(zhuǎn)換 器508還可以通過使用線性塊編碼和解碼、二值BCH碼諸如hamming碼、非二值BCH碼諸如 Reed-Solomon碼或校驗和的編碼和解碼技術(shù)來變換數(shù)據(jù)。
一旦完成變換,在步驟616,轉(zhuǎn)換器508可以將變換后的數(shù)據(jù)發(fā)送回發(fā)出該數(shù)據(jù)的 特定DMA接口例如510,從而變換后的數(shù)據(jù)被傳輸?shù)竭M行請求的設(shè)備。
一旦所請求的數(shù)據(jù)的最后部分已被傳輸?shù)竭M行請求的設(shè)備,控制電路502在步驟 618確定調(diào)度器是否為空。即,控制電路502確定調(diào)度器是否具有保持在隊列中的任意調(diào)度 DMA傳輸。如果調(diào)度器隊列中存在調(diào)度DMA傳輸,則如圖6以從步驟618到步驟604和606 中間的流程圖600的箭頭所示,重復(fù)上面描述的處理。如果調(diào)度器為空,控制電路502向轉(zhuǎn) 換器508發(fā)送去活信號。這些去活信號可以在步驟620去活轉(zhuǎn)換器508以及被用于數(shù)據(jù)傳 輸?shù)南嚓P(guān)聯(lián)的DMA通道。
圖7是根據(jù)本發(fā)明的一個實施例的圖5的DMA通道接口 510的簡化方框圖。在一 個實施例中,使用通道控制邏輯702配置和控制DMA通道。例如,通道控制邏輯702可以在 任意給定時刻去活相關(guān)聯(lián)的DMA通道,從而放棄當前正在進行的任意DMA傳輸。在另一個 實施例中,使用通道控制邏輯702報告DMA通道的狀態(tài)。例如,如果在DMA通道處于使用時 出現(xiàn)了錯誤,或如果在使用DMA通道期間發(fā)生了停止,那么通道控制邏輯702可以放棄當前 傳輸、記錄和報告故障。通道控制邏輯702可以沿著時鐘線路714接收通道時鐘。通道控 制邏輯702可以沿著數(shù)據(jù)線路716傳輸和接收數(shù)據(jù)。另外,通道控制邏輯702還可以沿著 命令線路706接收DMA命令信號。
DMA命令信號被在命令線路706從下一 DMA命令寄存器704發(fā)送到通道控制邏輯 702。下一 DMA命令寄存器704可以作為將被發(fā)送到通道控制邏輯702的DMA命令的隊列。 這些DMA命令可以包括DMA控制器202將從目標設(shè)備讀取的數(shù)據(jù)的地址。DMA命令還可以 包括DMA控制器202將寫入進行請求的設(shè)備的數(shù)據(jù)的地址。DMA命令還可以包括用于通道 控制邏輯702的暫停命令或起動命令。
當DMA命令已被執(zhí)行時,位于下一 DMA命令寄存器704內(nèi)的隊列內(nèi)的下一個命令 被沿著命令線路706發(fā)送到通道控制邏輯702。當前DMA命令寄存器708監(jiān)視命令線路 706。當前DMA命令寄存器708可以存儲正在執(zhí)行的當前DMA命令的拷貝。例如,如果DMA 傳輸出于任何原因而停止,可以使用這一信息??刂齐娐?02可以訪問當前DMA命令寄存 器708,以便確定當停止發(fā)生時正在處理的傳輸。類似地,傳輸寄存器710可以在DMA傳輸 期間訪問正被傳輸?shù)臄?shù)據(jù)。例如,傳輸寄存器710可以確定在停止發(fā)生之前DMA控制器202 實際傳輸了多少字節(jié)。這允許控制電路502確定多少數(shù)據(jù)被成功地從目標設(shè)備移動到進行 請求的設(shè)備。
DMA通道接口 510還包括I/O設(shè)備寄存器712。I/O設(shè)備寄存器712可以包含某些 I/O設(shè)備控制信息。例如,I/O設(shè)備寄存器712可以包含關(guān)于I/O設(shè)備可以傳輸或接受的數(shù) 據(jù)的寬度的信息。該信息可被用于確定在DMA通道上傳輸?shù)淖止?jié)的數(shù)目。I/O設(shè)備寄存器 712還可以包括關(guān)于沿著具有特定I/O設(shè)備的DMA通道的DMA傳輸所需的最小通道時鐘頻率的信息。控制電路502可以使用該信息在時鐘管理器512中設(shè)置DMA時鐘頻率。
數(shù)據(jù)線路716被連接到環(huán)形緩沖器718,數(shù)據(jù)流過所述環(huán)形緩沖器718。以這種方 式,數(shù)據(jù)被借助通道控制邏輯702從目標設(shè)備傳遞到環(huán)形緩沖器718,并且被從環(huán)形緩沖器 718傳輸?shù)竭M行請求的設(shè)備。環(huán)形緩沖器718可以足夠大,從而整個緩存線可被裝入其內(nèi)。 在一個實施例中,環(huán)形緩沖器的大小可以是32字節(jié)或64字節(jié)。在另一個實施例中,環(huán)形緩 沖器718如同可由任意I/O設(shè)備傳輸?shù)淖畲髷?shù)據(jù)包一樣大。在另一個實施例中,可以劃分 環(huán)形緩沖器718。例如,環(huán)形緩沖器718可以包括能夠保持變換之前的數(shù)據(jù)的一個或多個塊 的第一分區(qū)。第二分區(qū)類似地能夠保持變換之后的數(shù)據(jù)的塊??梢愿鶕?jù)轉(zhuǎn)換器508的需要 確定這些分區(qū)的大小。例如,高級加密標準密碼電路需要以16字節(jié)的塊向其發(fā)送數(shù)據(jù)。從 而,可以使得環(huán)形緩沖器718的這些分區(qū)適應(yīng)轉(zhuǎn)換器508中的變換電路的需要。
環(huán)形緩沖器718可被借助于接收數(shù)據(jù)線路722和變換數(shù)據(jù)線路7M耦接到轉(zhuǎn)換器 508。在一個實施例中,接收數(shù)據(jù)線路722可被連接到環(huán)形緩沖器718的第一分區(qū),而變換 數(shù)據(jù)線路7M可被連接到環(huán)形緩沖器的第二分區(qū)。在另一個實施例中,可以取代獨立的單 向接收數(shù)據(jù)線路722和變換數(shù)據(jù)線路7M使用單個雙向總線。還可以采用環(huán)形緩沖器狀態(tài) 寄存器720,以便確定環(huán)形緩沖器718中有多少數(shù)據(jù)。這使得可以,例如,在DMA傳輸停止的 情況下,確定多少數(shù)據(jù)已被傳輸出環(huán)形緩沖器718。
圖8是示出了發(fā)出DMA傳輸之后的通道控制邏輯702的操作的流程圖800。在步 驟802,通道控制邏輯702接收來自目標設(shè)備的請求數(shù)據(jù)。在步驟804,該數(shù)據(jù)被從通道控 制邏輯702傳輸?shù)江h(huán)形緩沖器718。在一個實施例中,該傳輸將對數(shù)據(jù)排隊,從而其可被以 適合于進行請求的設(shè)備的大小傳輸?shù)竭M行請求的設(shè)備。在另一個實施例中,該傳輸將對數(shù) 據(jù)排隊,從而其可被以適合于轉(zhuǎn)換器508的大小傳輸?shù)睫D(zhuǎn)換器508。例如,如果傳輸設(shè)備以 8字節(jié)的塊發(fā)送數(shù)據(jù),并且轉(zhuǎn)換器508需要以16字節(jié)的塊接收數(shù)據(jù)以便正確操作,則可以使 用環(huán)形緩沖器718以傳輸?shù)酵ǖ揽刂七壿?02的兩個8字節(jié)數(shù)據(jù)塊形成單個16字節(jié)數(shù)據(jù) 塊。
在步驟806,通道控制邏輯702確定環(huán)形緩沖器718是否已滿。在一個實施例中, 當環(huán)形緩沖器718中不能再放入其它數(shù)據(jù)時,環(huán)形緩沖器718已滿。在第二個實施例中,當 數(shù)據(jù)形成適合于轉(zhuǎn)換器508接收的大小時,環(huán)形緩沖器718已滿。在另一個實施例中,僅當 能夠保持變換之前的數(shù)據(jù)的第一分區(qū)滿時,環(huán)形緩沖器718已滿。如果環(huán)形緩沖器718已 滿,通道控制邏輯702在步驟808向轉(zhuǎn)換器508傳輸環(huán)形緩沖數(shù)據(jù)。環(huán)形緩沖數(shù)據(jù)的傳輸可 以沿著接收數(shù)據(jù)線路722發(fā)生。然而,如果環(huán)形緩沖器718未滿,通道控制邏輯702在步驟 810確定來自目標設(shè)備的傳輸是否完成。如果來自目標設(shè)備的傳輸完成了,環(huán)形緩沖器718 在步驟808將環(huán)形緩沖數(shù)據(jù)傳輸?shù)睫D(zhuǎn)換器508。然而,如果來自目標設(shè)備的傳輸未完成,通 道控制邏輯702從步驟802開始重復(fù)上面在流程圖800中概述的步驟。
在環(huán)形緩沖器718在步驟808將數(shù)據(jù)傳輸?shù)睫D(zhuǎn)換器508之后,轉(zhuǎn)換器508可以在 步驟810轉(zhuǎn)換接收數(shù)據(jù)。可以使用指定用于加密或解碼操作的算法和密鑰的寄存器完成這 種轉(zhuǎn)換。類似地,轉(zhuǎn)換器中的寄存器可以指出用于編碼或解碼數(shù)據(jù)的糾錯碼。在該密碼配 置中,轉(zhuǎn)換器508還可以包括保持密碼電路使用的初始矢量的寄存器。這些寄存器還可以 保持由密碼電路使用的N字節(jié)密鑰。在一個實施例中,這些密鑰可以是對稱密鑰類型。在 另一個實施例中,這些密鑰可以是非對稱(公共)密鑰類型。
一旦轉(zhuǎn)換器508在步驟810對數(shù)據(jù)進行了轉(zhuǎn)換,轉(zhuǎn)換器在步驟812將變換后的數(shù) 據(jù)傳輸?shù)江h(huán)形緩沖器718。變換后的數(shù)據(jù)可被沿著變換數(shù)據(jù)線路7M傳輸。在一個實施例 中,該傳輸對環(huán)形緩沖器718中的數(shù)據(jù)排隊,從而變換后的數(shù)據(jù)可被以適合于進行請求的 設(shè)備的大小傳輸?shù)竭M行請求的設(shè)備。例如,如果轉(zhuǎn)換器508以16字節(jié)的塊發(fā)送數(shù)據(jù),并且 進行請求的設(shè)備以32字節(jié)的塊讀取數(shù)據(jù),則可以使用環(huán)形緩沖器718以變換后的數(shù)據(jù)的兩 個16字節(jié)的塊形成單個32字節(jié)的數(shù)據(jù)塊。當排隊在環(huán)形緩沖器718中的數(shù)據(jù)大小具有適 合于向進行請求的設(shè)備進行傳輸?shù)拇笮r,通道控制邏輯702在步驟814將變換后的數(shù)據(jù) 傳輸?shù)竭M行請求的設(shè)備。在一個實施例中,如果在已經(jīng)完成步驟814之后存在將被傳輸?shù)?進行請求的設(shè)備的更多數(shù)據(jù),通道控制邏輯702從步驟802開始重復(fù)在流程圖800中概述 的步驟。
雖然本發(fā)明能夠有各種修改和替換形式,附圖中以示例方式示出了特定實施例, 并且此處對其進行了詳細描述。然而,應(yīng)當理解,本發(fā)明不旨在限于公開的特定形式。而是 本發(fā)明覆蓋落在下面所附權(quán)利要求中定義的本發(fā)明的精神和范圍內(nèi)的所有修改、等同物和 替換物。
權(quán)利要求
1.一種直接存儲器存取(DMA)控制器,包括控制電路,適合于接收設(shè)備控制信息,并且產(chǎn)生DMA傳輸信號; 轉(zhuǎn)換器,適合于接收DMA傳輸數(shù)據(jù),并且將DMA傳輸數(shù)據(jù)轉(zhuǎn)換為變換后的數(shù)據(jù);和 多個DMA通道接口電路,適用于接收DMA傳輸信號和變換后的數(shù)據(jù)。
2.如權(quán)利要求1所述的DMA控制器,其中所述轉(zhuǎn)換器適合于使用密碼電路加密DMA傳 輸數(shù)據(jù),以便將DMA傳輸數(shù)據(jù)轉(zhuǎn)換為變換后的數(shù)據(jù)。
3.如權(quán)利要求2所述的DMA控制器,其中所述密碼電路包括符合高級加密標準的電路。
4.如權(quán)利要求1所述的DMA控制器,其中所述轉(zhuǎn)換器適合于使用密碼電路解密DMA傳 輸數(shù)據(jù),以便將DMA傳輸數(shù)據(jù)轉(zhuǎn)換為變換后的數(shù)據(jù)。
5.如權(quán)利要求4所述的DMA控制器,其中所述密碼電路包括符合高級加密標準的電路。
6.如權(quán)利要求1所述的DMA控制器,其中所述轉(zhuǎn)換器適合于使用錯誤檢測和糾正電路 對DMA傳輸數(shù)據(jù)進行編碼,以便將DMA傳輸數(shù)據(jù)轉(zhuǎn)換為變換后的數(shù)據(jù)。
7.如權(quán)利要求1所述的DMA控制器,其中所述轉(zhuǎn)換器適合于使用錯誤檢測和糾正電路 對DMA傳輸數(shù)據(jù)進行解碼,以便將DMA傳輸數(shù)據(jù)轉(zhuǎn)換為變換后的數(shù)據(jù)。
8.如權(quán)利要求1所述的DMA控制器,其中所述轉(zhuǎn)換器適合于通過使用校驗和將DMA傳 輸數(shù)據(jù)轉(zhuǎn)換為變換后的數(shù)據(jù)。
9.一種利用DMA控制器轉(zhuǎn)換數(shù)據(jù)的方法,包括 從目標設(shè)備接收DMA傳輸數(shù)據(jù);在DMA控制器中將DMA傳輸數(shù)據(jù)轉(zhuǎn)換為變換后的數(shù)據(jù);和 將變換后的數(shù)據(jù)傳輸?shù)竭M行請求的設(shè)備。
10.如權(quán)利要求9所述的方法,其中執(zhí)行對DMA傳輸數(shù)據(jù)的轉(zhuǎn)換,而不用首先將傳輸數(shù) 據(jù)保存在中間介質(zhì)上。
11.如權(quán)利要求9所述的方法,包括當在DMA通道處于使用中的同時發(fā)生錯誤時,去活 DMA通道。
12.如權(quán)利要求11所述的方法,包括當發(fā)生所述錯誤時,記錄并且報告DMA通道的所述去活。
13.如權(quán)利要求11所述的方法,包括在去活DMA通道之前,確定傳輸?shù)淖止?jié)數(shù)。
14.如權(quán)利要求9所述的方法,包括當DMA控制器停止接收來自目標設(shè)備的DMA傳輸數(shù) 據(jù)時,去活DMA通道。
全文摘要
公開了一種用于由DMA控制器(202)對數(shù)據(jù)進行變換,而不首先將傳輸?shù)臄?shù)據(jù)保存在中間介質(zhì)上的方法和系統(tǒng)。該方法包括DMA控制器(202)訪問在系統(tǒng)內(nèi)的原始位置和系統(tǒng)內(nèi)的目的地位置之間傳輸?shù)臄?shù)據(jù)。在被發(fā)送到目的地位置之前,訪問的數(shù)據(jù)被通過DMA控制器(202)傳遞。在數(shù)據(jù)被通過DMA控制器(202)傳遞的同時,其被變換為修改狀態(tài)。這種變換可以包括數(shù)據(jù)的加密和解密。變換還可以包括通過對以前編碼的數(shù)據(jù)進行編碼或解碼,向該數(shù)據(jù)添加糾錯位。在完成變換之后,數(shù)據(jù)被直接發(fā)送到規(guī)定的目的地位置,通常是存儲器電路或I/O設(shè)備。還公開了能夠執(zhí)行數(shù)據(jù)變換的DMA控制器(202)。
文檔編號G06F13/28GK102037453SQ200980118026
公開日2011年4月27日 申請日期2009年4月1日 優(yōu)先權(quán)日2008年4月1日
發(fā)明者D·G·康羅伊, J·P·德西薩立, M·J·史密斯, T·J·米萊特 申請人:蘋果公司