TWI599904B - 電子裝置及其資料驗證方法 - Google Patents
電子裝置及其資料驗證方法 Download PDFInfo
- Publication number
- TWI599904B TWI599904B TW105110044A TW105110044A TWI599904B TW I599904 B TWI599904 B TW I599904B TW 105110044 A TW105110044 A TW 105110044A TW 105110044 A TW105110044 A TW 105110044A TW I599904 B TWI599904 B TW I599904B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- read
- memory
- verified
- sub
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 79
- 238000013524 data verification Methods 0.000 title claims description 58
- 230000015654 memory Effects 0.000 claims description 129
- 238000012795 verification Methods 0.000 claims description 20
- 239000000463 material Substances 0.000 description 23
- 238000010586 diagram Methods 0.000 description 14
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
- G06F11/167—Error detection by comparing the memory output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/18—Auxiliary circuits, e.g. for writing into memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Storage Device Security (AREA)
Description
本發明是有關於一種電子裝置及其資料驗證方法,且特別是有關於一種具備至少兩個唯讀記憶體的電子裝置及其資料驗證方法。
唯讀記憶體(Read-Only Memory;ROM)是一種半導體記憶體,其特性是一旦儲存資料就無法再將之改變或刪除,且內容不會因為電源關閉而消失。因此,唯讀記憶體時常被用以儲存一些不需要經常變更的程式或資料,諸如電腦系統的基本輸入輸出系統(Basic Input Output System;BIOS)以及各種微電腦系統的韌體等。
記錄重要產品資料(Vital Product Data;VPD)是唯讀記憶體的典型用途之一。此重要產品資料中包括諸如零件號(part number)及序號(serial number)等硬體或軟體的重要資訊。一般而言,唯讀記憶體是以位元組作為最小存取單位。在將重要產品資料寫入唯讀記憶體時,經常會將重要產品資料系統性的分為多組資料,並且將每組資料的最後一個位元組定義為校驗和(checksum)位元組。如此一來,在讀取重要產品資料的部分內容時,為了驗證被讀取資料的正確性,除了讀取出所需的部分內容以外,同時還必須讀取此部分內容所在分組中的所有資料,才能對該組資料進行零校驗和(zero-checksum)的驗證。如此一來,驗證資料正確性的流程中將可能讀取大量不需要的位元組,導致資料驗證效率的降低。
本發明提供一種電子裝置及其資料驗證方法,能夠降低電子裝置中唯讀記憶體在進行資料驗證時的讀取操作的次數,以提升資料驗證的效率。
本發明的電子裝置包括具有第一資料的第一唯讀記憶體、具有第二資料的第二唯讀記憶體以及控制器。第一資料與第二資料之間存在對應關係。控制器耦接於第一唯讀記憶體以及第二唯讀記憶體。控制器從第一唯讀記憶體讀取第一資料中的第一子資料,並且依據對應關係從第二唯讀記憶體讀取相對於所述第一子資料的第二資料中的第二子資料。待驗證資料包含於所述第一子資料。控制器依據第一子資料、第二子資料以及對應關係以對待驗證資料進行校驗運算。
本發明的資料驗證方法適於驗證待驗證資料。此資料驗證方法包括以下步驟。設置第一唯讀記憶體以及第二唯讀記憶體,其中第一唯讀記憶體具有第一資料,第二唯讀記憶體具有第二資料,且第一資料與第二資料之間存在對應關係。從第一唯讀記憶體中讀取第一資料中的第一子資料,並依據對應關係以從第二唯讀記憶體讀取相對於第一子資料的第二資料中的第二子資料。所述待驗證資料是包含於第一子資料。依據第一子資料、第二子資料以及對應關係以對待驗證資料進行校驗運算。
基於上述,本發明實施例在電子裝置中設置了第一唯讀記憶體之外的第二唯讀記憶體,且第二唯讀記憶體中的第二資料與第一唯讀記憶體中的第一資料之間存在對應關係。據此,在驗證第一資料中的待驗證資料時,除待驗證資料自身所在的第一唯讀記憶體外,還同時利用第二唯讀記憶體以及上述的對應關係來驗證待驗證資料。如此一來,可減少資料驗證時所需讀取操作的次數,以提升資料驗證的效率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1繪示本發明一實施例之電子裝置的方塊圖。請參照圖1,電子裝置100包括第一唯讀記憶體110、第二唯讀記憶體130以及控制器150。在本發明的一實施例中,第一唯讀記憶體110以及第二唯讀記憶體130皆為電子抹除式可複寫唯讀記憶體(Electrically Erasable Programmable ROM;EEPROM),並且以位元組作為最小存取單位,但本發明並不在此限。在其他實施例中,第一唯讀記憶體110以及第二唯讀記憶體130也可例如是可程式唯讀記憶體(Programmable ROM;PROM)、快閃記憶體(Flash memory)或其他類型的唯讀記憶體。控制器150耦接於第一唯讀記憶體110以及第二唯讀記憶體130,用以執行以硬體或韌體型式實作的多個邏輯閘或控制指令,並且可依據所接收的讀取、寫入或抹除等指令來對第一唯讀記憶體110以及第二唯讀記憶體130進行操作。在本實施例中,控制器150例如為記憶體控制器。此控制器150包括控制電路並用以控制第一唯讀記憶體110以及第二唯讀記憶體130的資料存取操作。
圖2繪示本發明一實施例之資料驗證方法的示意圖。圖3繪示本發明一實施例之資料驗證方法的流程圖。本實施例的方法適用於圖1中的電子裝置100。以下將參照圖1中電子裝置100的各組件來描述本實施例方法的詳細步驟。
請參照圖2與圖3,在步驟S310中,控制器150設置具有第一資料的第一唯讀記憶體110以及具有第二資料的第二唯讀記憶體130,其中第一資料與第二資料之間存在對應關係。如圖2所示,第一唯讀記憶體具有第一資料,第一資料包括n個位元組B11~B1n,並區分為r個資料分組,其中各資料分組分別包括n
i個位元組,其中i為正整數1到r,且n=n
1+n
2+…+n
r。每一個資料分組中的其中一個位元組是被定義為校驗和位元組。更明確地說,資料分組中的校驗和位元組會被定義以調整資料分組中的各位元組的總和為零位元組。零位元組意即位元組中的每一個位元皆為零。在本實施例中,每一個資料分組中的最後一個位元組會被定義為校驗和位元組(圖式中以斜線表示)。舉例而言,在資料沒有出錯的情況下,校驗和位元組B1n
1會被定義為使位元組B11至位元組B1n
1的總和為零位元組。
第二唯讀記憶體130具有第二資料,且第一資料與第二資料之間存在對應關係。在本實施例中,第二資料是以鏡像方式作為第一資料的備份。詳細來說,第二資料包括n個位元組B21~b2n,且其中位元組B21的內容是相同於位元組B11,位元組B22的內容是相同於位元組B12,以此類推。換言之,在資料沒有出錯的情況下,第二資料是相同於第一資料。舉例而言,本發明實施例所提出的第一唯讀記憶體110以及第二唯讀記憶體130可例如是以符合儲存橋接塢規範(Storage Bridge Bay;SBB),且互為備份的兩個電子抹除式可複寫唯讀記憶體來實作。
如此控制器150便完成第一唯讀記憶體110以及第二唯讀記憶體130的設置。此時,若待驗證資料包含於第一資料中,在步驟S320中,控制器150從第一唯讀記憶體110中讀取第一資料中,包括待驗證資料的第一子資料,並且依據第一資料與第二資料間的對應關係,從第二唯讀記憶體130中讀取對應於第一子資料的第二資料中的第二子資料。具體而言,在本實施例中,控制器150可例如是接收來自主機系統的讀取指令,此讀取指令例如是指示從第一唯讀記憶體110中讀取一個位元組的待驗證資料B1a,但本發明並不在此限。接收到此讀取指令後,控制器150從第一唯讀記憶體110中讀取第一資料中,包括待驗證資料B1a的第一子資料。在本實施例中,第一子資料為待驗證資料B1a。並且,控制器150從第二唯讀記憶體130中讀取相對於第一子資料(即,待驗證資料B1a)的第二資料中的第二子資料B2a。
接著,在步驟S330中,控制器150依據所讀取的第一子資料、第二子資料以及第一資料與第二資料之間的對應關係,對待驗證資料進行校驗運算,以判斷待驗證資料是否正確。具體而言,在本實施例中,第二資料是以鏡像方式作為第一資料的備份,因此在待驗證資料B1a正確的情況下,第一子資料B1a與第二子資料B2a中的各個位元皆應相同。因此,控制器150可例如對第一子資料B1a以及第二子資料B2a進行異或運算(Exclusive-OR; XOR)來作為對待驗證資料B1a的校驗運算。倘若異或運算的結果為零位元組,表示第一子資料B1a與第二子資料B2a中的各個位元皆相同,則於步驟S340中,控制器150判定待驗證資料B1a正確,便能夠以被判定正確的待驗證資料B1a來回應讀取指令。反之,倘若異或運算的結果不為零位元組,而包括至少一個位元值為1,則於步驟S350中,控制器150判定上述位元值為1所對應的待驗證資料B1a中的位元可能出現錯誤,便不以可能有錯誤的待驗證資料B1a來回應讀取指令。舉例而言,倘若異或運算的結果中的第一個位元以及第三個位元值為1,其他為0,則控制器150判定待驗證資料B1a的第一個位元以及第三個位元可能出現錯誤。
在本發明的一些實施例中,倘若控制器150判定待驗證資料可能出現錯誤後,則控制器150更可例如依據校驗運算的結果來還原待驗證資料,並且以還原後的待驗證資料來回應讀取指令。舉例而言,在前述實施例中,控制器150可例如是分別將待驗證資料B1a中的第一個位元以及第三個位元內容反轉,以得到還原後的待驗證資料,再以還原後的待驗證資料來回應讀取指令。
前述實施例的方法藉由讀取第一子資料以及第二子資料來驗證待驗證資料,而無須讀取包括待驗證資料的整個資料分組,可減少驗證時的讀取次數,進而增加資料驗證的效率。
在前述實施例中的待驗證資料是第一唯讀記憶體110中一個位元組的資料,然而本發明並不限於此,以下將舉實施例來描述待驗證資料也可以是包括多個位元組的資料。
圖4繪示本發明一實施例之資料驗證方法的示意圖。圖5繪示本發明一實施例之資料驗證方法的流程圖。本實施例的方法適用於圖1中的電子裝置100。以下將參照圖1中電子裝置100的各組件來描述本實施例方法的詳細步驟。
請參照圖4與圖5,在本實施例中的步驟S510是相同於圖3實施例中的步驟S310。換言之,圖4中的第一唯讀記憶體110以及第二唯讀記憶體130中的第一資料以及第二資料是分別相同於圖2中的第一資料以及第二資料。在本實施例中,控制器150例如會接收到讀取指令,指示控制器150從第一唯讀記憶體110中讀取m個位元組的待驗證資料B1c~B1(c+m-1),並且待驗證資料B1c~B1(c+m-1)例如是被分在同一個資料分組DGx。在步驟S520中,控制器150判斷待驗證資料的資料量是否大於預設閥值。在本實施例中,待驗證資料B1c~B1(c+m-1)所在的資料分組DGx例如是包括n
x個位元組。因此,倘若利用此資料分組DGx中的校驗和位元組來驗證待驗證資料B1c~B1(c+m-1),總共須讀取n
x個位元組;反之,倘若對待校驗資料B1c~B1(c+m-1)中的各位元組分別使用圖2實施例所提供的資料驗證方法來進行校驗運算,則總共須讀取2m個位元組。因而,在本實施例中,預設閥值將被設定為n
x/2。更明確地說,若n
x> 2m ,則對待驗證資料中的各位元組分別使用圖2實施例所提供的資料驗證方法將能藉由較少的讀取次數達到資料驗證的目的。
在本實施例中,倘若控制器150於步驟S520中判斷m不大於n
x/2,則於步驟S530與步驟S540中,控制器150會對待驗證資料B1c~B1(c+m-1)中的各位元組分別使用圖2實施例的資料驗證方法來驗證待驗證資料B1c~B1(c+m-1)的各個位元組。倘若控制器150依據校驗運算結果判斷待驗證資料正確,則進入步驟S590;反之,則進入步驟S570。特別是,在本發明的一實施例中,若在步驟S570中判定待驗證資料B1c~B1(c+m-1)可能出現錯誤,則控制器150不以此待驗證資料來回應讀取指令,而更會依據校驗運算的結果來還原待驗證資料。在本實施例中,上述的步驟S530、S540、S570以及S590的實作方法是分別對待驗證資料中的各位元組進行類似於圖3實施例中的步驟S320、S330、S350以及S340,故重複的內容在此不再贅述。
在本實施例中,倘若控制器150於步驟S520中判斷m大於n
x/2,則進入步驟S550。在步驟S550中,控制器150依據待驗證資料以及第一資料從第一唯讀記憶體110中讀取第一資料中的第三子資料。在本實施例中,控制器150讀取待驗證資料B1c~B1(c+m-1)所在的資料分組DGx中的所有n
x個位元組作為第三子資料。接著,在步驟S560中,控制器150依據所讀取的第三子資料以對待驗證資料進行校驗運算,以判斷待驗證資料是否正確。在本實施例中,控制器150可例如將第三子資料中的各位元組拿來進行異或運算。由於第三子資料中包括預先定義的校驗和位元組,因此倘若異或運算的結果為零位元組,則在步驟S590中,控制器150便判定待驗證資料B1c~B1(c+m-1)正確,能夠以被判定正確的待驗證資料B1c~B1(c+m-1)來回應讀取指令。反之,倘若異或運算的結果不為零位元組,則於步驟S580中,控制器150判定待驗證資料B1c~B1(c+m-1)中可能有錯誤,因而不以此回應讀取指令。
上述實施例的方法進一步判斷待驗證資料的資料量是否大於預設閥值來動態地調整資料驗證方法。並且,預設閥值是關聯於第一資料以及第一資料和第二資料間的對應關係。如此動態調整資料驗證方法,更能夠確保本發明提供的電子裝置藉由較少的讀取次數來執行資料驗證方法,增加資料驗證的效率。
值得一提的是,在前述實施例中,待驗證資料B1c~B1(c+m-1)是在同一個資料分組中,然而,本發明並不限於此。在其他實施例中,待驗證資料B1c~B1(c+m-1)也可例如是分散於不同的資料分組中。
此外,在前述的實施例中,第二資料是以鏡像方式作為第一資料的備份。換言之,第二資料的內容是相同於第一資料。然而,本發明並不在此限,在其他實施例中,第二資料的內容也可例如是設置成不同於第一資料。以下將舉實施例詳細描述之。
圖6繪示本發明一實施例之資料驗證方法的示意圖。本實施例的方法同樣適用於圖1中的電子裝置100以及圖3的步驟流程。以下將參照圖1中電子裝置100的各組件以及圖3的步驟流程來描述本實施例方法的各步驟。
請參照圖3與圖6,在步驟S310中,控制器150設置具有第一資料的第一唯讀記憶體110以及具有第二資料的第二唯讀記憶體130,其中第一資料與第二資料之間存在對應關係。如圖6所示,第一唯讀記憶體110中的第一資料是類似於圖2實施例中的第一唯讀記憶體110中的第一資料,在此不再贅述。第二唯讀記憶體130中具有與第一資料存在對應關係的第二資料。在本實施例中,第二資料的設置方式例如是將第一資料中的各位元組B11~B1n依序兩兩不重複的進行特定運算後,將特定運算的結果依序記錄於第二唯讀記憶體130中作為第二資料。舉例而言,如圖6所示,B21=B11⊕B12;B22=B13⊕B14,以此類推,其中以⊕表示特定運算之運算符。在本實施例中,特定運算⊕例如為異或運算。換言之,位元組B21是對應於位元組B11以及B12,並且位元組B22是對應於位元組B13以及B14,以此類推。
隨後,若待驗證資料包含於第一資料中,在步驟S320中,控制器150從第一唯讀記憶體110中讀取第一資料中,包括待驗證資料的第一子資料,並且依據第一資料與第二資料間的對應關係,從第二唯讀記憶體130中讀取對應於第一子資料的第二資料中的第二子資料。具體而言,在本實施例中,控制器150可例如是接收來自主機系統的讀取指令,此讀取指令例如是指示從第一唯讀記憶體110中讀取一個位元組的待驗證資料B1a,但本發明並不在此限。接收到此讀取指令後,控制器150從第一唯讀記憶體110中讀取第一資料中,包括待驗證資料B1a的第一子資料。在本實施例中,若a為奇數,待驗證資料B1a與位元組B1(a+1)是對應於第二資料中的位元組B2((a+1)/2)。因此,控制器150從第一唯讀記憶體110中讀取待驗證資料B1a與位元組B1(a+1)作為第一子資料,並且從第二唯讀記憶體130中讀取位元組B2((a+1)/2)作為第二子資料。另一方面,若a為偶數,待驗證資料B1a與第一資料B1(a-1)是對應於第二資料中的位元組B2(a/2)。因此,控制器150從第一唯讀記憶體110中讀取待驗證資料B1a與第一資料B1(a-1)作為第一子資料,並且從第二唯讀記憶體130中讀取位元組B2(a/2)作為第二子資料。
接著,在步驟S330中,控制器150依據所讀取的第一子資料、第二子資料以及第一資料與第二資料之間的對應關係,對待驗證資料進行校驗運算,以判斷待驗證資料是否正確。在本實施例中,特定運算⊕例如為異或運算,則控制器150可例如對第一子資料以及第二子資料再次進行異或運算來作為對待驗證資料的校驗運算。倘若異或運算的結果為零位元組,則於步驟S340中,控制器150可判定待驗證資料B1a正確,便能夠以被判定正確的待驗證資料B1a來回應讀取指令。反之,倘若異或運算的結果不為零位元組,則於步驟S350中,控制器150可判定待驗證資料B1a中的位元可能出現錯誤,而不以可能錯誤的待驗證資料B1a來回應讀取指令。舉例而言,倘若異或運算的結果中的第一個位元以及第三個位元值為1,其他為0,則控制器150判定待驗證資料B1a的第一個位元與第三個位元可能出現錯誤。
類似地,在其他實施例中,待驗證資料也可以是包括m個位元組的資料,而非僅包括1個位元組的資料。
圖7繪示本發明一實施例之資料驗證方法的示意圖。本實施例的方法同樣適用於圖1中的電子裝置100以及圖5的步驟流程。以下將參照圖1中電子裝置100的各組件以及圖5的步驟流程來描述本實施例方法的各步驟。
請參照圖5與圖7,圖7中的第一唯讀記憶體110以及第二唯讀記憶體130的設置方法是相同於圖6實施例中的設置方法。換言之,在本實施例中,步驟S510的實作方法是類似於圖6實施例中的步驟S310,在此不再贅述。在本實施例中,控制器150例如會接收到讀取指令,指示控制器150從第一唯讀記憶體110中讀取m個位元組的待驗證資料B1c~B1(c+m-1),並且待驗證資料B1c~B1(c+m-1)是被分在同一個資料分組DGx。在步驟S520中,控制器150判斷待驗證資料的資料量是否大於預設閥值。在本實施例中,待驗證資料B1c~B1(c+m-1)所在的資料分組DGx例如是包括n
x個位元組。因此,倘若利用此資料分組DGx中的校驗和位元組來驗證待驗證資料B1c~B1(c+m-1),總共須讀取n
x個位元組;反之,倘若對待校驗資料B1c~B1(c+m-1)中的各位元組分別使用圖6實施例所提供的資料驗證方法來進行校驗運算,則總共須讀取3m個位元組。因而,在本實施例中,預設閥值將被設定為n
x/3。更明確地說,若n
x> 3m ,則對待驗證資料中的各位元組使用圖6實施例所提供的資料驗證方法將能藉由較少的讀取次數達到資料驗證的目的。
在本實施例中,倘若控制器150於步驟S520中判斷m不大於n
x/3,則於步驟S530與步驟S540中,控制器150會對待驗證資料B1c~B1(c+m-1)中的各位元組分別使用圖6實施例中的資料驗證方法來驗證待驗證資料B1c~B1(c+m-1)的各個位元組。倘若控制器150依據校驗運算結果判斷待驗證資料正確,則進入步驟S590;反之,則進入步驟S570。特別是,在本發明的一實施例中,若在步驟S570中判定待驗證資料B1c~B1(c+m-1)可能出現錯誤,則控制器150不以此待驗證資料來回應讀取指令。上述的步驟S530、S540、S570以及S590的實作方法是分別對待驗證資料中的各位元組進行類似於圖6實施例中的步驟S320、S330、S350以及S340,故重複的內容在此不再贅述。
在本實施例中,倘若控制器150於步驟S520中判斷m大於n
x/3,則進入步驟S550。在本實施例中,步驟S550的實作方式是類似於前述圖4實施例中的步驟S550,在此不再贅述。
藉由上述實施例的方法來實作本發明提供的資料驗證方法,除了減少驗證時的讀取次數,增加資料驗證的效率之外,更能有效的節省第二唯讀記憶體130的空間。具體來說,使用圖6與圖7實施例的方法來設置第一唯讀記憶體110以及第二唯讀記憶體130,相較於圖2與圖4實施例而言,節省了一半的第二唯讀記憶體130空間使用量。
圖8繪示本發明一實施例之資料驗證方法的示意圖。本實施例的方法同樣適用於圖1中的電子裝置100以及圖3的步驟流程。以下將參照圖1中電子裝置100的各組件以及圖3的步驟流程來描述本實施例方法的各步驟。
請參照圖3與圖8,在步驟S310中,控制器150設置具有第一資料的第一唯讀記憶體110以及具有第二資料的第二唯讀記憶體130,其中第一資料與第二資料之間存在對應關係。如圖8所示,第一唯讀記憶體110中的第一資料是類似於圖2實施例中的第一唯讀記憶體110中的第一資料,在此不再贅述。第二唯讀記憶體130中具有與第一資料存在對應關係的第二資料。在本實施例中,如圖8所示,第二資料的設置方式例如是將第一資料中的各位元組B11~B1n依序兩兩進行特定運算後,將特定運算的結果依序記錄於第二唯讀記憶體130中作為第二資料。舉例而言,如圖8所示,B21=B11⊕B12;B22=B12⊕B13,以此類推,其中以⊕表示特定運算之運算符。在本實施例中,特定運算⊕例如為異或運算。換言之,位元組B21是對應於位元組B11以及B12,並且位元組B22是對應於位元組B12以及B13,以此類推。
隨後,在若待驗證資料包含於第一資料中,在步驟S320中,控制器150從第一唯讀記憶體110中讀取第一資料中,包括待驗證資料的第一子資料,並且依據第一資料與第二資料間的對應關係,從第二唯讀記憶體130中讀取對應於第一子資料的第二資料中的第二子資料。具體而言,在本實施例中,控制器150可例如是接收來自主機系統的讀取指令,此讀取指令例如是指示從第一唯讀記憶體110中讀取一個位元組的待驗證資料B1a,但本發明並不在此限。接收到此讀取指令後,控制器150從第一唯讀記憶體110中讀取第一資料中,包括待驗證資料B1a的第一子資料。。在本實施例中,控制器150可例如從第一唯讀記憶體110中讀取待驗證資料B1a與位元組B1(a+1)作為第一子資料,並且從第二唯讀記憶體130中讀取對應的位元組B2(a)作為第二子資料。在另一實施例中,控制器150亦可例如從第一唯讀記憶體110中讀取待驗證資料B1a與位元組B1(a-1)作為第一子資料,並且從第二唯讀記憶體130中讀取對應的位元組B2(a-1)作為第二子資料,本發明不在此限。
接著,在步驟S330中,控制器150依據所讀取的第一子資料、第二子資料以及第一資料與第二資料之間的對應關係,對待驗證資料進行校驗運算,以判斷待驗證資料是否正確。在本實施例中,特定運算⊕例如為異或運算,則控制器150可例如對第一子資料以及第二子資料再次進行異或運算來作為對待驗證資料的校驗運算。倘若異或運算的結果為零位元組,則於步驟S340中,控制器150可判定待驗證資料B1a正確,便能夠以被判定正確的待驗證資料B1a來回應讀取指令。反之,倘若異或運算的結果不為零位元組,則於步驟S350中,控制器150可判定待驗證資料B1a中的位元可能出現錯誤,便不以可能有錯誤的待驗證資料B1a來回應讀取指令。舉例而言,倘若異或運算的結果中的第一個位元以及第三個位元值為1,其他為0,則控制器150判定待驗證資料B1a的第一個位元以及第三個位元可能出現錯誤。
類似地,在其他實施例中,待驗證資料也可以包括m個位元組的資料,而非僅包括1個位元組的資料。
圖9繪示本發明一實施例之資料驗證方法的示意圖。本實施例的方法同樣適用於圖1中的電子裝置100以及圖5的步驟流程。以下將參照圖1中電子裝置100的各組件以及圖5的步驟流程來描述本實施例方法的各步驟。
請參照圖5與圖9,圖9中的第一唯讀記憶體110以及第二唯讀記憶體130的設置方法是相同於圖8實施例中的設置方法。換言之,在本實施例中,步驟S510的實作方法是類似於圖8實施例中的步驟S310,在此不再贅述。在本實施例中,控制器150例如會接收到讀取指令,指示控制器150從第一唯讀記憶體110中讀取m個位元組的待驗證資料B1c~B1(c+m-1),並且待驗證資料B1c~B1(c+m-1)是被分在同一個資料分組DGx。在步驟S520中,控制器150判斷待驗證資料的資料量是否大於預設閥值。在本實施例中,待驗證資料B1c~B1(c+m-1)所在的資料分組DGx例如是包括n
x個位元組。因此,倘若利用此資料分組DGx中的校驗和位元組來驗證待驗證資料B1c~B1(c+m-1),總共須讀取n
x個位元組;反之,倘若對待校驗資料B1c~B1(c+m-1)中的各位元組分別使用圖8實施例所提供的資料驗證方法來進行校驗運算,則總共須讀取3m個位元組。因而,在本實施例中,預設閥值將被設定為n
x/3。更明確地說,若n
x> 3m ,則對待驗證資料中的各位元組使用圖8實施例所提供的資料驗證方法將能藉由較少的讀取次數達到資料驗證的目的。
在本實施例中,倘若控制器150於步驟S520中判斷m不大於n
x/3,則於步驟S530與步驟S540中,控制器150會對待驗證資料B1c~B1(c+m-1)中的各位元組分別使用圖8實施例中的資料驗證方法來驗證待驗證資料B1c~B1(c+m-1)的各個位元組。倘若控制器150依據校驗運算結果判斷待驗證資料正確,則進入步驟S590;反之,則進入步驟S570。特別是,在本發明的一實施例中,若在步驟S570中判定待驗證資料B1c~B1(c+m-1)可能出現錯誤,則控制器150不以此待驗證資料來回應讀取指令,而更會依據校驗運算的結果來還原待驗證資料。上述的步驟S530、S540、S570以及S590的實作方法是分別對待驗證資料中的各位元組進行類似於圖8實施例中的步驟S320、S330、S350以及S340,故重複的內容在此不再贅述。
在本實施例中,倘若控制器150於步驟S520中判斷m大於n
x/3,則進入步驟S550。在本實施例中,步驟S550的實作方式同樣是類似於前述圖4實施例中的步驟S550,在此不再贅述。
值得一提的是,藉由本發明實施例所提的資料驗證方法,在判斷待驗證資料可能有錯誤後,控制器150更可依據校驗運算的結果來還原待驗證資料。例如,以圖8實施例而言,若在步驟S330中判定待驗證資料B1a可能出現錯誤,則控制器150可用類似的資料驗證方法來驗證待驗證資料B1a的鄰近位元組B1(a-1)與B1(a+1)。當位元組B1(a-1)以及B1(a+1)皆判定正確,則控制器150可例如是對位元組B1(a-1)以及位元組B2a進行異或運算,並以運算結果來將待驗證資料B1a還原為B1a’,再以還原後的待驗證資料B1a’來回應讀取指令。
綜上所述,本發明實施例在電子裝置中設置了第一唯讀記憶體之外的第二唯讀記憶體,且第二唯讀記憶體中的第二資料與第一唯讀記憶體中的第一資料之間存在對應關係。據此,在驗證第一唯讀記憶體中的待驗證資料時,可同時利用第一唯讀記憶體、第二唯讀記憶體以及上述的對應關係來驗證待驗證資料。如此一來,能夠降低資料驗證時所需執行的讀取操作的次數,以提升資料驗證的效率。除此之外,本發明實施例中第一資料與第二資料間的對應關係使得第二資料的資料量不大於第一資料的資料量,如此一來在不佔用大量第二唯讀記憶體空間的情況下,亦能達到提升資料驗證效率的目的。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100‧‧‧電子裝置
101‧‧‧第一唯讀記憶體
103‧‧‧第二唯讀記憶體
105‧‧‧控制器
B11~B1n‧‧‧第一資料的位元組
B21~B2n‧‧‧第二資料的位元組
DGx‧‧‧資料分組
S310~S350、S510~S590‧‧‧資料驗證方法的步驟
101‧‧‧第一唯讀記憶體
103‧‧‧第二唯讀記憶體
105‧‧‧控制器
B11~B1n‧‧‧第一資料的位元組
B21~B2n‧‧‧第二資料的位元組
DGx‧‧‧資料分組
S310~S350、S510~S590‧‧‧資料驗證方法的步驟
圖1繪示本發明一實施例之電子裝置的方塊圖。 圖2繪示本發明一實施例之資料驗證方法的示意圖。 圖3繪示本發明一實施例之資料驗證方法的流程圖。 圖4繪示本發明一實施例之資料驗證方法的示意圖。 圖5繪示本發明一實施例之資料驗證方法的流程圖。 圖6繪示本發明一實施例之資料驗證方法的示意圖。 圖7繪示本發明一實施例之資料驗證方法的示意圖。 圖8繪示本發明一實施例之資料驗證方法的示意圖。 圖9繪示本發明一實施例之資料驗證方法的示意圖。
S310~S350‧‧‧資料驗證方法的步驟
Claims (13)
- 一種電子裝置,包括: 第一唯讀記憶體,具有第一資料; 第二唯讀記憶體,具有第二資料,其中該第一資料與該第二資料之間存在對應關係;以及 控制器,耦接於該第一唯讀記憶體以及該第二唯讀記憶體, 其中該控制器從該第一唯讀記憶體讀取該第一資料中的第一子資料,並依據該對應關係以從該第二唯讀記憶體讀取相對於該第一子資料之該第二資料中的第二子資料,其中該第一子資料包括待驗證資料, 該控制器依據該第一子資料、該第二子資料以及該對應關係以對該待驗證資料進行校驗運算。
- 如申請專利範圍第1項所述的電子裝置,其中該控制器判斷該待驗證資料的資料量是否大於預設閥值, 當該待驗證資料的資料量大於預設閥值,該控制器依據該待驗證資料從該第一唯讀記憶體讀取該第一資料中的第三子資料,其中該第三子資料包括該待驗證資料,以及 該控制器依據該第三子資料以對該待驗證資料進行該校驗運算。
- 如申請專利範圍第2項所述的電子裝置,其中該控制器依據該第一資料以及該對應關係計算該預設閥值。
- 如申請專利範圍第1項所述的電子裝置,其中該第二資料為該第一資料的備分。
- 如申請專利範圍第1項所述的電子裝置,其中該第二資料的資料量不大於該第一資料的資料量。
- 如申請專利範圍第1項所述的電子裝置,其中該第一唯讀記憶體以及該第二唯讀記憶體屬於電子抹除式可複寫唯讀記憶體。
- 如申請專利範圍第1項所述的電子裝置,其中該電子裝置符合儲存橋接塢規範。
- 一種資料驗證方法,適於驗證待驗證資料,該資料驗證方法包括: 設置第一唯讀記憶體以及第二唯讀記憶體,其中該第一唯讀記憶體具有第一資料,該第二唯讀記憶體具有第二資料,且該第一資料與該第二資料之間存在對應關係; 從該第一唯讀記憶體中讀取該第一資料中的第一子資料,並依據該對應關係以從該第二唯讀記憶體讀取相對於該第一子資料之該第二資料中的第二子資料,其中該第一子資料包括待驗證資料;以及 依據該第一子資料、該第二子資料以及該對應關係以對該待驗證資料進行校驗運算。
- 如申請專利範圍第8項所述的資料驗證方法,更包括: 判斷該待驗證資料的資料量是否大於預設閥值;以及 當該待驗證資料的資料量大於該預設閥值,則依據該待驗證資料從該第一唯讀記憶體讀取該第一資料中的第三子資料,其中該第三子資料包括該待驗證資料;以及 依據該第三子資料以對該待驗證資料進行該校驗運算。
- 如申請專利範圍第9項所述的資料驗證方法,其中該預設閥值是關聯於該第一資料以及該對應關係。
- 如申請專利範圍第8項所述的資料驗證方法,其中該第二資料為該第一資料的備份。
- 如申請專利範圍第8項所述的資料驗證方法,其中該第二資料的資料量不大於該第一資料的資料量。
- 如申請專利範圍第8項所述的資料驗證方法,其中該第一唯讀記憶體以及該第二唯讀記憶體屬於電子抹除式可複寫唯讀記憶體。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105110044A TWI599904B (zh) | 2016-03-30 | 2016-03-30 | 電子裝置及其資料驗證方法 |
CN201610223556.6A CN107291372B (zh) | 2016-03-30 | 2016-04-12 | 电子装置及其数据验证方法 |
US15/196,045 US9779831B1 (en) | 2016-03-30 | 2016-06-29 | Electronic apparatus and data verification method using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105110044A TWI599904B (zh) | 2016-03-30 | 2016-03-30 | 電子裝置及其資料驗證方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI599904B true TWI599904B (zh) | 2017-09-21 |
TW201810098A TW201810098A (zh) | 2018-03-16 |
Family
ID=59929104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105110044A TWI599904B (zh) | 2016-03-30 | 2016-03-30 | 電子裝置及其資料驗證方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9779831B1 (zh) |
CN (1) | CN107291372B (zh) |
TW (1) | TWI599904B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108039190B (zh) * | 2017-12-15 | 2020-09-08 | 北京京存技术有限公司 | 一种测试方法及装置 |
TWI664828B (zh) * | 2018-02-14 | 2019-07-01 | 和碩聯合科技股份有限公司 | 測試方法和測試系統 |
CN111061242A (zh) * | 2018-10-16 | 2020-04-24 | 联合汽车电子有限公司 | 电动汽车电机控制器的校验系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW509840B (en) * | 2000-06-22 | 2002-11-11 | Microchip Tech Inc | Method of checking EEPROM data with an embedded CRC |
TW533356B (en) * | 1998-07-03 | 2003-05-21 | Mitsubishi Electric Corp | ROM data output circuit |
TW200921389A (en) * | 2007-11-14 | 2009-05-16 | Mcm Portfolio Llc | Method and apparatus of providing the security and error ocrrection capability for memory storage devices |
JP2010102686A (ja) * | 2008-09-29 | 2010-05-06 | Denso Corp | 電子制御装置及びマイクロコンピュータ |
US20130031413A1 (en) * | 2011-07-29 | 2013-01-31 | Righi Luigi P | Methods and systems for preboot data verification |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010072843A (ja) * | 2008-09-17 | 2010-04-02 | Nec Electronics Corp | 検証用デバイス及び検証装置並びに検証システム |
JP2012069180A (ja) * | 2010-09-21 | 2012-04-05 | Toshiba Corp | 半導体記憶装置 |
CN103034594A (zh) * | 2011-09-30 | 2013-04-10 | 群联电子股份有限公司 | 存储器储存装置及其存储器控制器与密码验证方法 |
CN103744744B (zh) * | 2014-02-08 | 2017-08-25 | 威盛电子股份有限公司 | 数据储存装置以及易失性存储器的数据校验方法 |
JP6584823B2 (ja) * | 2014-06-20 | 2019-10-02 | 株式会社東芝 | メモリ管理装置、プログラム、及び方法 |
US10275310B2 (en) * | 2015-03-09 | 2019-04-30 | Western Digital Technologies, Inc. | Updating exclusive-or parity data |
-
2016
- 2016-03-30 TW TW105110044A patent/TWI599904B/zh active
- 2016-04-12 CN CN201610223556.6A patent/CN107291372B/zh active Active
- 2016-06-29 US US15/196,045 patent/US9779831B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW533356B (en) * | 1998-07-03 | 2003-05-21 | Mitsubishi Electric Corp | ROM data output circuit |
TW509840B (en) * | 2000-06-22 | 2002-11-11 | Microchip Tech Inc | Method of checking EEPROM data with an embedded CRC |
TW200921389A (en) * | 2007-11-14 | 2009-05-16 | Mcm Portfolio Llc | Method and apparatus of providing the security and error ocrrection capability for memory storage devices |
JP2010102686A (ja) * | 2008-09-29 | 2010-05-06 | Denso Corp | 電子制御装置及びマイクロコンピュータ |
US20130031413A1 (en) * | 2011-07-29 | 2013-01-31 | Righi Luigi P | Methods and systems for preboot data verification |
Also Published As
Publication number | Publication date |
---|---|
US9779831B1 (en) | 2017-10-03 |
CN107291372B (zh) | 2020-02-11 |
TW201810098A (zh) | 2018-03-16 |
CN107291372A (zh) | 2017-10-24 |
US20170287569A1 (en) | 2017-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9552290B2 (en) | Partial R-block recycling | |
US9817711B2 (en) | Memory controller | |
CN111078149B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
JP4734033B2 (ja) | 記憶装置 | |
US8560926B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US8495281B2 (en) | Intra-block memory wear leveling | |
KR101343262B1 (ko) | 동시 판독 및 기록 메모리 동작을 수행하는 방법 및 장치 | |
TW201642266A (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI554886B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI599904B (zh) | 電子裝置及其資料驗證方法 | |
TWI591640B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI545581B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
JP2010079856A (ja) | 記憶装置およびメモリ制御方法 | |
TWI467590B (zh) | 資料處理方法、記憶體控制器及記憶體儲存裝置 | |
TWI686697B (zh) | 記憶體管理方法以及儲存控制器 | |
US9607704B2 (en) | Data reading method, memory controlling circuit unit and memory storage device | |
US8850291B2 (en) | Data input and output method of NAND flash memory and embedded system using the same | |
US10546640B2 (en) | Data protecting method and memory storage device | |
TWI455142B (zh) | 快閃記憶體之資料讀取的方法以及資料儲存裝置 | |
TWI446346B (zh) | 資料讀取方法、記憶體儲存裝置及其記憶體控制器 | |
JP4692843B2 (ja) | メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US9436547B2 (en) | Data storing method, memory control circuit unit and memory storage device | |
TWI431631B (zh) | 應用可變動錯誤更正碼容量的快閃記憶體控制方法 | |
TWI501082B (zh) | 電腦系統及其操作方法 | |
TWI575529B (zh) | 促進資料儲存系統中的錯誤校正的方法及其資料儲存系統 |