亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于重寫在磁盤驅(qū)動器中執(zhí)行的程序的方法和裝置的制作方法

文檔序號:6751186閱讀:204來源:國知局
專利名稱:用于重寫在磁盤驅(qū)動器中執(zhí)行的程序的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及包括記錄了數(shù)據(jù)的磁盤介質(zhì)的磁盤驅(qū)動器,具體來說,涉及用于重寫在磁盤驅(qū)動器中執(zhí)行的程序的方法和裝置。
背景技術(shù)
磁盤驅(qū)動器包括記錄了數(shù)據(jù)的磁盤介質(zhì)。磁盤驅(qū)動器通常連接到利用此驅(qū)動器的主機系統(tǒng)。主機系統(tǒng)是利用磁盤驅(qū)動器作為輔助存儲器(大容量存儲器)的電子設(shè)備并由個人計算機代表。磁盤驅(qū)動器執(zhí)行各種過程,包括在磁盤介質(zhì)上記錄數(shù)據(jù)以及從介質(zhì)中讀取數(shù)據(jù)。這些過程是通過允許磁盤驅(qū)動器中提供的CPU執(zhí)行預先確定的程序(控制程序)來實現(xiàn)的。此程序一般存儲在磁盤驅(qū)動器中提供的非易失存儲器中。
對可以重寫存儲在非易失存儲器中的程序的需求越來越強烈。最近的磁盤驅(qū)動器使用可重寫的非易失存儲器來存儲程序(例如,請參考日本專利申請KOKAI Publication No.2000-99270)。這樣的非易失存儲器可以是快閃ROM(只讀存儲器)。
一般而言,要重寫存儲在磁盤驅(qū)動器中的可重寫非易失存儲器中的程序,主機系統(tǒng)需要執(zhí)行如下所述的過程。首先,主機系統(tǒng)執(zhí)行一個命令以將新程序傳輸?shù)酱疟P驅(qū)動器。隨后,主機系統(tǒng)執(zhí)行一個命令以將傳輸?shù)酱疟P驅(qū)動器的程序?qū)懭氲椒且资Т鎯ζ?。即,緊隨在將待重寫的新程序傳輸?shù)酱疟P驅(qū)動器之后,主機系統(tǒng)將程序?qū)懭氲椒且资Т鎯ζ?。如此,存儲在非易失存儲器中的程序被轉(zhuǎn)換為新程序。在這種狀態(tài)下,主機系統(tǒng)執(zhí)行一個命令以重新激活重寫的程序。即,緊隨在程序被重寫之后,主機系統(tǒng)重新激活整個系統(tǒng)。
為安全地重寫存儲在磁盤驅(qū)動器中的非易失存儲器中的程序,必須建立下列規(guī)則正在對程序進行重寫時,主機系統(tǒng)訪問磁盤驅(qū)動器的目的只能是重寫程序。然而,如果主機系統(tǒng)是個人計算機,計算機通常具有同時執(zhí)行許多任務(wù)(程序)的多任務(wù)功能。在同時執(zhí)行許多任務(wù)的環(huán)境中重寫存儲在磁盤驅(qū)動器中的非易失存儲器中的程序是有危險的。
在現(xiàn)有技術(shù)中,在程序被重寫之后,使用如下所述的方法重新激活整個系統(tǒng),并防止主機系統(tǒng)在正在重寫程序時訪問磁盤驅(qū)動器。首先,提供一個軟盤,在該軟盤中,存儲了啟動程序和用于重寫程序的應用程序。啟動程序具有最低限度的必需的啟動功能。應用程序與主機系統(tǒng)的體系結(jié)構(gòu)(計算機體系結(jié)構(gòu))兼容。此軟盤安裝在主機系統(tǒng)中的軟盤驅(qū)動器中。在這種狀態(tài)下,主機系統(tǒng)執(zhí)行軟盤上的應用程序以根據(jù)上面描述的過程重寫存儲在磁盤驅(qū)動器中的非易失存儲器中的程序。
然而,在上面描述的常規(guī)方法中,程序重寫過程相當復雜。此外,具有各種體系結(jié)構(gòu)的主機系統(tǒng),必須具有系統(tǒng)所特有的程序重寫應用程序。具體來說,磁盤驅(qū)動器至今用于個人計算機之外的領(lǐng)域,如汽車導航裝置的大容量存儲器和視聽(AV)裝置的大容量存儲器。即,利用磁盤驅(qū)動器的主機系統(tǒng)不一定是主機系統(tǒng)計算機(主機計算機)。此外,主機系統(tǒng)可以使用各種體系結(jié)構(gòu)。因此,上述問題是明顯的。
此外,利用上面描述的常規(guī)方法,緊隨在程序被重寫之后,整個系統(tǒng)都必須重新激活。因此,在普通的操作系統(tǒng)上難以運行程序重寫應用程序。相應地,利用常規(guī)方法,使用存儲了啟動程序的軟盤執(zhí)行程序重寫應用程序,而不必依靠操作系統(tǒng)。然而,利用磁盤驅(qū)動器的所有的最近的主機系統(tǒng)都沒有軟盤驅(qū)動器。因此,難以重寫在沒有軟盤驅(qū)動器的主機系統(tǒng)利用的磁盤驅(qū)動器上執(zhí)行的程序。

發(fā)明內(nèi)容
本發(fā)明的一個目標是提供用于重寫在磁盤驅(qū)動器中執(zhí)行的程序的方法和裝置。
根據(jù)本發(fā)明的一個實施例,提供一種程序重寫方法,用于重寫存儲在磁盤驅(qū)動器中的非易失存儲器中的程序,根據(jù)該程序執(zhí)行包括訪問磁盤介質(zhì)之類的控制。此方法包括在從主機系統(tǒng)接收到程序傳輸命令之后將用于傳輸程序的程序傳輸命令指定的程序?qū)懭氲酱疟P介質(zhì),當磁盤驅(qū)動器接通電源之后,根據(jù)存儲在非易失存儲器中的程序執(zhí)行激活過程以激活磁盤驅(qū)動器。執(zhí)行激活過程包括根據(jù)程序傳輸命令使用寫入到磁盤介質(zhì)中的程序重寫存儲在非易失存儲器中的程序。
在隨后的描述中將闡述本發(fā)明的其他目標和優(yōu)點,經(jīng)過描述,這些目標和優(yōu)點將變得顯而易見,也可以通過實踐本發(fā)明來對其進行了解。本發(fā)明的目標和優(yōu)點可以通過下文中特別指出的手段和它們的組合來實現(xiàn)和獲得。


本說明書收入的并構(gòu)成本說明書的一部分的

了本發(fā)明的目前優(yōu)選的實施例,與上文給出的一般說明以及下面給出的實施例的詳細說明一起,用于說明本發(fā)明的原理。
圖1是顯示根據(jù)本發(fā)明的一個實施例的硬盤驅(qū)動器的配置的方框圖;圖2是顯示CPU地址空間的映射的示例的圖表;圖3是說明圖2中的監(jiān)視程序執(zhí)行的過程的流程圖;圖4A和4B是說明圖2中的主程序43的在接通電源時執(zhí)行重置過程的那一部分執(zhí)行的過程的流程圖;圖5是說明圖2中的主程序重寫例程42執(zhí)行的過程的流程圖;圖6是說明圖2中的主程序43包含的空循環(huán)執(zhí)行的過程的流程圖;以及圖7是說明圖2中的主程序43包含的一種命令處理例程執(zhí)行的過程的流程圖。
具體實施例方式
下面將對本發(fā)明應用于硬盤驅(qū)動器(磁盤驅(qū)動器)的實施例進行描述。圖1是顯示根據(jù)本發(fā)明的一個實施例的硬盤驅(qū)動器(以下簡稱“HDD”)的配置的方框圖。在圖1中,磁盤(磁盤介質(zhì))11具有兩個磁盤表面頂面和底面。磁盤11的兩個磁盤表面的至少一個磁盤表面,例如,兩個磁盤表面構(gòu)成了用磁性方法記錄數(shù)據(jù)的記錄面。頭(磁頭)12如此排列以便對應于磁盤11的相應記錄面。磁頭12用于將數(shù)據(jù)寫入磁盤介質(zhì)11(數(shù)據(jù)記錄)和從磁盤介質(zhì)11讀取數(shù)據(jù)(數(shù)據(jù)重現(xiàn))。在圖1中的配置中,采用了包括單個磁盤11的HDD。然而,HDD中可以堆積許多磁盤11。
磁盤11由主軸電機(以下簡稱“SPM”)高速旋轉(zhuǎn)。每個磁頭12都連接到傳動器(滑架)14作為磁頭移動機制。當傳動器14旋轉(zhuǎn)時,磁頭12在磁盤11的徑向上移動。磁頭12如此位于目標磁道上。傳動器14具有音圈電機(以下簡稱“VCM”)15,充當傳動器14的驅(qū)動源。傳動器14由VCM 15驅(qū)動。SPM 13和VCM15由電機驅(qū)動器IC(集成電路)16提供的相應的驅(qū)動電流(SPM電流和VCM電流)驅(qū)動。電機驅(qū)動器IC 16由一個芯片組成,并在CPU 17的控制下驅(qū)動SPM 13和VCM 15。電機驅(qū)動器IC 16給SPM 13提供SPM電流,電流量由CPU 17指定以便在預先確定的轉(zhuǎn)速范圍內(nèi)旋轉(zhuǎn)SPM 13。SPM 13在預先確定的轉(zhuǎn)速范圍內(nèi)旋轉(zhuǎn)的狀態(tài)叫做“穩(wěn)定轉(zhuǎn)動態(tài)”(“額定轉(zhuǎn)動態(tài)”)。電機驅(qū)動器IC 16給VCM 15提供VCM電流,電流量由CPU 17指定以便在磁盤11上的目標位置定位磁頭12。
CPU 17是HDD 1的主控制器。CPU 17以時分方式執(zhí)行HDD1的電機驅(qū)動器IC 16之外的元素的控制和電機驅(qū)動器IC的控制。CPU 17連接到CPU總線(CPU-BUS)18??扉WROM(以下簡稱“FROM”)19、RAM(以下簡稱“CPU-RAM”)20、磁盤控制器(以下簡稱“HDC”)21和門陣列22連接到CPU總線18。FROM 19是可重寫非易失存儲器。FROM 19存儲了由CPU 17執(zhí)行的程序。CPU-RAM 20的存儲區(qū)用于,例如,存儲CPU 17使用的變量。門陣列22生成控制HDD 1所要求的信號。
HDC 21不僅連接到CPU總線18,而且還連接到門陣列22,讀取/寫入IC 24,以及緩沖RAM 25。HDC 21還通過主機系統(tǒng)接口3連接到主機系統(tǒng)2。主機系統(tǒng)2是利用HDD 1的電子設(shè)備并由個人計算機代表。HDC 21和門陣列22的控制寄存器(HDC寄存器和門陣列寄存器)分別被分配給CPU 17的地址空間中的一個區(qū)域。CPU 17通過執(zhí)行使用此區(qū)域的讀取或?qū)懭雭砜刂艸DC 21或門陣列22。HDC 21具有接口控制功能、磁盤控制功能和緩沖控制功能。HDC 21使用接口控制功能來控制由主機系統(tǒng)2傳輸?shù)拿?讀取/寫入及其他命令)的接收和主機系統(tǒng)2和HDC 21之間的數(shù)據(jù)傳輸。HDC 21使用磁盤控制功能來控制磁盤11和HDC 21之間的數(shù)據(jù)傳輸。HDC 21使用緩沖控制功能來控制緩沖RAM 25。
磁頭12連接到磁頭IC(前置放大器電路)23。磁頭IC 23具有用于放大由磁頭12讀取的讀出信號的讀放大器(未顯示),和將寫數(shù)據(jù)轉(zhuǎn)換為寫電流的寫放大器(未顯示)。磁頭IC 23連接到讀取/寫入IC(讀取/寫入信道)。讀取/寫入IC 24執(zhí)行各種信號處理。這些信號處理包括讀出信號的A/D(模擬-數(shù)字)轉(zhuǎn)換過程、對寫數(shù)據(jù)進行編碼的過程,以及對讀取數(shù)據(jù)進行解碼的過程。
在HDD 1中,當執(zhí)行由主機系統(tǒng)2提供的讀命令時,訪問磁盤11上的對應于由此命令指定的邏輯地址的物理地址指出的區(qū)域。如此,磁頭12讀取磁盤11上的此區(qū)域記錄的數(shù)據(jù)信號。然后,磁頭IC放大由磁頭12讀取的信號(讀信號)。讀取/寫入IC 24對放大的信號進行A/D轉(zhuǎn)換,然后對轉(zhuǎn)換后的信號進行解碼。HDC 21根據(jù)來自門陣列22的控制信號處理由讀取/寫入IC 24解碼的數(shù)據(jù)。如此,生成了要傳輸?shù)街鳈C系統(tǒng)的數(shù)據(jù)(讀取數(shù)據(jù))。此數(shù)據(jù)存儲在緩沖RAM 25中,然后傳輸?shù)街鳈C系統(tǒng)2。
另一方面,當執(zhí)行來自主機系統(tǒng)2的寫入命令時,由主機系統(tǒng)2傳輸?shù)紿DC 21的數(shù)據(jù)(寫數(shù)據(jù))存儲在緩沖RAM 25中。HDC 21根據(jù)來自門陣列22的控制信號傳輸將存儲在緩沖RAM中的寫數(shù)據(jù)傳輸?shù)阶x取/寫入IC 24。讀取/寫入IC 24傳輸?shù)膶憯?shù)據(jù)是經(jīng)過編碼的。通過磁頭IC 23將編碼的寫數(shù)據(jù)傳輸?shù)酱蓬^12。如此,磁頭12寫入磁盤11上的由對應于由上述命令指定的邏輯地址的物理地址指出的區(qū)域的寫數(shù)據(jù)。
圖2顯示了CPU地址空間映射的一個示例。CPU地址空間映射顯示了連接到CPU總線18的各種設(shè)備和這些設(shè)備被分配到的CPU地址空間30中的區(qū)域之間的對應關(guān)系。在圖2中的示例中,F(xiàn)ROM 19和CPU-RAM 20分別被分配給CPU地址空間30的區(qū)域31和32。此外,HDC 21和門陣列22的控制寄存器(HDC寄存器和門陣列寄存器)分別被分配給CPU地址空間30的區(qū)域33和34。如此,CPU 17可以使用與存儲器存取使用的方法相同的方法從這些設(shè)備接收輸入,并將輸出傳輸?shù)竭@些設(shè)備。
被分配了FROM 19的CPU地址空間30的區(qū)域31大致被分成監(jiān)視程序區(qū)域51、主程序區(qū)域52和參數(shù)區(qū)域53。在CPU 17上運行的監(jiān)視程序41存儲在監(jiān)視程序區(qū)域51。在CPU 17上運行的主程序重寫例程42和主程序43存儲在主程序區(qū)域52。主程序重寫例程42用于訪問FROM 19。在本實施例中,主程序重寫例程42伴隨主程序43。當主程序43被重寫時,主程序重寫例程42也被重寫。然而,在重寫之前存在的主程序重寫例程42不一定不同于在重寫之后存在的主程序重寫例程42。此外,稍后將描述的重寫請求標志44、檢查代碼45和校驗和46也存儲在主程序區(qū)域52。參數(shù)集47存儲在參數(shù)區(qū)域53中。參數(shù)集47是一組參數(shù),并包括有關(guān)HDD 1的預先確定的部分的設(shè)置信息和HDD 1使用的各種優(yōu)化數(shù)據(jù)。
從主程序分別提供監(jiān)視程序41以只實現(xiàn)HDD 1的所需的最小輸入和輸出。所需的最小輸入和輸出對應于根據(jù)來自主機系統(tǒng)2的用于重寫主程序的特定命令從主機系統(tǒng)2接收主程序,然后將主程序?qū)懭朐谥鞒绦騾^(qū)域52。只有在不能正常地根據(jù)主程序重寫例程42和主程序43進行主程序重寫的情況下,才根據(jù)監(jiān)視程序41對主程序進行重寫,而不利用磁盤11。即使主程序43不存在,HDD 1(CPU 17)也可以通過使用監(jiān)視程序41按照主機系統(tǒng)2的指示重寫主程序。
主程序43用于控制整個HDD 1。此控制包括控制對磁盤11的訪問。具體地說,主程序43用于控制,例如,HDD 1的預先確定的硬件組件。硬件組件可以是IC。IC包括電機驅(qū)動器IC 16、磁頭IC23和讀取/寫入IC 24。主程序43還用于執(zhí)行的磁頭定位控制以定位磁頭12在磁盤11上的目標位置。主程序43進一步用于解釋和執(zhí)行由主機系統(tǒng)2傳輸?shù)拿???梢越oHDD 1添加功能或可以通過重寫主程序來改進現(xiàn)有的功能。
向其分配了CPU-RAM 20的CPU地址空間30的區(qū)域32大致被分成狀態(tài)保存區(qū)域61,用于狀態(tài)保存管理標志的區(qū)域62,以及變量區(qū)域63。變量區(qū)域63主要用于存儲出現(xiàn)在監(jiān)視程序41和主程序43中的變量。然而,如果FROM 19的存儲內(nèi)容被刪除,變量區(qū)域63也可以用作臨時的程序存儲區(qū)域。這是因為如果FROM 19的存儲內(nèi)容被刪除,則不可能從FROM讀取數(shù)據(jù)或在FROM 19中寫數(shù)據(jù)。
現(xiàn)在,將參考圖3、4A和4B中的流程圖,對圖1中的HDD 1在接通電源時執(zhí)行的操作(在正常激活時執(zhí)行的操作)進行描述。圖3是說明監(jiān)視程序41執(zhí)行的過程的流程圖。圖4A和4B是說明主程序43的在接通電源時執(zhí)行重置過程的那一部分執(zhí)行的過程的流程圖。當HDD 1接通電源時,CPU 17初始化HDD 1中的硬件,然后開始在步驟101中執(zhí)行監(jiān)視程序41。CPU 17首先清除(重置)CPU-RAM 20中排列的狀態(tài)保存管理標志62(步驟102)。狀態(tài)保存管理標志62稍后將被主程序43引用。在清除狀態(tài)保存管理標志62之后,CPU 17執(zhí)行為了執(zhí)行監(jiān)視程序41所需要執(zhí)行的最小初始化過程(步驟103)。隨后,CPU 17讀取主程序區(qū)域52中排列的檢查代碼45。根據(jù)檢查代碼45,CPU 17判斷主程序區(qū)域52是否存在有效的主程序43(步驟104)。
如上所述,檢查代碼45存在于主程序區(qū)域52。相應地,當主程序43被刪除以便進行重寫時,同時也刪除檢查代碼45。比如,檢查代碼45的值是0FFFFH。此值的末尾的H表示此值是十六進制數(shù)。在進行上述刪除操作之后,狀態(tài)被轉(zhuǎn)換為如下所述的一種狀態(tài),以將檢查代碼45更新為一個特定值(比如,01234H)。在此狀態(tài)下,一個新的主程序43被寫入主程序區(qū)域52,然后確認此主程序43可以正確地執(zhí)行。
如此,假設(shè)檢查代碼45具有特定值(01234H),在上述步驟104中,判斷主程序43存在。在這種情況下,監(jiān)視程序41轉(zhuǎn)到主程序43(步驟105)。另一方面,如果檢查代碼45具有不同于特定值的值,則判斷主程序43不存在。在這種情況下,CPU 17進入監(jiān)視程序的命令等待循環(huán)(步驟113),以便允許監(jiān)視程序41執(zhí)行所需的最小輸入和輸出。此命令等待循環(huán)與稍后描述的主程序43的命令等待循環(huán)(空循環(huán))不同。
監(jiān)視程序41不僅包括接通電源入口(步驟101),而且還包括特定冷啟動入口,如稍后描述的(步驟111)。這樣對監(jiān)視程序41進行配置,以便如果使用冷啟動入口執(zhí)行(步驟111),在狀態(tài)保存管理標志62在CPU-RAM 20設(shè)置之后,控制被轉(zhuǎn)到步驟103。在這種情況下,除了狀態(tài)保存管理標志62的操作之外,還執(zhí)行類似于在接通電源時執(zhí)行的操作。
這里,假設(shè)監(jiān)視程序41轉(zhuǎn)到主程序43(步驟105)。即,假設(shè)控制被轉(zhuǎn)到主程序43(步驟201)。在這種情況下,CPU 17根據(jù)主程序43執(zhí)行初始化過程(步驟202)。此初始化過程包括HDD 1的每個部分(每個IC)的初始化和CPU-RAM 20的變量區(qū)域63的初始化。然而,CPU-RAM 20中的狀態(tài)保存管理標志62和狀態(tài)保存區(qū)域61不能初始化。
此外,假設(shè)設(shè)置了狀態(tài)保存管理標志62,CPU 17不更改主機系統(tǒng)接口3中的信號線(接口信號)的狀態(tài),這些狀態(tài)可以由主機系統(tǒng)2識別。主機系統(tǒng)接口3可以是,比如,ATA接口。主機系統(tǒng)接口3包含BSY(忙)信號、DASP(Device Active Slave Present)信號和RESET信號。實際上,BSY不是主機系統(tǒng)接口3所特有的信號。即,BSY是狀態(tài)寄存器中的特定位(BSY位),該位可以由主機系統(tǒng)2通過主機系統(tǒng)接口3從HDD 1讀取。在本實施例中,為簡化描述,由BSY位表示的狀態(tài)被當做表示主機系統(tǒng)接口3中的BSY的特定接口信號的狀態(tài)。BSY表示連接到主機系統(tǒng)接口3的設(shè)備(在這種情況下,HDD 1)不能從主機系統(tǒng)2接收任何命令。DASP是連接到主機系統(tǒng)接口3的設(shè)備使用的信號,如果它是從屬(從屬設(shè)備),以通知從屬設(shè)備所屬的主(主設(shè)備)。此通知可以通過激活DASP信號來執(zhí)行。在命令被接收之后和命令結(jié)束之前,當主機系統(tǒng)2訪問磁盤時,DASP信號也處于活動狀態(tài)。RESET是用于重置連接到主機系統(tǒng)接口3的設(shè)備(HDD 1)的信號。當主機系統(tǒng)2接通電源時,RESET信號(重置信號)被主機系統(tǒng)2設(shè)置為活動。
在結(jié)束初始化過程(步驟202)之后,CPU 17判斷主程序區(qū)域52中的檢查代碼45是否匹配特定值(01234H)(步驟203)。如果檢查代碼45不匹配特定值,CPU 17判斷檢查代碼45的值不正確。換句話說,CPU 17判斷主程序區(qū)域52中沒有有效的主程序43,主程序43被完全地重寫。在這種情況下,CPU 17將控制轉(zhuǎn)到步驟231。步驟231構(gòu)成了重寫主程序的一部分操作。相反,如果檢查代碼45匹配特定值,則CPU 17轉(zhuǎn)到步驟204以檢查狀態(tài)保存管理標志62的值。
如果沒有設(shè)置狀態(tài)保存管理標志62,則CPU 17轉(zhuǎn)到步驟205以執(zhí)行正常的激活操作。在步驟205中,CPU 17等待主機系統(tǒng)2清除主機系統(tǒng)接口3中的復位信號(RESET信號)。然后,一旦復位信號被清除,CPU 17就啟動激活操作以激活SPM 13(步驟206)。此激活操作通過控制電機驅(qū)動器IC 16來執(zhí)行。在這種情況下,在SPM 13到達穩(wěn)定的轉(zhuǎn)動態(tài)之前需要一定的時間。如此,在啟動激活操作之后,CPU 17轉(zhuǎn)到下一步驟207,而不等待到達穩(wěn)定的轉(zhuǎn)動態(tài)。因此,與激活SPM 13的過程同時執(zhí)行從步驟207開始的多個步驟。
在步驟207中,CPU 17判斷連接到主機系統(tǒng)接口3的每個設(shè)備是用作主設(shè)備還是從屬設(shè)備,如下所述。其中一個設(shè)備是HDD 1。首先,如果HDD 1被用作從屬設(shè)備,則CPU 17激活主機系統(tǒng)接口3中的DASP信號以便通知主設(shè)備有關(guān)存在HDD 1的信息。相反,如果HDD 1不用作從屬設(shè)備,則CPU 17檢測主機系統(tǒng)接口3中的DASP的狀態(tài),以檢查是否存在任何從屬設(shè)備。然后,CPU 17判斷連接到主機系統(tǒng)接口3的每個設(shè)備是用作主設(shè)備還是從屬設(shè)備。
現(xiàn)在,將描述在上述步驟204中判斷設(shè)置了狀態(tài)保存管理標志62的情況下執(zhí)行的操作。首先,狀態(tài)保存管理標志62不在接通電源之后立即設(shè)置。即,在HDD 1的狀態(tài)建立之后,如果在內(nèi)部再次執(zhí)行重置操作,則設(shè)置狀態(tài)保存管理標志62。在這種情況下,HDD 1的狀態(tài)包括主或從屬設(shè)置狀態(tài)和主機系統(tǒng)接口3中的信號線的相關(guān)狀態(tài),以及主機系統(tǒng)2指定的模式。這些狀態(tài)(設(shè)置狀態(tài))必須保持。如此,如果設(shè)置了狀態(tài)保存管理標志62,則執(zhí)行步驟221或213而不是步驟205到207,如稍后所描述的。在步驟221中,執(zhí)行一個操作以激活SPM 13,如在上述步驟206中的情況一樣。此激活操作不必等待清除主機系統(tǒng)接口3中的復位信號即可啟動。此外,在本實施例中,主或從屬設(shè)置狀態(tài)必須保持。因此,不執(zhí)行對應于步驟207的過程。主或從屬設(shè)置狀態(tài)之外的HDD 1的狀態(tài)通過將以前保存的內(nèi)容重新設(shè)置到狀態(tài)保存區(qū)域61來恢復。在步驟213中恢復HDD 1的狀態(tài)。
當在步驟221中開始激活SPM 13的操作時,CPU執(zhí)行自診斷過程(步驟208)。自診斷過程包括在FROM 19、CPU-RAM 20和緩沖RAM 25上的檢查。檢查FROM 19的過程包括計算主程序區(qū)域52的校驗和。對應于存儲在主程序區(qū)域52中的數(shù)據(jù)的校驗和46存儲在區(qū)域52。然而,存儲在主程序區(qū)域52中的數(shù)據(jù)中包含的重寫請求標志41和檢查代碼45不涉及校驗和46的計算。此外,在檢查CPU-RAM 20時,必須避免銷毀狀態(tài)保存管理標志62和狀態(tài)保存區(qū)域61的內(nèi)容。
在步驟208中完成自診斷過程之后,CPU 17等待SPM 13以到達穩(wěn)定的轉(zhuǎn)動態(tài)(步驟209)。一旦SPM 13到達穩(wěn)定的轉(zhuǎn)動態(tài),CPU17就根據(jù)重寫請求標志44的狀態(tài)(值)判斷是否已經(jīng)請求重寫主程序(步驟210)。如果重寫請求標志44具有初始化的狀態(tài)(0FFFFH),CPU 17就判斷沒有請求重寫主程序。在這種情況下,CPU 17轉(zhuǎn)到步驟211以便執(zhí)行正常的激活。相反,如果重寫請求標志44的狀態(tài)不同于初始化的狀態(tài),CPU 17就判斷已經(jīng)請求了主程序的重寫。在這種情況下,CPU 17執(zhí)行從步驟251開始執(zhí)行主程序重寫過程。稍后將描述主程序重寫過程。
在步驟211中,CPU 17首先讀取磁盤11上記錄的系統(tǒng)數(shù)據(jù),以執(zhí)行正常的激活。系統(tǒng)數(shù)據(jù)包括主機系統(tǒng)2設(shè)置的缺陷扇區(qū)列表和信息。缺陷扇區(qū)列表顯示一個磁盤11上存在的缺陷扇區(qū)的列表。CPU17允許HDD 1的狀態(tài)以反映從磁盤11讀取的系統(tǒng)數(shù)據(jù)。然后,CPU 17判斷在CPU-RAM 20的預先確定的區(qū)域中是否已經(jīng)設(shè)置了狀態(tài)保存管理標志62(步驟212)。如果設(shè)置了狀態(tài)保存管理標志62,CPU就允許HDD 1的狀態(tài)反映CPU-RAM 20的狀態(tài)保存區(qū)域61的內(nèi)容(步驟213)。即,CPU 17根據(jù)讀取的系統(tǒng)數(shù)據(jù)和狀態(tài)保存區(qū)域61的內(nèi)容恢復HDD 1的狀態(tài)。在這種情況下,在步驟211中設(shè)置的內(nèi)容可以用狀態(tài)保存區(qū)域61的內(nèi)容改寫。
然后,CPU 17執(zhí)行重置結(jié)束過程(步驟214)。重置結(jié)束過程將主機系統(tǒng)接口3中的預先確定的信號線的狀態(tài)和HDC 21和門陣列22的控制寄存器的狀態(tài)設(shè)置為預先確定的值。此外,還允許主機系統(tǒng)2進行中斷。重置結(jié)束過程允許HDD 1(HDC 21)從主機系統(tǒng)接口3接收命令。如此,CPU 17清除狀態(tài)保存管理標志62(步驟215)并使用主機系統(tǒng)接口3中的BSY信號清除HDD 1的忙狀態(tài)(步驟216)。然后,CPU 17進入空循環(huán)以等待命令(步驟217)。HDD 1緊隨在接通電源之后和在步驟215中清除忙狀態(tài)之前維持忙狀態(tài)。
現(xiàn)在,將參考圖6和7中的流程圖,描述圖1中的HDD 1執(zhí)行的命令過程。圖6是說明主程序43中的空循環(huán)(命令等待循環(huán))執(zhí)行的過程的流程圖。圖7是說明主程序43中一種命令處理例程執(zhí)行的過程的流程圖。如前所述,一旦根據(jù)主程序在接通電源時執(zhí)行的重置過程完成,HDD 1就進入空循環(huán)(步驟217)。如此控制就轉(zhuǎn)到步驟401。在從步驟401開始的空循環(huán)中,HDD 1可以從主機系統(tǒng)2接收命令。在空循環(huán)中,在主機系統(tǒng)2發(fā)出命令之前以相應的時間間隔執(zhí)行預先確定的過程。在這種情況下,預先確定的過程包括HDD 1的節(jié)省電源的過程和自診斷過程。
當控制轉(zhuǎn)到空循環(huán)中的步驟401時,CPU 17獲得一個定時器值(步驟402)。然后CPU 17根據(jù)定時器值判斷在此期間是否執(zhí)行任何過程(步驟403)。如果在此期間執(zhí)行任何過程,CPU 17就執(zhí)行此過程(步驟404)并返回到步驟402。相反,如果在此期間不執(zhí)行任何過程,CPU 17就不執(zhí)行任何操作,并將控制轉(zhuǎn)到步驟402。CPU17重復從步驟402開始的過程。
空循環(huán)用于等待來自主機系統(tǒng)2的命令。如此,即使空循環(huán)執(zhí)行處理,也必須響應來自主機系統(tǒng)2的命令。相應地,在本實施例中,HDC 21在接收到來自主機系統(tǒng)2的命令時,請求CPU 17執(zhí)行一個中斷過程。為響應此請求,CPU 17暫停正在執(zhí)行的過程,并立即將HDD 1設(shè)置為忙狀態(tài)。然后,CPU 17使程序從空循環(huán)轉(zhuǎn)到圖7顯示的命令處理例程。即,在空循環(huán)執(zhí)行處理的過程中在接收到來自主機系統(tǒng)2的命令時,CPU 17執(zhí)行中斷過程以將控制轉(zhuǎn)到命令處理例程中的步驟501。
在命令處理例程期間,CPU 17從HDC 21接收到主機系統(tǒng)2發(fā)出的命令以確定命令的類型(步驟502或511)。如果主機系統(tǒng)2發(fā)出主程序傳輸命令(步驟502),CPU 17轉(zhuǎn)到步驟503。另一方面,如果主機系統(tǒng)2發(fā)出主程序?qū)懭朊?步驟511),CPU 17轉(zhuǎn)到步驟512。如果主機系統(tǒng)發(fā)出了不同于主程序傳輸命令或主程序?qū)懭朊畹拿?,則CPU 17轉(zhuǎn)到步驟521以執(zhí)行該命令。在這種情況下,假設(shè)CPU 17轉(zhuǎn)到步驟503或521以執(zhí)行不同于主程序?qū)懭朊畹拿?。在這種情況下,在完成此命令之后,CPU 17將控制轉(zhuǎn)到步驟508。在步驟508中,CPU 17執(zhí)行命令結(jié)束過程。命令結(jié)束過程分別包括HDC 21和門陣列22的控制寄存器的設(shè)置值,并清除忙狀態(tài)。在執(zhí)行命令結(jié)束過程之后,CPU 17再次轉(zhuǎn)到空循環(huán)(步驟509)。
現(xiàn)在,將參考圖3、4A、4B、6和7中的流程圖以及圖5中的流程圖以及圖5中的流程圖描述圖1中在HDD 1中接通電源時執(zhí)行的重寫主程序的過程。圖5是顯示由主程序重寫例程42執(zhí)行的過程的流程圖,該過程是在使用之前復制到CPU-RAM 20。在本實施例中,主程序的重寫具有兩個主要特征。第一個特征是主機系統(tǒng)2傳輸?shù)闹鞒绦蚋鶕?jù)主機系統(tǒng)2提供的主程序傳輸命令被寫入到磁盤11。主程序?qū)懭氲酱疟P11的過程與從主機系統(tǒng)進行的正常的數(shù)據(jù)傳輸(數(shù)據(jù)寫入)類似。第二個特征是下次HDD 1接通電源時,讀取寫入到磁盤11的主程序,然后寫入到FROM 19的主程序區(qū)域52。
假設(shè)主機系統(tǒng)向HDD 1發(fā)出主程序傳輸命令。此主程序傳輸命令由HDD 1中的HDC 21接收。然后,開始對接收到的命令進行處理,如前面參考圖7中的流程圖所描述的(步驟501)首先,判斷是否已經(jīng)收到主程序傳輸命令(步驟502)。如果在此示例中主程序傳輸命令已經(jīng)收到,則CPU 17將控制轉(zhuǎn)到步驟503。在步驟503中,主程序傳輸命令指定的數(shù)據(jù)(主程序)由HDC 21收到,然后存儲在緩沖RAM 25中。然后,CPU 17根據(jù)校驗和的計算結(jié)果判斷存儲在緩沖RAM 25中的數(shù)據(jù)是否為主程序傳輸命令(步驟504)指定的正確的(有效的)主程序。如果存儲在緩沖RAM 25中的數(shù)據(jù)不是有效的主程序,CPU 17就將結(jié)束狀態(tài)設(shè)置為表示“反?!钡闹?步驟513)。如此,CPU 17中止收到的命令(主程序傳輸命令)的處理(步驟508)。然后CPU 17進入空循環(huán)(步驟509)。
另一方面,如果存儲在緩沖RAM 25中的數(shù)據(jù)是有效的主程序,則CPU 17提供諸如將數(shù)據(jù)(主程序)寫入到磁盤11之類的控制(步驟505)。然后,CPU 17設(shè)置存儲在FROM 19的主程序區(qū)域52中的重寫請求標志44(步驟506)。在存儲在緩沖RAM 25中的數(shù)據(jù)(主程序)被寫入磁盤11之前,在步驟302中重寫請求標志44被初始化(重置)到0FFFFH(比如)。如果重寫請求標志44在0FFFFH設(shè)置,這意味著沒有請求重寫主程序。如此CPU 17將主程序?qū)懭氲酱疟P11,然后在上述步驟506中將重寫請求標志44設(shè)置到0FFFFH之外的值。如此,重寫請求標志44轉(zhuǎn)到表示請求了重寫主程序的狀態(tài)。在執(zhí)行步驟506之后,CPU 17設(shè)置結(jié)束狀態(tài)以表示“正?!?步驟507)。如此,CPU 17正常地結(jié)束收到的命令(主程序傳輸命令)的處理(步驟508)。然后CPU 17進入空循環(huán)(步驟509)。
假設(shè)在空循環(huán)期間,到主機系統(tǒng)2(和HDD 1)的電源被中斷,隨后恢復。在這種情況下,CPU 17啟動與主程序43的重寫關(guān)聯(lián)的激活操作,如下所述。首先,當HDD 1接通電源(步驟101)時,CPU 17執(zhí)行步驟102到105和201到209,與前面描述的在伴隨接通電源的正常激活期間執(zhí)行的操作的情況相同。然后在步驟210中,CPU 17引用重寫請求標志44的狀態(tài)以根據(jù)這狀態(tài)判斷是否請求了主程序的重寫。
在正常激活的情況下,重寫請求標志44被初始化到0FFFFH。在這種情況下,判斷沒有請求重寫主程序??刂妻D(zhuǎn)到步驟211。另一方面,在此示例中,已經(jīng)設(shè)置了重寫請求標志44,因為已經(jīng)執(zhí)行了前面描述的主程序傳輸命令。如果在此狀態(tài)中HDD 1接通電源,則執(zhí)行與正常激活執(zhí)行的操作不同的操作,如下所述。首先,在上述步驟210中,判斷請求了主程序的重寫。在這種情況下,CPU 17轉(zhuǎn)到步驟251以便重寫當前寫入在FROM 19 52的主程序區(qū)域52的主程序43。在步驟251中,CPU 17提供諸如讀取寫入到磁盤11的主程序然后將它存儲在緩沖RAM 25的變量區(qū)域63之類的控制。在這種情況下,變量區(qū)域63被用作臨時程序存儲區(qū)域。
當正在從磁盤11讀取主程序時,可以執(zhí)行由于讀錯誤而產(chǎn)生的重試過程。在這種情況下,讀取主程序需要很多時間。然后重寫存儲在主程序區(qū)域52中的主程序43可以延遲以延長總激活時間。如此,本實施例測量從HDD 1接通電源直到主程序被完全讀出所需要的時間(持續(xù)時間)。如果測量的持續(xù)時間超過預先確定的時間(指定的時間),則不重寫主程序43。如此,CPU 17將完成主程序的讀取的持續(xù)時間與指定的時間進行比較(步驟252)。如果完成讀取的持續(xù)時間超過指定的時間,CPU 17將控制轉(zhuǎn)到步驟211。這是因為CPU17執(zhí)行的操作類似于在沒有請求重寫主程序的情況下執(zhí)行的操作(即,類似于正常激活執(zhí)行的操作的操作)。如此,雖然主程序43的重寫至少延遲到下次接通電源,可以阻止處理時間無用地增大。還可以使用計時器,該計時器計算接通電源(或開始讀取主程序)之后的指定的時間。如果甚至在計時器計算指定的時間之后沒有完全讀出主程序,使用此計時器可使控制轉(zhuǎn)到步驟211。
如果主程序在指定的時間內(nèi)完全讀出,CPU 17就判斷從磁盤11讀取然后存儲在緩沖RAM 25中的主程序是否正常(步驟254和255)。這種判斷可以利用校驗和的計算結(jié)果來進行。如果存儲在緩沖RAM 25中的主程序正常,則CPU 17將轉(zhuǎn)到步驟256。相反,如果存儲在緩沖RAM 25中的主程序反常,CPU 17將控制轉(zhuǎn)到步驟211以便隨后執(zhí)行類似于正常激活執(zhí)行的操作的操作。
如果CPU已經(jīng)轉(zhuǎn)到步驟256,它控制電機驅(qū)動器IC 16以停止驅(qū)動SPM 13以便重寫主程序43。SPM 13的驅(qū)動被停止,因為當主程序43被重寫時,控制SPM 13和VCM 15的例程也被刪除,以使SPM 13和VCM 15不受控制。甚至當CPU 17停止驅(qū)動SPM 13時,SPM 13由于慣性而繼續(xù)旋轉(zhuǎn)。因此,在SPM 13的轉(zhuǎn)速到達預先確定的值之前需要很多時間。因此,緊隨在步驟256中停止驅(qū)動SPM 13之后,CPU 17將控制轉(zhuǎn)到步驟257而不等待SPM13的轉(zhuǎn)速到達預先確定的值。在步驟257中,CPU 17獲得HDD 1的當前設(shè)置狀態(tài)(設(shè)置狀態(tài))。然后CPU 17將表示獲得的設(shè)置狀態(tài)的信息(狀態(tài)信息)保存到CPU-RAM 20中提供的狀態(tài)保存區(qū)域61。在由于將存儲在FROM 19中的主程序43更改到此新程序而使控制被轉(zhuǎn)到新程序43之后,在步驟257中執(zhí)行處理以恢復當前設(shè)置狀態(tài)。
然后,CPU 17將保存到FROM 19的主程序區(qū)域52的主程序重寫例程42復制到CPU-RAM 20的變量區(qū)域63(步驟258)。下面將描述執(zhí)行此過程的理由。首先,要重寫主程序43,需要執(zhí)行重寫的主程序重寫例程42。然而,在對主程序43進行重寫時,整個FROM 19不可訪問。在這種情況下,主程序重寫例程42無法在FROM 19上運行。因此,在本實施例中,應用這樣的布置代替FROM 19,主程序重寫例程42在CPU-RAM 20上運行。因此,在上述步驟258中,主程序重寫例程42被從FROM 19的主程序區(qū)域52復制到CPU-RAM 20的變量區(qū)域63。主程序重寫例程42被配置為在CPU-RAM 20的變量區(qū)域63上運行,以完成主程序重寫過程,然后轉(zhuǎn)到主程序43的開始。
在完全將主程序重寫例程42復制到CPU-RAM 20(步驟258)之后,CPU 17轉(zhuǎn)到CPU-RAM 20的變量區(qū)域63中的特定地址(步驟258)。因此,CPU 17使主程序重寫例程42被復制到CPU-RAM20的變量區(qū)域63以在CPU-RAM 20上運行(步驟259)。CPU 17根據(jù)主程序重寫例程42重寫主程序43,如下所述。
FROM 19的特征在于,在FROM 19中寫入數(shù)據(jù)時,新數(shù)據(jù)無法再寫入到正在寫入第一批數(shù)據(jù)的區(qū)域。即,此區(qū)域中的數(shù)據(jù)必須首先刪除,然后才能在此區(qū)域?qū)懭胄聰?shù)據(jù)。如此,在將控制轉(zhuǎn)到主程序重寫例程42之后,CPU 17刪除FROM 19的主程序區(qū)域52上的所有數(shù)據(jù)(步驟302)。這不僅刪除主程序43而且還刪除主程序重寫例程42、重寫請求標志44、檢查代碼45和校驗和46。然后,CPU 17連續(xù)地將存儲在緩沖RAM 25中的主程序?qū)懭氲紽ROM19的主程序區(qū)域52(步驟303)。如此存儲的程序是新的主程序43。此時,伴隨主程序的主程序重寫例程也寫入到與主程序重寫例程42相同的主程序區(qū)域52。
假設(shè)新主程序43完全正常地寫入(步驟304)。在這種情況下,CPU 17將主程序重寫例程42轉(zhuǎn)到主程序43(步驟305)的開始(步驟201)。另一方面,如果新主程序43沒有正常地寫入(步驟304),CPU 17判斷新主程序43無效。在這種情況下,CPU 17將主程序重寫例程42轉(zhuǎn)到特定冷啟動入口(步驟311)。一旦新主程序43完全正常地寫入,然后控制被轉(zhuǎn)到新主程序43(步驟201),執(zhí)行初始化過程,與前面描述的將監(jiān)視程序41轉(zhuǎn)到主程序43(步驟202)的情況相同。這就允許對HDD 1的每個部分(每個IC)進行初始化和對CPU-RAM 20的變量區(qū)域63進行初始化。然后,CPU 17檢查主程序區(qū)域52中的檢查代碼45(步驟203)。在此階段,還沒有寫入檢查代碼45。即,檢查代碼45仍處于其初始化狀態(tài)。在這種情況下,CPU 17轉(zhuǎn)到步驟231。如上所述,在本實施例中,在重寫主程序43時,使用不同的路徑多次執(zhí)行圖4A和4B中的流程圖中顯示的重置過程部分。如此,重置過程部分的程序結(jié)構(gòu),特別是轉(zhuǎn)移條件,優(yōu)選情況下對新主程序43通用。
在轉(zhuǎn)到步驟231之后,CPU 17測試新主程序43的操作。執(zhí)行的測試包括類似于前面描述的步驟208中執(zhí)行的自診斷過程。測試還包括虛假地發(fā)出命令中斷的過程,以檢查執(zhí)行命令的例程是否操作正確。CPU 17根據(jù)步驟231的測試結(jié)果判斷新主程序43是否操作正常(步驟232)。如果新主程序43操作正常,則CPU 17判斷主程序43被正確地寫入。在這種情況下,CPU 17將特定值(01234H)的檢查代碼45寫入到主程序52(步驟233)。一旦執(zhí)行完步驟233,寫入新主程序43的操作正常地完成。然后,為檢查寫入新主程序43的操作是否正常地完成,CPU 17從其頭部執(zhí)行監(jiān)視程序41(步驟234)。然而,監(jiān)視程序41不轉(zhuǎn)到接通電源入口(步驟101)而是轉(zhuǎn)到上文描述的冷啟動入口(步驟111)。這是因為在正在重寫主程序時主機系統(tǒng)接口3中的信號線的狀態(tài)無法更改,并且因為根據(jù)新主程序43上面的步驟257中保存的HDD 1的設(shè)置狀態(tài)必須恢復。
在轉(zhuǎn)到冷啟動入口(步驟111)之后,CPU 17首先設(shè)置CPU-RAM 20中排列的狀態(tài)保存管理標志62(步驟112)。然后,CPU 17執(zhí)行初始化過程(步驟103),與前面描述的在接通電源時執(zhí)行的操作(步驟101)的情況相同。此操作不同于在接通電源時(或緊隨其后)執(zhí)行的操作,不同點在于,在狀態(tài)保存管理標志62被重置(步驟102)之后不執(zhí)行初始化過程(步驟103),而是在狀態(tài)保存管理標志62被設(shè)置(步驟112)之后執(zhí)行。
在執(zhí)行初始化過程(步驟103)之后,CPU 17判斷主程序區(qū)域52中是否寫入了正確的檢查代碼45(步驟104)。此時,在前面的步驟233中寫入的正確值(01234H)的檢查代碼45位于主程序區(qū)域52。在這種情況下,CPU 17轉(zhuǎn)到步驟105以再次從其頭部執(zhí)行新主程序43(步驟201)。然后,在執(zhí)行初始化過程(步驟202)之后,CPU 17判斷主程序區(qū)域52中是否寫入了正確的檢查代碼45,與上面的步驟104(步驟203)的情況相同。還與上面的步驟104相同,判斷主程序區(qū)域52中是否寫入了正確值(01234H)的檢查代碼45。在這種情況下,CPU 17轉(zhuǎn)到步驟204以判斷是否設(shè)置了狀態(tài)保存管理標志62。
在主程序43從監(jiān)視程序41轉(zhuǎn)移期間執(zhí)行步驟204。在這種情況下,監(jiān)視程序41從冷啟動入口開始(步驟111)。在步驟112,在冷啟動入口之后(步驟111),設(shè)置了狀態(tài)保存管理標志62。相應地,在步驟204中判斷是否設(shè)置了狀態(tài)保存管理標志62。如果設(shè)置了狀態(tài)保存管理標志62,則CPU 17轉(zhuǎn)到步驟221以便防止主機系統(tǒng)接口3中的主或從屬設(shè)置狀態(tài)和信號線的狀態(tài)的變化,如前面所描述。在步驟221中,CPU 17只執(zhí)行SPM 13的激活。隨后,CPU 17執(zhí)行自診斷過程(步驟208),與正常激活的情況相同。然后,一旦SPM13到達穩(wěn)定的轉(zhuǎn)動態(tài)(步驟209),CPU 17根據(jù)重寫請求標志44的值判斷是否已經(jīng)請求重寫主程序(步驟210)。在這種情況下,在步驟302執(zhí)行的刪除操作清除了重寫請求標志44。如此CPU 17判斷還沒有請求重寫主程序。然后,CPU 17讀取磁盤11上記錄的系統(tǒng)數(shù)據(jù),并允許HDD 1的狀態(tài)以反映此數(shù)據(jù)(步驟211),與正常激活的情況相同。
然后,CPU 17判斷是否設(shè)置了狀態(tài)保存管理標志62(步驟212)。在這種情況下,設(shè)置了狀態(tài)保存管理標志62。如此,在重寫主程序之前,CPU 17讀取保存到狀態(tài)保存管理區(qū)域61的狀態(tài)信息(步驟257)。然后它允許HDD 1的當前狀態(tài)以反映由狀態(tài)信息表示的HDD 1的設(shè)置狀態(tài)(步驟213)。即,CPU 17將HDD 1的狀態(tài)恢復到重寫主程序之前的狀態(tài)。在此恢復過程期間,步驟211中設(shè)置的內(nèi)容可以轉(zhuǎn)變?yōu)樵诓襟E213恢復的內(nèi)容。隨后,CPU 17執(zhí)行步驟214到216,與正常激活的情況相同,以便從主機系統(tǒng)2接收命令。然后CPU 17轉(zhuǎn)到空循環(huán)(步驟217)以完成接通電源之后的激活過程,包括主程序43的重寫。
在本實施例中,HDD 1在接通電源之后和在步驟216中執(zhí)行新主程序43以清除忙狀態(tài)之前以及在正在重寫和重新激活主程序時維持忙狀態(tài)。如此,主機系統(tǒng)2簡單地識別在接通電源時激活HDD 1所需要的時間增大。此外,在本實施例中,在步驟207中根據(jù)無變化的主程序43的處理設(shè)置的主或從屬設(shè)置狀態(tài),HDD 1的其他設(shè)置狀態(tài)恢復到重寫之前存在的狀態(tài)。即,在本實施例中,HDD 1的主或從屬設(shè)置狀態(tài)和其他設(shè)置狀態(tài)類似于正常激活期間的狀態(tài)。如此,在本實施例中,可以重寫主程序43,而不會影響主機系統(tǒng)2的操作。
如上所述,在本實施例中,作為在接通電源時執(zhí)行的激活過程的一部分執(zhí)行主程序的重寫。此外,在本實施例中,還可以通過在主程序傳輸命令之后使主機系統(tǒng)2向HDD 1發(fā)出特定命令(主程序?qū)懭朊?重寫主程序。
下面參考圖4B、5和7描述根據(jù)主程序?qū)懭朊钪貙懼鞒绦?。首先,假設(shè)主機系統(tǒng)2已經(jīng)向HDD 1發(fā)出主程序傳輸命令。在這種情況下,在命令處理例程中執(zhí)行主程序傳輸命令,以將主機系統(tǒng)2傳輸?shù)男轮鞒绦驅(qū)懭氲酱疟P11。進一步假設(shè)在主程序傳輸命令之后,主機系統(tǒng)2發(fā)出主程序?qū)懭朊?,然后該命令由HDC 21接收。在這種情況下,CPU 17判斷在圖8中的命令處理例程中HDC 21已經(jīng)接收到主程序?qū)懭朊?步驟511)。然后CPU 17轉(zhuǎn)到主程序43的重置過程部分包含的步驟253(入口A)。在轉(zhuǎn)到步驟253之后,CPU 17重寫存儲在主程序區(qū)域52中的主程序43,與在接通電源時執(zhí)行的主程序的重寫(步驟254到259和301到305)情況相同。然后,一旦主程序43被完全重寫,清除忙狀態(tài)以允許接收命令。
如此,即使根據(jù)主程序?qū)懭朊钪貙懼鞒绦颍鳈C系統(tǒng)2簡單地識別它已經(jīng)執(zhí)行單個主程序?qū)懭朊?。也是在這種情況下,在重寫主程序43之后,HDD 1的設(shè)置狀態(tài)被恢復到重寫之前的狀態(tài)。如此,可以重寫主程序43,而不會影響主機系統(tǒng)2的隨后的操作。在上面描述的實施例中,主程序傳輸命令和主程序?qū)懭朊钍欠謩e提供的。然而,單個命令(主程序傳輸命令)可以連續(xù)地傳輸和重寫主程序。為達到此目的,CPU 17可以轉(zhuǎn)到入口A(步驟253)而不是執(zhí)行主程序傳輸命令處理例程中的命令結(jié)束過程(步驟508)。
如此,在本實施例中,如果HDD 1接收由主機系統(tǒng)2發(fā)出的程序傳輸命令,則此命令指定的程序(新程序)寫入到HDD 1中。在這種情況下,程序傳輸命令的處理結(jié)束而不重寫存儲在FROM 19中的主程序43。下次HDD 1接通電源時使用已經(jīng)寫入到磁盤11中的新程序重寫主程序43。作為HDD 1接通電源時執(zhí)行的激活過程的一部分自動執(zhí)行主程序43的重寫。這就使得存儲在HDD 1的FROM19中的主程序43被重寫,不管主機系統(tǒng)2的體系結(jié)構(gòu)是什么。此外,為重寫主程序43,主機系統(tǒng)2只需執(zhí)行程序傳輸命令。因此,不需要復雜的過程。如此,本實施例可以靈活地根據(jù)來自具有各種體系結(jié)構(gòu)的主機系統(tǒng)2的指令重寫程序。
在上面描述的實施例中,本發(fā)明應用于硬盤驅(qū)動器(HDD)。然而,本發(fā)明還可一般地應用于使用磁盤介質(zhì)作為記錄介質(zhì)和使用磁頭在磁盤介質(zhì)中寫數(shù)據(jù)的諸如磁光盤驅(qū)動器之類的磁盤驅(qū)動器。
那些精通本技術(shù)的人可以容易地實現(xiàn)其他優(yōu)點和進行其他修改。因此,本發(fā)明的更廣的方面不僅局限于這里顯示和描述的具體細節(jié)和代表性的實施例。相應地,在不偏離所附權(quán)利要求和它們的等效物所定義的一般發(fā)明概念的精神或范圍的情況下,可以進行各種修改。
權(quán)利要求
1.一種重寫存儲在磁盤驅(qū)動器(1)中的非易失存儲器(19)中的程序(43)的方法,在磁盤驅(qū)動器中,根據(jù)程序(43)執(zhí)行包括對磁盤介質(zhì)(11)的訪問的控制在內(nèi)的控制,該方法的特征在于包括在從主機系統(tǒng)(2)接收到程序傳輸命令之后,將用于傳輸程序的程序傳輸命令指定的程序?qū)懭?505)到磁盤介質(zhì)(11);以及當磁盤驅(qū)動器(1)接通電源之后,根據(jù)存儲在非易失存儲器(19)中的程序執(zhí)行激活過程以激活磁盤驅(qū)動器(1),執(zhí)行激活過程包括根據(jù)程序傳輸命令使用寫入到磁盤介質(zhì)(11)中的程序重寫(301)存儲在非易失存儲器(19)中的程序(43)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于進一步包括根據(jù)程序向磁盤介質(zhì)(11)的寫入在非易失存儲器(19)中設(shè)置(506)有效的重寫請求標志(44),表示存儲在非易失存儲器(19)中的程序(43)必須重寫;以及其中,如果在非易失存儲器(19)中設(shè)置了有效的重寫請求標志(44),則重寫存儲在非易失存儲器(19)中的程序(43)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,執(zhí)行(201)激活過程包括將根據(jù)程序傳輸命令完成讀取寫入到磁盤介質(zhì)(11)的程序的持續(xù)時間與預先確定的時間進行比較(252);以及如果持續(xù)時間超過預先確定的時間,則阻止程序的重寫(301),在執(zhí)行激活過程時,通過假定用于重寫程序的程序沒有寫入到磁盤介質(zhì)(11),繼續(xù)激活(201)過程。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,執(zhí)行(201)激活過程包括重寫(302)程序,然后切換(304,305)到重寫之后獲得的新程序的執(zhí)行;以及根據(jù)重寫之后獲得的新程序繼續(xù)激活過程。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,執(zhí)行(201)激活過程包括重寫(301)程序,然后確認(231,232)重寫之后獲得的新程序操作正常,以及如果判斷重寫之后獲得的新程序操作正常,根據(jù)新程序繼續(xù)激活過程。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,執(zhí)行(201)激活過程包括重寫(301)程序和確認(231,232)重寫之后獲得的新程序操作正常;以及如果確認重寫之后獲得的新程序操作正常,將特定信息(45)寫入(233)到非易失存儲器(19),信息(45)表示新程序正常;以及其特征在于,如果特定信息(45)被寫入到非易失存儲器(19),根據(jù)重寫之后獲得的新程序繼續(xù)激活過程。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,進一步包括根據(jù)獨立于要被重寫的程序的監(jiān)視程序(51),判斷(104)特定信息(45)是否已經(jīng)被寫入到非易失存儲器(19);以及如果判斷特定信息(45)沒有被寫入到非易失存儲器(19),繼續(xù)(113)執(zhí)行監(jiān)視程序(51)而不是執(zhí)行重寫之后獲得的新程序。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,如果判斷特定信息(45)沒有被寫入到非易失存儲器(19),監(jiān)視程序(51)包括命令等待循環(huán)(113)以等待來自主機系統(tǒng)(2)的命令。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,監(jiān)視程序(51)包括一種處理例程,如果在命令等待循環(huán)(113)期間收到重寫主程序的特定命令,則使用該命令指定的程序重寫存儲在非易失存儲器(19)中的程序(43)。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,執(zhí)行(201)激活過程包括保存(257)表示在重寫程序之前的時間點的磁盤驅(qū)動器(1)的狀態(tài)的狀態(tài)信息;程序被重寫之后,執(zhí)行(202)初始化過程的同時主機系統(tǒng)接口(3)保持與重寫程序之前的狀態(tài)相同的狀態(tài),主機系統(tǒng)接口(3)將主機系統(tǒng)(2)和磁盤驅(qū)動器(1)連接在一起,主機系統(tǒng)接口(3)的狀態(tài)包括當磁盤驅(qū)動器(1)接通電源時設(shè)置的忙狀態(tài);以及在程序被重寫之后,根據(jù)重寫程序之前保存的狀態(tài)信息恢復(213)磁盤驅(qū)動器(1)的狀態(tài)。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,執(zhí)行(201)激活過程包括在磁盤驅(qū)動器(1)的狀態(tài)被恢復之后清除(216)忙狀態(tài)。
12.根據(jù)權(quán)利要求1所述的方法,其特征在于,在程序傳輸命令指定的程序被寫入到磁盤介質(zhì)(11)之后,如果主機系統(tǒng)(2)給磁盤驅(qū)動器(1)提供一個程序?qū)懭朊?,指定寫?511)一種程序,則也重寫該程序。
13.根據(jù)權(quán)利要求1所述的方法,其特征在于進一步包括在重寫程序時停止(256)旋轉(zhuǎn)磁盤介質(zhì)(11)的主軸電機(13)。
14.根據(jù)權(quán)利要求1所述的方法,其特征在于,存儲在非易失存儲器(19)中的程序(43)包括用于重寫程序的程序重寫例程(42)。
15.根據(jù)權(quán)利要求14所述的方法,特征在于進一步包括在重寫程序時將程序重寫例程(42)復制(258)到存儲器(20),以及其中,根據(jù)復制到存儲器(20)的程序重寫例程(42),重寫存儲在非易失存儲器(19)中的程序(43)。
16.一種磁盤驅(qū)動器(1),在該磁盤驅(qū)動器中,根據(jù)程序(43)執(zhí)行包括對磁盤介質(zhì)(11)的訪問的控制在內(nèi)的控制,程序(43)存儲在非易失存儲器(19)中,磁盤驅(qū)動器(1)的特征在于包括用于在從主機系統(tǒng)接收到程序傳輸命令之后,將用于傳輸程序的程序傳輸命令指定的程序?qū)懭氲酱疟P介質(zhì)(11)的裝置(17,505);以及用于當磁盤驅(qū)動器(1)接通電源之后,根據(jù)存儲在非易失存儲器(19)中的程序執(zhí)行激活過程以激活磁盤驅(qū)動器(1)的裝置,用于執(zhí)行包括根據(jù)程序傳輸命令使用寫入到磁盤介質(zhì)(11)中的程序重寫(301)存儲在非易失存儲器(19)中的程序(43)的激活過程的裝置(17,201)。
17.根據(jù)權(quán)利要求16所述的磁盤驅(qū)動器(1),其特征在于,用于執(zhí)行激活過程的裝置(17,201)包括用于重寫(303)程序,然后切換(304)到重寫之后獲得的新程序的執(zhí)行裝置;以及用于執(zhí)行激活過程的裝置(17,201)根據(jù)重寫之后獲得的新程序繼續(xù)激活過程。
18.根據(jù)權(quán)利要求16所述的磁盤驅(qū)動器(1),其特征在于,用于執(zhí)行激活過程的裝置(17,201)包括用于保存表示在重寫程序之前的時間點的磁盤驅(qū)動器(1)的狀態(tài)的狀態(tài)信息的裝置;用于在程序被重寫之后執(zhí)行初始化過程的裝置(202),在執(zhí)行初始化過程的同時主機系統(tǒng)接口(3)保持與重寫程序之前的狀態(tài)相同的狀態(tài),主機系統(tǒng)接口(3)將主機系統(tǒng)(2)和磁盤驅(qū)動器(1)連接在一起;以及用于在程序被重寫之后,根據(jù)重寫程序之前保存的狀態(tài)信息恢復磁盤驅(qū)動器(1)的狀態(tài)的裝置(213)。
全文摘要
用于重寫在磁盤驅(qū)動器中執(zhí)行的程序的方法和裝置。如果磁盤驅(qū)動器(1)收到由主機系統(tǒng)(2)發(fā)出的程序傳輸命令(步驟502),將該命令指定的程序?qū)懭氲酱疟P11(步驟503)。下次磁盤驅(qū)動器(1)接通電源時,在激活過程期間執(zhí)行一個過程(303),過程(303)包括使用寫入到磁盤(11)的程序重寫存儲在非易失存儲器(19)中的程序(43)。
文檔編號G11B20/10GK1472629SQ0312352
公開日2004年2月4日 申請日期2003年5月9日 優(yōu)先權(quán)日2002年7月30日
發(fā)明者青木隆雄, 中野保政, 政 申請人:株式會社東芝
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1