用于直接存儲器訪問傳輸?shù)南到y(tǒng)和方法
【專利摘要】用于直接存儲器訪問傳輸?shù)南到y(tǒng)和方法。一種用于經(jīng)由多個直接存儲器訪問(DMA)事務處理在存儲器和外圍單元之間傳輸數(shù)據(jù)的系統(tǒng)和方法,其中,向所述多個DMA事務處理中的至少兩個DMA事務處理分配和/或附加各自的時間戳。
【專利說明】用于直接存儲器訪問傳輸?shù)南到y(tǒng)和方法
【技術(shù)領域】
[0001] 本公開內(nèi)容的特定實施例涉及一種用于直接存儲器訪問傳輸?shù)南到y(tǒng)和方法。更具 體地,本公開內(nèi)容的特定實施例涉及一種用于經(jīng)由多個直接存儲器訪問事務處理在存儲器 和外圍單元之間傳輸數(shù)據(jù)的系統(tǒng)和方法。
【背景技術(shù)】
[0002] 直接存儲器訪問(DM)是現(xiàn)代計算機的特征,其允許計算機內(nèi)的特定硬件子系統(tǒng) 訪問系統(tǒng)存儲器以獨立于中央處理單元(CPU)進行讀取和/或?qū)懭?。許多硬件系統(tǒng)使用包 括磁盤驅(qū)動控制器、顯卡、網(wǎng)卡和聲卡的DMA。相比于不具有DM通道的計算機,提供有DM 通道的計算機通??梢栽诜浅I俚腃PU開銷的情況下將數(shù)據(jù)傳輸?shù)窖b置和從裝置傳輸數(shù) 據(jù)。
[0003] DM通常用來允許裝置傳輸數(shù)據(jù),而不使CPU暴露于重的負荷。如果CPU必須將每 個數(shù)據(jù)塊從源復制到目的地,則這通常將比復制正常的存儲器塊慢,因為通過外圍總線對 I/O裝置的訪問一般比正常的系統(tǒng)RAM慢。在此期間,CPU對于涉及CPU總線訪問的其它任 務將是不能利用的,雖然它可以繼續(xù)進行不要求總線訪問的任何工作。
[0004] DMA傳輸本質(zhì)上將存儲器塊從一個裝置復制到另一個裝置。雖然CPU發(fā)起傳輸,但 它不執(zhí)行傳輸。傳輸通常由通常作為主板芯片組的部分的DM控制器執(zhí)行。DM的典型用 法是將存儲器塊從系統(tǒng)RAM復制到裝置上的緩沖區(qū),或從裝置上的緩沖區(qū)復制存儲器塊, 其中,該操作不需要太多的處理器容量,結(jié)果是所述處理器可被安排來執(zhí)行其它任務。因 此,DM對高性能嵌入式系統(tǒng)是必不可少的。
[0005] DM控制器一般將數(shù)據(jù)從數(shù)據(jù)源位置傳輸?shù)綌?shù)據(jù)目的位置。在一些應用中,DM傳 輸用在安全關(guān)鍵系統(tǒng)中,其中,重要的是,DM傳輸執(zhí)行正確的傳輸操作。由于進程的自治 特性要求大量的監(jiān)督,DM操作可能特別難以檢查。
[0006] 特別是,當DM用來以周期的方式自動從自治外圍單元(諸如串行接口、模數(shù)轉(zhuǎn)換 器(ADC),或輸入捕獲系統(tǒng))卸載數(shù)據(jù)時,它經(jīng)常被配置為將數(shù)據(jù)從外圍單元移動到一個或 多個存儲器緩沖區(qū)。出現(xiàn)在存儲器緩沖區(qū)中的數(shù)據(jù)通常被控制系統(tǒng)用于系統(tǒng)執(zhí)行器和通信 接口的實時控制。因此,該數(shù)據(jù)具有時間特征,因為系統(tǒng)應當只使用剛剛已經(jīng)被傳輸?shù)漠斍?數(shù)據(jù),而不是歷史數(shù)據(jù)。重要的是,知道自從上次數(shù)據(jù)被使用,數(shù)據(jù)緩沖區(qū)已被刷新。因此, CPU必須實時檢查DM傳輸操作,這要求CPU密集的低等待時間服務。
[0007] 通常,在還包括一個主機CPU的嵌入式系統(tǒng)中,已知的DM外圍設備執(zhí)行數(shù)據(jù)事務 處理。CPU負責監(jiān)督DMA的正確操作。鏈接的DMA事務處理序列通過配置DMA和中斷路由 器來正確地排序,所述中斷路由器用來在序列中的前面的事務處理完成后觸發(fā)新的DM事 務處理的開始。鏈接的DMA事務處理序列通常通過下列方法中的任意一個方法來進行排 序:
[0008] ?配置DMA控制器和中斷路由器,使得完成一個持續(xù)的DMA事務處理經(jīng)由硬件觸發(fā) 器發(fā)起下一個DMA事務處理的開始。
[0009] *CPU介入DMA事務處理之間,并在接收到前面的DMA事務處理已完成的DMA通信 量管理信號標志時經(jīng)由軟件觸發(fā)發(fā)起下一個DMA事務處理的開始。
[0010] US2009/0271536公開了一種有條件地執(zhí)行I/O描述符的DMA控制器,其中,鏈接的 列表項包含在描述符字段上計算的校驗和。當取出鏈接的列表項時,在描述符上計算校驗 和。如果兩個校驗和相等,則該鏈接的列表項被認為是有效的,并且執(zhí)行該描述符。在DM I/O的結(jié)尾,取出鏈接的列表項中的下一個描述符。當校驗和失敗時,則破壞描述符、停止通 道,并且向操作系統(tǒng)報告錯誤。
[0011] 這些已知的方法包括以下缺點:
[0012] ?當DMA事務處理序列在進行中時,DMA數(shù)據(jù)移動時間序列的驗證要求CPU的干 預,以確認事件的排序。
[0013] · DMA狀態(tài)的后處理并不保證正確的操作。
[0014] ?已經(jīng)被移動的目的數(shù)據(jù)的后處理是CPU密集的。
[0015] 本公開內(nèi)容面對用來針對上述問題提供解決方案的挑戰(zhàn)。
【發(fā)明內(nèi)容】
[0016] 根據(jù)一個實施例,本公開內(nèi)容提供一種系統(tǒng)和方法,其用于經(jīng)由直接存儲器訪問 (DMA)事務處理、操作或事件在存儲器和外圍單元之間傳輸數(shù)據(jù)。該系統(tǒng)和方法包括對DM 事務處理的各自時間戳的分配或附加,使得可以比較不同DMA事務處理的相對定時。該機 制和分配的或附加的時間戳可用來支持跟蹤不同的DM事件或事務處理。
[0017] 根據(jù)另一實施例,本公開內(nèi)容提供一種系統(tǒng)和裝置,其用于在DM事務的結(jié)尾給 目的數(shù)據(jù)分配或附加一個相應的時間戳。分配或附加給DM事務、操作或事件的目的數(shù)據(jù) 的時間戳提供了用于比較各自DM事務相對時間完成的方式。
[0018] 根據(jù)又另一個實施例,本公開內(nèi)容提供一種用于向主機CPU報告DMA時間戳的系 統(tǒng)和機制。該對主機CPU的DM時間戳的報告允許CPU檢查DM事件或事務處理的內(nèi)部處 理。由此,可確認DM事務的正確排序。該CPU也可檢測DM操作的不正確率,諸如等待時 間,到達率,丟失和/或重復序列。
[0019] 根據(jù)本公開內(nèi)容的一個實施例,各自的時間戳被附加到最終目的數(shù)據(jù),該數(shù)據(jù)在 DMA事務處理的最后DMA與入移動期間被與入。
[0020] 根據(jù)本公開內(nèi)容的另一個實施例,時間戳由遞增的二進制序列(例如自由運行的 二進制計數(shù)器)生成,并可支持比較和算術(shù)運算。
[0021] 根據(jù)本公開內(nèi)容的另一個實施例,當序列的最后一個DMA傳輸完成時,可自動執(zhí) 行一個附加的傳輸以捕獲自由運行的定時器計數(shù)器的當前值,并將當前值移動到目的存儲 器結(jié)構(gòu)中的下一個地址。
[0022] 根據(jù)本公開內(nèi)容的另一個實施例,時間戳可以進行后處理,以檢查DMA事務處理 的時間序列。時間戳的這種后處理可以使得能夠進行DMA事務處理序列的時間檢查。
[0023] 根據(jù)本公開內(nèi)容的另一個實施例,時間戳的目的地址可從DMA事務處理控制組計 算。該時間戳可被詢問以確定一系列DM事務的序列。
[0024] 根據(jù)本公開內(nèi)容的另一個實施例,時間戳的目的地址可從DMA事務處理控制器或 控制組計算。在本申請中該時間戳可被詢問以確定一系列DM事務處理的序列。
[0025] 根據(jù)另一個實施例,本公開內(nèi)容可用在車輛的電機控制應用中。如果ADC用來例 如經(jīng)由電阻分流器或霍爾效應傳感器對有效電機電流進行采樣,則電流與瞬時電機轉(zhuǎn)矩相 關(guān)聯(lián)。由于電機轉(zhuǎn)矩是一個關(guān)鍵的安全關(guān)注,所以時間戳示出ADC在正確的時間處被成功 觸發(fā)并進行轉(zhuǎn)換。
[0026] 根據(jù)本公開內(nèi)容的另一個實施例,時間戳被分配給將在存儲器和一個或多個外圍 單元之間傳輸?shù)臄?shù)據(jù),其中,該數(shù)據(jù)與分配和/附加給每個DM事務處理、操作或事件的時 間戳一起,通過直接存儲器訪問(DM)控制在該存儲器和一個或多個外圍單元之間進行傳 輸。
[0027] 在本申請中,ADC需要在與電機的脈沖寬度調(diào)制(PWM)定相同步的點處及時被觸 發(fā),因為如果電機在錯誤的時間處被采樣,則控制回路可能不穩(wěn)定,且所報告的轉(zhuǎn)矩可能不 正確。因此,ADC由定時器觸發(fā),電機定相也一樣,但是如果比較或定時器被干擾,或不處于 正確的速率處,則可能導致故障。
[0028] 本公開內(nèi)容提供一種實現(xiàn)時間戳功能的DM控制器。本公開內(nèi)容提供一種使得能 夠進行用于以下的唯一的方法的新功能:
[0029] ?證明DMA的操作由正確的事件觸發(fā)。
[0030] ?證明目的數(shù)據(jù)已被新的數(shù)據(jù)塊刷新。
[0031] 因此,本公開內(nèi)容對本領域的當前的實現(xiàn)提供了有利的貢獻,其中,除非使用真正 的中斷服務例行程序,ADC的似真性至今還難以確定。在已知的應用中,CPU可僅卸載ADC, 也可讀取獨立的定時器,以驗證觸發(fā)事件出現(xiàn)在正確的時間處。通常情況下,電機定相為 50 μ s速率,這創(chuàng)建了大量的中斷加載,尤其是在每個電機換向周期要求2或3個ADC測量 時,且應用可以具有由一個核心控制的多個電機。
[0032] 從以下的描述和附圖中,將更加全面地理解本公開內(nèi)容的這些和其它優(yōu)點、方面 和新穎的特征以及其圖示的實施例的細節(jié)。
【專利附圖】
【附圖說明】
[0033] 附圖被包含來提供對本公開內(nèi)容的進一步的理解,并且被并入本說明書中且構(gòu)成 本說明書的一部分。附圖圖示了本公開內(nèi)容的實施例,并與描述一起用來解釋本公開內(nèi)容 的原理。本公開內(nèi)容的其它實施例以及本公開內(nèi)容的許多意圖的優(yōu)點將容易被理解,因為 通過參考以下的詳細描述,它們變得更好理解。附圖中的元件未必相對于彼此按比例繪制。 相同的參考數(shù)字指示對應的相同的部分。
[0034] 圖1是圖示了根據(jù)本公開內(nèi)容的實施例的時間戳生成的示意圖;以及
[0035] 圖2是圖示了根據(jù)本公開內(nèi)容的實施例的具有對32位源數(shù)據(jù)的時間戳附件的DM 傳輸?shù)牟灰鈭D。
[0036] 圖3是圖示了根據(jù)本公開內(nèi)容的另一實施例的具有對16位源數(shù)據(jù)的時間戳附件 的DMA傳輸?shù)牟灰鈭D。
[0037] 圖4是圖示了根據(jù)本公開內(nèi)容的另一實施例的具有對遞減的目的地址的時間戳 附件的DMA傳輸?shù)牟灰鈭D。
【具體實施方式】
[0038] 在下面的詳細描述中,參考形成其一部分的附圖,并且在所述附圖中通過例證的 方式示出了其中可實踐本公開內(nèi)容的具體實施例。將理解的是,在不脫離本公開內(nèi)容的精 神和范圍下,可利用其它實施例并可做出結(jié)構(gòu)或邏輯改變。因此,以下的詳細描述,不應被 當作為限制意義,本公開內(nèi)容的范圍由所附的權(quán)利要求限定。
[0039] 本公開內(nèi)容涉及采用直接存儲器訪問控制(DMA),在存儲器和外圍單元(諸如例 如串行接口、交換機或路由器等)之間傳輸數(shù)據(jù)。
[0040] 圖1示出了圖示根據(jù)本公開內(nèi)容的的實施例的示意圖。在本公開內(nèi)容的這個實施 例中,時間戳的生成可如下執(zhí)行:
[0041] 系統(tǒng)時鐘除以8以生成用來對32位向上同步計數(shù)器進行計時的較慢的時間戳基 本時鐘。該計數(shù)器復位后自動開始,且32位二進制時間戳在時間戳基本時鐘的每個上升沿 上遞增。在系統(tǒng)時鐘運行以保證對每個時間戳值的唯一性的同時,該32位二進制時間戳不 斷遞增。
[0042] 時間戳只能通過要求復位來改變,其使時間戳回到其初始值。在釋放復位時,時間 戳恢復向上計數(shù)序列。在時間戳溢出預先確定的閾值的情況下,時間戳切換回初始值,并恢 復向上計數(shù)序列。時間戳值可通過例如合適的軟件來讀取。
[0043] 參考圖1,所提供的系統(tǒng)時鐘頻率fSYS為100MHz,隨后,由8分頻器分頻可生成 12. 5MHz的時間戳輸入時鐘。因此32位二進制時間戳計數(shù)器每80ns秒遞增。在一個實施 例中,時間戳以與DMA事務處理速率一致的速率遞增。如果時間戳以快于DMA事務處理速 率的速率遞增,則它可能太頻繁地溢出,其消耗過多的功率。如果時間戳以低于DM事務處 理速率的速率遞增,DMA事務處理可能不能被提供有唯一的時間戳。
[0044] 圖2示出了圖示根據(jù)本公開內(nèi)容的實施例的DM事件或傳輸?shù)氖疽鈭D。圖2中, 示出了源存儲器和目的存儲器,其分別具有遞增的源地址1C H,18h,14h,10h,0h,08C h,04Ch, OOCh。在圖示的示例中,在DMA傳輸、操作或事務處理期間,由比特數(shù)0-15和16-31圖示的操 作或事務處理兩個16位半字經(jīng)由DMA傳輸、操作或事務處理從具有遞增的源地址1C H,18h, 14h,10h,0h,08C h,04Ch,00Ch 的源存儲器到具有遞增的目的地址 1Ch,18h,14h,10h,0h,08C h, 04Ch,OOCh的目的存儲器進行傳輸。在該DMA傳輸中,在DMA事務處理目的數(shù)據(jù)結(jié)尾,各自 的時間戳被附加在立即下一個的更高的32位對齊的目的地址處。在圖示的示例中,時間戳 存儲在目的地址〇8 H處。
[0045] 圖2是圖示了根據(jù)本公開內(nèi)容的實施例的具有對32位源數(shù)據(jù)的時間戳附件的DM 傳輸?shù)氖疽鈭D,下面參照圖2,通過示例描述時間戳附件。
[0046] DMA通道被配置為執(zhí)行由四個DMA移動組成的DMA事務處理。每個DMA移動將16 位數(shù)據(jù)采樣從源地址傳輸?shù)侥康牡刂贰T谠吹刂诽幍乃膫€16位數(shù)據(jù)采樣在連續(xù)的目的地 址處被重新包裝成兩個32位字。由DM控制器進行的四個數(shù)據(jù)采樣的傳輸是重復的任務。 DM事務處理控制組被配置為循環(huán)緩沖區(qū)。如示例中所示,DM通道被配置為在DM事務處 理的結(jié)尾附加各自的時間戳。在當前DMA事務處理的結(jié)尾附加的時間戳與在下一個DMA事 務處理的結(jié)尾附加的時間戳是不同的。DM移動四個數(shù)據(jù)采樣,如以下示例性表所示:
[0047]
【權(quán)利要求】
1. 一種用于經(jīng)由多個直接存儲器訪問(DMA)事務處理在存儲器和外圍單元之間傳輸 數(shù)據(jù)的方法,所述方法包括: 執(zhí)行多個DMA事務處理;W及 向所述多個DMA事務處理中的至少兩個DMA事務處理分配或附加各自的時間戳。
2. 權(quán)利要求1所述的方法,進一步包括: 使用附加到所述DMA事務處理的所述時間戳來比較不同的DM事務處理的相對定時。
3. 權(quán)利要求1所述的方法,進一步包括: 使用附加到所述DMA事務處理的所述時間戳來支持對所述DM事務處理的跟蹤。
4. 權(quán)利要求1所述的方法,進一步包括: 將時間戳附加到DMA事務處理的目的數(shù)據(jù)。
5. 權(quán)利要求4所述的方法,進一步包括: 使用附加到不同的DMA事務處理的所述目的數(shù)據(jù)的所述時間戳,W比較各自DMA事務 處理的相對時間完成。
6. 權(quán)利要求4所述的方法,其中所述時間戳被附加到最終的目的數(shù)據(jù),所述最終的目 的數(shù)據(jù)在所述DMA事務處理的最后的DMA寫操作期間被寫入。
7. 權(quán)利要求4所述的方法,進一步包括: 處理附加到所述DMA事務處理的所述時間戳,W證明所述目的數(shù)據(jù)是否已被新的數(shù)據(jù) 塊刷新。
8. 權(quán)利要求1所述的方法,進一步包括: 將附加到所述DMA事務處理的所述時間戳報告給主機中央處理單元(CPU)。
9. 權(quán)利要求1所述的方法,進一步包括: 從遞增的二進制序列或自由運行的定時器計數(shù)器生成所述時間戳,W支持比較和算術(shù) 運算。
10. 權(quán)利要求1所述的方法,進一步包括: 當DMA傳輸序列的最后的DMA傳輸完成時,執(zhí)行附加的傳輸W鎖存定時器計數(shù)器的當 前值并將所述當前值移動到目的存儲器結(jié)構(gòu)中的下一個地址。
11. 權(quán)利要求1所述的方法,進一步包括: 處理附加到所述DMA事務處理的所述時間戳,W檢查DMA事務處理的時間序列。
12. -種用于使用多個直接存儲器訪問(DMA)事務處理傳輸數(shù)據(jù)的系統(tǒng),包括: 分配組件,其被配置為向待傳輸?shù)乃鰯?shù)據(jù)分配和/或附加各自的時間戳;W及 傳輸組件,其被配置為通過DMA控制將所述數(shù)據(jù)連同分配和/或附加到每個DMA事務 處理的時間戳一起傳輸。
13. 權(quán)利要求12所述的系統(tǒng),進一步包括: 主機中央處理單元(CPU),其被配置為使用附加到所述DMA事務處理的所述時間戳來 檢查所述DMA事務處理的內(nèi)部處理,并進一步被配置為使用所述DMA事務處理的所述時間 戳來檢查DMA事務處理的正確排序,和/或還進一步被配置為使用所述DMA事務處理的所 述時間戳來檢測所述DMA事務處理的不正確率、等待時間、到達率、丟失和/或重復序列。
14. 權(quán)利要求12所述的系統(tǒng),進一步包括: 模數(shù)轉(zhuǎn)換器(ADC),其被配置為經(jīng)由所述多個直接存儲器訪問DMA事務處理采樣并發(fā) 送一個或多個操作參數(shù),其中, 所述CPU被配置為使用附加到所述DMA事務處理的所述時間戳來檢查所述ADC是否在 預先確定的的時間點處被觸發(fā)和/或轉(zhuǎn)換。
15. -種直接存儲器訪問(DMA)控制器,包括: 傳輸部分,其被配置為經(jīng)由多個直接存儲器訪問DMA事務處理傳輸數(shù)據(jù);W及 分配組件,其被配置為向所述多個DMA事務處理中的至少兩個DMA事務處理分配或附 加各自的時間戳。
【文檔編號】G06F13/28GK104346307SQ201410456571
【公開日】2015年2月11日 申請日期:2014年7月25日 優(yōu)先權(quán)日:2013年7月26日
【發(fā)明者】S·布魯爾頓, S·科塔姆 申請人:英飛凌科技股份有限公司