TWI690165B - 數據完整性檢查的方法與積體電路 - Google Patents
數據完整性檢查的方法與積體電路 Download PDFInfo
- Publication number
- TWI690165B TWI690165B TW108146325A TW108146325A TWI690165B TW I690165 B TWI690165 B TW I690165B TW 108146325 A TW108146325 A TW 108146325A TW 108146325 A TW108146325 A TW 108146325A TW I690165 B TWI690165 B TW I690165B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- crc
- configuration
- data integrity
- boundary
- 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/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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
- 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/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
積體電路包括可尋址(addressable)記憶體和接收器。數據完整性邏輯耦接到輸入數據路徑並接收具有參考位址的數據流,且接收具有數據完整性代碼的數據塊(chunks)。數據完整性邏輯包括配置儲存器,以儲存數據完整性檢查的配置數據。積體電路包括解析來自數據流的數據塊和數據完整性代碼之邏輯、以及數據流中所計算的數據塊之數據完整性代碼的邏輯,並且將計算的數據完整性代碼與接收的數據進行比較以檢驗數據錯誤。數據完整性邏輯包括回應於配置數據的邏輯,配置數據控制數據完整性邏輯。數據完整性數據指浮動邊界數據完整性模式或固定邊界數據完整性模式。
Description
本發明涉及用於像是循環冗餘校驗(cyclic redundancy checking)的數據完整性檢查(data integrity checks)之方法,並且特別地應用於積體電路(integrated circuits)。
數據完整性檢查(data integrity checks)用於各種設置,包括何時在通訊通道(communication channels)上傳輸數據流(data streams),像是將數據流傳輸到記憶體裝置(memory devices)以及從記憶體裝置傳輸數據流。例如,使用像是MD5訊息摘要演算法(Message-Digest Algorithm MD5)與安全散列演算法1(Secure Hash Algorithm SHA-1)之類的標準所生成的循環冗餘校驗代碼 (cyclic redundancy check)(或稱CRC代碼)、校驗碼(checksums)或散列(hashes),或者可用於數據完整性檢查的其他代碼已經嵌入(embedded)在通訊通道上所發送的數據流中。接收裝置(receiving device)解析數據流,以識別(identify)數據塊與用於塊的相應數據完整性代碼(corresponding data integrity codes)。然後使用已識別的塊來計算數據完整性代碼,該數據完整性代碼可以與所接收的數據完整性代碼進行比較,以表示數據塊是否包括錯誤或者已經變更。
本發明期望提供可用於擴展積體電路中的數據完整性檢查與其他技術。
本發明描述了一種在發送和接收裝置中提供靈活性(flexibility)的技術,以在不同的數據完整性檢查生態系統(data integrity checking ecosystems)中進行操作。本技術適用於積體電路裝置(integrated circuit devices)的實現。
像是積體電路記憶體裝置(integrated circuit memory device)和積體電路記憶體控制器裝置(integrated circuit memory controller device)的積體電路裝置可以包括本發明所描述的技術。例如,積體電路可包括可尋址記憶體(addressable memory),以及耦接到輸入數據路徑(input data path)的接收器(receiver)。例如像是數據完整性邏輯(data integrity logic),CRC邏輯可耦接(coupled)到輸入數據路徑,並且配置為接收具有參考位址(reference address)的數據流(data stream),像是記憶體中的起始位址(starting address),或者數據流的相對位址(relative address)(數據流的相對位址可以為0),以及在此示例中具有CRC代碼的多個數據塊(data chunks)。數據完整性邏輯可包括或具有可存取(access)的配置儲存器(configuration store)來儲存以CRC為基準的數據完整性檢查之配置數據(configuration data)。此外,積體電路可包括從數據流解析(parse)數據塊和數據完整性代碼的邏輯、以及在接收的數據流中所計算(compute)的數據塊之數據完整性代碼的邏輯,並且將計算出的數據完整性代碼與接收的數據進行比較以檢測(test)接收的數據流中的數據錯誤(data errors)。CRC邏輯包括回應於配置數據的電路,該配置數據控制CRC邏輯。在一方面,CRC數據表示浮動邊界數據完整性模式(floating boundary data integrity mode)或固定邊界數據完整性模式(fixed boundary data integrity mode)。在浮動邊界CRC模式中,CRC塊邊界(CRC chunk boundaries)係根據來自於數據流參考位址的偏移(offset)。例如,在固定CRC模式中,CRC塊邊界是根據與位址進行對齊(aligned)的固定位址(fixed addresses),該位址是CRC塊尺寸的倍數(multiple)。
在其他示例中,使用不同類型的數據完整性代碼。
在各種實施例中,配置儲存器包括揮發性記憶體(volatile memory)。在其他實施例中,配置儲存器包括非揮發性記憶體(nonvolatile memory)。 例如,配置儲存器可以包括配置暫存器組(configuration register set)的一部分或積體電路記憶體裝置中的指令暫存器(command register)。
配置數據可包括表示浮動邊界CRC模式或固定邊界CRC模式的模式標誌(mode flag)。在一些實施例中,配置數據可包括CRC技術所應用的其他參數,像是數據塊大小參數(data chunk size parameter)和代碼類型參數(code type parameter)。
一種用於檢測接收數據之積體電路的操作方法可包括本發明所描述的技術。例如,用於檢測接收數據的方法可包括接收具有參考位址的數據流,並且包括具有數據完整性代碼的多個數據塊;根據儲存的配置數據,從數據流中解析數據塊和數據完整性代碼;計算數據流中數據塊的數據完整性代碼,並將計算出的數據完整性代碼與接收到的數據完整性代碼進行比較,以檢測數據錯誤。解析可以包括回應於記憶體裝置上所儲存的配置數據以啟用選定模式,且若配置數據表示浮動邊界CRC模式,則根據來自於數據流參考位址的偏移來識別(identifying)塊邊界,且若配置數據表示固定邊界CRC模式,則根據固定位址來識別塊邊界。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
第1-6圖提供了對本發明實施例的詳細描述。
第1圖是包括了作為數據流(data stream)的發送器(sender)或接收器(receiver)之主機(host device)100、以及作為可尋址記憶體(addressable memory)且可用多個CRC模式操作的記憶體裝置(memory device)101之系統簡化圖,該記憶體裝置101作為接收器或數據流的傳輸器(transmitter),通道(channel)102連接在主機100與記憶體裝置101之間。在各種實施例中,主機100可包括記憶體控制器芯片(memory controller chip)或其他與記憶體裝置101進行連接(interferes)的主機處理器(host processor)。例如,主機100可將指令(command)傳輸至記憶體裝置101以創建數據傳輸。若指令是寫入數據,則主機100可將CRC保護數據流(CRC protected data stream)發送到記憶體裝置101。當指令是讀取數據時,主機100可從記憶體裝置101接收CRC保護數據流。而且,記憶體裝置101可接收來自主機的指令,並且在該指令的支持下,執行數據傳輸的所需操作。若指令是寫入數據,則記憶體裝置101可以接收來自於主機100的CRC保護數據流。當命令是讀取數據時,記憶體裝置101可以將CRC保護數據流發送到主機100。主機100與記憶體裝置101的一或兩者可架構成以一或多個CRC模式下來進行操作。
在此簡化圖示中,主機100包括輸入/輸出介面(input/output interface)113,例如串列周邊介面(serial peripheral interface)、並行位址(parallel address)和數據介面(data interface),或其他類型的積體電路介面,其包括接收器和傳輸器。此外,主機100包括數據緩衝器(data buffer)110,該數據緩衝器110將要發送至通道102的數據進行儲存。CRC代碼產生器(CRC code generator)111處理數據緩衝器110中的數據塊(data chunks)以將CRC暫存器(CRC register)112中的關聯塊(associated chunks)之CRC代碼進行計算。藉由數據緩衝器110將數據塊供應至輸入/輸出介面113。用於關聯塊的CRC代碼從CRC暫存器112提供至輸入/輸出介面113。在通道102上的數據塊和相關CRC代碼(合稱為CRC塊)傳輸至記憶體裝置101。通道102可以是無線的(wireless)或有線的(wired)。而且,主機100包括CRC比較邏輯(CRC compare logic)115(或稱CRC比較邏輯電路115),當該CRC比較邏輯115作為接收器時,CRC比較邏輯115用於檢測數據完整性(data integrity),以將接收CRC塊中的CRC代碼與使用接收塊(received chunk)的數據所計算出的CRC代碼進行比較。
記憶體裝置101包括輸入/輸出介面120,像是串列周邊介面、並行位址和數據介面,或其他類型的積體電路介面,其包括接收器和發射器。在此示例中,輸入/輸出介面120將接收到的數據流從通道102供應至緩衝器121,並將從可尋址記憶體105所接收到的數據流透過通道102來進行傳輸。該數據流包括CRC塊,其包括儲存或確定儲存至在記憶體中的數據塊,以及用於數據塊的CRC代碼。數據塊可以在記憶體空間中進行對齊,並且可以對應於如積體電路記憶體上的頁邊界(page boundaries),或是其它邏輯或是在記憶體空間中適用於CRC處理的數據塊物件(subject)定義之物理數據塊邊界(physical data chunk boundary)。然而,藉由積體電路來進行傳輸或接收的數據流可以在記憶體空間中具有起始位址(starting address),該起始位址不對應於頁邊界或用於CRC處理的其他邏輯邊界(logical boundary)。該CRC塊邊界(CRC chunk boundaries)可根據固定位址(fixed address)(固定邊界(fixed boundary))來進行設置,或是根據記憶流(memory stream)的起始位址(浮動邊界(floating boundary))來進行設置,根據特定配置(particular configuration)的起始位址利用CRC代碼來進行通信通道(communication channel)的設置。
緩衝器121也連接到可尋址記憶體體105。緩衝器121是在記憶體裝置101上的輸入/輸出介面120與可尋址記憶體體105之間的數據路徑(data path)之元件。
出於本發明所討論的目的,指令解碼器/控制器(command decoder/controller)122耦接到緩衝器121。例如,在積體電路記憶體裝置(integrated circuit memory device)上,輸入指令可透過輸入/輸出介面120來接收並在指令解碼器/控制器122中進行解碼。指令解碼器/控制器122包括狀態機(state machines)和其它邏輯,該指令解碼器/控制器122回應於解碼指令(decoded commands)來執行可尋址記憶體105的所需記憶體操作。而且,在包含了CRC代碼之檢查與通信數據的支持以及構成了CRC塊之數據流的支持下,指令解碼器/控制器122可操作的(operable)進行CRC電路控制,以進行傳輸。
支持數據完整性檢查操作的電路包括了將緩衝器121所接收的數據塊進行儲存的數據塊緩衝器(data chunk buffer)124,以及關於數據塊的CRC代碼儲存之CRC代碼緩衝器(CRC code buffer)125,該數據塊儲存於數據塊緩衝器124中。在主機100作為CRC保護數據流的來源或發送器並且記憶體裝置101為接收器的情況下,指令解碼器/控制器122控制緩衝器121來解析(parse)接收到的數據流,以識別(identify)CRC塊,該CRC塊包括數據塊和相關的CRC代碼,且該CRC塊將已確認的CRC塊傳輸至數據塊緩衝器124與CRC代碼緩衝器125。在一些實施例中,從接收的數據流所解析的數據可以從緩衝器121並行傳送到數據塊緩衝器124與CRC代碼緩衝器125,該數據流從主機100進行接收。在其他實施例中,解析的數據可以按照順序來傳輸一個字節(byte)或一個其他大小的儲存單元(storage unit)。
CRC代碼產生器(CRC code generator)126在數據塊緩衝器124中的數據塊上進行操作,以產生已計算CRC代碼,使已計算CRC代碼儲存於CRC暫存器127中。比較器(comparator)128的一個輸入耦接到CRC代碼緩衝器125,且比較器128的另一個輸入耦接到CRC暫存器127中的已計算CRC代碼。在此示例中,比較器128的輸出供應至指令解碼器/控制器122。在匹配的情況下,則確認數據完整性。在表示偵錯(detection of an error)的非匹配情況下,則標記(flagged)對應數據塊的數據完整性,以由指令解碼器/控制器122來進行使用。
在一些實施例中,當標記數據完整性時,指令解碼器/控制器122可以中止(abort)寫入操作(write operation)。在其他實施例中,當標記數據完整性時,指令解碼器/控制器122可以在進行或不進行寫入操作的情況下來通知發送器。
在記憶體裝置101上提供了配置儲存器(configuration store)123,並且由指令解碼器/控制器122的CRC邏輯與CRC代碼產生器126來進行存取(accessible)。配置儲存器123可包括模式標誌(mode flag),該模式標誌表示輸入數據流(incoming data stream)是否是根據浮動CRC邊界或固定CRC邊界來進行處理,以及輸出數據流(outgoing data stream)是否根據浮動CRC邊界或固定CRC邊界來進行配置。此外,配置儲存器123可以包括參數,該參數表示數據塊的大小或CRC功能的其他參數。指令解碼器/控制器122包括了浮動CRC邊界和固定CRC邊界模式所支持的邏輯,且該指令解碼器/控制器122回應於模式標誌以啟用電路的適當元件。此外,指令解碼器/控制器122可包括邏輯,該邏輯將實施配置儲存器123的其他參數,像是數據塊大小、CRC代碼大小等。配置儲存器123可以利用非揮發性記憶體(nonvolatile memory)來實現,例如可編程快閃記憶體(programmable flash memory),一次性可編程唯讀記憶體(one time programmable read-only memory)等,該配置儲存器123透過斷電週期(power-down cycles)來保留配置數據。此外,配置儲存器123可以利用揮發性記憶體(volatile memory)來實現,例如靜態隨機存取記憶體(SRAM memory)或動態隨機存取記憶體(DRAM memory)。在一些實施例中,配置儲存器123可以是積體電路記憶體裝置之配置暫存器集(configuration register set)的一部分。
在裝置設定(device setup)期間或在裝置操作(operation of the device)期間,記憶體裝置101使用可編程配置儲存器123,並支援在配置儲存器123中之配置數據的讀取操作與寫入操作。例如,可在數據流發送到裝置之前的任意時間,將配置數據寫入至配置儲存器123。
在一些實施例中,配置數據由指令進行攜帶(carried),以將接收的數據流寫入可尋址記憶體,或者從可尋址記憶體所傳送的數據流來進行讀取。指令解碼器/控制器122可利用命令來設定在配置儲存器中的配置數據,或者指令本身可以是配置數據。配置儲存器123可以是指令暫存器(command register)或者是與指令解碼器/控制器122進行耦接的其他暫存器,其中在至少足夠長的解碼期間,儲存指令或指令的一部分,以能夠操作適當的數據完整性電路(data integrity circuits)。配置數據可由指令代碼(command code)來進行表示(implied),使得一個指令代碼用於浮動模式,而相異的指令代碼用於固定邊界模式。而且,配置數據可以是載有指令之即時數據(immediate data)的一部分,使得一個指令代碼用於兩種模式,配置標誌攜帶具有指令代碼的即時數據。
在讀取操作中,其中記憶體裝置充當作為CRC保護數據的發送器,CRC代碼產生器126和CRC暫存器127(如箭頭(arrow)140所示)可用於提供要與緩衝器121的關聯數據塊(associated data chunk)進行多工(multiplexed)的CRC代碼,以透過輸入/輸出介面120來構成要傳輸至目的地裝置(destination device)的數據流。當數據發送到接收裝置時,數據完整性配置模式標誌可用於確定是否使用浮動CRC邊界或固定CRC邊界數據封包格式(fixed CRC boundary data packet format)。在讀取模式中,記憶體裝置101將數據發送到主機100,可以不使用數據塊緩衝器124和CRC代碼緩衝器125。
如本發明所描述的記憶體裝置101包括可尋址記憶體105;接收器 (在輸入/輸出介面120中),其用於接收具有參考位址,且該數據流包含了CRC代碼的多個數據塊;配置儲存器123,其用於儲存配置數據;邏輯(例如是緩衝器121、指令解碼器/控制器122、數據塊緩衝器124),其用於解析來自數據流的數據塊與CRC代碼;以及邏輯(例如是CRC代碼產生器126),其用於計算數據流中的數據塊之CRC代碼(對應於主機100中的數據緩衝器110中的數據塊以及對應於主機100中的CRC暫存器112中的CRC代碼),並伴隨著回應於配置數據的電路(例如是指令解碼器/控制器122)來比較(例如是CRC暫存器127、比較器128)已計算數據塊與接收的CRC代碼,以檢測數據錯誤,且若配置數據表示為浮動邊界CRC模式,則根據與數據流的參考位址的CRC塊長度相等之偏移 (offset) 來識別塊邊界,且若配置數據表示為固定邊界CRC模式,則根據與記憶體空間中的數據塊邊界相等的固定位址來識別塊邊界。
此外,如本發明所描述的記憶體裝置101包括邏輯(例如是指令解碼器/控制器122、緩衝器121),其從可尋址記憶體105獲得多個數據塊;邏輯(或稱邏輯電路) (例如是CRC代碼產生器126) 將從可尋址記憶體105所獲得的多個數據塊之CRC代碼來進行計算 (該邏輯可透過CRC暫存器127來將CRC代碼傳送到至箭頭140所指的緩衝器121);傳輸器 (在輸入/輸出介面120中,該輸入/輸出介面120從緩衝器121接收CRC塊);以及回應於配置數據的電路(例如是緩衝器121、指令解碼器/控制器122),其構成了包含已計算CRC代碼的多個數據塊之數據流,該數據流由傳輸器進行傳輸,其中若配置數據表示為浮動邊界CRC模式,則根據數據流的參考位址之偏移來將數據塊插入在塊邊界上的數據流中,且若配置數據表示為固定邊界CRC模式,則根據固定位址來將數據塊插入在塊邊界上的數據流中。
如上述,本發明所描述的所有實施例可以包括不同類型的數據完整性代碼,像是利用MD5或SHA-1所產生的校驗碼或散列。在一些實施例中,代碼類型可以由配置數據來表示。
第2圖是具有浮動塊邊界的CRC模式所繪示之以CRC為基準的生態系統之時序圖。第一行(line)繪示了從數據源(data source)(例如是第1圖中的記憶體裝置101或主機100)所接收的數據,該數據沒有嵌入式CRC代碼(embedded CRC codes)。所示的數據包括第一數據塊(first data chunk)200和第二數據塊(second data chunk)201。塊之間的邊界在數據塊大小(D)的倍數(N)(multiples (N) of the size (D))上對齊。因此,塊之間的邊界位於數據流的參考位址之塊邊界偏移(chunk boundaries offset)上,且塊之間的邊界是在標準CRC塊邊界(standard CRC chunk boundary)202上。因此,第一數據塊200的標準CRC塊邊界202位於位址N * D。
第2圖的第二行繪示了具有嵌入式CRC代碼的數據。所示數據包括第一數據塊210和第二數據塊212。第一數據塊210具有與其相關的CRC代碼211。同樣地,第二數據塊212包括與其相關的CRC代碼213。 綜合來說,數據塊及其相關的CRC代碼稱為CRC塊。CRC塊的邊界(像是邊界215)是CRC塊的大小(D + C)的倍數。因此,邊界215位於數據流的參考位址之相對位址(N + 1)*(D + C)。
可以在具有來自記憶體空間之隨機起始位址(random starting address)的數據流中接收數據,如第2圖的第三行所繪示,或其他種類的參考位址。因此,隨機起始位址可以從記憶體空間中之標準CRC塊邊界202的偏移M來表示。因此,對於浮動CRC塊邊界,包括數據塊220和CRC代碼221的第一CRC塊(first CRC chunk)在位址M +(N * D)處具有起始邊界(starting boundary)225,並且在位址M +(N + 1)*( D+ C)處具有結束邊界(ending boundary)。第二CRC塊(second CRC chunk)包括數據塊222和CRC代碼223,並且在記憶體空間中的位址M +(N + 2)*(D + C)處具有結束邊界,其中數據塊222具有浮動CRC塊邊界227。該偏移值M施加於數據流中的所有CRC塊,這導致數據流中的CRC塊邊界與記憶體空間中的固定邊界不對齊。
因此,在浮動CRC塊邊界模式下,第1圖的指令解碼器/控制器122根據數據流參考位址(即數據流起始位址)所解析的輸入數據流來進行操作,該數據流等於記憶體空間中來自數據塊邊界位址的偏移M、數據塊的大小,以及相關CRC代碼的大小,以將輸入數據流的適當片段(appropriate segments)提供至CRC邏輯。在此模式下,確保第一CRC塊具有完整數據塊,並提供可靠的數據完整性檢查。
第3圖是具有固定塊邊界的CRC模式所繪示之以CRC為基準的生態系統(ecosystem)之時序圖。第一行繪示了從數據源(例如是第1圖的記憶體裝置101或主機100)所接收的數據,該數據沒有嵌入式CRC代碼。所示數據包括第一數據塊300和第二數據塊301。塊之間的邊界是數據塊大小(D)的倍數(N)。因此,第一數據塊300的數據邊界302位於位址N * D處。
第3圖中的第二行繪示了具有嵌入式CRC代碼的數據。所示數據包括第一數據塊310和第二數據塊312。第一數據塊310具有與其相關的CRC代碼311。同樣地,第二數據塊312包括與其相關的CRC代碼313。綜合來說,數據塊及其相關的CRC代碼稱為CRC塊。CRC塊的邊界(例如是邊界315)是記憶體空間中的CRC塊大小(D + C)的倍數。因此,邊界315位於記憶體空間中的位址(N + 1)*( D + C)。
第3圖的第三行繪示了在具有隨機起始位址的數據流中所接收的配置數據,該數據流具有來自數據邊界302的偏移M,該數據邊界302是記憶體空間中的固定位址。因此,在此示例中,數據流中的第一數據位址(address of the first data)位於M +(N * D)。該偏移M僅施加於數據流中的第一CRC塊,這導致第一CRC塊的第一數據塊被截斷(truncated),但在數據流中,CRC塊之間的邊界與相對於記憶體空間中的數據邊界之固定位址的偏移對齊。然而,固定CRC塊邊界326位於記憶體空間中之CRC塊大小的固定倍數,該固定CRC塊邊界326包括數據塊大小加上CRC碼的大小。因此,固定CRC塊邊界326位於記憶體空間中的位址(N + 1)*(D + C)。在此示例中,用於數據塊320的CRC代碼321具有固定長度C。因此,在此隨機偏移模式(random offset mode)中,數據塊320的邊界327位於位址(N + 1)* D,該(N + 1)* D獨立於數據流的隨機起始位址中的偏移M。在中。這導致數據塊320被截斷的情況。隨後的(Subsequent)CRC塊(例如是數據塊322與相關的CRC代碼323的組合)與在相對於固定位址之偏移處的固定邊界對齊,並且保持未截斷數據塊之數據完整性檢查的可能性。被截斷的第一數據塊310可以具有無效的(invalid)CRC代碼311,使第一數據塊的數據完整性檢查變得不可能。
因此,在固定CRC塊邊界模式中,根據數據塊D大小與相關CRC代碼C大小以及記憶體空間中的固定位址所確定的固定邊界,第1圖的指令解碼器/控制器122透過輸入數據流的解析來進行操作。
第4A圖是以CRC為基準的生態系統之邏輯簡化流程圖,其可實施於第1圖的指令解碼器/控制器122和記憶體裝置101,或是在其他類型的積體電路裝置中之CRC控制器。該CRC控制器具有如本發明所描述之多重模式(multiple-mode)CRC電路。
在此示例中,該過程以具有CRC操作的讀取/寫入指令來開始(400)。例如,作為指令的一部分,接收起始位址(401)。接下來,確定是否已設定塊邊界配置標誌(chunk boundary configuration flag)(區塊402)。若未設定邊界標誌(例如等於0),則在浮動CRC邊界模式下啟用(enabled)邏輯來操作(403)。
在浮動CRC邊界模式中,邏輯解析從讀取操作所接收的輸入數據流或數據,以提供包含了從D倍數的偏移M所開始之數據塊長度為D以及相關CRC代碼長度為C的第一CRC塊,且該邏輯利用要進行接收的數據流或要進行傳輸的數據流來計算CRC(區塊404)。
若在區塊402處設定塊邊界配置標誌(例如等於1),則啟用邏輯以在固定CRC邊界模式中進行操作(區塊413)。
在固定CRC邊界模式下,邏輯解析寫入操作的輸入數據流或者從讀取操作所接收的數據,以提供包括了長度D的數據塊之第一CRC塊。在這種情況中,CRC代碼沒有參考偏移M來計算固定CRC塊邊界上的數據塊,且該CRC代碼利用接收到的數據流或要進行傳輸的數據流來計算CRC(區塊414)。
接下來,根據配置標記,在區塊404或區塊414處執行功能之後,步驟根據是否正在執行讀取操作或寫入操作而分歧(diverges) (區塊405)。若正在執行寫入操作,則CRC邏輯確定所接收到的CRC代碼以及根據解析數據所計算之已計算CRC代碼是否匹配(match)(區塊406)。若有匹配,則可執行寫入過程(區塊407)。若沒有匹配,則識別出數據完整性問題(data integrity issue),並可將錯誤通知提供至發送器(區塊408)。此外,在沒有匹配的情況下,仍然可繼續執行寫入。
如果區塊405處正在執行讀取操作,則將已計算CRC代碼插入在適當固定邊界或浮動邊界處的輸出數據流中(區塊415)。
第4B圖是以CRC為基準的生態系統之邏輯簡化流程圖,其可實施於第1圖的指令解碼器/控制器122和記憶體裝置101,其中配置數據載於相關數據流所接收的指令中。該配置數據識別浮動邊界CRC模式操作,像是寫入或讀取可尋址記憶體。
在此示例中,該過程以讀取/寫入指令來開始,該讀取/寫入指令利用浮動邊界CRC操作來識別讀取或寫入(區塊431)。例如,作為指令的一部分,接收起始位址(區塊432)。此外,啟用了支援浮動邊界模式的電路(區塊433),像是控制狀態機(control state machine),位址計數器(address counters)等。
如指令所表示的浮動CRC邊界模式中,邏輯解析了寫入操作的輸入數據流或從讀取操作所接收的數據,以提供包含了之長度D的數據塊以及長度C的相關CRC代碼之第一CRC塊,該長度D的數據塊從D倍數的偏移M開始。且該邏輯利用接收到的數據流或要傳輸的數據流來計算CRC (區塊434)。
接下來,在區塊404處執行浮動邊界配置的功能之後,步驟根據是否正在執行讀取操作或寫入操作與否而分歧 (區塊435)。若正在執行寫入操作,則CRC邏輯確定是否為接收到的CRC代碼與根據解析的匹配數據所計算之已計算CRC代碼 (區塊436)。若有匹配,則可執行寫入過程(區塊437)。若沒有匹配,則已經識別出數據完整性問題,並可將錯誤通知提供至發送器(區塊438)。此外,在沒有匹配的情況下,仍然可繼續執行寫入。
如果在區塊435處正在執行讀取操作,則將已計算CRC代碼插入在浮動邊界處的輸出數據流中(區塊445)。
第4C圖是以CRC為基準的生態系統之邏輯簡化流程圖,其可實施於第1圖的指令解碼器/控制器122和記憶體裝置101,其中配置數據載於相關數據流所接收的指令中。該配置數據識別固定邊界CRC模式操作,像是寫入或讀取可尋址記憶體。
在此示例中,該過程以讀取/寫入指令來開始,該讀取/寫入指令利用浮動邊界CRC操作來識別讀取或寫入(區塊451)。例如,作為指令的一部分,接收起始位址(區塊452)。此外,電路, 例如控制狀態機,位址計數器等,啟用支持浮動邊界模式(區塊433)。
如指令所表示的固定CRC邊界模式中,邏輯解析了寫入操作的輸入數據流或從讀取操作所接收的數據,以提供包含了長度D的數據塊以及長度C的相關CRC代碼之第一CRC塊,該長度為D的數據塊沒有參考來自D倍數的偏移M。且該邏輯利用接收到的數據流或要傳輸的數據流來計算CRC (區塊454)。
接下來,在區塊454處執行固定邊界配置的功能之後,步驟根據是否正在執行讀取操作或寫入操作與否而分歧 (區塊455)。若正在執行寫入操作,則CRC邏輯確定是否為接收到的CRC代碼與根據解析的匹配數據所計算之已計算CRC代碼 (區塊456)。若有匹配,則可執行寫入過程(區塊457)。若沒有匹配,則已經識別出數據完整性問題,並可將錯誤通知提供至發送器(區塊458)。此外,在沒有匹配的情況下,仍然可繼續執行寫入。
如果在區塊455處正在執行讀取操作,則將已計算CRC代碼插入在適當固定邊界的輸出數據流中(區塊465)。
用於CRC處理的控制器之其他實施方式可由可編程處理器(programmable processor)或可配置邏輯(configurable logic)(或稱可配置邏輯電路)來執行軟體(software)中或配置檔案(configuration file)中的指令。執行本發明所描述之方法的邏輯可包括非暫態電腦可讀取儲存媒體(non-transitory computer readable storage medium)上所儲存的指令,儲存指令的非暫態電腦可讀取儲存媒體可由處理器來執行上述之任何方法。
非暫態電腦可讀取儲存媒體可以是任何裝置或媒體,其可儲存代碼和/或計算機系統(computer system)的數據使用。但這不限於包括揮發性記憶體、非揮發性記憶體、特殊應用積體電路(application-specific integrated circuits, ASICs)、現場可程式化邏輯閘陣列(field-programmable gate arrays, FPGAs)、磁性與光纖儲存裝置(magnetic and optical storage devices)(像是硬碟(hard disk drives)、磁帶(magnetic tape)、CDs (光碟(compact discs))、DVD(數位多功能光碟(digital versatile discs)或數位影音光碟(digital video discs))),或是能夠儲存現在已知或後來發展的電腦可讀取媒體(computer-readable media)之其他媒體。
第5圖為系統的功能區塊圖,其中發送器500配置為以CRC為基準的生態系統,以在發送至接收器501的數據流中使用數據完整性的CRC代碼,該接收器501包括CRC配置儲存器520以及處理接收到的數據流之邏輯,該邏輯是根據如本發明所述之CRC配置儲存器520中的參數。例如,發送器500可以是記憶體控制器或是與接收器501進行通信之其他類型的主機。例如,接收器501可以是記憶體裝置,像是快閃記憶體裝置(flash memory device)。或者,接收器501可以是包括了可尋址記憶體的任何積體電路裝置,像是具有便箋記憶體的處理器裝置或是支持記憶體位址空間(memory address space)之其他類型的記憶體。
發送器500包括數據緩衝器510、CRC代碼產生器511和CRC暫存器512。為了發送數據流,來自數據緩衝器510的數據塊以及來自CRC暫存器512的CRC代碼在輸入/輸出介面上的多工器(multiplexer)513中進行多工,並作為數據流來傳輸。該數據流包括一系列之一或多個CRC塊,該CRC塊包括數據塊515與其相關的CRC代碼514。
接收器501接收數據流,並將數據塊515儲存於數據緩衝器521中,並將CRC值施加於CRC比較區塊(CRC compare block)524。接收器501上的CRC代碼產生器522和CRC暫存器523用於產生已計算CRC代碼,其施加於CRC比較區塊524。CRC比較區塊表示接收到的CRC塊是否通過數據完整性檢查。如本發明所述,接收器501包括CRC配置儲存器520。CRC代碼產生器522回應於CRC配置儲存器520中的參數來解析輸入數據流,以根據如上所述之固定邊界或浮動邊界來識別CRC塊。CRC代碼產生器522計算CRC值,並將CRC值施加於CRC比較區塊524。如果已計算CRC並未匹配於接收的CRC 代碼514,則數據完整性被放棄(compromised)。
第6圖是包括了接收器600之功能區塊圖,該接收器600配置為以CRC為基準的生態系統,以使用數據完整性的CRC代碼。接收器600從發送器601接收了包括CRC塊的數據流,該發送器601包括CRC配置儲存器620和邏輯,以根據CRC配置儲存器620所表示的CRC模式中的參數來構成數據流。例如,接收器600可以是記憶體控制器或是與發送器601進行通信之其他類型的主機。例如,發送器601可以是包含了記憶體的任何積體電路裝置,像是具有便箋記憶體的處理器裝置或是支持記憶體位址空間之其他類型的記憶體。
接收器600包括數據緩衝器610、CRC代碼產生器611、CRC暫存器612和CRC比較模組(CRC compare module)613。發送器601包括CRC配置儲存器620、數據緩衝器621、CRC代碼產生器622和CRC暫存器623,發送器601架構成將來自於數據緩衝器621的數據塊進行多工,來自於CRC暫存器623的相關CRC代碼利用輸入/輸出介面中的多工器624,以構成包含了多個CRC塊的數據流。每個CRC塊包括數據塊615和相關的CRC代碼614。CRC代碼產生器622回應於CRC配置儲存器620中的參數以根據參數所表示的固定邊界模式或浮動邊界模式來計算CRC值。
因此,如第5圖和第6圖所繪示,本發明所描述的數據完整性配置模式技術可由接收器裝置或發送器裝置來使用。此外,在一些實施例中,配置模式技術可以應用於數據流接收以及傳輸的單一裝置中。
字節是用於在許多積體電路邏輯與記憶體電路的基本儲存單元(basic storage unit),並且由8位元所組成。 基本儲存單元可具有其他大小,例如包括一位元、兩位元、四位元、16位元等。因此,塊可以是任何數量的字節或其他儲存單元。
本發明描述了由接收CRC保護數據流的裝置所執行的邏輯來繪示的流程圖。該邏輯可利用可編程處理器來實現。該可編程處理器利用了儲存於記憶體中的計算機程式(computer programs)來存取(accessible)計算機系統,並藉由處理器、像是狀態機的專用邏輯硬體(dedicated logic hardware)或其他裝置上的控制電路,以及專用邏輯硬體與計算機程式的組合來執行。應當理解,流程圖中的許多步驟可以組合,並行執行或以不同順序執行而不影響達成的功能。在一些情況下,如讀者所理解的,如果又進行某些的其他改變時,步驟的重新排列(re-arrangement)將獲得相同的結果。在其他情況下,如讀者所理解的,即使滿足某些條件,步驟的重新排列將達成相同的結果。此外,應當理解,這裡的流程圖僅顯示了與本發明的理解有關的步驟,並且應當理解,達成其他功能的許多附加步驟可以在所示的那些附加步驟之前、之後和之間來執行。
本發明所描述的實施例是基於CRC碼的使用。可以使用其他實施例,並可修改本發明所描述的實施例來使用。可以使用不同類型的數據完整性代碼,像是其他類型的校驗碼和和散列,其包含了錯誤檢查(error checking)和代碼修正(correcting codes)。
儘管通過參考上文詳述的優選實施方案和實施例公開了本發明,但應理解這些實施例旨在說明而不是限制。預期本領域技術人員將容易想到修改和組合,這些修改和組合將在本發明的精神和所附權利要求的範圍內。
100:主機
101:記憶體裝置
102:通道
105:可尋址記憶體
110、510、521、610、621:數據緩衝器
111、126、511、522、611、622:CRC代碼產生器
112、127、512、523、612、623:CRC暫存器
113、120:輸入/輸出介面
115:CRC比較邏輯
121:緩衝器
122:指令解碼器/控制器
123:配置儲存器
124:數據塊緩衝器
125:CRC代碼緩衝器
128:比較器
140:箭頭
200、210、300、310:第一數據塊
201、212、301、312:第二數據塊
202:標準CRC塊邊界
211、213、221、223、311、313、321、323、514、614:CRC代碼
215、315、327:邊界
220、222、320、322、515、615:數據塊
225:起始邊界
227:浮動CRC塊邊界
302:數據邊界
326:固定CRC塊邊界
500、601:發送器
501、600:接收器
513、624:多工器
520、620:CRC配置儲存器
524:CRC比較區塊
613:CRC比較模組
400、401、402、403、404、405、406、407、408、413、414、415、431、432、433、434、435、436、437、438、445、451、452、453、454、455、456、457、458、465:步驟
第1圖係包括具有可配置CRC模式的積體電路裝置之系統的簡化圖
第2圖係繪示了用於浮動邊界CRC模式的CRC數據流。
第3圖繪示了固定邊界CRC模式的CRC數據流。
第4A圖係可由類似於第1圖的積體電路上的邏輯所執行之方法的流程圖。
第4B圖係可由類似於第1圖的積體電路上的邏輯所執行之方法的流程圖,其使用指令代碼以表示浮動邊界模式。
第4C圖係可由類似於第1圖的積體電路上的邏輯所執行之方法的流程圖,其使用指令代碼以表示固定邊界模式。
第5圖為系統的功能區塊圖,其中架構成利用數據完整性的CRC代碼之發送器將數據流發送到具有可配置CRC模式的接收器。
第6圖為系統的功能區塊圖,其中具有可配置CRC模式的發送器將數據流發送到接收器,該接收器架構成利用數據完整性的CRC代碼。
100:主機
101:記憶體裝置
102:通道
105:可尋址記憶體
110:數據緩衝器
111、126:CRC代碼產生器
112、127:CRC暫存器
113、120:輸入/輸出介面
115:CRC比較邏輯
121:緩衝器
122:指令解碼器/控制器
123:配置儲存器
124:數據塊緩衝器
125:CRC代碼緩衝器
128:比較器
140:箭頭
Claims (10)
- 一種數據完整性檢查的方法,包括: 在一裝置上接收具有一參考位址的一數據流與包括具有複數個數據完整性代碼的複數個數據塊; 解析來自該數據流的該些數據塊和該些數據完整性代碼;以及 計算該數據流中之該些數據塊的該些數據完整性代碼,並比較已計算的該些數據完整性代碼與接收到的該些數據完整性代碼,以檢測複數個數據錯誤,其中所述解析包括: 回應於該裝置上所儲存的一配置數據,且若該配置數據表示一浮動邊界數據完整性模式,則根據來自於該數據流之該參考位址的一偏移來識別複數個塊邊界,且若該配置數據表示一固定邊界數據完整性模式,則根據一固定位址來識別該些塊邊界; 其中,該些數據完整性代碼包括複數個CRC代碼,該配置數據包括了表示為該浮動邊界數據完整性模式或該固定邊界數據完整性模式的一模式標誌,該固定位址相對於一可尋址記憶體的複數個位址是固定的,並且該參考位址識別該數據流的一起始;以及 其中,該數據完整性檢查的方法,還包括: 接收了將該數據流寫入至該可尋址記憶體的一指令,該指令包括該配置數據。
- 如申請專利範圍第1項所述之方法,包括: 將該配置數據儲存於該裝置上的一非揮發性記憶體中。
- 如申請專利範圍第1項所述之方法,包括: 將該配置數據儲存於該裝置上的一揮發性記憶體。
- 一種數據完整性檢查的方法,包括: 在一裝置上獲得來自於一可尋址記憶體的複數個數據塊; 計算該些數據塊的複數個數據完整性代碼;以及 從該裝置發送具有一參考位址的一數據流,且該數據流包括具有已計算之該些數據完整性代碼的該些數據塊,其中所述發送包括: 回應於該裝置上所儲存的一配置數據,且若該配置數據表示為一浮動邊界數據完整性模式,則根據來自於該數據流之該參考位址的一偏移來將該些數據塊插入至複數個塊邊界上的該數據流中,且若該配置數據表示為一固定邊界數據完整性模式,然後根據一固定位址來將該些數據塊插入至該些塊邊界上的該數據流中; 其中該些數據完整性代碼包括複數個CRC代碼,該配置數據包括了表示為該浮動邊界數據完整性模式或該固定邊界數據完整性模式的一模式標誌,該固定位址相對於該可尋址記憶體的複數個位址是固定的,且該參考位址識別該數據流的一起始;以及 其中該數據完整性檢查的方法,還包括: 接收一指令以讀取來自於該可尋址記憶體的該數據流,該指令包括該配置數據。
- 如申請專利範圍第4項所述之方法,包括: 儲存該配置數據於該裝置上的非揮發性記憶體中。
- 如申請專利範圍第4項所述之方法,包括: 儲存該配置數據於該裝置上的揮發性記憶體中。
- 一種積體電路(integrated circuit),包括: 一可尋址記憶體; 一接收器,用於接收具有一參考位址的一數據流,且該數據流包括了具有複數個數據完整性代碼的複數個數據塊; 一配置儲存器(configuration store),用於儲存一配置數據; 一邏輯,用於解析來自該數據流的該些數據塊和該些數據完整性代碼; 一邏輯,用於計算該數據流中之該些數據塊的該些數據完整性代碼,且比較已計算的該些數據完整性代碼與接收到的該些數據完整性代碼,以檢驗複數個數據錯誤,其中用於解析之該邏輯包括: 一電路,用以回應於該配置數據,且若該配置數據表示為一浮動邊界數據完整性模式,則根據來自於該數據流之該參考位址的一偏移來識別複數個塊邊界,且若該配置數據表示為一固定邊界數據完整性模式,則根據一固定位址來識別該些塊邊界; 其中該些數據完整性代碼包括複數個CRC代碼,該配置數據包括了表示為該浮動邊界數據完整性模式或該固定邊界數據完整性模式的一模式標誌,該固定位址相對於該可尋址記憶體的複數個位址是固定的,且該參考位址識別出相對於該數據流之一起始的一位置;以及 其中該積體電路,還包括: 一邏輯,用於對讀取指令與寫入指令進行解碼以產生該配置數據。
- 如申請專利範圍第7項所述之積體電路,其中該配置儲存器是非揮發性記憶體。
- 如申請專利範圍第7項所述之積體電路,其中該配置儲存器是揮發性記憶體。
- 如申請專利範圍第7項所述之積體電路,包括: 用於獲得來自於該可尋址記憶體中的該些數據塊之該邏輯; 用於計算該些數據塊的該些數據完整性代碼之該邏輯,該些數據塊從該可尋址記憶體所獲得; 一傳輸器;以及 回應於該配置數據之該電路,用以構成該數據流,該數據流包括了具有已計算的該些數據完整性代碼之該些數據塊,該數據流由該發送器來傳輸,若該配置數據表示為該浮動邊界數據完整性模式,則根據來自於該數據流之該參考位址的該偏移來將該些數據塊插入於該些塊邊界上的該數據流中,且若該配置數據表示為該固定邊界數據完整性模式,則根據該固定位址來將該些數據塊插入於該些塊邊界上的該數據流中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/419,430 US10891184B2 (en) | 2019-05-22 | 2019-05-22 | Configurable data integrity mode, and memory device including same |
US16/419,430 | 2019-05-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI690165B true TWI690165B (zh) | 2020-04-01 |
TW202044778A TW202044778A (zh) | 2020-12-01 |
Family
ID=71134277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108146325A TWI690165B (zh) | 2019-05-22 | 2019-12-18 | 數據完整性檢查的方法與積體電路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10891184B2 (zh) |
TW (1) | TWI690165B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI820434B (zh) * | 2021-06-17 | 2023-11-01 | 新唐科技股份有限公司 | 參數檢查系統及參數檢查方法 |
US12015693B2 (en) | 2021-06-17 | 2024-06-18 | Nuvoton Technology Corporation | Information security protection system and information security protection method |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11537560B2 (en) * | 2019-07-11 | 2022-12-27 | Samsung Electronics Co., Ltd. | Markers for hash code calculations on occupied portions of data blocks |
US11269536B2 (en) * | 2019-09-27 | 2022-03-08 | Open Text Holdings, Inc. | Method and system for efficient content transfer to distributed stores |
US11062756B2 (en) * | 2019-10-14 | 2021-07-13 | Western Digital Technologies, Inc. | Extending operating temperature of storage device |
US11082495B1 (en) | 2020-04-07 | 2021-08-03 | Open Text Holdings, Inc. | Method and system for efficient content transfer to a server |
US11861012B2 (en) * | 2021-07-01 | 2024-01-02 | Macronix International Co., Ltd. | Memory device having safety boot capability |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100211834A1 (en) * | 2009-02-18 | 2010-08-19 | Micron Technology, Inc. | Data integrity in memory controllers and methods |
TW201312577A (zh) * | 2011-05-31 | 2013-03-16 | Micron Technology Inc | 用於提供資料完整性之裝置及方法 |
US20150189047A1 (en) * | 2013-09-16 | 2015-07-02 | Annapurna Labs, LTD. | Generic data integrity check |
US20160077911A1 (en) * | 2014-09-15 | 2016-03-17 | Sandisk Technologies Inc. | Methods, systems, and computer readable media for address and data integrity checking in flash memory operations |
US20180039538A1 (en) * | 2016-08-05 | 2018-02-08 | Sandisk Technologies Llc | Data integrity |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4325120A (en) * | 1978-12-21 | 1982-04-13 | Intel Corporation | Data processing system |
US6708273B1 (en) * | 1997-09-16 | 2004-03-16 | Safenet, Inc. | Apparatus and method for implementing IPSEC transforms within an integrated circuit |
US6967961B1 (en) * | 1998-06-03 | 2005-11-22 | Cisco Technology, Inc. | Method and apparatus for providing programmable memory functions for bi-directional traffic in a switch platform |
US6601216B1 (en) | 2000-03-31 | 2003-07-29 | Microsoft Corporation | Differential cyclic redundancy check |
KR100785810B1 (ko) * | 2006-12-05 | 2007-12-13 | 한국전자통신연구원 | Rfid 데이터 보호 장치 및 방법 |
KR101392697B1 (ko) * | 2007-08-10 | 2014-05-19 | 엘지전자 주식회사 | 이동통신 시스템에서의 보안 오류 검출방법 및 장치 |
US8234551B2 (en) | 2007-11-02 | 2012-07-31 | Broadcom Corporation | Single CRC polynomial for both turbo code block CRC and transport block CRC |
US20100235689A1 (en) * | 2009-03-16 | 2010-09-16 | Qualcomm Incorporated | Apparatus and method for employing codes for telecommunications |
US8918375B2 (en) | 2011-08-31 | 2014-12-23 | Microsoft Corporation | Content aware chunking for achieving an improved chunk size distribution |
US9362950B2 (en) * | 2014-05-02 | 2016-06-07 | Infineon Technologies Ag | High performance CRC calculation with small footprint |
KR20180057260A (ko) * | 2016-11-22 | 2018-05-30 | 삼성전자주식회사 | 비휘발성 메모리 장치의 동작 방법 |
-
2019
- 2019-05-22 US US16/419,430 patent/US10891184B2/en active Active
- 2019-12-18 TW TW108146325A patent/TWI690165B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100211834A1 (en) * | 2009-02-18 | 2010-08-19 | Micron Technology, Inc. | Data integrity in memory controllers and methods |
TW201434051A (zh) * | 2009-02-18 | 2014-09-01 | Micron Technology Inc | 在記憶體控制器中之資料完整性及方法 |
TW201312577A (zh) * | 2011-05-31 | 2013-03-16 | Micron Technology Inc | 用於提供資料完整性之裝置及方法 |
US20150189047A1 (en) * | 2013-09-16 | 2015-07-02 | Annapurna Labs, LTD. | Generic data integrity check |
US20160077911A1 (en) * | 2014-09-15 | 2016-03-17 | Sandisk Technologies Inc. | Methods, systems, and computer readable media for address and data integrity checking in flash memory operations |
US20180039538A1 (en) * | 2016-08-05 | 2018-02-08 | Sandisk Technologies Llc | Data integrity |
Non-Patent Citations (2)
Title |
---|
2012年2月28日公開文件Hari Udayakumar ."Verification of Data Integrity Using CRC" https://e2echina.ti.com/cfs-file/__key/telligent-evolution-components-attachments/13-102-00-00-00-00-22-19/Verification-of-Data-Integrity-Using-CRC.pdf?forcedownload=true |
年2月28日公開文件Hari Udayakumar ."Verification of Data Integrity Using CRC" https://e2echina.ti.com/cfs-file/__key/telligent-evolution-components-attachments/13-102-00-00-00-00-22-19/Verification-of-Data-Integrity-Using-CRC.pdf?forcedownload=true * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI820434B (zh) * | 2021-06-17 | 2023-11-01 | 新唐科技股份有限公司 | 參數檢查系統及參數檢查方法 |
US11841944B2 (en) | 2021-06-17 | 2023-12-12 | Nuvoton Technology Corporation | Parameter checking system and parameter checking method |
US12015693B2 (en) | 2021-06-17 | 2024-06-18 | Nuvoton Technology Corporation | Information security protection system and information security protection method |
Also Published As
Publication number | Publication date |
---|---|
US10891184B2 (en) | 2021-01-12 |
US20200371861A1 (en) | 2020-11-26 |
TW202044778A (zh) | 2020-12-01 |
CN112068984A (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI690165B (zh) | 數據完整性檢查的方法與積體電路 | |
US8458566B2 (en) | Method for performing copy back operations and flash storage device | |
JP7387725B2 (ja) | アドレス障害を検出するためのシステム、方法、及び装置 | |
JP2008299855A (ja) | エンベデッドメモリを利用したマルチチャンネルエラー訂正コーダを備えたメモリシステム及びその方法 | |
KR20070076849A (ko) | 메모리 카드의 카피백 동작을 수행하는 장치 및 방법 | |
US20060120166A1 (en) | Data processing apparatus and method for flash memory | |
JP2006134310A (ja) | データ信頼性を向上させることができるメモリ管理方法 | |
US10394648B2 (en) | Method to deliver in-DRAM ECC information through DDR bus | |
US20160283323A1 (en) | Error detection using a logical address key | |
JP2013137708A (ja) | メモリコントローラ、データ記憶装置およびメモリ制御方法 | |
KR20180029803A (ko) | 반도체장치 및 반도체시스템 | |
JP2008090442A (ja) | メモリ制御装置 | |
US9030771B2 (en) | Compressed data verification | |
US10992322B2 (en) | Data storage system and associated method for saving storage space and eliminating data errors | |
JP2015011421A (ja) | 記憶制御装置、記憶装置、および、その記憶制御方法 | |
US7627800B2 (en) | Communicating with error checking to a device capable of operating according to an address prefix serial bus protocol | |
JP2008310896A (ja) | 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法 | |
CN112068984B (zh) | 数据完整性检查的方法与集成电路 | |
KR20090102115A (ko) | 낸드 플래시 메모리와 컨트롤러 간의 효율적인 프로토콜을사용하는 반도체 메모리 장치 | |
US11392457B2 (en) | Error correction method of a memory system | |
US20100262898A1 (en) | Information processing device and information processing method | |
JP6673021B2 (ja) | メモリおよび情報処理装置 | |
JP5361826B2 (ja) | 記録ユニット及び故障チップ特定方法 | |
JP2018194948A (ja) | 半導体記憶装置、メモリコントローラ及びメモリの監視方法 | |
KR20170130684A (ko) | 반도체장치 |