專利名稱:數(shù)據(jù)存儲(chǔ)設(shè)備用操作碼驅(qū)動(dòng)的緩沖管理器的制作方法
背景技術(shù):
本發(fā)明通常涉及數(shù)據(jù)存儲(chǔ)設(shè)備,更具體地說,涉及在數(shù)據(jù)從存儲(chǔ)設(shè)備傳送到某外部設(shè)備時(shí)可用來大大減輕處理要求的存儲(chǔ)方法和結(jié)構(gòu)安排。
光盤,例如密紋盤(CD)或數(shù)字多用盤(DVD),是一種非磁性數(shù)據(jù)存儲(chǔ)介質(zhì),它用激光束將極細(xì)微的凹槽燒入該介質(zhì)的表面就能在其上儲(chǔ)存比較大量的數(shù)字信息。用低功率的激光探測(cè)該凹槽的信息有無可將其存儲(chǔ)的數(shù)據(jù)讀出來。
今天在市場(chǎng)上可買到許多不同類型的光盤系統(tǒng)(即光盤的格式和器件不同)。當(dāng)今的個(gè)人計(jì)算機(jī)(PC)最常用的一種光盤系統(tǒng)是密紋盤只讀存儲(chǔ)器(CD-ROM)。CD-ROM提供一種只讀的光存儲(chǔ)介質(zhì),數(shù)據(jù)在其上只存一次而后用CD-ROM驅(qū)動(dòng)器讀多次。CD-ROM盤可含數(shù)字圖像、音頻、視頻和/或文本數(shù)據(jù)的綜合流。其他功能由數(shù)字多用盤只讀存儲(chǔ)器(DVD-ROM)提供。將來,DVD-ROM的速度將更快。其他先進(jìn)的光盤系統(tǒng)還允許用戶將數(shù)據(jù)寫到光盤上。舉例說,密紋盤可記錄(CD-R)系統(tǒng)允許用戶對(duì)光盤的每個(gè)區(qū)段寫一次而密紋盤的可寫(CD-RW)系統(tǒng)允許用戶對(duì)該光盤的每個(gè)區(qū)段寫許多次。其他值得注意的光盤系統(tǒng)包括密紋盤的磁光(CD-MO)盤,它也是可重寫的。
從上面的示范性光盤系統(tǒng)讀數(shù)據(jù)一般始于PC的處理器或主處理器,它要求將某塊數(shù)據(jù)從光盤那里掃出來并通過外圍總線傳送給該主處理器或某個(gè)主存儲(chǔ)器。一塊數(shù)據(jù)一般包括眾多較小的塊或數(shù)據(jù)幀。這些數(shù)據(jù)幀一般被預(yù)處理并邏輯地集合成光驅(qū)中的組,然后通過外圍總線發(fā)送給主處理器。舉例說,與PC使用的典型16XCD-ROM驅(qū)動(dòng)器一般包含一個(gè)數(shù)字信號(hào)處理裝置(它預(yù)處理取出的數(shù)據(jù))和一個(gè)緩沖管理裝置,它在將這幾幀數(shù)據(jù)以突發(fā)方式傳送給主處理器前將它們存放在128KB的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)中,這些數(shù)據(jù)一般有2-3K字節(jié)長(zhǎng)。
面臨著光驅(qū)設(shè)計(jì)師的一個(gè)問題是,會(huì)有不同類型的數(shù)據(jù)幀(這取決于光盤的種類/格式),而在某些情況下,不是所有這些幀都要傳送給主處理器。
舉例說,CD-ROM盤一般包含與某些“引入”和“引出”區(qū)有關(guān)的數(shù)據(jù)幀。這些“引導(dǎo)區(qū)幀”含有一張內(nèi)容表(TOC)描述符,它在光驅(qū)里用來準(zhǔn)確地確定并讀出記錄在光盤上的道數(shù)據(jù)并停在該光盤許可的邊界里。在再一個(gè)例子中,CD-R、CD-RW和其他類似于可記錄光盤一般用多塊“連接區(qū)幀”,這些“連接區(qū)幀”記錄在連續(xù)寫的數(shù)據(jù)塊之間。這些“連接區(qū)幀”也用在光驅(qū)里以準(zhǔn)確定位和讀記錄在道上的數(shù)據(jù)塊。
因此,最好是,光驅(qū)包括能確定數(shù)據(jù)中哪些幀將被傳送到主處理器和哪些幀會(huì)被跳過去或被忽略掉且不被傳送給主處理器。確定哪些幀應(yīng)傳送給主處理器的任務(wù)一般在緩沖管理器中執(zhí)行;比方說,緩沖管理器用響應(yīng)實(shí)時(shí)固件程序的基于固件處理器來構(gòu)成以進(jìn)一步處理或檢驗(yàn)每一幀數(shù)據(jù)。上述的逐幀檢驗(yàn)過程可能使緩沖管理器感到有些累贅和有時(shí)有其他的處理任務(wù)。另外,新一代光驅(qū)可使現(xiàn)有的光盤格式發(fā)生變化或增加光盤的讀速度。例如傳統(tǒng)的固件處理器的處理能力可能不能支持必要的處理要求和將來要求的時(shí)間限制。
考慮到這點(diǎn)和通常希望光驅(qū)與不同的光盤格式/類型相容,所以需要能有效地減輕光驅(qū)的處理負(fù)擔(dān)的方法和結(jié)構(gòu)安排并能簡(jiǎn)化從光驅(qū)傳送給主處理器的幀。
發(fā)明概述按照本發(fā)明,這些方法和結(jié)構(gòu)安排通過簡(jiǎn)化從存儲(chǔ)設(shè)備傳送到某外部器件的數(shù)據(jù)幀而大大減輕了數(shù)據(jù)在數(shù)據(jù)存儲(chǔ)設(shè)備中的處理負(fù)擔(dān),其方法是考慮記錄在存儲(chǔ)介質(zhì)中的數(shù)據(jù)的已知和/或可確定的特性并有選擇地將特征數(shù)據(jù)應(yīng)用到每幀數(shù)據(jù)上。然后用該特征數(shù)據(jù)來確定每幀數(shù)據(jù)的配置;比如,如果要求的話,需要什么動(dòng)作來在存儲(chǔ)設(shè)備中處理這幀數(shù)據(jù)。這種“加標(biāo)志”方案(它可以用數(shù)字邏輯來做重大的編制)易于減輕數(shù)據(jù)幀主要部分的處理開銷。因此,與存儲(chǔ)設(shè)備有關(guān)的等待時(shí)間也被減少了。
按照本發(fā)明的某些方面,本發(fā)明的各種實(shí)施方案可用于各種各樣的數(shù)據(jù)存儲(chǔ)設(shè)備,其中包括光驅(qū)、磁盤驅(qū)動(dòng)器、磁帶機(jī)和類似的數(shù)據(jù)存儲(chǔ)設(shè)備。
考慮到這種情況,按本發(fā)明的某些實(shí)施方案,通過將一個(gè)譯碼器用來將數(shù)據(jù)從數(shù)據(jù)存儲(chǔ)介質(zhì)傳送到一個(gè)外部設(shè)備就能實(shí)現(xiàn)上述需要及其他要求。數(shù)據(jù)存儲(chǔ)介質(zhì)一般至少有一個(gè)其上記錄了數(shù)據(jù)的數(shù)據(jù)道。每個(gè)數(shù)據(jù)道中都有多個(gè)小的數(shù)據(jù)塊即數(shù)據(jù)幀。譯碼器包含一個(gè)輸入裝置、一個(gè)幀管理裝置和一個(gè)輸出裝置。該輸入裝置用來接收至少一幀數(shù)據(jù)并能確定該幀數(shù)據(jù)的某些特征并根據(jù)至少其中的一個(gè)特征將一個(gè)標(biāo)志數(shù)據(jù)應(yīng)用于該幀數(shù)據(jù)。由于該幀數(shù)據(jù)已“加了標(biāo)志”,該輸入裝置將加了標(biāo)志的數(shù)據(jù)提供給幀管理裝置。該幀管理裝置接收加了標(biāo)志的數(shù)據(jù)幀,存儲(chǔ)它,隨后將它提供給輸出裝置。該輸出裝置接收到它后根據(jù)與該帶標(biāo)志的數(shù)據(jù)幀有關(guān)的標(biāo)志數(shù)據(jù)將它提供給一個(gè)外部設(shè)備。
按照本發(fā)明的其他實(shí)施方案,標(biāo)志數(shù)據(jù)是4種中的一種。第一種是“送”標(biāo)志,它的實(shí)質(zhì)意思是帶該標(biāo)志的數(shù)據(jù)幀可以被傳送給外部設(shè)備,諸如(舉例)主處理器。下一種標(biāo)志數(shù)據(jù)是“跳過”標(biāo)志。當(dāng)某個(gè)數(shù)據(jù)幀帶上一個(gè)跳過標(biāo)志,那么帶該標(biāo)志的數(shù)據(jù)幀實(shí)際上被跳過去并不被傳送給該外部設(shè)備。如果某個(gè)數(shù)據(jù)幀帶上了一個(gè)“暫停”標(biāo)志-第三種標(biāo)志數(shù)據(jù)-那么帶該標(biāo)志的數(shù)據(jù)幀要求作進(jìn)一步處理以確定是否該標(biāo)志數(shù)據(jù)應(yīng)被改成送標(biāo)志、跳過標(biāo)志或是“停止”標(biāo)志。“停止”標(biāo)志是標(biāo)志數(shù)據(jù)的第4種。當(dāng)一個(gè)帶標(biāo)志的數(shù)據(jù)幀帶上一個(gè)停止標(biāo)志時(shí),那末就有一個(gè)錯(cuò)誤狀態(tài),該狀態(tài)將需要作額外的處理。
再舉一例,按照本發(fā)明的更具體實(shí)施方案,當(dāng)該特征識(shí)別出該數(shù)據(jù)是一個(gè)1)來自寫一次的道主區(qū)幀,2)來自定長(zhǎng)寫包道的主區(qū)幀,3)來自變長(zhǎng)寫包道的主區(qū)幀,或4)來自變長(zhǎng)寫包道的有效連路區(qū)幀時(shí)給該數(shù)據(jù)幀加一個(gè)送標(biāo)志。同理,當(dāng)該特征識(shí)別出該數(shù)據(jù)幀是一個(gè)來自定長(zhǎng)寫包道的連路區(qū)幀時(shí)該數(shù)據(jù)幀加一個(gè)跳過標(biāo)志以及當(dāng)該特征識(shí)別出該數(shù)據(jù)幀是一個(gè)來自變長(zhǎng)寫包道的連接區(qū)幀時(shí)則給該數(shù)據(jù)幀加一個(gè)暫停標(biāo)志。當(dāng)該特征識(shí)別出該數(shù)據(jù)幀不是一個(gè)有效數(shù)據(jù)幀時(shí)則給數(shù)據(jù)幀加停止標(biāo)志。例如,如果該數(shù)據(jù)幀是在一個(gè)不合法的地址范圍中,那末它就該加停止標(biāo)志。再者,如果該數(shù)據(jù)幀可讀出或者同步問題或數(shù)據(jù)錯(cuò)誤,但與上面的特征不一致,則給該數(shù)據(jù)幀加一個(gè)暫停標(biāo)志。
按照本發(fā)明的某些實(shí)施方案,可由用于計(jì)算機(jī)系統(tǒng)的存儲(chǔ)設(shè)備來進(jìn)一步滿足上述需要和其他條件。該存儲(chǔ)設(shè)備包括一個(gè)伺服裝置、一個(gè)存儲(chǔ)介質(zhì)、一個(gè)讀出裝置、一個(gè)數(shù)據(jù)引擎、一個(gè)輸入裝置、一個(gè)幀管理裝置和一個(gè)輸出裝置。存儲(chǔ)介質(zhì)有諸如(舉例)光盤、磁盤或兩者的結(jié)合;存儲(chǔ)介質(zhì)被裝在伺服裝置上而讀出裝置被用來從該存儲(chǔ)介質(zhì)讀出某數(shù)據(jù)道的至少一部分?jǐn)?shù)據(jù)并輸出一個(gè)讀信號(hào)。數(shù)據(jù)引擎接收該讀信號(hào)并根據(jù)該讀信號(hào)的至少一部分輸出至少一幀數(shù)據(jù)。該幀數(shù)據(jù)然后提供給輸入裝置并由它確定該幀數(shù)據(jù)的某些特征并將標(biāo)志數(shù)據(jù)加給該幀數(shù)據(jù)并將一個(gè)標(biāo)志數(shù)據(jù)幀輸出給輸出裝置。該輸出裝置然后根據(jù)數(shù)據(jù)幀中的標(biāo)志數(shù)據(jù)將該標(biāo)志的數(shù)據(jù)幀提供給一個(gè)外部設(shè)備。
而按照本發(fā)明的另一種實(shí)施方案,則提供一種用來把數(shù)據(jù)從數(shù)據(jù)存儲(chǔ)介質(zhì)傳送到一個(gè)外部設(shè)備的方法。這種方法包括下面幾個(gè)步驟從一個(gè)數(shù)據(jù)存儲(chǔ)介質(zhì)讀至少一幀數(shù)據(jù)、確定該幀數(shù)據(jù)的某些特征,給該幀數(shù)據(jù)根據(jù)至少一個(gè)特征加一個(gè)標(biāo)志數(shù)據(jù)和根據(jù)這幀已標(biāo)志數(shù)據(jù)中的標(biāo)志數(shù)據(jù)給一個(gè)外部設(shè)備提供該帶標(biāo)志的數(shù)據(jù)幀。按照本發(fā)明的某些實(shí)施方案,給該幀數(shù)據(jù)加標(biāo)志數(shù)據(jù)還包含選擇送標(biāo)志、跳過標(biāo)志、暫停標(biāo)志或停止標(biāo)志,這取決于這幀數(shù)據(jù)的特征。給一幀數(shù)據(jù)加標(biāo)志可以用邏輯和/或物理電路執(zhí)行。舉例說,按照本發(fā)明的某些實(shí)施方案,給該數(shù)據(jù)幀加標(biāo)志數(shù)據(jù)的步驟包括在緩沖數(shù)據(jù)幀的標(biāo)志區(qū)中物理地修改數(shù)據(jù)(例如增加一串具體的數(shù)據(jù)二進(jìn)位/字節(jié))以建立標(biāo)志數(shù)據(jù)。
本發(fā)明的其他特點(diǎn)、優(yōu)點(diǎn)和新特性將后面描述中部分地給出,并在一定程度上通過下面的審核對(duì)本領(lǐng)域的技術(shù)員來說將會(huì)變得更明顯或通過對(duì)本發(fā)明的實(shí)踐會(huì)學(xué)會(huì)。本發(fā)明的各種優(yōu)點(diǎn)通過附屬的權(quán)利要求中特別指出的某些器具及其綜合可以實(shí)現(xiàn)和達(dá)到。
附圖簡(jiǎn)述參見附圖(附圖中有相同的參考數(shù)字名稱的部件表示所有這些部件是類似的),其中
圖1是一個(gè)方框圖,它描繪有存儲(chǔ)設(shè)備的傳統(tǒng)計(jì)算機(jī)系統(tǒng);該存儲(chǔ)設(shè)備有選擇地將含有多個(gè)數(shù)據(jù)幀的數(shù)據(jù)塊通過總線或類似的基于網(wǎng)絡(luò)的連接線傳送給主處理器。
圖2是一個(gè)方框圖,它描繪一個(gè)存儲(chǔ)介質(zhì)(該介質(zhì)記錄至少一個(gè)數(shù)據(jù)塊)和一個(gè)存儲(chǔ)設(shè)備(如圖1所示的那樣);它被設(shè)計(jì)成從該存儲(chǔ)介質(zhì)讀出那個(gè)數(shù)據(jù)塊;該示范存儲(chǔ)設(shè)備有一個(gè)讀/寫裝置、一個(gè)伺服裝置、一個(gè)控制器、一個(gè)數(shù)據(jù)引擎、一個(gè)塊譯碼器、一個(gè)驅(qū)動(dòng)存儲(chǔ)裝置和一個(gè)總線接口。
圖3是一個(gè)方框圖,它描繪一個(gè)塊譯碼器(如圖2所示的那樣);該譯碼器設(shè)計(jì)成便于將選定的數(shù)據(jù)塊部分從存儲(chǔ)設(shè)備傳送給主處理器;示范譯碼器有一個(gè)數(shù)據(jù)引擎接口、一個(gè)糾錯(cuò)器、一個(gè)緩沖管理器、一個(gè)主接口和一個(gè)控制器接口。
圖4是傳統(tǒng)緩沖管理過程的圖形表示,它用于塊譯碼器(如圖2所示的那樣)以便于將選定的數(shù)據(jù)塊幀從存儲(chǔ)設(shè)備傳到主處理器;其中的示范性塊譯碼器能邏輯地,實(shí)際地或用其他方法管理接收和存儲(chǔ)數(shù)據(jù)幀的多個(gè)隊(duì)列或堆棧,這些數(shù)據(jù)幀至少有一部分隨后傳給主處理器。
圖5是記錄在某存儲(chǔ)介質(zhì)上的示范格式化數(shù)據(jù)的圖形表示(如圖2所示的那樣),諸如(舉例)一個(gè)光盤;格式化數(shù)據(jù)包括一個(gè)有內(nèi)容表(TOC)區(qū)段的導(dǎo)入?yún)^(qū)、至少一個(gè)有多個(gè)數(shù)據(jù)幀(即數(shù)據(jù)的較小部分)的道和一個(gè)導(dǎo)出區(qū)。
圖6是道的一部分的圖形表示(如圖5所示的那樣),它被寫入多個(gè)分立的數(shù)據(jù)包,這些數(shù)據(jù)包要么是定長(zhǎng)的、要么是變長(zhǎng)的,并被多個(gè)連接塊分隔開。
圖7是包含在一個(gè)示范數(shù)據(jù)幀中的不同區(qū)的圖形表示,諸如主數(shù)據(jù)區(qū)和備用(未用)區(qū)(如圖5所示的那樣),它存放在驅(qū)動(dòng)存儲(chǔ)裝置中。
圖8是示范格式化主數(shù)據(jù)區(qū)中的不同數(shù)據(jù)字段的圖形表示(如圖7所示的那樣)。
圖9和圖10是按照本發(fā)明的某些實(shí)施方案的流程圖,它們描繪用于改進(jìn)的存儲(chǔ)設(shè)備的過程;這些過程被設(shè)計(jì)成基于某些標(biāo)準(zhǔn)將操作碼標(biāo)志用于一個(gè)數(shù)據(jù)幀并根據(jù)該操作碼標(biāo)志進(jìn)一步處理該數(shù)據(jù)幀。
圖11是按照本發(fā)明的某些實(shí)施方案的有操作碼標(biāo)志的帶標(biāo)志的數(shù)據(jù)幀的圖形表示法。
發(fā)明詳述圖1是一個(gè)框圖,它描繪傳統(tǒng)的計(jì)算機(jī)系統(tǒng)10(如一臺(tái)PC)的一部分;該機(jī)有一個(gè)主處理器12、主存儲(chǔ)器14、總線16和一個(gè)存儲(chǔ)設(shè)備18。主處理器12通常被配置成讀和/或?qū)懼鞔鎯?chǔ)器14和存儲(chǔ)設(shè)備18的數(shù)據(jù)。從存儲(chǔ)設(shè)備18讀出的數(shù)據(jù)在被主處理器12處理前一般記錄到主存14上。同理,在有些配置中,被主處理器12從主存14讀出的數(shù)據(jù)通過總線16提供給存儲(chǔ)設(shè)備18,在那里寫入一個(gè)存儲(chǔ)介質(zhì)??偩€16一般是一條外圍總線,諸如(舉例)小計(jì)算機(jī)接口(SCSI)、高級(jí)技術(shù)連接包接口(ATAPI)、IEEE1394串行總線或類似格式的總線。
為了簡(jiǎn)單,本文的其余部分集中討論讀操作,其中主處理器12要求從存儲(chǔ)設(shè)備18那里讀出一個(gè)數(shù)據(jù)塊并通過總線16提供給主處理器12和/或主存14。
圖2是一個(gè)框圖,它描繪示范用存儲(chǔ)設(shè)備18中的主要子系統(tǒng)(如圖1所示的那樣)。存儲(chǔ)設(shè)備18包括一個(gè)存儲(chǔ)介質(zhì)22,諸如(舉例)CD或VCD。存儲(chǔ)介質(zhì)22一般可從存儲(chǔ)設(shè)備18那里卸下來。存儲(chǔ)介質(zhì)22當(dāng)正確裝入存儲(chǔ)設(shè)備18時(shí),將得到支持并可由伺服裝置24轉(zhuǎn)動(dòng)。伺服裝置24一般包含一個(gè)轉(zhuǎn)軸電機(jī)和安裝裝置(兩者都未示出)。伺服裝置24與驅(qū)動(dòng)控制器26連接。驅(qū)動(dòng)控制器26一般是一個(gè)微處理器,配置它是為了控制存儲(chǔ)設(shè)備18中的各個(gè)子系統(tǒng)并協(xié)同一個(gè)或多個(gè)軟件程序通過總線16與主處理器12通信。
通過讀/寫裝置28對(duì)存儲(chǔ)設(shè)備22讀(或?qū)?數(shù)據(jù)。對(duì)讀操作來說,讀/寫裝置28包含一個(gè)激光二極管和一個(gè)激光拾取電路(兩者均未示出)。在讀(或?qū)?操作期間,讀/寫裝置28通過伺服裝置24在控制器26的控制下有選擇地停在存儲(chǔ)介質(zhì)22上。數(shù)據(jù)一般沿有恒定凹坑(如數(shù)據(jù)位)大小的連續(xù)螺旋道存放在存儲(chǔ)介質(zhì)22中。因此,外側(cè)存儲(chǔ)介質(zhì)每轉(zhuǎn)的信息內(nèi)容比里側(cè)的多。
讀/寫裝置28可相應(yīng)于存儲(chǔ)介質(zhì)22移動(dòng),因此它可定位在某特定道上并在該存儲(chǔ)介質(zhì)旋轉(zhuǎn)時(shí)隨該道讀出所需的數(shù)據(jù)。
通過讀/寫裝置28輸出一個(gè)模擬信號(hào)給數(shù)據(jù)引擎30,諸如(舉例)一個(gè)數(shù)字信號(hào)處理器(DSP)。數(shù)據(jù)引擎30用例如傳統(tǒng)的模-數(shù)轉(zhuǎn)換技術(shù)將該模擬信號(hào)轉(zhuǎn)換成數(shù)字?jǐn)?shù)據(jù)流。數(shù)據(jù)引擎30也可以配成不弄亂(descramble)、糾正、抽取、去除和/或用其他方法修正該數(shù)據(jù)流中的某些數(shù)據(jù)。例如在某些CD-ROM驅(qū)動(dòng)器中,數(shù)據(jù)引擎30用傳統(tǒng)的解調(diào)技術(shù)(例如數(shù)據(jù)分割技術(shù))和十字交叉存取的Reed Solomon碼(CIRC)糾錯(cuò)技術(shù)來從模擬信號(hào)中取出主要數(shù)據(jù)(MD)和分碼數(shù)據(jù)。在傳統(tǒng)CD-ROM上的數(shù)據(jù)每個(gè)被分成有約2352字節(jié)的MD和96字節(jié)的分碼數(shù)據(jù)。然而,分碼數(shù)據(jù)的格式實(shí)際上包含98個(gè)字節(jié),其中的2個(gè)字節(jié)或凹槽是空白以發(fā)現(xiàn)分碼幀的開始,余下的96個(gè)凹槽每個(gè)含一個(gè)字節(jié)的分碼數(shù)據(jù)。如所示,數(shù)據(jù)引擎30還被連到設(shè)備控制器26并對(duì)該控制器作出響應(yīng)。
從數(shù)據(jù)引擎30產(chǎn)生的數(shù)字被提供給塊譯碼器32。配置塊譯碼器32是為了便于通過總線接口35和總線16將數(shù)字?jǐn)?shù)據(jù)傳送給主處理器12。讀操作期間,塊譯碼器32將數(shù)據(jù)幀匯集起來并存儲(chǔ)在驅(qū)動(dòng)存儲(chǔ)裝置34中。然后,塊譯碼器32將一組數(shù)據(jù)幀(例如4-8幀左右)通過總線接口35和總線16在一個(gè)分段傳統(tǒng)中(in a signle bursttransfer)從驅(qū)動(dòng)存儲(chǔ)裝置34那里傳送給主處理器12。下面對(duì)塊譯碼器32作更詳細(xì)的描述。塊譯碼器32被連到設(shè)備控制器26并對(duì)該控制器作出響應(yīng)。
驅(qū)動(dòng)存儲(chǔ)裝置34一般是一個(gè)傳統(tǒng)的DRAM芯片,它與塊譯碼器32連接,要不然就與它隔開。驅(qū)動(dòng)存儲(chǔ)裝置34的大小和操作參數(shù)隨存儲(chǔ)設(shè)備18的操作速度、塊譯碼器32的操作和等待時(shí)間以及主處理器12的操作和等待時(shí)間而變。當(dāng)塊譯碼器以突發(fā)方式傳送一組數(shù)據(jù)幀時(shí)CD-ROM普遍能在驅(qū)動(dòng)存儲(chǔ)裝置34中儲(chǔ)存至少50個(gè)左右的數(shù)據(jù)幀。舉例說,對(duì)16XCD-ROM驅(qū)動(dòng)存儲(chǔ)裝置34通常需要約128KB的數(shù)據(jù)而對(duì)32X的CD-ROM來說有約256KB的數(shù)據(jù)。
存儲(chǔ)設(shè)備18還包含總線接口35,而總線接口35與總線16連接??偩€接口35是一個(gè)傳統(tǒng)的接口電路,它是專門為總線16的格式設(shè)計(jì)的。因此,比方說在某些配置中總線接口35可以是一個(gè)SCSI、ATAPI、1394或其他類似的總線接口??偩€接口35還連到驅(qū)動(dòng)控制器26并響應(yīng)該控制器。
圖3是一個(gè)框圖,它描繪示范塊譯碼器32(如圖2所示的那樣)。塊譯碼器32包含數(shù)據(jù)引擎的接口邏輯36、糾錯(cuò)邏輯37、一個(gè)緩沖管理器38、主接口邏輯40和控制器接口邏輯42。配置數(shù)據(jù)引擎接口邏輯36是為了與數(shù)據(jù)引擎30交換數(shù)據(jù)并響應(yīng)來自糾錯(cuò)邏輯37的命令,和通過控制器接口邏輯42,與驅(qū)動(dòng)控制器26交換數(shù)據(jù)。主接口邏輯40被配置成與總線接口35交換數(shù)據(jù),并響應(yīng)來自緩沖管理器38的命令,并通過控制器接口邏輯42與驅(qū)動(dòng)控制器26交換數(shù)據(jù)。同理,控制器接口邏輯42被配置成便于在驅(qū)動(dòng)控制器26和糾錯(cuò)邏輯37、緩沖管理器38、數(shù)據(jù)引擎接口邏輯36和主接口邏輯40間交換控制信息。
顧名思義,提供糾錯(cuò)邏輯37是為了通過數(shù)據(jù)引擎接口邏輯36糾正從數(shù)據(jù)引擎30接收到的數(shù)字?jǐn)?shù)據(jù)中的錯(cuò)誤。一般它包括采用傳統(tǒng)的數(shù)據(jù)糾正技術(shù)來評(píng)估每幀數(shù)據(jù)中的某些數(shù)據(jù),識(shí)別特殊類型的錯(cuò)誤而后在適當(dāng)?shù)臅r(shí)候糾正已發(fā)現(xiàn)的錯(cuò)誤,方法是,例如自動(dòng)更改這幀數(shù)據(jù)中變壞了的或其他不正確的數(shù)據(jù)或通過控制器接口42要求控制器26提供進(jìn)一步的幫助。
在支持讀操作中緩沖管理器38接收來自糾錯(cuò)邏輯37的數(shù)據(jù)幀并有選擇地將這些數(shù)據(jù)幀存儲(chǔ)在驅(qū)動(dòng)存儲(chǔ)裝置34中。還安排了緩沖管理器38來給主接口邏輯40提供某些幀以便傳送給主處理器12。如下面詳述的那樣,必要時(shí)緩沖管理器38(它通過控制器接口42與控制器26進(jìn)行操作耦合)中斷或用其他方法請(qǐng)求控制器26提供進(jìn)一步的幫助。
圖4用圖形描述傳統(tǒng)的緩沖管理進(jìn)程50,它包含在或用在一個(gè)或多個(gè)塊譯碼器32的功能電路中,(如圖3所示的那樣)。緩沖管理進(jìn)程50便于將選定的數(shù)據(jù)幀傳送給主處理器12。
緩沖管理進(jìn)程50能邏輯地、物理地或用其他方法管理多個(gè)隊(duì)列的存儲(chǔ)數(shù)據(jù)幀(例如54、58、60和62),諸如存儲(chǔ)幀52(它能存儲(chǔ)在驅(qū)動(dòng)存儲(chǔ)裝置34中)。例如這些隊(duì)列中有一個(gè)隊(duì)列(即發(fā)送隊(duì)列60)含有最后被發(fā)送給主處理器12的數(shù)據(jù)幀。這些箭頭示于圖4以圖形方式圖示緩沖管理進(jìn)程50邏輯地、物理地或用其他方法將幀組織或“放”在某些隊(duì)列中。
當(dāng)一幀新的數(shù)據(jù)到達(dá)時(shí),緩沖管理進(jìn)程50將該新數(shù)據(jù)放在新幀隊(duì)列58中(它從空隊(duì)列62移到堆棧(haystack)隊(duì)列54)。在堆棧隊(duì)列54中放到預(yù)定的閾值幀數(shù)后,緩沖管理進(jìn)程50就使控制器26中斷。當(dāng)發(fā)生上述情況時(shí),控制器26就評(píng)估堆棧隊(duì)列54中每個(gè)幀52的情況并確定下一步該做的事情。如果控制器26確定幀52可以傳送給主處理器12,那末緩沖管理進(jìn)程50將幀52放入數(shù)據(jù)隊(duì)列58,直至幀52被主處理器12提出請(qǐng)求為止。當(dāng)數(shù)據(jù)隊(duì)列58中的一幀或幾幀數(shù)據(jù)被主處理器12請(qǐng)求時(shí),緩沖管理進(jìn)程50將被請(qǐng)求的幀放入發(fā)送隊(duì)列60。一旦它(們)在發(fā)送隊(duì)列60中,就通過(舉例)主接口邏輯40將它(們)傳送給主處理器12。緊跟著將幀52傳出發(fā)送隊(duì)列60后緩沖管理進(jìn)程50就將幀52放入空隊(duì)列62,這樣做的實(shí)質(zhì)是將相關(guān)的存儲(chǔ)資源空出來用以存儲(chǔ)隨后到達(dá)的新幀56。
如果控制器26對(duì)給定的幀52的評(píng)估確定幀52不是傳送給主處理器12,那末就將幀52放在空隊(duì)列62中。緩沖管理進(jìn)程50用這種方式能給數(shù)據(jù)幀分類以確定將一特定的幀傳送給主處理器12是否合適。
在傳統(tǒng)的CD-ROM驅(qū)動(dòng)器中,有好幾幀數(shù)據(jù)不打算傳送給主處理器12,即便主處理器12以某種方式提出了請(qǐng)求,其中包括(但不限于)從CD-ROM的導(dǎo)入?yún)^(qū)或?qū)С鰠^(qū)讀出的幀。
圖5用圖形描述記錄在CD-ROM中的數(shù)據(jù)70。如圖所示,數(shù)據(jù)70主要包括一個(gè)導(dǎo)入?yún)^(qū)72,后跟1-99個(gè)道74,最后是導(dǎo)出區(qū)76。導(dǎo)入?yún)^(qū)72中有放內(nèi)容表(TOC)的區(qū)段73,該區(qū)段/包括有關(guān)道74的各種參數(shù)的信息,諸如(舉例)每個(gè)道的啟、停邊界。同理,每個(gè)道中(如道74a)有一個(gè)具體的道描述符75,該描述符含有道74a的附加信息。道描述符75一般包含在該道的頭150幀中。導(dǎo)出區(qū)76記錄在數(shù)據(jù)70的末尾,一般包含供控制器26用的信息,例如如果在讀操作期間CD-ROM的掃描錯(cuò)誤地超過了道74,則要用伺服裝置24來恢復(fù)之并重定位讀/寫裝置28。
除有某些明顯的例外以外,一般記錄在導(dǎo)入?yún)^(qū)72的道描述符75和導(dǎo)出區(qū)76的幀不傳送給主處理器12。實(shí)際上,這種請(qǐng)求和/或傳送被認(rèn)為是一種錯(cuò)誤狀態(tài)。
道描述符塊是被控制器26用來發(fā)現(xiàn)道的信息的。例如控制器26可用道描述符塊來確定該道是否是一個(gè)寫包道,如果是,則道中的包是定長(zhǎng)的還是變長(zhǎng)的;如果是定長(zhǎng)的,其長(zhǎng)度是多少。如本領(lǐng)域的技術(shù)人員所知道的那樣,在寫包的道中數(shù)據(jù)是以多個(gè)包方式記錄到光盤上的,構(gòu)成一個(gè)道的包可以是定長(zhǎng)的也可以是變長(zhǎng)的。
圖6用圖形描述示范的寫包道80的一部分情況以圖示道80中的兩個(gè)包是怎樣連接起來的。如所知道的那樣,寫包道80的頭一個(gè)數(shù)據(jù)區(qū)82包含多個(gè)與第一個(gè)包有關(guān)的幀88,第二個(gè)數(shù)據(jù)區(qū)86含有與第二個(gè)包有關(guān)的多個(gè)幀89。連接區(qū)84位于在頭一個(gè)數(shù)據(jù)區(qū)82和第二個(gè)數(shù)據(jù)區(qū)86之間。連接區(qū)84包含多個(gè)輸出塊90;該區(qū)是在緊接著幀88后進(jìn)行的初始寫操作期間記錄的。在隨后的寫操作期間,在記錄幀89前記錄多個(gè)插入塊94。輸出塊90和插入塊94實(shí)質(zhì)上是標(biāo)識(shí)正在發(fā)生的從一個(gè)包轉(zhuǎn)入下一個(gè)包的過程,因此為存儲(chǔ)設(shè)備18提供必要的信息以便與以后的寫包數(shù)據(jù)同步。
輸出塊90和插入塊94間有一個(gè)連接塊92,它能包含初始寫操作和隨后的寫操作期間記錄的數(shù)據(jù)。因此(舉例),連接塊92可含有重疊的數(shù)據(jù)位,其中有些來自初始的寫操作,有些來自隨后的寫操作。
對(duì)定長(zhǎng)的包來說,通常不將輸出塊90、連接塊92和插入塊94中的幀傳送給主處理器12。可是,對(duì)變長(zhǎng)的包來說,輸出塊90、連接塊92和插入塊94中的幀可以傳送給主處理器12。因此,存儲(chǔ)設(shè)備18需要有附加的能力來區(qū)別定長(zhǎng)和變長(zhǎng)的寫包道。如下面所述的那樣,決策所需的信息,諸如那些,一般在記錄在存儲(chǔ)介質(zhì)22上的數(shù)據(jù)中提供(例如道描述符、TOC等等)。
因此,增加緩沖管理進(jìn)程50的復(fù)雜度以支持讀寫-包道。但該復(fù)雜度會(huì)增加存儲(chǔ)設(shè)備18的等待時(shí)間。例如當(dāng)主處理器12請(qǐng)求傳送含有多幀的數(shù)據(jù)塊而其中一部分又來自連接區(qū)84時(shí)其等待時(shí)間就可能會(huì)增加。如果主處理器12不請(qǐng)求連接區(qū)84的幀,那末緩沖管理進(jìn)程50要將不要的幀從發(fā)送隊(duì)列60移到空隊(duì)列62上。上述對(duì)幀的額外分解動(dòng)作一般要中斷控制器26,這就導(dǎo)致幀的多次傳送而不是一次傳送。這些負(fù)面影響都有可能增加存儲(chǔ)設(shè)備18的等待時(shí)間。
因此,需要一種改進(jìn)的方法和裝置來有效地降低與確定哪些幀將被傳送給主處理器12有關(guān)的處理負(fù)擔(dān)。
如下面所述的那樣,一些改進(jìn)的方法和裝置是按本發(fā)明的某些實(shí)施方案提供的,以簡(jiǎn)化各種要在存儲(chǔ)設(shè)備18中做出的決策。按照本發(fā)明的某些觀點(diǎn),改進(jìn)的塊譯碼器含有附加的功能,例如體現(xiàn)于數(shù)字邏輯中的功能;該功能能識(shí)別每個(gè)新的幀56的某些屬性和標(biāo)記或用其他方法識(shí)別每個(gè)新的幀56,以便降低中斷控制器26需要和/或?qū)膫魉头殖啥啻芜M(jìn)行。因此,將幀52從堆棧隊(duì)列54移到數(shù)據(jù)隊(duì)列58的決策可以簡(jiǎn)化,和/或?qū)⑦B接區(qū)84一個(gè)幀從發(fā)送隊(duì)列60轉(zhuǎn)到空隊(duì)列62的決策也可以簡(jiǎn)化。
考慮到這,除了TOC73和道描述符75(上面已描述)外,還在每個(gè)有效幀中(而不管幀的種類是什么)得到有關(guān)記錄在存儲(chǔ)介質(zhì)22中的數(shù)據(jù)的附加信息。圖7用圖形描述示范的傳統(tǒng)幀88a(它大約為2.5KB)的情況。如圖所示,幀88a含有一個(gè)主數(shù)據(jù)區(qū)100(那里記錄有用戶數(shù)據(jù))、分代碼區(qū)102和一個(gè)Q格式區(qū)104以及一個(gè)備分(未用)區(qū)106。
圖8用圖形描述在從數(shù)據(jù)引擎30那里來的數(shù)據(jù)中找到的各種數(shù)據(jù)字段。塊譯碼器32用同步數(shù)據(jù)字段(SYNC)110、分秒幀(MSF)地址112和方式字節(jié)(MODE)114來調(diào)準(zhǔn)各數(shù)據(jù)幀,找到地址信息和道的工作方式。該信息被傳送給主數(shù)據(jù)區(qū)100’。糾錯(cuò)器37用測(cè)錯(cuò)碼(如CRC)118和糾錯(cuò)碼(ECC)112(例如含一個(gè)C3馬的代碼)來檢查主數(shù)據(jù)(MD)116(即用戶數(shù)據(jù))的完整性。如圖7描繪的那樣,還有含有分代碼數(shù)據(jù)的外加數(shù)據(jù)流,它存儲(chǔ)在102和104區(qū)中。舉例說,對(duì)傳統(tǒng)的模式1格式化頭部來說,這些字段包括一個(gè)12字節(jié)的SYNC110、MSF地址112、MODE114、MD116、測(cè)錯(cuò)碼(EDC)118、備份字段(SPARE)120和糾錯(cuò)碼(C3)122。
用上面描述的信息的各個(gè)部分,按本發(fā)明的某些實(shí)施方案給出的方法和裝置,可方便地降低與存儲(chǔ)設(shè)備18有關(guān)的等待時(shí)間,特別是可降低由緩沖管理進(jìn)程50將幀從發(fā)送隊(duì)列60傳給主處理器12時(shí)引入的等待時(shí)間。這些方法和裝置(可用硬件和/或軟件來實(shí)現(xiàn))基本上用一個(gè)操作碼(oncode)標(biāo)志240(例子見圖11),它在進(jìn)程的早期可加給每個(gè)新幀56。
操作碼標(biāo)志240用在存儲(chǔ)設(shè)備18中,目的是加速該幀的后續(xù)處理(例如給主處理器12傳送期間的處理)。按照本發(fā)明的某些優(yōu)選實(shí)施方案,操作碼標(biāo)志240(如圖11幀88’中圖形描繪的那樣)比方采用二進(jìn)制數(shù)據(jù)的方式(它被附加在或用其他方法包含在備份區(qū)106’中)。上述的二進(jìn)制數(shù)據(jù)標(biāo)識(shí)一個(gè)要在緩沖管理進(jìn)程50中執(zhí)行的特殊操作。
圖9是一幅描繪過程200的流程圖,它用于存儲(chǔ)設(shè)備18’(即圖2和圖3中存儲(chǔ)設(shè)備18的改進(jìn)型)。進(jìn)程200包含將存儲(chǔ)介質(zhì)22安裝在存儲(chǔ)設(shè)備18’中的開始步驟202。例如,202可包括將光盤插入CD、DVD或類似的驅(qū)動(dòng)器中。在204步中是讀記錄在存儲(chǔ)介質(zhì)22中的數(shù)據(jù)70的選定部分并匯集某些信息,例如讀TOC73是為了匯集關(guān)于記錄在數(shù)據(jù)70中的道的號(hào)碼及每個(gè)道74的有關(guān)啟停位置。再者,可以將每個(gè)道的道描述符75讀出來以匯集關(guān)于該道是否是個(gè)寫一次的道還是個(gè)定長(zhǎng)或變長(zhǎng)的寫包道的附加信息。然后將該信息(它提供道的各種特征)包括在存放或用其他方式保存在存儲(chǔ)設(shè)備18的一張表中。
接著,在206步,存儲(chǔ)設(shè)備18等待接收主處理器12發(fā)出的讀請(qǐng)求命令。過程200響應(yīng)該讀請(qǐng)求命令,執(zhí)行208步,將請(qǐng)求的數(shù)據(jù)塊或它的子集從存儲(chǔ)設(shè)備22中讀出來。在這一步時(shí)可為標(biāo)志定義建立硬件。當(dāng)讀每個(gè)新幀56時(shí)要執(zhí)行若干有效性檢查。例如進(jìn)行同步測(cè)試以確定讀出的幀是否有效。如果該幀通過了同步測(cè)試,那末執(zhí)行傳統(tǒng)的CRC。再者,也可對(duì)該幀的地址進(jìn)行查核,看看它是否在可接受的地址范圍內(nèi),比如由讀操作來確定。如果該幀的地址未能通過查核或其地址的有效性,那末就給該幀的210和212步加一個(gè)STOP(停止)操作碼標(biāo)志。STOP操作碼標(biāo)志主要標(biāo)識(shí)該幀的一個(gè)問題。STOP操作碼用于比方說已知的不合法幀,諸如地址不合法的幀。比如,將它比作PAUSE(暫停)操作碼標(biāo)志(PAUSE操作碼標(biāo)志用于變壞了的數(shù)據(jù)或未知的數(shù)據(jù))。PAUSE操作碼標(biāo)志不像STOP操作碼標(biāo)志;對(duì)PAUSE操作碼標(biāo)志來說,控制器26立即被中斷并可在被主處理器12請(qǐng)求前執(zhí)行重試操作。
假定發(fā)現(xiàn)某幀在208步,然后在210步時(shí)是有效的,則給該幀加一個(gè)SEND、SKIP或PAUSE操作碼標(biāo)志,這取決于道和幀的類型。
對(duì)一個(gè)寫一次的道(例如CD-ROM或DVD-ROM)來說,將在214步時(shí)加SEND操作碼標(biāo)志,因?yàn)樵搸梢詡魉徒o主處理器12。該幀根據(jù)204步建立的表中的信息被確定為寫一次的道或?qū)懓赖慕M成部分。
對(duì)定長(zhǎng)的寫包道來說,在216步時(shí)可加兩種操作碼標(biāo)志,這取決于幀的類型(即它是連接區(qū)幀還是數(shù)據(jù)區(qū)幀)。如果用該幀的頭部模式字段114可確定幀的類型(如圖8的圖形所描繪的那樣)。因此,比方說,模式字段114中數(shù)據(jù)字節(jié)的頭(3)位115標(biāo)識(shí)該幀是一個(gè)連接區(qū)幀還是一個(gè)數(shù)據(jù)區(qū)幀。如果該幀是定長(zhǎng)寫包道的一個(gè)連接區(qū)幀,那末主處理器12就不接收該幀。因此,該連接區(qū)幀就加一個(gè)SKIP操作碼標(biāo)志且該幀不傳送給主處理器12。如果該幀是一個(gè)數(shù)據(jù)區(qū)幀,那末主處理器12就可以接收該幀。這樣給該數(shù)據(jù)區(qū)幀加一個(gè)SEND操作碼標(biāo)志并將它傳送給主處理器12。
對(duì)變長(zhǎng)的寫包道來說,在218步中,也可加兩個(gè)操作碼標(biāo)志;這取決于幀的類型(即它是連接區(qū)幀還是數(shù)據(jù)區(qū)幀)。再者,幀的類型可用幀頭部的模式字段114來確定(例如在圖8中用圖形描繪的那樣)。如果該幀是一個(gè)連接區(qū)幀,那末主處理12就不許可接收該幀。然而,在將它傳送給主處理器12之前可能要對(duì)該幀進(jìn)行額外的處理??梢钥吹竭B接區(qū)84中有7個(gè)數(shù)據(jù)塊(返回去參看圖6)。然而,對(duì)數(shù)據(jù)引擎30來說,由于連接塊92中的數(shù)據(jù)重合而輸出了8個(gè)數(shù)據(jù)塊不是7個(gè)數(shù)據(jù)塊,這并不罕見。其結(jié)果是,該多余的一個(gè)數(shù)據(jù)塊(一般叫做“slip”(插條)塊)需要標(biāo)識(shí)并且不要傳送給主處理器12。因此,給該連接區(qū)幀加一個(gè)PAUSE操作碼標(biāo)志并且不將該幀傳送給主處理器12,而應(yīng)由比方說控制器26保留起來作進(jìn)一步的處理。然后可由控制器26校正/糾正該連接塊并用SEND標(biāo)志寫在該操作碼標(biāo)志的數(shù)據(jù)上面,并可能將一個(gè)有SKIP標(biāo)志的數(shù)據(jù)寫到任何備用幀上。如果該幀是一個(gè)數(shù)據(jù)區(qū)幀,那末主處理器12就許可接收該幀。因此,該數(shù)據(jù)區(qū)幀加一個(gè)SEND操作碼標(biāo)志并將該幀傳送給主處理器12。
如果某有效幀不能確定為適合上述類型中的一種,那末在步驟220中給它加一個(gè)PAUSE操作碼標(biāo)志,允許比如由控制器26作進(jìn)一步處理。當(dāng)有一個(gè)探測(cè)的錯(cuò)誤糾正故障、同步插條等等時(shí),也可用PAUSE操作碼標(biāo)志。用這種方法旨在用各種方法和裝置來支持將來幾代的存儲(chǔ)設(shè)備或其他未知的/不怎么出名的存儲(chǔ)介質(zhì)格式。可是,PAUSE操作碼需要額外的處理操作,這是大家都承認(rèn)的;這也能會(huì)導(dǎo)致增加而不是減少存儲(chǔ)設(shè)備的等待時(shí)間。
依照本發(fā)明的某些優(yōu)選實(shí)施方案,進(jìn)程200變成了塊譯碼器中的數(shù)字邏輯(如圖2和/或圖3所示的那樣)。例如,可在數(shù)據(jù)引擎接口邏輯36和/或糾錯(cuò)邏輯37的改進(jìn)型中執(zhí)行同步、CRC和地址范圍和方式測(cè)試以及操作碼標(biāo)志生成/應(yīng)用。這類測(cè)試對(duì)本領(lǐng)域的那些技術(shù)人員來說,是非常熟悉的且在傳統(tǒng)的存儲(chǔ)設(shè)備也進(jìn)行。再者,本領(lǐng)域的那些技術(shù)人員將認(rèn)識(shí)到在實(shí)施本發(fā)明的方法和裝置中數(shù)字邏輯和/或軟件/固件邏輯可用于存儲(chǔ)設(shè)備18改進(jìn)型中的一個(gè)或多個(gè)子系統(tǒng)。因此,例如在控制器36中運(yùn)行的固件程序可改進(jìn)為進(jìn)一步的支持進(jìn)程200中的各個(gè)步驟。
圖10是一張流程圖;它描述用于存儲(chǔ)設(shè)備18’的附加過程300。過程300包括302步,其中加載了傳送緩沖計(jì)數(shù)器以支持將數(shù)據(jù)傳送給主處理器12。傳送緩沖計(jì)數(shù)器可以包括比如發(fā)送隊(duì)列60中的幀88’的數(shù)碼(它已標(biāo)上了240操作碼標(biāo)志)。
如果操作碼標(biāo)志240等于PAUSE(如304步所確定的那樣),過程300就等待控制器26將該操作碼標(biāo)志改成SEND或SKIP。例如,如果幀88’標(biāo)成PAUSE,因?yàn)樗莵碜宰冮L(zhǎng)寫包道的一個(gè)連接區(qū)幀,那末如果該幀不會(huì)在以后被確定為一個(gè)插條幀,操作碼標(biāo)志240將被改成SEND。反過來說,如果幀88’以后被確定為一個(gè)(slip)插條幀,那末操作碼標(biāo)志240將被改成SKIP。如果操作碼標(biāo)志240等于SKIP,則在312步時(shí),該幀將按306步被放在空隊(duì)列62中。
如果操作碼標(biāo)志是SEND(如306步確定的那樣),這幀數(shù)據(jù)被傳送給主處理器12并按步驟310將緩沖計(jì)數(shù)器減1。下一步(在第312步時(shí))將該幀或槽值移到空隊(duì)列62。
在第314步時(shí),確定傳送計(jì)數(shù)器是否為0。如果傳送計(jì)數(shù)器等于0,那末過程300結(jié)束。如果傳送計(jì)數(shù)器不為0,則有附加的數(shù)據(jù)幀待處理,則進(jìn)程300返回到第304步。
往回參考第306步,如果操作碼標(biāo)志不是SEND,那末進(jìn)程300進(jìn)入到第308步。在第308步時(shí)確定操作碼標(biāo)志是否為SKIP。如果該操作碼標(biāo)志是SKIP,那末進(jìn)程300進(jìn)入到312步,隨后是314步(如上面所述)。
如果該操作碼標(biāo)志不是SKIP,而是STOP(如316步確定的那樣),那末進(jìn)程300結(jié)束。
可以認(rèn)識(shí)到,如需特殊的配置,在將幀88’傳送給主處理器12前可將操作碼標(biāo)志240從幀88’那里卸下來。然而在大多數(shù)配置中這是不必要的,因?yàn)椴僮鞔a標(biāo)志240中的附加信息不應(yīng)反過來影響主處理器12。
按照本發(fā)明的某些優(yōu)選實(shí)施方案,過程300用數(shù)字邏輯來做。例如,302、306和312步可在塊譯碼器32的改進(jìn)型和/或控制器26中執(zhí)行,304、308和310步可在主接口邏輯40的改進(jìn)型和/或控制器26中執(zhí)行。本領(lǐng)域的那些技術(shù)員將進(jìn)一步認(rèn)識(shí)到數(shù)字邏輯和/或軟件/固件邏輯可用于存儲(chǔ)設(shè)備18的改進(jìn)型中一個(gè)或多個(gè)子系統(tǒng)以實(shí)踐本發(fā)明的各種方法和裝置。因此,比方說運(yùn)行在控制器26上的固件程序可修改成進(jìn)一步支持進(jìn)程300的各個(gè)步驟。
雖然本發(fā)明聯(lián)系了當(dāng)前被認(rèn)為是最實(shí)際和優(yōu)選的實(shí)施方案作了介紹,還將認(rèn)為本發(fā)明不限于已公開的實(shí)施方案;相反,它應(yīng)包括各種改進(jìn)型和等效的裝置;這些改進(jìn)型和等效裝置包含在所附的權(quán)利要求的精神和范圍中。
權(quán)利要求
1.一種用來將數(shù)據(jù)從數(shù)據(jù)存儲(chǔ)介質(zhì)(22)傳送到一個(gè)外部設(shè)備的譯碼器(32);該數(shù)據(jù)存儲(chǔ)介質(zhì)(22)有至少一個(gè)道,其上記錄了多個(gè)數(shù)據(jù)幀,該譯碼器(32)包含一個(gè)輸入裝置(36),配置來接收至少一個(gè)數(shù)據(jù)幀,確定關(guān)于該數(shù)據(jù)幀的至少一個(gè)特征,依據(jù)關(guān)于該數(shù)據(jù)幀的至少一個(gè)特征將一個(gè)標(biāo)志數(shù)據(jù)加給該數(shù)據(jù)幀和將一個(gè)帶標(biāo)志數(shù)據(jù)幀輸出;一個(gè)幀管理裝置(38),耦合到該輸入裝置(36)并配置接收來自該輸入裝置(36)的帶標(biāo)志數(shù)據(jù)幀、將該帶標(biāo)志數(shù)據(jù)幀儲(chǔ)存起來,隨后將它輸出;和一個(gè)輸出裝置(40)耦合到該幀管理裝置并配置接收來自該幀管理裝置(38)的帶標(biāo)志數(shù)據(jù)幀并給某外部設(shè)備提供該帶標(biāo)志數(shù)據(jù)幀作為該帶標(biāo)志數(shù)據(jù)幀中標(biāo)志數(shù)據(jù)幀的一項(xiàng)功能。
2.如權(quán)利要求1的譯碼器(32),其中的標(biāo)志數(shù)據(jù)選自含有一個(gè)send(送)標(biāo)志、一個(gè)skip(跳過)標(biāo)志、一個(gè)pause(暫停)標(biāo)志和一個(gè)stop(停止)標(biāo)志的一組標(biāo)志中至少一個(gè)。
3.如權(quán)利要求2的譯碼器,其中的輸入裝置(36)當(dāng)該至少一個(gè)特征標(biāo)識(shí)出該數(shù)據(jù)幀是選自這組含有一個(gè)來自寫一次道的主區(qū)幀、一個(gè)來自定長(zhǎng)寫包道的主區(qū)段、一個(gè)來自變長(zhǎng)寫包道的主區(qū)幀和一個(gè)來自變長(zhǎng)寫包道的有效連接區(qū)幀的數(shù)據(jù)幀中至少一個(gè)時(shí),進(jìn)一步配置成給該數(shù)據(jù)幀加一個(gè)送標(biāo)志。
4.如權(quán)利要求2的譯碼器,其中的輸入裝置(36)當(dāng)至少一個(gè)特征標(biāo)識(shí)出該數(shù)據(jù)幀是一個(gè)來自定長(zhǎng)寫包道的連接區(qū)幀時(shí),進(jìn)一步配置成給該數(shù)據(jù)幀加一個(gè)跳過標(biāo)志。
5.如權(quán)利要求2的譯碼器,其中的輸入裝置(36)當(dāng)至少一個(gè)特征標(biāo)識(shí)出該數(shù)據(jù)幀是一個(gè)來自變長(zhǎng)寫包道的連接區(qū)幀時(shí),則進(jìn)一步配置成給該數(shù)據(jù)幀加一個(gè)暫停標(biāo)志。
6.如權(quán)利要求2的譯碼器,其中的輸入裝置(36)當(dāng)至少一個(gè)特征標(biāo)識(shí)出了該數(shù)據(jù)幀不是一個(gè)有效數(shù)據(jù)幀時(shí)進(jìn)一步配置成給該數(shù)據(jù)幀加一個(gè)停止標(biāo)志。
7.如權(quán)利要求2的譯碼器,其中的輸入裝置(36)當(dāng)至少一個(gè)特征標(biāo)識(shí)出該數(shù)據(jù)幀不是選自一組含有來自寫一次的道的主區(qū)幀、來自定長(zhǎng)寫包道的主區(qū)幀、來自變長(zhǎng)寫包道的主區(qū)幀和來自變長(zhǎng)寫包道的連接區(qū)幀的數(shù)據(jù)幀中至少一個(gè)時(shí),進(jìn)一步配置成給該數(shù)據(jù)幀加一個(gè)暫停標(biāo)志。
8.如權(quán)利要求2的譯碼器,其中的輸出裝置(40)配置成僅當(dāng)與該標(biāo)志幀有關(guān)的標(biāo)志是送標(biāo)志時(shí)才向某外部設(shè)備提供該標(biāo)志數(shù)據(jù)幀。
9.如權(quán)利要求1的譯碼器,其中的數(shù)據(jù)幀含多個(gè)數(shù)據(jù)字段包括其中有數(shù)據(jù)的第一個(gè)字段,而輸入裝置進(jìn)一步被配成修改這第一個(gè)字段中的數(shù)據(jù)以建立標(biāo)志數(shù)據(jù)。
10.一種用于計(jì)算機(jī)系統(tǒng)的存儲(chǔ)設(shè)備(18),該存儲(chǔ)設(shè)備(18)含有一個(gè)伺服裝置(24);一個(gè)安裝在伺服裝置(24)上并有其上記錄了數(shù)據(jù)的至少一個(gè)數(shù)據(jù)道的存儲(chǔ)介質(zhì)(22),其中的數(shù)據(jù)道至少含多個(gè)數(shù)據(jù)幀;一個(gè)讀出裝置(28);該裝置操作時(shí)配置成讀數(shù)據(jù)道的至少一部分并將讀信號(hào)輸出;一個(gè)連接到讀出裝置(28)并配置成接收讀信號(hào)和根據(jù)該讀信號(hào)的至少一部分將至少一個(gè)數(shù)據(jù)幀輸出的數(shù)據(jù)引擎(30);一個(gè)輸入裝置(36)連接到數(shù)據(jù)引擎(30)的并配置成接收該數(shù)據(jù)幀,確定該數(shù)據(jù)幀的某些特征,根據(jù)該數(shù)據(jù)幀的至少一個(gè)特征給該數(shù)據(jù)幀加一個(gè)標(biāo)志數(shù)據(jù)并將該標(biāo)志數(shù)據(jù)幀輸出;一個(gè)幀管理裝置(38),連到輸入裝置(36)并配置成接收來自輸入裝置(36)的標(biāo)志數(shù)據(jù)幀,存儲(chǔ)該標(biāo)志數(shù)據(jù)幀并在隨后將該標(biāo)志數(shù)據(jù)幀輸出;和一個(gè)輸出裝置(40)連接到幀管理裝置(38)并配置成接收來自幀管理裝置(38)的標(biāo)志數(shù)據(jù)幀并將該標(biāo)志數(shù)據(jù)幀提供給一外部設(shè)備作該標(biāo)志數(shù)據(jù)幀中的一個(gè)數(shù)據(jù)功能。
11.一種將來自數(shù)據(jù)存儲(chǔ)介質(zhì)(22)的數(shù)據(jù)傳送給一個(gè)外部設(shè)備的方法;該方法包含從有至少一個(gè)數(shù)據(jù)道的數(shù)據(jù)存儲(chǔ)介質(zhì)(22)讀至少一個(gè)數(shù)據(jù)幀,該道含多個(gè)數(shù)據(jù)幀,確定該數(shù)據(jù)幀的某些特征;根據(jù)該數(shù)據(jù)幀的至少一個(gè)特征給該數(shù)據(jù)幀加一個(gè)標(biāo)志數(shù)據(jù);和給某外部設(shè)備提供該標(biāo)志數(shù)據(jù)幀作該帶標(biāo)志數(shù)據(jù)中的標(biāo)志數(shù)據(jù)的一個(gè)功能的提供技巧。
12.如權(quán)利要求11的方法,其中的給該數(shù)據(jù)幀加標(biāo)志數(shù)據(jù)步驟還包含從一組含送標(biāo)志、跳過標(biāo)志、暫停標(biāo)志和停止標(biāo)志的標(biāo)志中至少一個(gè)選擇標(biāo)志數(shù)據(jù)。
13.如權(quán)利要求12的方法,其中的給該數(shù)據(jù)幀加標(biāo)志數(shù)據(jù)步驟還包含當(dāng)至少一個(gè)特征標(biāo)識(shí)出這個(gè)數(shù)據(jù)幀是選自一組含有來自寫一次道的一個(gè)主區(qū)幀、來自定長(zhǎng)寫包道的一個(gè)主區(qū)幀、來自變長(zhǎng)寫包道的一個(gè)主區(qū)幀和來自變長(zhǎng)寫包道的一個(gè)有效連接區(qū)幀的數(shù)據(jù)幀中的至少一個(gè)時(shí)給該數(shù)據(jù)幀加一個(gè)送標(biāo)志。
14.如權(quán)利要求12的方法,其中的給該數(shù)據(jù)幀加標(biāo)志數(shù)據(jù)步驟還包含當(dāng)至少一個(gè)特征標(biāo)識(shí)出該數(shù)據(jù)幀是一個(gè)來自定長(zhǎng)寫包道的連接區(qū)幀或一個(gè)插條幀時(shí)給該數(shù)據(jù)幀加一個(gè)跳過標(biāo)志。
15.如權(quán)利要求12的方法,其中的給該數(shù)據(jù)幀加標(biāo)志數(shù)據(jù)步驟還包含當(dāng)至少一個(gè)特征標(biāo)識(shí)出該數(shù)據(jù)幀是一個(gè)來自變長(zhǎng)寫包道的連接區(qū)幀時(shí)給它加一個(gè)暫停標(biāo)志。
16.如權(quán)利要求12的方法,其中的給該數(shù)據(jù)幀加標(biāo)志數(shù)據(jù)步驟還含有當(dāng)至少一個(gè)特征標(biāo)識(shí)出該數(shù)據(jù)幀不是一個(gè)有效的數(shù)據(jù)幀時(shí)給它加一個(gè)停止標(biāo)志。
17.如權(quán)利要求12的方法,其中的給該數(shù)據(jù)幀加標(biāo)志數(shù)據(jù)步驟還包含當(dāng)至少一個(gè)特征標(biāo)識(shí)出該數(shù)據(jù)幀不是選自一組含有一個(gè)來自寫一次道的主區(qū)幀、一個(gè)來自定長(zhǎng)寫包道的主區(qū)幀、一個(gè)來自變長(zhǎng)寫包道的主區(qū)幀、一個(gè)來自定長(zhǎng)寫包道的連接區(qū)幀和一個(gè)來自變長(zhǎng)寫包道的連接區(qū)幀的數(shù)據(jù)幀中的至少一個(gè)時(shí)給該數(shù)據(jù)幀加一個(gè)暫停標(biāo)志。
18.如權(quán)利要求12的方法,其中的給一外部設(shè)備提供該標(biāo)志數(shù)據(jù)幀步驟還包含僅當(dāng)與該標(biāo)志數(shù)據(jù)幀有關(guān)的標(biāo)志數(shù)據(jù)是送標(biāo)志時(shí)才給該外部設(shè)備提供該標(biāo)志數(shù)據(jù)幀。
19.如權(quán)利要求11的方法,其中的給該數(shù)據(jù)幀加標(biāo)志數(shù)據(jù)步驟還包含修改該數(shù)據(jù)幀中的數(shù)據(jù)以建立標(biāo)志數(shù)據(jù)。
20.如權(quán)利要求11的方法,其中的確定該數(shù)據(jù)幀的某些特征步驟還包含從該數(shù)據(jù)存儲(chǔ)介質(zhì)的選定部分讀出數(shù)據(jù)以確定該數(shù)據(jù)幀是否選自一組含有一個(gè)來自寫一次道的主區(qū)幀、一個(gè)來自定長(zhǎng)寫包道的主區(qū)幀、一個(gè)來自變長(zhǎng)寫包道的主區(qū)幀、一個(gè)定長(zhǎng)道的連接區(qū)幀和一個(gè)來自變長(zhǎng)寫包道的連接區(qū)幀的數(shù)據(jù)幀中的至少一個(gè)。
全文摘要
為顯著地減輕數(shù)據(jù)存儲(chǔ)設(shè)備的處理負(fù)擔(dān)和理順從存儲(chǔ)設(shè)備向外設(shè)傳送數(shù)據(jù)幀的關(guān)系而提供了各種方法和裝置,這些方法和裝置考慮了記錄在該存儲(chǔ)介質(zhì)中的數(shù)據(jù)的某些已知特征或用其他方法可確定的特征,并有選擇地將標(biāo)志數(shù)據(jù)加到每個(gè)數(shù)據(jù)幀上。然后用該標(biāo)志數(shù)據(jù)來確定每個(gè)數(shù)據(jù)幀的配置以及在該存儲(chǔ)設(shè)備中處理該數(shù)據(jù)幀時(shí)需要采取什么行動(dòng)(如果有需要的話)。由于上述“帶標(biāo)志”的動(dòng)作(它可以是邏輯的也可以是物理的)會(huì)在存儲(chǔ)設(shè)備電路的開始階段采取。因此后續(xù)的處理量大大減少了。結(jié)果是,使該存儲(chǔ)設(shè)備的等待時(shí)間也減少了。本發(fā)明的各種實(shí)施方案可用于各種存儲(chǔ)設(shè)備包括(但不限于)光驅(qū)、磁盤和磁帶驅(qū)動(dòng)器及類似的數(shù)據(jù)存儲(chǔ)設(shè)備。
文檔編號(hào)G11B7/00GK1421035SQ99801264
公開日2003年5月28日 申請(qǐng)日期1999年5月31日 優(yōu)先權(quán)日1998年6月2日
發(fā)明者K·羅斯 申請(qǐng)人:皇家菲利浦電子有限公司