新四季網

使用集成dma引擎進行高性能易失性磁碟驅動器存儲器訪問的裝置和方法

2023-05-30 10:47:11 3

專利名稱:使用集成dma引擎進行高性能易失性磁碟驅動器存儲器訪問的裝置和方法
技術領域:
本發明的一個或多個實施例一般涉及集成電路和計算機系統設計領域。特別地,本發明的一個或多個實施例涉及使用集成直接存儲器訪問(DMA)引擎進行高性能易失性磁碟驅動器存儲器訪問的裝置和方法。
背景技術:
RAMDISK是一種存儲器管理技術,其中在程序控制下,將一部分易失性系統存儲器用作大容量存儲設備,這裡稱作「易失性磁碟驅動器(VDD)存儲器」。對RAMDISK的作業系統(OS)文件操作比對傳統硬碟的OS操作要快很多。因此,通過將最常用的程序和文件放置在為RAMDISK分配的系統存儲器的一部分之內,RAMDISK可以顯著地提高系統性能。儘管一旦關閉系統,RAMDISK就不會保留所存儲的信息,但是RAMDISK存儲器管理技術對於以常規OS文件格式存儲的數據的臨時存儲和緩存是非常有用的。典型地,將RAMDISK用於web/文件伺服器以便緩存海量媒體存儲池中的常用文件。
傳統上,用於實現RAMDISK的驅動器完全以軟體實現。因此,當程序或進程想要讀/寫RAMDISK中的文件時,將調用RAMDISK驅動器。這種驅動器首先識別所請求的文件是如何映射到保留給RAMDISK的系統存儲器位置的。一旦識別出,驅動器將向RAMDISK的存儲器傳輸來自請求進程的存儲器的數據,或從RAMDISK的存儲器向請求進程的存儲器傳輸數據。通常,這是在CPU的幫助下執行的,其中驅動器指示CPU從系統存儲器的RAMDISK部分請求數據。
然而,需要CPU(中央處理單元)為RAMDISK驅動器既管理數據傳輸又管理文件管理功能。儘管RAMDISK存儲器管理技術比使用傳統存儲驅動器快許多,但是RAMDISK驅動器會利用大量CPU周期以在RAMDISK位置和應用程式位置之間傳輸數據。此外,為超出4G字節(GB)的存儲器(32-位地址)實現RAMDISK,需要RAMDISK驅動器使用CPU的頁地址擴展(PAE)模式。然而,PAE模式自身不僅對於RAMDISK驅動器,而且對於所有運行於系統之內的進程都會引入額外的性能損失。


本發明的各種實施例將通過附圖中的示例說明,而不是通過限制的方式說明,其中圖1是說明根據一個實施例的計算機系統的框圖,該計算機系統包含具有集成DMA引擎的DMA控制器以提供對虛擬磁碟驅動器(VDD)的高性能訪問;圖2是根據一個實施例進一步說明圖1的DMA控制器的框圖;圖3是根據一個實施例說明DMA寄存器和鏈描述符映射的框圖;圖4是根據一個實施例說明DMA描述符集合鍊表的框圖,該鍊表用於使用DMA訪問,對虛擬磁碟驅動器之內的數據塊進行訪問;圖5是根據一個實施例說明對VDD訪問請求的檢測以及使用圖1的DMA控制器通過直接存儲器訪問的VDD訪問請求的後續操作的框圖;圖6是說明用於使用已公開的技術對設計進行仿真、模擬以及製造的各種設計表示或格式的框圖。
具體實施例方式
將描述使用集成直接存儲器訪問(DMA)引擎進行高性能易失性磁碟驅動(VDD)存儲器訪問的方法和裝置。在一個實施例中,方法包括檢測對易失性系統存儲器中實現的VDD存儲器的數據訪問請求。一旦檢測到數據訪問請求,VDD驅動器會發出DMA數據請求以執行來自VDD的數據訪問請求。因此,在一個實施例中,將數據向在易失性系統存儲器的所分配的部分之內實現的VDD存儲器傳輸以及從其傳輸數據的工作被分擔給DMA引擎,例如存儲器控制中心(MCH)之內的集成DMA引擎。
在以下描述中,提出了很多諸如邏輯實現、信號和總線的型號和名稱、系統部件的類型和相互關係以及邏輯劃分/集成選擇的具體細節以便於更徹底的理解。但是,本領域的技術人員應當知道,本發明可以不用這些具體細節來實現。在其它實例中,沒有詳細顯示控制結構以及門級電路以避免使本發明難以理解。使用所包含的描述,本領域的那些普通技術人員將能夠在不需大量試驗的情況下實現正確的邏輯電路。
在以下描述中,將某些術語用於描述本發明的特徵。例如,術語「邏輯」表示用於實現一個或多個功能的硬體和/或軟體。比如,「硬體」的例子包括但不限於集成電路、有限狀態機乃至組合邏輯。集成電路可以採取諸如微處理器、專用集成電路、數位訊號處理器、微控制器等等的處理器的形式。
「軟體」的例子包括應用程式、小程序、例程乃至指令序列形式的可執行代碼。在一個實施例中,一件產品包括機器或其上存儲有指令的計算機可讀介質,該指令對計算機(或其它電子設備)進行編程以執行根據一個實施例的處理。計算機或機器可讀介質包括但不局限於可編程電子電路、包含易失性存儲器(例如,隨機訪問存儲器,等)和/或非易失性存儲器(例如,任何種類的只讀存儲器「ROM」、快閃記憶體)在內的半導體存儲設備、軟盤、光碟(例如,高密度盤或者數字視頻光碟「DVD」)、硬碟、磁帶等等。
系統圖1是說明根據一個實施例的包含直接存儲器訪問(DMA)控制器200以提供對VDD存儲器250的高性能訪問的計算機系統100的框圖。典型地,計算機系統100包括用於在處理器(CPU)102和晶片組130之間傳輸信息的處理器系統總線(前端總線(FSB))104。如這裡所述,術語「晶片組」用於總體描述與CPU 102連接以執行所希望的系統功能的各種設備。
典型地,晶片組130可以包括連接到圖形控制器150的存儲器控制中心110(MCH)。在一可選實施例中,圖形控制器150集成到MCH中,因此在一個實施例中,MCH 110用作集成圖形MCH(GMCH)。典型地,MCH 110還通過系統存儲器總線142連接到主存儲器140。在一個實施例中,主存儲器140可以包括但不限於隨機訪問存儲器(RAM)、動態RAM(DRAM)、靜態RAM(SRAM)、同步DRAM(SDRAM)、雙數據率(DDR)SDRAM(DDR-SDRAM)、RambusDRAM(RDRAM)或者任何能夠支持高速臨時數據存儲的設備。
在一個實施例中,MCH 110集成在CPU 102之內以使得能夠在CPU 102和主存儲器140之間進行直接連接。在一個實施例中,MCH110可以包括外設部件互連(PCI)PCI-Express(PCI-Ex)根埠180(180-1,...180-N),以便通過PCI-Ex連接182(182-1,...,182-N)將PCI-Ex終端190(190-1,...190-N)連接到MCH 110。典型地,PCI-Ex連接182可以提供點到點連接,比如由「PCI Express Base Specification1.0a」(勘誤2003年10月7日)定義,以允許外部終端設備190(190-1,...,190-N)和MCH 110之間的雙向通信。
作為進一步的說明,晶片組130包括輸入輸出(I/O)控制器中心(ICH)120。典型地,ICH 120可以包括通用串行總線(USB)連接或互連162以將一個或多個USB槽160連接到ICH 120。另外,串行高級技術附加裝置(SATA)172可以將硬碟驅動設備(HDD)170連接到ICH 120。在一個實施例中,ICH 120可以包括傳統的PCI/PCIx連接166以將一個或多個PCI/PCIx槽164連接到ICH 120。在一個實施例中,系統BIOS 106初始化計算機系統100。
再次參考圖1,在一個實施例中,計算機系統100包括VDD驅動器260。在操作中,VDD驅動器260負責預留和分配一部分易失性系統存儲器140,以用作VDD存儲器250。在一個實施例中,主存儲器140的分配給VDD存儲器250的部分是對於計算機系統100的核心作業系統(OS)隱蔽的非可交換存儲器。如這裡所述,VDD存儲器250或者可以稱為RAMDISK,它是一種存儲器管理技術,用於在程序控制下分配易失性系統存儲器的一部分以用作大容量存儲設備。
在一個實施例中,VDD驅動器260利用DMA控制器200執行VDD存儲器之內的文件操作。傳統上,使用已編程的傳輸來執行由設備驅動器(例如與連接到晶片組(130)的外圍設備相關的軟體)進行的主存儲器訪問,其中CPU發出總線事務以為外圍設備起動從存儲器讀數據的操作或向存儲器寫數據的操作。相反地,DMA是由先進的體系結構提供的能力,它允許在不涉及CPU的情況下將數據在外圍設備和主存儲器之間直接傳輸。因此,系統的CPU免於參與數據傳輸,因此加快了整個計算機的操作。在一個實施例中,如圖2所示,DMA控制器200提供計算機系統100之內的DMA能力。
在一個實施例中,DMA控制器包括集成DMA引擎210,用於提供多個DMA通道214(214-1,...214-N)。在一個實施例中,DMA控制器200提供四個DMA通道,每個都可以獨立地用於在系統存儲器140之內或從系統存儲器140向各種連接到晶片組130的外圍設備傳輸數據。在一個實施例中,如以下進一步詳細描述的,可以通過寫入主存儲器140的鏈描述符和存儲器映射內部寄存器組的組合從CPU 102訪問DMA通道編程接口,如圖3和4所示。
在一個實施例中,DMA通道214之間的仲裁以兩階段出現。典型地,每個DMA通道214具有獨立的對於DMA控制器200內部的仲裁器(DMA仲裁器212)的總線請求/許可對。作為進一步說明,DMA控制器200具有對於MCH 110中的主仲裁器(MCH仲裁器220)的單個請求/許可對。在一個實施例中,DMA仲裁器212使用嚴格輪詢策略以準許DMA通道和請求設備對主存儲器140的訪問。在一個實施例中,DMA仲裁器212可以包括在任何給定時間對於一個DMA通道可選的高優先級指示。因此,一組競爭的DMA通道在正常操作過程中實現均衡的帶寬性能。
再次參考圖1,如這裡所述,每個存在於連接到晶片組130的總線上的外圍設備或I/O卡在這裡被稱為「總線代理」。一般地將總線代理分成均衡代理和優先代理,從而當與均衡代理競爭總線佔用權時,優先代理被給予佔用權。需要這樣的仲裁,因為通常不允許總線代理同時驅動總線發出事務。與計算機系統100的總線代理相關的設備驅動器可以將事務請求232發出給MCH。根據優先級策略,MCH仲裁器220為DMA通道214仲裁以發出DMA傳輸請求,如圖2所示。
如這裡所述,術語「事務」被定義為與單個總線訪問請求相關的總線活動。通常,事務可以從總線仲裁以及傳送事務地址的信號的斷言(assertion)開始。如Intel(註冊商標)體系結構(IA)規範所定義的,一個事務可以包括多個階段,每個階段使用特定的信號集合以傳送特定類型的信息。多個階段中至少包括仲裁階段(針對總線佔用權)、請求階段、應答階段以及數據傳輸階段。
實現計算機系統(比如計算機系統100)內的DMA訪問需要將利用DMA訪問的設備指定為總線主控。總線主控是微處理器或獨立的I/O控制器(「設備驅動器」)中的程序,用於引導系統總線或輸入輸出(I/O)路徑上的通信。操作中,總線主控設備驅動器請求OS分配一部分主存儲器140,其為被指定或使得能夠進行DMA以發出DMA數據請求。
再次參考圖1,在一個實施例中,VDD驅動器260控制一個或多個被給予總線主控狀態的DMA通道,其使得VDD驅動器260能夠向DMA控制器200發出DMA訪問請求。在操作中,在DMA仲裁器212的仲裁以及隨後MCH仲裁器220的仲裁之後,將授權DMA通道214訪問以向VDD存儲器250發出DMA訪問請求。因此,在一個實施例中,當應用程式或進程請求執行文件操作時,比如對VDD存儲器250中存儲的文件的讀/寫訪問,那麼OS可以將該調用傳遞到VDD驅動器260。在一個實施例中,為引導DMA引擎210執行所請求的文件操作,VDD驅動器260編寫鏈描述符,如參照圖3所示。
在一個實施例中,DMA控制器200對所有的每通道寄存器組使用存儲器映射配置寄存器。在一個實施例中,與DMA控制器200相關的存儲器映射寄存器空間由32-位存儲器-基址寄存器(BAR)來標識,它由例如VDD驅動器260使用以訪問對編程DMA通道以起動DMA傳輸所需要的DMA配置寄存器270。在一個實施例中,如圖3所示,每個DMA通道具有12個32-位存儲器映射寄存器用於它的獨立操作。
在一個實施例中,當正常操作過程中從本地存儲器中取出一新的描述符時,DMA寄存器270中的八個自動地從鏈描述符(比如鏈描述符290)中的它們的對應的域加載。存儲器290中的對應的描述符域的格式與為DMA通道專用寄存器270定義的格式相同。當DMA控制器200處於常規模式時,如由DMA模式控制寄存器的DMA模式位所定義的,可以對通道控制272、通道狀態274、後續描述符地址282-1以及後續描述符高位地址282-2寄存器進行讀/寫訪問。其餘的寄存器都是只讀的,並且無論何時DMA通道從本地系統存儲器讀取鏈描述符,它們都被自動加載由鏈描述符290定義的新值。
表1


再次參考圖3,存儲器映射DMA寄存器270包括通道控制寄存器(CCR)272,如進一步參照以上提供的表1所說明的。在一個實施例中,CCR272為DMA通道指定整個操作環境。在一個實施例中,在初始化系統存儲器中的鏈描述符並以存儲器中第一個DMA鏈描述符的位置更新後續地址寄存器282(282-1,282-2)之後,設備驅動器初始化CCR 207。在一個實施例中,當DMA通道活動時可以寫CCR 272以修改DMA通道操作(例如,停止、掛起等)。
表2


在一個實施例中,通道狀態寄存器(CSR)274包含表示DMA通道狀態的標誌。在一個實施例中,寄存器274由VDD驅動器260讀取以得到當前DMA通道狀態並確定中斷源。如表2所示,包含在CSR274之內的各種標誌包括通道活動位,其表示通道正在使用;DMA終止(DMABRT)位,其表示終止DMA傳輸。同樣,CSR 274標誌還包括DMA停止(DSTP)位,當設置它時,表示停止這個通道的當前DMA傳輸。
在一個實施例中,設置DMA掛起(DSUS)位表示掛起DMA請求,而傳輸結束(EOT)位表示通道已為至少一個描述符成功完成DMA;鏈結束(EOC)標誌表示對包括最後一個描述符的所有描述符無錯誤的進行DMA傳輸。如這裡所述,術語「斷言」(assert)、「設置」(set)、「取消斷言」(deassert)等術語可以表示數據信號,它們是低態有效或者高態有效信號。所以當與信號關聯時,可交替地使用這些術語請求或者暗示高態有效或低態有效信號。
當前描述符地址寄存器(CDAR)276(276-1,276-2)包含本地系統存儲器中的當前鏈描述符的地址的低位和高位。在一個實施例中,當接通電源或系統復位時將CDAR 276清零,並且當開始新的塊傳輸時將自動用後續描述符地址寄存器(NDAR)中的值裝載。在一個實施例中,CDAR 276在正常操作過程中是只讀的,並且可以通過軟體輪詢以便隨著它穿過DMA描述符鏈來監控DMA通道的進程。其餘的DMA寄存器270對應於DMA鏈描述符290,可以在起動DMA傳輸之前由VDD驅動器260對其編程。
在一個實施例中,VDD驅動器260通過在本地系統存儲器中構建一個或多個鏈描述符來初始化DMA通道。如圖3和4所示,描述符可以包括表示DMA數據的初始位置的源地址292、表示DMA請求將DMA數據移動或傳輸到的位置的目的地址294、表示將要傳輸的字節的數量的傳輸計數298、以及表示描述符鏈中的後續描述符的地址的後續描述符地址296。將描述符鏈的最後描述符的後續描述符地址296設置為零。
在操作中,在由應用程式或進程發出文件操作請求之後,VDD驅動器260從OS接收文件操作請求。根據這種請求,VDD驅動器260對鏈描述符290的各個部分編程,包括源地址292和目的地址294以及傳輸計數。在一個實施例中,以雙字(Dword)為單位提供傳輸計數298,並且可以稱為Dword計數298。一旦對鏈描述符進行了編程,VDD驅動器260就更新DMA寄存器270的後續描述符地址寄存器286(NDAR)。
在一個實施例中,由DMA控制器200使用NDAR 286以便定位由VDD驅動器260編程的鏈描述符。因此,一旦用存儲器中的第一個鏈描述符290的地址填充NDAR 286,則VDD驅動器260就可以設置通道控制寄存器272(見表1)之內的DMA起動位。如圖4所示,VDD驅動器260可以對VDD存儲器250設置一串塊傳輸;但是,如果將來自應用程式或進程的文件請求限制為從VDD 250的單個塊傳輸,那麼VDD驅動器260將DMA鏈描述符290-1的後續描述符地址域設置為空(零)值。
再次參考圖3,DMA寄存器270的源地址寄存器(SAR)278和目的地址寄存器(DAR)280域還包括高位地址寄存器域(278-2和280-2)。在一個實施例中,提供高位地址寄存器域(278-2和280-2)以允許DMA訪問請求的36-位或64千兆字節尋址範圍。因此,與對建立在易失性系統存儲器140之內的VDD存儲器250或RAMDISK的傳統訪問不同,DMA控制器200允許對數據傳輸進行32位地址界限以外的尋址,否則,對超過四千兆字節(GB)邊界的VDD存儲器250的訪問請求需要使用CPU 102的頁地址擴展(PAE)能力。
圖5根據一個實施例說明了方法300的概要,其用於利用DMA控制器200之內的集成DMA引擎210來執行VDD存儲器250之內的文件操作。典型地,進程302(比如應用程式或運行程序)可以向包含在VDD存儲器250之內的文件請求文件操作或者讀/寫請求。在轉移310處,進程302發出VDD訪問請求。當由例如OS 304檢測到這種訪問時,在轉移320處,OS 304通過將VDD訪問請求傳遞給VDD驅動器260從而將該調用傳遞給VDD驅動器260。
在一個實施例中,VDD驅動器260識別對其檢測到文件操作或者讀/寫請求的文件。一旦檢測到,VDD驅動器260將文件名以及在該文件中該訪問請求被引導到的偏移量轉換為主存儲器140之內的物理地址。在一個實施例中,根據主存儲器140之內的映射到VDD存儲器250的物理地址範圍執行轉換。一旦確定該文件的物理地址,VDD驅動器260就可以通過填充DMA鏈描述符來編程DMA源和目的地址以及傳輸長度,例如,如圖3和4所示,從而發出DMA讀/寫(R/W)訪問請求到DMA控制器200,如轉移330所示。
如圖4所示,如果多個數據塊涉及文件操作或者對VDD 250的數據訪問請求,那麼VDD驅動器260可以為一串VDD塊傳輸編程。隨後,填充DMA控制器200的NDAR 282以便DMA控制器200可以裝載DMA寄存器270之內的描述符鏈,如圖3所示。一旦由例如VDD驅動器260設置了通道控制寄存器272的DMA起動位,DMA控制器200就執行這種動作。隨後,如圖2所示,DMA引擎210通過執行DMA R/W,根據至少一個由VDD存儲器250編程的DMA鏈描述符來執行數據訪問請求或者文件操作,如轉移340處所示。
在一個實施例中,一旦DMA引擎210完成了傳輸,在轉移350處,DMA引擎可以向VDD驅動器260發出一個中斷,以通知VDD驅動器文件操作完成以及已將數據傳輸到VDD 250或從VDD 250傳輸到分配給進程302的存儲器。典型地,一旦VDD驅動器260在轉移350接收到完成DMA傳輸的通知,VDD驅動器260可以通知進程302所請求的文件操作或者向/從VDD存儲器250的讀/寫訪問請求已完成。在一個實施例中,在轉移360處,VDD驅動器260通知進程302已完成的DMA傳輸。
因此,在一個實施例中,VDD驅動器260的生成將訪問VDD存儲器250之內的文件數據的操作轉交給DMA控制器的集成DMA引擎,例如參照圖1和圖2所說明的。因此,通過將數據傳輸工作從CPU 102分擔到DMA控制器200,提高了總體的系統性能,從而使得CPU 102避免執行傳統的數據傳輸以便執行對VDD存儲器250的文件操作。此外,不同於請求使用CPU的頁地址擴展(PAE)模式以尋址超過32位尋址邊界的範圍的傳統的RAMDISK驅動器,將VDD存儲器數據傳輸分擔給DMA引擎210,不僅避免了通過使用PAE模式而通常導致的對於VDD驅動器260的性能損失,而且避免了對於所有系統進程的性能損失。
圖6是說明使用公開的技術對設計進行仿真、模擬以及製造的各種表示或格式的框圖。表示設計的數據會以許多方式表示該設計。首先,由於在仿真中有用,硬體可以用硬體描述語言來表示,或者用另一個功能描述語言表示,其必需提供關於期望所設計的硬體如何執行的計算機化的模型。可以將硬體模型410存儲在存儲介質400中,比如計算機存儲器,因此,可以使用模擬軟體420模擬該模型,其中模擬軟體將特定的一套測試430應用到硬體模型以確定它是否真正按照計劃來運行。在一些實施例中,沒有將仿真軟體記錄、收集或者包含在介質中。
在設計的任何表示中,可以將數據存儲在任何形式的機器可讀介質中。調製或生成光波或電波460以傳送這種信息,存儲器450或者磁或光存儲器440,比如光碟,可以是機器可讀介質。任何這些介質都可以攜帶設計信息。因此,術語「攜帶」(例如,機器可讀數據介質攜帶信息)覆蓋了存儲在存儲裝置的信息或者編碼或調製為載波的信息。描述設計或設計的細節的位的集合是(當體現為機器可讀介質,例如載體或存儲介質時)一物品,其可以封閉在其自身內外,或者由他人用於進一步設計或者製造。
替代實施例應當理解,對於其它實施例,可以使用不同的系統配置。例如,雖然對於其它實施例系統100包括單個CPU 102,但是多處理器系統(其中,一個或多個處理器可以在結構和操作上與如上所述的CPU 102類似)也會受益於對各種實施例的VDD存儲器的集成DMA存儲器控制器訪問。此外,不同類型的系統或者不同類型的計算機系統,例如伺服器、工作站、桌面計算機系統、遊戲系統、嵌入式計算機系統、刀片伺服器等等,可以用於其它實施例。
已經公開了實施例和最佳方式,可以對已公開的實施例做出變形或改變,同時仍然屬於由以下權利要求所定義的本發明的實施例的範圍。
權利要求
1.一種方法,包括檢測對在易失性系統存儲器中實現的易失性磁碟驅動器(VDD)存儲器的數據訪問請求;以及發出直接存儲器訪問(DMA)數據請求以執行來自所述VDD存儲器的所述數據訪問請求。
2.如權利要求1所述的方法,其中,在檢測所述數據訪問請求之前,所述方法還包括由一進程請求對存儲在所述VDD存儲器之內的文件的讀/寫訪問;通過一作業系統(OS)檢測對存儲在所述VDD存儲器之內的所述文件的進程讀/寫訪問請求;以及將所述讀/寫訪問請求傳遞到VDD驅動器。
3.如權利要求1所述的方法,其中,在檢測所述數據訪問請求之前,所述方法還包括保留所述易失性系統存儲器的一部分;以及在初始化過程中,分配系統存儲器的所述保留部分以用作所述VDD存儲器。
4.如權利要求1所述的方法,其中,檢測所述數據訪問請求包括從作業系統接收由一進程發出的、對存儲在所述VDD存儲器中的文件的讀/寫訪問請求。
5.如權利要求1所述的方法,其中,發出所述DMA數據請求包括根據所述數據訪問請求生成至少一個DMA鏈描述符;以及發出一DMA起動命令以執行對存儲在所述VDD存儲器中的文件的所述數據訪問請求。
6.如權利要求5所述的方法,其中生成所述至少一個DMA鏈描述符包括識別所述VDD存儲器之內的、所述數據訪問請求所指向的文件;計算所述易失性系統存儲器之內的所述文件的物理開始地址;根據存儲在所述VDD存儲器之內的所述文件之內的所述數據訪問請求的偏移量計算DMA源地址;以及根據所述數據訪問請求計算DMA目的地址。
7.如權利要求5所述的方法,其中,發出所述DMA起動命令包括用本地系統存儲器之內的所述至少一個DMA鏈描述符的地址更新DMA引擎後續地址寄存器;以及設置DMA引擎起動DMA位,以使所述DMA引擎執行對存儲在所述VDD存儲器之內的所述文件的所述數據訪問請求。
8.如權利要求1所述的方法,還包括通過DMA引擎取得位於包含在後續描述符地址寄存器中的地址的DMA鏈描述符;根據所取得的DMA鏈描述符執行DMA傳輸,以便根據所述數據訪問請求將DMA數據傳輸到存儲在所述VDD存儲器之內的文件;以及如果完成所述DMA傳輸,則發出一中斷給虛擬磁碟驅動器。
9.如權利要求1所述的方法,還包括如果所述DMA引擎完成所述數據訪問請求的DMA傳輸,則從DMA引擎接收中斷;以及通知發出所述數據訪問請求的應用程式已經完成了所述文件操作。
10.如權利要求1所述的方法,其中,所述VDD存儲器的尺寸大於四千兆字節。
11.一種製品,包括其上存儲有指令的機器可讀介質,所述指令可以用於編程系統以執行包括下列步驟的方法檢測對在易失性系統存儲器中實現的易失性磁碟驅動器(VDD)存儲器的數據訪問請求;以及發出直接存儲器訪問(DMA)數據請求以執行來自所述VDD存儲器的所述數據訪問請求。
12.如權利要求11所述的製品,其中發出所述DMA數據請求包括根據所述數據訪問請求生成至少一個DMA鏈描述符;以及發出一DMA起動命令以執行對存儲在所述VDD存儲器中的文件的所述數據訪問請求。
13.如權利要求12所述的製品,其中,生成所述至少一個DMA鏈描述符包括識別所述VDD存儲器之內的、所述數據訪問請求所指向的文件;計算所述易失性系統存儲器之內的所述文件的物理開始地址;根據存儲在所述VDD存儲器之內的所述文件之內的所述數據訪問請求的偏移量計算DMA源地址;以及根據所述數據訪問請求計算DMA目的地址。
14.如權利要求12所述的製品,其中,發出所述DMA起動命令包括用本地系統存儲器之內的所述至少一個DMA鏈描述符的地址更新DMA引擎後續地址寄存器;以及設置DMA引擎起動DMA位,以使所述DMA引擎執行對存儲在所述VDD存儲器之內的所述文件的所述數據訪問請求。
15.如權利要求11所述的製品,還包括如果所述DMA引擎完成所述數據訪問請求的DMA傳輸,則從DMA引擎接收中斷;以及通知發出所述數據訪問請求的應用程式已經完成了所述文件操作。
16.一種方法,包括通過一作業系統(OS)檢測對存儲在易失性磁碟驅動器(VDD)存儲器之內的文件的進程讀/寫訪問請求,其中,所述易失性磁碟驅動器(VDD)存儲器在易失性系統存儲器之內實現;將所述讀/寫訪問請求傳遞到VDD驅動器;以及通過所述VDD驅動器發出直接存儲器訪問(DMA)數據請求以從存儲在所述VDD存儲器中的所述文件執行所述讀/寫訪問請求。
17.如權利要求16所述的方法,其中,發出所述DMA數據請求包括根據所述讀/寫訪問請求生成至少一個DMA鏈描述符;以及發出DMA起動命令以執行對存儲在所述VDD存儲器中的所述文件的所述讀/寫訪問請求。
18.如權利要求17所述的方法,其中,生成所述至少一個DMA鏈描述符包括識別所述虛擬磁碟驅動器之內的、所述數據訪問請求所指向的文件;計算所述易失性系統存儲器內文件的物理開始地址;根據存儲在所述VDD存儲器之內的所述文件之內的所述讀/寫訪問請求的偏移量計算DMA源地址;以及根據所述讀/寫訪問請求計算DMA目的地址。
19.如權利要求17所述的方法,其中,生成所述至少一個DMA鏈描述符包括識別所述VDD存儲器之內的、所述數據訪問請求所指向的文件;以及計算所述易失性系統存儲器之內的所述文件的物理開始地址。
20.如權利要求16所述的方法,還包括通過DMA引擎取得位於包含在後續描述符地址寄存器中的地址的DMA鏈描述符;根據所取得的DMA鏈描述符執行DMA傳輸,以便根據所述讀/寫訪問請求從存儲在所述VDD存儲器之內的文件傳輸DMA數據;以及如果完成所述DMA傳輸,則發出一中斷給所述虛擬磁碟驅動器。
21.一種製品,包括其上存儲有指令的機器可讀介質,所述指令可以用於編程系統以執行包括下列步驟的方法通過一作業系統(OS)檢測對存儲在易失性磁碟驅動器(VDD)存儲器之內的文件的進程讀/寫訪問請求,其中,所述易失性磁碟驅動器(VDD)存儲器在易失性系統存儲器之內實現;將所述讀/寫訪問請求傳遞到VDD驅動器;以及通過所述VDD驅動器發出直接存儲器訪問(DMA)數據請求以從存儲在所述VDD存儲器中的所述文件執行所述讀/寫訪問請求。
22.如權利要求21所述的製品,其中,發出所述DMA數據請求包括根據所述讀/寫訪問請求生成至少一個DMA鏈描述符;以及發出DMA起動命令以執行對存儲在所述VDD存儲器中的所述文件的所述讀/寫訪問請求。
23.如權利要求22所述的製品,其中,生成所述至少一個DMA鏈描述符包括識別所述虛擬磁碟驅動器之內的、所述數據訪問請求所指向的文件;計算所述易失性系統存儲器之內的所述文件的物理開始地址;根據存儲在所述VDD存儲器之內的所述文件之內的所述讀/寫訪問請求的偏移量計算DMA源地址;以及根據所述讀/寫訪問請求計算DMA目的地址。
24.如權利要求22所述的製品,其中,生成所述至少一個DMA鏈描述符包括識別所述VDD存儲器之內的、所述數據訪問請求所指向的文件;以及計算所述易失性系統存儲器之內的所述文件的物理開始地址。
25.如權利要求21所述的製品,還包括通過DMA引擎取得位於包含在後續描述符地址寄存器中的地址的DMA鏈描述符;根據所取得的DMA鏈描述符執行DMA傳輸,以便根據所述讀/寫訪問請求從存儲在所述VDD存儲器之內的所述文件傳輸DMA數據;以及如果完成所述DMA傳輸,則發出一中斷給所述虛擬磁碟驅動器。
26.一種系統,包括易失性系統存儲器,其具有為提供易失性磁碟驅動器(VDD)存儲器所分配的部分;晶片組,其連接到所述易失性系統存儲器,所述晶片組包括直接存儲器訪問(DMA)引擎以執行到所述易失性系統存儲器的DMA傳輸;以及非易失性系統存儲器,其連接到所述晶片組,所述非易失性系統存儲器包括VDD驅動器以檢測對所述虛擬磁碟驅動器的數據訪問請求以及向所述晶片組發出DMA請求,以使所述DMA引擎執行對所述VDD存儲器的所述數據訪問請求。
27.如權利要求26所述的系統,其中,所述晶片組還包括具有集成DMA引擎的存儲器控制器中心。
28.如權利要求26所述的系統,其中,所述晶片組還包括輸入/輸出控制器中心。
29.如權利要求26所述的系統,其中,所述晶片組還包括DMA控制器,其包括至少一個後續描述符地址寄存器以存儲由所述VDD驅動器編程的DMA鏈描述符的物理地址,以執行對所述VDD存儲器的所述數據訪問請求。
30.如權利要求29所述的系統,其中,所述DMA控制器還包括通道控制寄存器,其包含一DMA起動位以指示所述DMA引擎裝載所述DMA鏈描述符並執行對所述VDD存儲器的所述數據訪問請求。
全文摘要
一種方法和裝置,用於使用集成直接存儲器訪問(DMA)引擎進行高性能易失性磁碟驅動器(VDD)存儲器訪問。在一個實施例中,所述方法包括檢測對在易失性系統存儲器之內實現的VDD存儲器的數據訪問請求。一旦檢測到數據訪問請求,VDD驅動器可以發出DMA數據請求以執行來自VDD的數據訪問請求。因此,在一個實施例中,向/從在易失性系統存儲器的所分配部分之內實現的VDD存儲器傳輸數據的工作被分擔給DMA引擎,例如存儲器控制器中心(MCH)中的集成DMA引擎。還描述了其它實施例。
文檔編號G06F9/445GK1961300SQ200580017641
公開日2007年5月9日 申請日期2005年6月21日 優先權日2004年6月30日
發明者什裡坎特·M·沙阿, 舍唐·J·拉瓦爾 申請人:英特爾公司

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀