[發明專利]用于執行DMA塊移動的方法及DMA設備無效
| 申請號: | 200810001637.7 | 申請日: | 2008-01-07 |
| 公開(公告)號: | CN101221544A | 公開(公告)日: | 2008-07-16 |
| 發明(設計)人: | R·尼古拉斯;B·C·德雷魯普;J·古普塔;G·比朗;L·E·德拉托爾 | 申請(專利權)人: | 國際商業機器公司 |
| 主分類號: | G06F13/30 | 分類號: | G06F13/30 |
| 代理公司: | 北京市中咨律師事務所 | 代理人: | 于靜;李崢 |
| 地址: | 美國*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 執行 dma 移動 方法 設備 | ||
技術領域
本申請通常涉及改進的數據處理系統和方法。更具體地說,本申請涉及具有用于高等待時間和亂序直接存儲器訪問設備的屏障和中斷機制的直接存儲器訪問控制器。
背景技術
許多片上系統(SOC)設計都包含一種稱為直接存儲器訪問(DMA)控制器的設備。DMA的用途是高效地將數據塊從存儲器中的一個位置移動到另一個位置。DMA控制器通常用于在系統存儲器與輸入/輸出(I/O)設備之間移動數據,但是也用于在系統存儲器中的一個區域與另一個區域之間移動數據。DMA控制器被稱為“直接”是因為移動數據時不涉及處理器。
在沒有DMA控制器的情況下,可以通過在軟件控制下,使處理器逐步地將數據從一個存儲器空間復制到另一個存儲器空間來移動數據塊。這對于較大數據塊而言通常并不可取。當處理器逐步地復制較大數據塊時,速度比較緩慢,因為處理器沒有較大的存儲器緩沖區并且必須以較小的大小低效率地移動數據,例如每次32位。此外,當處理器進行復制時,它沒有時間執行其他工作。因此,處理器一直處于使用狀態直至移動完成。使DMA控制器承擔這些數據塊移動可以更高效,DMA控制器可以更快地并且與其他工作并行地執行這些移動。
DMA控制器通常具有多個“通道”。如在此使用的,“通道”指要通過DMA控制器移動的獨立數據流。因此,可以將DMA控制器編程為在不同的通道上同時執行數個塊移動,從而允許DMA設備同時向/從數個I/O設備傳輸數據。
DMA控制器的另一個典型特性是分散/收集操作。分散/收集操作是指其中處理器不需要為要從某一源移動到某一目的地的每個數據塊對DMA控制器進行編程的操作。相反,處理器在系統存儲器中建立描述符表或描述符鏈接列表。描述符表或鏈接列表是一組描述符。每個描述符都描述了數據塊移動,包括源地址、目的地地址以及要傳輸的字節數。將非分散/收集塊移動(直接通過DMA寄存器進行編程)稱為“單個編程”DMA塊移動。
DMA控制器的鏈接列表體系結構比表體系結構更具靈活性和動態性。在鏈接列表體系結構中,處理器使DMA通道之一引用鏈中的第一個描述符,并且鏈接列表中的每個描述符都包含指向存儲器中下一個描述符的指針。描述符可以位于系統存儲器中的任何位置,并且處理器可以在發生傳輸時動態在列表中進行添加。DMA控制器自動遍歷表或列表并執行每個描述符所描述的數據塊移動,直至到達表或列表的結尾。
現代的DMA設備可以連接到允許讀取數據亂序返回的總線。也就是說,DMA控制器可以向總線發出數個全部為相同或不同數據塊移動的一部分的讀取事務,并且目標設備可以按照與發出讀取順序不同的順序返回數據。通常,發起者為每個讀取事務分配一個“標記”號,以便當讀取數據從總線返回時,發起者將根據標記知道數據所屬的事務。
排隊的事務可以以任何順序完成。這允許DMA設備通過同時將多個事務排隊到總線(包括將不同事務排隊到不同設備)來實現最佳性能。讀取事務可以以任何順序完成,并且當讀取數據到達時立即啟動其關聯的寫入。允許按照任何順序完成讀取及其關聯寫入將在給定總線上實現可能的最佳性能,但是可能會導致某些問題。
當系統軟件建立要在I/O設備與存儲器之間移動或從存儲器中的一個區域移動到另一個區域的大型存儲器塊時,軟件將需要知道何時完成移動數據塊以便它可以對數據采取操作。由于處理器或某些其他設備可能會在傳輸完成時對數據采取操作,所以必須直至所有與移動關聯的數據都已傳輸時才能生成中斷;否則,處理器可能會嘗試對尚未傳輸的數據采取操作,并且因此將讀取錯誤的數據。在亂序執行時,DMA設備不能簡單地在塊中的最后一個事務完成時生成中斷。
某些系統通過當一系列數據移動完成時使“完成代碼”移動到“郵箱”來工作。郵箱是用作消息的先進先出(FIFO)的消息傳送設備。當DMA控制器通過寫入郵箱地址來將消息傳送到郵箱時,DMA控制器可以按順序將消息傳送到處理器。消息通常很小,在八字節或十六字節的量級。當軟件在分散/收集列表中建立一系列塊移動時,軟件可以在描述符鏈接列表中輸入完成消息,以便DMA設備可以通過同一分散/收集描述符列表來移動數據塊和完成代碼消息兩者。
但是,為了使軟件正確工作,當DMA控制器將完成消息寫入郵箱時,正在寫入郵箱的描述符之前的所有描述符都必須已完成,因為郵箱像中斷一樣,將通知處理器已移動一定量的數據。由于所有事務都可以為了性能而亂序完成,所以DMA設備可以在來自先前描述符的某些其他事務完成之前將完成消息寫入郵箱,除非存在一種機制來防止這種情況。
發明內容
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國際商業機器公司,未經國際商業機器公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810001637.7/2.html,轉載請聲明來源鉆瓜專利網。





