專利名稱:數(shù)據(jù)存儲器、數(shù)據(jù)處理系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)存儲器,它所包括的存儲裝置具有分為多塊的數(shù)據(jù)存儲區(qū),其中寫入數(shù)據(jù)存儲區(qū)的數(shù)據(jù)按塊管理,本發(fā)明涉及一種用于將數(shù)據(jù)寫至和/或讀自數(shù)據(jù)存儲器的數(shù)據(jù)處理系統(tǒng)和方法。
迄今為止提出過一種卡型外部數(shù)據(jù)存儲器(今后稱為“存儲卡”),它采用閃爍存儲器(一種非易失性存儲器,類似于EEPROM(電可擦可編程只讀存儲器))作為外部數(shù)據(jù)存儲器,它用于電子設(shè)備中,例如計算機(jī)等設(shè)備中。
在存儲卡中,作為數(shù)據(jù)存儲器的閃爍存儲器具有分為多塊的數(shù)據(jù)存儲區(qū),同時寫入閃爍存儲器的數(shù)據(jù)按塊管理。
在閃爍存儲器中,如數(shù)據(jù)以彼此不同的頻率寫入不同的塊,則以高頻率寫入數(shù)據(jù)的塊可能出錯。為避免這點,必須以大致相同的頻率將數(shù)據(jù)寫至所有塊,同時不將數(shù)據(jù)寫至出錯塊。
為滿足以上要求,使用配備著用作數(shù)據(jù)存儲裝置的閃爍存儲器的存儲卡的數(shù)據(jù)處理系統(tǒng)適配為使存入閃爍存儲器的數(shù)據(jù)分為多塊,將地址信息加至每塊,同時數(shù)據(jù)塊寫至閃爍存儲器中那些以較低頻率寫入數(shù)據(jù)的塊中。應(yīng)注意在下面的描述中作為劃分閃爍存儲器的數(shù)據(jù)存儲區(qū)的結(jié)果的塊稱為“物理塊”,而作為劃分?jǐn)?shù)據(jù)的結(jié)果的塊則稱為“邏輯塊”,以便避免在存儲區(qū)塊與數(shù)據(jù)塊之間產(chǎn)生混淆。還有,物理塊的地址稱為“物理地址”,而邏輯塊的地址稱為“邏輯地址”。
為自存儲卡讀取數(shù)據(jù),首先訪問閃爍存儲器的所有物理塊,同時在數(shù)據(jù)處理電路的內(nèi)部存儲器內(nèi)生成一個表,用以表明物理塊的物理地址與存在物理塊中的邏輯塊的邏輯地址之間的對應(yīng)關(guān)系。引用此表以檢測存放所需數(shù)據(jù)的物理塊的物理地址并自該物理塊讀取所需數(shù)據(jù)。
此外,為將數(shù)據(jù)寫至存儲卡,首先訪問閃爍存儲器所有物理塊并在數(shù)據(jù)處理電路的內(nèi)部存儲器中生成一個表,用以表明物理塊的物理地址與存在物理塊中的邏輯塊中的邏輯地址之間的對應(yīng)關(guān)系。然后引用此表以檢測未用的物理塊并將所需數(shù)據(jù)寫至未用物理塊。
近來愈來愈多地要求電子設(shè)備如計算機(jī)等具有更大數(shù)據(jù)處理能力并能同時處理極大量數(shù)據(jù)。在這些情況下,與這類電子設(shè)備一起使用的外部數(shù)據(jù)存儲器也應(yīng)具有更大容量。還有,由于建議閃爍存儲器具有大為改變的集成度,因此所建議改善的存儲卡具有大至例如128MB的容量。
如此大容量的存儲卡使用具有大量物理塊的閃爍存儲器。因此,在大容量存儲卡中,每次寫和讀數(shù)據(jù)時所生成的表也很大,這要求數(shù)據(jù)處理電路具有大容量內(nèi)部存儲器。這些要求增加了存儲卡的制造成本。
因此,本發(fā)明的一個目的是通過提供一個廉價數(shù)據(jù)存儲器和使用該數(shù)據(jù)存儲器的數(shù)據(jù)處理系統(tǒng)和方法而克服現(xiàn)有技術(shù)的上述缺點,該數(shù)據(jù)存儲器適合于具有擴(kuò)大的存儲容量并允許高效率地讀或?qū)憯?shù)據(jù)。
可通過提供數(shù)據(jù)存儲器以連至外部設(shè)備而達(dá)到以上目的,該數(shù)據(jù)存儲器根據(jù)本發(fā)明包括一個具有存儲區(qū)的存儲裝置,該存儲區(qū)分為多塊,而每一塊具有一個特定的絕對地址;以及一個用于根據(jù)來自外部設(shè)備的命令將數(shù)據(jù)寫至或讀自存儲裝置的控制裝置;該控制裝置包含一個轉(zhuǎn)換表,用于將來自外部設(shè)備的命令所指向的數(shù)據(jù)相對地址轉(zhuǎn)換為絕對地址。
還可以通過提供包括數(shù)據(jù)處理設(shè)備的數(shù)據(jù)處理系統(tǒng)而達(dá)到以上目的,該數(shù)據(jù)處理設(shè)備連至包括存儲裝置的數(shù)據(jù)存儲器,而該存儲裝置具有分為多塊的存儲區(qū),及每一塊具有一個特定的絕對地址;數(shù)據(jù)處理設(shè)備根據(jù)本發(fā)明包括用于將命令發(fā)至存儲裝置以寫或讀數(shù)據(jù)的裝置;
該控制裝置包含一個轉(zhuǎn)換表,用于將來自外部設(shè)備的命令所指向的數(shù)據(jù)相對地址轉(zhuǎn)換為絕對地址。
還能通過提供將數(shù)據(jù)寫至或讀自存儲裝置的數(shù)據(jù)處理方法而達(dá)到以上目的,該存儲裝置具有分為多塊的存儲區(qū),其中每一塊具有一個特定的絕對地址;該方法根據(jù)本發(fā)明包括以下步驟生成一個轉(zhuǎn)移表,用于將寫至或讀自存儲裝置的數(shù)據(jù)的相對地址轉(zhuǎn)換為絕對地址;以及引用轉(zhuǎn)換表以寫或讀數(shù)據(jù)。
下面結(jié)合附圖的本發(fā)明優(yōu)選實施例的詳細(xì)描述將使本發(fā)明的這些目的和其它目的,特征和優(yōu)點更為明顯。
圖1是根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)中所用數(shù)據(jù)處理設(shè)備的原理框圖;圖2是圖1中數(shù)據(jù)處理系統(tǒng)中所用存儲卡的原理框圖;圖3概要地闡釋圖1中數(shù)據(jù)處理系統(tǒng)中所用應(yīng)用數(shù)據(jù)的配置;圖4概要地闡釋圖1中數(shù)據(jù)處理系統(tǒng)中所用閃爍存儲器的配置;圖5是自閃爍存儲器中讀取數(shù)據(jù)的例子的操作流程圖;圖6概要地闡釋表示物理地址與邏輯地址之間對應(yīng)關(guān)系的表;圖7是向閃爍存儲器寫入數(shù)據(jù)的例子的操作流程圖;以及圖8是將寫入閃爍存儲器的數(shù)據(jù)更新的例子的操作流程圖。
現(xiàn)參照圖1,以原理框圖的形式闡釋根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)。該數(shù)據(jù)處理系統(tǒng)一般以參照數(shù)字1標(biāo)示,并包括數(shù)據(jù)處理設(shè)備10作為主設(shè)備,及存儲卡20作為通過串行接口連至數(shù)據(jù)處理設(shè)備10的外部存儲設(shè)備。
此處將借助例子描述通過串行接口在數(shù)據(jù)處理設(shè)備10與存儲卡20之間的數(shù)據(jù)傳輸。然而應(yīng)注意,本發(fā)明亦可應(yīng)用于通過并行接口傳輸數(shù)據(jù)的系統(tǒng)。
數(shù)據(jù)處理設(shè)備10根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)1中包括的數(shù)據(jù)處理設(shè)備10包括一個用于運(yùn)行以應(yīng)用數(shù)據(jù)為基礎(chǔ)的預(yù)定程序的數(shù)據(jù)處理電路11,一個用于在數(shù)據(jù)處理設(shè)備10與作為外部設(shè)備的存儲卡20之間傳輸應(yīng)用數(shù)據(jù)的串行接口電路12,一個配備于數(shù)據(jù)處理電路11與串行接口電路12之間用于臨時存儲由數(shù)據(jù)處理電路11提供的應(yīng)用數(shù)據(jù)的寄存器13,以及一個連至數(shù)據(jù)處理電路11,串行接口電路12和寄存器13中的每一個以控制這些部件11、12和13的操作的控制器14。
在數(shù)據(jù)處理設(shè)備10中,當(dāng)決定應(yīng)將應(yīng)用數(shù)據(jù)存入作為外部設(shè)備的存儲卡20中以便數(shù)據(jù)處理電路11運(yùn)行預(yù)定程序時,在控制器14的控制下,數(shù)據(jù)處理電路11將應(yīng)用數(shù)據(jù)和例如寫命令之類的控制數(shù)據(jù)寫至寄存器13。
然后在控制器14的控制下,串行接口電路12自寄存器13中讀取應(yīng)用數(shù)據(jù)和控制數(shù)據(jù),將它們轉(zhuǎn)換為串行數(shù)據(jù),并將它們與時鐘信號和狀態(tài)信號一起傳送至存儲卡20。還有,當(dāng)在數(shù)據(jù)處理設(shè)備10中決定應(yīng)自作為外部設(shè)備的存儲卡20中讀取應(yīng)用數(shù)據(jù)以便數(shù)據(jù)處理電路11運(yùn)行預(yù)定程序時,在控制器14的控制下,數(shù)據(jù)處理電路11將類似讀命令之類的控制數(shù)據(jù)寫至寄存器13。因此,在控制器14的控制下,串行接口電路12自寄存器13中讀取控制數(shù)據(jù),將它轉(zhuǎn)換為串行數(shù)據(jù),并將它與時鐘信號和狀態(tài)信號一起傳送至存儲卡20。
已按照控制數(shù)據(jù)自存儲卡20傳送至數(shù)據(jù)處理設(shè)備10的應(yīng)用數(shù)據(jù)由串行接口電路12轉(zhuǎn)換為并行數(shù)據(jù)。于是數(shù)據(jù)處理電路11自寄存器13中讀取應(yīng)用數(shù)據(jù),并在控制器14的控制下以預(yù)定方式將它處理。
根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)1中所用數(shù)據(jù)處理設(shè)備10不限于任何特定設(shè)備,但它可為一個能在它本身與例如存儲卡20的外部設(shè)備之間傳送數(shù)據(jù)的設(shè)備,包括個人計算機(jī),數(shù)字照像機(jī),數(shù)字錄像機(jī)或類似設(shè)備。
在數(shù)據(jù)處理系統(tǒng)1中,數(shù)據(jù)處理設(shè)備10與存儲卡20通過串行接口電路12,更具體地說通過至少三條數(shù)據(jù)線SCLK,State和DIO,相互連接。第一數(shù)據(jù)線SCLK用于傳送供數(shù)據(jù)傳輸用的時鐘信號,第二數(shù)據(jù)線State用于傳送數(shù)據(jù)傳輸所必需的狀態(tài)信號,以及第三數(shù)據(jù)線DIO用于串行地發(fā)送準(zhǔn)備寫至存儲卡20的應(yīng)用數(shù)據(jù)和控制數(shù)據(jù)或發(fā)送準(zhǔn)備自存儲卡20讀取的應(yīng)用數(shù)據(jù)和控制數(shù)據(jù)。通過這些數(shù)據(jù)線在數(shù)據(jù)處理設(shè)備10和存儲卡20之間傳送應(yīng)用數(shù)據(jù)和控制數(shù)據(jù)。
存儲卡20如圖2中所示,存儲卡20包括一個用作存儲裝置的閃爍存儲器21,一個用于在存儲卡20和數(shù)據(jù)處理設(shè)備10之間傳送應(yīng)用數(shù)據(jù)和控制數(shù)據(jù)的串/并和并/串接口電路(今后將稱為“S/P和P/S接口電路”)22,一個配備在閃爍存儲器21與S/P和P/S接口電路22之間用于暫時存放由S/P和P/S接口電路22提供的應(yīng)用數(shù)據(jù)的寄存器23,一個連至寄存器23的ECC電路24,如寫入寄存器23中的應(yīng)用數(shù)據(jù)中存在任何錯誤,則該ECC電路即根據(jù)一個糾錯碼糾正該錯,以及包括一個連至閃爍存儲器21,S/P和P/S接口電路22和寄存器23中的每一個以控制這些部件21、22和23的操作的控制器25。
S/P和P/S接口電路22通過上述三條數(shù)據(jù)線SCLK,State和DIO連至數(shù)據(jù)處理設(shè)備10的串行接口電路12以便在存儲卡20與數(shù)據(jù)處理設(shè)備10之間傳送應(yīng)用數(shù)據(jù)和控制數(shù)據(jù)。更具體地說,S/P和P/S接口電路22將自數(shù)據(jù)處理設(shè)備10的串行接口電路12發(fā)送來的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)并將它寫至寄存器23。此外,S/P和P/S接口電路22將讀自寄存器23的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)并將它發(fā)送至數(shù)據(jù)處理設(shè)備10的串行接口電路12。
通過第三數(shù)據(jù)線DIO在S/P和P/S接口電路22與數(shù)據(jù)處理設(shè)備10之間傳送的串行數(shù)據(jù)與由數(shù)據(jù)處理設(shè)備10通過第一數(shù)據(jù)線SCLK發(fā)送的時鐘信號同步。與此同時,在第三數(shù)據(jù)線DIO上傳送的串行數(shù)據(jù)根據(jù)在第二數(shù)據(jù)線State上傳送的狀態(tài)信號加以分類。串行數(shù)據(jù)的種類包括例如準(zhǔn)備存入閃爍存儲器21的應(yīng)用數(shù)據(jù),準(zhǔn)備自閃爍存儲器21中讀取的應(yīng)用數(shù)據(jù),以及例如寫命令,讀命令等的控制數(shù)據(jù)。
當(dāng)自數(shù)據(jù)處理設(shè)備10傳送的數(shù)據(jù)是例如寫命令或讀命令的控制數(shù)據(jù)時,S/P和P/S接口電路22向控制器25提供數(shù)據(jù)。
如前所述,寄存器23臨時地存儲一個在閃爍存儲器21與S/P和P/S接口電路22之間傳送的應(yīng)用數(shù)據(jù)。
ECC電路24將一個糾錯碼加至由S/P和P/S接口電路22存入寄存器23的應(yīng)用數(shù)據(jù)中,此外,如在讀自閃爍存儲器21和寫至寄存器23的應(yīng)用數(shù)據(jù)中出現(xiàn)任何錯誤,則ECC電路24將此錯誤糾正。
控制器25根據(jù)由S/P和P/S接口電路22提供的控制數(shù)據(jù)來控制存儲卡20的操作。也即,根據(jù)由S/P和P/S接口電路22提供的寫命令,控制器25讀出一個暫時寫入寄存器23中的應(yīng)用數(shù)據(jù)并將它存入閃爍存儲器21。還有,根據(jù)由S/P和P/S接口電路22提供的讀命令,控制器25自閃爍存儲器21中讀取應(yīng)用數(shù)據(jù)并將它寫至寄存器23。
當(dāng)要存儲的應(yīng)用數(shù)據(jù)和寫命令自數(shù)據(jù)處理設(shè)備10傳送至如上所述地構(gòu)成的存儲卡20時,首先由S/P和P/S接口電路22將數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)并向控制器25提供寫命令,接著在控制器25的控制下將應(yīng)用數(shù)據(jù)寫至寄存器23。
此處ECC電路24將糾錯碼加至寫入寄存器23中的應(yīng)用數(shù)據(jù)中。
然后根據(jù)由S/P和P/S接口電路22提供的寫命令,控制器25自寄存器23中讀取應(yīng)用數(shù)據(jù)并將它寫至閃爍存儲器21。
在存儲卡20中,當(dāng)自數(shù)據(jù)處理設(shè)備10收到讀命令時,S/P和P/S接口電路22向控制器25提供讀命令。
然后根據(jù)由S/P和P/S接口電路22提供的讀命令,控制器25自閃爍存儲器21中讀取應(yīng)用數(shù)據(jù)并將它寫至寄存器23。如寫入寄存器23的應(yīng)用數(shù)據(jù)中出現(xiàn)錯誤,則連至寄存器23的ECC電路24根據(jù)糾錯碼糾正錯誤。
然后在控制器25的控制下,S/P和P/S接口電路22自寄存器23中讀取應(yīng)用數(shù)據(jù),將它轉(zhuǎn)換為串行數(shù)據(jù)并將它發(fā)送至數(shù)據(jù)處理設(shè)備10。
前面已描述過,數(shù)據(jù)處理系統(tǒng)1具有一個配備于存儲卡20內(nèi)的ECC電路24,用于糾正存儲卡20處的應(yīng)用數(shù)據(jù)中的任何錯誤。然而應(yīng)注意,可在數(shù)據(jù)處理設(shè)備10中配備ECC電路24,用于糾正數(shù)據(jù)處理設(shè)備10處應(yīng)用數(shù)據(jù)中的任何錯誤。在此情況下,將在數(shù)據(jù)處理設(shè)備10與存儲卡20之間傳送已加入糾錯碼的應(yīng)用數(shù)據(jù)。
應(yīng)用數(shù)據(jù)配置,閃爍存儲器結(jié)構(gòu)在數(shù)據(jù)處理系統(tǒng)1中,用于運(yùn)行預(yù)定程序的應(yīng)用數(shù)據(jù)分為多個邏輯塊,如圖3中所示,每個邏輯塊是一個數(shù)據(jù)擦除單元。應(yīng)用數(shù)據(jù)按存儲卡20中的邏輯塊進(jìn)行管理。一起用于組成應(yīng)用數(shù)據(jù)的邏輯塊中的每一塊都被賦予一個邏輯地址。每個邏輯地址用當(dāng)作數(shù)據(jù)進(jìn)行處理的邏輯號表示。
當(dāng)應(yīng)用數(shù)據(jù)存入存儲卡20的閃爍存儲器21中時,邏輯塊并不總是按它們的邏輯地址順序存入閃爍存儲器21的。然而當(dāng)自閃爍存儲器21中讀出應(yīng)用數(shù)據(jù)時,將按邏輯地址順序?qū)⑦壿媺K重新排列以重建初始應(yīng)用數(shù)據(jù)。
一起組成應(yīng)用數(shù)據(jù)的邏輯塊中的每一塊由多段組成,每一段是一個寫或讀單元。每一段分為例如512字節(jié)的實際數(shù)據(jù)和16字節(jié)的冗余數(shù)據(jù)。邏輯塊的邏輯地址散開為多個段中的這類冗余數(shù)據(jù)。每段被賦予一個特定段號,可根據(jù)此段號訪問該段。
閃爍存儲器21具有一個存儲區(qū),它包括多個區(qū)段,每個區(qū)段分為如圖4中所示的多個物理塊。存儲于閃爍存儲器21中的數(shù)據(jù)按物理塊管理及應(yīng)用數(shù)據(jù)的一個邏輯塊存于一個物理塊中。
如上所述,閃爍存儲器21的每個區(qū)段分為多個物理塊,當(dāng)數(shù)據(jù)讀自或?qū)懼灵W爍存儲器21時,在閃爍存儲器21的區(qū)段中生成一個表,用于標(biāo)明閃爍存儲器21的物理塊的物理地址與應(yīng)用數(shù)據(jù)的邏輯塊的邏輯地址之間的對應(yīng)關(guān)系。
應(yīng)注意到,這些區(qū)段與組成每個區(qū)段的物理塊中的每一塊事先都已彼此相關(guān)連。更具體地說,關(guān)于由其地址為o至n的物理塊組成的區(qū)段o,例如只有具有相應(yīng)邏輯號o至s的邏輯塊存入?yún)^(qū)段o,但具有邏輯號s+1和隨后各號的邏輯塊則不存入。邏輯號o至s的邏輯塊將不連續(xù)地存入?yún)^(qū)段o中物理地址o至n的物理塊中。
數(shù)據(jù)讀取從先前已描述過的數(shù)據(jù)處理系統(tǒng)1中的存儲卡20的閃爍存儲器21中讀取的數(shù)據(jù)例子將在下面描述
為從閃爍存儲器21中讀取數(shù)據(jù),通過串行接口電路12及S/P和P/S接口電路22自數(shù)據(jù)處理設(shè)備10中的數(shù)據(jù)處理電路11傳送一個讀命令至存儲卡20中的控制器25。
根據(jù)讀命令,存儲卡20的控制器25遵循由圖5中流程圖規(guī)定的過程來從閃爍存儲器21中讀取所需數(shù)據(jù)。
更具體地說,首先在步1,控制器25根據(jù)將要讀取的段數(shù)來計算數(shù)據(jù)所屬邏輯塊的邏輯地址。例如,如一個邏輯塊分為(t+1)個段,其段號為100的段所屬的邏輯塊的邏輯地址通過計算100/(t+1)來確定。
如先前所描述的,在閃爍存儲器21的區(qū)段和存于用于組成每個區(qū)段的物理塊中的邏輯塊之間的對應(yīng)關(guān)系是預(yù)先確定的。因此,當(dāng)待讀數(shù)據(jù)所屬邏輯塊的邏輯地址被確定時,可以知道數(shù)據(jù)存儲在閃爍存儲器21的哪個區(qū)段內(nèi)。
其次在步2,控制器25在其內(nèi)部存儲器中生成一個表,用于顯示組成存放數(shù)據(jù)的區(qū)段的物理塊的物理地址與存于物理塊內(nèi)的邏輯塊的邏輯地址之間的對應(yīng)關(guān)系,如圖6中所示。與此同時,如在內(nèi)部存儲器內(nèi)已為任何其它區(qū)段生成了這類表,則控制器25將把已有的表改寫為供存放待讀取數(shù)據(jù)的區(qū)段用的表。
然后在步3,控制器25引用如此生成的表以尋找其中存放著待讀數(shù)據(jù)所屬邏輯塊的物理塊。
再在步4,控制器25在物理塊內(nèi)尋找用于存放待讀數(shù)據(jù)的地點。在物理塊內(nèi),數(shù)據(jù)按段號順序存放。因此,例如,如一個邏輯塊分為(t+1)個段,則邏輯塊內(nèi)其段號為100的數(shù)據(jù)的存放地點通過計算100-B×(t+1)來確定(其中B是數(shù)據(jù)所屬邏輯塊的邏輯地址)。
其次在步5,控制器25訪問物理塊內(nèi)存放待讀數(shù)據(jù)的地點,并自所考慮的物理塊中讀取所需數(shù)據(jù)。
如上所述,控制器25將如此自閃爍存儲器21中讀取的數(shù)據(jù)寫至寄存器23。如果如此寫入寄存器23的數(shù)據(jù)中出現(xiàn)任何錯誤,則它在連至寄存器23的ECC電路24中根據(jù)糾錯碼經(jīng)受糾錯操作。
如此糾錯的數(shù)據(jù)通過S/P和P/S接口電路22和串行接口電路12傳送至數(shù)據(jù)處理設(shè)備10中的數(shù)據(jù)處理電路11。
數(shù)據(jù)寫入現(xiàn)通過下面例子描述數(shù)據(jù)寫至數(shù)據(jù)處理系統(tǒng)1中存儲卡20的閃爍存儲器21為將數(shù)據(jù)寫至閃爍存儲器21,首先通過串行接口電路12及S/P和P/S接口電路22將寫命令自數(shù)據(jù)處理設(shè)備10的數(shù)據(jù)處理電路11傳送至存儲卡20中的控制器25,及通過串行接口電路12及S/P和P/S接口電路22將數(shù)據(jù)寫至存儲卡20的寄存器23。
根據(jù)寫命令,存儲卡20的控制器25遵循圖7中流程圖所規(guī)定的過程以便將所需數(shù)據(jù)寫至閃爍存儲器21。
更具體地說,首先在步11,控制器25根據(jù)待寫數(shù)據(jù)的段號來計算數(shù)據(jù)所屬邏輯塊的邏輯地址,例如,如一個邏輯塊分為(t+1)段,則其段號為100的段所屬的邏輯塊的邏輯地址通過計算100/(t+1)而確定。
如先前所描述的,預(yù)先確定了閃爍存儲器21的區(qū)段與用于組成每個區(qū)段的物理塊內(nèi)存儲的邏輯塊之間的對應(yīng)關(guān)系。因此,當(dāng)待寫數(shù)據(jù)所屬邏輯塊的邏輯地址被確定后,即可知道數(shù)據(jù)存放在閃爍存儲器21的哪個區(qū)段中。
其次在步12,控制器25在其內(nèi)部存儲器內(nèi)生成一個表,用于顯示組成數(shù)據(jù)要寫入的區(qū)段的物理塊的物理地址與存于物理塊中的邏輯塊的邏輯地址之間的對應(yīng)關(guān)系,如圖6中所示。與此同時,如在內(nèi)部存儲器中已為任何其它區(qū)段生成了這樣一個表,則控制器25將已有的表重寫為數(shù)據(jù)要寫入的區(qū)段所用的表。
然后在步13,控制器25引用如此生成的表以尋找用于組成該區(qū)段的物理塊中的未用的一塊。
再在步14,控制器25自寄存器23中讀取待寫至閃爍存儲器21的數(shù)據(jù),并將它寫至未用的物理塊。
其次在步15,控制器25重寫該表以將其表述為對應(yīng)于這樣寫入數(shù)據(jù)的物理塊的邏輯地址自“未用”改變?yōu)橐褜憯?shù)據(jù)所屬邏輯塊的邏輯地址。
數(shù)據(jù)更新下面將通過例子描述數(shù)據(jù)處理系統(tǒng)1中存儲卡20的閃爍存儲器所寫入數(shù)據(jù)的更新為更新寫入閃爍存儲器21的數(shù)據(jù),首先通過串行接口電路12及S/P和P/S接口電路22將一條讀命令自數(shù)據(jù)處理設(shè)備10的數(shù)據(jù)處理電路11傳送至存儲卡20中的控制器25。
根據(jù)該讀命令,存儲卡20的控制器25遵循圖5中所示流程圖所規(guī)定的過程以便自閃爍存儲器21中讀取所需數(shù)據(jù)。
自閃爍存儲器21中所讀數(shù)據(jù)在控制器25的控制下寫至寄存器23。如果如此寫入寄存器23的數(shù)據(jù)中發(fā)現(xiàn)任何錯誤,則根據(jù)糾錯碼在連至寄存器23的ECC電路24中將其糾錯。
如此糾過錯的數(shù)據(jù)通過S/P和P/S接口電路22及串行接口電路12傳送至數(shù)據(jù)處理設(shè)備10中的數(shù)據(jù)處理電路11。在數(shù)據(jù)處理電路11中將數(shù)據(jù)更新。在塊中完成數(shù)據(jù)更新。更新日期所屬的所有邏輯塊都重寫過。
數(shù)據(jù)處理電路11中如此更新過的數(shù)據(jù)通過串行接口電路12及S/P和P/S接口電路22與寫命令一起傳送至存儲卡20。
根據(jù)傳自數(shù)據(jù)處理設(shè)備10的寫命令,存儲卡20的控制器25遵循圖7中流程圖所規(guī)定的過程以將更新的數(shù)據(jù)寫至閃爍存儲器21。也即,更新的數(shù)據(jù)寫至用于形成數(shù)據(jù)要寫入的區(qū)段的物理塊中的一個未用塊。
如圖8中所示,在更新的數(shù)據(jù)寫至未用的物理塊后,存儲卡20中的控制器25把在其內(nèi)部存儲器內(nèi)生成的表改寫以便將其表述為對應(yīng)于已寫入更新的數(shù)據(jù)的物理塊的邏輯地址自“未用”改變?yōu)楦碌臄?shù)據(jù)所屬邏輯塊的邏輯地址,以及將其表述為對應(yīng)于寫入更新前的數(shù)據(jù)的物理塊的邏輯地址自更新的數(shù)據(jù)所屬的邏輯塊的邏輯地址改變?yōu)椤凹河谩薄?br>
最后,控制器25在將塊中數(shù)據(jù)更新之前將它們擦除。也即,控制器25引用在其內(nèi)部存儲器中的表以便將表中表述為“己用”的邏輯塊中的數(shù)據(jù)控除。
其他前面借助例子說明了都是在存儲卡20中的控制器25的控制下自和向閃爍存儲器讀和寫數(shù)據(jù)的。然而應(yīng)注意,可在數(shù)據(jù)處理設(shè)備10中的控制器14的控制下讀和寫這些數(shù)據(jù)。在此情況下,在數(shù)據(jù)處理設(shè)備10的控制器14中的內(nèi)部存儲器的區(qū)段中生成一個表,用于標(biāo)明物理塊的物理地址與存于物理塊中的邏輯塊的邏輯地址之間的對應(yīng)關(guān)系。
在根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)1中,為自或向存儲卡20的閃爍存儲器21讀或?qū)憯?shù)據(jù)。如上所述地在閃爍存儲器21的區(qū)段中生成一個表,用于表明組成閃爍存儲器21的存儲區(qū)的物理塊的物理地址與寫入物理塊的邏輯塊的邏輯地址之間的對應(yīng)關(guān)系。因此,即使當(dāng)閃爍存儲器21設(shè)計成為具有增長數(shù)量的物理塊而擴(kuò)大容量時,存儲卡20中的控制器25的內(nèi)部存儲器或數(shù)據(jù)處理設(shè)備10中的控制器14的內(nèi)部存儲器也可以只有足夠在閃爍存儲器21的區(qū)段中生成這類表的容量。
因此,本發(fā)明能提供具有更大容量存儲卡20的數(shù)據(jù)處理系統(tǒng)1而不會由于擴(kuò)大存儲卡20中控制器25的內(nèi)部存儲器容量或數(shù)據(jù)處理設(shè)備10中控制器14的內(nèi)部存儲器容量而增加成本。
在根據(jù)本發(fā)明的存儲卡20中,當(dāng)數(shù)據(jù)讀自或?qū)懼灵W爍存儲器21中時,在閃爍存儲器21的區(qū)段中生成一個表,用于標(biāo)明形成閃爍存儲器21的存儲區(qū)的物理塊的物理地址與寫入物理塊的邏輯塊的邏輯地址之間的對應(yīng)關(guān)系。因此,即使當(dāng)閃爍存儲器21設(shè)計成為具有增長數(shù)量的物理塊而擴(kuò)大容量時,存儲卡20中的控制器25的內(nèi)部存儲器也可以只有足夠在閃爍存儲器21的區(qū)段中生成這類表的容量。因此,本發(fā)明能提供具有更大容量的存儲卡20而不會由于擴(kuò)大存儲卡20中控制器的內(nèi)部存儲器容量而增加成本。
根據(jù)本發(fā)明的數(shù)據(jù)存儲器如此適配,以便當(dāng)數(shù)據(jù)讀自或?qū)懼疗浯鎯ρb置時,在區(qū)段中生成一個表,用于標(biāo)明寫入組成一個區(qū)段的多個邏輯塊中的數(shù)據(jù)的邏輯地址與組成該區(qū)段的物理塊的物理地址之間的對應(yīng)關(guān)系。因此,即使如果為增長數(shù)量的塊擴(kuò)大存儲裝置容量,則內(nèi)部存儲器的容量也可只為在區(qū)段中生成一個表所需的容量。
因此,本發(fā)明提供一個具有大存儲容量的數(shù)據(jù)存儲器而不必由于擴(kuò)大內(nèi)部存儲器容量而增加成本。
根據(jù)本發(fā)明的采用數(shù)據(jù)存儲器的數(shù)據(jù)處理系統(tǒng)如此適配,以便當(dāng)數(shù)據(jù)讀自或?qū)懼疗浯鎯ρb置時,在區(qū)段中生成一個表,用于標(biāo)明寫入組成一個區(qū)段的多個邏輯塊中的數(shù)據(jù)的邏輯地址與組成該區(qū)段的物理塊的物理地址之間的對應(yīng)關(guān)系。因此,即使如果為增長數(shù)量的塊擴(kuò)大存儲裝置的容量,則內(nèi)部存儲器的容量也可只為在區(qū)段中生成一個表所需的容量。
因此,本發(fā)明能提供一個能處理極大量數(shù)據(jù)的數(shù)據(jù)處理系統(tǒng)而不必由于擴(kuò)大內(nèi)部存儲器的容量而增加成本。
此外根據(jù)本發(fā)明的數(shù)據(jù)處理方法使用數(shù)據(jù)存儲器,它如此適配以便當(dāng)數(shù)據(jù)讀自或?qū)懼疗浯鎯ρb置時,在區(qū)段中生成一個表,用于標(biāo)明寫入組成一個區(qū)段的多個邏輯塊中的邏輯地址與組成該區(qū)段的物理塊的物理地址之間的對應(yīng)關(guān)系。因此,即使如果為增長數(shù)量的塊擴(kuò)大存儲裝置的容量,則內(nèi)部存儲器的容量也可只為在區(qū)段中生成一個表所需的容量。
因此,本發(fā)明提供一種數(shù)據(jù)處理方法,適合于處理極大量數(shù)據(jù)而不必由于擴(kuò)大內(nèi)部存儲器的容量而增加成本。
權(quán)利要求
1.一種連至外部設(shè)備的數(shù)據(jù)存儲器,包括一個其存儲區(qū)分為多塊的存儲裝置,其中每一塊具有一個特定的絕對地址;以及一個根據(jù)來自外部設(shè)備的命令將數(shù)據(jù)寫至或讀自存儲裝置設(shè)備的控制裝置;該控制裝置包括一個轉(zhuǎn)換表,通過該表可將來自外部設(shè)備的命令所指向的數(shù)據(jù)的相對地址轉(zhuǎn)換為絕對地址。
2.如權(quán)利要求1中所述的數(shù)據(jù)存儲器,其中每當(dāng)完成來自外部設(shè)備的命令時該控制裝置即生成該轉(zhuǎn)換表。
3.如權(quán)利要求1中所述的數(shù)據(jù)存儲器,其中存儲區(qū)分為多個區(qū)段,每個區(qū)段具有多塊,每塊具有特定于它的絕對地址;以及為每個區(qū)段生成轉(zhuǎn)換表。
4.如權(quán)利要求1中所述的數(shù)據(jù)存儲器,其中存儲區(qū)分為多個區(qū)段,每個區(qū)段包括多塊,每塊具有一個特定于它的絕對地址;以及包括于多個區(qū)段中的每個中的多塊對應(yīng)于包括于特定于每個區(qū)段的范圍內(nèi)的具有相對地址的某些數(shù)據(jù)。
5.如權(quán)利要求1中所述的數(shù)據(jù)存儲器,還包括一個接口裝置,用于將由外部設(shè)備提供的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),同時將內(nèi)部提供的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)并將它們提供給外部設(shè)備。
6.一種包括一個數(shù)據(jù)處理設(shè)備的數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理設(shè)備連至一個包括存儲裝置的數(shù)據(jù)存儲器,該存儲裝置的存儲區(qū)分為多塊,每塊具有一個特定于它的絕對地址;該數(shù)據(jù)處理設(shè)備包括一個用于向存儲裝置發(fā)送一條寫或讀數(shù)據(jù)的命令的控制裝置;該控制裝置包括一個轉(zhuǎn)換表,通過該表可將來自外部設(shè)備的命令所指向的數(shù)據(jù)的相對地址轉(zhuǎn)換為絕對地址。
7.如權(quán)利要求6中所述的數(shù)據(jù)處理系統(tǒng),其中每當(dāng)完成來自外部設(shè)備的命令時,該控制裝置即生成該轉(zhuǎn)換表。
8.如權(quán)利要求6中所述的數(shù)據(jù)處理系統(tǒng),其中該存儲區(qū)分為多個區(qū)段,每個區(qū)段分為多塊,每塊具有一個特定于它的絕對地址;以及為每個區(qū)段生成該轉(zhuǎn)換表。
9.如權(quán)利要求6中所述的數(shù)據(jù)處理系統(tǒng),其中該存儲區(qū)分為多個區(qū)段,每個區(qū)段包括多塊,每塊具有一個特定于它的絕對地址;以及包括于多個區(qū)段中的每個中的多塊對應(yīng)于包括于特定于每個區(qū)段的范圍內(nèi)的具有相對地址的某些數(shù)據(jù)。
10.如權(quán)利要求6中所述的數(shù)據(jù)處理系統(tǒng),其中該數(shù)據(jù)處理設(shè)備還包括一個接口裝置,用于將由外部設(shè)備提供的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),同時將內(nèi)部提供的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)并將它們提供給外部設(shè)備。
11.一種將數(shù)據(jù)寫至或讀自存儲裝置的數(shù)據(jù)處理方法,該存儲裝置的存儲區(qū)分為多塊,每塊具有一個特定于它的絕對地址;該方法包括以下步驟生成一個轉(zhuǎn)換表,通過它可將待寫至或讀自存儲裝置的數(shù)據(jù)的相對地址轉(zhuǎn)換為絕對地址;以及引用該轉(zhuǎn)換表以寫或讀數(shù)據(jù)。
12.如權(quán)利要求11中所述的方法,其中該存儲區(qū)分為多個區(qū)段,每個區(qū)段包括多塊,每塊具有一個特定于它的絕對地址;以及為每個區(qū)段生成轉(zhuǎn)換表。
13.如權(quán)利要求11中所述的方法,其中該存儲區(qū)分為多個區(qū)段,每個區(qū)段包括多塊,每塊具有一個特定于它的絕對地址;以及包括于多個區(qū)段中的一個中的多塊對應(yīng)于包括于特定于每個區(qū)段的范圍內(nèi)的具有相對地址的某些數(shù)據(jù)。
全文摘要
當(dāng)將數(shù)據(jù)讀自或?qū)懼灵W爍存儲器時,在閃爍存儲器的區(qū)段中生成一個表,用于標(biāo)明一起組成閃爍存儲器的存儲區(qū)的物理塊的物理地址與寫入物理塊的邏輯塊的邏輯地址之間的對應(yīng)關(guān)系。
文檔編號G06F12/00GK1241786SQ9910889
公開日2000年1月19日 申請日期1999年6月30日 優(yōu)先權(quán)日1998年6月30日
發(fā)明者鈴木馨 申請人:索尼株式會社