TWI703567B - 記憶體資料的搜尋方法應用於資料儲存裝置 - Google Patents
記憶體資料的搜尋方法應用於資料儲存裝置 Download PDFInfo
- Publication number
- TWI703567B TWI703567B TW109101324A TW109101324A TWI703567B TW I703567 B TWI703567 B TW I703567B TW 109101324 A TW109101324 A TW 109101324A TW 109101324 A TW109101324 A TW 109101324A TW I703567 B TWI703567 B TW I703567B
- Authority
- TW
- Taiwan
- Prior art keywords
- address information
- block
- error correction
- reverse
- code
- Prior art date
Links
Images
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/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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/109—Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation
Abstract
一種資料儲存裝置及記憶體資料的搜尋方法被提出。搜尋方法為:區分記憶區塊為多個子區塊,各個子區塊分為標籤區塊以及位址資訊區塊,其中標籤區塊包含識別碼、反向識別碼、糾錯碼以及反向糾錯碼;選取子區塊的其中之一以作為選中子區塊;依據識別碼、反向識別碼、糾錯碼以及反向糾錯碼來判斷選中子區塊是否為可靠資料區塊;當選中子區塊為可靠資料區塊時,讀取選中子區塊的位址資訊區塊以獲得碼資訊的儲存位址資訊。
Description
本發明是有關於一種資料儲存裝置及記憶體資料的搜尋方法,且特別是應用於一種記錄大量數據的資料儲存裝置及記憶體資料的搜尋方法。
因應大數據分析的需求,現今的資料儲存裝置,常用以記錄大量數據。資料儲存裝置的記憶體,也可用以記錄關於記憶體參數的碼資訊(code information)。當針對碼資訊進行搜尋以及讀取動作時,可能產生以下幾個問題:第一,因為碼資訊所在的記憶行產生壞行(bad column)的問題而讀取到錯誤的碼資訊;第二,在儲存大量數據的記憶體中,搜尋到所要讀取的碼資訊,常耗去大量的時間;第三,在記憶體的讀取動作中,須避免發生讀取干擾的問題,以維護讀取的碼資訊的可靠度。
基於以上的多個問題,如何快速且可靠的獲得碼資訊,成為本領域設計者的重要課題。
本發明提供一種資料儲存裝置以及記憶體資料的搜尋方法,在大量數據中快速搜尋出所需的資訊。
本發明的記憶體的資料的搜尋方法包括:區分記憶區塊為多個子區塊,各子區塊分為標籤區塊以及位址資訊區塊,其中標籤區塊記錄多個識別碼、多個反向識別碼、多個糾錯碼以及多個反向糾錯碼;選取子區塊的其中之一以作為選中子區塊;讀取選中子區塊的標籤區塊中的識別碼、反向識別碼、糾錯碼以及反向糾錯碼,並依據識別碼、反向識別碼、糾錯碼以及反向糾錯碼來判斷選中子區塊是否為可靠資料區塊;當選中子區塊是為可靠資料區塊時,讀取選中子區塊的位址資訊區塊以獲得碼資訊的儲存位址資訊。
在本發明的一實施例中,上述的識別碼、反向識別碼、糾錯碼以及反向糾錯碼識別碼交錯配置在標籤區塊中。
在本發明的一實施例中,上述的依據識別碼、反向識別碼、糾錯碼以及反向糾錯碼來判斷選中子區塊是否為可靠資料區塊的步驟包括:計算識別碼等於第一設定值的第一數量;計算反向識別碼等於第一反向設定值的第二數量;當第一數量以及第二數量均不小於第一門檻值時,讀取糾錯碼以及反向糾錯碼;選取一選取糾錯碼以及一選取反向糾錯碼,其中所選取的選取糾錯碼以及選取反向糾錯碼互補;選取糾錯碼以及選取反向糾錯碼則分別為標準糾錯碼及標準反向糾錯碼,計算糾錯碼等於標準糾錯碼
的第三數量,計算反向糾錯碼等於標準反向糾錯碼的第四數量;當第三數量以及第四數量均不小於第二門檻值時,判斷選中子區塊為可靠資料區塊。
在本發明的一實施例中,上述的識別碼的資料相同,反向識別碼的資料相同,且各識別碼與對應的各反向識別碼的資料內容互補。
在本發明的一實施例中,上述的糾錯碼的資料相同,反向糾錯碼的資料相同,且各糾錯碼與對應的各糾錯碼的資料內容互補。
在本發明的一實施例中,上述的位址資訊區塊記錄交錯配置的多個位址資訊以及多個反相位址資訊,位址資訊與對應的反相位址資訊形成同組的位址資訊對。
在本發明的一實施例中,上述的各位址資訊包括多個位元組,各反相位址資訊包括多個位元組,其中,當選中子區塊為可靠資料區塊時,讀取選中子區塊的位址資訊區塊以獲得碼資訊的儲存位址資訊的步驟包括:選擇位址資訊對中的其中之一做比對,所選中位址資訊對中的位址資訊與反相位址資訊互補,則稱此對位址資訊為標準位址資訊與標準反相位址資訊;逐一比較每一位元組標準位址資訊與各位址資訊,並記錄比較結果為相同的第一數量;判斷第一數量是否大於第一門檻值,以記錄對應的位址資訊的各位元組以獲得儲存位址資訊;逐一比較每一位元組標準反向位址資訊與各反向位址資訊,並記錄比較結果為相同的第
二數量;以及,判斷各第二數量是否大於第二門檻值以記錄對應的反向位址資訊的各位元組以獲得反向儲存位址資訊。
在本發明的一實施例中,搜尋方法包括依據輸出位元位址資訊以讀取記憶體內的碼資訊。
在本發明的一實施例中,上述的區塊讀取選擇碼,依據區塊選擇碼以選取子區塊的其中之一以作為選中子區塊。
在本發明的一實施例中,識別碼無固定值用意只為加快搜尋速度。
本發明的資料儲存裝置包括記憶體以及控制器。記憶體儲存碼資訊。控制器耦接記憶體,用以執行如上所述記憶體資料的搜尋方法。
基於上述,本發明透過在記憶體的多個子區塊中設置標籤區塊,並透過標籤區塊中的識別碼、反向識別碼、糾錯碼以及反向糾錯碼來判定對應的子區塊的可靠度,再透過可靠資料區塊中所儲存的位址資訊進行讀取,可快速的獲得具有高可靠度的碼資訊的儲存位址資訊,並藉以快速的讀取正確碼資訊。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
1110:控制器
1120:記憶體
1130:選擇碼產生器
11:資料儲存裝置
210:記憶區塊
211~214:子區塊
400:子區塊
ADD:位址資訊區塊
AG1~AGM:位址資訊對
CIADD1~CIADDM:位址資訊
CIADDI1~CIADDIM:反向位址資訊
ECC1~ECCN:糾錯碼
ECCI1~ECCIN:反向糾錯碼
G1~GN:群組
S1010~S1050:位址資訊的搜尋步驟
S110~S140、S310~S360:記憶體的資料的搜尋步驟
S610~S640、S810~S840:可靠資料區塊決定的步驟
SEL:選擇碼
TAG:標籤區塊
TG1~TGN、TAG1~TAG256:識別碼
TGI1~TGIN、TAGI1~TAGI256:反向識別碼
圖1繪示本發明一實施例的記憶體的資料的搜尋方法。
圖2繪示本發明實施例的記憶體的子區塊的示意圖。
圖3繪示本發明另一實施例的記憶體的資料的搜尋方法的動作流程圖。
圖4繪示本發明實施例的子區塊的示意圖。
圖5繪示本發明實施例的識別碼、反向識別碼的一實施方式的示意圖。
圖6繪示本發明實施例的可靠資料區塊決定的步驟流程圖。
圖7繪示本發明一實施例的糾錯碼、反向糾錯碼的一實施方式的示意圖。
圖8繪示本發明實施例的可靠資料區塊決定的步驟流程圖。
圖9繪示本發明實施例的位址資訊區塊的實施方式的示意圖。
圖10則繪示本發明實施例的位址資訊的搜尋動作的流程圖。
圖11繪示本發明一實施例的資料儲存裝置的示意圖。
請參照圖1,圖1繪示本發明一實施例的記憶體的資料的搜尋方法。在步驟S110中,將記憶區塊區分為多個子區塊,其中的各子區塊具有一標籤區塊以及一位址資訊區塊。標籤區塊中記錄多個識別碼、多個反向識別碼、多個糾錯碼以及多個反向糾錯碼。位址資訊區塊則記錄多個位址資訊以及多個反相位址資訊,其中位址資訊為碼資訊在記憶體中的儲存位址。
在此可同步參照圖2,圖2繪示本發明實施例的記憶體的子區塊的示意圖。其中,記憶體的記憶區塊210可被區分為例如為4個子區塊211~214。
在此請注意,在本實施例中,當記憶區塊進行碼資訊的儲存位址進行記錄時,會將多個識別碼、多個反向識別碼、多個糾錯碼、多個反向糾錯碼、多個位址資訊以及多個反相位址資訊記錄在一個子區塊(例如子區塊211)中,並複製這個子區塊211的資料至其他的子區塊(例如子區塊212~214)中。也就是說,在初始狀態下,記憶區塊的多個子區塊中記錄著相同的資料。不過,在經過子區塊211~214經過一定時間的被讀取動作後,子區塊211~214中的部分資料因為讀取干擾,或者其他的因素而產生變異。
重新參照圖1,在步驟S120中,選擇多個子區塊的其中之一來做為選中子區塊。在步驟S120中,子區塊的選擇可以依據一個區塊選擇碼來進行。區塊選擇碼可以來自於記憶體的外部,並可具有多個位元。選擇碼的位元數可以依據子區塊的數量來決定。子區塊的數量須小於或等於2的A次方,其中A為選擇碼的位元數。
步驟S130中進行讀取選中子區塊的標籤區塊中的識別碼、反向識別碼、糾錯碼以及反向糾錯碼的動作。並依據識別碼、反向識別碼、糾錯碼以及反向糾錯碼來判斷選中子區塊是否為可靠資料區塊。在此請注意,在本實施例中,一個標籤區塊中記錄
多個識別碼以及多個反向識別碼。識別碼以及多個反向識別碼皆為預先設定好的值,且在初始狀態下,一個標籤區塊中記錄的所有識別碼的資料都是相同的,且所有反向識別碼的資料也都是相同的,並且,識別碼與反向識別碼的資料互補。
在另一方面,這個預先設定的識別碼可以具有多個位元,其中這些位元中,相鄰二位元的資料內容是互補的。也就是說,以識別碼具有8個位元為範例,識別碼可以是16進位的0x55或是0xAA。相對的,在初始狀態下,識別碼與反向識別碼是互補的,同樣以8個位元為範例,當識別碼是16進位的0x55時,反向識別碼是16進位的0xAA時;當識別碼是16進位的0xAA時,反向識別碼是16進位的0x55。
關於糾錯碼以及反向糾錯碼的部分,糾錯碼以及反向糾錯碼可以是預設的數值。在初始狀態下,一個標籤區塊中記錄的所有糾錯碼的資料都是相同的,且一個標籤區塊中記錄的所有反向糾錯碼的資料也都是相同的。此外,在初始狀態下,糾錯碼與反向糾錯碼的資料互補。舉例來說明,以糾錯碼具有8位元為範例,糾錯碼可以預設為十六進位的0x80;相對的,反向糾錯碼則可以為十六進位的0x7F。
在本實施例中,識別碼與反向識別碼可以交錯的被設置在標籤區塊中的連續位址上,糾錯碼與反向糾錯碼也可以交錯的被設置在標籤區塊中的連續位址上。在本發明一實施例中,識別碼、反向識別、糾錯碼以及反向糾錯碼可以依序的被設置在標籤
區塊中的連續位址上。
當然,識別碼、反向識別碼、糾錯碼以及反向糾錯碼在標籤區塊中的位址順序並不限於上述的方式,設計者可以依據實際的需求進行任意順序的設置。另外,識別碼、反向識別碼、糾錯碼以及反向糾錯碼的位元數也沒有特定的限制,上述8位元的範例僅只是為了方便說明,不用以限制本發明的實施範疇。
在步驟S130中,本實施例可透過讀取標籤區塊中的識別碼、反向識別碼、糾錯碼以及反向糾錯碼,並透過檢查識別碼、反向識別碼的資料的互補狀態,以及檢查糾錯碼與反向糾錯碼的變異狀態,來判斷對應的子區塊是否為可靠資料區塊。並且,依據步驟S130的判斷結果,在當子區塊為可靠資料區塊時,針對子區塊的位址資訊區塊進行讀取,並藉以獲得碼資訊的儲存位址資訊(步驟S140)。
以下請參照圖3,圖3繪示本發明另一實施例的記憶體的資料的搜尋方法的動作流程圖。記憶體的記憶區塊例如有8k位元組。在圖3中,在大數據搜尋開始後,步驟S310針對區塊選擇碼進行判斷,並在當選擇碼為二進位的b10時執行步驟S321;當區塊選擇碼為二進位的b00時執行步驟S322;並在當區塊選擇碼為二進位的b11或b01時執行步驟S323。
在步驟S321中,針對記憶區塊中4k~6k的子區塊(範圍2)進行搜尋;步驟S322針對記憶區塊中0k~2k的子區塊(範圍0)進行搜尋;步驟S323則針對記憶區塊中2k~4k的子區塊(範圍1)
進行搜尋。
步驟S330判斷目前搜尋範圍是否小於或等於3,若搜尋範圍小於或等於3,表示並非所有的子區塊皆被搜尋過,可執行步驟S340以繼續搜尋的動作。相對的,若搜尋範圍大於3,表示所有的子區塊皆被搜尋過,並進入步驟S360表示搜尋動作失敗。
在步驟S340中則判斷碼資訊的位址資訊是否已被獲得,並在當碼資訊的位址資訊已被獲得的條件下以執行步驟S380以表示搜尋成功。另外,在當碼資訊的位址資訊未被獲得的條件下,執行步驟S350,以在當結果符合數小於門檻值但大於重試門檻值數的條件下,搜尋範圍往下一個子區塊(搜尋範圍+1),重新執行步驟S330,並在當結果符合數不大於重試門檻值的條件下,進入步驟S360表示此區塊搜尋動作失敗。
在碼資訊的位址資訊已被獲得的條件下,則可依據碼資訊的位址資訊由記憶體中讀出所需的碼資訊。
請參照圖4,圖4繪示本發明實施例的子區塊的示意圖。子區塊400具有標籤區塊TAG以及位址資訊區塊ADD。標籤區塊TAG記錄多個群組G1~GN的識別碼TG1~TGN、反向識別碼TGI1~TGIN、糾錯碼ECC1~ECCN以及反向糾錯碼ECCI1~ECCIN。以第一群組G1為範例,第一群組G1依序記錄識別碼TG1、反向識別碼TGI1、糾錯碼ECC1以及反向糾錯碼ECCI1。
另外,在位址資訊區塊ADD中,依序記錄碼資訊的位址資訊CIADD1~CIADDM以及反向位址資訊CIADDI1~CIADDIM。
其中,位址資訊CIADD1~CIADDM以及反向位址資訊CIADDI1~CIADDIM交錯被設置在位址資訊區塊ADD中。
此外,位址資訊CIADD1~CIADDM分別與對應的反向位址資訊CIADDI1~CIADDIM形成多個位址資訊群組AG1~AGM,各個位址資訊CIADD1~CIADDM與對應的各個反向位址資訊CIADDI1~CIADDIM則形成位址資訊對)。
請參照圖5,圖5繪示本發明實施例的識別碼、反向識別碼的一實施方式的示意圖。在圖5中,標籤區塊TAG中例如記錄256個識別碼TAG1~TAG256,其中識別碼TAG1~TAG256在初始狀態下,皆可等於十六進位的0x55。標籤區塊TAG中並記錄分別相對於識別碼TAG1~TAG256的反向識別碼TAGI1~TAGI256,在初始狀態下,反向識別碼TAGI1~TAGI256皆等於十六進位的0xAA。
在此請同步參照圖6繪示的本發明實施例的可靠資料區塊決定的步驟流程圖。在步驟S610中,針對標籤區塊TAG中的256個識別碼TAG1~TAG256進行讀取,並判斷識別碼TAG1~TAG256等於0x55的數量有無大於或等於門檻值(=64)(識別碼TAG1~TAG256總數的1/4)。若判斷出讀出的識別碼TAG1~TAG256中有不少於1/4的數量未發生資料變異的現象,可執行步驟S620。相對的,若判斷出讀出的識別碼TAG1~TAG256中發生資料變異的現象的數量超過3/4時,表示對應的子區塊是不可靠的子區塊,並執行步驟S640以表示失敗的訊息。
步驟S620則針對TAG中的256個反向識別碼TAGI1~TAGI256進行讀取,並判斷反向識別碼TAGI1~TAGI256等於0xAA的數量有無大於或等參考值(=64)(反向識別碼TAGI1~TAGI256總數的1/4)。若判斷出讀出的反向識別碼TAGI1~TAGI256中有不少於1/4的數量未發生資料變異的現象,可執行步驟S630,並進行搜尋糾錯碼以及反向糾錯碼的動作。相對的,若判斷出讀出的反向識別碼TAGI1~TAGI256中發生資料變異的現象的數量超過3/4時,表示對應的子區塊是不可靠的子區塊,並執行步驟S640以表示失敗的訊息。
在此請注意,上述的參考值並不必要被設置為64,設計者可依據所需要的嚴謹程度來設置門檻值的大小。當判斷子區塊是否為可靠資料區塊的嚴謹度相對高時,門檻值可以被設置大於64,也就是佔全部識別碼TAG1~TAG256以及反向識別碼TAGI1~TAGI256相對高的比例。相對的,當判斷子區塊是否為可靠資料區塊的嚴謹度相對低時,門檻值可以被設置小於64,也就是佔全部識別碼TAG1~TAG256以及反向識別碼TAGI1~TAGI256相對低的比例。
以下請同步參照圖7以及圖8,圖7繪示本發明一實施例的糾錯碼、反向糾錯碼的一實施方式的示意圖,圖8則繪示本發明實施例的可靠資料區塊決定的步驟流程圖。在圖7中,標籤區塊中記錄糾錯碼ECC1~ECC256以及分別對應的反向糾錯碼ECCI1~ECCI256。在初始狀態中,糾錯碼ECC1~ECC256的資料均
相同,並例如等於十六進位的0x80,反向糾錯碼ECCI1~ECCI256的資料均相同,並例如等於十六進位的0x7F,其中,初始狀態中的糾錯碼ECC1~ECC256與反向糾錯碼ECCI1~ECCI256互補。
另外,在圖8中,步驟S810針對糾錯碼ECC1~ECC256的其中之一進行讀取(例如讀取第一組的糾錯碼ECC1),針對對應的反向糾錯碼ECCI1進行讀取,並判斷糾錯碼ECC1與反向糾錯碼ECCI1是否互補。若糾錯碼ECC1與反向糾錯碼ECCI1互補,表示糾錯碼ECC1與反向糾錯碼ECCI1沒有發生資料變異,並可分別被設定為標準糾錯碼以及標準反向糾錯碼,並執行步驟S820。相對的,若糾錯碼ECC1與反向糾錯碼ECCI1不互補,表示糾錯碼ECC1與反向糾錯碼ECCI1發生資料變異,則進行步驟S811以針對下一組的糾錯碼(例如為糾錯碼ECC2)以及下一組的反向糾錯碼(例如為反向糾錯碼ECCI2)進行檢查動作,再重新執行步驟S810。
在步驟S820中,則使每一組的糾錯碼ECC1~ECC256與標準糾錯碼進行比較,並計算與標準糾錯碼相同的糾錯碼ECC1~ECC256的數量是否大於門檻值(=64),若與標準糾錯碼相同的糾錯碼ECC1~ECC256的數量不小於門檻值,則執行步驟S830。相對的,若標準糾錯碼相同的糾錯碼ECC1~ECC256的數量小於門檻值,則執行步驟S850以表示搜尋失敗。
在步驟S830中,則每一組的反向糾錯碼ECCI1~ECCI256與標準反向糾錯碼進行比較,並計算與標準反向糾錯碼相同的反
向糾錯碼ECCI1~ECCI256的數量是否大於門檻值(=64),若與標準反向糾錯碼相同的反向糾錯碼ECCI1~ECCI256的數量不小於門檻值,則執行步驟S840,並進行位址資訊的搜尋動作。
在此值得注意的,步驟S830中,使每一組的反向糾錯碼ECCI1~ECCI256與標準反向糾錯碼進行比較的動作,也可以變更為判斷每一組的反向糾錯碼ECCI1~ECCI256與標準糾錯碼是否互補來進行。
關於位址資訊的搜尋動作請參照圖9以及圖10,其中圖9繪示本發明實施例的位址資訊區塊實施方式的示意圖,圖10則繪示本發明實施例的位址資訊的搜尋動作的流程圖。在圖9中,位址資訊區塊中記錄儲存碼資訊的多個位址資訊CIADD1~CIADD128以及多個反向位址資訊CIADDI1~CIADDI128。在初始狀態下,所有的位址資訊CIADD1~CIADD128都是相同的,並例如等於十六進位的0x12345678。並且,在初始狀態下,所有的反向位址資訊CIADDI1~CIADDI128都是相同的,並例如等於十六進位的0xEDCBA987。位址資訊CIADD1~CIADD128與反向位址資訊CIADDI1~CIADDI128交錯被設置在位址資訊區塊中,位址資訊CIADD1~CIADD128與分別對應的反向位址資訊CIADDI1~CIADDI128形成多個位址資訊對CADDP1~CADDP128。
在圖10中,步驟S1010讀取位址資訊CIADD1~CIADD128的其中之一(例如讀取第一組的位址資訊CIADD1),讀取對應的反向位址資訊CIADDI1,並判斷位址資訊CIADD1與
反向位址資訊CIADDI1是否互補。在當位址資訊CIADD1與反向位址資訊CIADDI1互補時,可分別設定位址資訊CIADD1與反向位址資訊CIADDI1分別為標準位址資訊以及標準反向位址資訊,並執行步驟S1021。相對的,在當位址資訊CIADD1與反向位址資訊CIADDI1不互補時,則執行步驟S1011以進行下一組的位址資訊(例如第二組的位址資訊CIADD2)與反向位址資訊(例如第二組的反向位址資訊CIADDI2)的讀取以及判斷動作。
在本實施例中,以位址資訊CIADD1為範例,位址資訊CIADD1具有多個位元組(本實施例為4個),分別為由“7、8”構成的第0位元組;由“5、6”構成的第1位元組;由“3、4”構成的第2位元組;以及由“2、1”構成的第3位元組。相類似的,以反向位址資訊CIADDI1為範例,反向位址資訊CIADDI1具有相同數量的多個位元組(4個),分別為由“8、7”構成的第0位元組;由“A、9”構成的第1位元組;由“C、B”構成的第2位元組;以及由“E、D”構成的第3位元組。
基於上述,步驟S1021至步驟S1024則使位址資訊CIADD1~CIADD128的每一,來與標準位址資訊進行逐位元組的比較。細節上來說明,在步驟S1021中,使位址資訊CIADD1~CIADD128的每一中的第0位元組,來與標準位址資訊的第0位元組進行比較,並計算比較結果為相同的數量。若當所計算出的數量不小於門檻值(=32),則執行步驟S1022。相對的,若當所計算出的數量小於門檻值(=32),則執行步驟S1050以指
示搜尋結果為失敗。
接著,在步驟S1022中,使位址資訊CIADD1~CIADD128的每一中的第1位元組,來與標準位址資訊的第1位元組進行比較,並計算比較結果為相同的數量。若當所計算出的數量不小於門檻值(=32),則執行步驟S1023。相對的,若當所計算出的數量小於門檻值(=32),則執行步驟S1050以指示搜尋結果為失敗。
依此類推,步驟S1023、S1024則使位址資訊CIADD1~CIADD128的每一中的第2、3位元組,來分別與標準位址資訊的第2、3位元組進行比較,並在所計算出的數量均不小於門檻值(=32),執行步驟S1031。若步驟S1023、S1024的其中之一計算出的數量小於門檻值(=32)時,執行步驟S1050以指示搜尋結果為失敗。
步驟S1031至步驟S1034則使反向位址資訊CIADDI1~CIADDI128的每一位元組與標準位址資訊進行逐位元組的比較,並判斷兩者間是否互補。在細節上,步驟S1031計算反向位址資訊CIADDI1~CIADDI128的每一第0位元組,與標準位址資訊的第0位元組互補的數量,若所計算出的數量不小於門檻值(=32)時,執行步驟S1032。相對的,若上述計算出的數量小於門檻值(=32)時,執行步驟S1050以指示搜尋結果為失敗。
步驟S1032計算反向位址資訊CIADDI1~CIADDI128的每一第1位元組,與標準位址資訊的第1位元組互補的數量,若所計算出的數量不小於門檻值(=32)時,執行步驟S1033。相對
的,若上述計算出的數量小於門檻值(=32)時,執行步驟S1050以指示搜尋結果為失敗。
依此類推,步驟S1033、S1034分別計算反向位址資訊CIADDI1~CIADDI128的每一第2、3位元組,分別與標準位址資訊的第2、3位元組互補的數量。若所計算出的數量均不小於門檻值(=32)時,執行步驟S1040,並獲得碼資訊的輸出位址資訊(等於標準位址資訊)。相對的,若上述計算出的其中之一的數量小於門檻值(=32)時,執行步驟S1050以指示搜尋結果為失敗。
附帶一提的,步驟S1031至S1034的動作,可以變更為反向位址資訊CIADDI1~CIADDI128的每一位元組與標準反向位址資訊進行逐位元組的比較動作,並透過計算比較結果為相同的數量與門檻值(=32)的大小關係,來執行步驟S1040或S1050。
此外,步驟S1021至步驟1024的執行順序沒有一定的限制,設計者可以自行設計步驟S1021至步驟1024的執行順序。同樣的步驟S1031至步驟1034的執行順序也沒有一定的限制,並且,步驟S1031至步驟1034也可以優先於步驟S1021至步驟1024來執行。
此外,步驟S1040則在當步驟S1021至步驟1024以及步驟S1031至步驟1034的執行結果依序為實時,可獲得儲存碼資訊的位址資訊,如此一來,透過依據輸出位址資訊讀取碼資訊,可快速且正確地獲得儲存在記憶體中的碼資訊。
以下請參照圖11,圖11繪示本發明一實施例的資料儲存
裝置的示意圖。資料儲存裝置11包括控制器1110、記憶體1120以及選擇碼產生器1130。選擇碼產生器1130可以為一硬體的熔絲裝置,並用以提供選擇碼SEL。控制器1110耦接至記憶體1120以及選擇碼產生器1130,依據選擇碼SEL以執行如圖3的碼資訊的搜尋流程。控制器1110並執行如圖6、8、10所繪示的動作流程,透過快速且安全的獲得碼資訊的儲存位址資訊,以讀取出記載大數據資料的記憶體中,所儲存的碼資訊。
在本實施例中,記憶體1120可以為一任意形式的記憶體。在本發明實施例中,記憶體1120可以為快閃記憶體,例如為反及式(NAND)快閃記憶體。控制器1110可以為具運算能力的處理器。或者,控制器1110可以是透過硬體描述語言(Hardware Description Language,HDL)或是其他任意本領域具通常知識者所熟知的數位電路的設計方式來進行設計,並透過現場可程式邏輯門陣列(Field Programmable Gate Array,FPGA)、複雜可程式邏輯裝置(Complex Programmable Logic Device,CPLD)或是特殊應用積體電路(Application-specific Integrated Circuit,ASIC)的方式來實現的硬體電路。
綜上所述,本發明透過劃分記憶區塊多個子區塊,並使子區塊具有一標籤區塊以及一位址資訊區塊。透過針對標籤區塊中的識別碼、反向識別碼、糾錯碼以及反向糾錯碼進行判斷,可以獲知子區塊的可靠度。據此,可針對可靠的子區塊的位址資訊區塊進行讀取,可快速的獲得可靠的碼資訊的儲存位址資訊,並
據以獲得碼資訊。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S110~S140:記憶體的資料的搜尋步驟
Claims (20)
- 一種記憶體的資料的搜尋方法,包括:區分一記憶區塊為多個子區塊,各該子區塊具有一標籤區塊以及一位址資訊區塊,其中該標籤區塊記錄多個識別碼、多個反向識別碼、多個糾錯碼以及多個反向糾錯碼;選取該些子區塊的其中之一以作為一選中子區塊;讀取該選中子區塊的該標籤區塊中的該些識別碼、該些反向識別碼、該些糾錯碼以及該些反向糾錯碼,並依據該些識別碼、該些反向識別碼、該些糾錯碼以及該些反向糾錯碼來判斷該選中子區塊是否為一可靠資料區塊;以及當該選中子區塊是為該可靠資料區塊時,讀取該選中子區塊的該位址資訊區塊以獲得一碼資訊的儲存位址資訊。
- 如請求項1所述的搜尋方法,其中該些識別碼、該些反向識別碼、該些糾錯碼以及該些反向糾錯碼識別碼交錯配置在該標籤區塊中。
- 如請求項2所述的搜尋方法,其中依據該些識別碼、該些反向識別碼、該些糾錯碼以及該些反向糾錯碼來判斷該選中子區塊是否為該可靠資料區塊的步驟包括:計算該些識別碼等於一第一設定值的一第一數量;計算該些反向識別碼等於一第一反向設定值的一第二數量;當該第一數量以及該第二數量均不小於一第一門檻值時,讀取該些糾錯碼以及該些反向糾錯碼; 選取一選取糾錯碼以及一選取反向糾錯碼,其中該選取糾錯碼以及該選取反向糾錯碼互補,該選取糾錯碼以及該選取反向糾錯碼則分別為一標準糾錯碼及一標準反向糾錯碼;計算該些糾錯碼等於該標準糾錯碼的一第三數量;計算該些反向糾錯碼等於該標準反向糾錯碼的一第四數量;以及當該第三數量以及該第四數量均不小於一第二門檻值時,判斷該選中子區塊為該可靠資料區塊。
- 如請求項3所述的搜尋方法,其中該些識別碼的資料相同,該些反向識別碼的資料相同,且各該識別碼與對應的各該反向識別碼的資料內容互補。
- 如請求項3所述的搜尋方法,其中該些糾錯碼的資料相同,該些反向糾錯碼的資料相同,且各該糾錯碼與對應的各該糾錯碼的資料內容互補。
- 如請求項1所述的搜尋方法,其中該位址資訊區塊記錄交錯配置的多個位址資訊以及多個反相位址資訊,該些位址資訊與分別對應的該些反相位址資訊形成多個位址資訊對。
- 如請求項6所述的搜尋方法,其中各該位址資訊包括多個位元組,各該反相位址資訊包括多個位元組,其中,當該選中子區塊是為該可靠資料區塊時,讀取該選中子區塊的該位址資訊區塊以獲得該碼資訊的儲存位址資訊的步驟包括: 選擇該些位址資訊對中的其中之一以做為一標準位址資訊對,其中該標準位址資訊對中的一標準位址資訊與一標準反相位址資訊互補;逐位元組的比較該標準位址資訊與各該位址資訊,並記錄比較結果為相同的多個第一數量;判斷各該第一數量是否大於一第一門檻值以記錄對應的位址資訊的各該位元組以獲得一輸出位址資訊的各位元組;逐位元組的比較該標準反向位址資訊與各該反向位址資訊,並記錄比較結果為相同的多個第二數量;以及判斷各該第二數量是否大於一第二門檻值以記錄對應的反向位址資訊的各該位元組以獲得一反向輸出位址資訊的各位元組。
- 如請求項7所述的搜尋方法,更包括:依據該輸出位址資訊以由該記憶體讀取該碼資訊。
- 如請求項1所述的搜尋方法,其中選取該些子區塊的其中之一以作為該選中子區塊的步驟包括:讀取一選擇碼,依據該選擇碼以選取該些子區塊的其中之一以作為該選中子區塊。
- 如請求項9所述的搜尋方法,更包括:當該選中子區塊非為該可靠資料區塊時,變更該選擇碼,並選取該些子區塊的其中之另一以作為該選中子區塊。
- 如請求項1所述的搜尋方法,其中該識別碼具有多個位元,且該些位元中,相鄰二位元的資料內容互補。
- 一種資料儲存裝置,包括:一記憶體,儲存一碼資訊;以及一控制器,耦接該記憶體,用以:區分一記憶區塊為多個子區塊,各該子區塊具有一標籤區塊以及一位址資訊區塊,其中該標籤區塊記錄多個識別碼、多個反向識別碼、多個糾錯碼以及多個反向糾錯碼;選取該些子區塊的其中之一以作為一選中子區塊;讀取該選中子區塊的該標籤區塊中的該些識別碼、該些反向識別碼、該些糾錯碼以及該些反向糾錯碼,並依據該些識別碼、該些反向識別碼、該些糾錯碼以及該些反向糾錯碼來判斷該選中子區塊是否為一可靠資料區塊;以及當該選中子區塊是為該可靠資料區塊時,讀取該選中子區塊的該位址資訊區塊以獲得該碼資訊的輸出位址資訊。
- 如請求項12所述的資料儲存裝置,其中該控制器更用以:計算該些識別碼等於一第一設定值的一第一數量;計算該些反向識別碼等於一第一反向設定值的一第二數量;當該第一數量以及該第二數量均不小於一第一門檻值時,讀取該些糾錯碼以及該些反向糾錯碼; 選取一標準糾錯碼以及一標準反向糾錯碼,其中該標準糾錯碼以及該標準反向糾錯碼互補;計算該些糾錯碼等於該標準糾錯碼的一第三數量;計算該些反向糾錯碼等於該標準反向糾錯碼的一第四數量;以及當該第三數量以及該第四數量均不小於一第二門檻值時,判斷該選中子區塊為該可靠資料區塊。
- 如請求項13所述的資料儲存裝置,其中該些識別碼的資料相同,該些反向識別碼的資料相同,且各該識別碼與對應的各該反向識別碼的資料內容互補。
- 如請求項13所述的資料儲存裝置,其中該些糾錯碼的資料相同,該些反向糾錯碼的資料相同,且各該糾錯碼與對應的各該糾錯碼的資料內容互補。
- 如請求項12所述的資料儲存裝置,其中該位址資訊區塊記錄交錯配置的多個位址資訊以及多個反相位址資訊,該些位址資訊與分別對應的該些反相位址資訊形成多個位址資訊對。
- 如請求項16所述的資料儲存裝置,其中各該位址資訊包括多個位元組,各該反相位址資訊包括多個位元組該控制器更用以:選擇該些位址資訊對中的其中之一以做為一標準位址資訊對,其中該標準位址資訊對中的一標準位址資訊與一標準反相位址資訊互補; 逐位元組的比較該標準位址資訊與各該位址資訊,並記錄比較結果為相同的多個第一數量;判斷各該第一數量是否大於一第一門檻值以記錄對應的位址資訊的各該位元組以獲得該輸出位址資訊的各位元組;逐位元組的比較該標準反向位址資訊與各該反向位址資訊,並記錄比較結果為相同的多個第二數量;以及判斷各該第二數量是否大於一第二參考值以記錄對應的反向位址資訊的各該位元組以獲得一反向輸出位址資訊的各位元組。
- 如請求項12所述的資料儲存裝置,其中該控制器更用以依據該輸出位址資訊以由該記憶體讀取該碼資訊。
- 如請求項12所述的資料儲存裝置,更包括:一選擇碼產生器,耦接該控制器,用以提供一選擇碼,其中,該控制器依據該選擇碼以選取該些子區塊的其中之一以作為該選中子區塊。
- 如請求項12所述的資料儲存裝置,其中該控制器在該選中子區塊非為該可靠資料區塊時,變更該選擇碼,並選取該些子區塊的其中之另一以作為該選中子區塊。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109101324A TWI703567B (zh) | 2020-01-15 | 2020-01-15 | 記憶體資料的搜尋方法應用於資料儲存裝置 |
CN202010175858.7A CN113127253A (zh) | 2020-01-15 | 2020-03-13 | 内存数据的搜寻方法应用于数据存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109101324A TWI703567B (zh) | 2020-01-15 | 2020-01-15 | 記憶體資料的搜尋方法應用於資料儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI703567B true TWI703567B (zh) | 2020-09-01 |
TW202129650A TW202129650A (zh) | 2021-08-01 |
Family
ID=73644060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109101324A TWI703567B (zh) | 2020-01-15 | 2020-01-15 | 記憶體資料的搜尋方法應用於資料儲存裝置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113127253A (zh) |
TW (1) | TWI703567B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5509119A (en) * | 1994-09-23 | 1996-04-16 | Hewlett-Packard Company | Fast comparison method and apparatus for error corrected cache tags |
US20020150276A1 (en) * | 1998-08-22 | 2002-10-17 | Chang Kenneth H.P. | Encoding and decoding a message within an image |
US20060024486A1 (en) * | 2002-09-12 | 2006-02-02 | Pause Barbara H | Non-woven protective garments with thermo-regulating properties |
US7363571B2 (en) * | 2000-08-25 | 2008-04-22 | Kabushiki Kaisha Toshiba | Data processing method and apparatus, recording medium, reproducing method and apparatus using the same method |
TWI416525B (zh) * | 2009-12-15 | 2013-11-21 | Asolid Technology Co Ltd | 非揮發性記憶體裝置及其損耗平均方法 |
US20150019834A1 (en) * | 2013-07-11 | 2015-01-15 | Advanced Micro Devices, Inc. | Memory hierarchy using page-based compression |
US9715424B1 (en) * | 2013-08-23 | 2017-07-25 | Rambus Inc. | Memory device and repair method with column-based error code tracking |
-
2020
- 2020-01-15 TW TW109101324A patent/TWI703567B/zh active
- 2020-03-13 CN CN202010175858.7A patent/CN113127253A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5509119A (en) * | 1994-09-23 | 1996-04-16 | Hewlett-Packard Company | Fast comparison method and apparatus for error corrected cache tags |
US20020150276A1 (en) * | 1998-08-22 | 2002-10-17 | Chang Kenneth H.P. | Encoding and decoding a message within an image |
US7363571B2 (en) * | 2000-08-25 | 2008-04-22 | Kabushiki Kaisha Toshiba | Data processing method and apparatus, recording medium, reproducing method and apparatus using the same method |
US20060024486A1 (en) * | 2002-09-12 | 2006-02-02 | Pause Barbara H | Non-woven protective garments with thermo-regulating properties |
TWI416525B (zh) * | 2009-12-15 | 2013-11-21 | Asolid Technology Co Ltd | 非揮發性記憶體裝置及其損耗平均方法 |
US20150019834A1 (en) * | 2013-07-11 | 2015-01-15 | Advanced Micro Devices, Inc. | Memory hierarchy using page-based compression |
US9715424B1 (en) * | 2013-08-23 | 2017-07-25 | Rambus Inc. | Memory device and repair method with column-based error code tracking |
Also Published As
Publication number | Publication date |
---|---|
CN113127253A (zh) | 2021-07-16 |
TW202129650A (zh) | 2021-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9747148B2 (en) | Error monitoring of a memory device containing embedded error correction | |
US8112678B1 (en) | Error correction for programmable logic integrated circuits | |
EP1416499B1 (en) | Self-repairing built-in self test for linked list memories | |
US9213596B2 (en) | Handling errors in ternary content addressable memories | |
US4740968A (en) | ECC circuit failure detector/quick word verifier | |
US4958350A (en) | Error detecting/correction code and apparatus | |
US20130318418A1 (en) | Adaptive error correction for phase change memory | |
CN115629905B (zh) | 一种内存故障预警方法、装置、电子设备及可读介质 | |
KR20040064259A (ko) | 컴포넌트 실패를 검출 및 보정하고, 컴포넌트 실패 후에단일 비트 에러보정을 제공하는 에러검출/보정 코드 | |
KR20120114366A (ko) | 비트 값들의 저장된 총계를 이용하여 데이터 에러들을 보정하는 시스템 및 방법 | |
US20120079346A1 (en) | Simulated error causing apparatus | |
WO2013006222A1 (en) | Adaptive multi-bit error correction in endurance limited memories | |
Roberts et al. | FAULTSIM: A fast, configurable memory-resilience simulator | |
TW201929442A (zh) | 資料處理裝置及資料處理方法 | |
US9043676B2 (en) | Parity error recovery method for string search CAM | |
TWI703567B (zh) | 記憶體資料的搜尋方法應用於資料儲存裝置 | |
US9037948B2 (en) | Error correction for memory systems | |
JP3996623B2 (ja) | ルックアップしたエントリーの重複検出方法および装置 | |
CN114116355A (zh) | 内存测试方法、装置及电子设备 | |
US20220091936A1 (en) | Systems and methods for encoding metadata | |
CN105279048B (zh) | 一种数据恢复方法及装置 | |
CN117497018A (zh) | 非易失性存储设备中读取参考电压的调整方法和存储系统控制器 | |
TWI739157B (zh) | 快閃記憶體控制器、儲存裝置及讀取方法 | |
JPS6233626B2 (zh) | ||
US11307919B2 (en) | Fail information control circuit, semiconductor apparatus including the same, and fail information control method of semiconductor apparatus |