專利名稱:通用存儲總線適配器的制作方法
技術領域:
本發(fā)明一般涉及計算機數(shù)據(jù)存儲。更具體地說,本發(fā)明涉及更有效地執(zhí)行數(shù)據(jù)讀寫的通用存儲總線適配器。
背景技術:
多年來,計算機和其它系統(tǒng)使用磁盤驅動器來存儲大量數(shù)字信息。這是因為計算機和其它系統(tǒng)可具有足夠的主存儲器(諸如隨機存取存儲器)來執(zhí)行當前的計算任務,當存儲大量數(shù)據(jù)時,諸如操作系統(tǒng)、應用程序或程序數(shù)據(jù),常需要諸如磁盤驅動器的大容量裝置。
現(xiàn)有多種類型大容量裝置,包括軟盤、硬盤、光盤(其包括DVD和CD驅動器),和非易失性固態(tài)存儲器裝置(諸如RAM盤)。這些大容量裝置常統(tǒng)稱為大容量裝置。此外,許多不同技術已用于連接大容量裝置。如今,個人計算機環(huán)境中具有兩個主要的通用接口技術SCSI(小計算機系統(tǒng)接口)和IDE(智能驅動電子器件、或集成驅動電子器件)。兩種技術在其通用接口方案中具有多種構建。舉例而言,SCSI-1、SCSI-2、WideSCSI、Fast SCSI、Fast Wide SCSI、Ultra SCSI、SCSI-3、Ultra2 SCSI、Wide Ultra2 SCSI、EIDE、UDMA IDE和Ultra-ATA IDE等。其它計算系統(tǒng)包括光纖通道、類因特網(wǎng)光纖通道、外部光纖通道、SAS等。
IDE是一般術語,其指具有內(nèi)建控制器的磁盤驅動器。內(nèi)建控制器是主要優(yōu)勢,因為大容量裝置制造商不必使他們的裝置與任何特殊控制器標準兼容。所需的只是連接主板與大容量裝置的IDE連接器。
如今,大多數(shù)接口技術通過并行總線(諸如PCI(外圍組件互連))連接大容量裝置和主板。然而,其它類型裝置可通過并行端口或其它端口(諸如ISA(產(chǎn)業(yè)標準架構))來進行連接。
每種類型的存儲裝置需要驅動器來連接主機計算機系統(tǒng)的主控制器。每個驅動器具有一個傳輸層,其允許所述驅動器與其個別的存儲裝置通信。在某些抽象層,所有個人計算機使用小計算機系統(tǒng)接口SCSI-類型格式而進行操作。主控制器和存儲裝置驅動器將SCSI類型格式命令轉譯成存儲裝置使用的命令。串行連接的SCSI(新的格式)包括支持串行高級技術連接(SATA)的可選擴展部分。此允許混合并匹配串行連接SCSI和SATA存儲裝置。所有其它協(xié)議實質(zhì)上是與某些類型的傳輸層合并一起的SCSI協(xié)議。所以,如果移除傳輸層,那么所有的裝置都講SCSI。然而,如上所述,傳輸層是用于與存儲裝置通信的。
不管存儲器的類型或接口技術,數(shù)據(jù)存儲器和數(shù)據(jù)回復器是由處理器起始的,所述處理器使主控制器將處理器連接到大容量裝置。數(shù)據(jù)通過主控制器流到大容量裝置或從大容量裝置流出。在個人計算機中,并行數(shù)據(jù)存儲ATA(AT連接)規(guī)格從1980年以來已界定PC的標準存儲接口。ATA代表高級技術連接,其指在磁盤驅動器自身上具有集成控制器的磁盤驅動器。并行ATA成本低,支持廣,眾所周知且被良好接受,且已證實能具有高速性能?,F(xiàn)有幾種版本的ATA。通過ATA自身,其可與IDE互換,ATA-2(EIDE/快速ATA)支持更快的操作模式和多字DMA模式、支持邏輯組塊定址(LBA)和組塊轉移;ATA-3、Ultra-ATA(Ultra-DMA,ATA-33和DMA-33)支持以33MBps運行的多字DMA模式3,ATA/66將ATA的吞吐量加倍,和ATA/100。
雖然并行ATA證實是有利的,但其具有限制。其需要許多針腳和并行導體,使用5v技術,且難以以需用于支持多媒體應用的高數(shù)據(jù)速率的方式實施。因為這些缺點,所以開發(fā)出用于存儲裝置高性能接口的串行ATA(還已知為SATA)。還已經(jīng)開發(fā)出并沒有超過現(xiàn)有技術的SCSI磁盤驅動器的串行接口規(guī)格。
存儲裝置類型的激增和當代磁盤驅動器的增加的存儲大小已產(chǎn)生問題。簡單地存儲和提取數(shù)據(jù)可消耗處理器的大部分時間。此產(chǎn)生一需要,即需要主機總線適配器(HBA)來連接主機計算機的總線(常為PCI)與到存儲裝置的總線,同時最小化對主處理器的性能的影響。此需要主機總線適配器處理許多低級的接口功能,可以自動執(zhí)行或和次級主機處理器或存儲裝置處理器一起執(zhí)行。舉例而言,Inter已開發(fā)出高級主機控制器接口(AHCI)規(guī)格,其以寄存器級描述SATA裝置如何與主機控制器的硬件連接。串行SCSI裝置可具有完全不同的HBA。
因為到存儲裝置的總線可以是若干標準化總線之一,或甚至可以是自定義總線,所以主機總線適配器必須匹配所使用的存儲裝置。所有計算機存儲裝置總線端口實質(zhì)上操作在類SCSI命令級上。在現(xiàn)有技術中,存儲裝置的命令協(xié)議通過使用將來自專用主機控制器的命令連接到存儲裝置的軟件驅動器而實施。軟件驅動器需要主處理器的交互。主控制器和軟件驅動器有效地將SCSI類型格式轉移成存儲裝置的協(xié)議。當大存儲器裝置在制造許多文件系統(tǒng)交互的應用中時,主處理器花費紊亂的大量時間來實施軟件驅動器。因為在HBA被添加到系統(tǒng)中的時候不一定知道可用的存儲裝置,其會隨著時間而改變,或可經(jīng)自定義以適合特殊的應用,所以完成此非常復雜或昂貴。
圖l是概念圖,其說明現(xiàn)有技術的文件管理系統(tǒng)100(或存儲堆棧)如何與存儲裝置硬件114交互。文件管理系統(tǒng)100實施將文件系統(tǒng)102請求導向特定存儲容量的容量管理器104,和將文件系統(tǒng)102請求導向所述存儲容積內(nèi)的特定分區(qū)的分區(qū)管理器106。這些可以認為是識別主機計算機系統(tǒng)的有效存儲裝置。文件管理系統(tǒng)100還實施類(諸如SCSI或IDE)驅動器108以支持存儲類,并實施端口驅動器110以啟用端口I/O操作??偩€驅動器112可實施為需要在無總線沖突的情況下在所需總線上傳送信號,且最終存儲裝置硬件114將連接到待存取的存儲裝置的存儲總線。類驅動器108、端口驅動器110和總線驅動器112一起充當傳輸層,以用于與待存取的存儲裝置相關聯(lián)的驅動器。如果需要,文件管理系統(tǒng)100還可實施數(shù)據(jù)壓縮和加密103。本文一般說明的架構的兩個缺陷是(i)主機計算機系統(tǒng)中的每種類型存儲裝置需要單獨的傳輸層,和(ii)文件系統(tǒng)102(即,操作系統(tǒng))與主機計算機系統(tǒng)的各種存儲裝置之間的交易的90%以上是讀/寫操作——這些操作通常不需要文件管理系統(tǒng)100的服務層103、106、108、110和112。在所需的中間層中處理每個交易是不夠的且耗時的。因此,可將主機計算機的總線連接到多個存儲裝置的新型裝置將是有利的。更有利的將是通用存儲總線適配器,其可將主機計算機總線連接到任何多個存儲裝置。
發(fā)明內(nèi)容
本發(fā)明的原理的實施例提供一種通用存儲總線適配器,其可將主機計算機總線連接到任何多個類型的存儲裝置。所述通用串行總線適配器以一方式提供傳輸層功能,使得不必為每種類型的存儲裝置提供單獨的傳輸層。
本發(fā)明的實施例包括文件管理系統(tǒng)(或存儲堆棧),其包括讀/寫專用道,所述讀/寫專用道經(jīng)配置以使讀/寫操作能繞過文件管理系統(tǒng)的異常處理和管理功能。繞過這些功能增加了讀/寫操作的處理效率。另外,所述架構在必要處理時,提供存取文件管理系統(tǒng)的異常處理和管理層的服務的其它類型操作。
結合附圖,鑒于以下詳細描述,可易于理解本發(fā)明的原理,其中圖l說明用于整合多個光盤驅動器與計算機系統(tǒng)的現(xiàn)有技術總線存儲適配器;圖2說明經(jīng)配置以實施本發(fā)明的計算機系統(tǒng);圖3說明一概念圖,一存儲堆棧包括根據(jù)本發(fā)明的一個實施例的讀/寫專用道;圖4是根據(jù)本發(fā)明的一個實施例的圖3的通用存儲總線適配器的功能性方框圖;圖5A和圖5B是需存取存儲裝置中的存取數(shù)據(jù)以初始化圖3的存儲堆棧和專用道的事件次序的概念圖;和圖6是用于如圖5中所說明的來轉移數(shù)據(jù)的事件次序的流程圖。
具體實施例方式
本發(fā)明的原理提供一種通用存儲總線適配器,其在主機計算機總線與不同類型存儲裝置之間直接連接讀/取數(shù)據(jù)請求。所述通用存儲總線適配器以一方式將一主機計算機的主要總線(PCI)配對到存儲器裝置總線,使得可使用標準化讀/取命令將數(shù)據(jù)寫入存儲器裝置總線并從存儲器裝置總線讀取數(shù)據(jù),且具有很少或沒有主處理器交互。本發(fā)明的實施例可使用存儲堆棧來連接多種類型的存儲裝置,其中所述存儲堆棧具有繞過存儲堆棧的異常處理和管理功能的讀/寫專用道。
圖2說明與本發(fā)明的原理相一致的計算機系統(tǒng)200。所述系統(tǒng)200包括用于存儲由處理器204使用的程序和數(shù)據(jù)的主存儲器202。所述系統(tǒng)200進一步包括一般顯示為包括通用存儲總線適配器208的芯片組206的輔助系統(tǒng)。通用存儲總線適配器208有利地包括支持RAID驅動器的硬件壓縮/解壓縮引擎,和可能的其它特征。通用存儲總線適配器208利用包含磁盤驅動器211、213、215和217的磁盤驅動系統(tǒng)來輔助數(shù)據(jù)整合。磁盤驅動器211、213、215和217可以是(但不需要是)RAID存儲系統(tǒng)的一部分。此外,磁盤驅動器211、213、215和217可以是相同類型(例如串行SCSI)或其可以是不同類型(例如串行SCSI和SATA驅動器)。下文將結合圖3和圖4進一步詳細描述,通用存儲總線適配器208經(jīng)設計并實施成與多種類型的存儲裝置一起工作。
磁盤驅動器211、213、215和217分別包括驅動電氣器件212、214、216、218,其控制個別磁盤驅動器中的數(shù)據(jù)存儲和讀取。數(shù)據(jù)經(jīng)由雙向存儲總線219在通用存儲總線適配器208與磁盤驅動器211、213、215和217之間傳送。通用存儲裝置適配器208經(jīng)由主要總線(通常為PCI總線)將處理器204連接到雙向存儲總線219。實際上,雙向存儲總線219通過使用接口芯片而連接到磁盤驅動器211、213、215和217中的一者或多者。為能整合系統(tǒng)200的各種組件,系統(tǒng)在操作系統(tǒng)(未圖示)的控制下操作。
計算機系統(tǒng)200實施基于SCSI的文件管理系統(tǒng)300(或存儲堆棧),其包括讀/取旁路以直接通過通用存儲裝置適配器208和I/O數(shù)據(jù)一起選擇性地傳送讀/寫操作。圖3說明根據(jù)本發(fā)明的一個實施例的文件管理系統(tǒng)300的架構。如圖所示,文件管理系統(tǒng)300包括圖1的文件管理系統(tǒng)100的異常處理和管理層。然而,認識到讀/寫操作的優(yōu)越性,文件管理系統(tǒng)300包括讀/寫專用道309,其將讀/寫操作直接配送到存儲裝置硬件層314并從存儲裝置硬件層314配送讀/寫操作。此架構允許讀/寫操作繞過壓縮/加密層302、容量管理器304、分區(qū)管理器306、類驅動器308、端口驅動器310和總線驅動器312。當使用數(shù)兆字節(jié)的存儲裝置時,繞過這些異常處理和管理層是高度有利的,因為簡單地管理讀/寫操作可消耗處理器的大部分時間。盡管前述,使用根據(jù)圖1的常規(guī)文件管理系統(tǒng)100的原理的異常處理和管理層的服務可處理非讀/寫操作的操作。
如圖示,類驅動器308、端口驅動器310和總線驅動器312(其一起形成傳輸層)包括在通用存儲裝置適配器208中。如下文結合圖4更詳細的描述,將傳輸層的功能移到通用存儲裝置適配器308中使得一個基于SCSI的傳輸層可以與任何類型的存儲裝置一起使用,而不管所述存儲裝置是否基于SCSI,基于SATA或其它。所述架構避免為每種類型的存儲裝置建立單獨的傳輸層,從而明顯比先前技術高級。
圖4根據(jù)本發(fā)明的一個實施例說明文件管理系統(tǒng)300和通用存儲裝置適配器208的實施架構。存儲堆棧管理層404經(jīng)配置以提供通過文件系統(tǒng)301存取模塊401的各種服務而傳輸?shù)牟僮?。其中,模塊401包括圖3的壓縮/加密層302、容量管理器304和分區(qū)管理器306的管理功能。所揭示的架構經(jīng)設計以使得可添加或移除模塊401,此取決于文件管理系統(tǒng)300需要的功能。在一個實施例中,模塊401和存儲堆棧管理層404以軟件實施。
控制器430耦合到模塊403和接口層402。在一個實施例中,模塊403是模塊401的硬件補充。因而,在從文件管理系統(tǒng)300添加或移除功能的情況下,添加或移除軟件模塊401,如可能發(fā)生的情況,并添加或移除對應的硬件模塊403,如可能發(fā)生的情況。因為模塊403是模塊401的補充,所以模塊403包括壓縮/加密層302的管理功能,容量管理器304和分區(qū)管理器306也是如此。
控制器430包括圖3的類驅動器308、端口驅動器310和總線驅動器312的傳輸層功能。此外,在一個實施例中,控制器430和接口層402包括圖3的存儲裝置硬件層314的功能。
接口層402包括耦合到對應存儲裝置(未圖示)的各種接口模塊(例如接口模塊438、440、442、444、446、448和452)。每個接口模塊針對特定存儲裝置協(xié)議而經(jīng)配置,且將從文件系統(tǒng)301傳輸?shù)幕赟CSI的命令轉譯成存儲裝置協(xié)議,且反之亦然。舉例而言,接口440經(jīng)配置以將基于SCSI的命令轉譯成SATA且將基于SATA的命令轉譯成SCSI。在一個實施例中,接口層402的功能以硬件實施。接口層402啟用主控制器以從以下事實獲利SAS物理層442向后兼容SATA物理層440,且因而允許SAS或SATA磁盤驅動器直接連接到通用存儲總線控制器430。
重要方面,在將存儲裝置添加到計算機系統(tǒng)200的情況下,對應于所述存儲裝置使用的協(xié)議的接口模塊可被添加到接口層402,使得文件管理系統(tǒng)300可適當與所述存儲裝置通信。因為所述傳輸層功能包括于控制器430中,所以沒有其他傳輸層功能需要被添加到文件管理系統(tǒng)300中以支持所添加的存儲裝置。以此方式,在一實施例中包括模塊403、控制器430和接口層402的通用存儲總線適配器208經(jīng)配置以適合與計算機系統(tǒng)200一起使用的任何類型的存儲裝置。
如圖所示,架構使控制器430能夠接受通過讀/寫專用道309從直接來自文件系統(tǒng)301的SCSI類型的讀/寫操作。如下文結合圖5進一步詳細描述的,控制器430經(jīng)配置以處理這些操作,將其分配到連接到接口層402的適當存儲裝置。參考圖2,與讀/寫操作相關聯(lián)的數(shù)據(jù)在主存儲器202與磁盤驅動器211、213、215和217中的一者或多者之間轉移。如先前所述,這些存儲裝置中的每一者基于特定存儲裝置所使用的協(xié)議而耦合到接口層402的接口模塊之一。
根據(jù)本發(fā)明的原理,實施讀/寫操作的大多數(shù)負擔被轉移到硬件。此具有減少讀/寫延遲的雙重優(yōu)勢,因為硬件比軟件快得多,且使主處理器耿有效地處理其他任務。盡管讀/寫操作是所存在的多個文件管理操作中的兩個,但轉移實施對硬件的讀/寫操作的大多數(shù)負擔尤其有利,因為讀/寫操作包含實際存在的大量主要的文件系統(tǒng)操作。
參考圖5A和圖5B,根據(jù)本發(fā)明,控制器430經(jīng)配置以執(zhí)行從圖2的主存儲器202得到的讀/寫命令(還被稱作控制器命令)??刂破?00執(zhí)行具有格式(容量X,待轉移的字節(jié)數(shù)和存儲器位置)的這些命令。
控制器430存儲從這些命令中的每個命令得到的信息??砂l(fā)現(xiàn)控制器命令提供容量,其為將數(shù)據(jù)轉移到其中的一組分區(qū)或從其中轉移數(shù)據(jù)的一組分區(qū)、待轉移的字節(jié)數(shù),和指定將數(shù)據(jù)轉移到主存儲器202中何處或從主存儲器202中何處轉移數(shù)據(jù)的存儲器位置信息。更特定地說,存儲器位置信息包括描述存儲器空間560中的區(qū)域的一組物理區(qū)描述符(PRD),數(shù)據(jù)將被轉移到所述存儲器空間560中或從其中轉移數(shù)據(jù)。控制器430經(jīng)配置以將數(shù)據(jù)寫入圖2的存儲裝置211、213、215、217(由存儲裝置510表示)或從其中讀取數(shù)據(jù)。
這些存儲裝置通常以包含多個磁盤驅動器的RAID陣列,其中以復數(shù)個磁盤上找到的分區(qū)來識別容量。
控制器430包含復數(shù)個寄存器,其被界定為PCI的一部分或其他標準化接口規(guī)范。這些寄存器將控制信息和配置信息存儲在區(qū)502中,將鏈接指示字存儲在區(qū)504中,且將容量指示字存儲在區(qū)506中。通過這些寄存器而執(zhí)行所述讀/寫命令。鏈接指示字和容量指示字將以下文描述的方式用于執(zhí)行控制器命令。
如先前所述,裝入控制器命令520的控制器命令含有將數(shù)據(jù)轉移到其中或從其中轉移數(shù)據(jù)的RAID容量??刂破髅?20被寫入容量數(shù)據(jù)結構514,如區(qū)506中的容量指示字寄存器和容量表512所索引的,對應于控制器命令中所指定的容量。針對此容量的隨后的控制器命令522和524可附屬于如圖所示的容量數(shù)據(jù)結構514。容量數(shù)據(jù)結構514還含有控制和狀態(tài)信息515和與所述磁盤容量中的磁盤分區(qū)516、518相關聯(lián)的信息。此信息用于確定與控制器命令520中指定的容量相關的精確的磁盤和分區(qū)。
通用存儲適配器208控制多個磁盤存儲驅動器。磁盤存儲驅動器經(jīng)分配在復數(shù)個物理鏈接上。每個鏈接可支持若干磁盤存儲驅動器。對于每個物理鏈接而言,控制器430中具有一個鏈接指示字504,其指向與特定物理鏈接相關聯(lián)的鏈接數(shù)據(jù)結構530。鏈接數(shù)據(jù)結構530含有一序列的鏈接,其提供控制信號存取與所述鏈接相關聯(lián)的磁盤。鏈接數(shù)據(jù)結構530和容量數(shù)據(jù)結構514的組合提供一序列的磁盤數(shù)據(jù)結構535、540。
容量數(shù)據(jù)結構514中的每個磁盤分區(qū)516、518指向磁盤數(shù)據(jù)結構535、540。如下文結合圖6的步驟602進一步詳細描述的,控制器520經(jīng)轉換成一個或多個磁盤命令,其用于將數(shù)據(jù)轉移到特定的存儲裝置510或從其中轉移數(shù)據(jù)。磁盤命令在適當?shù)拇疟P數(shù)據(jù)結構中經(jīng)排序,表示用于將數(shù)據(jù)轉移到給定存儲裝置或從給定存儲裝置轉移數(shù)據(jù)的磁盤命令在對應于所述存儲裝置的磁盤數(shù)據(jù)結構中經(jīng)排序。舉例而言,磁盤命令536將數(shù)據(jù)轉移到磁盤0或從磁盤0轉移數(shù)據(jù),且因此駐在磁盤數(shù)據(jù)結構535中,且磁盤命令541、542將數(shù)據(jù)轉移到磁盤1或從磁盤1轉移數(shù)據(jù),且因此駐在磁盤數(shù)據(jù)結構540中。從容量數(shù)據(jù)結構514和鏈接數(shù)據(jù)結構530得到磁盤命令。此外,每個個別磁盤命令含有一個或多個PRD,其描述將使用所述磁盤命令將數(shù)據(jù)轉移到其中或從其中轉移命令的存儲器空間560中的區(qū)域。針對不同磁盤命令的PRD對應于控制器命令520的存儲器位置信息中所包括的PRD。
在此示范性討論中,磁盤命令536的組件顯示為磁盤命令550的詳細視圖中的三個PRD。以類似方式,磁盤命令541含有磁盤命令551的詳細視圖中的兩個PRD,且磁盤命令542含有磁盤命令552的詳細視圖中的一個PRD。磁盤命令550、551、552是一序列的一個或多個PRD,其存取其中存儲有來自磁盤存儲裝置510的數(shù)據(jù)或從其中提取來自磁盤存儲裝置510的數(shù)據(jù)的存儲器空間560中的信息。鏈接數(shù)據(jù)結構530將接口提供給硬件,同時通亮數(shù)據(jù)結構514識別其中存儲有包含整個容量的數(shù)據(jù)的磁盤存儲裝置510上的分區(qū)。以此方式,需要執(zhí)行的任何命令可被軟件界定,且接著在與通用存儲總線適配器208相關聯(lián)的硬件組件中執(zhí)行。
除了前述部分以外,容量數(shù)據(jù)結構514通過計數(shù)與對應控制器命令相關聯(lián)的磁盤命令的數(shù)目并產(chǎn)生等于所述數(shù)目的磁盤命令計數(shù)而跟蹤特定控制器命令的執(zhí)行。在每個磁盤處,執(zhí)行命令536、541、542,磁盤數(shù)據(jù)結構535、540經(jīng)由控制/狀態(tài)信息區(qū)515而將每個磁盤命令的完成往回傳送到容量數(shù)據(jù)結構514,容量數(shù)據(jù)結構514在每次完成磁盤命令時使磁盤計數(shù)遞減。當磁盤命令計數(shù)達到零時,容量數(shù)據(jù)結構514通過控制/狀態(tài)信息區(qū)515向文件系統(tǒng)301提供中斷,表明已完全執(zhí)行完所述控制器命令。
圖6是說明回應于由文件系統(tǒng)301傳輸?shù)淖x/寫操作的本發(fā)明的操作中的步驟次序的流程圖。典型的命令包含(容量X、待轉移的字節(jié)數(shù)、和存儲器位置),其中X為待存取的容量,且存儲器位置為其中將讀取所存取的數(shù)據(jù)或將所存取的數(shù)據(jù)寫入其中的主存儲器空間中的位置。
在步驟600中,控制器命令520被寫入容量數(shù)據(jù)結構514中。由容量指示字506確定容量數(shù)據(jù)結構514,其中所述容量指示字506使用控制器命令520來索引入指向正確的容量數(shù)據(jù)結構514的容量表512中。控制器命令520可以是讀命令也可以是寫命令。在步驟602中,通用存儲總線控制器分析容量數(shù)據(jù)結構514中的控制器命令520。容量數(shù)據(jù)控制器514和鏈接數(shù)據(jù)結構530一起含有必要信息,其需用來建立個別磁盤命令536、需用來支持諸如磁盤/分區(qū)關系的控制器命令520的個別磁盤命令541和542、磁盤起始的分區(qū)的偏移、分區(qū)的大小和其他容量信息。在步驟604中,磁盤命令536、541和542被寫入磁盤數(shù)據(jù)結構535和540中。每個磁盤命令含有一個或多個PRD,其描述將數(shù)據(jù)寫入其中或從其中讀取數(shù)據(jù)的主存儲器的區(qū)域。磁盤數(shù)據(jù)結構535和540包含復數(shù)個磁盤命令。在步驟606中,數(shù)據(jù)從存儲器空間被轉移到磁盤驅動器存儲裝置或從磁盤驅動器存儲裝置轉移到存儲器空間,同時執(zhí)行來自磁盤數(shù)據(jù)結構的每個磁盤命令536、541和542。磁盤數(shù)據(jù)結構535和540指示容量數(shù)據(jù)結構514每個磁盤命令的完成。當已完成針對容量數(shù)據(jù)結構中的控制器命令520的所有磁盤命令時,在步驟608中,對操作系統(tǒng)產(chǎn)生中斷。
盡管已參考特定實施例描述了本發(fā)明,但在不脫離附加權利要求書中所陳述的更廣泛的精神和范疇的情況下,所屬領域的技術人員將了解,可對其做各種修改和改變。上文描述和繪圖因此被認為是說明性的而非具有限制性意義。
權利要求
1.一種包含一通用存儲裝置適配器的文件管理系統(tǒng),所述通用存儲裝置適配器包括具有一耦合到一硬件接口層的傳輸層的一控制器,其中所述控制器用于將讀/寫操作直接傳輸?shù)剿鼋涌趯?;和一讀/寫專用道,其用于將讀/寫操作直接配送到所述控制器或從所述控制器配送讀/寫操作。
2.根據(jù)權利要求1所述的文件管理系統(tǒng),其中所述傳輸層包含一類驅動器、端口驅動器和總線驅動器中至少一者。
3.根據(jù)權利要求1所述的文件管理系統(tǒng),其進一步包含一經(jīng)配置以提供服務的堆棧管理層,其中所述服務包含壓縮/加密、容量管理和分區(qū)管理中至少一者。
4.根據(jù)權利要求3所述的文件管理系統(tǒng),其中所述服務是以軟件實施的。
5.根據(jù)權利要求4所述的文件管理系統(tǒng),其中所述控制器耦合到多個模塊,其中所述模塊是所述堆棧管理層服務的硬件補充。
6.根據(jù)權利要求1所述的文件管理系統(tǒng),其中所述接口層包括一個或多個接口模塊,其中每個接口模塊是針對一特定存儲裝置協(xié)議而經(jīng)配置的。
7.根據(jù)權利要求6所述的文件管理系統(tǒng),其中所述讀/寫操作包含基于SCSI的命令,且所述接口模塊經(jīng)配置以在所述特定存儲裝置協(xié)議與所述基于SCSI的命令之間進行轉譯。
8.根據(jù)權利要求7所述的文件管理系統(tǒng),其中所述接口層和所述一個或多個模塊是以硬件實施的,且進一步包含一存儲堆棧管理層,其中所述存儲堆棧管理層的所述服務是以軟件實施的。
9.根據(jù)權利要求1所述的文件管理系統(tǒng),其中所述控制器經(jīng)配置以執(zhí)行所述讀/寫操作而通過所述接口層將數(shù)據(jù)轉移到一主存儲器,其中所述操作包含識別待轉移的一容量的一命令、待轉移的字節(jié)數(shù)和其中待轉移數(shù)據(jù)的主存儲器中的一位置。
10.根據(jù)權利要求9所述的文件管理系統(tǒng),其中所述容量包含復數(shù)個分區(qū),其中所述分區(qū)存儲在復數(shù)個存儲裝置中的一者或多者上。
11.根據(jù)權利要求10所述的文件管理系統(tǒng),其中所述控制器包含復數(shù)個寄存器,所述寄存器存儲指向一容量表的一指示字,所述容量表包括可存儲在所述存儲裝置上的至少一個容量;和指向可存儲所述至少一個容量的部分的所述存儲裝置的鏈接指示字。
12.根據(jù)權利要求11所述的文件管理系統(tǒng),其中所述控制器對應于所述容量數(shù)據(jù)結構和鏈接數(shù)據(jù)結構以建立一序列物理區(qū)描述,其指向其中轉移數(shù)據(jù)的主存儲器中的區(qū)。
13.一種操作一計算機系統(tǒng)中的一文件管理系統(tǒng)以將數(shù)據(jù)轉移到一存儲裝置或從所述存儲裝置轉移數(shù)據(jù)的方法,其包含獲得與可用的存儲裝置容量和分區(qū)相關的信息,將一容量數(shù)據(jù)結構存儲在一第一寄存器中,所述容量數(shù)據(jù)結構包括指向一磁盤數(shù)據(jù)結構的一指示字,將一鏈接數(shù)據(jù)結構存儲在一第二寄存器中,所述鏈接數(shù)據(jù)結構包含指向所述磁盤數(shù)據(jù)結構的一指示字,和利用所述磁盤數(shù)據(jù)結構中的命令指示字以存取存儲在所述計算機系統(tǒng)的一主存儲器中的數(shù)據(jù),且在所述主存儲器與所述存儲裝置之間轉移所述數(shù)據(jù)。
14.根據(jù)權利要求13所述的方法,其進一步包含利用所述鏈接來存取一鏈接接口以界定指向其中存儲有數(shù)據(jù)的一序列磁盤的指示字。
15.根據(jù)權利要求13所述的方法,其中所述容量指示字中的每個指示字與一鏈接指示字相組合以建立一待存取的所述物理區(qū)描述符。
16.根據(jù)權利要求15所述的方法,其中每個容量包含一個或多個分區(qū),所述控制器維持所轉移的所述分區(qū)的一計數(shù),且當完成所述轉移時向主存儲器提供一中斷。
17.一種用于管理讀/寫操作的一計算機可讀媒體中的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包含第一指令,其用于界定一PCI接口中的寄存器中的鏈接和容量指示字,和第二指令,其利用所述鏈接和所述容量指示字來界定一物理區(qū)描述符,所述物理區(qū)描述符將一主存儲器中的區(qū)關聯(lián)到一個或多個光盤驅動器中的數(shù)據(jù)存儲區(qū)。
18.根據(jù)權利要求17所述的計算機程序,其中所述第一指令包括利用所述容量指示字來識別一個或多個光盤上的復數(shù)個分區(qū)以用于所述光盤與所述主存儲器之間的轉移。
19.根據(jù)權利要求18所述的計算機程序,其包括一第三指令以用于跟蹤待轉移到主存儲器的所述分區(qū),且用于當完成一轉移時向所述控制器發(fā)出信號。
全文摘要
本發(fā)明的一個實施例提供一種通用存儲總線適配器,其可將一主機計算機的總線連接到任何多種類型的存儲裝置。所述通用串行總線適配器以一方式提供傳輸層功能,使得不必為每種類型的存儲裝置提供一單獨的傳輸層。本發(fā)明的另一實施例包括一文件管理系統(tǒng)(或存儲堆棧),其具有一讀/寫專用道,所述讀/寫專用道經(jīng)配置以使一讀/寫操作能繞過所述文件管理系統(tǒng)的異常處理和管理功能。繞過這些功能增加了讀/寫操作的處理效率。
文檔編號G06F3/06GK1841295SQ20061005846
公開日2006年10月4日 申請日期2006年3月28日 優(yōu)先權日2005年3月28日
發(fā)明者拉多斯拉夫·丹尼拉克 申請人:輝達公司