專利名稱:用于填充存儲器的方法
技術(shù)領域:
本發(fā)明涉及存儲器的填充方法,存儲裝置,計算機程序和計算機 程序產(chǎn)品。
背景技術(shù):
在EEPR0M-存儲器組件上存放了非易失的控制設備數(shù)據(jù)。為此要應 用各種存儲器布局或存儲器配置。 一種布局策略在于,將EEPROM-存儲 器細分為容量相同的塊,并且將真正的有用數(shù)據(jù)存放到這些塊中。除 了這些有用數(shù)據(jù),每個塊還需要一種管理信息。用于塊的管理信息此 外還可以被用于說明塊是空的還是被占用的,或者存儲在塊中的有用 數(shù)據(jù)有多長,以及這些有用數(shù)據(jù)具有怎樣的檢驗數(shù)據(jù)如校驗和/CRC,以 及諸如此類。在通常情況下,該管理信息被作為有用數(shù)據(jù)存放在 EEPROM-存儲器的其他區(qū)域。因此存在用于存放管理信息的區(qū)域和用于 存放有用數(shù)據(jù)的區(qū)域。這種情況可以與Windows環(huán)境下硬盤的FAT (File Allocation Table,文件分配表)文件系統(tǒng)相對照。此外眾所 周知的是,在各種控制設備中采用面向塊的EEPROM-文件系統(tǒng)。
發(fā)明內(nèi)容
借助于本發(fā)明,提出具有權(quán)利要求l特征的方法,具有權(quán)利要求6 特征的存儲裝置,具有權(quán)利要求9特征的計算機程序以及具有權(quán)利要 求10特征的計算機程序產(chǎn)品。
本發(fā)明的優(yōu)越性
在按照本發(fā)明的用于填充具有多個塊的存儲裝置的方法中,使每 個塊的管理信息和屬于該塊的有用數(shù)據(jù)一起存放。 本發(fā)明的有利擴建由從屬權(quán)利要求產(chǎn)生。
按照本發(fā)明的存儲裝置被一定數(shù)量的塊所填充,使每個塊的管理
信息以及屬于該塊的有用數(shù)據(jù)一起存放。
借助于這種存儲裝置,按照本發(fā)明的方法的所有步驟得以實施。 此外,本發(fā)明還涉及具有程序編碼介質(zhì)的計算機程序,使得如果
該計算機程序在尤其具有按照本發(fā)明的存儲裝置的計算機上或者相應的計算單元上執(zhí)行,則按照本發(fā)明方法的所有步驟得以實施。
此外,本發(fā)明還涉及具有被存儲在計算機可讀數(shù)據(jù)載體上的程序 編碼介質(zhì)的計算機程序產(chǎn)品,使得如果該計算機程序在尤其具有按照 本發(fā)明的存儲裝置的計算機上或者相應的計算單元上執(zhí)行,則按照本 發(fā)明方法的所有步驟得以實施。
存儲裝置可以構(gòu)建為 EEPROM(Electrically Erasable Programmable Read Only Memory),即電可擦除的可編程只讀存儲器, 或者構(gòu)建為用在內(nèi)嵌系統(tǒng)中的非易失的電存儲組件。
本發(fā)明的方法以及因此而生的用于填充存儲器的策略,可以避免 或者減小容量損失,所述容量損失是在面向塊的存儲裝置或者文件系 統(tǒng)中由特定EEPROM中的邊角料(Verschnitt)典型地產(chǎn)生的。
借助于本發(fā)明而考慮的策略因此適合于提供存儲器填充或者存儲 器布局,存儲器規(guī)劃或者存儲裝置的存儲器分配,并且可以在各種 EEPROM存儲器硬件上使用。因此可以通過在存儲裝置的塊中結(jié)構(gòu)化地 或以塊的方式設置的數(shù)據(jù)存放,實現(xiàn)存儲裝置的各段的有效利用,該 數(shù)據(jù)不僅包含管理信息,而且包含有用數(shù)據(jù)。
因此借助于本發(fā)明可以設定,每個塊的管理信息局部地與屬于該 塊的有用數(shù)據(jù)或數(shù)據(jù)組一起存放。塊的有用數(shù)據(jù)可以由分別包含至少 一個有用數(shù)據(jù)或至少一個具有文件內(nèi)容的數(shù)據(jù)組的數(shù)據(jù)組成。現(xiàn)在可 以使各個塊的所有文件一起存放。
作為將EEPROM細分為用于存放管理信息和用于存放有用數(shù)據(jù)的兩 大部分的替代方法,可以將存儲器布局或存儲器結(jié)構(gòu)設定為,使塊1 的有用數(shù)據(jù)跟隨在塊1的管理信息后.隨后是塊2的管理信息,再隨 后是塊2的有用數(shù)據(jù)等等,從而使塊n的管理信息分別被該塊n的有 用數(shù)據(jù)跟隨,因此被一起存放。每次是管理信息還是至少一個有用數(shù) 據(jù)首先被存放,在此處并不重要。各個塊的管理信息和至少一個有用 數(shù)據(jù)之間的交疊是可以的。
這種分配的優(yōu)越性,產(chǎn)生于EEPROM存儲器硬件的技術(shù)特性對每 一種EEPROM型號,存儲器被細分為所謂的段。為了避免在寫入EEPROM 或者存儲裝置時由于電壓擾動而致的數(shù)據(jù)損失,使包含管理信息和有 用數(shù)據(jù)的不同數(shù)據(jù)在段邊界上互相分離。因此在段容量不利時,如果 段不能被完全填滿,會在兩個有用數(shù)據(jù)之間產(chǎn)生邊角料。此處提供的方法可以減小這種"邊角料"并因此增大EEPROM存儲 器的有效可使用容量。本方法的進一步特性是,本方法適合于各種段 容量。因此本方法可應用于各種EEPROM存儲器型號,并且有助于既便 攜、又可使用的裝備的研發(fā)。
非易失有用數(shù)據(jù)的典型的靈敏的分類存儲可以通過本方法尤其在 具有按照本發(fā)明的存儲裝置的控制設備上得以改善。
在第一個例子中,參照具有段容量為4字節(jié)(例如Freescale HC12 ) 的處理器,其中假定可能的狀況是管理信息在每個塊中填充3字節(jié)。有 用數(shù)據(jù)由最長具有21個字節(jié)長度的40個數(shù)據(jù)組成。
因此按照現(xiàn)有技術(shù)構(gòu)建的存儲器布局呈現(xiàn)下列尺寸的外觀40乘 以1段,即40乘以4字節(jié)用于管理信息,從而使每個塊出現(xiàn)3字節(jié)用 于數(shù)據(jù)以及1字節(jié)的邊角料。此外,40乘以6個段,即40乘以24個 字節(jié)用于有用數(shù)據(jù),其中對于最長的有用數(shù)據(jù)存在由優(yōu)選用于數(shù)據(jù)的 21個字節(jié)和用于邊角料的3個字節(jié)組成的塊。在數(shù)據(jù)較短時,相應產(chǎn) 生更多的邊角料。總共需要1120個字節(jié)。
在使用此處提供的按照本發(fā)明的方法的情況下,存儲器填充或者 存儲器布局在這種情況下呈現(xiàn)下列尺寸的外觀40乘以6個段,即40 乘以24個字節(jié)用于管理信息和有用數(shù)據(jù)或數(shù)據(jù)組。對于最長的有用數(shù) 據(jù),存在一個塊由3個字節(jié)的管理數(shù)據(jù)和21個字節(jié)的有用數(shù)據(jù)組成, 即0字節(jié)的邊角料。在數(shù)據(jù)較短時,此時也出現(xiàn)一個邊角料??偣仓?需要960個字節(jié)。
因此在該例子中產(chǎn)生了精簡,因為管理信息的邊角料和有用數(shù)據(jù) 的邊角料之和始終至少相當于一個段的容量。因此通過按照本發(fā)明的 合并,可以為每個塊精簡一個段。
在第二個例子中,可以附加地對有用數(shù)據(jù)被一個以上的塊分配的 選項加以觀察。還是以HC12處理器為基礎,其中管理信息在每個塊中 填充3個字節(jié)。EEPROM擁有1024個字節(jié)的總?cè)萘?。為了完全地充分?用該容量,可以例如選擇分配到32個塊中,而每個塊分別共有32個 字節(jié)用于管理信息和有用數(shù)據(jù)。由此,用于長度為29個字節(jié)的有用數(shù) 據(jù)的存儲器需要量按照現(xiàn)有技術(shù)呈現(xiàn)下列情形,即每個塊的32個字節(jié) 被細分為4個字節(jié)的l段用于管理信息和28個字節(jié)的7個段用于有用 數(shù)據(jù)。有用數(shù)據(jù)被兩個塊分配,其中最初的28個字節(jié)位于第一個塊中,最后剩余的字節(jié)則存放在第二個塊中。
在應用按照本發(fā)明的方法的情況下將產(chǎn)生下列情景每個塊的32 個字節(jié)被細分為3個字節(jié)用于管理信息以及29個字節(jié)用于有用數(shù)據(jù)。 有用數(shù)據(jù)或數(shù)據(jù)組可以因此被安置在一個塊中。精簡量為一整個塊, 并且在該例子中在管理信息內(nèi)部按照現(xiàn)有技術(shù)得出的一個字節(jié)的邊角 料,可以由此處提供的方法用于存放數(shù)據(jù)字節(jié)。
本發(fā)明,尤其是EEPROM存儲裝置,可以用在計算系統(tǒng),例如內(nèi)嵌 系統(tǒng)如所謂的Bodycomputer中,也適用于未來的具有用于存儲非易失 有用數(shù)據(jù)的EEPR0M的Bodycomputer。本發(fā)明可以被轉(zhuǎn)換應用到帶有控 制設備的機動車上。利用此處提供的發(fā)明,面向塊的EEPROM文件系統(tǒng) 得以進一步發(fā)展,因為保證了到具有不同特性的各種EEPR0M硬件的良 好轉(zhuǎn)用性。
本發(fā)明進一步的優(yōu)越性和擴建由說明書和附圖得出。
顯而易見,前面所述的以及后面將要說明的特征,不但可應用于
說明的各種組合,而且可應用于不偏離本發(fā)明范疇的其他組合或單獨使用。
根據(jù)附圖中的實施例對本發(fā)明示意地加以圖示,并且在下面參考 附圖加以詳細iJL明。
圖1示出按照現(xiàn)有技術(shù)的存儲器填充的第一個實例。 圖2示出按照本發(fā)明的存儲器填充的第一個實例。 附圖3示出按照現(xiàn)有技術(shù)的存儲器填充的第二個實例。 附圖4示出按照本發(fā)明的存儲器填充的第二個實例。
具體實施例方式
在按照現(xiàn)有技術(shù)實施的面向塊的存儲器填充時,在圖1中示出的 EEPROM存儲器100中,將管理信息102, 104, 106和有用數(shù)據(jù)108, 110, 112存放在兩個區(qū)域114, 116中,其中第一區(qū)域114包含所有塊 的管理信息102, 104, 106,第二區(qū)域116包含所有塊的有用數(shù)據(jù)108, 110,112。這兩個區(qū)域114,116的順序是任意的。在包含n個塊的EEPR0M 存儲器100中,詳細的構(gòu)造或者存儲器結(jié)構(gòu)如在附圖1中所示出的那 樣,其中存儲器地址從左向右遞升,同時Vx是塊x的管理信息102, 104, 106, Dx是塊x的有用數(shù)據(jù)108, 110, 112:VI 102, V2 104,…,Vn 106, Dl 108, D2 110,…,Dn 112
與此相反,在圖2中提議的構(gòu)建為EEPROM存儲器的存儲裝置200 的存儲器填充,在應用本發(fā)明的第一個例子中,只設定了一個區(qū)域, 其中一個塊的管理信息202, 204, 206以及至少一個有用數(shù)據(jù)208, 210, 212分別被一起存放在所述區(qū)域中.在包含n個塊的EEPROM存儲器中 出現(xiàn)如下分配,其中Vx是塊x的管理信息202, 204, 206, Dx是塊x 的至少一個有用數(shù)據(jù)208, 210, 212:
VI 202, Dl 208, V2 204, D2 210,…,Vn 206, Dn 212
每次是管理信息202, 204, 206還是至少一個有用數(shù)據(jù)208, 210, 212首先被存放,在此處并不重要,在每個塊的管理信息202, 204, 206和至少一個有用數(shù)據(jù)208, 210, 212之間甚至可以產(chǎn)生交疊。
這種分配的優(yōu)越性由存儲裝置200的分段方式產(chǎn)生。段是這樣來 定義的,即該段內(nèi)部的存儲單元可以被寫入,而不會使其他段中的數(shù) 據(jù)一此處指包含管理信息202, 204, 206和有用數(shù)據(jù)208, 210, 212 的數(shù)據(jù)一通過這樣的方式受到影響。同一個段內(nèi)部的數(shù)據(jù)與此相反, 相互間不是完全獨立的。
對于示出的EEPROM存儲器具有一個段容量為4字節(jié)的處理器的情 況,每個段都可以與其他每個段無關地被修改。與此相反,同一個段 內(nèi)部的4個字節(jié)每次必須一起被處理。在用數(shù)據(jù)對存儲裝置200進行 填充時,存儲裝置200的這種段結(jié)構(gòu)對存儲器構(gòu)造或者對應的存儲器 布局產(chǎn)生影響。在寫入存儲裝置200時,始終考慮到在任意時刻例如 由于電源中斷而引起的中斷。在這種寫入-中斷中,正在寫入的數(shù)據(jù)發(fā) 生流失是不可避免的。
利用本發(fā)明可以避免分別包含管理信息202, 204, 206和至少一 個有用數(shù)據(jù)208, 210, 212的其他數(shù)據(jù)或者塊由此同樣地被損壞。規(guī) 定,兩個不同的數(shù)據(jù)絕不允許分享一個段。因此,如果寫入了兩個數(shù) 據(jù)的數(shù)據(jù)并因此更改了共同的段,則會阻止在寫入該共同段時的寫入-中斷也損壞這兩個數(shù)據(jù)。所以在存儲裝置200上,每個單獨的數(shù)據(jù)都 在段的邊界結(jié)束。因此如果數(shù)據(jù)沒有完全地填滿它的段時會產(chǎn)生邊角 料。 一個長度為9個字節(jié)的數(shù)據(jù)例如在HC12上填充了 3個分別為4個 字節(jié)的段,其中第三段只占用了 1個字節(jié),因此產(chǎn)生3個字節(jié)的邊角 料。圖3示出在EEPROM300上按照現(xiàn)有技術(shù)的存儲器結(jié)構(gòu)的第二個例 子,其中每一個塊的管理信息302, 304, 306和有用數(shù)據(jù)308, 310, 312被相互分開。此時在EEPROM存儲器300以及因此在介質(zhì)上,在兩 倍于按照本發(fā)明的方法的位置上出現(xiàn)邊角料314,因為沒有一個段被允 許包含多于一個塊的管理信息302, 304, 306。否則在更新塊的管理信 息302, 304, 306時的寫入-中斷,也會影響其他塊的管理信息302, 304, 306。因此可能在兩個相鄰的管理信息302, 304, 306之間分別 產(chǎn)生一個邊角料314。此外,沒有一個段被允許包含多于一個塊的有用 數(shù)據(jù)308, 310, 312,以此方式也可能在兩個相鄰的有用數(shù)據(jù)之間產(chǎn)生 邊角料314。
為了清楚地說明這種情況,在以下對n個塊的存儲器分配加以說 明,這一次與圖l相比,添加了所有可能產(chǎn)生邊角料314的位置,以 從左到右遞升的存儲器地址排列,其中Vx用于塊x的管理信息302, 3(M, 306, Dx用于塊x的有用數(shù)據(jù)308, 310, 312, S表示可能的邊角 料314:
VI 302,S314,V2 304, S314,…,S314, Vn 306, S314, Dl 308,S314,D2 310,S314,…,S314,Dn 310,S314
圖4示出用于構(gòu)建為EEPROM存儲器的存儲裝置400的按照本發(fā)明 的存儲器填充的第二個例子。此時對于從左到右遞升的存儲器地址, Vx表示塊x的管理信息402, 404, 406以及Dx表示塊x的有用數(shù)據(jù) 408, 410, 412, S表示可能的邊角料414。
在本發(fā)明的這個例子中,單個塊的管理信息402, 404, 406以及 至少一個有用數(shù)據(jù)408, 410, 412被相關聯(lián)地保存,從而可能發(fā)生的 邊角料"4將只出現(xiàn)在共同的數(shù)據(jù)之間,即不同塊的管理信息402, 4(M, 406和有用數(shù)據(jù)408, 410, 412之間同一個塊的管理信息402, 404, 406和至少一個有用數(shù)據(jù)408, 410, 412分別共同地使用 一個段。
VI 402, Dl 410,S414,V2 404, D2 410, S414,.." S414, Vn 406, Dn 412,S414
因此該發(fā)明能提高存儲裝置400的有效可利用容量。然后產(chǎn)生下 列情況,通過管理信息402, 404, 406和有用數(shù)據(jù)408, 410, 412的 組合,將比按照現(xiàn)有技術(shù)的分開放置少產(chǎn)生至少一個段容量的邊角料 414。
權(quán)利要求
1.一種用于填充具有多個塊的存儲裝置(200,400)的方法,其中每個塊的管理信息(202,204,206,402,404,406)和屬于該塊的有用數(shù)據(jù)(208,210,212,408,410,412)被一起存放。
2. 如權(quán)利要求1所述的方法,其中每個塊的管理信息(202, 204, 206, 402, 404, 406 )和屬于該塊的有用數(shù)據(jù)(208, 210, 212, 408, 410, 412)被存放在所述存儲裝置(200, 400 )的一個段中。
3. 如權(quán)利要求1或2所述的方法,其中第一塊的管理信息(202, 204, 206, 402, 404, 406 )和有用數(shù)據(jù)(208, 210, 212, 408, 410, 412)通過至少一個段邊界與至少一個其他塊的管理信息(202, 204, 206, 402, 404, 406 )和有用數(shù)據(jù)(208, 210, 212, 408, 410, 412) 隔開。
4. 如上述權(quán)利要求中任一項所述的方法,其中管理信息(202, 204, 206, 402, 404, 406 )和有用數(shù)據(jù)(208, 210, 212, 408, 410, 412) 被物理地存放。
5. 如上述權(quán)利要求中任一項所述的方法,該方法用于被構(gòu)建為 EEPROM存儲器的存儲裝置(200, 400 )。
6. —種存儲裝置,該存儲裝置被一定數(shù)量的塊填充,其中每個塊 的管理信息(202, 204, 206, 402, 404, 406 )和屬于該塊的有用數(shù) 據(jù)(208, 210, 212, 408, 410, 412) —起存放。
7. 如權(quán)利要求6所述的存儲裝置,在該存儲裝置上物理地存放著 管理信息(202, 204, 206, 402, 404, 406 )和有用數(shù)據(jù)(208, 210, 212, 408, 410, 412)。
8. 如權(quán)利要求6或7所述的存儲裝置,其被構(gòu)建為EEPROM存儲器。
9. 一種帶有編程代碼介質(zhì)的計算機程序,當該計算機程序在尤其 具有按照權(quán)利要求6至8中任一項所述的存儲裝置(200, 400 )的計 算機或者相應的計算單元上執(zhí)行時,按照權(quán)利要求1至5中任一項所 述方法的所有步驟得以實施。
10. —種帶有保存在計算機可讀數(shù)據(jù)載體上的編程代碼介質(zhì)的計 算機程序產(chǎn)品,當該計算機程序在尤其具有按照權(quán)利要求6至8中任 一項所述的存儲裝置(200, 400 )的計算機或者相應的計算單元上執(zhí)行時,按照權(quán)利要求1至5中任一項所述方法的所有步驟得以實施。
全文摘要
在按照本發(fā)明的用于填充具有多個塊的存儲裝置(200)的方法中,使每個塊的管理信息(202,204,206)和屬于該塊的有用數(shù)據(jù)(208,210,212)一起存放。
文檔編號G06F12/02GK101410810SQ200780010448
公開日2009年4月15日 申請日期2007年3月14日 優(yōu)先權(quán)日2006年3月24日
發(fā)明者D·赫爾曼, J·利貝亨謝爾 申請人:羅伯特.博世有限公司