專利名稱:讀寫序列進階技術接附規格裝置內非標準暫存器的方法
技術領域:
本發明是有關于一種讀寫序列進階技術接附規格(SATA)裝置內非標準暫存器的方法,特別有關于使用包含無用輸入參數的標準命令,以驅使SATA裝置讀取非標準暫存器的值或寫入資料至非標準暫存器內的讀寫序列進階技術接附規格裝置內非標準暫存器的方法。
背景技術:
近年來,隨著資訊科技的蓬勃發展、電腦系統研發技術的精進以及民眾對于電腦系統周邊裝置的傳輸性能與散熱性的要求,日趨提升,為此,序列進階技術接附規格(Serial Advanced Technology Attachment;SATA)標準界面(界面是接口,以下都稱界面)規格也在此需求下因應而生,以滿足民眾對于電腦周邊裝置的需求。
雖然SATA標準界面的提供有效提升電腦周邊裝置的傳輸效率與散熱功能,然而,為確保電腦周邊裝置的穩定性與延展性,因此,在開發電腦周邊裝置的過程中,電腦周邊裝置的偵錯與效能的測試分析,已成為發展電腦周邊裝置所不可或缺的環節,為能進行電腦周邊裝置的偵錯與效能分析,研發人員會在電腦周邊裝置內設置非標準暫存器,以記錄電腦周邊裝置的狀態或開啟/關閉裝置的特定功能,并藉由讀取或更改這些非標準暫存器的值,以進行分析動作。
由于這些非標準暫存器是隱藏在電腦周邊裝置,而一般電腦主機提供的一標準界面,其是僅用于存取標準界面所定義的暫存器,對于這些非標準暫存器是無法讀取,一般電腦系統常見存取SATA裝置的非標準暫存器的方法,大多采用簡易方式的通用非同步接收及傳送器(UniversalAsynchronous Receiver/Transmitter;UART)或內部積體電路(InterIntegrated Circuit;I2C)界面方法,其因電腦周邊裝置的系統晶片組只需占用兩腳位,即可讀寫非標準暫存器,該方法是利用接收腳位接收欲讀寫非標準暫存器的值,再藉由發送腳位傳送寫入成功或讀出非標準暫存器的內容,然而,此方法必須配合有通用非同步接收及傳送器與內部積體電路的電腦系統才得以擷取非標準暫存器的值,使用上較缺乏彈性。
另一方面,亦有廠商利用販售商命令(Vender specific command)來存取電腦周邊裝置內非標準暫存器,然而,SATA標準規格中僅設置部份販售商命令,以供使用,但若大都販售商命令已被設定使用許多的功能后,而研發人員欲利用販售商命令定義電腦周邊裝置執行讀寫非標準暫存器的命令時,則可能發生販售商命令不足的窘境。
因此,本發明針對上述問題而提出一種讀寫序列進階技術接附規格(SATA)裝置內非標準暫存器的方法,其是利用標準命令的至少一無用輸入參數與回應標準命令的至少一無用輸出參數對應的輸出暫存器,讀寫SATA裝置的非標準暫存器,以解決上述問題。
有鑒于上述現有的序列進階技術接附規格裝置內非標準暫存器存在的缺陷,本發明人基于從事此類產品設計制造多年豐富的實務經驗及專業知識,并配合學理的運用,積極加以研究創新,以期創設一種新的讀寫序列進階技術接附規格裝置內非標準暫存器的方法,使其更具有實用性。經過不斷的研究、設計,并經反復試作及改進后,終于創設出確具實用價值的本發明。
發明內容
本發明的目的在于,提供一種新的讀寫序列進階技術接附規格裝置內非標準暫存器的方法,所要解決的技術問題是使其藉由包含無用輸入參數的標準命令,以設定為讀寫SATA裝置內非標準暫存器的命令,藉此,達成讀寫非標準暫存器的目的,從而更加適于實用。
本發明的另一目的在于,提供一種讀寫序列進階技術接附規格裝置內非標準暫存器的方法,所要解決的技術問題是使其藉由設定標準命令的無用輸入參數為確認參數,供SATA裝置接收對應標準命令與確認參數的輸入訊框資訊結構時,可偵測確認參數以確認欲讀寫非標準暫存器的值,藉此避免SATA裝置在未預期的情況下,讀取或更改該非標準暫存器的值,從而更加適于實用。
本發明的目的及解決其技術問題是采用以下技術方案來實現的。依據本發明提出的一種讀序列進階技術接附規格裝置內非標準暫存器的方法,其是利用一標準命令的至少一無用輸入參數與回應該標準命令的至少一無用輸出參數對應的輸出暫存器,讀取一SATA裝置內至少一非標準暫存器的值,該方法包含下列步驟設定該標準命令的該無用輸入參數為一執行參數至一SATA主機控制單元;下達包含該執行參數的該標準命令至該SATA主機控制單元,以轉換該標準命令與該執行參數為一輸入訊框資訊結構;發送該輸入訊框資訊結構至該SATA裝置,供該SATA裝置偵測該執行參數,以讀取該非標準暫存器的值;儲存該非標準暫存器的值至該SATA裝置的該輸出暫存器,并轉換該非標準暫存器的值為一輸出訊框資訊結構;發送該輸出訊框資訊結構至該SATA主機控制單元;儲存該非標準暫存器的值至該SATA主機控制單元的該輸出暫存器;以及讀取該SATA主機控制單元的該輸出暫存器的值。
本發明的目的及解決其技術問題還采用以下技術措施來進一步實現。
前述的讀序列進階技術接附規格裝置內非標準暫存器的方法,其中所述的在設定該標準命令的該無用輸入參數為一執行參數至一SATA主機控制單元的步驟前,更包含下列步驟設定另一標準命令的至少一無用輸入參數為一確認參數至該SATA主機控制單元;下達包含該確認參數的該標準命令至該SATA主機控制單元,以轉換該標準命令與該確認參數為該輸入訊框資訊結構;以及發送包含該標準命令與該確認參數的該輸入訊框資訊結構至該SATA裝置,供該SATA裝置偵測該確認參數,確認欲讀取該非標準暫存器的值。
前述的讀序列進階技術接附規格裝置內非標準暫存器的方法,其中所述的在設定該標準命令的該無用輸入參數為一執行參數至一SATA主機控制單元的步驟中,更包含一步驟,其是設定該標準命令的另一無用輸入參數為一確認參數至該SATA主機控制單元,并轉換該確認參數為該輸入訊框資訊結構,供該SATA裝置偵測該確認參數,確認欲讀取該非標準暫存器的值。
前述的讀序列進階技術接附規格裝置內非標準暫存器的方法,其中所述的在設定該標準命令的該無用輸入參數為一執行參數至一SATA主機控制單元的步驟中,更包含一步驟,其是設定該標準命令的另一無用輸入參數為一索引參數至該SATA主機控制單元,并轉換該索引參數為該輸入訊框資訊結構,供該SATA裝置偵測該索引參數,讀取對應該索引參數的該非標準暫存器的值。
前述的讀序列進階技術接附規格裝置內非標準暫存器的方法,其中所述的標準命令為28bit標準命令,該無用輸入參數與該無用輸出參數為擴張輸入參數與擴張輸出參數。
本發明的目的及解決其技術問題還采用以下技術方案來實現。依據本發明提出的一種寫序列進階技術接附規格裝置內非標準暫存器的方法,其是利用一標準命令的復數無用輸入參數,寫入資料至一SATA裝置內至少一非標準暫存器,該方法包含下列步驟設定該標準命令的該無用輸入參數為一執行參數與一資料參數至一SATA主機控制單元;下達包含該執行參數與該資料參數的該標準命令至該SATA主機控制單元,以轉換該標準命令、該執行參數及該資料參數為一輸入訊框資訊結構;發送該輸入訊框資訊結構至該SATA裝置,供該SATA裝置偵測該執行參數,以讀取該資料參數;以及寫入該資料參數至該非標準暫存器。
本發明的目的及解決其技術問題還采用以下技術措施來進一步實現。
前述的寫序列進階技術接附規格裝置內非標準暫存器的方法,其中所述的在設定該標準命令的該無用輸入參數為一執行參數與一資料參數至一SATA主機控制單元的步驟前,更包含下列步驟設定另一標準命令的至少一無用輸入參數為一確認參數至該SATA主機控制單元;下達包含該確認參數的該標準命令至該SATA主機控制單元,以轉換該標準命令與該確認參數為該輸入訊框資訊結構;以及發送包含該標準命令與該確認參數的該輸入訊框資訊結構至該SATA裝置,供該SATA裝置偵測該確認參數,確認欲寫入該資料參數至該非標準暫存器。
前述的寫序列進階技術接附規格裝置內非標準暫存器的方法,其中所述的在設定該標準命令的該無用輸入參數為一執行參數與一資料參數至一SATA主機控制單元的步驟中,更包含一步驟,其是設定該標準命令的另一無用輸入參數為一確認參數至該SATA主機控制單元,并轉換該確認參數為該輸入訊框資訊結構,供該SATA裝置偵測該確認參數,確認欲寫入該資料參數至該非標準暫存器。
前述的寫序列進階技術接附規格裝置內非標準暫存器的方法,其中所述的在設定該標準命令的該無用輸入參數為一執行參數與一資料參數至一SATA主機控制單元的步驟中,更包含一步驟,其是設定該標準命令的另一無用輸入參數為一索引參數至該SATA主機控制單元,并轉換該索引參數為該輸入訊框資訊結構,供該SATA裝置偵測該索引參數,寫入該資料參數至對應該索引參數的該非標準暫存器。
前述的寫序列進階技術接附規格裝置內非標準暫存器的方法,其中所述的標準命令為28bit標準命令,該無用輸入參數為擴張輸入參數。
本發明與現有技術相比具有明顯的優點和有益效果。由以上技術方案可知,本發明的主要技術內容如下本發明的讀序列進階技術接附規格(SATA)裝置內非標準暫存器的方法,其是藉由設定標準命令的無用輸入參數為執行參數,并下達包含執行參數的標準命令至SATA主機控制單元,以藉由SATA主機控制單元轉換為輸入訊框資訊結構,并傳送輸入訊框資訊結構至SATA裝置,供SATA裝置偵測執行參數以讀取對應的非標準暫存器的值,并儲存非標準暫存器的值至SATA裝置的輸出暫存器,該輸出暫存器為回應該標準命令的無用輸出參數所對應的輸出暫存器,該SATA裝置轉換非標準暫存器的值為輸出訊框資訊結構,并將的傳送至該SATA主機控制單元,供該SATA主機控制單元將非標準暫存器的值儲存至對應的輸出暫存器,最后,藉由讀取該SATA主機控制單元的輸出暫存器的值,以得知非標準暫存器的值。
另外,本發明亦可藉由設定標準命令的無用輸入參數為執行參數與資料參數,下達包含執行參數與資料參數的標準命令至SATA主機控制單元,以藉由SATA主機控制單元轉換執行參數、資料參數與標準命令為輸出訊框資訊結構并傳送至SATA裝置,供SATA裝置進行對應執行參數的事件,即將資料參數寫入至對應執行參數的非標準暫存器內。
再者,本方法更可在設定標準命令的無用輸入參數為執行參數前,設定另一標準命令的無用輸入參數為確認參數,下達包含該確認參數的該標準命令至該SATA主機控制單元,以轉換為輸入訊框資訊結構,并傳送至該SATA裝置,使該SATA裝置偵測確認參數,以確認欲執行讀寫該非標準暫存器的功能,或者直接在設定標準命令的無用輸入參數為執行參數時,再設定另一無用參數為確認參數,使該SATA裝置偵測該確認參數,以確認欲執行讀寫該非標準暫存器的功能。
借由上述技術方案,本發明讀寫序列進階技術接附規格裝置內非標準暫存器的方法至少具有下列優點本發明是有關于一種讀寫序列進階技術接附規格(SATA)裝置內非標準暫存器的方法,其是使用包含至少一無用輸入參數的標準命令與回應該標準命令的至少一無用輸出參數對應的輸出暫存器,藉由設定該標準命令的無用輸入參數為執行參數,透過該SATA主機控制單元轉換執行參數為輸入訊框資訊結構,并將的發送予該SATA裝置,供SATA裝置偵測該執行參數,以讀取非標準暫存器的值,并將該非標準暫存器的值儲存至SATA裝置的輸出暫存器內;而后,轉換該SATA裝置的非標準暫存器的值為輸出訊框資訊結構,且將的傳送予該SATA主機控制單元,以儲存該非標準暫存器的值至SATA主機控制單元對應的輸出暫存器,供使用者讀取SATA主機控制單元的輸出暫存器以得知非標準暫存器的值。
另外,當欲寫入資料至非標準暫存器時,亦可藉由設定該標準命令的無用輸入參數為執行參數與資料參數,經由該SATA主機控制單元轉換執行參數與資料參數為輸入訊框資訊結構,并將的發送予該SATA裝置,供該SATA裝置偵測該執行參數,以將資料參數寫入至非標準暫存器內,藉此,以提升讀寫非標準暫存器的彈性。
綜上所述,本發明特殊的讀寫序列進階技術接附規格裝置內非標準暫存器的方法,其可以設定為讀寫SATA裝置內非標準暫存器的命令,從而達成讀寫非標準暫存器的目的,并且能夠避免SATA裝置在未預期的情況下,讀取或更改該非標準暫存器的值,從而更加適于實用。其具有上述諸多的優點及實用價值,并在同類方法中未見有類似的設計公開發表或使用而確屬創新,其不論在方法上或功能上皆有較大的改進,在技術上有較大的進步,并產生了好用及實用的效果,從而更加適于實用,而具有產業的廣泛利用價值,誠為一新穎、進步、實用的新設計。
上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發明的上述和其他目的、特征和優點能夠更明顯易懂,以下特舉較佳實施例,并配合附圖,詳細說明如下。
圖1A是發明28bit READ DMA標準命令的格式表。
圖1B是本發明的回應28bit READ DMA標準命令的格式表。
圖2A是本發明的READ DMA標準命令的輸入訊框資訊結構的格式表。
圖2B是本發明的回應READ DMA標準命令的輸出訊框資訊結構的格式表。
圖3是本發明讀取非標準暫存器的值的流程圖。
圖4是本發明另一讀取非標準暫存器的值的流程圖。
圖5是本發明寫入資料至非標準暫存器的流程圖。
圖6是本發明另一寫入資料至非標準暫存器的流程圖。
圖7是本發明確認欲讀寫非標準暫存器的值的流程圖。
圖8是本發明又一讀取非標準暫存器的值的流程圖。
圖9是本發明又一寫入資料至非標準暫存器的流程圖。
具體實施例方式
為更進一步闡述本發明為達成預定發明目的所采取的技術手段及功效,以下結合附圖及較佳實施例,對依據本發明提出的讀寫序列進階技術接附規格裝置內非標準暫存器的方法其具體實施方式
、方法、步驟、特征及其功效,詳細說明如后。
在習知的方法中,其是使用UART與I2C界面的方法,或者藉由販售商命令驅使SATA裝置讀寫非標準暫存器,本發明不同于習知技術是藉由標準命令的至少一無用輸入參數與回應該標準命令的至少一無用輸出參數對應的輸出暫存器,讀取或更改SATA裝置的非標準暫存器的值。
在標準界面規格中,如進階技術接附規格(Advanced TechnologyAttachment;ATA)與進階技術接附規格封包界面(AT Attachment PacketInterface;ATAPI)的標準界面規格,皆定義有標準命令,由于序列進階技術接附規格(Serial Advanced Technology Attachment;SATA)標準界面規格是自ATA標準界面規格加以延伸,因此,使用者可藉由下達ATA標準界面規格定義的標準命令子SATA裝置,命令SATA裝置執行對應的標準事件,以28bit的標準命令為例,請參閱圖1A是為本發明28bit READ DMA標準命令的格式表,如圖所示,其是包含有復數輸入參數,其為一Features暫存器參數、一Sector Count暫存器參數、一LBA Low暫存器參數、一LBAMid暫存器參數、一LBA High暫存器參數、一Device暫存器參數以及一Command暫存器參數。
其中,下達READ DMA標準命令于SATA裝置的方法如下,首先,依序設定READ DMA標準命令的輸入參數,即依序設定Features暫存器參數、SectorCount暫存器參數、LBA Low暫存器參數、LBA Mid暫存器參數、LBA High暫存器參數以及Device暫存器參數,也就是寫入上述的參數值并儲存至SATA主機控制單元(SATA host controller)內部所對應的輸入暫存器中,而后,下達并儲存Command暫存器參數至該SATA主機控制單元的命令暫存器中。
當該SATA主機控制單元偵測命令暫存器有儲存Command暫存器參數的動作時,便會轉換標準命令與對應標準命令的相關輸入暫存器的值為圖2A所示的輸入訊框資訊結構(Frame Information Structure;FIS),即將READDMA標準命令儲存至圖2A的Command欄位內,以及將SATA主機控制單元內輸入暫存器的值,即Features暫存器、Sector Count暫存器、LBA Low暫存器、LBA Mid暫存器、LBA High暫存器以及Device暫存器的值分別儲存至圖2A對應的一Features欄位、一Sector Count欄位、一LBA Low欄位、一LBA Mid欄位、一LBA High欄位以及一Device欄位內。
此外,SATA主機控制單元依據SATA標準界面規格的定義,在一FISType(27h)欄位、一C欄位、二R欄位、一Control欄位以及復數Reserved(0)欄位寫入對應輸入訊框資訊結構的輸入參數,其余的一Features(exp)欄位、一Sector Count(exp)欄位、一LBA Low(exp)欄位、一LBA Mid(exp)欄位以及一LBA High(exp)欄位,是用于填入48bit的標準命令的擴張輸入參數,48bit的標準命令是用于擴張控制SATA裝置,即擴張輸入暫存器的位址,用以擴張控制SATA裝置,所以擴張輸入參數即儲存于輸入暫存器所擴充的位址處,因為前述的擴張輸入參數是用于48bit的標準命令,故當下達28bit的標準命令時,前述的擴張輸入參數可隨意填入,即為無用輸入參數。
接續,SATA主機控制單元將輸入訊框資訊結構發送至該SATA裝置,供該SATA裝置儲存輸入訊框資訊結構的所有參數至對應的暫存器,之后SATA裝置將偵測命令暫存器,以執行對應READ DMA標準命令的標準事件。
當該SATA裝置完成執行READ DMA標準命令時,該SATA裝置是會將完成狀態填入對應的輸出暫存器,且該SATA裝置是會將輸出暫存器的值轉換為圖2B所示的輸出訊框資訊結構,即將所有輸出暫存器的值儲存至圖2B對應的欄位,其中Sector Count(exp)欄位、LBA Low(exp)欄位、LBA Mid(exp)欄位與LBA High(exp)欄位是為儲存回應48bit的標準命令的擴張輸出參數,擴張輸出參數即SATA裝置執行完48bit的標準命令后,填入于輸出暫存器所擴張的位址處的值,故當回應28bit的標準命令時,擴張輸出參數可隨意填入于對應的輸出暫存器所擴張的位址處,即為輸出無用參數,此外,該SATA裝置亦依據SATA標準界面規格的定義,在一FIS Type(34h)欄位、一I欄位、二R欄位以及復數Reserved(0)欄位寫入對應輸出訊框資訊結構的參數。
接著,該SATA裝置將輸出訊框資訊結構發送至該SATA主機控制單元,該SATA主機控制單元將輸出訊框資訊結構的值儲存至對應的輸出暫存器內,即如圖1B所示的回應28bit READ DMA的標準命令的輸出參數。
請一并參閱圖3,是本發明讀取非標準暫存器的值的流程圖,以下是以28bit READ DMA標準命令的至少一無用輸入參數與回應READ DMA標準命令的至少一無用輸出參數對應的輸出暫存器為例,以作為讀取SATA裝置內所設的一非標準暫存器的值的說明,首先,依步驟S10所示,設定標準命令的無用輸入參數為一執行參數,在此實施例,設定LBA Low暫存器擴張參數為執行參數,其值為ECh,而儲存至該SATA主機控制單元內對應的LBA Low暫存器擴張的位址處,待該READ DMA標準命令對應的所有輸入參數皆設定儲存至該SATA主機控制單元對應的輸入暫存器后;接續,依步驟S11所示,下達包含執行參數的標準命令至該SATA主機控制單元,即下達READ DMA的標準命令碼C8h至該SATA主機控制單元,并將的儲存至該SATA主機控制單元的命令暫存器。
當該SATA主機控制單元偵測命令暫存器有儲存動作時,該SATA主機控制單元是會將標準命令與包含執行參數的所有參數,轉換為輸入訊框資訊結構,并執行步驟S12,發送輸入訊框資訊結構至SATA裝置,供SATA裝置儲存輸入訊框資訊結構的標準命令與執行參數至SATA裝置內所對應的暫存器,即命令暫存器即LBA Low暫存器擴張的位址處,之后SATA裝置偵測命令暫存器,除執行對應READ DMA標準命令的標準事件外,進一步偵測LBALow暫存器擴張的位址處所儲存的值為ECh時,是會讀取對應該執行參數的一非標準暫存器的值,假設此值為D4h。
之后,該SATA裝置依據步驟S13所示,儲存該非標準暫存器的值至回應READ DMA標準命令的無用輸出參數對應的輸出暫存器內,即把非標準暫存器的值D4h作為無用輸出參數儲存至對應的輸出暫存器,在此實施例將D4h作為LBA Mid暫存器擴張參數并儲存于LBA Mid暫存器擴張的位址處,且轉換非標準暫存器的值為輸出訊框資訊結構;接著,該SATA裝置進行步驟S14,發送輸出訊框資訊結構至該SATA主機控制單元,然后,該SATA主機控制單元執行步驟S15,儲存非標準暫存器的值至SATA主機控制單元內所對應的輸出暫存器,即SATA主機控制單元的LBA Mid暫存器擴張的位址處;最后,執行步驟S16,讀取該SATA主機控制單元的該輸出暫存器的值,即讀取LBA Mid暫存器擴張的位址處,以可得知該非標準暫存器的值。
請參閱圖4,是本發明另一讀取非標準暫存器的值的流程圖,如圖所示,當欲驅使SATA裝置讀取非標準暫存器的值時,首先,如步驟S20與步驟S21所示,設定READ DMA標準命令的一無用輸入參數為執行參數,在此實施例,設定LBA Low暫存器擴張參數為21h,以及設定READ DMA標準命令的另一無用輸入參數為一索引參數,在此實施例,設定LBA Mid暫存器擴張參數為E0h,并分別儲存該執行參數與該索引參數至該SATA裝置內對應的輸入暫存器,即LBA Low暫存器與LBA Mid暫存器擴張的位址處;之后,依步驟S22所示,下達包含執行參數與索引參數的標準命令至該SATA主機控制單元,以轉換執行參數、索引參數與標準命令為輸入訊框資訊結構;接著,該SATA主機控制單元執行步驟S23,發送輸入訊框資訊結構至SATA裝置,供該SATA裝置儲存該執行參數、索引參數與標準命令至設于該SATA裝置內對應的暫存器,即命令暫存器、LBA Low暫存器擴充的位址處與LBA Mid暫存器擴張的位址處,之后該SATA裝置偵測該LBA Low暫存器擴張的位址處所儲存的執行參數為21h時,是會讀取對應該索引參數E0h的非標準暫存器的值;接續,進行步驟S24至步驟S27以讀取該非標準暫存器的值,其中,步驟S24至步驟S27同于閱圖3的步驟S13至步驟S16。
此外,請參閱圖5,本發明的方法除可使用28bit READ DMA標準命令讀取該非標準暫存器的值外,亦可寫入資料至該非標準暫存器內,首先,可依步驟S30所示,設定READ DMA標準命令的復數無用輸入參數為一執行參數與一資料參數,在此實施例,設定LBA Low暫存器擴張參數為3Ch做為該執行參數以及設定LBA High暫存器擴張參數為5Eh做為該資料參數,并儲存該執行參數與該資料參數至該SATA主機控制單元內對應的LBA Low暫存器與LBA High暫存器擴張的位址處;接著,執行步驟S31,下達包含該執行參數與該資料參數的標準命令于SATA主機控制單元,以供該SATA主機控制單元轉換執行參數、資料參數與標準命令為輸入訊框資訊結構;之后,該SATA主機控制單元依據步驟S32,發送輸入訊框資訊結構至該SATA裝置,供該SATA裝置偵測該執行參數,以讀取該資料參數,最后,依步驟S33所示,寫入該資料參數至對應該執行參數的該非標準暫存器內。
請參閱圖6,其是為本發明另一寫入資料至非標準暫存器的流程圖,如圖所示,當欲驅使SATA裝置寫入資料至非標準暫存器時,首先,可依步驟S40與步驟S41所示,設定28bit READ DMA標準命令的復數無用輸入參數為一執行參數與一資料參數,以及設定該標準命令的另一無用輸入參數為一索引參數,并儲存執行參數、資料參數以及索引參數至該SATA主機控制單元內對應的輸入暫存器擴張的位址處。
接續,進行步驟S42,下達包含該執行參數、該資料參數與該索引參數的標準命令于該SATA主機控制單元,以供SATA主機控制單元儲存該標準命令至命令暫存器,并轉換執行參數、資料參數、索引參數與標準命令為輸入訊框資訊結構;之后,該SATA主機控制單元進行步驟S43,發送輸入訊框資訊結構至該SATA裝置,供該SATA裝置依據該標準命令,執行對應的標準事件,并偵測該執行參數以讀取該資料參數;最后,依步驟S44所示,寫入該資料參數至對應該索引參數的非標準暫存器內。
由于28bit READ DMA標準命令對應的無用輸入參數可隨意填入數值,如此容易發生隨機填入無用輸入參數的值與執行參數的值相同,而使SATA裝置偵測到時,認定要讀寫該非標準暫存器,為避免此情況的發生,本發明提出一方法解決前述問題,請參閱圖7,首先,依步驟S50所示,設定一標準命令的至少一無用輸入參數為確認參數,并儲存該確認參數至該SATA主機控制單元內對應的輸入暫存器,在此實施例中,是設定Features暫存器擴張參數與Sector Count暫存器擴張參數依序為01h、02h,儲存于Features暫存器擴張的位址處和Sector Count暫存器擴張的位址處。
之后,依步驟S51所示,下達包含確認參數的標準命令于SATA主機控制單元,供該SATA主機控制單元儲存該標準命令至命令暫存器,并轉換該確認參數與標準命令為輸入訊框資訊結構;接續,該SATA主機控制單元執行步驟S52發送輸入訊框資訊結構至該SATA裝置,當該SATA裝置偵測該SATA裝置的Features暫存器擴張的位址處和Sector Count暫存器擴張的位址處,所儲存的值為01h、02h時,即可確認使用者欲讀取該非標準暫存器的值或寫入資料至非標準暫存器,甚至更可關閉原來要執行的標準事件,如不為01h、02h時,即不讀取該非標準暫存器的值和不寫入資料至非標準暫存器。
接著,本發明可執行圖3或圖4所示的步驟,運用另一28bit READ DMA標準命令的無用輸入參數與回應READ DMA標準命令的無用輸出參數對應的輸出暫存器,以讀取該SATA裝置的非標準暫存器的值,或者,執行圖5或圖6所示的步驟,運用另一28bit READ DMA標準命令的無用輸入參數,以寫入資料至該SATA裝置的非標準暫存器內,若SATA裝置偵測該Features暫存器擴張的位址處和Sector Count暫存器擴張的位址處,所儲存的值為02h、01h時,即關閉讀寫非標準暫存器的功能,并恢復該標準命令為原有定義的功能。
此外,本發明亦提供另一設定確認參數的方法,以供SATA裝置確認欲讀寫該非標準暫存器的值,此方法即依序設定復數標準命令的一無用輸入參數為確認參數,即依序設定復數28bit READ DMA標準命令的Features暫存器擴張參數為01h、02h且儲存該確認參數于該SATA主機控制單元內Features暫存器擴張的位址處,藉由連續下達包含確認參數的28bit READDMA標準命令于SATA主機控制單元,以轉換復數包含確認參數的標準命令為輸入訊框資訊結構,并依序發送輸入訊框資訊結構予SATA裝置,當SATA裝置依序偵測該SATA裝置內的Features暫存器擴張的位址處所儲存的值為01h、02h時,則可確認欲讀寫非標準暫存器的值,相反順序則為關閉讀寫非標準暫存器的功能。
請參閱圖8,其是為本發明又一讀取非標準暫存器的值的流程圖,此實施例不同于上一實施例在于,此實施例僅藉由設定一標準命令的復數無用輸入參數,即可供SATA裝置確認欲讀取暫存器的值并進行讀取;首先,依步驟S60與步驟S61所示,設定標準命令的無用輸入參數為一確認參數與一執行參數以及設定標準命令的另一無用輸入參數為一索引參數,并儲存該確認參數、該執行參數與該索引參數至該SATA裝置內對應的輸入暫存器擴張的位址處,由此可知此實施例不同于上一實施例,必須設定另一標準命令的無用輸入參數為確認參數。
接著,執行步驟S62下達包含確認參數、索引參數與執行參數的標準命令至SATA主機控制單元,供SATA主機控制單元儲存標準命令至命令暫存器,并轉換確認參數、索引參數、執行參數與標準命令為輸入訊框資訊結構后,依據步驟S63所示,發送輸入訊框資訊結構至該SATA裝置,以供該SATA裝置依據該確認參數與執行參數確認欲讀取非標準暫存器的值,并讀取對應索引參數的非標準暫存器的值;而后,執行步驟S64至步驟S67,其中,步驟S64至步驟S67是可參閱圖3的步驟S13至步驟S16或參閱圖4的步驟S24至步驟S27,藉此,以得知SATA裝置的非標準暫存器的值。
此外,請參閱圖9,其是為本發明又一寫入資料至非標準暫存器的流程圖,此實施例如同上一實施例,僅藉由設定一標準命令的復數無用輸入參數,即可供SATA裝置確認欲寫入資料至SATA裝置的該非標準暫存器內;首先,依步驟S70與步驟S71所示,設定標準命令的無用輸入參數為一確認參數、一資料參數及一執行參數,以及設定該標準命令的另一無用輸入參數為一索引參數,并儲存該確認參數、該執行參數與該索引參數至該SATA主機控制單元內對應的輸入暫存器擴張的位址處,之后進行步驟S72,下達包含確認參數、索引參數、資料參數及執行參數的標準命令至SATA主機控制單元,以供該SATA主機控制單元儲存標準命令,并轉換確認參數、索引參數、資料參數、執行參數及標準命令為輸入訊框資訊結構;接著,執行步驟S73,發送輸入訊框資訊結構至SATA裝置,供SATA裝置依據該確認參數與執行參數確認欲寫入資料至非標準暫存器,并讀取該資料參數;最后,依步驟S74所示,寫入資料參數至對應該索引參數的非標準暫存器內。
綜上所述,本發明是有關于一種讀寫序列進階技術接附規格(SATA)裝置內非標準暫存器的方法,其是使用包含至少一無用輸入參數的標準命令與回應該標準命令的至少一無用輸出參數對應的輸出暫存器,藉由設定該標準命令的無用輸入參數為執行參數,透過該SATA主機控制單元轉換執行參數為輸入訊框資訊結構,并將的發送予該SATA裝置,供SATA裝置偵測該執行參數,以讀取非標準暫存器的值,并將該非標準暫存器的值儲存至SATA裝置的輸出暫存器內;而后,轉換該SATA裝置的非標準暫存器的值為輸出訊框資訊結構,且將的傳送予該SATA主機控制單元,以儲存該非標準暫存器的值至SATA主機控制單元對應的輸出暫存器,供使用者讀取SATA主機控制單元的輸出暫存器以得知非標準暫存器的值。
另外,當欲寫入資料至非標準暫存器時,亦可藉由設定該標準命令的無用輸入參數為執行參數與資料參數,經由該SATA主機控制單元轉換執行參數與資料參數為輸入訊框資訊結構,并將的發送予該SATA裝置,供該SATA裝置偵測該執行參數,以將資料參數寫入至非標準暫存器內,藉此,以提升讀寫非標準暫存器的彈性。
以上所述,僅是本發明的較佳實施例而已,并非對本發明作任何形式上的限制,雖然本發明已以較佳實施例揭露如上,然而并非用以限定本發明,任何熟悉本專業的技術人員,在不脫離本發明技術方案范圍內,當可利用上述揭示的方法及技術內容作出些許的更動或修飾為等同變化的等效實施例,但凡是未脫離本發明技術方案的內容,依據本發明的技術實質對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發明技術方案的范圍內。
權利要求
1一種讀序列進階技術接附規格裝置內非標準暫存器的方法,其是利用一標準命令的至少一無用輸入參數與回應該標準命令的至少一無用輸出參數對應的輸出暫存器,讀取一SATA裝置內至少一非標準暫存器的值,該方法包含下列步驟設定該標準命令的該無用輸入參數為一執行參數至一SATA主機控制單元;下達包含該執行參數的該標準命令至該SATA主機控制單元,以轉換該標準命令與該執行參數為一輸入訊框資訊結構;發送該輸入訊框資訊結構至該SATA裝置,供該SATA裝置偵測該執行參數,以讀取該非標準暫存器的值;儲存該非標準暫存器的值至該SATA裝置的該輸出暫存器,并轉換該非標準暫存器的值為一輸出訊框資訊結構;發送該輸出訊框資訊結構至該SATA主機控制單元;儲存該非標準暫存器的值至該SATA主機控制單元的該輸出暫存器;以及讀取該SATA主機控制單元的該輸出暫存器的值。
2.根據權利要求1所述的讀序列進階技術接附規格裝置內非標準暫存器的方法,其中在設定該標準命令的該無用輸入參數為一執行參數至一SATA主機控制單元的步驟前,更包含下列步驟設定另一標準命令的至少一無用輸入參數為一確認參數至該SATA主機控制單元;下達包含該確認參數的該標準命令至該SATA主機控制單元,以轉換該標準命令與該確認參數為該輸入訊框資訊結構;以及發送包含該標準命令與該確認參數的該輸入訊框資訊結構至該SATA裝置,供該SATA裝置偵測該確認參數,確認欲讀取該非標準暫存器的值。
3.根據權利要求1所述的讀序列進階技術接附規格裝置內非標準暫存器的方法,其中在設定該標準命令的該無用輸入參數為一執行參數至一SATA主機控制單元的步驟中,更包含一步驟,其是設定該標準命令的另一無用輸入參數為一確認參數至該SATA主機控制單元,并轉換該確認參數為該輸入訊框資訊結構,供該SATA裝置偵測該確認參數,確認欲讀取該非標準暫存器的值。
4.根據權利要求1所述的讀序列進階技術接附規格裝置內非標準暫存器的方法,其中在設定該標準命令的該無用輸入參數為一執行參數至一SATA主機控制單元的步驟中,更包含一步驟,其是設定該標準命令的另一無用輸入參數為一索引參數至該SATA主機控制單元,并轉換該索引參數為該輸入訊框資訊結構,供該SATA裝置偵測該索引參數,讀取對應該索引參數的該非標準暫存器的值。
5.根據權利要求1所述的讀序列進階技術接附規格裝置內非標準暫存器的方法,其中該標準命令為28bit標準命令,該無用輸入參數與該無用輸出參數為擴張輸入參數與擴張輸出參數。
6一種寫序列進階技術接附規格裝置內非標準暫存器的方法,其是利用一標準命令的復數無用輸入參數,寫入資料至一SATA裝置內至少一非標準暫存器,該方法包含下列步驟設定該標準命令的該無用輸入參數為一執行參數與一資料參數至一SATA主機控制單元;下達包含該執行參數與該資料參數的該標準命令至該SATA主機控制單元,以轉換該標準命令、該執行參數及該資料參數為一輸入訊框資訊結構;發送該輸入訊框資訊結構至該SATA裝置,供該SATA裝置偵測該執行參數,以讀取該資料參數;以及寫入該資料參數至該非標準暫存器。
7.根據權利要求6所述的寫序列進階技術接附規格裝置內非標準暫存器的方法,其中在設定該標準命令的該無用輸入參數為一執行參數與一資料參數至一SATA主機控制單元的步驟前,更包含下列步驟設定另一標準命令的至少一無用輸入參數為一確認參數至該SATA主機控制單元;下達包含該確認參數的該標準命令至該SATA主機控制單元,以轉換該標準命令與該確認參數為該輸入訊框資訊結構;以及發送包含該標準命令與該確認參數的該輸入訊框資訊結構至該SATA裝置,供該SATA裝置偵測該確認參數,確認欲寫入該資料參數至該非標準暫存器。
8.根據權利要求6所述的寫序列進階技術接附規格裝置內非標準暫存器的方法,其中在設定該標準命令的該無用輸入參數為一執行參數與一資料參數至一SATA主機控制單元的步驟中,更包含一步驟,其是設定該標準命令的另一無用輸入參數為一確認參數至該SATA主機控制單元,并轉換該確認參數為該輸入訊框資訊結構,供該SATA裝置偵測該確認參數,確認欲寫入該資料參數至該非標準暫存器。
9.根據權利要求6所述的寫序列進階技術接附規格裝置內非標準暫存器的方法,其中在設定該標準命令的該無用輸入參數為一執行參數與一資料參數至一SATA主機控制單元的步驟中,更包含一步驟,其是設定該標準命令的另一無用輸入參數為一索引參數至該SATA主機控制單元,并轉換該索引參數為該輸入訊框資訊結構,供該SATA裝置偵測該索引參數,寫入該資料參數至對應該索引參數的該非標準暫存器。
10.根據權利要求6所述的寫序列進階技術接附規格裝置內非標準暫存器的方法,其中該標準命令為28bit標準命令,該無用輸入參數為擴張輸入參數。
全文摘要
本發明是有關于一種讀寫序列進階技術接附規格裝置內非標準暫存器的方法,是設定標準命令的無用輸入參數為執行參數,當SATA主機控制單元接收標準命令時,將執行參數與標準命令轉換為輸入訊框資訊結構,并傳送予SATA裝置,供SATA裝置偵測執行參數以讀取對應的非標準暫存器的值并儲存至SATA裝置的輸出暫存器,且轉換非標準暫存器的值為輸出訊框資訊結構,以傳送至SATA主機控制單元,并將非標準暫存器的值儲存于SATA主機控制單元的輸出暫存器后,藉由讀取SATA主機控制單元的該輸出暫存器的值,即可得知該非標準暫存器的值,另外,本發明還提出了寫入資料參數至非標準暫存器的方法。
文檔編號G06F13/38GK1725204SQ20051007965
公開日2006年1月25日 申請日期2005年6月23日 優先權日2005年6月23日
發明者王嘉豪, 賴彥伯 申請人:威盛電子股份有限公司