TWI292532B - Method of automatically executing at least a command - Google Patents

Method of automatically executing at least a command Download PDF

Info

Publication number
TWI292532B
TWI292532B TW094138419A TW94138419A TWI292532B TW I292532 B TWI292532 B TW I292532B TW 094138419 A TW094138419 A TW 094138419A TW 94138419 A TW94138419 A TW 94138419A TW I292532 B TWI292532 B TW I292532B
Authority
TW
Taiwan
Prior art keywords
instruction
host
code
interpreter
instruction code
Prior art date
Application number
TW094138419A
Other languages
English (en)
Other versions
TW200615774A (en
Inventor
Jaan Huei Chen
Yu Lun Cheng
Original Assignee
Mediatek Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mediatek Inc filed Critical Mediatek Inc
Publication of TW200615774A publication Critical patent/TW200615774A/zh
Application granted granted Critical
Publication of TWI292532B publication Critical patent/TWI292532B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Bus Control (AREA)

Description

1292532 憶體内的資料,並且進一步將資料傳遞至ATA/ATAPI裝置18,•另 一方面,關於從ATA/ATAPI裝置18傳遞資料至主機n的動作, 首先’中央處理器12控制ATA/ATAPI主機控制器 裝置18取得欲傳輸的資料,並且將所取得的資料存入記憶體14 令。如業界所習知,ATA/ATAPI主機控制器16係為一經由中央處 理器12驅動的被動零件,此外,主機控制器16係根據ΑΤΑ/ΑΤΑρι 協定來與ATA/ATAPI裝置18進行溝通。 一般來說’ ATA/ATAPI協定係經由中央處理器I]所執行,其 程序如下所述。首先,巾央處理n 12藉由ATA/ATAPI主機控制 器16送出一指令至ATA/ATAPI裝置18,並等待從ata/ATAPI裝 置18送出的中斷請求(intemipt);檢測ΑΤΑ/ΑΤΑρι裝置18的狀 態丄啟動該指令所須的資料傳輸;檢測該指令的執行結果;以及 ,著繼續執行下-個指令。所以,上述的操作需要中央處理器12 多次的介入來完成資料傳輸的目的。 舉例來說,如果主機1丨發出一指令至ΑΤΑ/ΑΤΑρι裝置18, 主機11必須先檢測ATA/ATAPI錢18驗態,接賴由寫入一 1/〇暫存器來發出一指令至ATA/ATAPI裝置18。這些步驟都需要 成人的I/O週期(I/O Cycle)才能完成,而這些^期都會消 =時間’而I/O週期的操作時間皆受限於ata/atapi的規格。在 ^出扣令後,主機11需要等待ATA/ATAPI裝置18準備好傳輸 或接收賴,岭ATA/ATApi㈣18準備好以後,ata/atapi 1292532 % % 、裝置18會送出-中斷請求INTRQ來通知主機n可以開始傳輸資 料°對於主機11而言,中斷請求intRQ係為一輸入的中斷訊號、, 因此,主機11便需要處理該事件、檢測狀態以及接著開始資料傳 輸,而些步驟會一直地重複,直到所有的資料都傳輸完畢為止。 *-週邊裝置細應時陳長時,巾央處理器便會耗費相當多的 時間來等待魏邊裝置的回顧及檢職週邊裝置的狀態。 .在所有的資料都傳輸完畢以後,ΑΤΑ/ΑΤΑρι裝置18必須把該 指令已經處理完畢的訊息告知主機11,此外,主機11也必須再一 次地檢測狀態。以主機u所執行的多工系統(multi-tasksystem)為 例’主機11必須要切換正在處理中的複數個工作以處理多個事 件,並且等候許多I/O週期來檢測狀態以處理可能發生的錯誤;因 此,無論中央處理器12的運算速度有多快,被執行的ata/atapi 指令若越多,則中央處理器12就需要消耗越多的處理時間。 > 請參閱第2圖,第2圖為習知DMA資料傳輸的流程圖。如第 2圖所示,DMA資料傳輸包含有下列步驟: 步驟100:開始; 步驟102 :主機11讀取一狀態暫存器(statusregister)或是一備用狀 態暫存器(alternative status register),直到 BSY=0 以及 DRQ=0; 步驟104 :主機11將一適當的DEV位元寫入一 Device/Head暫存 器 ; 步驟106 :主機11讀取該狀態暫存器(statusregister)或是該備用狀 1292532
^ P t 、 態暫存器直到BSY=0以及DRQ=0 ; 步驟108 :主機11寫入需要的參數至一 Features暫存器、一 Seet(^ Count暫存器、一 CHS暫存器以及該Device/Head暫存器; 步驟110 :主機11初始化一 DMA通道(DMA channel); 步驟112 :主機11將一 ATA/ATAPI指令碼寫入一指令暫存器 (command register); 步驟114 : ATA/ATAPI裝置18設定BSY=1以及準備開始執行該 _ 指令碼; 步驟116 : ATA/ATAPI裝置18檢測是否有錯誤發生?如果有—個 錯誤發生,則執行步驟118 ;若則,執行步驟122; 步驟118 : ATA/ATAPI裝置18設定狀態位元(statusbit)以及錯 誤位元(error bit); 步驟120 : ATA/ATAPI裝置18檢測是否繼續資料傳輸?若資料傳 輸仍必須繼續,則執行步驟122 ;否則,執行步驟126; 步驟122:ATA/ATAPI裝置18發出一 DMARQ,並繼續資料傳輪; 1步驟以:ATA/ATAH裝置18檢測是否還有資料需要傳輸%果 還有賀料需要傳輸,則執行步驟130 ;否則,執行步驟Gy 步驟126 : ATA/ATAPI裝置18設定BSY=〇以及DRQ=〇,發出, INTRQ並收回DMARQ,接著執行步驟I%; 步驟128 :主機11重置該DMA通道,並且執行步驟132; 步驟130 ·· ΑΤΑ/ΑΤΑΠ裝置18繼續發出DRQ或是BSY,並且接 著執行步驟116;以及 步驟132 :結束。 1292532 首先,主機11需要檢測ATA/ATAPI裝置18的狀態(步驟 102),因此’主機11係輪詢(ρ〇ιι)該狀態暫存器中一忙碌位元(busy bit)BSY以及一資料請求位元(datarequestbit)DRQ;在此請注意, 該忙碌位元係為ATA/ATAPI裝置18中一控制電路(c〇ntr〇11〇gic) 所設定,用以指出現在ATA/ATAPI裝置18的狀態是否為一可存 取狀態,而該資料請求位元則用來指出ΑΓΛ/ATAPJ裝置18是否 e青求其與主機11之間的資料傳輸。因此,主機η必須不斷地等 φ 候直到BSY=0以及DRQ=0(步驟1〇4卜接著,主機η會於 Device/Head暫存器中寫入適當的DEV位元;在此請注意, Device/Head暫存器係用來紀錄進行任一磁碟存取操作所需之 ATA/ATAPI裝置的識別號碼(IDnumber)以及磁頭號碼(_ number)。在步驟104之後,主機U需要再次檢測ΑΤΑ/ΑΤΑρι裝 置18的狀態,因此,主機11會輪詢該狀態暫存器直到以 及DRQ=0(步驟1〇6)。接著,主機n寫入所需的參數至ΑΤΑ/ΑΤΑρι 裝置18中的暫存器以指出欲透過匯流排傳輸之資料區塊的數目 (步驟108)。假設電子系統1〇係處理一資料傳輸的指令(舉例來 說,資料傳輸係指一 DMA資料傳輸),因此,主機u會初始化一 DMA通道(步驟110)並且把該指令碼寫入指令暫存器驟叫,· 在步驟114之中,ATA/ATAPI裝置18會將BSY設定為丨,並且準 備開始執行主機11發出的指令碼。在此,如果有一個錯誤發生(步 驟116),則ATA/ATAPI裝置18便會設定狀態位元以及錯誤=元厂 狀態位元以及錯誤位元係包含有ΑΤΑ/ΑΤΑρι裝置18執行上一個 指令的狀態資訊(步驟II8)。在步驟118之後,如果仍需要繼續資 1292532 , ' * 料傳輸(步驟120),則ATA/ATAPI裝置18會發出一 DMARQ;在 此’ DMARQ係用來表示需要啟動DMA資料傳輸來傳輸資料(步 驟122);如果所有的資料還沒有傳輸完成(步驟124),則 ATA/ATAPI裝置18會持續發出BSY或是DRQ來維持目前的DMA 資料傳輸(步驟130),這表示ATA/ATAPI裝置18可以傳輸資料至 主機11或從主機Π獲得資料。此外,如果所有的資料都已經成 功地傳輸完畢(步驟124),則ATA/ATAPI裝置18會把BSY以及 馨 DRQ都重置為〇,並且發出至主機“,而如前所述, 係用來中斷主機11的執行。除此之外,ATA/ATAPI裝置18亦會 收回DMARQ(步驟126),因此,主機11便會重置該DMA通道(步 驟128)。最後,該指令碼若非被完整地執行,其便是於執行中被 中止(步驟132)。 清參閱第3圖,第3圖為習知非資料(ηοη_(^&)傳輸或是pj〇 資料傳輸的流程圖。如第3圖所示,PIO資料傳輸包含有以下步 ® 驟: 步驟200 :開始; 步驟202 :主機11讀取一狀態暫存器或是一備用狀態暫存器,直 到 BSY=〇 以及 DRQ=0 ; 步驟204:主機11把適當的DEV位元寫入一 Device/Head暫存器; 步驟206 :主機11讀取該狀態暫存器或是該備用狀態暫存器,直 到 BSY=0 以及 DRQ=0 ; 步驟208:主機11寫入需要的參數至Features暫存器,Sector Count 1292532
^ I i 暫存器,CHS暫存器以及Drive/Head暫存器; 步驟210 :主機11寫入一指令碼至一指令暫存器; 步驟212 : ATA/ATAPI裝置18設定BSY=1以及準備開始接收資 料; 步驟214 · ATA/ATAPI裝置18檢測是否有錯誤發生?若有一錯誤 發生,則執行步驟216 ;否則,執行步驟218; 步驟216 · ATA/ATAPI裝置18設定錯誤位元以及狀態位元,並且 | 依據需求來設定DRQ,接著執行步驟22〇;
步驟218 ·當ATA/ATAPI裝置18準備好接收資料後,ata/ATAPI 裝置18設定DRQ=1; 步驟 220 : ATA/ATAPI 裝置 18 設定 BSY=0; 步驟222 ·· ATA/ATAPI裝置18檢測DRQ是否為若DRQ=卜 貝1J執行步驟224 ;否則,執行步驟226; 步驟224 :主機11傳輸資料至ata/ATAPI裝置18; 步驟226 :主機11讀取雜態暫姑献該翻㈣暫存器; 步驟⑽:ΑΤΑ/ΑΓΑΗ裝置18檢測是否有一錯誤於資料傳輸前發 生?若有-錯誤發生’則執行步驟23〇;否則,執行步驟说; 步驟230 : ΑΤΑ/ΑΤΑΗ褒置18設定BSY=〇以及DRQ=〇,且發出 INTRQ,並接著執行步驟248; 步驟说:ΛΓΑ/ΑΓΑΗ裝置18設定咖小以及處理從主機η 所傳輸過來的資料; 步驟234 . ATA/ATAPI裝置ι8檢測是否有一錯誤在資料傳輸後發 生或是資料傳輸完成?若資料傳輸後有一錯誤發生或是資料 1292532 傳輸元成’則執行步驟236 ;否則,執行步驟238; 步驟236 · ATA/ATAPI裝置18設定BSY=〇且發出J]SJTRQ,以及 接著執行步驟248; 步驟238 · ATA/ATAPI裝置18設定BSY=〇以及DRQ=〇,並發出 INTRQ,以及接著執行步驟24〇; 步驟240 ·中斷機制疋否被啟動?若是,則執行步驟淡:否則, 執行步驟244; Φ 步驟242 :主機11等待一中斷,並且執行步驟246; 步驟244 ·主機π讀取該備用狀態暫存器,直到BSY=〇; 步驟246 ·主機11讀取且儲存該狀態暫存器的資料内容,接著執 行步驟212;以及 步驟248 :結束。 首先,步驟200至步驟210與第2圖所示的步驟1〇〇至步驟 no相同,為了簡化說明,故於此不另贅述。在步驟212之中, _ ATA/ATAPI裝置18設定BSY=1以及準備好開始接收資料,接著, ATA/ATAPI裝置18便檢測是否有一錯誤發生(步驟214);若有一 錯誤發生,則ATA/ATAH裝置18設定錯誤位元(eiT〇rbit)以及 狀態位元,並且依據需要來設定DRQ(步驟216),在此,drq係 用來指出ATA/ATAPI裝置需要繼續傳輸資料。另一方面,若 沒有錯誤發生,則ATA/ATAH裝置18於準備好接收資料時,其 會設定DRQ。接著,ΑΓΑ/ΑΤΑΗ裝置18設定BSY=〇(步驟22〇) 以及檢測是否DRQ哨步驟奶),其中若DRQ=1,則主機u會傳 12 1292532 輸資料至ΑΤΑ/ΑΤΑΡΙ裝置18(轉224),接著會讀倾狀態暫存 器或是該備用狀態暫存器(步驟226)。 若有一錯誤發生(步驟228),則ΑΤΑ/ΑΤΑΡΙ裝置18會設定 BSY=〇以及DRQ=〇,並且發出膽叫(步驟23〇);最後該非資 料傳輸或是該PIO資料傳輸便會因為發生錯誤而被終止(步驟 248)。此外,如果沒有錯誤發生(步驟228),則ΑΤΑ/ΑΤΑρι裝置 > 18會設定BSY=1,並且處理從主機u所傳遞過來的資料(步驟 232)。接著,如果有一錯誤發生或是資料傳輸已經完成(步驟, 則ATA/ATAPI裝置18會設定BSY=〇,並且輸出膽叫來通知主 機11(步驟夠。最後,該非資料傳輸或是該ρι〇資料傳輸就成功 地完成運作或因為錯誤而結束(步驟248);除此之外,如果沒有錯 誤發生或疋為料傳輸尚未完成(步驟234),則ATA/ATAPI裝置18 會設定BSY=0以及DRQ=卜並且輸出mTRQ來通知主機u(步 驟 238)。 如果電子系統10具有中斷機制’舉例來說,一中斷致能位元 (drive interrupt enable bit) nIEN 被設定為 〇 (步驟 24〇),則主機 ^ 會等待一中斷(在此該中斷可為取丁尺⑵丨步驟242),接著,當收到 INTRQ後’域11會讀取與儲存該狀態暫存㈣資料内容,以清 除ATA/ATAPI裝置18目前的中斷狀態(步驟m),並且回到步驟 212來傳輸後續資料;另一方面,如果電子系統1〇並沒有啟動中 斷機制_Ν叫(步驟240),則主機u便讀取該個狀態暫存器 13 1292532 直到BSY=〇,然後再讀取並儲存狀態暫存器的内容(步驟246),並 且該主機11會回到步驟212來傳輸後續資料。 如上所述,我們可以很明顯地看出,主機u本身需要處理整 個資料傳輸的流程,換句話說,在整個資料傳輸的流程之中,主 機11會經常被中斷,因此整體中央處理器的效能會因為不斷的工 作切換而大幅惡化。 習知技術揭露了很多方法來解決上述的問題。一個常見的做 法是增加一個額外的微控制器,來幫助一主機處理器(host processor)控制週邊裝置;換句話說,主機處理器會送出指令至微 控制器來控制週邊裝置。在此,雖然主機處理器無須再直接控制 週邊裝置,但是該微控制器可以視為一個處理器,換句話說,微 控制器仍然需要附加的軟體來控制週邊裝置,因此,這樣的方法 並不屬於硬體加速的方法。
I 此外,在Keith Balmer所揭露之美國公開專利Ν0· 2002/0065995中’其係使用一批次指令(batchcommand)。因此, 主機處理器可以將原先欲寫入至裝置暫存器的内容,寫入至 ATA/ATAPI主機控制器中的暫存器;接著,ΑΤΑ/ΑΤΑρι主機控制 器會將該内容從其暫存器寫入該週邊裝置上的暫存器;相同地, 原先欲從週邊裝置之暫存器讀取的内容也會被先寫入至該 ATA/ATAPI主機控制器,接者,ATA/ATAPI主機控制器會讀取該 1292532 内谷雖然此-方法可以確實地加快主機處理器存取裝置中暫存 器的速度仁疋對於整個ATA協定的力口速效果仍然相當有限。 除此之外,在TGny Goodfellow所揭露之美國專利Να 6275879 中/、揭路了衫子複製裝置暫存器(shadowing device register ) 的方法,換句話說,原先欲寫人—週邊裝置之暫存㈣資料會先 被儲存,並且被自動地轉送至相對應週邊裝置。此外,該週邊裝 參置的暫存器會被輪詢,並且該週邊裝置之暫存器的資料内容會影 子複製(shadow)至A1A/ATAPI主機控制器中。在此一方法之中, 雖然主機處理器不會受限於該週邊裝置的暫存器,但是相同地, 這方法也只加速了與該週邊裝置之暫存器有關的相對絲作,對 於整個ATA/ATAPI協定而言,整體的加速效果依然相當有限。 在Jams Arthur McDonald等人所揭露的美國專利N〇 642丨76〇 中,其揭露了一個完全由硬體實現的ΑΤΑ主機控制器來執行ATA 鲁協疋。該ΑΤΑ主機控制器可以支援以下的三個操作:(!)讀取並且 檢測該週邊裝置之狀態暫存器的内容;(2)連續寫入資料至週邊裝 置中8個暫存器;(3)初始化256字元的資料傳輸(256_worddata transfer)。在此一方法之中,該ATA主機控制器可以無須主機處 理器的幫忙,其可自行執行ΑΤΑ協定;但是,此一方法具有另外 一個嚴重的問題,亦即’因為該ΑΤΑ主機控制器完全以硬體來加 以實作’故該主機處理器並沒有辦法可改變該ΑΤΑ主機控制器的 操作程序,且該ΑΤΑ主機控制器只能用來控制一般的ΑΤΑ裝置。 15 I292532 換句話說,如果射成—ATAPi㈣,或是ATA裝 置/又有辦法與域7G全相容,貞彳這樣的ATA域控㈣就沒有辦 法適當地運作。 AT嫌TAPI主機接取標準(AT规ΤΑρι_ ad叩故standard) 定義了-做祕㈣松。根據該鮮,主要存在三個基本的 運作··⑴寫入-8>f立元的暫存器;(2)輪詢一狀態暫存器中的忙綠 位元(亦即BSY),以及⑶初始化一資料傳輸。當執行該ATA協 疋的時候’會先執行-連串寫入該週邊裝置之暫存器的動作,此 外,在寫人該週邊裝置之暫存器之前,會絲詢該狀態暫存器中 該忙碌位元,接著,在完成寫入該週邊裝置之暫存器的動作完成 以後,便初始化該資料傳輸。在此一方法之中,其雖然比先前所 述之習知方法更具有操作彈性,並達成了自動執行協定的目的, 但是此一方法仍舊沒有辦法支援更複雜的協定。舉例來說,對於 一個需要傳輸好幾次資料的PI0指令,或是需要傳輸16位元指令 封包的ATAPI指令來說,此一方法便無法支援。 因此,對於前述的問題,我們需要一個更有彈性的系統以及 方法,能無須微處理器的介入便可自行地處理協定來控制並存取 ATA/ATAPI 裝置。 【發明内容】 因此本發明的主要目的之一在於提供一種自動執行 1292532 執行ΑΤΑ/ΑΤΑΡΙ指令,因此主機上中央處理器的負載就大大地減 輕了,換句話說,因為原本會影響中央處理器之運作的中斷數目 大幅度的降低,因此中央處理器便能夠具有更佳的效能。 【實施方式】 請參閱第4圖,第4圖為本發明電子系統20之一實施例的功 能方塊圖。類似於第1圖所示的電子系統1〇,本發明電子系統2〇 包含有一主機21以及一 ΑΤΑ/ΑΤΑΡΙ裝置28。主機21包含有一記 憶體24,一中央處理器(CPU)22,一 ΑΤΑ/ΑΤΑΡΙ主機控制器 (ATA/ATAPIhostcontroller) 26,以及一指令解譯器(command interpreter)30。記憶體24係用來儲存複數個指令集(command set) 以及資料;中央處理器(CPU)22係電連接至記憶體24 ,用來建立 該複數個指令集以及儲存該複數個指令集至記憶體24中; ΑΤΑ/ΑΤΑΡΙ主機控制器26係電連接至ΑΤΑ/ΑΤΑΡΙ裝置28(在此, ΑΤΑ/ΑΤΑΡΙ裝置28可為一光碟機或是一磁碟機),用來與 ΑΤΑ/ΑΤΑΡΙ裝置溝通。第1圖所示的主機丨丨與第4圖所示的主機 21之間主要是差別在於:電子系統2〇包含有指令解譯器3〇,其 係電連接至中央處理器22,記憶體24以及ΑΤΑ/ΑΤΑΡΙ主機控制 器26 ,用來根據所執行的指令集,從記憶體%中取得所須的資 料、傳輸所須的資料至ΑΤΑ/ΑΤΑΡΙ主機控制器26以及與 ΑΤΑ/ΑΤΑΡΙ主機控制器26溝通。在此請注意,ΑΤΑ/ΑΤΑρι主機控 制器26可以支援複數個ΑΤΑ/ΑΤΑρι農置28,也就是說,在本實 施例中,ΑΤΑ/ΑΤΑΡΙ裝置28的數目健只用以說明,而非本發明 1292532 ' > 的限制條件。除此之外,ΑΤΑ/ΑΤΑΡΙ主機控制器26係可以直接地 存取記憶體24。 在本實施例之中,指令解譯器30可視為中央處理器22的代 理者’用來代為控制ΑΤΑ/ΑΤΑΡΙ主機控制器26與ΑΤΑ/ΑΤΑΡΙ裝 .置28之間的資料處理,也就是說,指令解譯器30可以幫助中央 處理器22驅動ΑΤΑΜΤΑΗ主機控制器26,例如,處理ΑΤΑ/ΑΤΑρι • 裝置28所發出的1NTRQ、從記憶體24載入該指令集以及處理該 指令集中的指令碼。因此,在資料傳輸的過程中,主機21上的中 央處理器22只需要處理指令解譯器30所發出的回應(resp〇nse), 而不需要直接處理所有從ΑΤΑ/ΑΤΑΡΙ裝置28發出的回應。舉例 來說’當許多資料區塊必須要在主機^以及ΑΤΑ/ΑΤΑρι裝置Μ 之間被傳輸的時候’ ΑΤΑ/ΑΤΑΡΙ裝置28在每次準備好接收對應 ΑΤΑ/ΑΤΑΡΙ指令的資料時’其會發出wtrq來通知主機η,但 是林實酬0,ΑΤΑ/ΑΤΑΗ裝置28實際上齡触指令解譯 器30 ’而不是通知中央處理器22,也就是說,指令解譯器刈會 處理該INTRQ並且執行該指令集的下一個指令碼,此和指令9解 譯器30只會於該齡集完全地被執行時或是有錯誤發生時通知中 央處理器22有關資料傳輸的狀態,因此,輸入至中央處理器Μ 的中斷數目便減少了,中央處理器22也因此可以擁有二的效能。 在此請注意,本實施例中,因為指令解譯器3〇可以有嗖率地 處理-部份中央處理器22的工作’所以中央處理器22係攸^ 1292532 體24設置複數個指令集而非複數個單一 ΑΤΑ/ΑΤΑρι指令,這使 得ATA/Atah指令可自動執行以達到更佳的資料傳輸效能^ 之外,這些指令集會以指令佇列(commandqueue)的方式進=處 理’換句話說,每-個指令赫包含有下—健令麵資訊以及 在記憶體24中相對應的位址。此外,在本實施例之中,每一個指 令集係由複數個指令碼組成,用來定義ΑΤΑ/ΑΤΑρι主機控制器% 的複數種運作,舉例來說,寫入資料至一裝置上的暫存器、輪猶 (P〇Umg)該裝置的暫存器或是檢測該裝置的暫存器等等。 請同時參閱第5圖以及第2、3圖,第5圖為本發明指令集中 心:碼的對照表。在此請注意,指令集係由第4圖所示的指令解 澤器30所執行,也就是說,指令解譯器30執行一指令集,而該 才曰7集包含有如第2圖或第3圖所示之流程中所須的所有指令 碼’舉例來說,—健令碼可㈣來支援第2圖或第3圖所示的 個步驟。指令解譯器30執行-,,檢測暫存器(check the register),, 才曰令碼來购ATA/ATAPI主機㈣ 26讀取—㈣暫存器的内 容,接著會比較助容以及-特定遮罩。另一方面,#指令解譯 器30想要驅動ΑΤΑ/ΑΤΑρι主機控制器%來寫入參數至一指令暫 子器(二驟112),會執行一”寫入暫存器(呢加也以咕伽),,指令 碼。當ΑΤΑ/ΑΤΑΡΙ主機控制器26初始化ΑΤΑ/ΑΤΑρι主機控制器 26以及ΑΤΑ/ΑΤΑρι震置烈之間的資料傳輸,指令解譯器邓會先 執行σ又疋位元組數目(set byte count),,指令碼來驅動 ata/atapi主機控制器2ό設定儲存裝置以及週邊裝置之間每一次 20 1292532 資料傳輸所對應的資料量週邊。在此請注意,在ΑΤΑ中的 PIO/DMA 指令協定(ΠΟ/DMA command protocol)下,每次資料 傳輸的資料量係為主機21所設定,因此,指令解譯器30便無須 執行一”載入位元組數目(load byte count)”指令碼來得知前述之每 一次資料傳輸所對應的資料量;但是在PACKET指令協定 (PACKET command protocol ),亦即 ATAPI 協定之中,因為每— 次資料傳輸所對應的資料量係由ATA/ATAPI裝置28所設定,所 _ 以指令解譯器30便必須在開始傳輸前執行該,,載入位元組數目,,指 令碼來偵測每次資料傳輸的傳輸量。接著,指令解譯器3〇會執行 一開始資料傳輸(data transfer go),,指令碼來驅動ATA/ATAPI 主機控制器26開始傳輸資料至ATA/ATAPI裝置28。在此請注意, 才曰令解澤器30另提供了一個硬體計時器(hardware timer),並且 指令解譯器30可以在執行其他指令碼之前,先執行一,,載入計時 器(loadtimer)”指令碼來防止後續指令碼(包含”開始資料傳輸” 鲁 扎令碼)的操作停滯’此外,中央處理器22也可以建置一個軟體計 時器(softwaretimer)來計時指令碼的執行,以及在該軟體計時器 逾時(timeout)後停止執行指令解譯器3〇的運作。 在ATA/ATAPI裝置28開始處理指令之後,以及一個錯誤(譬 如於資料傳輸時所產生的CRC錯誤)發生時,ATA/ATAPI裝置28 不但會設定狀態位元以及錯誤位元,其也同時會發出一個取丁以卩 來通知主機21。在本實施例之中,在指令解譯器3〇接收到 ATA/ATAPI裝置28經由ATA/ATAPI主機控制器26而發出的 21 1292532 • # INTRQ之後,本發明指令解譯器3〇會決定該wtrq是否要傳遞 到中央處理器22,換句話說,如果指令解譯器3〇決定傳遞 來通知中央處理器22有錯誤發生,則中央處理器22會啟動一個 中斷服務程序(interrupt service routine,ISR)來處理該 INTRQ, 且其另會決定該資料傳輸是否需要停止執行。然而,如果指令解 #器30決定不傳遞該inTRq至中央處理器22,則中央處理器22 就不會因為該INTRQ而被情,且齡碼賴雜序會接著處理 • 該。總結來說,指令解譯器30可以根據設計的需求,來決 定是否要傳遞接收到的INTRQ至中央處理器22。 在才曰々集的最後’有一”指令結束(e〇mman(jen(j),,指令碼,其 係用來通知指令解譯器30該指令集已成功地被執行,而若有告知 的需要,則指令解譯器30會通知主機處理器該指令集已經完全地 處理完畢,以及若還有其他待執行的指令集,則指令解譯器30會 繼續執行下一個指令集。 睛參閱第6圖以及第7圖,第6圖以及第7圖為第4圖所示 之指令解譯H 3G的運作流糊。如第6圖以及第7圖所示,為了 簡化起見,指令解譯器30所執行的指令集僅僅只包含幾個指令 碼’譬如’’檢測資料大小(eheck data size),,指令碼,,,寫入暫存器 (write the register)” 指令碼,”檢測暫存器(ehecktheregister),,指令 碼,載入位元組數目(l〇acj byte count)”指令碼,”設定位元組數目 (setbytecount)’’指令碼,”載入計時s(1〇adtimer)”指令碼,,,跳出 22 1292532 * · (jump),,指令碼,以及,,指令結束(c〇mmandend)”指令碼。然而, 睛注意’於一指令集之中’本發明並沒有限制指令碼的數量。指 令解譯器30的運作包含有下列步驟: 步驟300 :開始; 步驟302:檢測記憶體24中-指令仵列是否是空的(empty) ?如 絲齡制是帥,職行步驟3彳2;細,執行步驟3〇4; 步驟304 :取得一指令集; . 步驟306 :從該指令集中取得一指令碼; 步驟308 ·•執行該指令碼; 步驟309 ·檢測該指令碼是否係為,,檢測資料大小⑽㈣” 指令碼?若是,則執行步驟31〇 ;否則,執行步驟312; 步驟310 ··檢測剩餘的資料大小是否符合一預定狀況,· 步驟311 :剩餘的資料大小是否無法符合該預定狀況?若是,則執 行步驟340;否則,執行步驟336; •步驟312 ··檢測該指令碼是否係為,,寫入暫存器㈣把⑽咖㈣ 才曰7碼?若疋,則執行步驟313;否則,執行步驟316; 步驟313 ··寫入資訊至ΑΤΑ/ΑΤΑρι裝置28中一暫存器; v驟314 ·寫入暫存器(wmethe register),,指令碼是否執行失敗? 若疋,則執行步驟340 ;否則,執行步驟336; 步驟3^檢測該指令碼是否係為,,檢測暫存器咖咖eregister)” 指令瑪?若是,則執行步驟32〇;否則,執行步驟322; 步驟318 :檢測ΑΤΑ/ΑΤΑρι裝置28的狀態; 乂驟0檢測暫存器(check the register)”指令碼是否執行失敗 23 1292532 • · ’ 若是,則執行步驟340 ;否則,執行步驟336; 步驟322 :檢測該指令碼是否係為”開始資料傳輸(datatransfer go)”指令碼?若是’則執行步驟324;否則,執行步驟328; 步驟324 :開始資料傳輸; 步驟326 · ”開始資料傳輸”指令碼是否執行失敗?若是,則執行步 驟340 ;否則,執行步驟336; 步驟328 ··檢測該指令碼是否係為,,載入計時器(1〇adtimer)”指令 • 碼?若是,則執行步驟33〇;否則,執行步驟334; 步驟330 :啟動一計時器; 步驟332 : 載入計時器(1〇adtimer)”指令碼是否執行失敗?若是, 則執行步驟340 ;否則,執行步驟336; 步驟334 :檢測該指令碼是否係為,,跳出伽叫),,指令碼?若是, 則執行步驟336;否則,執行步驟338; v驟336 ·獲彳于下一個指令碼的記憶體位址,接著回到步驟 • 步驟338 :檢測該指令碼是否係為,,指令集結束(endofcommand set)”齡碼?若是,職行步驟356;否則,執行步驟祝; 乂驟340 ·停止執行該指令集,並接著執行步驟 步驟342 :結束; 步驟344 :檢測該指令碼是否係為”載入位元組數目(_㈣e count)”指令碼?若是,則執行步驟346;否則,執行步驟 350; 步驟346 ·藉由讀取週雜置的暫存^來制資料傳輸量的大小; 步驟3你· ”載入位元組數目”指令碼是否執行失敗?若是,則執行 24 1292532 步驟340 ;否則,執行步驟336; 步驟350:檢測該指令碼衫係為,,設定位元組數目㈣_⑶㈣” 指令碼?若是,則執行步驟352;否則,執行步驟338; 步驟352 :藉由該指令碼來得到資料傳輸量的大小; 步驟354:,’設定位元組數目(set _ c〇轉,指令碼是否執行失敗? 若是’則執行步驟340 ;否則,執行步驟336; 步驟356 :通知主機上的處理器該指令集已經執行完畢,接著回到 步驟302 ;以及 步驟358 :沒有動作(no operati〇n),並回到步驟说。 首先,巾央處理器22會建立複數個指令#,並且將該複數個 指令集以-指令仔列的方式儲存於記憶體24之中,接著,中央處 理器22控制指令解譯器30開始存取該指令仲列(步驟3〇〇)。指令 解譯器30檢測該指令仔列是否是空的(步驟3〇2),如果該指令佇 列疋空的’ 14代表原本儲存在該指令仔列中的所有指令集已經執 行完畢,換句話說,指令解譯器3〇已經完成處理中央處理器22 所分配騎有指令集(步驟342)。然而,如果該指令仔列不是空的, 指令解譯器30會從記憶體24中讀取該指令仔列,並且以,,先進先 出(firstinfirstout),,的方式载入一指令集(步驟3〇4);此外,指 々解澤器3〇會從載入的指令集中取得一指令碼(步驟3〇6)。 接著’才曰令解譯器30會決定該指令碼係為哪一種指令碼,因 此指令解雜3G會檢繼指令竭是轉,檢測資料大小,,指令碼 25 1292532 (步驟309),’,寫入暫存哭,,指今碼(牛 3仔^ ί日7碼(步驟312),,,檢測暫存器,,指令 ^(#^316),(^^322) . 才"馬(y驟328) ’載入位元組數目,,指令碼(步驟料4),”設定 位元組數目,,指令碼(步驟350),,,指令集結束,,指令碼(步驟 338) 334) 〇 為檢測:貝料大小指令碼(步驟3〇9),則指令解譯器別係控制 AT肅API主機控制!! 26來檢_下的資料大小,以檢查目前指 •令集所驅動之資料傳輸的進程(步驟310),舉例來說,該預定狀況 可以认定為貝料大小為0,亦即,若檢測出麵的資料量為〇,指 7解#器30會將其視為所有資料都已經傳輸完畢,因為已符合了 該預,定狀況。對於其他的指令碼來說,如果·令碼斜,,寫入暫 存器扣τ碼(步驟312),指令解譯器3〇會控制ΑΤΑ/ΑΤΑρι主機 控制器26來寫入資訊至一暫存器,舉例來說,與儲存位址有關的 參數會被寫人ATA/ATAPI裝置28中的键器上;_地,若該 指令碼係為其他指令碼(譬如,,載入計時器,,指令碼,,,檢測暫存器,, 指令碼等等),則指令解譯器30會執行相對應的操作(步驟31〇、 313、318、324、330、336、346、352)。在步驟 31 卜 314、320、 326、332、348、354中,指令解譯器30會檢測步驟310、313、 318、324、330、336、352的對應操作是否已經成功執行,如果指 令解譯器30檢測出該指令碼沒有成功得到應有的結果(步驟311、 314'320'326、332、348、354),或是該計時器產生逾時(步驟 332) ’則指令解譯器3〇會放棄執行(ab〇rt)目前的指令集(步驟 340),並且回到步驟302來重新檢測該指令仔列是否為空的。如先 26 1292532 * · 前所述’當指令解譯器30放棄執行該指令集時,指令解譯器如 會藉由-中斷來通知中央處理器公接著中央處理器^會決定如 何來處理此·-細·失敗(exeeuti()nfailure),舉姆說,中央處理 器22可以建立另外-個指令仔列,或是傳送—個失敗訊息給使用 者。 如果該指令碼係為”跳r’指令碼(步驟说),這代表指令解譯 φ 11 3〇必須跳出去執行該指令集中另-指令碼,而非下一個指令 碼。如歧所述’每-個指令碼都包含有下—個指令碼的資訊' 基本上’除了”跳出”指令碼以外,指令解譯器3〇會依序執行指令 集中所有的指令瑪’因此’如果指令解譯器3〇執行,,跳出,,指令碼, 則指令解譯器30會從中得知下一個要執行之指令的記憶體位址 (步驟306),接著從該指令集中取得該下一個指令碼(步驟狗,在 此請注意,本發日月提供兩種,,跳出,,指令碼:第—種係為,,直接跳出 (directlyjump)”指令碼’而另外一種係為”條件性的跳出 籲(C〇ndM〇naUump)”指令碼,其中,,條件性的跳出”指令娜 檢測資料大小,,程式碼的操作結果來決定是否要跳出。然而,如 指令解譯器3〇所執行的指令竭不是上述曾經提及的任一指令碼, 指令解譯器30會決定該指令碼係為,,沒有動作”,並且繼續^行下 -個指令碼(步驟358)。如果該指令碼係為,,指令集結束,,指令瑪(牛 驟338),這絲齡轉H 3〇已經完全地執行該齡針定義= 協定’因此,指令解譯器3〇會將該指令集已經完全執行完畢的訊 息通知主機處理器(步驟356),並且再一次地檢測該指令件列(步驟 27 1292532 為< i • 302)二相反地,如果該指令集尚未完全執行完畢,指令解譯器3〇 會取付下-個指令碼的記憶體位址(步驟S36),並且根據下一個指 令碼的記憶體位址來取得下一個指令碼(步驟3〇6)。 日 在此請注意,在第6圖以及第7圖之中,這些指令碼的排列 順序僅僅只作為本發明-實施例,而非本發明的限制條件;換句 話說,指令解譯器30可以先檢_指令碼是否為,,載入計時器,,指 • 令碼,接著再檢測該指令碼是否為,,檢測暫存器,,指令碼,這樣的 操作並不會違背本發__ ’也就是說,本發_令解譯器% 可以執行各式各樣的齡碼’甚至可以域不_順縣執行這 些指令碼。此外,請注意,本發縣令解譯^ 3G可應驗 資料傳輸模式或是PIO資料傳輸模式,均屬本發明之範疇。 如前所述,指令解譯器30可以藉由執行一個由主機21建立 的指令集,來取代原本由主機12本身依據八^/八丁八^協定所執 #行的操作’並且,本發明指令解譯器3〇不需要額外的微處理器或 是主機12的介入,就可以完全執行所需的操作,特別是針對ρι〇 資料傳輸模式,在每一次的資料傳輸之中,無論一個資料區塊僅 僅只包含一個區段(sector)或是多個區段,本發明指令解譯器3〇不 但支援只傳輸單-資料區塊,其亦也可支援傳輸多個資料區塊。 除此之外’如果指令解譯器30必須要支援ATAPI裝置所採用 的PACKET指令協定(ATAPI協定),上述的操作也可以做相對應 28 1292532 * * 的修改。舉例來說,在傳送一個指令之後,於pACKET^令協定 的規疋下必/頁要再寫入12位元的指令封包(c〇mmandpacket); 思12位元的指令封包係為該指令的一部份,而不是一般我們所提 到的身料。在此請注意,舉例來說,一般的裝置暫存器,例如 Device/Head暫存器以及指令暫存器都僅僅只是一個8位元的暫存 ϋ ’因此,指令碼就必須設計為可以同時支援8位元以及16位元 的#作,這樣才能支援所有連接於IDE匯流排上的裝置(譬如先前 • 所述的ATAPI裝置)。此外,對於PACKET指令來說,無論是在 DMA或疋Pio f料傳輸模式,即使主機還沒有完全接收到需要的 貝料’裝置端都可以隨時中斷該指令,這個問題在習知技術中沒 有知到解決’因此習知技術中需要主機處理器或額外的微控制器 來處理。但是在本發明中,可以藉由在一指令集中加入一例外處 理的指令碼來解決此一問題。 相較於習知技術,本發明係利用指令解譯器來自動執行 ATA/ATAPI指令,因此中央處理器的負載可以大幅度地降低,換 句話說’因為中央處理器所接收到的中斷次數大大地降低,因此 中央處理器的效能也因此可大幅度地提高。除此之外,本發明指 令解澤器無須㈣的處理器來處理協定,關為指令碼的適當設 計,本發職令解譯料_由執行域愤職峨立的指令 集來支援所有與暫存器之運作有關的協定。 29 1292532 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範 圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。 【圖式簡單說明】 第1圖為習知電子系統的示意圖。 第2圖為習知DMA資料傳輸的流程圖。 第3圖為習知非資料傳輸或是ρι〇資料傳輸的流程圖。 φ 第4圖為本發明電子系統之一實施例的功能方塊圖。 第5圖為本發明指令集中指令碼的對照表。 弟6圖以及第7圖為第4圖所示之指令解譯器的運作流程圖。 【主要元件符號說明】 10、20 電子系統 1卜21 主機 12、22 中央處理器 • 14、24記憶體 16、26 ATA/ATAPI主機控制器 18、28 ATA/ATAPI 裝置 30 指令解譯器 30

Claims (1)

1292532 燦請委員明示、此曰π。, 叫提之修正本有备贫出原説明書此& -' 我®!式所揭露之麗$ (,、 ^•^-'v-LW ,Ύ.; 二」 十、申請專利範圍: 一種,動執仃至少一指令集(c〇_nd⑻的方法,用以溝通 ^ X及至乂 -具有複數個不同大小暫存器之週邊裝置,該 ^機包含有-儲存裝置,—主機處職,—域控制器,以及 一無須額外處_輔助之指令解_ (e_andin_eter), 該方法包含有: 利用該主賊理H於該鱗裝置建立·令集; 利用該主機處理H麵魏齡解譯如直接從_存裝置讀 取該指令集;以及 利用該指令解譯器來處理該指令集以控制該主機控制器存取該 週邊裝置中該複數個暫存器。 2·如申請專利範圍第i項所述之方法,其中該週邊裝置係為一 AT施TAPI裝置,以及該主機控制器係為—ΑΤΑ/ΑΤΑρι控制器。 3.如申請專利範圍帛1項所述之方法,其中該指令集包含有一指 令碼,以及該方法包含有: 利用該指令解譯器來計時該指令碼的執行時間,其中當該指令 碼的執行時間到達一預定時間時,該指令解譯器會放棄執行 (abort)該指令碼的操作。 4·如申請專利範圍第1項所述之方法,其另包含有: 利用該指令解澤器來執行一指令碼以指出該指令集之锋尾 31 Ϊ292532 …— ^ 替換冥 如申請專利範圍第i項所述之方法,其一指 令碼,以及該方法另包含有: 利用該指令解譯器來執行該指令碼以驅動該主機控制器债測來 自該週邊裝置之一訊號的狀態是否改變。 6·如申請專利範圍第5項所述之方法,其中該訊號係為一取丁叫。 7·如申請專利範圍第6項所述之方法,其中該指令解譯器可以決 定是否要將該INTRQ傳遞至該主機處理器。 8.如申請專利範圍第1項所述之方法,其中該指令集包含有複數 個指令碼,以及該方法另包含有: 利用該指令解譯器來執行-指令碼以評估該週邊裝置中一暫存 器的内容,其巾該暫存容係由另—齡碼所奴,以及 如果該暫存器的内容符合-預定條件,放棄執行(abort)該指 令碼之下一個指令碼。 9, -種自動執行至少-指令集的方法,用以於—主機以及至少一 週邊裝置之間傳遞資料,該主機包含有一儲存裝置,一主機處 理H需要額外處理II獅的主機控繼,錢一指令解 澤器(command interpreter),該方法包含有·· 利用該主機處理器於該儲存裝置中建立該指令集,· 利用該主誠理縣觸魏齡鱗H直接㈣齡裝置中讀 32 1292532 年月日修&替換頁
• *争 • 取該指令碼; 利用該指令解譯器對該主機控制器指定每次傳輸資料區塊的大 小;以及 利用該指令解譯器來執行該指令集以觸發該主機控制器啟動該 主機以及該週邊裝置之間一資料傳遞。 10·如申請專利範圍第9項所述之方法,其中該指令集包含有一指 令碼,以及該指令碼侧來指絲-:欠資料傳輸時之資料區塊 的大小。 11.如申請專利範圍第9項所述之方法,其中該指令集包含有一指 令碼,以及每-次資料傳輸時之資料區_大小係經由利用該 指令解譯器執行該指令碼來讀取該週邊裝置而獲得。 1Z如申請專利範圍第9項所述之方法,其中該指令集包含有複數 個指令碼,以及該方法另包含有: 利用該指令解譯器來執行一指令碼以檢測對應於先前執行之指 令碼之一剩餘資料大小是否符合一預定條件。 13. 如申請專利細第12項所述之方法,其中絲合該預定條件, 5亥指令解譯器停止執行下一個指令碼。 14. 如申請專利範圍第12項所述之方法,其中後續指令碼之執行 33 | a像咬)正替換
I292532 順序係由該指令碼的檢測結果菜誤走 15.如申請專利範圍第9項所述之方法,其中該週邊裝置係為一 ΑΤΑ/ATAPI裝置,以及該主機控制器係為一 ΑΤΑ/ΑΤΑρι控制器。 16·如申請專利範圍第9項所述之方法,其中該指令集包含有一指 令碼,以及該方法另包含有: 利用該指令解澤器來執行該指令碼以設定一計時器(timer),以 及若十時器在沒有該主機處理器介入之下逾時,該指令 解譯器會停止執行該資料_。 十一、圓式: 34
TW094138419A 2004-11-03 2005-11-02 Method of automatically executing at least a command TWI292532B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/904,319 US20060095594A1 (en) 2004-11-03 2004-11-03 System and method of automatically executing ata/atapi commands

Publications (2)

Publication Number Publication Date
TW200615774A TW200615774A (en) 2006-05-16
TWI292532B true TWI292532B (en) 2008-01-11

Family

ID=36263413

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094138419A TWI292532B (en) 2004-11-03 2005-11-02 Method of automatically executing at least a command

Country Status (3)

Country Link
US (1) US20060095594A1 (zh)
CN (1) CN100394414C (zh)
TW (1) TWI292532B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI269968B (en) * 2004-04-22 2007-01-01 Mediatek Inc Method for processing the noise in the SATA
TWI242716B (en) * 2004-04-30 2005-11-01 Mediatek Inc Method for processing interference of noise
KR100843199B1 (ko) * 2006-08-10 2008-07-02 삼성전자주식회사 고속 아이.디.이. 인터페이스 장치 및 그 방법
US20090063725A1 (en) * 2007-08-31 2009-03-05 O2Micro Inc. Direct memory access system
CN101840306B (zh) * 2009-03-18 2011-12-07 研祥智能科技股份有限公司 VxWorks操作系统中实现驱动SATA设备的方法和系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463752A (en) * 1992-09-23 1995-10-31 International Business Machines Corporation Method and system for enhancing the efficiency of communication between multiple direct access storage devices and a storage system controller
TW276312B (zh) * 1992-10-20 1996-05-21 Cirrlis Logic Inc
US5797037A (en) * 1995-03-31 1998-08-18 Cirrus Logic, Inc. Interrupt request control logic reducing the number of interrupts required for I/O data transfer
US6134630A (en) * 1997-11-14 2000-10-17 3Ware High-performance bus architecture for disk array system
US6275879B1 (en) * 1998-04-30 2001-08-14 Tony Goodfellow ATA compatible adapter having a shadow register configured to intercept device select information and an automatic interrupt polling for overlapped ATA commands
JP2000099445A (ja) * 1998-09-18 2000-04-07 Matsushita Electric Ind Co Ltd デバイスタイプデータの自動変換デバイスドライバ
US6446148B1 (en) * 1998-11-14 2002-09-03 Tony Goodfellow Enhanced ATA channel command structure for automatic polling, hot swapping and extending coupled peripheral devices
US6388590B1 (en) * 1999-09-24 2002-05-14 Oak Technology, Inc. Apparatus and method for transmitting data serially for use with an advanced technology attachment packet interface (atapi)
JP2001229115A (ja) * 2000-02-17 2001-08-24 Matsushita Electric Ind Co Ltd Atapiコマンド処理方式
US6779062B1 (en) * 2000-09-29 2004-08-17 Intel Corporation Streamlining ATA device initialization
GB2367918B (en) * 2000-10-13 2005-03-02 Texas Instruments Ltd Batch methods for accessing IDE Device task registers
US20020083221A1 (en) * 2000-11-01 2002-06-27 Accusys, Inc. Universal disk array controller
TW544578B (en) * 2001-03-09 2003-08-01 Via Tech Inc Data transmission device
JP3878508B2 (ja) * 2001-11-08 2007-02-07 松下電器産業株式会社 回路群制御システム
JP2004070571A (ja) * 2002-08-05 2004-03-04 Seiko Epson Corp データ転送制御システム、電子機器、プログラム及びデータ転送制御方法

Also Published As

Publication number Publication date
US20060095594A1 (en) 2006-05-04
TW200615774A (en) 2006-05-16
CN100394414C (zh) 2008-06-11
CN1770134A (zh) 2006-05-10

Similar Documents

Publication Publication Date Title
US10120694B2 (en) Embedded system boot from a storage device
US4888691A (en) Method for disk I/O transfer
JP4917173B2 (ja) 入出力動作を監視するための装置、方法、およびコンピュータ・プログラム
US8166206B2 (en) Cancel instruction and command for determining the state of an I/O operation
TWI292532B (en) Method of automatically executing at least a command
US20080155145A1 (en) Discovery of a Bridge Device in a SAS Communication System
TWI684864B (zh) 管理輸入輸出可虛擬化儲存裝置中之功能級重置
US7707346B2 (en) PCI express multi-root IOV endpoint retry buffer controller
US10747663B2 (en) Storage device, computer system, and operation method of storage device configured to arbitrarily stop garbage collection
US7496691B2 (en) Standard ATA queuing automation in serial ATA interface for creating a frame information structure (FIS) corresponding to command from transport layer
JP2001524707A (ja) コントローラの機能性を高めるためのファームウェアの使用
JP5932947B2 (ja) ホスト及びシステム
CN106484549A (zh) 一种交互方法、NVMe设备、HOST及物理机系统
US9588919B2 (en) Methods and systems for I/O cancellation
JP2012014353A (ja) 制御装置、情報処理装置、制御プログラム、及び制御方法
JP2003288317A (ja) 端数ブロックデータ転送を検出し補償するシステムおよび方法
US11157439B2 (en) Method for delaying fundamental reset in power loss protection (PLP) enabled devices
US9892078B2 (en) Information processing apparatus and control method of the information processing apparatus
JP5076967B2 (ja) 情報処理システム、情報処理システムの制御方法、および情報処理システムの制御プログラム
TWI657447B (zh) 記憶裝置、存取系統及存取方法
TW202143035A (zh) 橋接電路與電腦系統
JP2859396B2 (ja) データ処理システム
JP2023145216A (ja) 通信制御装置および通信方法
JPH06105425B2 (ja) データ記憶サブシステムとホスト・データ処理システム間のデータ転送方法
JPH06332844A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees