午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

流水線化的ata設(shè)備初始化的制作方法

文檔序號(hào):6473061閱讀:261來源:國知局
專利名稱:流水線化的ata設(shè)備初始化的制作方法
技術(shù)領(lǐng)域
本發(fā)明可以包括具有高級(jí)技術(shù)連接(Advanced Technology Attachment,ATA)接口控制器的信息處理系統(tǒng)的輸入/輸出數(shù)據(jù)處理機(jī)構(gòu)。特別地,本發(fā)明可以包括通過影像寄存器(shadow register)空間的外圍設(shè)備配置初始化。
背景技術(shù)
主計(jì)算機(jī)系統(tǒng)的中央處理單元(CPU)可以是計(jì)算機(jī)中控制所有其他部件的那個(gè)部件。CPU到CPU本地的存儲(chǔ)器中取指令,并解碼這些指令以產(chǎn)生控制計(jì)算機(jī)其他部件的信號(hào)。這可以使得CPU在存儲(chǔ)器和算術(shù)邏輯單元(ALU)之間轉(zhuǎn)移數(shù)據(jù),或使得外部設(shè)備或外圍設(shè)備進(jìn)行輸入或輸出服務(wù)。硬盤驅(qū)動(dòng)器是外圍設(shè)備的一個(gè)例子。
為了使硬盤驅(qū)動(dòng)器進(jìn)行輸入或輸出服務(wù),CPU可以初始化該硬盤驅(qū)動(dòng)器,以使硬盤驅(qū)動(dòng)器為接收操作命令做好準(zhǔn)備。為了初始化硬盤驅(qū)動(dòng)器,CPU可以把一個(gè)或更多的任務(wù)文件(task-file)初始化命令作為數(shù)據(jù)包,通過被稱為任務(wù)文件寄存器組的設(shè)備傳送到硬盤驅(qū)動(dòng)器。每一個(gè)任務(wù)文件初始化命令花費(fèi)一段時(shí)間執(zhí)行。其一個(gè)原因是在下一個(gè)命令能被執(zhí)行之前,由CPU校驗(yàn)每一個(gè)命令的執(zhí)行。
傳統(tǒng)上,CPU把其處理時(shí)間的一塊專用于外圍設(shè)備的初始化。在這個(gè)外圍設(shè)備初始化專用時(shí)間期間,CPU被阻止執(zhí)行其他處理功能。這樣,CPU的性能被降低。


圖1是本發(fā)明的平臺(tái)100的框圖;圖2示出讀/寫命令設(shè)置協(xié)議方法200;
圖3示出標(biāo)準(zhǔn)輸入/輸出(I/O)任務(wù)文件訪問;圖4示出本發(fā)明一個(gè)實(shí)施例的流水線化的任務(wù)文件訪問。
具體實(shí)施例方式
如下面更詳細(xì)地闡述的那樣,圖1的寄存器設(shè)備128能被用來處理初始化完成通知,而不像傳統(tǒng)的技術(shù),使用中央處理單元(CPU)處理初始化完成通知。利用寄存器設(shè)備128,本發(fā)明努力減少CPU可能專用于初始化ATA設(shè)備的時(shí)間。
大多數(shù)個(gè)人和移動(dòng)計(jì)算機(jī)使用闡明了計(jì)算機(jī)CPU和存儲(chǔ)設(shè)備之間的功率和數(shù)據(jù)信號(hào)接口通信的工業(yè)標(biāo)準(zhǔn)。高級(jí)技術(shù)連接標(biāo)準(zhǔn)是一套流行的工業(yè)標(biāo)準(zhǔn)。這套標(biāo)準(zhǔn)有時(shí)候被寫作AT連接(ATA)或集成驅(qū)動(dòng)電路(IDE),由位于華盛頓特區(qū)的國家信息技術(shù)標(biāo)準(zhǔn)委員會(huì)的T13技術(shù)委員會(huì)(www.t13.com)制定。
用于磁盤驅(qū)動(dòng)器的AT連接接口(ANSI X3.221-199x)是一個(gè)磁盤驅(qū)動(dòng)器接口標(biāo)準(zhǔn),該標(biāo)準(zhǔn)規(guī)定了主系統(tǒng)和存儲(chǔ)設(shè)備之間的互連信號(hào)的邏輯特征以及用于存儲(chǔ)設(shè)備操作的協(xié)議和命令。這個(gè)標(biāo)準(zhǔn)允許符合該標(biāo)準(zhǔn)的主系統(tǒng)產(chǎn)品和存儲(chǔ)設(shè)備產(chǎn)品之間的兼容性,即使這些產(chǎn)品是由不同的制造商生產(chǎn)的。
控制器可以被認(rèn)為是控制數(shù)據(jù)從一個(gè)設(shè)備到一個(gè)外圍設(shè)備的轉(zhuǎn)移及逆向轉(zhuǎn)移的設(shè)備。傳統(tǒng)上,ATA接口控制器可以被置于ATA設(shè)備(例如硬盤驅(qū)動(dòng)器)和CPU之間。ATA接口控制器能起到翻譯器的作用,以輔助每個(gè)輸入/輸出(I/O)周期上的CPU/ATA設(shè)備通信。例如,從CPU接到一個(gè)命令,例如初始化命令后,ATA接口控制器把該命令表述為下游ATA設(shè)備會(huì)理解,即ATA設(shè)備能處理的東西,并把這個(gè)命令發(fā)送到所連接的ATA設(shè)備。在接收到轉(zhuǎn)換過的命令后,ATA設(shè)備能處理該命令,并能通過ATA接口控制器向CPU發(fā)回完成通知。這個(gè)自命令發(fā)送到完成通知的傳統(tǒng)輸入/輸出(I/O)周期是可能用掉大約1.2微秒(μs-百萬分之一(10-6)秒)的單任務(wù)文件寄存器訪問。
把信息傳送到ATA設(shè)備可能涉及對(duì)任務(wù)文件寄存器組的幾個(gè)獨(dú)立的動(dòng)作(或“寫”),其中的每一個(gè)傳統(tǒng)上能夠在一個(gè)1.2μs的I/O周期內(nèi)被處理。例如,在ATA接口控制器處理七個(gè)獨(dú)立的初始化動(dòng)作時(shí),總的I/O周期時(shí)間可能是8.4μs(=7×1.2)。這七個(gè)寫可以整體視作一個(gè)任務(wù)文件。CPU在執(zhí)行一系列命令或輸入/輸出(I/O)訪問以便為數(shù)據(jù)轉(zhuǎn)移適當(dāng)?shù)厥鼓蹵TA設(shè)備時(shí)的動(dòng)作可以稱為“寫任務(wù)文件”。
在ATA接口控制器設(shè)備發(fā)送任務(wù)文件I/O期間,CPU被阻止產(chǎn)生進(jìn)一步命令或接收進(jìn)一步請(qǐng)求。在現(xiàn)行的ATA標(biāo)準(zhǔn)下,利用七個(gè)獨(dú)立的I/O任務(wù)文件寫向ATA設(shè)備發(fā)送命令,CPU會(huì)被占用8.4μs??陀^地看待這個(gè)等待,一千兆赫茲CPU能在一微秒內(nèi)執(zhí)行大約1000條普通的指令,這樣,在CPU專用于ATA設(shè)備初始化的8.4μs內(nèi),如果減少CPU專用于ATA設(shè)備命令設(shè)置的時(shí)間,則CPU能處理多達(dá)8400條(=1000×8.4)普通指令。
通過使用影像寄存器空間來處理任務(wù)文件I/O完成,本發(fā)明努力把CPU可能專用于ATA設(shè)備命令設(shè)置的時(shí)間減少了約7μs從8.4μs減少到大約1.4μs。此外,類似地,本發(fā)明能被用于減少CPU可能專用于CPU內(nèi)部或外部設(shè)備的操作的時(shí)間。因此,在“溢滿狀態(tài)(full condition)”下,即當(dāng)任務(wù)文件寄存器被寫入而CPU必須等到輸出到ATA設(shè)備的I/O周期完成時(shí),寄存器空間允許本發(fā)明中所描述的ATA接口控制器內(nèi)的擴(kuò)展完成到ATA設(shè)備的I/O周期。這樣,允許CPU返回處理其他任務(wù),如寫任務(wù)文件。
圖1是本發(fā)明的平臺(tái)100的框圖。平臺(tái)100能夠和任何具有CPU的系統(tǒng)相聯(lián)。例如,平臺(tái)100能夠和臺(tái)式計(jì)算機(jī)、大型機(jī)、收音機(jī)、電視機(jī)、例如膝上型計(jì)算機(jī)的移動(dòng)計(jì)算機(jī)、衛(wèi)星系統(tǒng)或其他處理信息的電子設(shè)備相聯(lián)。
平臺(tái)100可以包括母板102。母板102可以是計(jì)算機(jī)的主板。此外,母板102可以包括用于CPU、鍵盤和監(jiān)視器的電路,還可以包括接納附加電路的插槽。母板102可以包括CPU 110、系統(tǒng)總線112、顯卡114、存儲(chǔ)器116、輸入/輸出(I/O)端口118和控制器120。存儲(chǔ)設(shè)備122可以被耦合到控制器120。
CPU 110可以是平臺(tái)110的通過執(zhí)行軟件指令控制所有其他部件的那個(gè)部件。系統(tǒng)總線112可以是連接母板102上各種功能單元的一組導(dǎo)線(電線、印刷電路板印刷線或集成電路內(nèi)的連線)之一。例如,顯卡114、存儲(chǔ)器116、I/O端口118和控制器120中的每一個(gè)能夠通過系統(tǒng)總線112耦合到CPU 110。如圖1所示,控制器120能夠通過總線124耦合到系統(tǒng)總線112和通過總線126耦合到存儲(chǔ)設(shè)備122。
顯卡114可以是一個(gè)具有向監(jiān)視器提供位圖顯示所必需的視頻存儲(chǔ)器和其他電子電路的電路板。存儲(chǔ)器116可以是任何能夠以機(jī)器可讀格式保存數(shù)據(jù)的存儲(chǔ)設(shè)備。I/O端口118能夠輔助CPU 110和輸入設(shè)備(未示出)之間的通信,輸入設(shè)備包括諸如鍵盤、鼠標(biāo)、觸摸屏、游戲桿、數(shù)字化板和麥克風(fēng)。
控制器120可以是起到CPU 110和存儲(chǔ)設(shè)備122之間的通信翻譯器作用的設(shè)備??刂破?20可以包括把協(xié)議指令執(zhí)行到總線126上的邏輯。在一個(gè)實(shí)施例中,控制器120可以是ATA接口控制器。
存儲(chǔ)設(shè)備122可以是任何可能要求CPU指令的翻譯并能使用存儲(chǔ)在可與平臺(tái)100連接的位置的信息的設(shè)備。存儲(chǔ)器122可以是磁盤驅(qū)動(dòng)器,該驅(qū)動(dòng)器可以適于讀寫至少一個(gè)繞中心軸旋轉(zhuǎn)的硬式磁性數(shù)據(jù)存儲(chǔ)盤(硬盤)。
總線124可以是16位總線。本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到總線124可以具有更大的吞吐量,如32位外圍元件互連(PCI)總線??偩€126可以是具有ATA帶狀電纜的第一通道,一個(gè)連接到作為ATA設(shè)備的存儲(chǔ)設(shè)備122,例如主設(shè)備,而另一個(gè)連接到第二ATA設(shè)備,例如從設(shè)備。每個(gè)帶狀電纜可以是一個(gè)44/80導(dǎo)線電纜或任何適當(dāng)?shù)膶?dǎo)線電纜。類似于總線126的第二通道可以被耦合到控制器120,以便伺服第二對(duì)主從設(shè)備。
為了在平臺(tái)100內(nèi)以有意義的方式轉(zhuǎn)移數(shù)據(jù),可能需要一種方法來唯一地標(biāo)識(shí)轉(zhuǎn)移的源和目的地。通過使用和住宅或商業(yè)信箱的郵政地址非常類似的地址能夠?qū)崿F(xiàn)這個(gè)標(biāo)識(shí)。對(duì)于平臺(tái)100,這樣的方案可以被稱作尋址。
每一個(gè)設(shè)備,諸如存儲(chǔ)器集成電路、存儲(chǔ)設(shè)備122或CPU 110可以具有其自己的本地地址空間。地址空間可以是處理器或進(jìn)程能夠訪問,或設(shè)備能被訪問的地址的范圍。
設(shè)備總線的地址空間可以至少取決于地址的寬度;即地址中的位數(shù)。具有16位地址寬度的設(shè)備總線唯一地標(biāo)識(shí)出216或準(zhǔn)確些的65536個(gè)位置。處理器地址空間的大小取決于處理器地址總線和地址寄存器的寬度。每一個(gè)本地地址空間可以從零開始。每一個(gè)本地地址可以被映射到從處理器地址空間內(nèi)的某個(gè)基地址開始的地址范圍。類似地,每個(gè)進(jìn)程將具有其自己的地址空間,該空間可以是處理器地址空間的全部或一部分。
地址空間能被劃分為存儲(chǔ)器地址空間和I/O地址空間。在操作中,CPU 110能通過存儲(chǔ)器地址空間、I/O地址空間或存儲(chǔ)器地址空間和I/O地址空間的組合與平臺(tái)100的元件通信。
在標(biāo)準(zhǔn)微處理器體系結(jié)構(gòu)中,I/O地址空間的0-FFFFhex的范圍包括65535個(gè)地址位置(=15×163+15×162+15×161+15×160)(有時(shí)被稱為64K)。平臺(tái)100的使用I/O地址空間的設(shè)備可以在這個(gè)地址范圍上被映射。傳統(tǒng)上,CPU將通過I/O地址空間初始化并訪問存儲(chǔ)設(shè)備。如下面更詳細(xì)討論的那樣,CPU 110唯一地使用存儲(chǔ)器地址空間來初始化并訪問存儲(chǔ)設(shè)備122。存儲(chǔ)器地址空間可以適用于移動(dòng)大量數(shù)據(jù),因?yàn)樵贑PU能移動(dòng)到其他處理任務(wù)之前,存儲(chǔ)器寫不需要完成指示。這樣,使用存儲(chǔ)器地址空間訪問存儲(chǔ)設(shè)備122提供了優(yōu)于使用I/O地址空間的優(yōu)點(diǎn)。
為允許CPU 110與存儲(chǔ)設(shè)備122通信,傳統(tǒng)上可能把一組地址分配為I/O地址空間內(nèi)的地址范圍,用于命令和控制存儲(chǔ)設(shè)備122。能夠訪問存儲(chǔ)設(shè)備122的這個(gè)地址范圍是通常所說的任務(wù)文件。在ATA標(biāo)準(zhǔn)下,地址范圍1F0hex-1F7hex(或1F0h-1F7h)是通常所說的基本命令任務(wù)文件(PTF),而地址3F6hex是通常所說的基本控制任務(wù)文件(PCT)。
無論何時(shí)需要CPU 110向例如存儲(chǔ)設(shè)備122的ATA設(shè)備寫數(shù)據(jù)或從該設(shè)備讀數(shù)據(jù)時(shí),CPU 110可以向那個(gè)ATA設(shè)備發(fā)送一系列初始化命令。例如,在接到CPU初始化命令后,存儲(chǔ)設(shè)備122可以執(zhí)行這些系列命令,以使其自己能夠按CPU 110的要求轉(zhuǎn)移數(shù)據(jù)。因此,這個(gè)任務(wù)文件的九個(gè)地址中的每一個(gè)都可以具有一個(gè)寄存器空間,CPU可以向該寄存器空間內(nèi)寫初始化數(shù)據(jù)。每一個(gè)任務(wù)文件寄存器空間代表一個(gè)特殊的控制或命令函數(shù),該函數(shù)的操作可以基于放置在那個(gè)地址的數(shù)字?jǐn)?shù)據(jù)。
為了初始化存儲(chǔ)設(shè)備122,CPU 110可以使用驅(qū)動(dòng)軟件設(shè)置初始化命令。這些驅(qū)動(dòng)軟件在任務(wù)文件中的九個(gè)寄存器空間中的每一個(gè)內(nèi)寫(放置)數(shù)據(jù),作為一系列形成命令包的命令地址(I/O訪問)。然后,傳統(tǒng)上,CPU 110將通過控制器120直接向存儲(chǔ)設(shè)備發(fā)送該任務(wù)文件命令包。在接收到這個(gè)命令包后,存儲(chǔ)設(shè)備122將順序地執(zhí)行九個(gè)地址命令中的每一個(gè),在每個(gè)執(zhí)行之后向CPU 110發(fā)送一個(gè)完成消息。
為減少CPU 110可能專用于初始化存儲(chǔ)設(shè)備122的時(shí)間,圖1的平臺(tái)100還可以包括置于CPU 110和存儲(chǔ)設(shè)備122之間的寄存器設(shè)備128。寄存器設(shè)備128可以被置于控制器120和CPU 110之間,并通過總線130耦合到系統(tǒng)總線112。
如果CPU 110和控制器120并未以完全相同的速率發(fā)送和接收數(shù)據(jù)包(例如,沒有使它們同步),寄存器設(shè)備128可以包括發(fā)布硬件緩沖區(qū)(posting hardware buffer),項(xiàng)目被從該緩沖區(qū)中以和它們被放入時(shí)相同的順序取出,以便緩沖CPU 110和控制器120之間的數(shù)據(jù)流。寄存器設(shè)備128可以是先進(jìn)/先出(FIFO)設(shè)備。寄存器設(shè)備128可以是隊(duì)列設(shè)備,其中,每個(gè)入口具有一個(gè)結(jié)構(gòu)。此外,寄存器設(shè)備128可以具有容納所有來自CPU 110的任務(wù)文件寫指令包而不因溢滿狀態(tài)引入延遲的深度。此外,寄存器設(shè)備128的深度能通過可讀寄存器或通過先驗(yàn)算法(priori)被告知給任務(wù)文件寫軟件以優(yōu)化性能。
通過以所要的參數(shù)在命令塊內(nèi)加載所需的寄存器,然后把命令代碼寫入命令寄存器,能夠?qū)⒚钔ㄟ^寄存器設(shè)備128發(fā)布到存儲(chǔ)設(shè)備122。在信息技術(shù)-具有包接口的AT連接-5(ATA/ATAPI-5)(1999)第133頁到134頁的標(biāo)準(zhǔn)下,總線130能使用如下具有九個(gè)地址1F0hex-1F7hex、3F6hex的存儲(chǔ)器地址空間

如上面在表1中所指明的,讀直接存儲(chǔ)器訪問(DMA)設(shè)備的輸入命令/控制代碼可以是C8h。關(guān)于剩余寄存器字段,特征寄存器字段對(duì)于表1的直接存儲(chǔ)器訪問輸入命令是不適用的。扇區(qū)計(jì)數(shù)寄存器字段表示要被轉(zhuǎn)移的扇區(qū)的數(shù)量。例如,值00h表示要轉(zhuǎn)移二百五十六(256)個(gè)扇區(qū)。扇區(qū)號(hào)寄存器字段表示起始扇區(qū)號(hào)或邏輯塊地址(LBA)模式地址位(7:0)。柱面低位寄存器字段表示起始柱面號(hào)位(7:0)或LBA地址位(15:8)。此外,柱面高位寄存器字段表示起始柱面號(hào)位(15:8)或LBA地址位(23:16)。
對(duì)于設(shè)備/磁頭寄存器字段,如果正在使用LBA邏輯尋址模式,則可將第六位置為1,或者,如果正在使用柱面、磁頭、扇區(qū)(CHS)物理尋址模式,則清零。第七位表示起始柱面號(hào)位(7:0)或LBA地址位(15:8)。第七位和第五位的使用已經(jīng)被廢棄(obs)。第四位表示所選的設(shè)備(DEV)。設(shè)備/磁頭寄存器字段的剩余位,即第三位到第零位,表示磁頭號(hào)位(3:0)或邏輯塊地址(LBA)模式地址位(27:24)。
結(jié)合寄存器設(shè)備128使用表1的命令寄存器字段能允許平臺(tái)100的驅(qū)動(dòng)軟件向控制器120的存儲(chǔ)器映射區(qū)寫入任務(wù)文件命令序列。這個(gè)流水線任務(wù)文件訪問技術(shù)的優(yōu)點(diǎn)是,向控制器120的存儲(chǔ)器映射區(qū)(影像寄存器空間)寫入任務(wù)文件命令序列可以不阻塞總線126上I/O數(shù)據(jù)向存儲(chǔ)設(shè)備122的轉(zhuǎn)移的完成。也就是說,通過使用存儲(chǔ)器寫而非I/O周期,CPU 110使用控制器120內(nèi)的現(xiàn)有存儲(chǔ)器寫發(fā)布基礎(chǔ)結(jié)構(gòu)(memory write postinginfrastructure),在系統(tǒng)總線112上在最少數(shù)量的時(shí)鐘周期內(nèi)完成每一個(gè)寫。
通過不阻塞總線126上I/O數(shù)據(jù)向存儲(chǔ)設(shè)備122的轉(zhuǎn)移的完成,控制器120能以不受從存儲(chǔ)設(shè)備122的初始化中釋放CPU 110影響的速度向存儲(chǔ)設(shè)備發(fā)送任務(wù)文件寄存器的內(nèi)容。這里,平臺(tái)100能把存儲(chǔ)器寫轉(zhuǎn)換回存儲(chǔ)設(shè)備122能理解的I/O寫格式和I/O寫速率。這樣,在周期在總線126(以比CPU 110所發(fā)布的低得多的速率)上運(yùn)行的同時(shí),CPU 110能向寄存器設(shè)備128發(fā)布后面的任務(wù)文件存儲(chǔ)器寫或轉(zhuǎn)移到其他處理活動(dòng)上去。
圖2示出讀/寫命令設(shè)置協(xié)議方法200。圖3示出圖2方法的時(shí)間表。很容易看出,圖3中,在ATA通道處于激活狀態(tài)時(shí),例如寫驅(qū)動(dòng)選擇,CPU被阻止執(zhí)行其他任務(wù)。
方法200可以和用于寫任務(wù)文件的傳統(tǒng)協(xié)議具有類似性。但是,方法200涉及寫入存儲(chǔ)器映射寄存器隊(duì)列而非I/O映射任務(wù)文件寄存器。
方法200能在任何可讀介質(zhì)中實(shí)現(xiàn),當(dāng)其被執(zhí)行時(shí),使得本發(fā)明的平臺(tái)100執(zhí)行方法200。在一個(gè)實(shí)施例中,方法200能通過分布式可讀存儲(chǔ)介質(zhì)實(shí)現(xiàn),該介質(zhì)包括可執(zhí)行的計(jì)算機(jī)程序指令,當(dāng)其被執(zhí)行時(shí),使得客戶計(jì)算機(jī)系統(tǒng)和服務(wù)器計(jì)算機(jī)系統(tǒng)中的至少一個(gè)執(zhí)行方法200。此外,方法200能通過計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)實(shí)現(xiàn),該介質(zhì)包含可執(zhí)行的計(jì)算機(jī)程序指令,當(dāng)其被執(zhí)行時(shí),使得具有平臺(tái)100的計(jì)算機(jī)系統(tǒng)執(zhí)行方法200。
方法200可以在步驟202開始。在步驟202,方法200可以尋址存儲(chǔ)設(shè)備122,以便命令存儲(chǔ)設(shè)備122聯(lián)機(jī)?;叵肷厦娴谋?,設(shè)備/磁頭寄存器字段的第四位表示所選的設(shè)備(DEV)。這樣,步驟202可以包括在設(shè)備/磁頭寄存器字段的第四位(寫/驅(qū)動(dòng)選擇位)放置適當(dāng)?shù)妮斎?。這個(gè)第四位信息總是被發(fā)送到I/O任務(wù)文件。
在步驟204,方法200可以讀存儲(chǔ)設(shè)備122的備用狀態(tài)寄存器(alt-status register),以確定存儲(chǔ)設(shè)備122是否繁忙。如果存儲(chǔ)設(shè)備122繁忙,則方法200在步驟206返回“SRB_STATUS_BUSY”信號(hào),因?yàn)樾⌒陀?jì)算機(jī)系統(tǒng)接口(SCSI)請(qǐng)求塊(SRB)字段不會(huì)被清除。從步驟206,方法200可以返回步驟204。
在正常操作下,存儲(chǔ)設(shè)備122在第一次讀其備用狀態(tài)寄存器時(shí)可能不繁忙。這樣,步驟204的讀命令能被發(fā)送到I/O任務(wù)文件?;蛘撸椒?00可能返回步驟204達(dá)20000次。這里,步驟204的讀命令能被發(fā)送到存儲(chǔ)器隊(duì)列。
如果存儲(chǔ)設(shè)備122不繁忙,則方法200可以繼續(xù)到步驟208。在步驟208,方法200可以確定存儲(chǔ)設(shè)備122的DMA引擎是否激活。如果存儲(chǔ)設(shè)備122的BM引擎激活,則BM引擎可以被關(guān)閉,并且驅(qū)動(dòng)在步驟210復(fù)位。如果存儲(chǔ)設(shè)備122的BM引擎沒有激活,則方法200可以前進(jìn)到步驟212。
在步驟212,方法200能夠計(jì)算塊計(jì)數(shù)和程序設(shè)備。這可能涉及向表1的扇區(qū)計(jì)數(shù)寄存器字段的存儲(chǔ)器隊(duì)列寫入塊長度。步驟212與傳統(tǒng)技術(shù)的區(qū)別在于,在傳統(tǒng)技術(shù)下,塊長度被寫到I/O任務(wù)文件,而步驟212包括向存儲(chǔ)器隊(duì)列寫入塊長度。
在步驟214,方法200可以計(jì)算邏輯塊地址(LBA)和程序設(shè)備。這可以包括向存儲(chǔ)器隊(duì)列寫入上面表1的下列寄存器中的至少一個(gè)扇區(qū)號(hào)、柱面低位、柱面高位和設(shè)備/磁頭寄存器。步驟214與傳統(tǒng)技術(shù)的區(qū)別在于,在傳統(tǒng)技術(shù)下,這些寄存器被寫到I/O任務(wù)文件,而步驟214包括將這些寄存器寫入存儲(chǔ)器隊(duì)列。
在步驟216,方法200可以包括對(duì)DMA描述符表內(nèi)容編程。在步驟218,可以用可被發(fā)送到存儲(chǔ)器隊(duì)列而非I/O任務(wù)文件的讀或?qū)懨顚?duì)表1的命令寄存器編程。
在步驟220,可以對(duì)BM引擎進(jìn)行編程。這可能涉及針對(duì)例如控制器120的被特定訪問的控制器清除BM中斷(BMI)狀態(tài)位。此外,能夠設(shè)置BM引擎的驅(qū)動(dòng)轉(zhuǎn)移協(xié)議(DTP)。在一個(gè)實(shí)施例中,BMI_DTP只能被設(shè)置一次。最后,BMI控制能被設(shè)置到“啟動(dòng)/停止總線主控”位。
隨著BM引擎在步驟220被編程,方法200能夠在步驟222等待來自存儲(chǔ)設(shè)備122的中斷信號(hào)。這可能涉及返同“SRB_STATMS_PENDING”信號(hào),因?yàn)樾⌒陀?jì)算機(jī)系統(tǒng)接口(SCSI)請(qǐng)求塊(SRB)字段將被隨變化連接。在步驟224,可以接收中斷信號(hào)。
無論何時(shí)將直接存儲(chǔ)器訪問讀或?qū)懗跏蓟oATA設(shè)備,都能使用本發(fā)明。因?yàn)榈湫偷挠?jì)算機(jī)系統(tǒng)包括可以被使能以便用于通過直接存儲(chǔ)器訪問讀或?qū)懙闹饔脖P驅(qū)動(dòng)器,CPU性能可隨著本發(fā)明的每一使用提高。進(jìn)而,因?yàn)镃PU性能提高了,本發(fā)明努力減小的磁盤訪問開銷將等值于巨大的性能收益。
圖4示出了針對(duì)本發(fā)明方法的時(shí)間表,其中,任務(wù)文件訪問被流水線化。通過使用寄存器設(shè)備128,如圖1所示,將CPU釋放,使得其他任務(wù)的處理得以實(shí)現(xiàn)。
上面的實(shí)施例也能被存儲(chǔ)在設(shè)備或介質(zhì)上,并被執(zhí)行指令的機(jī)器讀取。設(shè)備或介質(zhì)可以包括固態(tài)存儲(chǔ)器設(shè)備和/或旋轉(zhuǎn)磁盤或光盤。當(dāng)指令分段已被分配到不同的機(jī)器,如跨越互聯(lián)的計(jì)算機(jī)時(shí),設(shè)備或介質(zhì)可以是分布式的。
這里描述的示范性實(shí)施例僅僅被提供用于說明本發(fā)明的原理,并且不應(yīng)該被理解為限制要求權(quán)利的發(fā)明的術(shù)語的主題的范圍。因此,說明書和附圖要被視作說明性的而非限制性的。此外,能應(yīng)用本發(fā)明的原理獲得這里所描述的優(yōu)點(diǎn),并獲得其他的優(yōu)點(diǎn)或者還滿足其他目的。
權(quán)利要求
1.一種平臺(tái),包括中央處理單元;通過系統(tǒng)總線耦合到所述中央處理單元的控制器;耦合在所述中央處理單元和所述控制器之間的寄存器設(shè)備;和耦合到所述控制器的總線,該總線具有一個(gè)適于接納設(shè)備的端,其中,所述寄存器設(shè)備具有容納所有來自所述中央處理單元的指令包而不因溢滿狀態(tài)引入延遲的深度。
2.如權(quán)利要求1所述平臺(tái),其中所述控制器是高級(jí)技術(shù)連接(ATA)接口控制器。
3.如權(quán)利要求1所述平臺(tái),其中所述寄存器設(shè)備包括發(fā)布硬件緩沖區(qū)。
4.如權(quán)利要求1所述平臺(tái),其中所述寄存器設(shè)備是先進(jìn)/先出設(shè)備。
5.如權(quán)利要求1所述平臺(tái),其中,所述寄存器設(shè)備具有適于通過至少一個(gè)可讀寄存器被告知給任務(wù)文件寫軟件的深度。
6.如權(quán)利要求2所述平臺(tái),其中,耦合到所述控制器的所述總線是具有高級(jí)技術(shù)連接(ATA)帶狀電纜的第一通道。
7.如權(quán)利要求1所述平臺(tái),還包括通過所述總線耦合到所述控制器的存儲(chǔ)設(shè)備。
8.如權(quán)利要求7所述平臺(tái),其中,所述存儲(chǔ)設(shè)備是適于讀寫至少一個(gè)硬式磁性數(shù)據(jù)存儲(chǔ)盤的磁盤驅(qū)動(dòng)器。
9.如權(quán)利要求1所述平臺(tái),其中,所述寄存器設(shè)備能夠在一個(gè)任務(wù)文件I/O周期期間無阻塞地處理到高級(jí)技術(shù)連接(ATA)設(shè)備的輸入/輸出(I/O)周期。
10.一種方法,包括通過控制器和寄存器設(shè)備尋址耦合到中央處理單元的存儲(chǔ)設(shè)備,其中,所述控制器通過系統(tǒng)總線被耦合到所述中央處理單元并且所述寄存器設(shè)備被耦合在所述中央處理單元和所述控制器之間;計(jì)算塊計(jì)數(shù)和程序設(shè)備;計(jì)算邏輯塊地址和所述程序設(shè)備;對(duì)直接存儲(chǔ)器訪問描述符表的內(nèi)容編程;對(duì)命令寄存器編程;對(duì)直接存儲(chǔ)器訪問引擎編程;和等待來自所述存儲(chǔ)設(shè)備的中斷信號(hào)。
11.如權(quán)利要求10所述方法,其中,計(jì)算塊計(jì)數(shù)和程序設(shè)備包括向存儲(chǔ)器隊(duì)列寫入塊長度。
12.如權(quán)利要求10所述方法,其中,計(jì)算邏輯塊地址和所述程序設(shè)備包括向存儲(chǔ)器隊(duì)列寫入至少一個(gè)寄存器字段。
13.如權(quán)利要求10所述方法,其中,對(duì)所述命令寄存器編程包括讀和寫存儲(chǔ)器隊(duì)列的其中之一。
14.一種可讀存儲(chǔ)介質(zhì),包含可執(zhí)行的指令,當(dāng)其被執(zhí)行時(shí),使得平臺(tái)執(zhí)行一種方法,該方法包括通過控制器和寄存器設(shè)備尋址耦合到中央處理單元的存儲(chǔ)設(shè)備,其中,所述控制器通過系統(tǒng)總線被耦合到所述中央處理單元并且所述寄存器設(shè)備被耦合在所述中央處理單元和所述控制器之間;計(jì)算塊計(jì)數(shù)和程序設(shè)備;計(jì)算邏輯塊地址和所述程序設(shè)備;對(duì)直接存儲(chǔ)器訪問描述符表的內(nèi)容編程;對(duì)命令寄存器編程;對(duì)直接存儲(chǔ)器訪問(DMA)引擎編程;和等待來自所述存儲(chǔ)設(shè)備的中斷信號(hào)。
15.如權(quán)利要14所述可讀介質(zhì),其中,計(jì)算塊計(jì)數(shù)和程序設(shè)備包括向存儲(chǔ)器隊(duì)列寫入塊長度。
16.如權(quán)利要14所述可讀介質(zhì),其中,計(jì)算邏輯塊地址和所述程序設(shè)備包括向存儲(chǔ)器隊(duì)列寫入至少一個(gè)寄存器字段。
17.如權(quán)利要14所述可讀介質(zhì),其中,對(duì)所述命令寄存器編程包括讀和寫存儲(chǔ)器隊(duì)列的其中之一。
全文摘要
本發(fā)明包括具有通過系統(tǒng)總線耦合到中央處理單元的控制器的平臺(tái)。所述平臺(tái)也包括耦合在所述中央處理單元和所述控制器之間的寄存器設(shè)備。此外,所述平臺(tái)也包括耦合到所述控制器,具有一個(gè)適于接納設(shè)備的端的總線。所述寄存器設(shè)備具有容納所有來自所述中央處理單元的指令包而不因溢滿狀態(tài)引入延遲的深度。
文檔編號(hào)G06F13/38GK1503948SQ01816634
公開日2004年6月9日 申請(qǐng)日期2001年9月27日 優(yōu)先權(quán)日2000年9月29日
發(fā)明者邁克爾·埃施曼, 邁克爾·德爾, 德爾, 邁克爾 埃施曼 申請(qǐng)人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1