專利名稱::用以直譯重新定義的框架信息結(jié)構(gòu)的外圍裝置及相關(guān)方法
技術(shù)領(lǐng)域:
:本發(fā)明是有關(guān)于解釋重新定義的框架信息結(jié)構(gòu)(frameinformationstructure,F(xiàn)IS)的外圍裝置及其相關(guān)方法,此框架信息結(jié)構(gòu)是傳輸串行進(jìn)階技術(shù)附加(serialadvancedtechnologyattachment,SATA)接口。
背景技術(shù):
:通常而言,SATA規(guī)格是被使用在主機(jī)和外圍設(shè)備(例如硬盤機(jī)或光驅(qū))之間的傳輸接口。而且此類規(guī)格也逐漸的取代進(jìn)階技術(shù)附加(advancedtechnologyattachment,ATA)的規(guī)格。SATA定義了兩對(duì)差動(dòng)信號(hào)用以取代已知的四十或八十個(gè)平行信號(hào)。SATA規(guī)格減少了電路的大小,具有較低的操作電壓,并通過將傳輸數(shù)據(jù)串行化而增加了傳輸效率。SATA也包含了其它的新功能,例如流程控制以及重新傳輸,讓控制數(shù)據(jù)流變得更加容易。一般來說,需要韌體來使硬盤機(jī)或光驅(qū)正常的操作。對(duì)SATA的碟機(jī)而言,韌體被儲(chǔ)存在非揮發(fā)性的存儲(chǔ)器中(通常來說是為高速緩存)。在相關(guān)技術(shù)中,通常會(huì)使用一只讀存儲(chǔ)器(read-onlymemory,ROM)寫入器以將韌體(例如,程序語(yǔ)言)第一次寫入至非揮發(fā)性存儲(chǔ)器中。然后,非揮發(fā)性存儲(chǔ)器被安裝至硬盤機(jī)或光驅(qū)的電路板上。然而,這樣的做法需要相當(dāng)多的時(shí)間且增加了生產(chǎn)成本。若能夠在大量生產(chǎn)動(dòng)作期間通過SATA差分信道(differentialchannel)將韌體寫入,便可節(jié)省大量的時(shí)間和金錢。在SATA的接口中,是使用框架信息結(jié)構(gòu)在主機(jī)和裝置間傳輸指令或數(shù)據(jù)。也就是說,若有一使用者欲存取韌體(不管是寫入或讀取韌體),框架信息結(jié)構(gòu)中的區(qū)域必須被重新定義以攜帶存儲(chǔ)器存取指令或韌體信息。在相關(guān)技術(shù)中,韌體的更新是通過微處理器而施行,如此將會(huì)增加微處理器的負(fù)擔(dān)。因此,為了增加韌體更新的表現(xiàn)并簡(jiǎn)化韌體更新程序,必須有一種不須微處理器且可存取一非揮發(fā)存儲(chǔ)器并用以儲(chǔ)存韌體的新機(jī)制。除了韌體更新之外,微處理器仍然需要處理其它的動(dòng)作。因?yàn)槲⑻幚砥鞯挠?jì)算能力受到限制,韌體更新程序的效能會(huì)因此而降低。故,新的韌體更新設(shè)計(jì),可降低微處理器的負(fù)擔(dān),將有助于增加外圍裝置的整體效能。
發(fā)明內(nèi)容因此,本發(fā)明的目的之一為提供一種外圍裝置,此外圍裝置具有一信息直譯器以及一控制單元以減少微處理器的負(fù)擔(dān),并藉此提高韌體更新的效能。本發(fā)明的實(shí)施例提供了一種外圍裝置,用以接收來自串行傳輸信道的具有控制信息的數(shù)據(jù)框架。此外圍裝置包含一信息直譯器以及一控制單元。信息直譯器耦接至串行傳輸信道,并用以接收數(shù)據(jù)框架并直譯數(shù)據(jù)框架以根據(jù)數(shù)據(jù)框架內(nèi)含的控制信息產(chǎn)生一動(dòng)作信號(hào)。控制單元耦接至信息直譯器,用以接收動(dòng)作信號(hào)以根據(jù)控制信息執(zhí)行一動(dòng)作。此外,本發(fā)明也揭露了一種接收來自串行傳輸信道的具有控制信息的數(shù)據(jù)框架的方法。此方法包含接收數(shù)據(jù)框架并直譯數(shù)據(jù)框架以根據(jù)控制信息產(chǎn)生一動(dòng)作信號(hào),以及接收動(dòng)作信號(hào)以根據(jù)控制信息執(zhí)行一動(dòng)作。圖1為根據(jù)本發(fā)明的第一實(shí)施例的一光驅(qū)的方塊圖。圖2繪示了根據(jù)本發(fā)明的一實(shí)施例的一存儲(chǔ)器存取指令的四個(gè)參數(shù)的定義和大小。圖3為遵守SATA標(biāo)準(zhǔn)的主機(jī)對(duì)裝置緩存器框架信息結(jié)構(gòu)。圖4為根據(jù)本發(fā)明的一實(shí)施例的用以攜帶一存儲(chǔ)器存取指令的主機(jī)對(duì)裝置緩存器框架信息結(jié)構(gòu)。圖5為根據(jù)本發(fā)明的一實(shí)施例的用以攜帶一存儲(chǔ)器存取指令的傳送數(shù)據(jù)的主機(jī)對(duì)裝置緩存器框架信息結(jié)構(gòu)。圖6為根據(jù)本發(fā)明的一實(shí)施例的用以攜帶一存儲(chǔ)器存取指令或傳送數(shù)據(jù)的使用者定義框架信息結(jié)構(gòu)。圖7繪示了圖1中所示的光驅(qū)的寫入程序。圖8繪示了圖1中所示的光驅(qū)的讀取程序。圖9繪示了使用預(yù)定的ATAPI的圖1中所示的光驅(qū)的寫入程序。圖10繪示了使用預(yù)定的ATAPI的圖1中所示的光驅(qū)的讀取程序。主要組件符號(hào)說明110主機(jī)120光驅(qū)130FIS直譯器140微處理器150更新控制單元160非揮發(fā)存儲(chǔ)器170隨機(jī)存取存儲(chǔ)器具體實(shí)施方式請(qǐng)注意,為了簡(jiǎn)化起見,底下所提及的任何實(shí)施例中的主機(jī)及外圍裝置都遵守SATA規(guī)格的裝置,而且在此是利用一光驅(qū)作為外圍裝置的說明。但這并不表示用以限制本發(fā)明的范圍,本發(fā)明可適用在主機(jī)和外圍裝置之間的任何串行傳輸裝置如SATA或串行連接SCSI(SerialAttachedSCSI;SAS)以直譯重新定義(redefinition)的信息。如前所述,底下的敘述是以框架信息結(jié)構(gòu)(FrameInformationStructure,F(xiàn)IS)作為數(shù)據(jù)框架的說明,而以框架信息結(jié)構(gòu)直譯器作為信息直譯器的說明。底下的實(shí)施例說明了韌體更新的動(dòng)作,但并不表示本發(fā)明僅限定于此類動(dòng)作。在閱讀了底下的說明后,熟知此項(xiàng)技藝者當(dāng)可了解到本發(fā)明可運(yùn)用于主機(jī)和外圍裝置之間的任何動(dòng)作。請(qǐng)參閱圖1,圖1為根據(jù)本發(fā)明的一實(shí)施例的一光驅(qū)120的方塊圖。如圖1所示,光驅(qū)120包含框架信息結(jié)構(gòu)直譯器(后簡(jiǎn)稱FIS直譯器)130、一微處理器140、一更新控制單元150、一非揮發(fā)存儲(chǔ)器160以及一RAM170(randomaccessmemory,隨機(jī)存取存儲(chǔ)器)。此外,光驅(qū)120更通過一SATA纜線耦接至一主機(jī)110。在此實(shí)施例中,并沒有任何韌體安裝至光驅(qū)120,而且主機(jī)110通過主機(jī)110和光驅(qū)120之間的串行傳輸信道將光驅(qū)120的韌體寫入至非揮發(fā)存儲(chǔ)器160中。在此例中,串行傳輸信道是使用SATA差分信道,但并非表示用以限制本發(fā)明。在另一實(shí)施例中,非揮發(fā)存儲(chǔ)器160中已具有韌體且主機(jī)110通過串行傳輸信道更新韌體。底下將詳述根據(jù)本發(fā)明的存取非揮發(fā)存儲(chǔ)器160中的韌體的新機(jī)制。通常而言,非揮發(fā)存儲(chǔ)器160是由存儲(chǔ)器存取指令所控制。在非揮發(fā)存儲(chǔ)器160的存取程序中,主機(jī)110通過串行傳輸信道傳送一輸入信號(hào)Sin(其為一數(shù)據(jù)框架)至FIS直譯器130,且若輸入信號(hào)Sin攜帶一存儲(chǔ)器存取指令,則將輸入信號(hào)Sin直譯成動(dòng)作信號(hào)Sop1。然而,若輸入信號(hào)Sin并沒有攜帶一存儲(chǔ)器存取指令,則框架信息結(jié)構(gòu)直譯器130僅把輸入信號(hào)Sin信息旁通(bypass)至微處理器140以作更進(jìn)一步的處理。須注意的是,輸入信號(hào)Sin除了被微處理器旁通之外,還可以為了其它目的被旁通至其它FIS直譯器。在其它實(shí)施例中,存儲(chǔ)器存取指令可由遵守SATA標(biāo)準(zhǔn)的框架信息結(jié)構(gòu)的手段從主機(jī)110被旁通至FIS直譯器130。被用以攜帶存儲(chǔ)器存取指令的框架信息結(jié)構(gòu)可為主機(jī)傳送至裝置緩存器型框架信息結(jié)構(gòu)(Host-to-deviceRegisterFIS)、數(shù)據(jù)框架信息結(jié)構(gòu)(DataFIS)、或是一使用者定義的框架信息結(jié)構(gòu)(user-definedFIS)。前述的用以攜帶存儲(chǔ)器存取指令的框架信息結(jié)構(gòu)型態(tài)必須被重新定義,如此框架信息結(jié)構(gòu)型態(tài)中的部分區(qū)域必須被用以攜帶所須存儲(chǔ)器存取指令。須注意的是,前述框架信息結(jié)構(gòu)型態(tài)僅用以說明,并非用以限制本發(fā)明,其它框架信息結(jié)構(gòu)型態(tài)在重新定義后也可用以攜帶存儲(chǔ)器存取指令。而且,F(xiàn)IS直譯器130可用以定義輸入信號(hào)Sin所傳送的特定框架信息結(jié)構(gòu)型態(tài)是否包含記憶存取指令。若特定框架信息結(jié)構(gòu)型態(tài)未包含記憶存取指令,則FIS直譯器130旁通特定框架信息結(jié)構(gòu)。被旁通的信號(hào)被旁通至微處理器140或是被旁通至其它FIS直譯器以進(jìn)行前述的其它動(dòng)作。另一方面,若特定框架信息結(jié)構(gòu)包含存儲(chǔ)器存取指令,則FIS直譯器130將存儲(chǔ)器存取指令從特定框架信息結(jié)構(gòu)萃取出來并產(chǎn)生動(dòng)作信號(hào)Sop1至更新控制單元150。在存儲(chǔ)器存取指令的一實(shí)施例中,提供了六種型態(tài)的存儲(chǔ)器存取指令READ、WRITE、ERASE、STATUS、IDENTIFY、OTHER。READ型態(tài)指令是用以讀取儲(chǔ)存于非揮發(fā)存儲(chǔ)器160中的讀取數(shù)據(jù)。WRITE型態(tài)指令是用以寫入數(shù)據(jù)至非揮發(fā)存儲(chǔ)器160。ERASE型態(tài)指令是用以將數(shù)據(jù)從非揮發(fā)存儲(chǔ)器160中抹除。STATUS型態(tài)指令是用以確認(rèn)或改變非揮發(fā)存儲(chǔ)器160的狀態(tài)。IDENTIFY指令是用以請(qǐng)求非揮發(fā)存儲(chǔ)器160中的型態(tài)。須注意的是,除了上述指令外,熟知此項(xiàng)技藝者當(dāng)可知道仍有許多其它指令型態(tài)可使用在非揮發(fā)存儲(chǔ)器160的其它動(dòng)作上。上述指令型態(tài)中的每一個(gè)都包含多個(gè)存儲(chǔ)器存取指令。在每一個(gè)存儲(chǔ)器存取指令中可萃取四個(gè)參數(shù)。請(qǐng)參考圖2所繪示的根據(jù)本發(fā)明的一實(shí)施例的一存儲(chǔ)器存取指令的四個(gè)參數(shù)的定義和大小。如圖2所示,四個(gè)參數(shù)分別為OPCODE、CMDLENGTH、INPUTDATALENGTH、OUTPUTDATALENGTH。OPCODE被定義成對(duì)應(yīng)該種存儲(chǔ)器存取指令的碼。舉例來說,屬于WRITE型態(tài)指令的PAGEWRITE存儲(chǔ)器存取指令在本發(fā)明中具有11h的OPCODE。CMDLENGTH被定義成特定存儲(chǔ)器存取指令的長(zhǎng)度。舉例來說,屬于WRITE型態(tài)指令的PAGEWRITE存儲(chǔ)器存取指令具有3個(gè)字節(jié)的數(shù)據(jù)。INPUTDATALENGTH被定義成寫入至非揮發(fā)存儲(chǔ)器160的數(shù)據(jù)總數(shù)量。舉例來說,屬于WRITE型態(tài)指令的PAGEWRITE存儲(chǔ)器存取指令寫入265字節(jié)的數(shù)據(jù)至非揮發(fā)存儲(chǔ)器160。OUTPUTDATALENGTH被定義自非揮發(fā)存儲(chǔ)器160讀出的數(shù)據(jù)總數(shù)量。舉例來說,屬于WRITE型態(tài)指令的PAGEWRITE存儲(chǔ)器存取指令自非揮發(fā)存儲(chǔ)器160讀出265字節(jié)的數(shù)據(jù)。須注意的是,前述存儲(chǔ)器存取指令的定義僅用于描述但并非表示用以限定本發(fā)明。此外,前述動(dòng)作信號(hào)Sop1根據(jù)存儲(chǔ)器存取指令中被萃取參數(shù)而產(chǎn)生。請(qǐng)同時(shí)參閱圖3和圖4。圖3為遵守SATA標(biāo)準(zhǔn)的主機(jī)傳送至裝置的緩存器型框架信息結(jié)構(gòu)(Host-to-deviceRegisterFIS)的示意圖;圖4為根據(jù)本發(fā)明的一實(shí)施例的重新定義的Host-to-deviceRegisterFIS用以攜帶一存儲(chǔ)器存取指令。如圖3和圖4所示,Host-to-deviceRegisterFIS被重新定義以攜帶一存儲(chǔ)器存取指令。在圖4中,被攜帶于重新定義的Host-to-deviceRegisterFIS中的存儲(chǔ)器存取指令可以包含多達(dá)八個(gè)參數(shù)(但在此實(shí)施例中,僅使用了四個(gè)參數(shù),此外參數(shù)數(shù)目應(yīng)依指令的的不同動(dòng)態(tài)調(diào)整,并不以八個(gè)或其它數(shù)目為限制)。而且,“FISTYPE”區(qū)域被保留使得重新定義的Host-to-deviceRegisterFIS仍被認(rèn)定為Host-to-deviceRegisterFIS。須注意的是,重新定義的Host-to-deviceRegisterFIS存在著“FISMODE=CMD”區(qū)域。此區(qū)域被FIS直譯器130確認(rèn)以得知所輸入的Host-to-deviceRegisterFIS是否包含存儲(chǔ)器存取指令。此外,如圖5所示,Host-to-deviceRegisterFIS可被重新定義以攜帶存儲(chǔ)器存取指令所對(duì)應(yīng)的傳送數(shù)據(jù)。須注意的是,上述Host-to-deviceRegisterFIS僅用以舉例說明攜帶存儲(chǔ)器存取指令或相對(duì)應(yīng)傳送數(shù)據(jù)的重新定義框架信息結(jié)構(gòu),并非用以限制本發(fā)明。熟知此項(xiàng)技藝者當(dāng)可使用其它型態(tài)的框架信息結(jié)構(gòu),以達(dá)成攜帶存儲(chǔ)器存取指令的目的。請(qǐng)參照?qǐng)D6,圖6為根據(jù)本發(fā)明的一實(shí)施例的用以攜帶一存儲(chǔ)器存取指令或傳送數(shù)據(jù)的使用者定義框架信息結(jié)構(gòu)。如圖6所示,此框架信息結(jié)構(gòu)稱為批量型框架信息結(jié)構(gòu)(batch-typeFIS),將多個(gè)框架信息結(jié)構(gòu)結(jié)合成一個(gè)使用者定義框架信息結(jié)構(gòu)。批量型框架信息結(jié)構(gòu)的“FISTYPE”被定義成“FFh”且批量型框架信息結(jié)構(gòu)的長(zhǎng)度為4096字節(jié)。第一個(gè)雙重字符(DWORD)到第五個(gè)雙重字符為第一個(gè)框架信息結(jié)構(gòu)且為圖4中所示的指令框架信息結(jié)構(gòu)。若“CONT_CMD”區(qū)域?yàn)椤癟RUE”,則代表“CONT_CMD”,區(qū)域后續(xù)的字節(jié)包含更多的信息。相反的,若“CONT_CMD”區(qū)域?yàn)椤癋ALSE”,則代表“CONT_CMD”區(qū)域之后的其余字節(jié)都為被保留的字節(jié)。從第六個(gè)雙重字符到第十個(gè)雙重字符為第二個(gè)框架信息結(jié)構(gòu)且為圖5中所示的數(shù)據(jù)框架信息結(jié)構(gòu)(DataFIS)。FIS直譯器130可依順序?qū)⑴啃涂蚣苄畔⒔Y(jié)構(gòu)(bach-typeFIS)直譯成多個(gè)指令框架信息結(jié)構(gòu)或多個(gè)數(shù)據(jù)框架信息結(jié)構(gòu)。更新控制單元150產(chǎn)生一控制信號(hào)SC1以根據(jù)動(dòng)作信號(hào)Sop1施行動(dòng)作在非揮發(fā)存儲(chǔ)器160上。非揮發(fā)存儲(chǔ)器160根據(jù)控制信號(hào)SC1動(dòng)作并對(duì)應(yīng)控制信號(hào)SC1產(chǎn)生適當(dāng)?shù)捻憫?yīng)。非揮發(fā)存儲(chǔ)器160的響應(yīng)由控制信號(hào)SC2加以傳輸至更新控制單元150。更新控制單元150直譯控制信號(hào)SC2所傳輸?shù)捻憫?yīng),并產(chǎn)生動(dòng)作信號(hào)Sop2以通知FIS直譯器130。根據(jù)動(dòng)作信號(hào)Sop2,F(xiàn)IS直譯器130將響應(yīng)信息填入框架信息結(jié)構(gòu)中并產(chǎn)生攜帶框架信息結(jié)構(gòu)的輸出信號(hào)Sout以告知主機(jī)110有關(guān)非揮發(fā)存儲(chǔ)器160的響應(yīng)。須注意的是,用以決定傳輸非揮發(fā)存儲(chǔ)器160的響應(yīng)數(shù)據(jù)至主機(jī)110的框架信息結(jié)構(gòu)可為裝置傳送至主機(jī)緩存器型框架信息結(jié)構(gòu)(Device-to-HostRegisterFIS)、數(shù)據(jù)框架信息結(jié)構(gòu)或者使用者定義的框架信息結(jié)構(gòu)。此外,用以攜帶響應(yīng)信息以通知主機(jī)110的前述框架信息結(jié)構(gòu)型態(tài)必須被重新定義,使得框架信息結(jié)構(gòu)中的某些區(qū)域可被用以攜帶響應(yīng)信息。須注意的是,前述框架信息結(jié)構(gòu)型態(tài)僅用以舉例,并非用以限定本發(fā)明。其它框架信息結(jié)構(gòu)在被重新定義后也可被用以攜帶響應(yīng)信息。在非揮發(fā)存儲(chǔ)器160的寫入程序中,韌體的更新信息(或稱為數(shù)據(jù)段),由輸入信號(hào)Sin從主機(jī)110被傳輸至FIS直譯器130。因此,不僅存儲(chǔ)器存取指令,韌體的更新信息(數(shù)據(jù)段)也被攜帶于框架信息結(jié)構(gòu)上。用以攜帶存儲(chǔ)器存取指令的框架信息結(jié)構(gòu)(如前所述,可為host-to-deviceregisterFIS、dataFIS或是user-definedFIS)也可被用以攜帶韌體的數(shù)據(jù)段。在一實(shí)施例中,host-to-deviceregisterFIS(如圖5中所述的數(shù)據(jù)框架信息結(jié)構(gòu))用以將韌體的數(shù)據(jù)段從主機(jī)110攜帶至FIS直譯器130。在本實(shí)施例中,每一host-to-deviceregisterFIS使用1字節(jié)的數(shù)據(jù),且FIS直譯器130自每一主機(jī)對(duì)裝置緩存器框架信息結(jié)構(gòu)萃取1字節(jié)的數(shù)據(jù)并通過一第一信號(hào)S1將1字節(jié)數(shù)據(jù)存至RAM170。當(dāng)被儲(chǔ)存的數(shù)據(jù)達(dá)到一預(yù)定數(shù)量時(shí)(例如大小為256字節(jié)的頁(yè)(page)),更新控制單元150通過一第六信號(hào)S6自RAM170讀取被儲(chǔ)存的數(shù)據(jù)并通過控制信號(hào)Sc1將被儲(chǔ)存的數(shù)據(jù)儲(chǔ)存至非揮發(fā)存儲(chǔ)器160。雖然并未使用韌體和微處理器140,非揮發(fā)存儲(chǔ)器160的數(shù)據(jù)寫入也可由FIS直譯器130而被正確的控制。須注意的是,RAM并非更新控制單元中的必要組件,對(duì)某些非揮發(fā)存儲(chǔ)器而言,并不需要暫存行為。換個(gè)角度,在一讀取程序中,韌體的數(shù)據(jù)段通過控制信號(hào)Sc2自非揮發(fā)存儲(chǔ)器160中被讀取出來,并通過自更新控制單元150輸出的第五信號(hào)S5被儲(chǔ)存在RAM170。當(dāng)被儲(chǔ)存的數(shù)據(jù)達(dá)到一預(yù)定數(shù)量時(shí)(例如大小為256字節(jié)的頁(yè)(page)),F(xiàn)IS直譯器130通過一第二信號(hào)S2自RAM170擷取被儲(chǔ)存的數(shù)據(jù),并將被擷取的數(shù)據(jù)通過內(nèi)含框架信息結(jié)構(gòu)的輸出信號(hào)Sout傳送到主機(jī)110。用以將非揮發(fā)存儲(chǔ)器160的響應(yīng)信息傳送到主機(jī)110的框架信息結(jié)構(gòu)(如前所述,可為device-to-hostregisterFIS、dataFIS或是user-definedFIS),也可被用以攜帶韌體的數(shù)據(jù)段。在一實(shí)施例中,F(xiàn)IS直譯器130是利用device-to-hostregisterFIS來傳送數(shù)據(jù)段至主機(jī),每一個(gè)device-to-hostregisterFIS內(nèi)含1字節(jié)的數(shù)據(jù)段。在更新控制單元150再一次的從非揮發(fā)存儲(chǔ)器160開始讀取韌體的數(shù)據(jù)段之前,所有存在RAM170的數(shù)據(jù)段被擷取并通過多個(gè)device-to-hostregisterFIS被傳送到主機(jī)110。雖然并未使用韌體和微處理器140,非揮發(fā)存儲(chǔ)器160的數(shù)據(jù)寫入也可由FIS直譯器130而被正確的控制。請(qǐng)參考圖7,圖7繪示了圖1中所示的光驅(qū)120執(zhí)行的寫入程序。在此實(shí)施例中,非揮發(fā)存儲(chǔ)器160已包含韌體,且寫入程序被用以更新現(xiàn)有的韌體。須注意的是,本發(fā)明并不限制使用在此種情況。舉例來說,即使存儲(chǔ)器160中不存在韌體,寫入程序也可正常運(yùn)作。底下詳細(xì)描述了寫入程序的步驟。步驟7101.主機(jī)110利用host-to-deviceregisterFIS以攜帶“IDENTIFY”指令至FIS直譯器130以確定非揮發(fā)存儲(chǔ)器160的型態(tài)。2.FIS直譯器130偵測(cè)到host-to-deviceregisterFIS包含“IDENTIFY”指令并將“IDENTIFY”指令直譯成更新控制單元150可執(zhí)行的“executableIDENTIFY”指令。3.更新控制單元150執(zhí)行來自FIS直譯器130的“executableIDENTIFY”指令以擷取來自非揮發(fā)存儲(chǔ)器160的廠商ID(vendorID)以及裝置ID(deviceID)并將廠商ID和裝置ID回傳給FIS直譯器130。4.FIS直譯器130使用device-to-hostregisterFIS將更新控制單元150所產(chǎn)生的廠商ID和裝置ID攜帶至主機(jī)110。步驟7201.主機(jī)110利用host-to-deviceregisterFIS以攜帶“CHIPERASE”指令至FIS直譯器130以抹除存在于非揮發(fā)存儲(chǔ)器160中的韌體。2.FIS直譯器130偵測(cè)host-to-deviceregisterFIS包含“CHIPERASE”指令并將“CHIPERASE”指令直譯成更新控制單元150可執(zhí)行的“executableCHIPERASE”指令。3.更新控制單元150執(zhí)行“executableCHIPERASE”指令。4.FIS直譯器130使用device-to-hostregisterFIS將指令送出信息“ISSUED”攜帶至主機(jī)110。步驟7301.主機(jī)110利用host-to-deviceregisterFIS以攜帶“READSTATUS”指令至FIS直譯器130以確認(rèn)“CHIPERASE”指令是否已結(jié)束。2.FIS直譯器130偵測(cè)到host-to-deviceregisterFIS包含“READSTATUS”指令并將“READSTATUS”指令直譯成更新控制單元150可執(zhí)行的“executableREADSTATUS”指令。3.更新控制單元150執(zhí)行“executableREADSTATUS”指令以確定非揮發(fā)存儲(chǔ)器160的現(xiàn)行狀態(tài),若非揮發(fā)存儲(chǔ)器160未被完全抹除,則將狀態(tài)信息“BSY”回傳至FIS直譯器130。4.FIS直譯器130使用一device-to-hostregisterFIS以將更新控制單元150所提供的一狀態(tài)信息“BSY”傳送至主機(jī)110。5.主機(jī)110接收狀態(tài)信息“BSY”并由持續(xù)送出“READSTATUS”指令而偵測(cè)(polling)非揮發(fā)存儲(chǔ)器160的狀態(tài)。6.FIS直譯器130使用device-to-hostregisterFIS以攜帶狀態(tài)信息“RDY”以通知主機(jī)110“CHIPERASE”指令已完成。步驟7401.主機(jī)110使用host-to-deviceregisterFIS以攜帶“PAGEWRITE”指令以及地址信息“ADDR”至FIS直譯器130以請(qǐng)求FIS直譯器130作動(dòng)非揮發(fā)存儲(chǔ)器160的寫入程序。2.FIS直譯器130使用device-to-hostregisterFIS以攜帶“ISSUED”信息至主機(jī)110以通知主機(jī)110。步驟7501.主機(jī)110使用host-to-deviceregisterFIS以攜帶一1字節(jié)數(shù)據(jù)至FIS直譯器130。2.FIS直譯器130將1字節(jié)數(shù)據(jù)儲(chǔ)存至RAM170并使用device-to-hostregisterFIS攜帶“ISSUED”數(shù)據(jù)以通知主機(jī)110。3.主機(jī)110持續(xù)傳送多個(gè)1字節(jié)數(shù)據(jù)直到被儲(chǔ)存的數(shù)據(jù)數(shù)量達(dá)到一預(yù)定量,例如大小為256字節(jié)的頁(yè)(page)。4.FIS直譯器130將“PAGEWRITE”指令直譯成更新控制單元150可執(zhí)行的“executablePAGEWRITE”指令。5.更新控制單元150自RAM170中擷取被儲(chǔ)存的數(shù)據(jù),執(zhí)行“executablePAGEWRITE”指令以根據(jù)前述的地址信息“ADDR”將被擷取的儲(chǔ)存數(shù)據(jù)非揮發(fā)存儲(chǔ)器160,并將“ISSUED”信息回傳至FIS直譯器130。6.FIS直譯器130使用device-to-hostregisterFIS攜帶“ISSUED”信息以通知主機(jī)110。步驟7601.主機(jī)110利用host-to-deviceregisterFIS以攜帶“READSTATUS”指令至FIS直譯器130以確定“PAGEWRITE”指令是否完成。2.FIS直譯器130偵測(cè)到host-to-deviceregisterFIS包含“READSTATUS”指令并將“READSTATUS”指令直譯成更新控制單元150可執(zhí)行的“executableREADSTATUS”指令。3.更新控制單元150執(zhí)行“executableREADSTATUS”指令以確定非揮發(fā)存儲(chǔ)器160的現(xiàn)行狀態(tài),且若“PAGEWRITE”指令已完成則將狀態(tài)信息“RDY”回傳至FIS直譯器130。4.FIS直譯器130使用一device-to-hostregisterFIS攜帶一狀態(tài)信息“RDY”以通知主機(jī)110“PAGEWRITE”指令已完成。然后,回到步驟740以對(duì)韌體的剩余數(shù)據(jù)段執(zhí)行頁(yè)寫入直到所有韌體的數(shù)據(jù)段都被寫入至非揮發(fā)存儲(chǔ)器160。請(qǐng)參閱圖8,圖8繪示了圖1中所示的光驅(qū)120執(zhí)行的讀取程序。請(qǐng)注意在此實(shí)施例中,非揮發(fā)存儲(chǔ)器160已包含部分或全部的韌體且讀取程序被用以將一頁(yè)的韌體(256字節(jié))自非揮發(fā)存儲(chǔ)器160讀取至主機(jī)110。底下將詳細(xì)敘述各個(gè)步驟。步驟8101.主機(jī)110使用host-to-deviceregisterFIS以攜帶“READ”指令以及地址信息“ADDR”至FIS直譯器130以請(qǐng)求FIS直譯器130激活非揮發(fā)存儲(chǔ)器160的讀取程序。2.FIS直譯器130偵測(cè)到host-to-deviceregisterFIS包含“READ”指令并將“READ”指令直譯成更新控制單元150可執(zhí)行的“executableREAD”指令。3.更新控制單元150執(zhí)行“executableREAD”指令并自非揮發(fā)存儲(chǔ)器160讀取一頁(yè)的韌體數(shù)據(jù)(256字節(jié))并存入RAM170中。步驟8201.FIS直譯器130自RAM170擷取儲(chǔ)存的韌體數(shù)據(jù)并使用device-to-hostregisterFIS以攜帶1字節(jié)的被儲(chǔ)存韌體數(shù)據(jù)至主機(jī)110。2.FIS直譯器130使用device-to-hostregisterFIS持續(xù)的從RAM170擷取被儲(chǔ)存的韌體數(shù)據(jù)直到所有的被儲(chǔ)存韌體數(shù)據(jù)被傳送至主機(jī)110。SATA標(biāo)準(zhǔn)不僅支持ATA(AdvancedTechnologyAttachment,進(jìn)階技術(shù)附加)指令,也支持ATAPI(AdvancedTechnologyAttachmentPacketInterface,進(jìn)階技術(shù)附加封包接口)指令。在SATA標(biāo)準(zhǔn)的協(xié)議中,主機(jī)是使用FIS攜帶ATAPI指令而不像PATA(ParallelAdvancedTechnologyAttachment,并列進(jìn)階技術(shù)附加)是使用TASKFILERegister。符合SATA標(biāo)準(zhǔn)的ATAPI指令協(xié)議,其第一步驟為由主機(jī)傳送一host-to-deviceregisterFIS,此host-to-deviceregisterFIS的“COMMAND”區(qū)域中具有一值0xA0。然后,符合ATAPI規(guī)范的裝置送出一PIOSetupFIS以通知主機(jī)該裝置已經(jīng)準(zhǔn)備好接收12字節(jié)的ATAPI指令。在接收PIOSetupFIS后,主機(jī)必須送出包含12字節(jié)ATAPI指令的12字節(jié)DataFIS。在先前技術(shù)中,符合ATAPI規(guī)范的裝置中必須具有一微處理器,才能處理上述程序。因此,若遵守ATAPI的裝置中沒有韌體,則此ATAPI協(xié)議無法運(yùn)作。本發(fā)明可解決此類的問題。請(qǐng)?jiān)賲⒄請(qǐng)D1。FIS直譯器130可接收來自主機(jī)110的ATAPI指令。若host-to-deviceregisterFIS的“COMMAND”區(qū)域中的值為0xA0,F(xiàn)IS直譯器130可以主動(dòng)的回傳一PIOSetupFIS并等待自主機(jī)110傳出的后續(xù)12字節(jié)ATAPI指令。若后續(xù)12字節(jié)ATAPI指令攜帶存儲(chǔ)器存取指令,則FIS直譯器采取12字節(jié)ATAPI指令所請(qǐng)求的動(dòng)作以存取非揮發(fā)存儲(chǔ)器160。相反的若后續(xù)12字節(jié)ATAPI未指令攜帶存儲(chǔ)器存取指令,則FIS直譯器旁通12字節(jié)ATAPI指令至微處理器140。請(qǐng)參閱圖9,圖9繪示了圖1中所示的光驅(qū)120執(zhí)行ATAPI模式的寫入程序。在此實(shí)施例中,非揮發(fā)存儲(chǔ)器160沒有韌體且寫入程序用以寫入韌體。本發(fā)明并不限制使用在此種情況。舉例來說,即使存儲(chǔ)器160中存在韌體,寫入程序也可正常運(yùn)作。底下詳細(xì)描述了寫入程序的步驟。步驟9101.主機(jī)110發(fā)送一host-to-deviceregisterFIS至FIS直譯器130,此host-to-deviceregisterFIS的“COMMAND”區(qū)域中具有一值為“0xA0”。2.FIS直譯器130確認(rèn)主機(jī)110將要傳送ATAPI指令,F(xiàn)IS直譯器130響應(yīng)PIOSetupFIS并請(qǐng)求12字節(jié)的ATAPI指令。步驟9201.主機(jī)110使用數(shù)據(jù)FIS以傳送12字節(jié)ATAPI指令至FIS直譯器130,且12位ATAPI指令包含“PAGEWRITE”指令以及地址信息“ADDR”。2.FIS直譯器130傳送一DMASetupFIS以請(qǐng)求256字節(jié)數(shù)據(jù)在DMA傳送模式下被傳送。須注意的是,當(dāng)被要求以PIO傳送模式取代DMA模式時(shí),F(xiàn)IS直譯器130也可傳送一PIOSetupFIS以自主機(jī)110請(qǐng)求數(shù)據(jù)。步驟9301.主機(jī)110使用dataFIS傳送256字節(jié)的數(shù)據(jù)至FIS直譯器130。2.FIS直譯器130接收并將256字節(jié)數(shù)據(jù)儲(chǔ)存在RAM170,并將“PAGEWRITE”指令直譯成更新控制單元150可執(zhí)行的“executablePAGEWRITE”指令。3.更新控制單元150自RAM170擷取被儲(chǔ)存的256字節(jié)數(shù)據(jù),并將“executablePAGEWRITE”施行于非揮發(fā)存儲(chǔ)器160上以將被儲(chǔ)存的256字節(jié)數(shù)據(jù)寫入至非揮發(fā)存儲(chǔ)器160中。4.更新控制單元150響應(yīng)一“none”信息以通知FIS直譯器130。5.FIS直譯器130使用device-to-hostregisterFIS響應(yīng)0x50狀態(tài)值以通知主機(jī)110ATAPI指令已被施行。步驟9401.主機(jī)110使用host-to-deviceregisterFIS以攜帶“READSTATUS”指令至FIS直譯器130以確定“PAGEWRITE”指令是否完成。2.FIS直譯器130偵測(cè)到host-to-deviceregisterFIS包含“READSTATUS”指令并將“READSTATUS”指令直譯成更新控制單元150可執(zhí)行的“executableREADSTATUS”指令。3.更新控制單元150執(zhí)行“executableREADSTATUS”指令以確定非揮發(fā)存儲(chǔ)器160的現(xiàn)行狀態(tài),并將狀態(tài)信息“BSY”回傳至FIS直譯器130。4.FIS直譯器130使用一device-to-hostregisterFIS以將更新控制單元150所提供的一狀態(tài)信息“BSY”傳送至主機(jī)110以通知主機(jī)110“PAGEWRITE”指令尚未被完成。5.主機(jī)110持續(xù)的使用host-to-deviceregisterFIS以攜帶“READSTATUS”指令至FIS直譯器130以持續(xù)頁(yè)寫入狀態(tài),直到自FIS直譯器130收到狀態(tài)信息“RDY”。請(qǐng)參閱圖10,圖10繪示了圖1中所示的光驅(qū)120執(zhí)行ATAPI模式的讀取程序。在此實(shí)施例中,非揮發(fā)存儲(chǔ)器160已包含部分韌體,且讀取程序用以從主機(jī)110讀取一頁(yè)的韌體(256字節(jié))。底下將詳細(xì)描述各個(gè)步驟。步驟10101.主機(jī)110發(fā)送一host-to-deviceregisterFIS至FIS直譯器130,此host-to-deviceregisterFIS的“COMMAND”區(qū)域中的值為“0xA0”。2.FIS直譯器130確認(rèn)主機(jī)110將要傳送ATAPI指令,F(xiàn)IS直譯器130響應(yīng)PIOSetupFIS并請(qǐng)求12字節(jié)的ATAPI指令。步驟10201.主機(jī)110使用dataFIS以傳送12字節(jié)ATAPI指令至FIS直譯器130,且12字節(jié)ATAPI指令包含一“READ”指令以及地址信息“ADDR”。2.FIS直譯器130將“READ”指令直譯成更新控制單元150可執(zhí)行的“executableREAD”指令。3.更新控制單元150執(zhí)行“executableREAD”指令并根據(jù)地址信息“ADDR”在RAM170中儲(chǔ)存自非揮發(fā)存儲(chǔ)器160讀取的韌體數(shù)據(jù)(256字節(jié))。4.FIS直譯器130傳送一DMASetupFIS至主機(jī)110以在DMA傳送模式下傳送傳至主機(jī)110的數(shù)據(jù)。須注意的是,當(dāng)被要求以PIO傳送模式取代DMA模式時(shí),F(xiàn)IS直譯器130可傳送一PIOSetupFIS以自主機(jī)110請(qǐng)求數(shù)據(jù)。步驟10301.FIS直譯器130自RAM170擷取儲(chǔ)存的韌體數(shù)據(jù)并使用dataFIS以攜帶256字節(jié)的韌體數(shù)據(jù)至主機(jī)110。2.FIS直譯器130使用device-to-hostregisterFIS響應(yīng)0x50狀態(tài)值以通知主機(jī)110ATAPI指令已被施行。本發(fā)明重新定義在SATA標(biāo)準(zhǔn)中的多種的FIS型態(tài)。此種重新定義的作法有助在遵守SATA規(guī)定的裝置中利用SATA接口以寫入或更新非揮發(fā)存儲(chǔ)器。具體言之,通過FIS直譯器以及前述控制單元的協(xié)助,當(dāng)裝置需改變非揮發(fā)存儲(chǔ)器時(shí),便不用改變主機(jī)的應(yīng)用層程序。如此可使軟件撰寫者省下相當(dāng)多的時(shí)間。而且,因?yàn)镕IS直譯器的協(xié)助,預(yù)先定義的ATAPI指令可被用以存取非揮發(fā)存儲(chǔ)器而不須裝置中微處理器的協(xié)助。而且,F(xiàn)IS直譯器可利用dataFIS而攜帶更新信息。如此可大幅降低主機(jī)和裝置間所須的交握程序(handshaking)的執(zhí)行次數(shù)。因此,在更新或?qū)懭霐?shù)據(jù)至非揮發(fā)存儲(chǔ)器時(shí),本發(fā)明的表現(xiàn)優(yōu)于已知的ATA接口(advancedtechnologyattachment,進(jìn)階技術(shù)附加)。除了上述的軔體更新之外,本發(fā)明也可用于處理其它動(dòng)作。通過信息直譯以及控制單元的使用,外圍裝置可根據(jù)自主機(jī)送出的重新定義的信息信號(hào)執(zhí)行任何動(dòng)作。如此可大幅增加外圍裝置的效能。以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明權(quán)利要求范圍所做的均等變化與修飾,都應(yīng)屬本發(fā)明的涵蓋范圍。權(quán)利要求1.一種外圍裝置,用以接收來自一串行傳輸信道的具有控制信息的一數(shù)據(jù)框架,其特征在于包含一信息直譯器,耦接至所述串行傳輸信道,用以接收所述數(shù)據(jù)框架并直譯該數(shù)據(jù)框架以根據(jù)所述控制信息產(chǎn)生一動(dòng)作信號(hào);以及一控制單元,耦接至所述信息直譯器,用以接收所述動(dòng)作信號(hào)以根據(jù)所述控制信息執(zhí)行一動(dòng)作。2.如權(quán)利要求1所述的外圍裝置,其特征在于,當(dāng)所述信息直譯器無法直譯所述數(shù)據(jù)框架時(shí),該信息直譯器旁通該數(shù)據(jù)框架。3.如權(quán)利要求2所述的外圍裝置,其特征在于,還包含一微處理器,耦接至所述信息直譯器以及所述控制單元,用以處理該信息直譯器所旁通的該數(shù)據(jù)框架。4.如權(quán)利要求1所述的外圍裝置,其特征在于,還包含一第一存儲(chǔ)器,耦接至所述控制單元;其中當(dāng)所述數(shù)據(jù)框架包含至少一存儲(chǔ)器存取指令時(shí),所述控制單元根據(jù)所述存儲(chǔ)器存取指令其中之一以執(zhí)行與該第一存儲(chǔ)器有關(guān)的動(dòng)作。5.如權(quán)利要求4所述的外圍裝置,其特征在于,所述數(shù)據(jù)框架包含更新信息且所述控制單元將該更新信息寫入至所述第一存儲(chǔ)器中。6.如權(quán)利要求5所述的外圍裝置,其特征在于,所述外圍裝置還包含一第二存儲(chǔ)器,耦接至所述信息直譯器以及所述控制單元,用以暫存從該信息直譯器輸出的數(shù)據(jù)段,其中該控制單元從該第二存儲(chǔ)器接收被暫存的數(shù)據(jù)以將該更新信息寫入至所述第一存儲(chǔ)器。7.如權(quán)利要求1所述的外圍裝置,其特征在于,所述串行傳輸信道遵守SATA規(guī)格。8.如權(quán)利要求7所述的外圍裝置,其特征在于,所述數(shù)據(jù)框架為框架信息結(jié)構(gòu),且所述信息直譯器為一框架信息結(jié)構(gòu)直譯器。9.如權(quán)利要求8所述的外圍裝置,其特征在于,所述框架信息結(jié)構(gòu)是從主機(jī)傳送至裝置框架信息結(jié)構(gòu)、數(shù)據(jù)框架信息結(jié)構(gòu)以及使用者定義框架信息結(jié)構(gòu)所組成的群組中擇一。10.如權(quán)利要求8所述的外圍裝置,其特征在于,所述框架信息結(jié)構(gòu)直譯器是傳送一框架信息結(jié)構(gòu)以通知一主機(jī)目前該外圍裝置執(zhí)行該動(dòng)作的一狀態(tài),且該框架信息結(jié)構(gòu)是從主機(jī)傳送至裝置框架信息結(jié)構(gòu)、數(shù)據(jù)框架信息結(jié)構(gòu)以及使用者定義框架信息結(jié)構(gòu)所組成的群組中擇一。11.如權(quán)利要求8所述的外圍裝置,其特征在于,一主機(jī)通過一ATAPI模式而和框架信息結(jié)構(gòu)溝通。12.一種接收來自一串行傳輸信道的具有一控制信息的一數(shù)據(jù)框架的方法,其特征在于包含(a)接收該數(shù)據(jù)框架并直譯該數(shù)據(jù)框架以根據(jù)該控制信息產(chǎn)生一動(dòng)作信號(hào);以及(b)接收該動(dòng)作信號(hào)以根據(jù)該控制信息執(zhí)行一動(dòng)作。13.如權(quán)利要求12所述的方法,其特征在于,所述步驟(a)還在無法直譯該數(shù)據(jù)框架時(shí),旁通該數(shù)據(jù)框架。14.如權(quán)利要求13所述的方法,其特征在于,還包含使用一微處理器處理被旁通的該數(shù)據(jù)框架。15.如權(quán)利要求12所述的方法,其特征在于,還包含提供一第一存儲(chǔ)器,且其中步驟(b)還包含當(dāng)該數(shù)據(jù)框架包含至少一存儲(chǔ)器存取指令時(shí),根據(jù)該存儲(chǔ)器存取指令其中之一以執(zhí)行跟該第一存儲(chǔ)器有關(guān)的動(dòng)作。16.如權(quán)利要求15所述的方法,其特征在于,所述數(shù)據(jù)框架包含更新信息且該方法還包含將該更新信息寫入至該第一存儲(chǔ)器中。17.如權(quán)利要求16所述的方法,其特征在于,還包含使用一第二存儲(chǔ)器暫存自直譯該數(shù)據(jù)框架而產(chǎn)生的該數(shù)據(jù)段;自該第二存儲(chǔ)器接收被暫存的該數(shù)據(jù)段以將該更新信息寫入至該第一存儲(chǔ)器。18.如權(quán)利要求12所述的方法,其特征在于,所述串行傳輸信道遵守SATA規(guī)格。19.如權(quán)利要求18所述的方法,其特征在于,所述數(shù)據(jù)框架為框架信息結(jié)構(gòu)。20.如權(quán)利要求19所述的方法,其特征在于,所述框架信息結(jié)構(gòu)是從主機(jī)傳送至裝置框架信息結(jié)構(gòu)、數(shù)據(jù)框架信息結(jié)構(gòu)以及使用者定義框架信息結(jié)構(gòu)所組成的群組中擇一。21.如權(quán)利要求19所述的方法,其特征在于,還包含傳送一框架信息結(jié)構(gòu)以通知一主機(jī)目前該動(dòng)作的執(zhí)行狀態(tài),且該框架信息結(jié)構(gòu)是從主機(jī)傳送至裝置框架信息結(jié)構(gòu)、數(shù)據(jù)框架信息結(jié)構(gòu)以及使用者定義框架信息結(jié)構(gòu)所組成的群組中擇一。22.如權(quán)利要求19所述的方法,其特征在于,所述數(shù)據(jù)框架是由一ATAPI模式裝置加以傳輸。全文摘要一種用以直譯重新定義的框架信息結(jié)構(gòu)的外圍裝置及相關(guān)方法,所述外圍裝置,是用以接收來自串行傳輸信道的具有控制信息的數(shù)據(jù)框架。此外圍裝置包含一信息直譯器以及一控制單元。信息直譯器耦接至串行傳輸信道,并用以接收數(shù)據(jù)框架并直譯數(shù)據(jù)框架以根據(jù)控制信息產(chǎn)生一動(dòng)作信號(hào)??刂茊卧罱又列畔⒅弊g器,用以接收動(dòng)作信號(hào)以根據(jù)控制信息執(zhí)行一動(dòng)作。通過本發(fā)明,可以減少微處理器的負(fù)擔(dān),并藉此提高韌體更新的效能。文檔編號(hào)G06F9/30GK1892623SQ20061009578公開日2007年1月10日申請(qǐng)日期2006年7月4日優(yōu)先權(quán)日2005年7月4日發(fā)明者莊志良,曾寶慶,蔡政宏申請(qǐng)人:聯(lián)發(fā)科技股份有限公司