TWI430100B - 儲存資料於記憶體之方法以及電子裝置 - Google Patents

儲存資料於記憶體之方法以及電子裝置 Download PDF

Info

Publication number
TWI430100B
TWI430100B TW99106714A TW99106714A TWI430100B TW I430100 B TWI430100 B TW I430100B TW 99106714 A TW99106714 A TW 99106714A TW 99106714 A TW99106714 A TW 99106714A TW I430100 B TWI430100 B TW I430100B
Authority
TW
Taiwan
Prior art keywords
data
section
memory
node
huffman
Prior art date
Application number
TW99106714A
Other languages
English (en)
Other versions
TW201131369A (en
Inventor
Yung Wei Chen
Original Assignee
Silicon Motion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to TW99106714A priority Critical patent/TWI430100B/zh
Publication of TW201131369A publication Critical patent/TW201131369A/zh
Application granted granted Critical
Publication of TWI430100B publication Critical patent/TWI430100B/zh

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

儲存資料於記憶體之方法以及電子裝置
本發明係有關於記憶體,特別是有關於記憶體之資料儲存。
記憶體係用於儲存資料,可分為唯讀記憶體(read only memory,ROM)以及隨機存取記憶體(random access memory,RAM)。當系統提供電力時,隨機存取記憶體可以保持所儲存的資料,而且系統可更改隨機存取記憶體所儲存的資料。然而,當系統電力被關閉時,隨機存取記憶體便喪失所儲存的資料。無論系統電力提供或被關閉時,唯讀記憶體皆可保持所儲存的資料,但是系統無法更改唯讀記憶體內儲存的資料。因此唯讀記憶體與隨機存取記憶體各有優缺點。
電可抹除可編程唯讀記憶體(Electric Erasable Programmable Read Only Memory,EEPROM)結合了唯讀記憶體以及隨機存取記憶體的優點。當系統提供電力時,系統可更改電可抹除可編程唯讀記憶體所儲存的資料。此外,當系統電力被關閉時,電可抹除可編程唯讀記憶體仍然可保持所儲存的資料。因此,一般的電子裝置經常運用電可抹除可編程唯讀記憶體以儲存重要的系統資料。然而,隨著系統的複雜提高,重要的系統資料量亦隨之而提高,因此需要更大容量的電可抹除可編程唯讀記憶體以供儲存系統資料。增加電可抹除可編程唯讀記憶體的資料容量會使電子裝置的生產成本提高。為了減少所需的電可抹 除可編程唯讀記憶體的資料容量以降低生產成本,因此需要一種方法以減少儲存至電可抹除可編程唯讀記憶體的資料量。
有鑑於此,本發明之目的在於提供一種儲存資料於記憶體之方法,以解決習知技術存在之問題。首先,取得一原始資料。接著,依據該原始資料中多個資料值之出現頻率以產生一霍夫曼樹(Huffman’s tree)以及一霍夫曼編碼表。接著,將該原始資料分割為多個資料區段,其中各資料區段均包含一區段標頭(header)以及一區段資料。接著,依據該霍夫曼編碼表編碼該等資料區段之區段資料,以得到該等資料區段之編碼區段資料。最後,儲存該等資料區段之區段標頭以及該等資料區段之編碼區段資料於該記憶體中。
本發明提供一種電子裝置。於一實施例中,該電子裝置包括包括一記憶體以及一控制電路。該控制電路取得一原始資料,依據該原始資料中多個資料值之出現頻率以產生一霍夫曼樹(Huffman’s tree)以及一霍夫曼編碼表,將該原始資料分割為多個資料區段,其中各資料區段均包含一區段標頭(header)以及一區段資料,依據該霍夫曼編碼表編碼該等資料區段之區段資料以得到該等資料區段之編碼區段資料,以及儲存該等資料區段之區段標頭以及該等資料區段之編碼區段資料於該記憶體中。
為了讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉數較佳實施例,並配合所附圖示,作 詳細說明如下:
第1圖為依據本發明之電子裝置100的區塊圖。於一實施例中,電子裝置100包括控制電路102、電可抹除可編程唯讀記憶體(Electric Erasable Programmable Read Only Memory,EEPROM)104、隨機存取記憶體106、以及其他裝置108。電可抹除可編程唯讀記憶體104儲存電子裝置100中重要的系統資料,例如開機資料。當控制電路102需要運用到系統資料時,控制電路102會由電可抹除可編程唯讀記憶體104中讀取系統資料,再將讀出的系統資料備份儲存於隨機存取記憶體106中。控制電路106便可隨時更新隨機存取記憶體106中儲存的系統資料。當電子裝置100即將被關閉時,控制電路102再將隨機存取記憶體106中儲存的系統資料之更新部份儲存至電可抹除可編程唯讀記憶體104,以便於無電源供給狀態下保存系統資料。
為了減少電子裝置100的生產成本,無法無限制地擴大電可抹除可編程唯讀記憶體104的資料儲存空間。因此,於控制電路102儲存原始資料至電可抹除可編程唯讀記憶體104之前,必須先依據霍夫曼編碼法(Huffman’s encoding)將原始資料編碼為編碼資料,再將編碼資料儲存至電可抹除可編程唯讀記憶體104,以減少儲存資料量。當控制電路102自電可抹除可編程唯讀記憶體104讀出編碼資料後,亦必須先依據霍夫曼編碼法將讀出的編碼資料解碼為原始資料,才可運用原始資料。由於經霍夫曼編碼法編碼後的資料具較少資料量,電可抹除可編程唯讀記憶 體104便可以有限的空間儲存較多的系統資料,以提升系統效能。
第2圖為依據本發明之欲儲存至電可抹除可編程唯讀記憶體104中尚未編碼之原始資料200的格式之示意圖。原始資料200包括資料標頭210以及多個資料區段211、212、…、21K。於一實施例中,資料標頭210的大小僅有10位元組。各資料區段211、212、…、21K均包括一區段標頭221、222、…、22K及一區段資料231、232、…、23K。於一實施例中,區段標頭之大小亦為4位元組,且儲存對應之區段資料之格式、資料量、以及一區段標籤。其中各資料區段211、212、…、21K具有不同之區段標籤以供辨識該等資料區段211、212、…、21K。
第3圖為依據本發明之被儲存至電可抹除可編程唯讀記憶體104中之編碼資料300的格式之示意圖。控制電路102依據霍夫曼編碼法將第2圖之原始資料200編碼為編碼資料300,以供儲存至電可抹除可編程唯讀記憶體104中。編碼資料300包括資料標頭310以及多個資料區段311、312、…、31K。編碼資料300之資料標頭310為未經編碼之原始資料200之資料標頭210。同樣的,編碼資料300之資料區段311、312、…、31K之區段標頭321、322、…、32K亦為未經編碼之原始資料200之資料區段211、212、…、、21K之區段標頭221、222、…、22K。然而,編碼資料300之資料區段311、312、…、31K之編碼區段資料331、332、…、33K為依據霍夫曼編碼法將原始資料200之資料區段211、212、…、21K之區段資料231、 232、…、23K分別編碼所得,以減少儲存至電可抹除可編程唯讀記憶體104中的資料量。
此外,於依據霍夫曼編碼法編碼後,控制電路102會分別計算資料區段311、312、…、31K之編碼區段資料331、332、…、33K的資料大小341、342、…、34K,並儲存於電可抹除可編程唯讀記憶體104中。如此,則當控制電路102欲由電可抹除可編程唯讀記憶體104中讀取編碼資料300之一特定資料區段時,便可依據資料區段311、312、…、31K之區段資料大小341、342、…、34K跳躍式地搜尋資料區段311、312、…、31K之區段標頭321、322、…、32K所包含的區段標籤,以比對該等資料區段311、312、…、31K之區段標籤是否符合該特定資料區段之區段標籤,從而確定哪一個資料區段為所找尋的該特定資料區段。
第4圖為依據本發明儲存資料於電可抹除可編程唯讀記憶體104之方法400的流程圖。控制電路102依據方法400將原始資料200編碼為編碼資料300。首先,控制電路102取得欲儲存於電可抹除可編程唯讀記憶體104中一原始資料200(步驟402)。接著,控制電路102統計該原始資料200中不同資料值之發生頻率以產生一霍夫曼樹(Huffman’s tree)及一霍夫曼表(步驟404)。關於霍夫曼表與霍夫曼樹將分別以後續的第5A圖及第5B圖進行說明。接著,控制電路102將該原始資料200分割為多個資料區段211、212、…、21K,其中每一資料區段211、212、…、21K包括一區段標頭221、222、…、22K及一區段資料231、 232、…、23K(步驟406)。接著,控制電路102依據該霍夫曼表編碼資料區段211、212、…、21K之區段資料231、232、…、23K以得到第3圖之資料區段311、312、…、31K之編碼區段資料331、332、…、33K(步驟408)。接著,控制電路102計算資料區段311、312、…、31K之編碼區段資料331、332、…、33K之資料大小341、342、…、34K(步驟410)。最後,控制電路102儲存資料區段311、312、…、31K之區段標頭321、322、…、32K,資料大小341、342、…、34K,以及編碼區段資料331、332、…、33K於電可抹除可編程唯讀記憶體104中(步驟412)。
第5A圖為依據本發明之霍夫曼編碼表的一實施例。假設原始資料200僅由4種資料值組成,分別為0、1、2、3。控制電路102量測原始資料200中各資料值0、1、2、3的發生頻率,假設發生頻率由高至低排序為資料值2、0、3、1,因此決定將資料值2編碼為位元0,將資料值0編碼為位元11,將資料值3編碼為位元100,將資料值1編碼為位元101,如第5A圖之霍夫曼編碼表所示。由於最高發生頻率的資料值2於編碼後僅有單一位元,而最低發生頻率的資料值1於編碼後有3位元,因此控制電路102於依據第5A圖之霍夫曼表編碼原始資料200為編碼資料300後可有效縮減編碼資料之資料量。
第5B圖為對應於第5A圖之霍夫曼編碼表的霍夫曼樹的一實施例。第5B圖之霍夫曼樹包括7個節點0~6,其中3個節點0、2、3為內部節點(internal nodes),而另外4個節點1、4、5、6為末端節點(leaf nodes)。末端節點1、4、 5、6各具有輸出值2、0、3、1。內部節點0具有兩子節點,其中左端子節點為節點1,右端子節點為節點2。內部節點2具有兩子節點,其中左端子節點為節點3,右端子節點為節點4。內部節點3具有兩子節點,其中左端子節點為節點5,右端子節點為節點6。
當控制電路102自電可抹除可編程唯讀記憶體104中讀取編碼資料後,控制電路102必須依據霍夫曼樹解碼編碼資料為原始資料,因此控制電路102需事先儲存霍夫曼樹以供未來解碼之用。第5C圖為對應於第5B圖之霍夫曼樹的霍夫曼樹表的一實施例。控制電路102係以霍夫曼樹表的型態儲存霍夫曼樹。霍夫曼樹之每一節點有兩儲存值記錄於霍夫曼樹表中。當霍夫曼樹之一節點為一內部節點時,霍夫曼樹表中對應該節點之第一儲存值指示該節點分枝之左方子節點(child node),且霍夫曼樹表中對應該節點之該第二儲存值指示該節點分枝之右方子節點。當霍夫曼樹之一節點為一末端節點(leaf node)時,霍夫曼樹表中對應該節點之第一儲存值等於一預定值0xFF,且霍夫曼樹表中對應該節點之第二儲存值指示該節點之輸出值。舉例來說,節點0為一內部節點,因此節點0於霍夫曼樹表中之第一儲存值記錄數值1以指向左端子節點1,而節點0於霍夫曼樹表中之第二儲存值記錄數值2以指向右端子節點2。同理,節點1為一末端節點,因此節點1於霍夫曼樹表中之第一儲存值記錄數值0xFF以表示節點1為末端節點,而節點1於霍夫曼樹表中之第二儲存值記錄數值2以表示節點1之輸出值為2。
控制電路102自電可抹除可編程唯讀記憶體104中讀取資料後,控制電路102可依據霍夫曼樹解碼資料為原始資料。舉例來說,假設控制電路102自電可抹除可編程唯讀記憶體104中讀出之資料為111011000。讀出資料可拆為4個段落,分別為11、101、100、0。依據第5B圖之霍夫曼樹,自節點0開始,資料1指向節點0之右端子節點2,而資料1接著指向節點2之右端子節點4,而節點4之輸出值為0。因此第1個段落11可解碼得到輸出值0。依據第5B圖之霍夫曼樹,自節點0開始,資料1指向節點0之右端子節點2,而資料0接著指向節點2之左端子節點3,而資料1接著指向節點3之右端子節點6,而節點6之輸出值為1。因此第2個段落101可解碼得到輸出值1。同理,第3個段落100可解碼得到輸出值3,而第4個段落0可解碼得到輸出值2。因此,依據第5B圖之霍夫曼樹,讀出資料111011000可解碼得到原始資料0132。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此項技術者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
(第1圖)
100‧‧‧電子裝置
102‧‧‧控制電路
104‧‧‧電可抹除可編程唯讀記憶體
106‧‧‧隨機存取記憶體
108‧‧‧其他裝置
(第2圖)
200‧‧‧原始資料
210‧‧‧資料標頭
211、212、…、21K‧‧‧資料區段
221、222、…、22K‧‧‧區段標頭
231、232、…、23K‧‧‧區段資料
(第3圖)
300‧‧‧編碼資料
310‧‧‧資料標頭
311、312、…、31K‧‧‧資料區段
321、322、…、32K‧‧‧區段標頭
331、332、…、33K‧‧‧編碼區段資料
341、342、…、34K‧‧‧區段資料大小
第1圖為依據本發明之電子裝置的區塊圖;第2圖為依據本發明之欲儲存至電可抹除可編程唯讀 記憶體中尚未編碼之原始資料的格式之示意圖;第3圖為依據本發明之被儲存至電可抹除可編程唯讀記憶體中之編碼資料的格式之示意圖;第4圖為依據本發明儲存資料於電可抹除可編程唯讀記憶體之方法的流程圖;第5A圖為依據本發明之霍夫曼編碼表的一實施例之示意圖;第5B圖為對應於第5A圖之霍夫曼編碼表的霍夫曼樹的一實施例;第5C圖為對應於第5B圖之霍夫曼樹的霍夫曼樹表的一實施例。
310‧‧‧資料標頭
311,312,...31K‧‧‧資料區段
321,322,...,32K‧‧‧區段標頭
341,342,...,34K‧‧‧區段資料大小
331,332,...,33K‧‧‧編碼區段資料

Claims (14)

  1. 一種儲存資料於記憶體之方法,包括:取得一原始資料;依據該原始資料中多個資料值之出現頻率以產生一霍夫曼樹(Huffman’s tree)以及一霍夫曼編碼表;將該原始資料分割為多個資料區段,其中各資料區段均包含一區段標頭(header)以及一區段資料;依據該霍夫曼編碼表編碼該等資料區段之區段資料,以得到該等資料區段之編碼區段資料;儲存該等資料區段之區段標頭以及該等資料區段之編碼區段資料於該記憶體中;計算該等資料區段之編碼區段資料之資料大小;以及儲存該等資料區段之編碼區段資料之資料大小於該記憶體中。
  2. 如申請專利範圍第1項所述之儲存資料於記憶體之方法,其中該等資料區段之區段標頭包括該等資料區段之格式以及一區段標籤,其中該等資料區段具有不同之區段標籤以供辨識該等資料區段。
  3. 如申請專利範圍第2項所述之儲存資料於記憶體之方法,其中該方法更包括:當自該記憶體讀取一特定資料區段時,依據該等資料區段之編碼區段資料之資料大小搜尋該等資料區段之區段標頭之區段標籤;以及比對該等資料區段之區段標頭之區段標籤是否符合該特定資料區段之區段標籤以確定該特定資料區段之儲存位 址。
  4. 如申請專利範圍第1項所述之儲存資料於記憶體之方法,其中該霍夫曼編碼表記錄該原始資料之資料值以及相對應之編碼資料之一至多個位元。
  5. 如申請專利範圍第1項所述之儲存資料於記憶體之方法,其中該方法更包括:以一霍夫曼樹表儲存該霍夫曼樹;以及當該等資料區段之編碼區段資料被讀取時,依據該霍夫曼樹表解碼該等資料區段之編碼區段資料以得到該等資料區段之區段資料。
  6. 如申請專利範圍第5項所述之儲存資料於記憶體之方法,其中該霍夫曼樹包括多個節點,該霍夫曼樹表記錄該霍夫曼樹之每一節點對應的一第一儲存值以及一第二儲存值,其中當該霍夫曼樹之一節點為一內部節點(internal node)時對應之該第一儲存值指示該節點分枝之左方子節點(child node)且對應之該第二儲存值指示該節點分枝之右方子節點,當該霍夫曼樹之一節點為一末端節點(leaf node)時對應之該第一儲存值等於一預定值且對應之該第二儲存值指示該節點之輸出值。
  7. 如申請專利範圍第1項所述之儲存資料於記憶體之方法,其中該記憶體為一電可抹除可編程唯讀記憶體(Electric Erasable Programmable Read Only Memory,EEPROM)。
  8. 一種電子裝置,包括:一記憶體;以及 一控制電路,耦接至該記憶體,取得一原始資料,依據該原始資料中多個資料值之出現頻率以產生一霍夫曼樹(Huffman’s tree)以及一霍夫曼編碼表,將該原始資料分割為多個資料區段,其中各資料區段均包含一區段標頭(header)以及一區段資料,依據該霍夫曼編碼表編碼該等資料區段之區段資料以得到該等資料區段之編碼區段資料,以及儲存該等資料區段之區段標頭以及該等資料區段之編碼區段資料於該記憶體中,其中該控制電路計算該等資料區段之編碼區段資料之資料大小,以及儲存該等資料區段之編碼區段資料之資料大小於該記憶體中。
  9. 如申請專利範圍第8項所述之電子裝置,其中該等資料區段之區段標頭包括該等資料區段之格式以及一區段標籤,且該等資料區段具有不同之區段標籤以供辨識該等資料區段。
  10. 如申請專利範圍第8項所述之電子裝置,其中當該控制電路自該記憶體讀取一特定資料區段時,該控制電路依據該等資料區段之編碼區段資料之資料大小搜尋該等資料區段之區段標頭之區段標籤,以及比對該等資料區段之區段標頭之區段標籤是否符合該特定資料區段之區段標籤以確定該特定資料區段之儲存位址。
  11. 如申請專利範圍第8項所述之電子裝置,其中該霍夫曼編碼表記錄該原始資料之資料值以及相對應之編碼資料之一至多個位元。
  12. 如申請專利範圍第8項所述之電子裝置,其中該控制電路以一霍夫曼樹表儲存該霍夫曼樹,以及當該等資 料區段之編碼區段資料被讀取時,該控制電路依據該霍夫曼樹表解碼該等資料區段之編碼區段資料以得到該等資料區段之區段資料。
  13. 如申請專利範圍第12項所述之電子裝置,其中該霍夫曼樹包括多個節點,該霍夫曼樹表記錄該霍夫曼樹之每一節點對應的一第一儲存值以及一第二儲存值,其中當該霍夫曼樹之一節點為一內部節點(internal node)時對應之該第一儲存值指示該節點分枝之左方子節點(child node)且對應之該第二儲存值指示該節點分枝之右方子節點,當該霍夫曼樹之一節點為一末端節點(leaf node)時對應之該第一儲存值等於一預定值且對應之該第二儲存值指示該節點之輸出值。
  14. 如申請專利範圍第8項所述之電子裝置,其中該記憶體為一電可抹除可編程唯讀記憶體(Electric Erasable Programmable Read Only Memory,EEPROM)。
TW99106714A 2010-03-09 2010-03-09 儲存資料於記憶體之方法以及電子裝置 TWI430100B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW99106714A TWI430100B (zh) 2010-03-09 2010-03-09 儲存資料於記憶體之方法以及電子裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW99106714A TWI430100B (zh) 2010-03-09 2010-03-09 儲存資料於記憶體之方法以及電子裝置

Publications (2)

Publication Number Publication Date
TW201131369A TW201131369A (en) 2011-09-16
TWI430100B true TWI430100B (zh) 2014-03-11

Family

ID=50180340

Family Applications (1)

Application Number Title Priority Date Filing Date
TW99106714A TWI430100B (zh) 2010-03-09 2010-03-09 儲存資料於記憶體之方法以及電子裝置

Country Status (1)

Country Link
TW (1) TWI430100B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113987556B (zh) * 2021-12-24 2022-05-10 杭州趣链科技有限公司 数据处理方法和装置、电子设备、存储介质

Also Published As

Publication number Publication date
TW201131369A (en) 2011-09-16

Similar Documents

Publication Publication Date Title
TWI410979B (zh) 快閃記憶體控制器、其錯誤更正碼控制器及其方法和系統
US8892809B2 (en) Data compression and encoding in a memory system
US8555143B2 (en) Flash memory controller and the method thereof
US20120096328A1 (en) Multi-write endurance and error control coding of non-volatile memories
US20130103655A1 (en) Multi-level database compression
TW201539187A (zh) 快閃記憶體之壓縮、讀取方法及應用其方法的裝置
CN111262876B (zh) 基于区块链的数据处理方法、装置、设备以及存储介质
US9647682B1 (en) Data compression system and method
JP2010528380A (ja) フラッシュメモリのリード・ライト処理方法
US20140232574A1 (en) System, method and non-transitory computer readable medium for compressing genetic information
JP2006339990A (ja) データ符号化装置、データ符号化方法、プログラム
TWI441181B (zh) 用來進行資料整形之方法以及其記憶裝置及控制器
US10193579B2 (en) Storage control device, storage system, and storage control method
US10230392B2 (en) Techniques for parallel data decompression
WO2021012278A1 (zh) 一种数据的处理方法、系统、编码器及解码器
TWI430100B (zh) 儲存資料於記憶體之方法以及電子裝置
US8966154B2 (en) Data programming circuit and method for OTP memory
CN105337617A (zh) 一种fsn文件高效压缩方法
CN116192154B (zh) 数据压缩及数据解压方法、装置、电子设备、芯片
US8650441B2 (en) Data programming circuit and method for OTP memory
KR101030726B1 (ko) 확률적 테이블에 의해 생성된 심볼을 기반으로 호프만 테이블을 적용한 메모리 효율이 개선된 멀티미디어용 호프만 디코딩 방법 및 장치
US20110158310A1 (en) Decoding data using lookup tables
CN103326731B (zh) 一种基于分布式算术编码的隐马尔科夫相关信源编码方法
CN108253977B (zh) 用于更新导航数据的增量数据的生成方法及生成装置
CN103116654A (zh) 一种xml数据节点编码压缩方法