TWI599904B - 電子裝置及其資料驗證方法 - Google Patents

電子裝置及其資料驗證方法 Download PDF

Info

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
Application number
TW105110044A
Other languages
English (en)
Other versions
TW201810098A (zh
Inventor
呂政勳
林淳智
盧冬琳
Original Assignee
緯創資通股份有限公司
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 緯創資通股份有限公司 filed Critical 緯創資通股份有限公司
Priority to TW105110044A priority Critical patent/TWI599904B/zh
Priority to CN201610223556.6A priority patent/CN107291372B/zh
Priority to US15/196,045 priority patent/US9779831B1/en
Application granted granted Critical
Publication of TWI599904B publication Critical patent/TWI599904B/zh
Publication of TW201810098A publication Critical patent/TW201810098A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-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/18Auxiliary 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‧‧‧資料驗證方法的步驟
圖1繪示本發明一實施例之電子裝置的方塊圖。 圖2繪示本發明一實施例之資料驗證方法的示意圖。 圖3繪示本發明一實施例之資料驗證方法的流程圖。 圖4繪示本發明一實施例之資料驗證方法的示意圖。 圖5繪示本發明一實施例之資料驗證方法的流程圖。 圖6繪示本發明一實施例之資料驗證方法的示意圖。 圖7繪示本發明一實施例之資料驗證方法的示意圖。 圖8繪示本發明一實施例之資料驗證方法的示意圖。 圖9繪示本發明一實施例之資料驗證方法的示意圖。
S310~S350‧‧‧資料驗證方法的步驟

Claims (13)

  1. 一種電子裝置,包括: 第一唯讀記憶體,具有第一資料; 第二唯讀記憶體,具有第二資料,其中該第一資料與該第二資料之間存在對應關係;以及 控制器,耦接於該第一唯讀記憶體以及該第二唯讀記憶體, 其中該控制器從該第一唯讀記憶體讀取該第一資料中的第一子資料,並依據該對應關係以從該第二唯讀記憶體讀取相對於該第一子資料之該第二資料中的第二子資料,其中該第一子資料包括待驗證資料, 該控制器依據該第一子資料、該第二子資料以及該對應關係以對該待驗證資料進行校驗運算。
  2. 如申請專利範圍第1項所述的電子裝置,其中該控制器判斷該待驗證資料的資料量是否大於預設閥值, 當該待驗證資料的資料量大於預設閥值,該控制器依據該待驗證資料從該第一唯讀記憶體讀取該第一資料中的第三子資料,其中該第三子資料包括該待驗證資料,以及 該控制器依據該第三子資料以對該待驗證資料進行該校驗運算。
  3. 如申請專利範圍第2項所述的電子裝置,其中該控制器依據該第一資料以及該對應關係計算該預設閥值。
  4. 如申請專利範圍第1項所述的電子裝置,其中該第二資料為該第一資料的備分。
  5. 如申請專利範圍第1項所述的電子裝置,其中該第二資料的資料量不大於該第一資料的資料量。
  6. 如申請專利範圍第1項所述的電子裝置,其中該第一唯讀記憶體以及該第二唯讀記憶體屬於電子抹除式可複寫唯讀記憶體。
  7. 如申請專利範圍第1項所述的電子裝置,其中該電子裝置符合儲存橋接塢規範。
  8. 一種資料驗證方法,適於驗證待驗證資料,該資料驗證方法包括: 設置第一唯讀記憶體以及第二唯讀記憶體,其中該第一唯讀記憶體具有第一資料,該第二唯讀記憶體具有第二資料,且該第一資料與該第二資料之間存在對應關係; 從該第一唯讀記憶體中讀取該第一資料中的第一子資料,並依據該對應關係以從該第二唯讀記憶體讀取相對於該第一子資料之該第二資料中的第二子資料,其中該第一子資料包括待驗證資料;以及 依據該第一子資料、該第二子資料以及該對應關係以對該待驗證資料進行校驗運算。
  9. 如申請專利範圍第8項所述的資料驗證方法,更包括: 判斷該待驗證資料的資料量是否大於預設閥值;以及 當該待驗證資料的資料量大於該預設閥值,則依據該待驗證資料從該第一唯讀記憶體讀取該第一資料中的第三子資料,其中該第三子資料包括該待驗證資料;以及 依據該第三子資料以對該待驗證資料進行該校驗運算。
  10. 如申請專利範圍第9項所述的資料驗證方法,其中該預設閥值是關聯於該第一資料以及該對應關係。
  11. 如申請專利範圍第8項所述的資料驗證方法,其中該第二資料為該第一資料的備份。
  12. 如申請專利範圍第8項所述的資料驗證方法,其中該第二資料的資料量不大於該第一資料的資料量。
  13. 如申請專利範圍第8項所述的資料驗證方法,其中該第一唯讀記憶體以及該第二唯讀記憶體屬於電子抹除式可複寫唯讀記憶體。
TW105110044A 2016-03-30 2016-03-30 電子裝置及其資料驗證方法 TWI599904B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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) 促進資料儲存系統中的錯誤校正的方法及其資料儲存系統