專利名稱:用來與sata裝置進行通訊的代用sata主控裝置及其相關方法
技術領域:
本發(fā)明是關于SATA裝置的技術,尤指用來與SATA裝置進行通訊的代用SATA主控裝置及其相關方法。
背景技術:
在SATA協(xié)議中,SATA主控裝置(SATA host)與SATA裝置是利用暗影緩存器區(qū)塊(Shadow Register Block)的緩存器來彼此溝通。暗影緩存器區(qū)塊的緩存器是用來傳送主控裝置的指令至對應裝置,或是供對應裝置將其當前狀態(tài)通知主控裝置的用。主控裝置與對應裝置兩者間是通過信息框結構(Frame Information Structure,F(xiàn)IS)來互相交換信息。每一個FIS是由一群雙字組(Dword)所構成,所述雙字組是用以供主控裝置與對應裝置間進行信息傳遞之用。
依據(jù)SATA的規(guī)格書,在主控裝置接收到對應裝置所傳來用以清除暗影緩存器區(qū)塊中該對應裝置的忙碌旗標(BSY)或數(shù)據(jù)要求旗標(DRQ)的良好/不良狀態(tài)(good/bad status)指示之前,主控裝置僅能傳送相當有限的指令給對應裝置。進一步而言,除非這兩種旗標都被清掉,否則主控裝置只能送裝置重置指令(device reset command)或軟件重置指令(software resetcommand)給對應裝置。然而,這也代表對應裝置在忙碌旗標BSY與數(shù)據(jù)要求旗標DRQ兩者未被清除之前,都無法由主控裝置接收到其它指令或數(shù)據(jù)。
主控裝置與對應裝置間通常會傳送一系列的頻外(Out of Band,OOB)信號以開始進行兩者間的傳輸動作。接著,對應裝置會將一良好狀態(tài)(goodstatus)指針傳送給主控裝置,而這也會達到清除忙碌旗標BSY與數(shù)據(jù)要求旗標DRQ的效果。之后,主控裝置與對應裝置間便能互相交換FIS封包來開始進行正常的通訊。
但前述架構有一問題存在,那就是唯有在對應裝置安裝了適當?shù)墓碳?、可完成頻外序列(OOB sequence)傳輸程序、并傳送良好狀態(tài)指針給主控裝置的情況下,主控裝置才能傳送數(shù)據(jù)給對應裝置。在量產(chǎn)SATA裝置的過程中,并不會在SATA裝置的存儲器(例如閃存)中安裝固件。因此,當主控裝置試圖寫入固件碼至SATA裝置的存儲器時,該SATA裝置會無法完成頻外序列的傳輸程序或是無法傳送良好狀態(tài)指針給主控裝置。如此一來,主控裝置與該SATA裝置間便不能彼此通訊,而該主控裝置也就無法將固件碼寫入該SATA裝置的存儲器中。一旦對應裝置不能完成設定或無法安裝固件,則其它工作也就難以進行。例如,該對應裝置會無法進行自我檢測的動作,因此也就不會傳送良好狀態(tài)指針給主控裝置。
發(fā)明內(nèi)容
因此本發(fā)明的目的之一在于提供用來與SATA裝置進行通訊的代用SATA主控裝置及其相關方法,以解決上述問題。
本說明書提供了一種利用一代用SATA主控裝置與一SATA裝置進行通訊的方法的實施例,其包含有在該SATA裝置與該代用SATA主控裝置間建立一實體層連結;當該SATA裝置的一忙碌旗標被設定時,該代用SATA主控裝置傳送指令與數(shù)據(jù)至該SATA裝置;以及該SATA裝置依據(jù)所接收到的指令與數(shù)據(jù)與該代用SATA主控裝置進行溝通。
本說明書提供了一種用來與一SATA裝置進行通訊的代用SATA主控裝置的實施例,其包含有一實體層,用來與該SATA裝置的一實體層進行溝通;一傳送器,用來于該SATA裝置的一忙碌旗標被設定時,傳送指令與數(shù)據(jù)至該SATA裝置;以及一接收器,用來接收該SATA裝置于接收到所述指令與數(shù)據(jù)后所做的響應。
本說明書提供了一種用于一主控裝置利用一替代協(xié)議與一SATA裝置進行通訊的方法的實施例,其包含有在該SATA裝置與該主控裝置間建立一實體層連結;觸發(fā)該替代協(xié)議使之啟動以取代SATA協(xié)議;以及當該SATA裝置的一預定旗標被設定時,通過該替代協(xié)議傳送指令與數(shù)據(jù)至該SATA裝置。
本說明書提供了一種利用一替代協(xié)議來與一SATA裝置進行通訊的主控裝置的實施例,其包含有一實體層,用來與該SATA裝置的一實體層進行溝通;一觸發(fā)輸入端,用來接收觸發(fā)信號,該觸發(fā)信號是用以觸發(fā)該替代協(xié)議使之啟動以取代SATA協(xié)議;以及一傳送器,用來于該SATA裝置的一預定旗標被設定時,通過該替代協(xié)議傳送指令與數(shù)據(jù)至該SATA裝置。
圖1為本發(fā)明的代用SATA主控裝置的第一實施例的示意圖。
圖2為本發(fā)明的代用SATA主控裝置的第二實施例的示意圖。
圖3為本發(fā)明的代用SATA主控裝置的第三實施例的示意圖。
圖4為本發(fā)明將指令或數(shù)據(jù)傳送給一SATA裝置的方法的流程圖。
符號說明10、30、50 代用SATA主控裝置12 SATA實體層14 鏈接層16 傳輸層18 接口25、32、52 傳收器34 切換電路36 模式控制電路40 SATA路徑42 特定路徑44、60 外部觸發(fā)
46、62內(nèi)部觸發(fā)54傳送指令/數(shù)據(jù)產(chǎn)生器56觸發(fā)啟動電路64旗標清除指針66指令/數(shù)據(jù)請求電路100、102、104、106步驟具體實施方式
在本發(fā)明的較佳實施例中,是以一代用SATA主控裝置來取代一般的SATA主控裝置,該代用SATA主控裝置可于一般SATA主控裝置無法傳送指令及數(shù)據(jù)時,將指令及數(shù)據(jù)傳送給一SATA裝置。請參考圖1,其是依據(jù)本發(fā)明第一實施例所繪示的一代用SATA主控裝置10的示意圖。代用SATA主控裝置10包含有復數(shù)層的架構,其中主要包含一SATA實體層(physical layer)12、一鏈接層(link layer)14以及一傳輸層(transport layer)16。代用SATA主控裝置10亦可包含介于SATA協(xié)議與其它協(xié)議間的一接口18。例如,接口18可以是SATA對RS-232序列協(xié)議接口,或SATA對其他協(xié)議(如USB協(xié)議、IEEE 1394協(xié)議或PCI-E/PCI-X協(xié)議等)的接口。接口18可將指令層改成符合SATA規(guī)格的要求。實作上,除了用來通訊的指令層以外,主控裝置與對應裝置在其它層中可使用不同的協(xié)議,只要該協(xié)議為一序列式協(xié)議即可。
代用SATA主控裝置10并不需嚴格符合SATA的規(guī)格,只需SATA實體層12、鏈接層14以及傳輸層16的基本功能便可。一旦SATA實體層12連接到SATA裝置的實體層,代用SATA主控裝置10便可發(fā)送指令或數(shù)據(jù)到該SATA裝置,或是自該SATA裝置接收數(shù)據(jù)。因此,代用SATA主控裝置10并不限于僅能在忙碌旗標BSY與數(shù)據(jù)要求旗標DRQ兩者都被清除的情況下才能傳送指令或數(shù)據(jù)給該SATA裝置。在本說明書中,「實體層」一詞可包含SATA規(guī)格書中所定義的所有功能,亦可僅包含SATA規(guī)格書中所定義的差動式輸入(differential inputs)。
請參考圖2,其是依據(jù)本發(fā)明第二實施例所繪示的一代用SATA主控裝置30的示意圖。代用SATA主控裝置30包含有一傳收器32,用來傳送指令與數(shù)據(jù)至SATA裝置的一傳收器25,以及自該SATA裝置的傳收器25接收數(shù)據(jù)。除了通過SATA協(xié)議來溝通之外,代用SATA主控裝置30亦可使用一模式控制電路36與一切換電路34來切換至其它的通訊協(xié)議。模式控制電路36會以代用SATA主控裝置30外部所產(chǎn)生的一外部觸發(fā)44,或是代用SATA主控裝置30內(nèi)部所產(chǎn)生的一內(nèi)部觸發(fā)46作為其輸入信號。依據(jù)所接收到的外部觸發(fā)44或內(nèi)部觸發(fā)46,模式控制電路36會控制切換電路34來切換代用SATA主控裝置30與該SATA裝置所使用的通訊協(xié)議。例如,在圖2中,該通訊協(xié)議可于一SATA路徑40及另一特定路徑42之間進行切換。
請參考圖3,其是依據(jù)本發(fā)明第三實施例所繪示的一代用SATA主控裝置50的示意圖。代用SATA主控裝置50包含有一傳收器52,用來傳送指令與數(shù)據(jù)至SATA裝置的傳收器25,以及自該SATA裝置的傳收器25接收數(shù)據(jù)。代用SATA主控裝置50還包含有一傳送指令/數(shù)據(jù)產(chǎn)生器54,用來依據(jù)一外部指令/數(shù)據(jù)請求電路66的指令,傳送指令或數(shù)據(jù)至代用SATA主控裝置50的傳收器52。在代用SATA主控裝置50中,觸發(fā)啟動電路56會通知傳送指令/數(shù)據(jù)產(chǎn)生器54何時自指令/數(shù)據(jù)請求電路66接收指令或數(shù)據(jù),以及何時將這些指令或數(shù)據(jù)傳送至代用SATA主控裝置50的傳收器52。觸發(fā)啟動電路56可依據(jù)一外部觸發(fā)60、一內(nèi)部觸發(fā)62或是一旗標清除指針64來啟動,其中旗標清除指針64是指示忙碌旗標BSY與數(shù)據(jù)要求旗標DRQ兩者何時被清掉。當外部觸發(fā)60或內(nèi)部觸發(fā)62啟動時,如前所述,不是該忙碌旗標BSY與數(shù)據(jù)要求旗標DRQ已經(jīng)被該SATA裝置清掉,就是代用SATA主控裝置50必須能在不論所述旗標是否被清掉的情況下,將指令或數(shù)據(jù)傳送給該SATA裝置。在前述任一情形中,自指令/數(shù)據(jù)請求電路66所接收的指令或數(shù)據(jù),都會通過傳送指令/數(shù)據(jù)產(chǎn)生器54來傳送給代用SATA主控裝置50的傳收器52。此一步驟提供了一種很方便的機制來控制代用SATA主控裝置50將指令或料傳送給該SATA裝置。
請參考圖4并一并參考圖3。圖4是描繪本發(fā)明將指令或數(shù)據(jù)傳送給一SATA裝置的方法的流程圖。該流程圖所包含的步驟茲分述如下。
步驟100通過指令/數(shù)據(jù)請求電路66接收一指令或數(shù)據(jù)要求。
步驟102判斷忙碌旗標BSY與數(shù)據(jù)要求旗標DRQ兩者是否都被清掉。若是,執(zhí)行步驟106;否則,進行步驟104。
步驟104判斷是否收到用以指示該主控裝置支持不論忙碌旗標BSY與數(shù)據(jù)要求旗標DRQ被清掉與否皆可將指令或數(shù)據(jù)傳送給該SATA裝置、且數(shù)據(jù)欲由代用SATA主控裝置50送到該SATA裝置的任何內(nèi)部或外部觸發(fā)。若有,進行步驟106;否則,回到步驟102。
步驟106由于將指令或數(shù)據(jù)傳送至該SATA裝置的條件都已滿足,故代用SATA主控裝置50可開始傳送指令或數(shù)據(jù)。
簡言之,即使忙碌旗標BSY與數(shù)據(jù)要求旗標DRQ沒有被清掉,該代用SATA主控裝置同樣可與一SATA裝置進行通訊。這提供了一種相當便利的方式來更新功能未完備的SATA裝置。另外,由于代用SATA主控裝置與SATA裝置間所使用的通訊協(xié)議可以輕易的切換,故該代用SATA主控裝置可作為一種用途相當廣泛的多接口工具。
在另一實施例中,該代用SATA主控裝置內(nèi)可設置USB對SATA橋接器、IEEE 1394對SATA橋接器、或是PCI-E/PCI-X對SATA橋接器。在USB快速傳輸協(xié)議(USB bulk transaction protocol)中,USB主控裝置可發(fā)送進/出/偵測(IN/OUT/PING)訊標(token),而對應裝置則可用ACK、NAK、NYET、STALL或不交握回傳(no handshake return)來響應。USB對SATA橋接器可用ACK來響應該USB主控裝置,且無須先清除忙碌位(busy bit)即可發(fā)出指令至SATA裝置。依據(jù)前揭說明,所屬領域中具有通常知識者即可輕易地在IEEE 1394對SATA橋接器或是PCI-E/PCI-X對SATA橋接器中,使用類似USB的方式來傳送指令至SATA裝置。
以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明申請專利范圍所做的均等變化與修飾,皆應屬本發(fā)明專利的涵蓋范圍。
權利要求
1.一種利用一代用SATA主控裝置與一SATA裝置進行通訊的方法,其特征在于,該方法包含有下列步驟在該SATA裝置與該代用SATA主控裝置間建立一實體層連結;當該SATA裝置的一忙碌旗標被設定時,該代用SATA主控裝置傳送指令與數(shù)據(jù)至該SATA裝置;以及該SATA裝置依據(jù)所接收到的指令與數(shù)據(jù)與該代用SATA主控裝置進行溝通。
2.如權利要求1所述的方法,其特征在于,該方法另包含有下列步驟當該SATA裝置的一數(shù)據(jù)要求旗標被設定時,該代用SATA主控裝置傳送指令與數(shù)據(jù)至該SATA裝置。
3.如權利要求1所述的方法,其特征在于,該方法另包含有下列步驟依據(jù)所接收到的一觸發(fā)信號,將該SATA裝置與該代用SATA主控裝置間的通訊協(xié)議從SATA協(xié)議切換至一替代協(xié)議。
4.如權利要求3所述的方法,其特征在于所接收到的該觸發(fā)信號是由該代用SATA主控裝置外部所產(chǎn)生的外部觸發(fā)。
5.如權利要求3所述的方法,其特征在于所接收到的該觸發(fā)信號是由該代用SATA主控裝置內(nèi)部所產(chǎn)生的內(nèi)部觸發(fā)。
6.如權利要求3所述的方法,其特征在于該替代協(xié)議是選自于由RS-232序列式協(xié)議、USB協(xié)議、IEEE 1394協(xié)議、以及PCI-E/PCI-X協(xié)議所形成的一群組。
7.一種用來與一SATA裝置進行通訊的代用SATA主控裝置,其特征在于,該裝置包含有一實體層,用來與該SATA裝置的一實體層進行溝通;一傳送器,用來于該SATA裝置的一忙碌旗標被設定時,傳送指令與數(shù)據(jù)至該SATA裝置;以及一接收器,用來接收該SATA裝置于接收到所述指令與數(shù)據(jù)后所做的響應。
8.如權利要求7所述的代用SATA主控裝置,其特征在于該傳送器是于該SATA裝置的一數(shù)據(jù)要求旗標被設定時,傳送指令與數(shù)據(jù)至該SATA裝置。
9.如權利要求7所述的代用SATA主控裝置,其特征在于,該裝置另包含有一切換電路,用來依據(jù)所接收到的一觸發(fā)信號,將該SATA裝置與該代用SATA主控裝置間的通訊協(xié)議從SATA協(xié)議切換至一替代協(xié)議。
10.如權利要求9所述的代用SATA主控裝置,其特征在于所接收到的該觸發(fā)信號是由該代用SATA主控裝置外部所產(chǎn)生的外部觸發(fā)。
11.如權利要求9所述的代用SATA主控裝置,其特征在于所接收到的該觸發(fā)信號是由該代用SATA主控裝置內(nèi)部所產(chǎn)生的內(nèi)部觸發(fā)。
12.如權利要求9所述的代用SATA主控裝置,其特征在于該替代協(xié)議是選自于由RS-232序列式協(xié)議、USB協(xié)議、IEEE 1394協(xié)議、以及PCI-E/PCI-X協(xié)議所形成的一群組。
13.一種用于一主控裝置利用一替代協(xié)議與一SATA裝置進行通訊的方法,其特征在于,該方法其包含有下列步驟在該SATA裝置與該主控裝置間建立一實體層連結;觸發(fā)該替代協(xié)議使之啟動以取代SATA協(xié)議;以及當該SATA裝置的一預定旗標被設定時,通過該替代協(xié)議傳送指令與數(shù)據(jù)至該SATA裝置。
14.如權利要求13所述的方法,其特征在于利用該主控裝置外部所產(chǎn)生的一外部觸發(fā)來觸發(fā)該替代協(xié)議使之啟動。
15.如權利要求13所述的方法,其特征在于利用該主控裝置內(nèi)部所產(chǎn)生的一內(nèi)部觸發(fā)來觸發(fā)該替代協(xié)議使之啟動。
16.如權利要求13所述的方法,其特征在于該替代協(xié)議是選自于由RS-232序列式協(xié)議、USB協(xié)議、IEEE 1394協(xié)議、以及PCI-E/PCI-X協(xié)議所形成的一群組。
17.如權利要求13所述的方法,其特征在于該預定旗標是一忙碌旗標。
18.如權利要求13所述的方法,其特征在于該預定旗標是一數(shù)據(jù)要求旗標。
19.一種利用一替代協(xié)議來與一SATA裝置進行通訊的主控裝置,其特征在于,該裝置包含有一實體層,用來與該SATA裝置的一實體層進行溝通;一觸發(fā)輸入端,用來接收觸發(fā)信號,該觸發(fā)信號系用以觸發(fā)該替代協(xié)議使之啟動以取代SATA協(xié)議;以及一傳送器,用來于該SATA裝置的一預定旗標被設定時,通過該替代協(xié)議傳送指令與數(shù)據(jù)至該SATA裝置。
20.如權利要求19所述的主控裝置,其特征在于該觸發(fā)輸入端是接收該主控裝置外部所產(chǎn)生的一外部觸發(fā)。
21.如權利要求19所述的主控裝置,其特征在于該觸發(fā)輸入端是接收該主控裝置內(nèi)部所產(chǎn)生的一內(nèi)部觸發(fā)。
22.如權利要求19所述的主控裝置,其特征在于該替代協(xié)議是選自于由RS-232序列式協(xié)議、USB協(xié)議、IEEE 1394協(xié)議、以及PCI-E/PCI-X協(xié)議所形成的一群組。
23.如權利要求19所述的主控裝置,其特征在于該預定旗標是一忙碌旗標。
24.如權利要求19所述的主控裝置,其特征在于該預定旗標是一數(shù)據(jù)要求旗標。
全文摘要
本發(fā)明涉及一種利用一代用SATA主控裝置與一SATA裝置進行通訊的方法,其包含有在該SATA裝置與該代用SATA主控裝置間建立一實體層連結;當該SATA裝置的一忙碌旗標被設定時,該代用SATA主控裝置傳送指令與數(shù)據(jù)至該SATA裝置;以及該SATA裝置依據(jù)所接收到的指令與數(shù)據(jù)與該代用SATA主控裝置進行溝通。
文檔編號G06F13/42GK101042686SQ200710089178
公開日2007年9月26日 申請日期2007年3月21日 優(yōu)先權日2006年3月22日
發(fā)明者劉銓, 曾寶慶, 呂柏青 申請人:聯(lián)發(fā)科技股份有限公司