TW201810056A - 記憶體系統中的鏈路糾錯 - Google Patents
記憶體系統中的鏈路糾錯 Download PDFInfo
- Publication number
- TW201810056A TW201810056A TW106125466A TW106125466A TW201810056A TW 201810056 A TW201810056 A TW 201810056A TW 106125466 A TW106125466 A TW 106125466A TW 106125466 A TW106125466 A TW 106125466A TW 201810056 A TW201810056 A TW 201810056A
- Authority
- TW
- Taiwan
- Prior art keywords
- write
- read
- data
- host
- protection code
- Prior art date
Links
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
-
- 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/1048—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 arrangements adapted for a specific error detection or correction feature
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/31—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining coding for error detection or correction and efficient use of the spectrum
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Probability & Statistics with Applications (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
- Error Detection And Correction (AREA)
Abstract
記憶體子系統中的習知鏈路糾錯技術包括加寬I/O頻寬或者增加短脈衝長度。然而,該兩種技術具有缺點。在一或多個態樣,提出了在主機和記憶體設備兩者中納入鏈路糾錯以解決與習知技術相關聯的缺點。所提出的記憶體子系統的優點在於可保持習知記憶體系統的介面架構。此外,用所提出的記憶體子系統提供了鏈路糾錯能力而不會增加I/O頻寬並且不會增加短脈衝長度。
Description
本專利申請案主張於2016年8月26日提出申請的題為「LINK ERROR CORRECTION IN MEMORY SYSTEM(記憶體系統中的鏈路糾錯)」的美國臨時申請案第62/380,104的權益,該臨時申請案已被轉讓給本案受讓人並由此經由援引全部明確納入於此。
本案的一或多個態樣大體而言係關於記憶體系統,特定言之係關於記憶體系統中的鏈路糾錯。
在主機與記憶體設備之間的資料傳遞中可存在錯誤。該等鏈路錯誤可被偵測並且常常經由在資料傳遞中納入糾錯碼(ECC)來糾正。兩種技術已習知地用於實現ECC。在第一種習知技術中,輸入/輸出(I/O)寬度被增加以容適資料和ECC兩者。在第二種習知技術中,經由擴展資料短脈衝長度來在主機與記憶體之間傳遞ECC位元。
在第一種習知技術中,習知伺服器和計算系統通常使用72位元I/O寬度的記憶體模組(64位元資料和對應的8位元ECC),以增強記憶體鏈路和記憶體單元陣列的可靠性。圖1圖示了包括主機晶片上系統(SOC)110與記憶體陣列140的習知記憶體子系統100的簡化圖。主機SOC 110包括具有ECC編碼器/解碼器125的記憶體控制器120以及PHY區塊130。記憶體陣列140包括九個8位元記憶體設備150。8位元ECC可以被指派給每個64位元資料,以保護主機SOC 110和記憶體單元陣列140兩者中的任何位元錯誤。資料可被寫入前八個記憶體設備150,並且ECC可被寫入第9個記憶體設備150。
如所看到的,習知記憶體配置引起附加的記憶體設備成本。習知記憶體配置亦經由需要更寬的記憶體通道佈線引起增加的印刷電路板(PCB)面積成本,以及由於附加的第9個記憶體設備150而引起增加的記憶體待機和活動功率成本。附加的記憶體配置直接影響效能。記憶體頻寬對應於每個給定的時間量傳遞多少有效位元。然而,附加的ECC位元儘管增強可靠性,但其自身不具有作為資料的值。由此,第一種習知技術直接影響記憶體子系統的效能,因為整個I/O寬度未用於傳遞有用資料。
圖2圖示了習知記憶體子系統100的簡化圖,但此時為簡單起見僅圖示一個資料(DQ)位元組。記憶體設備150包括I/O區塊260和複數個記憶體組270。如所看到的,信號線(統稱為鏈路290)用於在主機SOC 110與記憶體設備150之間交換資料。鏈路290包括: • DQ[0:7]線:用於在記憶體與SOC之間傳遞資料的DQ位元組雙向匯流排; • DM線:用於寫資料的資料遮罩; • 資料CK線:用於選通寫資料的時鐘輸入; • 讀選通CK線:用於與讀資料定時(至SOC的時鐘輸入)對準的時鐘輸出; • CA[0:n]線:命令和位址; • CA CK線:用於獲取CA的命令和位址時鐘輸入。
應當注意,DM線可以是資料遮罩反相(DMI)引腳功能—資料反相或資料遮罩。DMI引腳功能取決於模式暫存器設置。然而,在圖2中,為簡單起見其被圖示為DM線。
圖3A圖示了習知遮罩寫操作的時序圖。記憶體控制器120向記憶體設備150發出寫命令。在某一延遲之後,在十六個短脈衝循環中的每一者上從主機SOC 110向記憶體設備150傳遞一位元組(8位元)的資料。換言之,傳遞了128位元的寫資料(8位元DQ x短脈衝長度16)。在圖3A中,D0–DF中的每一者表示在一個短脈衝循環中傳遞的8位元(一位元組)的寫資料DQ[0:7]。在一些資料遮罩(DM)活動的情況下傳遞寫資料。在該實例中,16位元DM用於遮罩每個DQ位元組。習知地,由於此操作是寫操作,因此讀選通時鐘線閒置。
圖3B圖示了習知讀操作的時序圖。記憶體控制器120向記憶體設備150發出讀命令。在某一延遲之後,記憶體設備150經由向主機SOC 110發送128位元的讀資料(8位元DQ x短脈衝長度16)來進行回應。再次,D0–DF中的每一者表示在一個短脈衝循環中傳遞的一位元組的讀資料DQ[0:7]。來自記憶體設備150的讀選通時鐘隨讀資料翻轉,作為至主機SOC 110的輸入時鐘。由於此操作是讀操作,因此DM線閒置。
在第二種習知技術中,短脈衝長度被擴展以傳輸ECC碼。例如,短脈衝長度可從16擴展到18(BL16→BL18),並且可以在未用於傳遞DQ位元的短脈衝循環中在主機SOC 110與記憶體設備150之間傳遞ECC位元。此種習知的經擴展資料短脈衝長度的技術亦直接影響效能,因為不是每個循環用於傳遞有用資料。
本概述標識了一些示例性態樣的特徵,並且不是對所揭示的標的的排他性或窮盡性描述。各特徵或各態樣是被包括在本概述中還是從本概述中省略不意欲指示該等特徵的相對重要性。描述了附加特徵和態樣,並且該等附加特徵和態樣將在閱讀以下詳細描述並查看形成該詳細描述的一部分的附圖之後變得對熟習此項技術者顯而易見。
揭示一種示例性記憶體設備。該記憶體設備可包括記憶體組、記憶體側介面、記憶體側編碼器,以及記憶體側解碼器。該記憶體側介面可被配置成:經由鏈路從主機接收寫命令,經由該鏈路從該主機接收寫資料和防寫碼,以及回應於該寫命令,將該寫資料儲存到該記憶體組。該記憶體側介面亦可被配置成:經由該鏈路從該主機接收讀命令,回應於該讀命令,從該記憶體組檢索讀資料,以及經由該鏈路向該主機發送該讀資料和讀保護碼。該記憶體側解碼器可被配置成:基於該防寫碼來偵測該寫資料是否具有錯誤,並且該記憶體側編碼器可被配置成:基於從該記憶體組檢索的該讀資料來產生該讀保護碼。該鏈路可包括複數個資料線、資料遮罩線,以及讀選通時鐘線。該資料遮罩線可用於遮罩寫操作中,並且該讀選通時鐘線可由該記憶體設備用於在讀操作中提供定時。該記憶體側介面可進一步被配置成:經由該複數個資料線接收該寫資料並發送該讀資料,經由該讀選通時鐘線來接收該防寫碼,以及經由該資料遮罩線來發送該讀保護碼。
揭示一種示例性主機。該主機可包括記憶體控制器、主機側介面、主機側編碼器,以及主機側解碼器。該記憶體控制器可被配置成:發出讀命令和寫命令。該主機側介面可被配置成:經由鏈路從該記憶體控制器向該記憶體設備發送該寫命令,以及經由該鏈路向該記憶體設備發送寫資料和防寫碼。該主機側介面亦可被配置成:經由該鏈路從該記憶體控制器向該記憶體設備發送該讀命令,在發送該讀命令之後經由該鏈路從該記憶體設備接收讀資料和讀保護碼,以及將該讀資料提供給該記憶體控制器。該主機側編碼器可被配置成:基於該寫資料來產生該防寫碼,並且該主機側解碼器可被配置成:基於該讀保護碼來偵測該讀資料是否具有錯誤。該鏈路可包括複數個資料線、資料遮罩線,以及讀選通時鐘線。該資料遮罩線可用於遮罩寫操作中,並且該讀選通時鐘線由該記憶體設備用於在讀操作中提供定時。該主機側介面可進一步被配置成:經由該複數個資料線來發送該寫資料並接收該讀資料,經由該讀選通時鐘線來發送該防寫碼,以及經由該資料遮罩線來接收該讀保護碼。
揭示一種示例性方法。該方法可包括以下步驟:主機經由鏈路向記憶體設備發送寫命令,該主機基於寫資料來產生防寫碼,以及該主機經由該鏈路向該記憶體設備發送該寫資料和該防寫碼。該方法亦可包括以下步驟:該記憶體設備基於該防寫碼來偵測該寫資料是否具有錯誤,以及該記憶體設備回應於該寫命令而將該寫資料儲存到該記憶體設備的記憶體組。該鏈路可包括複數個資料線、資料遮罩線,以及讀選通時鐘線。該資料遮罩線可用於遮罩寫操作中,並且該讀選通時鐘線由該記憶體設備用於在讀操作中提供定時。該主機可經由該複數個資料線向該記憶體設備發送該寫資料,並且可經由該讀選通時鐘線向該記憶體設備發送該防寫碼。
揭示另一種示例性方法。該方法可包括以下步驟:主機經由鏈路向記憶體設備發送讀命令,該記憶體設備回應於該讀命令而從該記憶體設備的記憶體組檢索讀資料,該記憶體設備基於該讀資料來產生讀保護碼,以及該記憶體設備經由該鏈路向該主機發送該讀資料和該讀保護碼。該方法亦可包括以下步驟:該主機基於該讀保護碼來偵測該讀資料是否具有錯誤。該鏈路可包括複數個資料線、資料遮罩線,以及讀選通時鐘線。該資料遮罩線可用於遮罩寫操作中,並且該讀選通時鐘線由該記憶體設備用於在讀操作中提供定時。該記憶體設備可經由該複數個資料線向該主機發送該讀資料,並且可經由該資料遮罩線向該主機發送該讀保護碼。
揭示一種示例性裝置。該裝置可包括:被配置成經由鏈路彼此通訊的主機和記憶體設備。該鏈路可包括複數個資料線、資料遮罩線,以及讀選通時鐘線。該資料遮罩線可用於遮罩寫操作中,並且該讀選通時鐘線由該記憶體設備用於在讀操作中提供定時。該記憶體設備可被配置成:經由該鏈路從該主機接收讀命令,回應於該讀命令而從該記憶體設備的記憶體組檢索讀資料,基於該讀資料來產生讀保護碼,經由該複數個資料線向該主機發送該讀資料,以及經由該資料遮罩線向該主機發送該讀保護碼。該讀保護碼可以是用於保護該讀資料的同位碼。該主機可被配置成:經由該鏈路向該記憶體設備發送該讀命令,經由該複數個資料線從該記憶體設備接收該讀資料,經由該資料遮罩線從該記憶體設備接收該讀保護碼,以及基於該讀保護碼來偵測該讀資料是否具有錯誤。
揭示一種示例性裝置。該裝置可包括:被配置成經由鏈路彼此通訊的主機和記憶體設備。該鏈路可包括複數個資料線、資料遮罩線,以及讀選通時鐘線。該資料遮罩線可用於遮罩寫操作中,並且該讀選通時鐘線由該記憶體設備用於在讀操作中提供定時。該主機可被配置成:經由該鏈路向該記憶體設備發送寫命令,基於寫資料來產生防寫碼,經由該複數個資料線向該記憶體設備發送該寫資料,以及經由該讀選通時鐘線向該記憶體設備發送該防寫碼。該防寫碼可以是用於保護該寫資料的同位碼。該記憶體設備可被配置成:經由該鏈路從該主機接收該寫命令,經由該複數個資料線從該主機接收該寫資料,經由該讀選通時鐘線從該主機接收該防寫碼,以及基於該防寫碼來偵測該寫資料是否具有錯誤。
標的的各態樣在以下針對所揭示的標的的特定實例的描述和相關附圖中提供。可以設計出替換方案而不會脫離所揭示的標的的範疇。另外,眾所周知的要素將不被詳細描述或將被省去以免混淆相關細節。
措辭「示例性」在本文中用於表示「用作示例、實例或說明」。本文中描述為「示例性」的任何實施例不必被解釋為優於或勝過其他實施例。同樣,術語「實施例」並不要求所揭示標的的所有實施例皆包括所論述的特徵、優點,或操作模式。
本文所使用的術語僅出於描述特定實例的目的,而並不意欲限定。如本文所使用的,單數形式的「一」、「某」和「該」意欲亦包括複數形式,除非上下文另有明確指示。將進一步理解,術語「包括」、「具有」、「包含」及/或「含有」在本文中使用時指明所陳述的特徵、整數、程序、操作、元素,及/或元件的存在,但並不排除一或多個其他特徵、整數、程序、操作、元素、元件及/或其群組的存在或添加。
此外,許多實例以將由例如計算設備的元件執行的動作序列的形式來描述。將認識到,本文描述的各種動作能由特殊電路(例如,特殊應用積體電路(ASIC))、由正被一或多個處理器執行的程式指令,或由該兩者的組合來執行。另外,本文描述的該等動作序列可被認為是完全體現在任何形式的電腦可讀取儲存媒體內,該電腦可讀取儲存媒體內儲存有一經執行就將使相關聯的處理器執行本文所描述的功能性的對應電腦指令集。由此,各個態樣可以用數種不同的形式來體現,所有該等形式皆已被構想落在所主張保護的標的的範疇內。另外,對於本文描述的每個實例,任何此類實例的對應形式可在本文中被描述為例如「被配置成執行所描述的動作的邏輯」。
本案的一或多個態樣可應用於行動或計算系統中的低功率記憶體子系統,以用偵錯及/或糾錯碼來保護高速記憶體鏈路(介面)。例如,一或多個態樣可與行動或計算晶片組中的下一代低功率DDR SPEC和DDR PHY相關。
在一或多個態樣,提出了在主機和記憶體設備兩者中納入編碼和解碼能力(例如,ECC能力)。經由將該等能力納入記憶體設備中以及主機中,可解決與習知技術相關聯的一些或全部問題。第一,所提出的技術不需要附加的記憶體設備。此情形意味著避免了附加設備的成本,其進而引起消耗更少的晶粒面積以及需要更少的功率。因此,在相同的晶粒面積中更多的記憶體可以專注於儲存有用資料。第二,不需要延長短脈衝長度,亦即,每個短脈衝循環可用於傳遞資料。此情形意味著亦避免了將一些短脈衝循環專用於傳遞ECC的效能懲罰。第三,不需要改變主機與記憶體設備之間的鏈路。
圖4圖示了包括主機410和記憶體設備450的所提出的記憶體子系統400的實例。此圖是簡化的圖示,因為圖示用於一個資料(DQ)位元組的單個記憶體設備450。然而,單個主機410可與任何數目的記憶體設備450通訊。主機410(例如,晶片上系統SOC)可包括記憶體控制器420、主機側介面430(例如,記憶體PHY區塊)、主機側編碼器432,以及主機側解碼器434。
記憶體控制器420可經由主機側介面430向記憶體設備450發出讀命令和寫命令。當發出寫命令時,記憶體控制器420亦可向主機側介面430提供寫資料。當發出讀命令時,記憶體控制器420亦可從主機側介面430接收讀資料。
在寫操作期間,主機側介面430可經由鏈路490向記憶體設備450發送寫命令和寫資料。主機側編碼器432(例如,ECC編碼器)可基於寫資料來產生防寫碼,並且主機側介面430亦可經由鏈路490向記憶體設備450發送防寫碼。防寫碼可以是ECC及/或其他類型的同位碼以保護寫資料。亦即,防寫碼可允許記憶體設備450偵測並且甚至糾正寫資料中可能存在的錯誤。例如,錯誤可出現在寫資料從主機410到記憶體設備450的傳輸中。
在另一態樣,主機側編碼器432可基於寫資料和資料遮罩(DM)資料來產生防寫碼。以此方式,防寫碼除了保護寫資料之外亦可保護資料遮罩(DM)位元。在該態樣,若寫操作不涉及遮罩,則可以在DM位元全部被消零的情況下產生防寫碼。
在讀操作期間,主機側介面430可經由鏈路490向記憶體設備450發送讀命令。隨後,主機側介面430可經由鏈路490從記憶體設備450接收讀資料,並將接收到的讀資料提供給記憶體控制器420。
主機側介面430亦可連同讀資料一起經由鏈路490從記憶體設備450接收讀保護碼。讀保護碼可以是ECC及/或其他類型的同位碼以便可以用於保護讀資料。主機側解碼器434可基於讀保護碼來決定接收到的讀資料是否有效。換言之,主機側解碼器434可偵測讀資料是否具有錯誤。另外,當偵測到錯誤時,主機側解碼器434可糾正讀資料,並且主機側介面430可將經糾正的讀資料提供給記憶體控制器420。
在圖4中,主機側編碼器432和主機側解碼器434被圖示為納入主機側介面430中。此情形僅僅是實例,並且不應被視為限定。可以構想,主機側編碼器432及/或主機側解碼器434可以是獨立的或被納入主機410內的其他元件(諸如記憶體控制器420)中。此外,儘管個體地圖示了主機側編碼器432和主機側解碼器434,但兩者可被實現在單個設備中。亦可以構想,主機側編碼器432及/或主機側解碼器434可被實現在多個設備中。實際上,在某個(些)態樣,主機側編碼器432及/或主機側解碼器434的實現可散佈在多個元件之中。
記憶體設備450可包括記憶體側介面460(例如,輸入/輸出(I/O)區塊)、記憶體組470、記憶體側編碼器462,以及記憶體側解碼器464。在寫操作期間,記憶體側介面460可經由鏈路490從主機410接收寫命令。回應於該寫命令,記憶體側介面460可經由鏈路490從主機410接收寫資料,並且可將寫資料儲存在記憶體組470中。
記憶體側介面460亦可連同寫資料一起經由鏈路490從主機410接收防寫碼。如所提到的,防寫碼可以是ECC及/或其他類型的同位碼。記憶體側解碼器464可基於防寫碼來決定接收到的寫資料是否有效。亦即,記憶體側解碼器464可偵測寫資料中是否存在錯誤。另外,當偵測到錯誤時,記憶體側解碼器464可糾正寫資料,並且記憶體側介面460可將經糾正的寫資料儲存在記憶體組470中。
回憶起在所提出的技術中,不需要附加的記憶體設備。不同於圖1中所圖示的習知記憶體系統(其具有第9個記憶體設備150來儲存ECC),在所提出的技術中不需要將防寫碼儲存在任何記憶體設備450中。相反,在一態樣,所有的記憶體設備450可儲存有用的資料。
在讀操作期間,記憶體側介面460可經由鏈路490從主機410接收讀命令。回應於該讀命令,記憶體側介面460可從記憶體組470檢索讀資料,並將所檢索的讀資料經由鏈路490發送給主機410。
記憶體側編碼器462可基於從記憶體組470檢索的讀資料來產生讀保護碼。或者,記憶體側編碼器462可基於讀資料以及DM資料(其可被消零)來產生讀保護碼。如所提到的,讀保護碼可以是ECC及/或其他類型的同位碼。記憶體側介面460可連同讀資料一起經由鏈路向主機410提供讀保護碼。
在圖4中,記憶體側編碼器462和記憶體側解碼器464被圖示為納入記憶體側介面460中。此情形僅僅是實例,並且不應被視為限定。可以構想,記憶體側編碼器462及/或記憶體側解碼器464可以是獨立的或被納入記憶體設備450內的其他元件中。此外,儘管個體地圖示了記憶體側編碼器462和記憶體側解碼器464,但兩者可被實現在單個設備中。亦可以構想,記憶體側編碼器462及/或記憶體側解碼器464可被實現在多個設備中。實際上,在某個(些)態樣,記憶體側編碼器462及/或記憶體側解碼器464的實現可散佈在多個元件之中。
在一態樣,主機側編碼器432和記憶體側編碼器462可操作用於:當被提供有相同的資料時產生相同的防寫碼和讀保護碼(例如,相同的ECC)。在另一態樣,亦有可能防寫碼可以不同於讀保護碼。然而,只要記憶體和主機側解碼器464、434分別與主機和記憶體側編碼器432、462互補地操作,就可以進行正確的資料交換。
當圖4的所提出的記憶體子系統400與圖2的習知記憶體子系統100進行比較時,可以看到,鏈路490和290可以相同,亦即,主機410與記憶體設備450之間的鏈路490的配置不需要任何改變。亦即,相同的信號線DQ[0:7]、DM、資料CK、讀選通CK、CA[0:n]和CA CK可用於在主機410與記憶體設備450之間交換資訊。由於可以使用相同的信號線,因此不需要對鏈路490的架構改變。
期望仍然在主機410與記憶體設備450之間傳達防寫碼和讀保護碼而不會改變鏈路架構、不會增加I/O寬度、並且不會增加短脈衝長度。回憶起在習知記憶體系統中,讀選通時鐘線在寫操作期間保持閒置(見圖 3A
),並且DM線在讀操作期間保持閒置(見圖 3B
)。因此,在一態樣,提出了利用讀選通時鐘線在寫操作期間傳遞防寫碼,並且利用DM線在讀操作期間傳遞讀保護碼。經由利用讀選通時鐘線和DM線,不需要附加的信號線來在主機410與記憶體設備450之間傳遞防寫碼和讀保護碼。可仍然經由資料(DQ)線來傳遞讀資料和寫資料。
圖5A圖示了遮罩寫操作的實例的時序圖。在該示例性圖中,可假設經由DQ線從主機410向記憶體設備450傳遞128位元的寫資料(8位元DQ x短脈衝長度16)。D0–DF中的每一者可表示在一個短脈衝循環中傳遞的8位元(一位元組)的寫資料DQ[0:7]。在該實例中,假設在一些資料遮罩(DM)活動的情況下傳遞寫資料。例如,16位元DM可用於遮罩寫資料的DQ位元組。例如,第4和第9 DM位元(M3和M8)可被設置成遮罩第4和第9 DQ位元組(D3和D8)。要注意,對於沒有遮罩的正常寫操作,全部DM位元將是未置位的,亦即,被消零。
主機側編碼器432可產生防寫碼(例如,8位元ECC),其隨後可由主機側介面430在讀選通時鐘線上傳遞。主機側編碼器432可基於從記憶體控制器420接收的寫資料來產生防寫碼。例如,可產生8位元的防寫碼以保護128位元的寫資料。在另一態樣,主機側編碼器432可基於DM位元以及寫資料來產生防寫碼。例如,可產生8位元的ECC以保護總共144位元(128位元的寫資料和16位元的DM)。
由此,在正常寫操作(沒有遮罩)中,防寫碼可以僅基於128位元的寫資料。或者在正常寫操作中,防寫碼可基於128位元的寫資料和被消零的DM位元。在遮罩寫操作中,若不關心對DM資料的保護,則防寫碼可以僅基於寫資料。否則在遮罩寫操作中,防寫碼可基於寫資料和DM資料。
如圖5A中所看到的,可傳輸8位元E[0:7]防寫碼以便與短脈衝循環8至15重合。更通常而言,可在短脈衝循環的後面部分期間傳輸防寫碼,以使得短脈衝循環的結束(例如,短脈衝循環15)與防寫碼的最後位元(例如,E7)的傳輸重合。此舉是因為產生防寫碼可能花費一些時間。經由在短脈衝循環的後面部分期間傳遞防寫碼以使得讀資料傳遞的結束與讀保護碼傳遞的結束重合,可提供最大量的時間來產生防寫資料而不必擴展短脈衝長度。
當然,一旦個體防寫碼位元可用,就可以開始防寫碼的傳遞。由此,防寫碼的傳遞可以在短脈衝循環的結束之前完成。但是無論如何,通常偏好防寫碼的傳遞不晚於短脈衝循環的結束完成,以避免短脈衝長度的延長。
圖5B圖示了讀操作的實例的時序圖。當記憶體控制器420向記憶體設備450發出讀命令時,記憶體設備450可經由向主機410發送讀資料來進行回應。在該示例性圖中,可假設經由DQ線從記憶體設備450向主機410傳遞128位元的讀資料(8位元DQ x短脈衝長度16)。D0–DF中的每一者可表示在一個短脈衝循環中傳遞的8位元(一位元組)的讀資料DQ[0:7]。
記憶體側編碼器462可產生讀保護碼(例如,8位元ECC),其隨後可由記憶體側介面460經由DM線來傳遞。記憶體側編碼器462可基於從記憶體組470檢索的讀資料來產生讀保護碼。例如,可產生8位元的讀保護碼以保護128位元的讀資料。在另一態樣,可產生讀保護碼以保護總共144位元(128位元的寫資料和16位元的被消零DM)。
可傳遞8位元E[0:7]讀保護碼以便與短脈衝循環8至15重合。更通常而言,可在短脈衝循環的後面部分期間傳遞讀保護碼,以使得短脈衝循環的結束(例如,短脈衝循環15)與讀保護碼的最後位元(例如,E7)重合。經由在短脈衝循環的後面部分期間傳遞讀保護碼以使得讀資料傳遞的結束與讀保護碼傳遞的結束重合,可提供最多的時間來產生讀保護資料而不必擴展短脈衝長度。
一旦產生個體讀保護碼位元,就可以開始讀保護碼的傳遞。由此,讀保護碼的傳遞可以在短脈衝循環的結束之前完成。但是無論如何,通常偏好讀保護碼的傳遞不晚於短脈衝循環的結束完成,以避免短脈衝長度的延長。
圖6A圖示了資料(例如,讀/寫資料)以及對應的保護碼(例如,讀保護碼/防寫碼)的實例。在該實例中,可假設8位元的保護碼(E0–E7)(例如,ECC位元)用於保護144位元的資料(128位元的讀/寫資料(d0–d7F)+16位元的DM資料(M0–MF))。如所提到的,對於正常讀/寫操作,DM位元可全部被消零。此情形僅僅是實例。用保護碼可保護任何數目的資料位元(例如,讀/寫資料位元以及遮罩位元的任何組合)。
保護碼的位元數亦可以取決於期望的保護級別(例如,偵錯和糾錯)而變化。圖6B圖示了資料、DM資料,以及對應的保護碼的另一實例。在該實例中,9個ECC位元可用於保護128位元的資料(例如,讀/寫資料),並且6個ECC位元可用於保護16位元的DM資料。由此,在該實例中,可傳遞15位元ECC(E0–EE)碼。
圖7圖示了用於執行寫操作的示例方法700的流程圖。方法700可應用於遮罩寫及/或正常寫。在該圖中,主機410可執行方塊710–730,並且記憶體設備450可執行方塊740–780。在主機側,在方塊710中,記憶體控制器420可經由主機側介面430向記憶體側發出寫命令。在方塊720中,主機側編碼器432可基於由記憶體控制器420提供的寫資料來產生防寫碼。或者,主機側編碼器432可產生防寫碼以保護寫資料和DM資料。在方塊730中,主機側介面430可向記憶體側發送寫資料和防寫碼(例如,ECC)。寫資料可經由DQ線來發送,並且防寫碼可經由讀選通時鐘線來發送。
在記憶體側,在方塊740中,記憶體側介面460可從主機側接收寫命令。之後,在方塊750中,記憶體側介面460可從主機側接收寫資料(例如,經由DQ線)和防寫碼(例如,經由讀選通時鐘線)。在方塊760中,記憶體側解碼器464可基於防寫碼來偵測寫資料中是否存在錯誤。或者,記憶體側解碼器464可基於防寫碼來偵測寫資料及/或DM資料中是否存在錯誤。在方塊770中,記憶體側解碼器464可在例如偵測到任何位元錯誤時依須求糾正寫資料。在方塊780中,記憶體側介面460可將寫資料儲存在記憶體組470中。若記憶體側解碼器464糾正寫資料,則經糾正的寫資料可被儲存在記憶體組470中。
圖8圖示了用於執行讀操作的示例性方法800的流程圖。在該圖中,主機410可執行方塊810–850,並且記憶體設備450可執行方塊850–890。在記憶體側,在方塊860中,記憶體側介面460可從主機側接收讀命令。在方塊870中,記憶體側介面460可從記憶體組470檢索讀資料。在方塊880中,記憶體側編碼器462可基於所檢索的讀資料來產生讀保護碼。或者,記憶體側編碼器462可產生讀保護碼以保護讀資料和DM資料,並且DM資料可被消零。在方塊890中,記憶體側介面460可向主機側發送讀資料和讀保護碼(例如,ECC)。讀資料可經由DQ線來發送,並且讀保護碼可經由DM線來發送。
在主機側,在方塊810中,記憶體控制器420可經由主機側介面430向記憶體側發出讀命令。之後,在方塊820中,主機側介面430可從記憶體側接收讀資料(例如,經由DQ線)和讀保護碼(例如,經由DM線)。在方塊830中,主機側解碼器434可基於讀保護碼來偵測讀資料中是否存在錯誤。或者,主機側解碼器434可基於讀保護碼來偵測讀資料及/或DM資料中是否存在錯誤。在方塊840中,主機側解碼器434可在例如偵測到任何位元錯誤時依須求糾正讀資料。在方塊850中,主機側介面430可將讀資料提供給記憶體控制器420。若主機側解碼器434糾正讀資料,則經糾正的讀資料可被提供給記憶體控制器420。
儘管未特別圖示,但主機410可與多個記憶體設備450通訊。應當注意,不需要執行方法700或方法800的全部方塊。此外,不需要以任何特定次序來執行方法700的方塊及/或方法800的方塊。
圖9圖示了可整合有前述記憶體子系統400的各種電子設備。例如,需要小的形狀因數、非常低剖面的行動電話設備902、膝上型電腦設備904、終端設備906,以及可穿戴設備、可攜式系統可包括納入如本文所描述的記憶體子系統400的設備/封裝900。設備/封裝900可以是例如本文所描述的積體電路、晶粒、整合設備、整合設備封裝、積體電路設備、設備封裝、積體電路(IC)封裝、層疊封裝設備、系統級封裝設備中的任何一者。圖9中所圖示的設備902、904、906僅是示例性的。其他電子設備亦能以設備/封裝900為其特徵,此類電子設備包括但不限於包括以下各項的一組設備(例如,電子設備):行動設備、掌上型個人通訊系統(PCS)單元、可攜式資料單元(諸如個人數位助理)、啟用全球定位系統(GPS)的設備、導航設備、機上盒、音樂播放機、視訊播放機、娛樂單元、固定位置資料單元(諸如儀錶讀數裝備)、通訊設備、智慧型電話、平板電腦、電腦、可穿戴設備、伺服器、路由器、實現在機動車輛(例如,自主車輛)中的電子設備,或者儲存或檢索資料或電腦指令的任何其他設備,或者其任何組合。
所提出的記憶體子系統的一或多個態樣的優點的非窮盡性列表如下: • 改良了向高速記憶體鏈路應用資料保護(例如ECC)的可靠性而沒有記憶體頻寬損失和成本影響; • 不需要附加的記憶體設備; • 保持低功率記憶體引腳計數和封裝相容性。
熟習此項技術者將領會,資訊和信號可使用各種不同技術和技藝中的任何一種來表示。例如,貫穿上文描述始終可能被述及的資料、指令、命令、資訊、信號、位元、符號和碼片可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子,或其任何組合來表示。
此外,熟習此項技術者將領會,結合本文所揭示的各實例描述的各種說明性邏輯區塊、模組、電路和演算法可被實現為電子硬體、電腦軟體,或兩者的組合。為清楚地說明硬體與軟體的此可互換性,各種說明性元件、方塊、模組、電路,以及方法在上文是以其功能性的形式作一般化描述的。此類功能性是被實現為硬體還是軟體取決於具體應用和施加於整體系統的設計約束。技術者可針對每種特定應用以不同方式來實現所描述的功能性,但此類實現決策不應被解讀為致使脫離本案的範疇。
結合本文揭示的各實例描述的方法、序列及/或演算法可直接在硬體中、在由處理器執行的軟體模組中,或在該兩者的組合中體現。軟體模組可常駐在RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暫存器、硬碟、可移除磁碟、CD-ROM或者本領域中所知的任何其他形式的儲存媒體中。示例性儲存媒體與處理器耦合以使得該處理器能從/向該儲存媒體讀寫資訊。在替換方案中,儲存媒體可以被整合到處理器。
因此,一個態樣可包括實施上述設備中的任何一者的電腦可讀取媒體。因此,所揭示的標的的範疇不限於所說明的實例且任何用於執行文字所描述的功能性的手段均被包括。
儘管上述揭示展示了說明性實例,但是應當注意,在其中可作出各種變更和修改而不會脫離如所附請求項定義的所揭示的標的的範疇。根據本文中所描述的實例的方法請求項的功能、程序及/或動作不必按任何特定次序來執行。此外,儘管所揭示的標的的要素可能是以單數來描述或主張權利的,但是複數亦是已料想了的,除非顯式地聲明了限定於單數。
100‧‧‧記憶體子系統
110‧‧‧主機晶片上系統(SOC)
120‧‧‧記憶體控制器
125‧‧‧ECC編碼器/解碼器
130‧‧‧PHY區塊
140‧‧‧記憶體陣列
150‧‧‧記憶體設備
260‧‧‧I/O區塊
270‧‧‧記憶體組
290‧‧‧鏈路
400‧‧‧記憶體子系統
410‧‧‧主機
420‧‧‧記憶體控制器
430‧‧‧主機側介面
432‧‧‧主機側編碼器
434‧‧‧主機側解碼器
450‧‧‧記憶體設備
460‧‧‧記憶體側介面
462‧‧‧記憶體側編碼器
464‧‧‧記憶體側解碼器
470‧‧‧記憶體組
490‧‧‧鏈路
700‧‧‧方法
710‧‧‧方塊
720‧‧‧方塊
730‧‧‧方塊
740‧‧‧方塊
750‧‧‧方塊
760‧‧‧方塊
770‧‧‧方塊
780‧‧‧方塊
800‧‧‧方法
810‧‧‧方塊
820‧‧‧方塊
830‧‧‧方塊
840‧‧‧方塊
850‧‧‧方塊
860‧‧‧方塊
870‧‧‧方塊
880‧‧‧方塊
890‧‧‧方塊
900‧‧‧設備/封裝
902‧‧‧行動電話設備
904‧‧‧膝上型電腦設備
906‧‧‧終端設備
110‧‧‧主機晶片上系統(SOC)
120‧‧‧記憶體控制器
125‧‧‧ECC編碼器/解碼器
130‧‧‧PHY區塊
140‧‧‧記憶體陣列
150‧‧‧記憶體設備
260‧‧‧I/O區塊
270‧‧‧記憶體組
290‧‧‧鏈路
400‧‧‧記憶體子系統
410‧‧‧主機
420‧‧‧記憶體控制器
430‧‧‧主機側介面
432‧‧‧主機側編碼器
434‧‧‧主機側解碼器
450‧‧‧記憶體設備
460‧‧‧記憶體側介面
462‧‧‧記憶體側編碼器
464‧‧‧記憶體側解碼器
470‧‧‧記憶體組
490‧‧‧鏈路
700‧‧‧方法
710‧‧‧方塊
720‧‧‧方塊
730‧‧‧方塊
740‧‧‧方塊
750‧‧‧方塊
760‧‧‧方塊
770‧‧‧方塊
780‧‧‧方塊
800‧‧‧方法
810‧‧‧方塊
820‧‧‧方塊
830‧‧‧方塊
840‧‧‧方塊
850‧‧‧方塊
860‧‧‧方塊
870‧‧‧方塊
880‧‧‧方塊
890‧‧‧方塊
900‧‧‧設備/封裝
902‧‧‧行動電話設備
904‧‧‧膝上型電腦設備
906‧‧‧終端設備
提供附圖以幫助對所揭示的標的的一或多個態樣的實例進行描述,並且提供該等附圖僅僅是為了圖示各實例而非對其進行限制:
圖1圖示了具有用於糾錯碼處理的附加記憶體設備的習知記憶體子系統的圖;
圖2圖示了具有在主機與記憶體設備之間交換的信號的習知記憶體子系統的圖;
圖3A圖示了在習知記憶體子系統中的寫操作的時序圖;
圖3B圖示了在習知記憶體子系統中的讀操作的時序圖;
圖4圖示了具有在主機與記憶體設備之間交換的信號的示例性記憶體子系統的圖;
圖5A圖示了在示例性記憶體子系統中的寫操作的時序圖;
圖5B圖示了在示例性記憶體子系統中的讀操作的時序圖;
圖6A和圖6B圖示了資料和對應的保護碼的實例;
圖7圖示了用於執行寫操作的示例性方法的流程圖;
圖8圖示了用於執行讀操作的示例性方法的流程圖;及
圖9圖示了其中整合有記憶體子系統的設備的實例。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
400‧‧‧記憶體子系統
410‧‧‧主機
420‧‧‧記憶體控制器
430‧‧‧主機側介面
432‧‧‧主機側編碼器
434‧‧‧主機側解碼器
450‧‧‧記憶體設備
460‧‧‧記憶體側介面
462‧‧‧記憶體側編碼器
464‧‧‧記憶體側解碼器
470‧‧‧記憶體組
490‧‧‧鏈路
Claims (30)
- 一種記憶體設備,包括: 一記憶體組;一記憶體側介面,其被配置成經由一鏈路從一主機接收一寫命令,經由該鏈路從該主機接收寫資料和一防寫碼,回應於該寫命令,將該寫資料儲存到該記憶體組,經由該鏈路從該主機接收一讀命令,回應於該讀命令,從該記憶體組檢索讀資料,以及經由該鏈路向該主機發送該讀資料和一讀保護碼;一記憶體側解碼器,其被配置成:基於該防寫碼來偵測該寫資料是否具有一錯誤;及一記憶體側編碼器,其被配置成:基於從該記憶體組檢索的該讀資料來產生該讀保護碼,其中該鏈路包括複數個資料(DQ)線、用於遮罩寫操作中的一資料遮罩(DM)線,以及用於由該記憶體設備在讀操作中提供定時的一讀選通時鐘線,以及其中該記憶體側介面被配置成經由該複數個DQ線接收該寫資料並發送該讀資料,經由該讀選通時鐘線接收該防寫碼,以及經由該DM線發送該讀保護碼。
- 如請求項1之記憶體設備,其中該防寫碼及/或該讀保護碼包括一同位碼。
- 如請求項1之記憶體設備,其中該記憶體側解碼器被配置成:當在該寫資料中偵測到該錯誤時糾正該寫資料,以使得該記憶體側介面將經糾正的該寫資料儲存到該記憶體組。
- 如請求項1之記憶體設備, 其中該記憶體側介面被配置成:經由該DM線從該主機接收DM資料,以及其中該記憶體側解碼器被配置成:基於該防寫碼來偵測該寫資料及/或該DM資料是否具有該錯誤。
- 如請求項1之記憶體設備,其中該記憶體側編碼器被配置成:基於被消零的一DM遮罩以及該讀資料來產生該讀保護碼。
- 如請求項1之記憶體設備,其中該記憶體側介面被配置成:發送該讀資料和該讀保護碼,以使得該讀資料的傳遞的一結束與該讀保護碼的傳遞的一結束重合。
- 如請求項1之記憶體設備,其中該防寫碼和該讀保護碼中的一者或兩者是糾錯碼(ECC)。
- 如請求項1之記憶體設備,其中該防寫碼未被儲存在該記憶體設備中。
- 如請求項1之記憶體設備,其中該記憶體設備被納入選自包括以下各項的一群組的一設備中:一音樂播放機、一視訊播放機、一娛樂單元、一導航設備、一通訊設備、一行動設備、一行動電話、一智慧型電話、一個人數位助理、一固定位置終端、一平板電腦、一電腦、一可穿戴設備、一膝上型電腦、一伺服器,以及一機動車輛中的一設備。
- 一種主機,包括: 一記憶體控制器,其被配置成:發出讀命令和寫命令;一主機側介面,其被配置成經由一鏈路從該記憶體控制器向一記憶體設備發送該寫命令,經由該鏈路向該記憶體設備發送寫資料和一防寫碼,經由該鏈路從該記憶體控制器向該記憶體設備發送該讀命令,在發送該讀命令之後,經由該鏈路從該記憶體設備接收讀資料和一讀保護碼,以及將該讀資料提供給該記憶體控制器;一主機側編碼器,其被配置成:基於該寫資料來產生該防寫碼;及一主機側解碼器,其被配置成:基於該讀保護碼來偵測該讀資料是否具有一錯誤,其中該鏈路包括複數個資料(DQ)線、用於遮罩寫操作中的一資料遮罩(DM)線,以及用於由該記憶體設備在讀操作中提供定時的一讀選通時鐘線,以及其中該主機側介面被配置成:經由該複數個DQ線發送該寫資料並接收該讀資料,經由該讀選通時鐘線發送該防寫碼,以及經由該DM線接收該讀保護碼。
- 如請求項10之主機,其中該防寫碼及/或該讀保護碼包括一同位碼。
- 如請求項10之主機,其中該主機側解碼器被配置成:當在該讀資料中偵測到該錯誤時糾正該讀資料,以使得該主機側介面將經糾正的該讀資料提供給該記憶體控制器。
- 如請求項10之主機, 其中該主機側介面被配置成:經由該DM線向該記憶體設備發送DM資料,以及其中該主機側編碼器被配置成:基於該寫資料和該DM資料來產生該防寫碼。
- 如請求項10之主機,其中經由該DM線接收到的該讀保護碼是基於該讀資料和被消零的一DM遮罩來產生的一碼。
- 如請求項10之主機,其中該主機側介面被配置成:發送該寫資料和該防寫碼,以使得該寫資料的傳遞的一結束與該防寫碼的傳遞的一結束重合。
- 如請求項10之主機,其中該防寫碼和該讀保護碼中的一者或兩者是糾錯碼(ECC)。
- 如請求項10之主機,其中該主機被納入選自包括以下各項的一群組的一設備中:一音樂播放機、一視訊播放機、一娛樂單元、一導航設備、一通訊設備、一行動設備、一行動電話、一智慧型電話、一個人數位助理、一固定位置終端、一平板電腦、一電腦、一可穿戴設備、一膝上型電腦、一伺服器,以及一機動車輛中的一設備。
- 一種方法,包括以下步驟: 由一主機經由一鏈路向一記憶體設備發送一寫命令;由該主機基於寫資料來產生一防寫碼;由該主機經由該鏈路向該記憶體設備發送該寫資料和該防寫碼;由該記憶體設備基於該防寫碼來偵測該寫資料是否具有一錯誤;及回應於該寫命令,由該記憶體設備將該寫資料儲存到該記憶體設備的一記憶體組,其中該鏈路包括複數個資料(DQ)線、用於遮罩寫操作中的一資料遮罩(DM)線,以及用於由該記憶體設備在讀操作中提供定時的一讀選通時鐘線,以及其中發送該寫資料和該防寫碼之步驟包括以下步驟:經由該複數個DQ線向該記憶體設備發送該寫資料,以及經由該讀選通時鐘線向該記憶體設備發送該防寫碼。
- 如請求項18之方法,進一步包括以下步驟:當在該寫資料中偵測到該錯誤時,由該記憶體設備糾正該寫資料,以使得經糾正的該寫資料被儲存到該記憶體組。
- 如請求項18之方法,進一步包括以下步驟:由該主機經由該DM線發送DM資料, 其中產生該防寫碼之步驟包括以下步驟:基於該寫資料和該DM資料來產生該防寫碼,以及其中偵測該錯誤之步驟包括以下步驟:基於該防寫碼來偵測該寫資料及/或該DM線是否具有該錯誤。
- 如請求項18之方法,其中發送該寫資料和該防寫碼之步驟包括以下步驟:發送該寫資料和該防寫以使得該寫資料的傳遞的一結束與該防寫碼的傳遞的一結束重合。
- 一種方法,包括以下步驟: 由一主機經由一鏈路向一記憶體設備發送一讀命令;回應於該讀命令,由該記憶體設備從該記憶體設備的一記憶體組檢索讀資料;由該記憶體設備基於該讀資料來產生一讀保護碼;由該記憶體設備經由該鏈路向該主機發送該讀資料和該讀保護碼;及由該主機基於該讀保護碼來偵測該讀資料是否具有一錯誤,其中該鏈路包括複數個資料(DQ)線、用於遮罩寫操作中的一資料遮罩(DM)線,以及用於由該記憶體設備在讀操作中提供定時的一讀選通時鐘線,以及其中該發送之步驟包括以下步驟:經由該複數個DQ線向該主機發送該讀資料,以及經由該DM線向該主機發送該讀保護碼。
- 如請求項22之方法,進一步包括以下步驟:當在該讀資料中偵測到該錯誤時,由該主機糾正該讀資料。
- 如請求項22之方法,其中產生該讀保護碼之步驟包括以下步驟:基於該讀資料和被消零的一DM遮罩來產生該讀保護碼。
- 如請求項22之方法,其中發送該讀資料和該讀保護碼之步驟包括以下步驟:發送該讀資料和該讀保護碼以使得該讀資料的傳遞的一結束與該讀保護碼的傳遞的一結束重合。
- 一種裝置,包括: 被配置成經由一鏈路彼此通訊的一主機和一記憶體設備,其中該鏈路包括複數個資料(DQ)線、用於遮罩寫操作中的一資料遮罩(DM)線,以及用於由該記憶體設備在讀操作中提供定時的一讀選通時鐘線,其中該記憶體設備被配置成經由該鏈路從該主機接收一讀命令;回應於該讀命令,從該記憶體設備的一記憶體組檢索讀資料,基於該讀資料來產生一讀保護碼,該讀保護碼是用於保護該讀資料的一同位碼,經由該複數個DQ線向該主機發送該讀資料,以及經由該DM線向該主機發送該讀保護碼,以及其中該主機被配置成經由該鏈路向該記憶體設備發送該讀命令,經由該複數個DQ線從該記憶體設備接收該讀資料,經由該DM線從該記憶體設備接收該讀保護碼,以及基於該讀保護碼來偵測該讀資料是否具有一錯誤。
- 如請求項26之裝置, 其中該主機被配置成經由該鏈路向該記憶體設備發送一寫命令,基於寫資料來產生一防寫碼,該防寫碼是用於保護該寫資料的一同位碼,經由該複數個DQ線向該記憶體設備發送該寫資料,以及經由該讀選通時鐘線向該記憶體設備發送該防寫碼,以及其中該記憶體設備被配置成經由該鏈路從該主機接收該寫命令,經由該複數個DQ線從該主機接收該寫資料,經由該讀選通時鐘線從該主機接收該防寫碼,以及基於該防寫碼來偵測該寫資料是否具有一錯誤。
- 如請求項26之裝置,其中包括以下各項中的一者:一音樂播放機、一視訊播放機、一娛樂單元、一導航設備、一通訊設備、一行動設備、一行動電話、一智慧型電話、一個人數位助理、一固定位置終端、一平板電腦、一電腦、一可穿戴設備、一膝上型電腦、一伺服器,以及一機動車輛中的一設備。
- 一種裝置,包括: 被配置成經由一鏈路彼此通訊的一主機和一記憶體設備,其中該鏈路包括複數個資料(DQ)線、用於遮罩寫操作中的一資料遮罩(DM)線,以及用於由該記憶體設備在讀操作中提供定時的一讀選通時鐘線,其中該主機被配置成經由該鏈路向該記憶體設備發送一寫命令,基於寫資料來產生一防寫碼,該防寫碼是用於保護該寫資料的一同位碼,經由該複數個DQ線向該記憶體設備發送該寫資料,以及經由該讀選通時鐘線向該記憶體設備發送該防寫碼,以及其中該記憶體設備被配置成經由該鏈路從該主機接收該寫命令,經由該複數個DQ線從該主機接收該寫資料,經由該讀選通時鐘線從該主機接收該防寫碼,以及基於該防寫碼來偵測該寫資料是否具有一錯誤。
- 如請求項29之裝置,其中包括以下各項中的一者:一音樂播放機、一視訊播放機、一娛樂單元、一導航設備、一通訊設備、一行動設備、一行動電話、一智慧型電話、一個人數位助理、一固定位置終端、一平板電腦、一電腦、一可穿戴設備、一膝上型電腦、一伺服器,以及一機動車輛中的一設備。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662380104P | 2016-08-26 | 2016-08-26 | |
US62/380,104 | 2016-08-26 | ||
US15/643,455 US10331517B2 (en) | 2016-08-26 | 2017-07-06 | Link error correction in memory system |
US15/643,455 | 2017-07-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201810056A true TW201810056A (zh) | 2018-03-16 |
TWI684102B TWI684102B (zh) | 2020-02-01 |
Family
ID=61242685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106125466A TWI684102B (zh) | 2016-08-26 | 2017-07-28 | 記憶體系統中的鏈路糾錯 |
Country Status (20)
Country | Link |
---|---|
US (1) | US10331517B2 (zh) |
EP (1) | EP3479241B1 (zh) |
JP (1) | JP6630869B2 (zh) |
KR (1) | KR102045712B1 (zh) |
CN (1) | CN109643257B (zh) |
AU (2) | AU2017315303B2 (zh) |
BR (1) | BR112019003473A2 (zh) |
CA (1) | CA3032278C (zh) |
CO (1) | CO2019001630A2 (zh) |
ES (1) | ES2829331T3 (zh) |
IL (1) | IL264303B (zh) |
MX (1) | MX2019002194A (zh) |
MY (1) | MY201067A (zh) |
PH (1) | PH12019500160A1 (zh) |
RU (1) | RU2710977C1 (zh) |
SA (1) | SA519401035B1 (zh) |
SG (1) | SG11201900375YA (zh) |
TW (1) | TWI684102B (zh) |
WO (1) | WO2018038813A1 (zh) |
ZA (1) | ZA201901194B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107039086B (zh) * | 2017-05-17 | 2024-08-30 | 西安紫光国芯半导体有限公司 | 具有兼容不同数据长度的纠错功能的存储器和纠错方法 |
US10387242B2 (en) | 2017-08-21 | 2019-08-20 | Qualcomm Incorporated | Dynamic link error protection in memory systems |
US10725912B2 (en) * | 2018-12-19 | 2020-07-28 | Micron Technology, Inc. | Power loss protection in memory sub-systems |
US11537464B2 (en) * | 2019-06-14 | 2022-12-27 | Micron Technology, Inc. | Host-based error correction |
US11372717B2 (en) * | 2019-08-30 | 2022-06-28 | Qualcomm Incorporated | Memory with system ECC |
CN110750406B (zh) * | 2019-10-29 | 2023-10-31 | 湖南国科微电子股份有限公司 | 一种检测方法、装置和soc芯片 |
US11493949B2 (en) * | 2020-03-27 | 2022-11-08 | Qualcomm Incorporated | Clocking scheme to receive data |
US11728003B2 (en) | 2020-05-12 | 2023-08-15 | Qualcomm Incorporated | System and memory with configurable error-correction code (ECC) data protection and related methods |
US11157359B2 (en) * | 2020-09-24 | 2021-10-26 | Intel Corporation | Techniques to implement a hybrid error correction code scheme |
KR20230021409A (ko) | 2021-08-05 | 2023-02-14 | 에스케이하이닉스 주식회사 | 트레이닝동작을 수행하기 위한 반도체시스템 |
US11687273B2 (en) * | 2021-09-29 | 2023-06-27 | Micron Technology, Inc. | Memory controller for managing data and error information |
CN114006819A (zh) * | 2021-11-03 | 2022-02-01 | 北京天融信网络安全技术有限公司 | 一种检测策略生成及装置、数据传输方法及装置 |
US12073901B2 (en) * | 2021-11-30 | 2024-08-27 | Qualcomm Incorporated | Hybrid memory system with increased bandwidth |
US20240126438A1 (en) * | 2022-10-18 | 2024-04-18 | Qualcomm Incorporated | Metadata registers for a memory device |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2154897C2 (ru) * | 1995-04-03 | 2000-08-20 | Матсусита Электрик Индастриал Ко., Лтд. | Система передачи информации, устройство записи и воспроизведения информации, а также носитель записи, использующие формат представления данных на основе кода с исправлением ошибок |
US7032056B2 (en) * | 2003-05-08 | 2006-04-18 | International Business Machines Corporation | Encoding of message onto strobe signals |
KR100978268B1 (ko) * | 2004-07-15 | 2010-08-26 | 엘에스산전 주식회사 | 분산 제어 시스템의 고속 이중화 데이터 복사 보드 |
KR100755371B1 (ko) | 2005-05-03 | 2007-09-04 | 삼성전자주식회사 | 반도체 메모리 장치 및 이 장치의 데이터 스트로우브 신호발생방법 |
CN101060015A (zh) * | 2007-05-23 | 2007-10-24 | 北京芯技佳易微电子科技有限公司 | 一种多比特闪存及其错误检测和纠正的方法 |
EP2223301A4 (en) | 2007-12-21 | 2012-04-04 | Mosaid Technologies Inc | NON-VOLATILE SEMICONDUCTOR ARRANGEMENT WITH POWER SAVING FEATURE |
US8255783B2 (en) | 2008-04-23 | 2012-08-28 | International Business Machines Corporation | Apparatus, system and method for providing error protection for data-masking bits |
US8341498B2 (en) * | 2010-10-01 | 2012-12-25 | Sandisk Technologies Inc. | System and method of data encoding |
US8707133B2 (en) * | 2011-12-05 | 2014-04-22 | Lsi Corporation | Method and apparatus to reduce a quantity of error detection/correction bits in memory coupled to a data-protected processor port |
CN102546755A (zh) * | 2011-12-12 | 2012-07-04 | 华中科技大学 | 云存储系统的数据存储方法 |
US8990670B2 (en) * | 2012-09-28 | 2015-03-24 | Intel Corporation | Endurance aware error-correcting code (ECC) protection for non-volatile memories |
US9064606B2 (en) | 2012-12-20 | 2015-06-23 | Advanced Micro Devices, Inc. | Memory interface supporting both ECC and per-byte data masking |
US9164834B2 (en) * | 2013-05-06 | 2015-10-20 | Samsung Electronics Co., Ltd. | Semiconductor memory devices, memory systems including the same and method of writing data in the same |
CN105468292B (zh) * | 2014-09-05 | 2019-04-23 | 群联电子股份有限公司 | 数据存取方法、存储器储存装置及存储器控制电路单元 |
US9558066B2 (en) * | 2014-09-26 | 2017-01-31 | Intel Corporation | Exchanging ECC metadata between memory and host system |
KR102438552B1 (ko) * | 2015-02-04 | 2022-09-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작방법 |
US9965352B2 (en) * | 2015-11-20 | 2018-05-08 | Qualcomm Incorporated | Separate link and array error correction in a memory system |
US20180059976A1 (en) * | 2016-08-26 | 2018-03-01 | Sandisk Technologies Llc | Storage System with Integrated Components and Method for Use Therewith |
-
2017
- 2017-07-06 US US15/643,455 patent/US10331517B2/en active Active
- 2017-07-07 ES ES17740597T patent/ES2829331T3/es active Active
- 2017-07-07 KR KR1020197005234A patent/KR102045712B1/ko active IP Right Grant
- 2017-07-07 SG SG11201900375YA patent/SG11201900375YA/en unknown
- 2017-07-07 CA CA3032278A patent/CA3032278C/en active Active
- 2017-07-07 AU AU2017315303A patent/AU2017315303B2/en active Active
- 2017-07-07 JP JP2019510446A patent/JP6630869B2/ja active Active
- 2017-07-07 MX MX2019002194A patent/MX2019002194A/es unknown
- 2017-07-07 CN CN201780051324.XA patent/CN109643257B/zh active Active
- 2017-07-07 BR BR112019003473-0A patent/BR112019003473A2/pt unknown
- 2017-07-07 MY MYPI2019000091A patent/MY201067A/en unknown
- 2017-07-07 RU RU2019104878A patent/RU2710977C1/ru active
- 2017-07-07 EP EP17740597.4A patent/EP3479241B1/en active Active
- 2017-07-07 WO PCT/US2017/041129 patent/WO2018038813A1/en active Search and Examination
- 2017-07-28 TW TW106125466A patent/TWI684102B/zh active
-
2019
- 2019-01-17 IL IL264303A patent/IL264303B/en active IP Right Grant
- 2019-01-22 PH PH12019500160A patent/PH12019500160A1/en unknown
- 2019-02-05 SA SA519401035A patent/SA519401035B1/ar unknown
- 2019-02-22 CO CONC2019/0001630A patent/CO2019001630A2/es unknown
- 2019-02-25 ZA ZA2019/01194A patent/ZA201901194B/en unknown
- 2019-08-30 AU AU2019222960A patent/AU2019222960B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
SG11201900375YA (en) | 2019-03-28 |
CN109643257B (zh) | 2020-07-03 |
AU2017315303B2 (en) | 2020-06-18 |
US20180060171A1 (en) | 2018-03-01 |
ZA201901194B (en) | 2020-12-23 |
WO2018038813A1 (en) | 2018-03-01 |
SA519401035B1 (ar) | 2021-11-06 |
PH12019500160A1 (en) | 2019-11-11 |
CO2019001630A2 (es) | 2019-05-10 |
AU2017315303A1 (en) | 2019-02-07 |
AU2019222960A1 (en) | 2019-09-26 |
MY201067A (en) | 2024-02-01 |
MX2019002194A (es) | 2019-06-24 |
TWI684102B (zh) | 2020-02-01 |
CA3032278A1 (en) | 2018-03-01 |
CN109643257A (zh) | 2019-04-16 |
EP3479241A1 (en) | 2019-05-08 |
CA3032278C (en) | 2021-01-12 |
IL264303B (en) | 2019-08-29 |
KR20190043540A (ko) | 2019-04-26 |
NZ750205A (en) | 2020-10-30 |
EP3479241B1 (en) | 2020-08-19 |
JP2019525356A (ja) | 2019-09-05 |
KR102045712B1 (ko) | 2019-11-15 |
US10331517B2 (en) | 2019-06-25 |
ES2829331T3 (es) | 2021-05-31 |
JP6630869B2 (ja) | 2020-01-15 |
RU2710977C1 (ru) | 2020-01-14 |
IL264303A (en) | 2019-02-28 |
AU2019222960B2 (en) | 2020-10-15 |
BR112019003473A2 (pt) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI684102B (zh) | 記憶體系統中的鏈路糾錯 | |
CN108351820B (zh) | 在跨存储器链路传送纠正数据时保护ecc位置 | |
EP3377974B1 (en) | Separate link and array error correction in a memory system | |
US9015553B2 (en) | Data integrity in memory controllers and methods | |
US8615702B2 (en) | Method and apparatus for correcting errors in memory device | |
US20080235485A1 (en) | ECC implementation in non-ECC components | |
CN110377453A (zh) | 半导体存储器装置和包括半导体存储器装置的存储器系统 | |
US20150019934A1 (en) | Data storage device, operating method thereof, and data processing system including the same | |
CN106648954A (zh) | 包括片上错误校正码电路的存储器件和系统 | |
US10387242B2 (en) | Dynamic link error protection in memory systems | |
US11907064B2 (en) | Memory controller and memory system including the same | |
US11748025B2 (en) | Nonvolatile memory device, data storage device including the same and operating method thereof | |
KR101599834B1 (ko) | 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템 | |
NZ750205B2 (en) | Link error correction in memory system | |
KR102453866B1 (ko) | 트랜잭션 메타 데이터 | |
KR102532528B1 (ko) | 메모리 장치 및 이의 동작 방법 |