TWI658464B - 記憶體裝置以及記憶體模組 - Google Patents

記憶體裝置以及記憶體模組 Download PDF

Info

Publication number
TWI658464B
TWI658464B TW104126772A TW104126772A TWI658464B TW I658464 B TWI658464 B TW I658464B TW 104126772 A TW104126772 A TW 104126772A TW 104126772 A TW104126772 A TW 104126772A TW I658464 B TWI658464 B TW I658464B
Authority
TW
Taiwan
Prior art keywords
memory
error
data
interface
information
Prior art date
Application number
TW104126772A
Other languages
English (en)
Other versions
TW201611020A (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
Priority claimed from US14/594,049 external-priority patent/US20160055058A1/en
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW201611020A publication Critical patent/TW201611020A/zh
Application granted granted Critical
Publication of TWI658464B publication Critical patent/TWI658464B/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/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
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Debugging And Monitoring (AREA)

Abstract

實施例包括一種記憶體裝置,所述記憶體裝置包括:記 憶體,用以儲存資料;資料介面;錯誤介面;以及控制器,耦接至所述資料介面、所述錯誤介面、及所述記憶體。所述控制器用以經由所述資料介面傳送儲存於所述記憶體中的資料;且所述控制器用以經由所述錯誤介面傳送因應於對自記憶體讀取的資料中的錯誤進行修正而產生的錯誤資訊。

Description

記憶體裝置以及記憶體模組
本申請案主張基於2014年8月19日提出申請的美國臨時專利申請案第62/039,396號、於2014年9月29日提出申請的美國臨時專利申請案第62/057,199號、及於2014年11月4日提出申請的美國臨時專利申請案第62/075,231號的權利,且是於2015年1月9日提出申請的美國專利申請案第14/594,049號的部分接續申請案,所述每一專利申請案的內容出於所有目的而全文併入本案供參考。
本發明是有關於記憶體系統架構,且具體而言,是有關於具有錯誤修正的記憶體系統架構。
記憶體控制器可用以執行錯誤修正。舉例而言,記憶體控制器可自記憶體模組讀取72位元的資料,其中64個位元為資料、8個位元為奇偶性(parity)。記憶體控制器可執行其他錯誤修正技術。利用該些技術,可辨識及/或修正自記憶體模組讀取的資料中的某些錯誤。此外,記憶體控制器可提供與錯誤相關的資訊。包括記憶體控制器的系統可基於錯誤資訊而作出運作決策,例如撤銷記憶體頁面、使系統暫停等等。此種記憶體控制器可與處理 器相整合。舉例而言,Intel Xeon處理器可包括用以執行錯誤修正的整合式記憶體控制器。
然而,若在記憶體控制器接收到資料之前執行錯誤修正,則在記憶體控制器中可能得不到與修正相關的錯誤資訊,且因此無法將錯誤資訊提供給系統以用於作出系統管理決策。
本發明的實施例包括一種記憶體裝置,所述記憶體裝置包括:記憶體,用以儲存資料;資料介面;錯誤介面;以及控制器,耦接至所述資料介面、所述錯誤介面、及所述記憶體。所述控制器用以經由所述資料介面傳送儲存於所述記憶體中的資料;且所述控制器用以經由所述錯誤介面傳送因應於對自記憶體讀取的資料中的錯誤進行修正而產生的錯誤資訊。
另一實施例包括一種方法,所述方法包括:因應於經由資料介面接收的讀取命令,在記憶體裝置中讀取包含錯誤的資料;基於對包含所述錯誤的所述資料的讀取而記錄錯誤資訊;以及經由錯誤介面自所述記憶體裝置傳送所述錯誤資訊。
再一實施例包括一種記憶體模組,所述記憶體模組包括:資料介面;錯誤介面;多個記憶體裝置,所述記憶體裝置中的每一者耦接至所述資料介面及所述錯誤介面並包括:記憶體,用以儲存資料;控制器,耦接至所述資料介面、所述錯誤介面、及所述記憶體。所述控制器用以經由所述資料介面傳送儲存於所 述記憶體中的資料;且所述控制器用以經由所述錯誤介面傳送因應於對自記憶體讀取的資料中的錯誤進行修正而產生的錯誤資訊。
100‧‧‧系統
102‧‧‧記憶體
104‧‧‧處理器
106‧‧‧通訊路徑/第一通訊路徑
108‧‧‧通訊路徑/第二通訊路徑
110‧‧‧軟體
200‧‧‧系統
202‧‧‧記憶體
204‧‧‧處理器
206‧‧‧通訊路徑
208‧‧‧通訊路徑/第二通訊路徑
210‧‧‧軟體
212‧‧‧匯流排/第一匯流排
214‧‧‧控制器
216‧‧‧匯流排/第二匯流排
254‧‧‧非揮發性記憶體
266‧‧‧其他裝置
268‧‧‧非記憶體裝置
300‧‧‧系統
302‧‧‧記憶體
304‧‧‧處理器
306‧‧‧通訊路徑
308‧‧‧通訊路徑
310‧‧‧軟體
312‧‧‧匯流排
314‧‧‧基板管理控制器(BMC)
316‧‧‧匯流排
366‧‧‧其他裝置
400‧‧‧系統
402‧‧‧記憶體
404‧‧‧處理器
406‧‧‧通訊路徑
408‧‧‧通訊路徑/第二通訊路徑
410‧‧‧軟體
450‧‧‧記憶體控制器(MC)
452‧‧‧機器檢查架構(MCA)暫存器
500‧‧‧系統
502‧‧‧記憶體
504‧‧‧處理器
506‧‧‧通訊路徑/第一通訊路徑
508‧‧‧通訊路徑
510‧‧‧軟體
532‧‧‧資料線
533‧‧‧資料選通線
600‧‧‧系統
602‧‧‧記憶體
604‧‧‧處理器
606‧‧‧通訊路徑/第一通訊路徑
608‧‧‧通訊路徑/第二通訊路徑
610‧‧‧軟體
634‧‧‧第三通訊路徑
700‧‧‧系統
702‧‧‧記憶體
704‧‧‧處理器
706‧‧‧通訊路徑
708‧‧‧通訊路徑
710‧‧‧軟體
718‧‧‧模組
720‧‧‧資訊/其他資訊
722‧‧‧資訊/錯誤資訊
800‧‧‧系統
802‧‧‧記憶體
804‧‧‧處理器
806‧‧‧通訊路徑
808‧‧‧通訊路徑
810‧‧‧軟體
818‧‧‧模組
820‧‧‧資訊
822‧‧‧資訊
824‧‧‧錯誤偵測及修正(EDAC)模組
900‧‧‧系統
902‧‧‧記憶體
904‧‧‧處理器
906‧‧‧通訊路徑
908‧‧‧通訊路徑
910‧‧‧軟體
918‧‧‧模組/第一模組
920‧‧‧其他資訊
921‧‧‧其他資訊的至少一部分
922‧‧‧資訊
926‧‧‧模組/第二模組
1000‧‧‧系統
1002‧‧‧記憶體
1004‧‧‧處理器
1006‧‧‧通訊路徑
1008‧‧‧通訊路徑
1010‧‧‧軟體
1018‧‧‧錯誤修正(EC)模組
1020‧‧‧資訊
1022‧‧‧資訊/錯誤資訊
1026‧‧‧第二模組/機器檢查架構(MCA)模組
1100‧‧‧系統
1102‧‧‧記憶體
1104‧‧‧處理器
1106‧‧‧通訊路徑
1108‧‧‧通訊路徑
1110‧‧‧軟體
1118‧‧‧模組/第一模組
1120‧‧‧資訊
1122‧‧‧資訊
1128‧‧‧模組/第二模組
1130‧‧‧模組/介面模組
1200‧‧‧系統
1202‧‧‧記憶體
1204‧‧‧處理器
1206‧‧‧通訊路徑
1208‧‧‧通訊路徑/第二通訊路徑
1210‧‧‧軟體
1218‧‧‧模組/第一模組/經修正錯誤(CE)模組
1220‧‧‧資訊
1222‧‧‧資訊
1228‧‧‧模組/第二模組/(串列存在偵測/登記時鐘驅動器(SPD/RCD)模組)
1230‧‧‧模組
1300‧‧‧系統
1302‧‧‧記憶體/錯誤修正碼雙直插記憶體模組(ECC DIMM)
1304‧‧‧處理器
1308‧‧‧通訊路徑/第二通訊路徑
1310‧‧‧核心
1312‧‧‧匯流排
1314‧‧‧基板管理控制器(BMC)
1316‧‧‧匯流排
1318‧‧‧錯誤修正(EC)模組
1320‧‧‧資訊
1322‧‧‧資訊
1324‧‧‧錯誤偵測及修正(EDAC)模組
1326‧‧‧機器檢查架構(MCA)模組
1350‧‧‧記憶體控制器(MC)
1352‧‧‧機器檢查架構(MCA)暫存器
1358‧‧‧記憶體錯誤修正碼(ECC)常駐程式
1360‧‧‧其他應用程式
1364‧‧‧通訊路徑
1400‧‧‧系統
1402‧‧‧記憶體/錯誤修正碼雙直插記憶體模組(ECC DIMM)
1408‧‧‧通訊路徑
1410‧‧‧核心
1412‧‧‧匯流排
1414‧‧‧基板管理控制器(BMC)
1416‧‧‧匯流排
1418‧‧‧錯誤修正(EC)模組
1420‧‧‧資訊
1422‧‧‧資訊
1424‧‧‧錯誤偵測及修正(EDAC)模組
1425‧‧‧MCELOG模組
1426‧‧‧機器檢查架構(MCA)模組
1450‧‧‧記憶體控制器(MC)
1458‧‧‧記憶體ECC常駐程式
1460‧‧‧其他應用程式
1462‧‧‧緩衝器
1464‧‧‧通訊路徑
1500‧‧‧記憶體模組
1501‧‧‧記憶體裝置
1536‧‧‧資料介面
1538‧‧‧錯誤介面
1540‧‧‧資料
1541‧‧‧控制器
1542‧‧‧資訊
1600‧‧‧記憶體模組
1601‧‧‧記憶體裝置
1636‧‧‧資料介面
1638‧‧‧SPD/RCD介面
1640‧‧‧資料
1641‧‧‧控制器
1642‧‧‧資訊
1700‧‧‧記憶體模組
1701‧‧‧記憶體裝置
1736‧‧‧資料介面
1738‧‧‧錯誤介面
1740‧‧‧資料
1741‧‧‧控制器
1742‧‧‧資訊
1744‧‧‧不可修正錯誤(UE)介面
1800‧‧‧記憶體裝置
1801‧‧‧記憶體
1836‧‧‧資料介面
1838‧‧‧錯誤介面
1840‧‧‧資料
1841‧‧‧控制器
1842‧‧‧資訊
1900‧‧‧記憶體裝置
1901‧‧‧記憶體胞元陣列
1902‧‧‧感測放大器
1904‧‧‧寫入電路
1906‧‧‧位址
1908‧‧‧錯誤修正碼(ECC)引擎
1910‧‧‧寫入資料
1912‧‧‧資料選通訊號
1914‧‧‧錯誤資訊
1916‧‧‧錯誤資訊
1918‧‧‧錯誤修正碼(ECC)控制器
1920‧‧‧DQS修改器
1922‧‧‧輸出資料選通訊號
1924‧‧‧輸出資料
1926‧‧‧通訊
1928‧‧‧命令緩衝器
1930‧‧‧串列存在偵測(SPD)模組
1932‧‧‧緩衝器
1934‧‧‧登記時鐘驅動器(RCD)模組
2000‧‧‧記憶體模組
2001-1、2001-N‧‧‧錯誤修正碼(ECC)記憶體裝置
2036‧‧‧資料介面
2038‧‧‧錯誤介面
2040‧‧‧資料
2042‧‧‧資訊
2100、2102、2104‧‧‧步驟
2200、2202、2204、2206、2208、2210、2212、2214、2216‧‧‧步驟
2300、2302、2304、2306、2308、2310、2312、2314、2316‧‧‧步驟
2400、2402、2404‧‧‧步驟
2406、2408、2410‧‧‧步驟
2500、2502、2504、2512、2514‧‧‧步驟
2600、2602、2606、2608‧‧‧步驟
2700‧‧‧系統
2702‧‧‧記憶體
2704‧‧‧處理器
2708‧‧‧第三通訊路徑
2710‧‧‧軟體
2714‧‧‧控制器
2768‧‧‧錯誤修正電路
2770‧‧‧第二通訊路徑
2772‧‧‧通訊路徑
2800‧‧‧伺服器/伺服器系統
2802‧‧‧記憶體
2804‧‧‧處理器
2806‧‧‧通訊路徑
2812‧‧‧匯流排
2814‧‧‧基板管理控制器(BMC)
2816‧‧‧匯流排
2900‧‧‧伺服器系統
2902-1、2902-2、2902-N‧‧‧伺服器
2904‧‧‧管理器
3000‧‧‧資料中心
3002-1、3002-2、3002-N‧‧‧伺服器系統
3004‧‧‧網路
3006-1、3006-2、3006-M‧‧‧節點
圖1是根據實施例的具有記憶體系統架構的系統的示意圖。
圖2是根據實施例的具有記憶體系統架構且包括控制器的系統的示意圖。
圖3是根據實施例的具有記憶體系統架構且包括基板管理控制器的系統的示意圖。
圖4是根據實施例的具有記憶體系統架構但無基於處理器的錯誤修正的系統的示意圖。
圖5是根據實施例的具有記憶體系統架構且具有被損壞(poisoned)的資料選通(data strobe)訊號的系統的示意圖。
圖6是根據實施例的具有記憶體系統架構且具有單獨的不可修正錯誤訊號的系統的示意圖。
圖7是根據實施例的具有記憶體系統架構且具有軟體模組的系統的示意圖。
圖8是根據實施例的具有記憶體系統架構且具有錯誤偵測及修正模組的系統的示意圖。
圖9是根據實施例的具有記憶體系統架構且具有聚合模組的 系統的示意圖。
圖10是根據實施例的具有記憶體系統架構且具有錯誤修正模組的系統的示意圖,所述錯誤修正模組用於聚合來自記憶體控制架構模組的資訊。
圖11是根據實施例的具有記憶體系統架構且具有多個模組的系統的示意圖,所述多個模組共用介面。
圖12是根據實施例的具有記憶體系統架構且具有可修正錯誤模組及串列存在偵測/登記時鐘驅動器模組的系統的示意圖,所述可修正錯誤模組及串列存在偵測/登記時鐘驅動器模組共用介面。
圖13是根據實施例的具有記憶體系統架構且帶有DRAM內錯誤修正的系統的示意圖。
圖14A至圖14D是根據某些實施例的具有記憶體系統架構且帶有模組內錯誤修正的系統的示意圖。
圖15是根據實施例的記憶體模組的示意圖。
圖16是根據實施例的具有SPD或RCD介面的記憶體模組的示意圖。
圖17是根據實施例的具有單獨的不可修正錯誤介面的記憶體模組的示意圖。
圖18是根據實施例的記憶體裝置的示意圖。
圖19是根據另一實施例的記憶體裝置的示意圖。
圖20是根據實施例的包括記憶體裝置的記憶體模組的示意圖。
圖21是根據實施例的用於傳達錯誤資訊的技術的流程圖。
圖22是根據實施例的用於處置錯誤的技術的流程圖。
圖23是根據另一實施例的用於處置錯誤的技術的流程圖。
圖24A是根據另一實施例的用於傳達錯誤資訊的技術的流程圖。
圖24B是根據另一實施例的用於傳達錯誤資訊的技術的流程圖。
圖25是根據另一實施例的用於傳達錯誤資訊的技術的流程圖。
圖26是根據另一實施例的用於傳達錯誤資訊的技術的流程圖。
圖27是根據實施例的具有記憶體系統架構的系統的示意圖。
圖28是根據實施例的伺服器的示意圖。
圖29是根據實施例的伺服器系統的示意圖。
圖30是根據實施例的資料中心的示意圖。
本發明的實施例是有關於記憶體系統架構。提供以下說明是為了使此項技術中的通常知識者能夠製作及利用所述實施例,且以下說明是以專利申請案及其要求為背景提供。對本文所述實施例以及一般原理及特徵的各種潤飾將會顯而易見。所述實施例主要以在特定實施方案中提供的特定方法及系統的形式加以 闡述。
然而,所述方法及系統亦將有效地用於其他實施方案中。例如“一實施例”、“一個實施例”及“另一實施例”等片語可指相同的或不同的實施例以及指多個實施例。將針對具有某些組件的系統及/或裝置來闡述實施例。然而,所述系統及/或裝置可包括較所示者更多或更少的組件,且可在不背離本揭露內容的範圍的條件下對所述組件的排列及類型作出各種修改。所述實施例亦將在具有某些步驟的特定方法的上下文中進行闡述。然而,所述方法及系統亦根據具有不同步驟及/或額外步驟的其他方法以及具有與所述實施例不一致的不同次序的步驟的其他方法來運作。因此,各實施例並非旨在僅限於所示的特定實施例,而是將被賦予與本文所述原理及特徵一致的最寬廣範圍。
所述實施例是在具有某些組件的特定記憶體系統架構的上下文中進行闡述。此項技術中的通常知識者將易知,各實施例亦相容於具有其他組件及/或額外組件及/或其他特徵的記憶體系統架構的使用。然而,此項技術中的通常知識者將易知,所述方法及系統亦相容於其他結構。各方法及系統亦可在單一元件的上下文中進行闡述。然而,此項技術中的通常知識者將易知,所述方法及系統相容於具有多個元件的記憶體系統架構的使用。
熟習此項技術者將理解,一般而言,本文所用的用語、且尤其是在隨附申請專利範圍(例如隨附申請專利範圍的主體)中所用的用語一般欲作為“開放式”用語(例如,用語“包括”應被解 釋為“包括但不限於”,用語“具有”應被解釋為“至少具有”,用語“包含”應被解釋為“包含但不限於”等)。熟習此項技術者亦應理解,若意圖在所介紹請求項的敍述中使用具體數字,則將在所述請求項中明確地述及此種意圖,且若不存在此種敍述,則不存在此種意圖。舉例而言,為有助於理解,下文隨附申請專利範圍可能包含使用介紹性片語“至少一個”及“一或多個”來介紹請求項敍述。然而,使用該些片語不應被視為隱含著以不定冠詞“a”或“an”來介紹請求項敍述會將包含此所介紹請求項敍述的任何特定請求項限制至包含僅一個此種敍述的實例,甚至當同一請求項包含介紹性片語“一或多個”或“至少一個”以及例如“a”或“an”等不定冠詞時亦如此(例如,“a”及/或“an”應被解釋為意指“至少一個”或“一或多個”);此同樣適用於使用定冠詞來介紹請求項敍述的情形。此外,在其中使用類似於“A、B、或C等中的至少一者”的約定的情形中,一般而言此種構造旨在具有熟習此項技術者將理解的所述約定的含義(例如,“具有A、B、或C中的至少一者的系統”將包括但不限於僅具有A的系統、僅具有B的系統、僅具有C的系統、具有A及B的系統、具有A及C的系統、具有B及C的系統、及/或具有A、B、及C的系統等)。熟習此項技術者亦應理解,無論在說明書、申請專利範圍、還是圖式中,實際上任何表示兩個或更多個供選項的轉折詞及/或片語皆應被理解為涵蓋包括所述項中的一者、所述項中的任一者、或全部兩個所述項的可能性。舉例而言,片語“A或B”將被理解為包括“A”或包括“B”或包括“A及B” 的可能性。
圖1是根據實施例的具有記憶體系統架構的系統的示意圖。系統100包括耦接至處理器104的記憶體102。記憶體102用以儲存資料。當自記憶體102讀取資料時,記憶體102用以修正資料中的錯誤(若有)。舉例而言,記憶體102可用以修正單位元錯誤。記憶體102亦可用以偵測雙位元錯誤。儘管使用特定數目個所修正錯誤作為實例,然而記憶體102可用以修正任意數目個錯誤或偵測任意數目個錯誤。而且,儘管一或多種錯誤修正技術可達成單位元錯誤修正及/或雙位元錯誤修正,然而記憶體102可用以執行任何可對至少一個錯誤進行修正的錯誤修正技術。
記憶體102可包括任何用以儲存資料的裝置。在特定實例中,記憶體102可為動態隨機存取記憶體(DRAM)模組。記憶體102可包括根據各種標準的雙倍資料速率同步動態隨機存取記憶體(double data rate synchronous dynamic random access memory,DDR SDRAM),例如DDR、DDR2、DDR3、DDR4等。在其他實施例中,記憶體102可包括靜態隨機存取記憶體(static random access memory,SRAM)、非揮發性記憶體等。
記憶體102用以因應於對自所儲存資料中讀取的資料中的錯誤進行修正及/或嘗試對所述錯誤進行修正而產生錯誤資訊。舉例而言,錯誤資訊可包括關於已修正錯誤、未修正錯誤、不存在錯誤、此種錯誤的數目等的資訊。錯誤資訊可包括實際錯誤、錯誤的位址、錯誤發生的次數、或針對記憶體102的其他資訊。 在特定實例中,錯誤資訊可包括表明記憶體102已修正單位元錯誤的關於單位元錯誤的資訊。儘管已闡述了錯誤資訊的特定實例,然而錯誤資訊可包括任何與錯誤相關的資訊。
處理器104可為用以可操作地耦接至記憶體102且能夠執行指令的任何裝置。舉例而言,處理器104可為通用處理器、數位訊號處理器(digital signal processor,DSP)、圖形處理單元(graphics processing unit,GPU)、應用專用積體電路、可程式化邏輯裝置等。
處理器104經由第一通訊路徑106及第二通訊路徑108耦接至記憶體102。處理器104用以經由第一通訊路徑106自記憶體接收資料。舉例而言,第一通訊路徑106可為具有用於資料訊號、選通訊號、時鐘訊號、賦能訊號等的訊號線的系統記憶體介面。亦即,第一通訊路徑106可為主記憶體通道的一部分,所述主記憶體通道是處理器104與作為主系統記憶體的記憶體102之間的介面。
處理器104亦經由不同的通訊路徑(第二通訊路徑108)耦接至記憶體102。處理器104用以經由第二通訊路徑108自記憶體102接收錯誤資訊。因此,在實施例中,處理器104用以經由不同於第一通訊路徑106的通訊路徑接收錯誤資訊,且具體而言,接收經修正錯誤資訊。經修正錯誤資訊是與經修正錯誤相關的錯誤資訊。如上文所述,錯誤資訊可包括與錯誤相關的各種類型的資訊。因此,經修正錯誤資訊可包括與經修正錯誤相關的類似類 型的資訊。
軟體110被示出為耦接至處理器104;然而,軟體110代表可在處理器104上執行的各種程式、驅動器、模組、常式等。舉例而言,軟體110可包括驅動器、核心模組、常駐程式(daemon)、應用程式等。在某些實施例中,軟體110可使處理器104能夠用以執行本文所述的特定功能。
儘管已使用單個記憶體102作為實例,然而可將任意數目的記憶體102經由與第一通訊路徑106及第二通訊路徑108類似的兩個通訊路徑耦接至記憶體104。在實施例中,每一記憶體102可經由與其他記憶體102分開的專用第一通訊路徑106及亦與其他記憶體102分開的專用第二通訊路徑108耦接至處理器104。然而,在其他實施例中,第一通訊路徑106可由多於一個記憶體102共用,且第二通訊路徑108可由多於一個記憶體102共用。此外,儘管已闡述了單個第一通訊路徑106,然而可存在位於一或多個記憶體102之間的多個第一通訊路徑106。類似地,儘管已闡述了單個第二通訊路徑108,然而可存在位於一或多個記憶體102之間的多個第二通訊路徑108。
在實施例中,可經由頻帶外通訊路徑(out-of-band communication path)進行錯誤資訊的傳達。第二通訊路徑108可為此種頻帶外通訊路徑。亦即,處理器104與記憶體102之間的主通訊可經由第一通訊路徑106,而錯誤資訊則經由頻帶外第二通訊路徑108傳達。
圖2是根據實施例的具有記憶體系統架構且包括控制器的系統的示意圖。在此實施例中,系統200包括與圖1中的記憶體102、處理器104、通訊路徑106及108、及軟體110類似的記憶體202、處理器204、通訊路徑206及208、及軟體210。然而,第二通訊路徑208包括耦接於控制器214與記憶體202之間的第一匯流排212及耦接於控制器214與處理器204之間的第二匯流排216。換言之,耦接至處理器204與記憶體202之間的控制器214是第二通訊路徑208的一部分。
控制器214可為用以可操作地耦接至記憶體202及處理器204的任何裝置。舉例而言,控制器214可包括通用處理器、數位訊號處理器(DSP)、應用專用積體電路、可程式化邏輯裝置等。
匯流排212及216可為任何種類的通訊鏈路。舉例而言,匯流排212及216可為系統管理匯流排(SMBus)、積體電路間(inter-integrated circuit,I2C)匯流排、符合智慧平台管理介面(intelligent platform management interface,IPMI)的匯流排、Modbus匯流排等。在特定實施例中,通訊路徑208的至少一個部分可實質上慢於通訊路徑206。舉例而言,記憶體202與處理器204之間的通訊路徑206可被設計用於約10十億位元/秒(GB/s)的較高資料速率傳輸;然而,通訊路徑208可具有約10百萬位元/秒(Mbit/s)、100千位元/秒(kbit/s)等的較低資料傳輸率。因此,在某些實施例中,通訊路徑206的資料傳輸速度對通訊路徑208 的資料傳輸速度的比率可為約100、1000或大於1000。
在實施例中,第二通訊路徑208可為專用通訊路徑。亦即,第二通訊路徑208可僅用於記憶體202與處理器204之間的資訊傳遞。然而,在某些實施例中,控制器214可容許存取其他裝置。舉例而言,非記憶體裝置268可藉由匯流排212耦接至控制器214。在另一實例中,其他裝置266可耦接至控制器214。因此,除來自記憶體202的資訊以外的資訊可經由匯流排212及/或匯流排216而往來於處理器204及/或記憶體202傳送。具體而言,來自記憶體202的錯誤資訊可經由用於其他用途(包括非記憶體用途)的第二通訊路徑208傳達至處理器204。
在實施例中,控制器214可包括非揮發性記憶體254。非揮發性記憶體254可用以儲存來自記憶體202的錯誤資訊。因此,在斷電時,錯誤資訊可保持於控制器214中。處理器204可用以請求來自控制器214的錯誤資訊。因此,控制器214可用以藉由提供儲存於非揮發性記憶體254中的錯誤資訊、存取記憶體202以擷取錯誤資訊來回應處理器204、等來回應此種請求。
在實施例中,控制器214可用以向記憶體202輪詢錯誤資訊。在另一實施例中,記憶體202可用以將錯誤資訊推送至控制器214。總之,儲存於非揮發性記憶體254中的錯誤資訊可為實質上最新的複本。
圖3是根據實施例的具有記憶體系統架構且包括基板管理控制器的系統的示意圖。在此實施例中,系統300包括與圖2 中的記憶體202、處理器204、通訊路徑206及208、及軟體210類似的記憶體302、處理器304、通訊路徑306及308、及軟體310。然而,控制器314是基板管理控制器(baseboard management controller,BMC)314。
BMC 314可用以管理系統300。舉例而言,BMC 314可耦接至系統300的各種感測器,包括處理器304、記憶體302、其他裝置366等的感測器。BMC 314可用以收集及報告各種系統參數,例如溫度、冷卻狀態、功率狀態等。BMC 314可用以根據標準來管理系統並達成對資訊的存取。管理資訊可提供給處理器304,且因此可提供給軟體310。作為另一選擇,BMC 314可經由另一通訊路徑(例如頻帶外通訊路徑)來提供資訊。此處,頻帶外通訊路徑可包括任何不包括處理器304的通訊路徑。
圖4是根據實施例的具有記憶體系統架構且無基於處理器的錯誤修正的系統的示意圖。在此實施例中,系統400包括與圖1中的記憶體102、處理器104、通訊路徑106及108、及軟體110類似的記憶體402、處理器404、通訊路徑406及408、及軟體410。然而,在此實施例中,處理器404包括記憶體控制器(memory controller,MC)450及機器檢查架構(machine check architecture,MCA)暫存器452。
記憶體控制器450與處理器404整合於一起。記憶體控制器450可為作為處理器404與記憶體402之間的主介面的主記憶體通道的一部分。記憶體控制器450用以控制經由通訊路徑406 對記憶體402中所儲存的資料的存取。在某些實施例中,記憶體控制器450可用以修正錯誤,但可能沒有機會來修正此種錯誤,乃因可能已由記憶體402執行了錯誤修正。然而,在此實施例中,記憶體控制器450不用以修正自記憶體402讀取的資料中的錯誤。記憶體控制器450可不用以基於自記憶體402讀取的資料來報告任何錯誤資訊。
MCA暫存器452是可在其中報告硬體錯誤的暫存器。舉例而言,可在MCA暫存器452中偵測及報告快取記憶體錯誤、匯流排錯誤、資料錯誤等。然而,由於記憶體控制器450並不用以修正自記憶體402讀取的資料中的錯誤,因而在MCA暫存器452中可不報告基於自記憶體402讀取的資料的任何潛在錯誤資訊。總之,如上文所述,錯誤資訊可經由通訊路徑408傳達至處理器404。因此,錯誤資訊可仍提供至軟體410,儘管並非經由記憶體控制器450及MCA暫存器452提供。
在實施例中,由於可經由第二通訊路徑408得到錯誤資訊,因而可達成較低成本的系統400。舉例而言,可使用具有無記憶體錯誤修正的記憶體控制器450的處理器404,而仍可得到錯誤資訊。具體而言,即使期望進行記憶體錯誤修正,仍可使用無記憶體錯誤修正的處理器404,乃因可經由第二通訊路徑408得到錯誤資訊。因此,軟體410(包括任何使用錯誤資訊的軟體)可仍仿佛處理器404能夠進行記憶體錯誤修正一般運作。無錯誤修正的處理器404可為較低功率、較低成本的處理器。因此,可降低系 統400的總體功率耗用及/或成本。
儘管已將記憶體控制器450示出為與處理器404整合於一起,然而記憶體控制器450可與處理器404分開。總之,通訊路徑408可繞過記憶體控制器450及原本可具有錯誤修正電路的處理器404的其他部分。繞過該些組件使得經由第二通訊路徑408的錯誤資訊傳達實質上獨立於記憶體控制器450、MCA暫存器452等的角色。亦即,即使不能經由記憶體控制器450及/或MCA暫存器452得到類似資訊,仍可得到錯誤資訊。
圖5是根據實施例的具有記憶體系統架構且具有被損壞的資料選通訊號的系統的示意圖。在此實施例中,系統500包括與圖1中的記憶體102、處理器104、通訊路徑106及108、及軟體110類似的記憶體502、處理器504、通訊路徑506及508、及軟體510。然而,在此實施例中,通訊路徑506包括資料線532及資料選通線533。可存在其他線作為通訊路徑506的一部分;然而,為清楚起見,未示出該些線。
在實施例中,可藉由不同的路徑傳達關於不可修正的錯誤的錯誤資訊及關於可修正的錯誤的錯誤資訊。如上文所述,可修正的錯誤資訊可經由通訊路徑508傳達。不可修正的錯誤資訊可包括基於不可修正的錯誤的各種不同類型的資訊。不可修正的錯誤資訊可經由第一通訊路徑506傳達。舉例而言,記憶體502可用以藉由在資料選通線533上傳送(或不傳送)的訊號來傳達不可修正的錯誤。亦即,在正常資料傳輸的期間,在資料選通線 533上傳送的資料選通訊號可隨著資料的傳輸而雙態觸變;然而,若記憶體502已偵測到不可修正的錯誤,則記憶體502可用以產生與在正常資料傳輸的期間的資料選通訊號不同的用於在資料選通線533上傳送的資料選通訊號。在特定實例中,記憶體502可被配置成不使經由資料選通線533傳送的資料選通訊號進行雙態觸變。當偵測到此種狀況時,處理器504可用以產生硬體異常(hardware exception),所述硬體異常可由軟體510處置。
儘管已使用通訊路徑506內的訊號及/或線的特定實例作為用於傳達不可修正的錯誤的技術的實例,然而亦可使用其他訊號及/或線將不可修正的錯誤傳達至處理器504。無論如何傳達,處理器504皆可用以例如藉由暫停系統500或執行另一動作來回應於對不可修正的錯誤的此種傳達。
圖6是根據實施例的具有記憶體系統架構且具有單獨的不可修正錯誤訊號的系統的示意圖。在此實施例中,系統600包括與圖1中的記憶體102、處理器104、通訊路徑106及108、及軟體110類似的記憶體602、處理器604、通訊路徑606及608、及軟體610。然而,在此實施例中,單獨的通訊路徑634耦接於記憶體602與處理器604之間。
類似於圖5的系統500,不可修正的錯誤可被傳達至處理器604。在此實施例中,記憶體602用以在第三通訊路徑634上傳達不可修正錯誤資訊。舉例而言,第三通訊路徑634可為與第一通訊路徑606分開的專用線。因此,關於不可修正的錯誤的 錯誤資訊可被處理器604接收,但是經由不同於第一通訊路徑606及第二通訊路徑608的通訊路徑接收。
圖7是根據實施例的具有記憶體系統架構且具有軟體模組的系統的示意圖。在此實施例中,系統700包括與圖1中的記憶體102、處理器104、通訊路徑106及108、及軟體110類似的記憶體702、處理器704、通訊路徑706及708、及軟體710。然而,在此實施例中,軟體710包括模組718。
模組718代表軟體710的一部分,用以經由處理器存取錯誤資訊722。舉例而言,模組718可包括核心模組、驅動器、擴展項(extension)等。模組718可包括用於與通訊路徑708相關聯的介面的驅動器。在特定實例中,模組718可包括與IPMI匯流排、IPMI2匯流排等相關聯的驅動器。其他資訊720亦可提供給軟體710。錯誤資訊722被單獨示出,以表明軟體710的哪一部分與錯誤資訊722相關聯。
在實施例中,模組718可使處理器704請求來自記憶體702的錯誤資訊。舉例而言,記憶體702可產生錯誤資訊。此後,處理器704可經由通訊路徑708傳送對於錯誤資訊的請求。記憶體702可用以經由通訊路徑708以所述錯誤資訊對所述請求作出回應。
圖8是根據實施例的具有記憶體系統架構且具有錯誤偵測及修正模組的系統的示意圖。在此實施例中,系統800包括與圖7中的記憶體702、處理器704、通訊路徑706及708、及具有 可回應於資訊720及722的模組718的軟體710類似的記憶體802、處理器804、通訊路徑806及808。及具有可回應於資訊820及822的模組818的軟體810。然而,在此實施例中,軟體810亦包括錯誤偵測及修正(error detection and correction,EDAC)模組824。
在實施例中,EDAC模組可用以管理來自記憶體、快取記憶體、輸入/輸出(I/O)裝置、周邊設備、匯流排、及/或系統800的其他態樣的錯誤資訊,並可用以將此資訊透露給較高功能層,例如應用程式層。具體而言,EDAC模組824可用以自模組818接收錯誤資訊。EDAC模組824可用以將錯誤資訊與其他資訊進行組合,以使其他模組、應用程式等可存取錯誤資訊。
圖9是根據實施例的具有記憶體系統架構且具有聚合模組的系統的示意圖。在此實施例中,系統900包括與圖7中的記憶體702、處理器704、通訊路徑706及708、及具有可回應於資訊720及722的模組718的軟體710類似的記憶體902、處理器904、通訊路徑906及908、及具有可回應於資訊920及922的第一模組918的軟體910。然而,在此實施例中,軟體910亦包括第二模組926。第二模組926用以接收資訊920。具體而言,此其他資訊920可包括與記憶體902上的錯誤無關的資訊。其他資訊920的至少一部分921可由第一模組918接收。第一模組918可用以將錯誤資訊922與來自第二模組926的其他資訊920的某些或全部進行組合。第一模組918可用以以單個介面呈現經組合資訊。 舉例而言,第一模組918可用以將經組合資訊呈現給EDAC模組,例如圖8所示的EDAC模組824。
圖10是根據實施例的具有記憶體系統架構且具有錯誤修正模組的系統的示意圖,所述錯誤修正模組聚合來自記憶體控制架構模組的資訊。在此實施例中,系統1000包括與圖9中的記憶體902、處理器904、通訊路徑906及908、及具有可回應於資訊920及922的模組918及926的軟體910類似的記憶體1002、處理器1004、通訊路徑1006及1008、及具有可回應於資訊1020及1022的模組1018及1026的軟體1010。然而,在此實施例中,模組1018是錯誤修正(error correction,EC)模組1018且第二模組1026是MCA模組1026。
MCA模組1026用以控制對MCA暫存器(例如圖4所示MCA暫存器452)的存取。資訊1020代表來自MCA暫存器的此種資訊。EC模組1018用以存取MCA模組1026以擷取此種資訊。EC模組1018可將來自MCA模組1026的資訊1020與錯誤資訊1022進行組合並以單個介面呈現此經組合資訊。
具體而言,EC模組可呈現與假如處理器1004能夠修正錯誤時MCA模組1026的介面類似或相同的介面。舉例而言,假如處理器1004用以修正自記憶體1002讀取的資料中的錯誤且此種錯誤資訊可供利用,則可經由MCA模組1026得到此資訊。然而,若處理器1004並不用以修正自記憶體1002讀取的資料中的錯誤或者處理器1004用以修正錯誤、但因錯誤是在記憶體1002 中修正而從不藉由由MCA模組1026監測的通訊路徑接收錯誤資訊,則MCA模組1026將不能夠呈現錯誤資訊。總之,EC模組1018可將MCA模組1026資訊1020與藉由通訊路徑1008獲得的錯誤資訊1022進行組合並呈現與假如處理器1004用以修正自記憶體1002讀取的資料中的錯誤或者MCA模組1026可得到錯誤資訊時MCA模組1026所將提供的資訊類似或相同的經組合資訊。軟體可接著利用相同或類似的介面而無論是否呈現具有錯誤修正的處理器1004。換言之,能夠進行錯誤修正的處理器1004並非是使依靠錯誤資訊的軟體完全運作所必需的。因此,可利用無錯誤修正的更廉價處理器1004來降低成本。
圖11是根據實施例的具有記憶體系統架構且具有多個模組的系統的示意圖。在此實施例中,系統1100包括與圖7中的記憶體702、處理器704、通訊路徑706及708、及可回應於資訊720及722的軟體710類似的記憶體1102、處理器1104、通訊路徑1106及1108、及可回應於資訊1120及1122的軟體1110。然而,在此實施例中,軟體1110包括第一模組1118、第二模組1128及介面模組1130。
第一模組1118類似於圖7中的模組718。然而,第一模組1118用以經由介面模組1130自記憶體1102接收錯誤資訊。介面模組1130是用以向通訊路徑1108提供介面的模組。舉例而言,介面模組1130可為用以容許經由IPMI匯流排進行存取的模組。
其他模組(例如第二模組1128)亦可用以使用介面模組 1130進行通訊。舉例而言,第二模組1128可用以存取附接至IPMI匯流排的另一裝置、存取記憶體1102的另一態樣(例如熱資訊或功率資訊)等。錯誤資訊及其他資訊二者可為由介面模組1130傳輸的資訊1122的一部分。換言之,錯誤資訊可使用專用軟體沿整個路徑傳輸,但亦可與相關的或不相關的資訊及/或源共用模組、介面、匯流排等。
圖12是根據實施例的具有記憶體系統架構且具有可修正錯誤模組及串列存在偵測/登記時鐘驅動器模組的系統的示意圖。在此實施例中,系統1200包括與圖11中的記憶體1102、處理器1104、通訊路徑1106及1108、及具有可回應於資訊1120及1122的模組1118、1128及1130的軟體1110類似的記憶體1202、處理器1204、通訊路徑1206及1208、及具有可回應於資訊1220及1222的模組1218、1228及1230的軟體1210。然而,在此實施例中,第一模組1218是經修正錯誤(CE)模組1218且第二模組1228是串列存在偵測(serial presence detect,SPD)/登記時鐘驅動器(registering clock driver,RCD)模組1228。
具體而言,SPD/RCD模組1228用以存取與串列存在偵測系統及/或登記時鐘驅動器系統相關的資訊。SPD/RCD模組1228可用以存取該些系統中的一者或二者。所述資訊是經由第二通訊路徑1208存取。因此,在實施例中,可經由與SPD/RCD相關資訊相同的通訊路徑1208存取來自記憶體1202的錯誤資訊。
圖13是根據實施例的具有記憶體系統架構且帶有 DRAM內錯誤修正(in-DRAM error correction)的系統的示意圖。在此實施例中,系統1300包括與圖10中的記憶體1002、處理器1004、及具有可回應於資訊1020及1022的EC模組1018及MCA模組1026的軟體1010類似的記憶體1302、處理器1304、具有可回應於資訊1320及1322的EC模組1318及MCA模組1326的核心1310。然而,在此實施例中,記憶體1302中的每一者皆是錯誤修正碼(error correction code,ECC)雙直插記憶體模組(dual in-line memory module,DIMM)。每一ECC DIMM 1302皆用以儲存資料並修正所儲存資料中的至少一錯誤。在此實施例中,ECC DIMM 1302分別經由對應通訊路徑1364耦接至處理器1304的記憶體控制器(MC)1350。類似於圖5中的通訊路徑506,通訊路徑1364包括至少用於資料訊號及資料選通訊號等的線。ECC DIMM 1302分別經由通訊路徑1308耦接至處理器1304,通訊路徑1308包括與圖3中的匯流排312、BMC 314及匯流排316類似的匯流排1312、BMC 1314及匯流排1316。
在實施例中,ECC DIMM 1302可用以修正自ECC DIMM 1302讀取的資料中的一或多個錯誤。錯誤修正技術可包括單錯誤修正-雙錯誤修正(single error correction-double error detection,SEC-DEC)技術、單晶片晶片刪除(chipkill)技術、雙晶片晶片刪除技術等。可使用任何錯誤修正技術。
在此實施例中,記憶體控制器(MC)1350不用以執行錯誤修正,或者作為另一選擇,不用於自ECC DIMM 1302接收錯 誤資訊。由於由ECC DIMM 1302傳遞而來的資料已經過修正,故MC 1350可甚至不接收任何代表可修正的錯誤的資訊。然而,錯誤資訊且尤其是經修正錯誤資訊可經由通訊路徑1308(即經由匯流排1312及1316、及BMC 1314)傳送至處理器1304。
在實施例中,處理器1304可為原本不能夠執行錯誤修正、但具有能夠連接至匯流排1316的介面的現有處理器。然而,一旦處理器1304由核心1310且尤其是EC模組1318構成,整個系統1300便可與具有能夠進行錯誤修正的處理器的系統類似地用以執行錯誤修正。
在實施例中,EC模組1318可創建具有ECC介面的虛擬記憶體控制器。舉例而言,如上文所述,EC模組1318可用以自MCA模組1326接收資訊。此資訊可為具有ECC介面的實際記憶體控制器可在不具有某些或全部錯誤資訊的情況下提供的資訊。EC模組1318可使用錯誤資訊增補來自MCA模組1326的資訊,以形成預期來自ECC介面的記憶體控制器的一組完整資訊。因此,可相對於與具有錯誤修正的處理器一起使用時不進行改變地使用EDAC模組1324、記憶體ECC常駐程式1358、其他應用程式1360等。舉例而言,EDAC模組1324可用以向EC模組1318輪詢ECC資訊。作為回報,EC模組1318可返送經由第二通訊路徑1308接收的錯誤資訊。與EDAC模組1324進行通訊的記憶體ECC常駐程式1358可向EDAC模組1324輪詢錯誤資訊。記憶體ECC常駐程式1358可接著在應用程式層面上根據錯誤資訊採取措 施。此種措施可包括頁面撤銷、用於管理錯誤以使系統1300保持運行的其他措施、保持可靠性水準、建議停運等。
如上文所述,可偵測到不可修正的錯誤。不可修正錯誤資訊可經由MC 1350、MCA暫存器1352、及MCA模組1326傳達至EC模組1318。舉例而言,不可修正的錯誤可藉由不可屏蔽的中斷(non-maskable interrupt)、異常等而經由MCA模組1326傳達。在特定實例中,記憶體控制器1350可因應於不可修正的錯誤而產生硬體異常,而無論不可修正的錯誤如何被傳達至記憶體控制器1350。MCA模組1326可攔截異常並將其傳遞至EC模組1318。EC模組1318可接著將異常傳達至EDAC模組1324。除如上文所述傳達不可修正錯誤資訊外或代替如上文所述傳達不可修正錯誤資訊,可經由通訊路徑1308傳達不可修正錯誤資訊。
在實施例中,ECC DIMM 1302可用以提供經修正資料至處理器1304。然而,資料可能會在ECC DIMM 1302與MC 1350之間發生毀壞(corrupted)。因此,可在ECC DIMM 1302與處理器1304或MC 1350之間執行某種形式的錯誤修正。舉例而言,可使用旨在偵測在通訊路徑1364上發生的錯誤的錯誤修正碼對自ECC DIMM 1302傳送的資料進行編碼。藉由此種錯誤修正,可藉由錯誤修正來保護自ECC DIMM 1302中的儲存元件至處理器的實質上整個路徑。
圖14A至圖14D是根據某些實施例的具有記憶體系統架構且具有模組內錯誤修正的系統的示意圖。參照圖14A,系統 1400包括與圖13所示者類似的組件;然而,在此實施例中,ECC DIMM 1402包括緩衝器1462。緩衝器1462用以修正自對應的ECC DIMM 1402讀取的資料中的錯誤。具體而言,可自ECC DIMM 1402的內部記憶體裝置(例如DRAM裝置(未示出))讀取到未修正資料。緩衝器1462可用以修正未修正資料並類似於本文所述其他記憶體而產生經修正錯誤資訊。此錯誤資訊可經由通訊路徑1408傳達,且可如上所述加以使用。亦即,無論錯誤資訊如何產生,皆可如上所述使用錯誤資訊。
參照圖14B,系統1400的組件可類似於圖14A所示者。然而,在此實施例中,EDAC模組1424用以與MCA模組1426進行通訊。舉例而言,EDAC模組1424可用以向MCA模組1426輪詢硬體相關資訊、不可修正錯誤資訊、或如上文所述可經由MCA模組1426得到的其他資訊。EDAC模組1424可用以將來自MCA模組1426的資訊與來自EC模組1418的資訊進行組合。
參照圖14C,系統1400的組件可類似於圖14A所示者。然而,在此實施例中,MCELOG模組1425用以自EC模組1418接收資訊。MCELOG模組1425可用以記錄與各種系統錯誤相關的機器檢查事件(MCE),例如記憶體錯誤、資料傳輸錯誤、或其他錯誤。MCELOG模組1425可用以向記憶體ECC常駐程式1458提出中斷並將錯誤資訊傳遞至記憶體ECC常駐程式1458。
參照圖14D,系統1400的組件可類似於圖14C所示者。然而,在此實施例中,類似於圖14A及圖14B之間的差異, MCELOG模組1425可類似於圖14B所示EDAC模組1424而用以自MCA模組1426接收資訊。
儘管已在圖14A至圖14D中參照具有緩衝器1462的ECC DIMM 1402闡述了不同的模組,然而在其他實施例中,所述各種配置可應用於具有ECC DIMM 1302的圖13所示系統1300。
圖15是根據實施例的記憶體模組的示意圖。記憶體模組1500包括一或多個記憶體裝置1501、資料介面1536、錯誤介面1538、及控制器1541。資料介面1536用以自儲存於記憶體裝置1501中的資料傳送及接收資料1540。記憶體模組1500用以為自所述一或多個記憶體裝置1501讀取的資料產生錯誤資訊。錯誤介面1542用以傳送因應於對自所述一或多個記憶體裝置1501讀取的資料中的錯誤進行修正而產生的錯誤資訊。
資料介面1536是用以經由其傳送記憶體裝置1501中所儲存的資料的介面以及經由其接收欲儲存於記憶體裝置1501中的資料1540的介面。舉例而言,資料介面1536可包括緩衝器、驅動電路、終端(termination)、或用於例如資料線、選通線、位址線、賦能線、時鐘線等線的電路。
錯誤介面1538可為用以藉由特定匯流排(例如SMBus、IPMI、或本文所述的其他匯流排)進行通訊的介面。在實施例中,錯誤介面1538可為現有介面,記憶體模組1500除傳達錯誤資訊外,亦經由錯誤介面1538傳達其他資訊。因此,資訊1542將不僅包含錯誤資訊,且亦包含其他資訊。
控制器1541耦接至記憶體裝置1501、資料介面1536、及錯誤介面1538。控制器1541用以獲得錯誤資訊。在實施例中,控制器1541可自記憶體裝置1501獲得錯誤資訊;然而,在其他實施例中,控制器1541可用以修正來自記憶體裝置1501的資料中的錯誤並產生錯誤資訊。
在實施例中,控制器1541可用以經由資料介面1536傳達不可修正的錯誤。舉例而言,如上文所述,可使用資料選通訊號來表明不可修正的錯誤。控制器1541可用以因應於偵測到不可修正的錯誤而修改經由資料介面1536傳送的資料選通訊號。
圖16是根據實施例的具有SPD或RCD介面的記憶體模組的示意圖。在此實施例中,記憶體模組1600包括與圖15中的所述一或多個記憶體裝置1501、資料介面1536、錯誤介面1538、及控制器1541類似的一或多個記憶體裝置1601、資料介面1636、錯誤介面1638、及控制器1641。然而,圖15中的錯誤介面1538在此處是SPD/RCD介面1638。
SPD/RCD介面1638可用於提供對SPD系統或RCD系統(未示出)的存取。在具體實施例中,可藉由此種SPD或RCD系統內的特定暫存器或記憶體位置得到錯誤資訊。因此,可藉由與可獲得SPD或RCD資訊的介面相同的介面獲得錯誤資訊。
因可藉由現有硬體介面得到錯誤資訊,故可不需要額外硬體。舉例而言,藉由旨在存取錯誤資訊的SPD/RCD介面1638接收的命令可在位址、暫存器位址、或SPD/RCD系統未使用的其 他欄位方面不同於其他命令。在實施例中,可定義用於SPD/RCD系統的新暫存器來透露錯誤資訊。在另一實施例中,可重複利用現有暫存器來傳達錯誤資訊。
圖17是根據實施例的具有單獨的不可修正錯誤介面的記憶體模組的示意圖。在此實施例中,記憶體模組1700包括與圖15中的所述一或多個記憶體裝置1501、資料介面1536、錯誤介面1538及控制器1541類似的一或多個記憶體裝置1701、資料介面1736、錯誤介面1738、及控制器1741。然而,記憶體模組1700亦包括不可修正錯誤(uncorrectable error,UE)介面1744。
UE介面1744是供記憶體模組1400經由其傳達不可修正的錯誤的單獨介面。舉例而言,UE介面1744可為專用線、專用匯流排等。
圖18是根據實施例的記憶體裝置的示意圖。在此實施例中,記憶體裝置1800包括資料介面1836及錯誤介面1838。資料介面1836及錯誤介面1838可類似於如上所述的圖15中的資料介面1536及錯誤介面1538等;然而,在此實施例中,資料介面1836及錯誤介面1838是通往記憶體裝置1800而非記憶體模組(例如圖15中的記憶體模組1500)的介面。
記憶體裝置1800包括控制器1841。控制器1841可為用以可操作地耦接至記憶體1801以及介面1836及1838的任何裝置。舉例而言,控制器1841可包括通用處理器、數位訊號處理器(DSP)、應用專用積體電路、可程式化邏輯裝置等。
記憶體1801用以儲存資料。舉例而言,記憶體1801可為記憶體胞元陣列(memory cell array);然而,在其他實施例中,資料可儲存為其他配置形式。記憶體1801可包括電性儲存元件、磁性儲存元件、化學儲存元件、光學儲存元件、或其他類型的儲存元件。
控制器1841用以經由資料介面1836傳送被儲存於記憶體1801中的資料。控制器亦可用以經由資料介面1836接收欲儲存於記憶體1801中的資料。此種傳輸由資料1840表示。
控制器1841用以經由錯誤介面1838傳送因應於對自記憶體1801讀取的資料中的錯誤進行修正而產生的錯誤資訊。錯誤資訊可類似於上文所述各種類型錯誤資訊中的任一者。控制器1841亦可用以經由錯誤介面1838接收命令、指令、或其他資訊。錯誤資訊、命令、指令、或其他資訊的此種傳輸由資訊1842表示。
在此實施例中,將資料1840及資訊1842二者示出為通過控制器1841。然而,在其他實施例中,記憶體裝置1800的組件可被控制器1841控制成使資料1840及資訊1842不通過控制器1841。舉例而言,在某些實施例中,資料及/或錯誤資訊可在控制器1841控制下提供至資料介面1836及錯誤介面1838,但繞過控制器1841。
圖19是根據另一實施例的記憶體裝置的示意圖。在此實施例中,記憶體裝置1900包括記憶體胞元陣列1901。記憶體胞元陣列1901可包括其中儲存有資料的記憶體胞元。具體而言,記 憶體胞元陣列1901可用以儲存經編碼資料。感測放大器1902及寫入電路1904是記憶體裝置1900中容許資料被寫入記憶體胞元陣列中由位址1906規定的一或多個位址以及自記憶體胞元陣列1901讀取資料的電路的實例。然而,在其他實施例中,其他讀取及寫入電路可與記憶體胞元陣列1901相關聯。此外,儘管將感測放大器1902及寫入電路1904示出為記憶體胞元陣列1901的一部分,然而該些電路可與記憶體胞元陣列1901分開。另外,儘管圖中示出單個記憶體胞元陣列1901,然而可存在多個記憶體胞元陣列1901。
記憶體胞元陣列1901耦接至錯誤修正碼(ECC)引擎1908。ECC引擎1908用以藉由對寫入至記憶體胞元陣列1901的資料進行編碼以及對自記憶體胞元陣列1901讀取的資料進行解碼來修正自記憶體讀取的資料中的至少一個錯誤。具體而言,ECC引擎1908可用以接收寫入資料1910。ECC引擎1908可用以對寫入資料1910進行編碼,以使經編碼資料可被寫入電路1904寫入至記憶體胞元陣列1901的由位址1906規定的位置。類似地,ECC引擎1908可用以接收自記憶體胞元陣列1901讀取的經編碼資料並將此資料解碼成經解碼輸出資料1924。此種編碼及解碼可根據本文所述任意數目的ECC演算法來執行。作為實例,可使用單錯誤修正-雙錯誤偵測(Single Error Correct-Double Error Detect,SEC-DED)作為ECC演算法;然而亦可使用其他演算法。
儘管說明例如位址1906等訊號及寫入資料1910作為在 將資料寫入至記憶體胞元陣列1901時所使用的訊號,然而記憶體裝置1900可用以接收及處理在將資料寫入至記憶體胞元陣列1901時所涉及的其他訊號;然而,為清楚起見,省略了該些組件。此外,可存在其他可對位址1906進行修改、對存取進行重定向等的組件,但為清楚起見亦未示出。
在特定實例中,在寫入操作期間,ECC引擎1908用以接收記憶體裝置1900應作為寫入資料1910進行儲存的位元。ECC引擎1908用以計算寫入資料1910的ECC位元值並利用寫入電路1904將該些ECC位元與經編碼資料形式的原始資料值一起傳遞至記憶體胞元陣列1901。記憶體胞元陣列1901接著用以儲存經編碼資料。
在讀取操作的期間,ECC引擎1908用以自記憶體胞元陣列1901接收經編碼資料。亦即,使用感測放大器1902及其他電路來讀取先前儲存的ECC位元及原始資料值作為經編碼資料。ECC引擎1908可接著將經編碼資料解碼,產生輸出資料1924,並產生任何錯誤資訊。
可接著自記憶體裝置1900輸出輸出資料1924。在某些實施例中,其他組件可設置於ECC引擎1908與記憶體裝置1900的輸出之間。在實施例中,緩衝器1932可用以緩衝輸出資料1924。在另一實施例中,RCD模組1934可用以接收、緩衝及輸出輸出資料1924。此處,以虛線示出該些可選組件的實例。
ECC引擎1908亦用以產生錯誤旗標。舉例而言,ECC 引擎1908可用以產生可修正錯誤(CE)旗標。CE旗標可在ECC引擎1908成功地修正n位元錯誤時被置位,其中n小於或等於ECC引擎1908用以修正的位元錯誤的數目。ECC引擎1908亦可用以產生不可修正錯誤(UE)旗標。UE旗標可在ECC引擎1908偵測到已發生的位元錯誤之數目大於ECC引擎1908用以修正的位元錯誤之數目時被置位。在特定實例中,藉由SEC-DED,CE旗標可表明已修正了單位元錯誤,而UE旗標可表明已發生了兩位元錯誤。
ECC控制器1918用以管理錯誤修正及相關聯的錯誤資訊。ECC控制器1918用以自ECC引擎接收錯誤資訊1914。錯誤資訊1914可包含表明是否不存在錯誤、存在可修正的錯誤、存在不可修正的錯誤、錯誤的數目等的資訊。ECC控制器1918亦可用以接收與讀取相關聯的位址1906。因此,ECC控制器1918可將來自ECC引擎1908的錯誤資訊1914組合至具有位址1906的新錯誤資訊中。如下文所將進一步詳述,ECC控制器1918可用以產生欲由ECC引擎1908進行編碼並被寫入至記憶體胞元陣列1901中的寫入資料1910。
在實施例中,ECC控制器1918可包括用以儲存錯誤資訊的記憶體。舉例而言,ECC控制器1918可包括可在其中儲存錯誤資訊的多個暫存器。可在ECC控制器1918中儲存任何種類的錯誤資訊。如下文所將進一步詳述,可儲存包括關於錯誤的資訊的錯誤記錄。舉例而言,錯誤記錄可包括例如位址資訊、錯誤類 型、自記憶體胞元陣列1901讀取的資料、是否已執行修復或其他動作等資訊。
在實施例中,ECC控制器1918可用以傳送及自外部裝置接收通訊1926。舉例而言,通訊1926可包括錯誤資訊的傳送。當發生可修正的錯誤或不可修正的錯誤時,ECC控制器1918可傳送錯誤資訊。此種傳送可因應於來自外部裝置的請求而進行或可為自發的,例如根據有規律的排程進行、在發生錯誤時進行、在再新循環的期間進行等。
在實施例中,ECC控制器1918可用以藉由匯流排(例如SMBus)進行通訊,以傳達錯誤資訊。在某些實施例中,記憶體裝置1900可包括命令緩衝器1928。命令緩衝器1928可用以為ECC控制器1918緩衝經由匯流排接收的命令。
在實施例中,記憶體裝置1900可包括SPD模組1930。ECC控制器1918可用以與SPD模組1930進行通訊。SPD模組可用以執行與SPD介面相關聯的操作。此外,SPD模組1930可用以容許存取可經由ECC控制器1918得到的錯誤資訊。舉例而言,經由SPD模組1930接收的特定命令可被轉譯成用於存取儲存於ECC控制器1918中的錯誤資訊的適當命令及/或訊號。
DQS修改器1920用以因應於來自ECC引擎1908的錯誤資訊1916而修改來自記憶體胞元陣列1901的資料選通訊號1912,並輸出經修改的資料選通訊號1922。在特定的實施例中,錯誤資訊1916是表明是否已發生不可修正的錯誤的訊號。DQS修 改器1920可用以在錯誤資訊1916表明已發生不可修正的錯誤時修改資料選通訊號1912以使輸出資料選通訊號1922不會雙態觸變、但在未出現不可修正的錯誤訊號時將資料選通訊號1912原樣傳遞。舉例而言,DQS修改器1920可包括例如或閘(OR gate)、及閘(AND gate)、反及閘(NAND gate)、傳送閘(transmission gate)等邏輯電路。
在實施例中,DQS修改器1920可用於傳達時間敏感資訊(time-sensitive information)。舉例而言,在已發生不可修正的錯誤時,此錯誤可能與當前讀取操作相關聯。當關於不可修正的錯誤的資訊可被ECC控制器1918例如藉由SMBus傳達至外部裝置時,通訊路徑可慢於輸出資料1924的通訊路徑。因此,對發生不可修正的錯誤的傳達可相對於對應的讀取操作而延遲。相比之下,DQS修改器1920傳達已發生不可修正的錯誤則可與對應的讀取操作實質上同時進行。亦即,經修改的輸出資料選通訊號1922是與具有不可修正的錯誤的輸出資料1924的傳輸相關聯的資料選通訊號。
儘管已使用記憶體裝置1900的特定組件作為實例,然而可存在其他組件。舉例而言,記憶體裝置1900可用以接收及/或傳送各種選通訊號、選擇訊號、控制訊號、賦能訊號等。
圖20是根據實施例的包括記憶體裝置的記憶體模組的示意圖。在此實施例中,記憶體模組2000包括與圖15中的資料介面1535及錯誤介面1538類似的資料介面2036及錯誤介面 2038。然而,在此實施例中,記憶體模組2000包括多個ECC記憶體裝置2001-1至2001-N。ECC記憶體裝置2001可為本文所述的記憶體裝置中的任一者,例如上文所述圖18及圖19中的記憶體裝置1800及1900。
以記憶體裝置1800作為記憶體裝置2001的實例並參照圖18及圖20,記憶體裝置1800中的每一者皆耦接至資料介面2036及錯誤介面2038。關於資料介面2036,記憶體裝置1800的資料介面1836可形成資料介面2036的至少一部分。舉例而言,可將每一資料介面1836的資料I/O、選通訊號等聚合至資料介面2036中。可將資料介面2036的位址輸入及/或其他控制訊號分佈至記憶體裝置1800的資料介面1836。因此,可經由資料介面2036而往來於記憶體裝置1800傳達資料並因此往來於記憶體模組200傳達資料。
類似地,錯誤介面1838可耦接至錯誤介面2038。錯誤介面1838可以各種方式進行耦接。舉例而言,錯誤介面1838及錯誤介面2038可耦接至記憶體模組2000內的共用匯流排。在另一實例中,錯誤介面2038可直接耦接至記憶體裝置2001的每一錯誤介面1838。錯誤介面2038可用以聚合來自記憶體裝置1800的錯誤資訊。因此,錯誤資訊可自記憶體裝置1800經由錯誤介面2038傳達並因此自記憶體模組2000傳達。
儘管已使用圖18的記憶體裝置1800作為記憶體模組2000的記憶體裝置2001的實例,然而在其他實施例中,可使用不 同的記憶體裝置。舉例而言,可將圖19的記憶體裝置1900用作記憶體裝置2001。參照圖19,可將每一記憶體裝置1900的位址1906、寫入資料1910、輸出資料1924、資料選通訊號1922等耦接至資料介面2036。類似地,可將每一記憶體裝置1900的ECC控制器1918耦接至錯誤介面2038。
圖21是根據實施例的傳達錯誤資訊的技術的流程圖。在2100中,在記憶體裝置中發生讀取錯誤。因應於此,在2102中,診斷所述錯誤。如下文所將進一步詳述,不僅可辨識錯誤,且亦可採取其他修正措施來修復所述錯誤。
在2104中,報告錯誤資訊。如上文所述,可使用記憶體裝置、記憶體模組的其他組件、及處理器之間的通訊鏈路來傳達錯誤資訊。錯誤資訊2104的報告可使用該些通訊鏈路。
圖22是根據實施例的處置錯誤的技術的流程圖。此實施例是關於如何處置可修正的錯誤(例如,圖19的ECC控制器1918如何處置可修正的錯誤)的實例。具體而言,在已發生可修正的錯誤(CE)時,在2200中創建CE記錄。CE記錄可包括如上文所述的與錯誤相關的各種不同的資訊。
在2202中,重新讀取資料。在此實施例中,存在三種可能的結果:因應於重新讀取所述資料而不發生錯誤、發生可修正的錯誤、或發生不可修正的錯誤(UE)。若不發生錯誤,則在2204中將錯誤記錄標記為軟讀取錯誤。若發生可修正的錯誤,則在2208中重寫經修正資料。若發生不可修正的錯誤,則在2206 中將錯誤記錄更新至不可修正的錯誤記錄。
作為在2208中重寫經修正資料的一部分,可能會發生錯誤。若不發生錯誤,則在2210中將錯誤記錄標記為軟寫入錯誤。若發生不可修正的錯誤,則在2206中將錯誤記錄更新至不可修正錯誤記錄。
若發生可修正的錯誤,則在2212中,判斷記憶體胞元是否可修復。在特定的實施例中,此階段的可修正的錯誤可表明無法藉由重寫來修復錯誤。因此,所述錯誤可能由硬體錯誤造成。取決於在2212中判斷記憶體胞元是否可修復的判斷結果,對錯誤記錄進行進一步的注解並可修復錯誤記錄。若記憶體胞元是可修復的,則在2214中,修復記憶體胞元並將錯誤標記為硬錯誤。若記憶體胞元是不可修復的,則在2216中將錯誤記錄標記為不可修復的硬錯誤。因此,藉由上述診斷,可對錯誤進行進一步分類及/或修復。
儘管已使用2208中的重寫作為可表明不可修正的錯誤、可修正的錯誤或無錯誤的操作的實例,然而此種資訊可為其他操作的結果。舉例而言,在2208中重寫所述資料之後,可執行讀取並可產生類似的錯誤資訊。
圖23是根據另一實施例的處置錯誤的技術的流程圖。此實施例是關於如何處置不可修正的錯誤(例如,圖19中的ECC控制器1918如何處置不可修正的錯誤)的實例。具體而言,在已發生不可修正的錯誤後,在2300中創建不可修正的錯誤記錄。在 某些實施例中,不可修正的錯誤記錄可為如針對圖22所述在2206中更新至不可修正錯誤記錄的結果。
在2302中,可重新讀取與不可修正錯誤記錄相關聯的資料。因應於此,可執行不同的操作。若在重新讀取之後發生不可修正的錯誤,則在2306中,將所述記錄標記為不可修復的錯誤。若未發生錯誤,則在2304中,將所述記錄標記為軟讀取錯誤。若發生可修正的錯誤,則在2308中,重寫經修正的資料。類似於圖22中在2208中進行的重寫,所述操作所產生的結果可來自於其他來源,例如在重寫之後重新讀取所述資料而得。
因應於重寫所述資料的結果,可執行不同的操作。若結果是不可修正的錯誤,則可在2306中將所述記錄標記為不可修復的錯誤。若未發生錯誤,則在2310中將所述記錄標記為軟讀取及軟寫入錯誤。
若結果是可修正的錯誤,則在2312中,判斷記憶體胞元是否是可修復的。若記憶體胞元是可修復的,則在2314中,執行修復並將所述記錄標記為軟讀取及可修復的硬錯誤。若記憶體胞元是不可修復的,則在2316中,將所述記錄標記為軟讀取及不可修復的硬錯誤。
儘管上文已闡述了錯誤的各種分類,然而在某些實施例中,所有該些資訊可能無法在記憶體裝置外部得到。舉例而言,可將特定類型的錯誤(例如圖22中的軟讀取錯誤及軟寫入錯誤)聚合成軟錯誤。可執行任何聚合、匯總等來產生欲自記憶體裝置 傳送的錯誤資訊。而且,記憶體裝置可被配置成提供特定的詳細程度。
在實施例中,藉由利用例如圖22及圖23中所述的技術,記憶體裝置可用以執行例如軟錯誤恢復(例如記憶體清洗(scrubbing))、硬錯誤修復等錯誤管理技術。亦可在由記憶體裝置提供的錯誤資訊中得到與該些操作相關的資訊。
在實施例中,可在已發生讀取後執行上述操作。具體而言,所述操作可被配置成不阻斷讀取操作。然而,一旦出現適當的週期(例如維護間隔、再新循環等),便可對錯誤記錄進行處理、更新、記憶體胞元修復等。
儘管已使用特定的錯誤順序作為用以對錯誤進行歸類或修復記憶體胞元的準則的實例,然而在其他實施例中,可使用不同的順序。舉例而言,參照圖22,在那一實施例中,若發生可修正的錯誤、接著在2202中重新讀取時發生可修正的錯誤、再接著在2208中發生可修正的錯誤,則在2210中判斷記憶體胞元是否是可修復的。然而,在其他實施例中,可僅在2202中的重新讀取導致在多次重新讀取嘗試後發生可修正的錯誤時,方可在2210中判斷記憶體胞元是否是可修復的。亦即,在某些實施例中,用以對錯誤進行分類的特定準則可不同於上文所述的實例。
此外,儘管已使用錯誤類型的特定名稱,然而在某些實施例中,不需要使用所有該些錯誤類型。類似地,在某些實施例中,可使用不同的錯誤類型。
圖24是根據實施例的傳達錯誤資訊的技術的流程圖。在此實施例中,在2400中,當自記憶體讀取資料時發生讀取錯誤。因應於此,可產生錯誤資訊。舉例而言,讀取錯誤可能是此前經過修正的可修正的錯誤。錯誤資訊可能是關於此可修正的錯誤的資訊。在另一實例中,讀取錯誤可能是多個錯誤。錯誤資訊可能是關於該些錯誤的資訊。
在2402中,接收到讀取錯誤命令。在實施例中,可由記憶體模組接收讀取錯誤命令。若已發生錯誤,則在2404中,記憶體可傳送錯誤資訊。在2402中接收到讀取錯誤命令之前,記憶體模組可儲存關於已發生的錯誤的錯誤資訊。可因應於讀取錯誤命令而在2404中傳送關於先前錯誤的錯誤資訊。然而,若未發生錯誤,則2404中的錯誤資訊傳送可為表明未發生錯誤的資訊傳送。
如上文所述,可藉由匯流排傳送錯誤資訊。具體而言,匯流排可相對於記憶體模組的主資料路徑而為頻帶外路徑。因此,2404中的傳送可包括藉由匯流排傳送錯誤資訊。
圖24B是根據另一實施例的傳達錯誤資訊的技術的流程圖。參照圖24A及圖24B,在實施例中,圖24B的操作可為控制器的操作。具體而言,可在2406中自控制器傳送讀取錯誤命令。在2406中傳送的讀取錯誤命令可為在2402中接收的讀取錯誤命令。如上文所述,在2404中,可傳送錯誤資訊。可在2408中在控制器中接收錯誤資訊。舉例而言,控制器可用以對記憶體模組進行輪詢。因此,控制器可在2406中傳送讀取錯誤命令並在2408 中在控制器中接收錯誤資訊。如上文所述,控制器可具有記憶體,例如非揮發性記憶體,控制器可在所述記憶體中儲存錯誤資訊。稍後,可在2410中將錯誤資訊傳送至處理器。
儘管已將使用控制器傳送讀取錯誤命令作為實例,然而在另一實施例中,可由處理器在2406中傳送讀取錯誤命令。在2402中,可由記憶體模組接收此讀取錯誤命令,且在2410中,可將錯誤資訊傳送至處理器。亦即,錯誤資訊可在控制器中接收及/或處理,但未必必需在控制器中接收及/或處理。
圖25是根據另一實施例的傳達錯誤資訊的技術的流程圖。在此實施例中,在2500中可能發生讀取錯誤。在2512中,將讀取錯誤命令傳送至控制器。舉例而言,控制器可自處理器接收讀取錯誤命令。在2514中,將讀取錯誤命令傳送至記憶體模組。舉例而言,在2514中,控制器可將自處理器接收的讀取錯誤命令轉接至記憶體模組,修改讀取錯誤命令,為記憶體模組創建不同的讀取錯誤命令等,以將讀取錯誤命令傳送至記憶體模組。在2514中傳送的讀取錯誤命令可在2502中接收,且錯誤資訊可在與圖24A中的操作2402及2404類似的操作2504中傳送。錯誤資訊可如上文所述傳播至處理器。
如上文所述,控制器可向記憶體模組輪詢錯誤資訊並儲存此錯誤資訊。因此,當控制器自處理器接收到讀取錯誤命令時,控制器可已經具有讀取錯誤資訊。控制器可將所儲存的錯誤資訊傳送至處理器。在控制器將所儲存錯誤資訊傳送至處理器之前, 控制器可但未必必需向記憶體模組輪詢更多的錯誤資訊。
圖26是根據另一實施例的傳達錯誤資訊的技術的流程圖。在實施例中,在2600中,處理器可傳送讀取錯誤命令。因應於此,在2602中,處理器可接收錯誤資訊。在2606中,處理器可將錯誤資訊與額外資訊進行組合。如上文所述,額外資訊可為包括與記憶體模組不相關的資訊的任何資訊,例如處理器、周邊設備、匯流排等的狀態。在特定實例中,處理器可將錯誤資訊與來自MCA模組的資訊進行組合。
在特定實例中,在2608中,可將經組合的資訊提供至EDAC模組。如上文所述,EDAC模組可將關於各種系統的錯誤的資訊提供至較高層應用程式。
圖27是根據實施例的具有記憶體系統架構的系統的示意圖。在此實施例中,系統2700包括與圖1中的處理器104及軟體110類似的處理器2704及軟體2710。然而,在此實施例中,系統2700包括記憶體2702及錯誤修正電路2768。
在此實施例中,記憶體2702不用以修正錯誤。記憶體耦接至錯誤修正電路2768,並用以經由通訊路徑2772將資料傳送至錯誤修正電路。
錯誤修正電路2768用以修正自記憶體2702接收的資料中的錯誤。錯誤修正電路2768經由第二通訊路徑2770及第三通訊路徑2708耦接至處理器2704。第二通訊路徑2770是處理器2704用以接收資料時所經的主路徑。舉例而言,第二通訊路徑2770可 為用於處理器2704的系統匯流排。
相比之下,第三通訊路徑2708類似於上文所述的通訊路徑108等。亦即,第三通訊路徑2708可為單獨的頻帶外通訊路徑、包括控制器2714、或具有與上文所述通訊路徑類似的其他變化。
圖28是根據實施例的伺服器的示意圖。在此實施例中,伺服器2800可包括獨立伺服器(stand-alone server)、機架安裝伺服器(rack-mounted server)、刀鋒型伺服器(blade server)等。伺服器2800包括記憶體2802、處理器2804、及BMC 2814。處理器2804經由通訊路徑2806耦接至記憶體2802。BMC經由匯流排2816耦接至處理器2804且經由匯流排2812耦接至記憶體2802。記憶體2802、處理器2804、BMC 2814、通訊路徑2806、及匯流排2812及2816可為上文所述對應組件中的任一者。
圖29是根據實施例的伺服器系統的示意圖。在此實施例中,伺服器系統2900包括多個伺服器2902-1至2902-N。伺服器2902分別耦接至管理器2904。伺服器2902中的一或多者可類似於上文所述伺服器2700。此外,管理器2904可包括具有上文所述記憶體系統架構的系統。
管理器2904用以管理伺服器2902以及伺服器系統2900的其他組件。舉例而言,管理器2904可用以管理伺服器2902的配置。每一伺服器2902皆用以將錯誤資訊傳達至管理器2904。錯誤資訊可包括被傳達至上文所述伺服器2902中的一者中的處理器 的可修正錯誤資訊或者基於可修正錯誤資訊的其他錯誤資訊。管理器2904可用以基於此錯誤資訊採取措施。舉例而言,伺服器2902-1可具有超過臨限值的可修正的錯誤數目。管理器2904可用以將此伺服器2902-1的功能傳輸至伺服器2902-2並關閉伺服器2902-1以進行維護及/或更換。儘管已給出特定實例,然而管理器2904可用以基於錯誤資訊採取其他措施。
圖30是根據實施例的資料中心的示意圖。在此實施例中,資料中心3000包括多個伺服器系統3002-1至3002-N。伺服器系統3002可類似於上文在圖28中所述的伺服器系統2800。伺服器系統3002耦接至網路3004,例如網際網路。因此,伺服器系統3002可經由網路3004而與各種節點3006-1至3006-M進行通訊。舉例而言,節點3006可為客戶端電腦、其他伺服器、遠端資料中心、儲存系統等。
本發明的實施例包括一種系統,所述系統包括:記憶體,用以儲存資料、修正自所儲存資料讀取的資料中的錯誤,並因應於對自所儲存的資料讀取的資料中的錯誤進行修正而產生錯誤資訊;以及處理器,經由第一通訊路徑及第二通訊路徑耦接至記憶體並用以:經由第一通訊路徑自記憶體接收資料;以及經由第二通訊路徑自記憶體接收錯誤資訊。
在實施例中,所述錯誤為單位元錯誤;且所述錯誤資訊表明錯誤此前經過修正。
在實施例中,所述錯誤資訊包括經修正的錯誤資訊;且 所述處理器用以經由除第一通訊路徑以外的路徑接收經修正的錯誤資訊。
在實施例中,所述記憶體是動態隨機存取記憶體模組。
在實施例中,所述系統更包括:控制器,耦接至所述處理器及所述記憶體,並用以與所述處理器及所述記憶體進行通訊。所述控制器是所述第二通訊路徑的一部分。
在實施例中,所述控制器是基板管理控制器。
在實施例中,所述控制器藉由符合智慧平台管理介面(intelligent platform management interface,IPMI)的介面而耦接至處理器。
在實施例中,所述控制器藉由符合系統管理匯流排(System Management Bus,SMBus)的介面而耦接至記憶體。
在實施例中,所述控制器用以:儲存所述錯誤資訊;並因應於自所述處理器接收到請求而將所述錯誤資訊提供至所述處理器。
在實施例中,所述處理器包括耦接至所述記憶體的記憶體控制器;且所述記憶體控制器經由所述第一通訊路徑耦接至記憶體。
在實施例中,所述處理器包括耦接至記憶體的記憶體控制器;且所述記憶體控制器不用以對自所述記憶體讀取的資料中的錯誤進行修正。
在實施例中,所述第一通訊路徑包括多個資料線及至少 一個資料選通線;且所述記憶體用以藉由在所述至少一個資料選通線上傳送的訊號而傳達不可修正的錯誤。
在實施例中,所述系統更包括:第三通訊路徑,耦接於所述記憶體與所述處理器之間。所述記憶體用以在所述第三通訊路徑上傳達不可修正的錯誤。
在實施例中,所述處理器用以請求得到由所述記憶體產生的錯誤資訊。
在實施例中,所述處理器用以將所述錯誤資訊與和所述記憶體相關聯的其他資訊進行組合。
在實施例中,所述其他資訊是基於經由所述第一通訊路徑接收的資訊。
在實施例中,所述處理器包括耦接至所述第二通訊路徑的介面;且所述處理器更用以:經由所述介面接收錯誤資訊;以及經由所述介面接收其他資訊。
在實施例中,所述記憶體包括串列存在偵測系統及登記時鐘驅動器系統中的至少一者;且所述其他資訊是自所述串列存在偵測系統及所述登記時鐘驅動器系統中的所述至少一者接收。
本發明的實施例包括一種記憶體模組,所述記憶體模組包括:至少一個記憶體裝置,用以儲存資料;第一介面;以及第二介面。所述第一介面用以傳送儲存於所述至少一個記憶體裝置中的資料;且所述第二介面用以傳送因應於對自所述至少一個記憶體裝置讀取的資料中的錯誤進行修正而產生的錯誤資訊。
在實施例中,所述第二介面包括串列存在偵測介面及登記時鐘驅動器介面中的至少一者。
在實施例中,所述記憶體模組更包括控制器,所述控制器耦接至所述第一介面並用以因應於偵測到不可修正的錯誤而修改經由所述第一介面傳送的資料選通訊號。
在實施例中,第二介面更用以因應於偵測到不可修正的錯誤而傳送錯誤資訊。
本發明的實施例包括一種方法,所述方法包括:在記憶體模組中讀取包含錯誤的資料;基於對包含所述錯誤的所述資料的讀取而產生錯誤資訊;在記憶體模組中接收用於讀取錯誤資訊的命令;以及因應於所述命令而自記憶體模組傳送所述錯誤資訊。
在實施例中,所述方法更包括:在控制器中接收所述錯誤資訊;以及將所述錯誤資訊自所述控制器傳送至處理器。
在實施例中,所述方法更包括:自控制器傳送所述用於讀取錯誤資訊的命令;以及在所述控制器中接收所述錯誤資訊。
在實施例中,所述用於讀取錯誤資訊的命令被稱為用於讀取錯誤資訊的第一命令,所述方法更包括:自控制器中的處理器接收用於讀取錯誤資訊的第二命令;以及因應於所述第二命令而自所述控制器傳送所述第一命令。
在實施例中,所述方法更包括:藉由修改資料選通訊號而自所述記憶體模組傳達不可修正的錯誤。
在實施例中,所述方法更包括:在處理器中產生與所述 記憶體模組相關聯的額外資訊;以及在所述處理器中將所述額外資訊與所述錯誤資訊進行組合。
在實施例中,自所述記憶體模組傳送所述錯誤資訊包括:在通訊鏈路上傳送所述錯誤資訊及其他資訊。
在實施例中,所述其他資訊與所述記憶體模組不相關。
本發明的實施例包括一種系統,所述系統包括:記憶體;處理器,經由主記憶體通道耦接至所述記憶體;以及通訊鏈路,與所述主記憶體通道分開並耦接至所述記憶體及所述處理器;其中所述記憶體及所述處理器用以經由所述主記憶體通道及所述通訊鏈路彼此通訊。
在實施例中,所述處理器包括記憶體控制器;且所述記憶體控制器是主記憶體通道的一部分。
在實施例中,所述處理器用以經由所述通訊鏈路接收系統管理資訊。
在實施例中,所述系統管理資訊包括熱資訊與功率資訊中的至少一者。
在實施例中,所述記憶體用以經由所述通訊鏈路向所述處理器傳達錯誤資訊。
本發明的實施例包括一種系統,所述系統包括:無錯誤修正的記憶體;錯誤修正電路,耦接至所述記憶體,用以對自所述記憶體讀取的資料中的錯誤進行修正,並用以因應於所述錯誤而產生錯誤資訊;以及處理器,經由第一通訊路徑及第二通訊路 徑耦接至所述錯誤修正電路。所述處理器用以經由所述第一通訊路徑自所述錯誤修正電路接收經修正的資料;且所述處理器用以經由所述第二通訊路徑自所述錯誤修正電路接收所述錯誤資訊。
在實施例中,所述第二通訊路徑包括控制器,所述控制器用以自所述錯誤修正電路接收所述錯誤資訊並將所述錯誤資訊傳送至所述處理器。
本發明的實施例包括一種方法,所述方法包括:因應於經由資料介面所接收的讀取命令而在記憶體裝置中接收包含錯誤的資料;基於對包含所述錯誤的所述資料的讀取而記錄錯誤資訊;以及經由錯誤介面自記憶體模組傳送所述錯誤資訊。
在實施例中,所述方法更包括:因應於所述錯誤而重新讀取自記憶體讀取的所述資料,以及因應於重新讀取所述資料而辨識所述錯誤。
在實施例中,所述方法更包括:若所述重新讀取的資料表明不可修正的錯誤,則將所述錯誤辨識為不可修正的。
在實施例中,所述方法更包括:若所述重新讀取的資料表明不可修正的錯誤且所述錯誤此前是不可修正的錯誤,則將所述錯誤辨識為不可修復的。
在實施例中,所述方法更包括:若所述重新讀取的資料表明無錯誤,則將所述錯誤辨識為軟讀取錯誤。
在實施例中,所述方法更包括:因應於所述錯誤是可修正的錯誤,將經修正的資料重寫至所述記憶體。
在實施例中,所述方法更包括:若在所述重寫的期間發生不可修正的錯誤,則將所述錯誤辨識為不可修正的錯誤。
在實施例中,所述方法更包括:若在所述重寫的期間未發生錯誤,則將所述錯誤辨識為軟寫入錯誤。
在實施例中,所述方法更包括:若在所述重寫的期間發生可修正的錯誤,則嘗試修復所述記憶體。
在實施例中,所述方法更包括:基於嘗試修復所述記憶體的結果而辨識所述錯誤。
在實施例中,所述方法更包括:藉由修改資料選通訊號而自所述記憶體模組傳達不可修正的錯誤。
本發明的實施例包括一種記憶體模組,所述記憶體模組包括:資料介面;錯誤介面;多個記憶體裝置,每一記憶體裝置皆耦接至所述資料介面及所述錯誤介面且包括:記憶體,用以儲存資料;控制器,耦接至所述資料介面、所述錯誤介面、及所述記憶體;其中:所述控制器用以經由所述資料介面傳送儲存於所述記憶體中的資料;且所述控制器用以經由所述錯誤介面傳送因應於對自記憶體讀取的資料中的錯誤進行修正而產生的錯誤資訊。
在實施例中,所述錯誤介面用以聚合來自所述記憶體裝置的錯誤資訊。
在實施例中,對於每一記憶體裝置,所述控制器用以因應於偵測到不可修正的錯誤而修改自所述記憶體裝置傳送至所述 資料介面的資料選通訊號;且所述資料介面用以因應於來自所述記憶體裝置中的一或多者的經修改資料選通訊號而傳送資料選通訊號。
本發明的實施例包括一種記憶體裝置,所述記憶體裝置包括:記憶體,用以儲存資料;控制器,耦接至所述記憶體並用以:讀取儲存於所述記憶體中的資料;診斷自所述記憶體讀取的所述資料中的錯誤;以及因應於診斷出所述錯誤而辨識所述錯誤的錯誤類型。
在實施例中,所述控制器用以將所述錯誤類型辨識為軟讀取錯誤、軟寫入錯誤、硬錯誤、可修復的錯誤、及不可修復的錯誤中的至少一者。
在實施例中,所述控制器用以因應於重新讀取所述資料而診斷所述錯誤。
在實施例中,所述控制器用以因應於重寫所述資料而診斷所述錯誤。
在實施例中,所述控制器用以因應於重寫所述資料而判斷是否修復所述記憶體。
儘管已根據示例性實施例闡述了結構、方法及系統,然而此項技術中的通常知識者將易知,可對所揭露實施例作出諸多變化,且任何變化皆應因此被視為處於本文所揭露的設備、方法及系統的精神及範圍內。因此,此項技術中的通常知識者可在不背離隨附申請專利範圍的精神及範圍的條件下作出諸多潤飾。

Claims (16)

  1. 一種記憶體裝置,包括:記憶體;資料介面,經由在所述記憶體裝置外部的主記憶體路徑,往來於所述記憶體裝置傳達資料;錯誤介面,經由在所述記憶體裝置外部的系統控制路徑,自所述記憶體裝置傳達錯誤資訊,所述系統控制路徑與所述主記憶體路徑分開;以及控制器,在所述記憶體裝置內部,所述控制器耦接至所述資料介面、所述錯誤介面、及所述記憶體;其中所述控制器包括:錯誤修正碼引擎,用以修正自所述記憶體讀取的資料中的錯誤以產生修正後的資料,因應於對自所述記憶體讀取的所述資料中的所述錯誤進行修正而產生的錯誤資訊,經由所述資料介面傳送所述修正後的資料,並且經由所述錯誤介面傳送所述錯誤資訊;以及錯誤修正碼控制器,用以因應於所述錯誤修正碼引擎而記錄所述錯誤資訊。
  2. 如申請專利範圍第1項所述的記憶體裝置,其中所述控制器用以因應於偵測到不可修正的錯誤而修改經由所述資料介面傳送的資料選通訊號。
  3. 如申請專利範圍第2項所述的記憶體裝置,其中所述控制器用以將所述資料選通訊號與表明所述不可修正的錯誤的訊號進行組合。
  4. 如申請專利範圍第1項所述的記憶體裝置,其中所述錯誤介面更用以因應於偵測到不可修正的錯誤而傳送關於所述不可修正的錯誤的錯誤資訊。
  5. 如申請專利範圍第1項所述的記憶體裝置,其中所述系統控制路徑包括關於所述主記憶體路徑的頻帶外通訊路徑。
  6. 如申請專利範圍第1項所述的記憶體裝置,其中所述系統控制路徑包括平台管理匯流排。
  7. 如申請專利範圍第6項所述的記憶體裝置,其中所述平台管理匯流排包括系統管理匯流排、積體電路間匯流排、智慧平台管理介面匯流排或Modbus。
  8. 如申請專利範圍第1項所述的記憶體裝置,其中所述系統控制路徑實質上慢於所述主記憶體路徑。
  9. 如申請專利範圍第1項所述的記憶體裝置,其中所述主記憶體路徑包括第一資料速率且所述系統控制路徑包括第二資料速率,並且所述第二資料速率低於或等於所述第一資料速率的十分之一。
  10. 如申請專利範圍第1項所述的記憶體裝置,其中所述錯誤介面能夠接收錯誤資訊的輪詢。
  11. 如申請專利範圍第1項所述的記憶體裝置,其中所述控制器更用以經由所述錯誤介面推送錯誤資訊。
  12. 一種記憶體模組,包括:資料介面,經由在所述記憶體模組外部的主記憶體路徑,往來於所述記憶體模組傳達資料;錯誤介面,經由在所述記憶體模組外部的系統控制路徑,自所述記憶體模組傳達錯誤資訊,所述系統控制路徑與所述資料介面分開,並且所述系統控制路徑與所述主記憶體路徑分開;多個記憶體裝置,在所述記憶體模組內部,所述記憶體裝置中的每一者耦接至所述資料介面及所述錯誤介面,並包括:記憶體,用以儲存資料;控制器,耦接至所述資料介面、所述錯誤介面、及所述記憶體裝置的所述記憶體;其中所述控制器包括:錯誤修正碼引擎,用以修正自對應所述錯誤修正碼引擎的所述記憶體裝置讀取的資料中的錯誤以產生修正後的資料,因應於對自所述記憶體讀取的所述資料中的所述錯誤進行修正而產生的錯誤資訊,經由所述資料介面傳送所述修正後的資料,並且經由所述錯誤介面傳送所述錯誤資訊;以及錯誤修正碼控制器,用以因應於所述錯誤修正碼引擎而記錄所述錯誤資訊。
  13. 如申請專利範圍第12項所述的記憶體模組,其中:對於所述記憶體裝置中的每一者,所述控制器用以因應於不可修正的錯誤而修改資料選通訊號;且所述資料介面用以基於來自所述記憶體裝置的所述資料選通訊號來傳送模組資料選通訊號。
  14. 如申請專利範圍第12項所述的記憶體模組,其中所述述系統控制路徑包括包括關於所述主記憶體路徑的頻帶外通訊路徑。
  15. 如申請專利範圍第12項所述的記憶體模組,其中所述系統控制路徑包括平台管理匯流排。
  16. 如申請專利範圍第15項所述的記憶體模組,其中所述平台管理匯流排包括系統管理匯流排、積體電路間匯流排、智慧平台管理介面匯流排或Modbus。
TW104126772A 2014-08-19 2015-08-18 記憶體裝置以及記憶體模組 TWI658464B (zh)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US201462039396P 2014-08-19 2014-08-19
US62/039,396 2014-08-19
US201462057199P 2014-09-29 2014-09-29
US62/057,199 2014-09-29
US201462075231P 2014-11-04 2014-11-04
US62/075,231 2014-11-04
US14/594,049 2015-01-09
US14/594,049 US20160055058A1 (en) 2014-08-19 2015-01-09 Memory system architecture
US14/678,968 2015-04-04
US14/678,968 US10002043B2 (en) 2014-08-19 2015-04-04 Memory devices and modules

Publications (2)

Publication Number Publication Date
TW201611020A TW201611020A (zh) 2016-03-16
TWI658464B true TWI658464B (zh) 2019-05-01

Family

ID=55348414

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104126772A TWI658464B (zh) 2014-08-19 2015-08-18 記憶體裝置以及記憶體模組

Country Status (5)

Country Link
US (1) US10002043B2 (zh)
JP (1) JP6592305B2 (zh)
KR (1) KR102184581B1 (zh)
CN (1) CN105589762B (zh)
TW (1) TWI658464B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126381A (zh) * 2016-06-28 2016-11-16 浪潮(北京)电子信息产业有限公司 一种基于linux系统的CPU故障事件收集方法及系统
US10169126B2 (en) 2016-10-12 2019-01-01 Samsung Electronics Co., Ltd. Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation
US10725672B2 (en) 2016-10-12 2020-07-28 Samsung Electronics Co., Ltd. Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation
CN108664350B (zh) * 2017-03-31 2021-06-22 群联电子股份有限公司 数据保护方法、存储器存储装置及存储器控制电路单元
US11636014B2 (en) * 2017-10-31 2023-04-25 SK Hynix Inc. Memory system and data processing system including the same
KR102538679B1 (ko) * 2018-04-06 2023-06-02 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102623234B1 (ko) * 2018-08-14 2024-01-11 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
CN109284214B (zh) * 2018-08-15 2021-04-06 英业达科技有限公司 信息共享电路及共享内存状态的方法
CN109408273A (zh) * 2018-11-13 2019-03-01 郑州云海信息技术有限公司 一种消除故障内存对系统影响的方法及装置
US11093393B2 (en) * 2018-12-27 2021-08-17 Samsung Electronics Co., Ltd. System and method for early DRAM page-activation
US11307929B2 (en) * 2019-06-17 2022-04-19 Micron Technology, Inc. Memory device with status feedback for error correction
US10789094B1 (en) 2019-08-22 2020-09-29 Micron Technology, Inc. Hierarchical memory apparatus
KR20210026201A (ko) * 2019-08-29 2021-03-10 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 리페어 제어 방법
US11232049B2 (en) 2019-12-13 2022-01-25 Micron Technology, Inc. Memory module with computation capability
CN111143125B (zh) * 2019-12-20 2022-04-22 浪潮电子信息产业股份有限公司 一种mce错误处理方法、装置及电子设备和存储介质
CN111459557B (zh) * 2020-03-12 2023-04-07 烽火通信科技股份有限公司 一种缩短服务器开机时间的方法及系统
KR20210157863A (ko) * 2020-06-22 2021-12-29 에스케이하이닉스 주식회사 메모리, 메모리 시스템 및 메모리의 동작 방법
US11630723B2 (en) * 2021-01-12 2023-04-18 Qualcomm Incorporated Protected data streaming between memories
CN115443451A (zh) * 2021-04-01 2022-12-06 美光科技公司 与由微处理器识别的存储器错误相关的信息的记录和解码
KR20220139199A (ko) * 2021-04-07 2022-10-14 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
CN112947263A (zh) * 2021-04-20 2021-06-11 南京云玑信息科技有限公司 一种基于数据采集与编码管理控制系统
US11726873B2 (en) 2021-12-20 2023-08-15 Micron Technology, Inc. Handling memory errors identified by microprocessors
TWI816561B (zh) * 2022-09-28 2023-09-21 新唐科技股份有限公司 檢測裝置、檢測方法及檢測系統

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5559956A (en) * 1992-01-10 1996-09-24 Kabushiki Kaisha Toshiba Storage system with a flash memory module
US6172906B1 (en) * 1995-07-31 2001-01-09 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US20080028133A1 (en) * 2003-07-23 2008-01-31 Jeong-Mi Kwon Flash memory system and data writing method thereof
US20100058144A1 (en) * 2006-11-21 2010-03-04 Freescale Semiconductor, Inc Memory system with ecc-unit and further processing arrangement
TW201013691A (en) * 2008-09-25 2010-04-01 Key Technology Corp Error correcting code circuit
TW201015561A (en) * 2008-10-15 2010-04-16 Genesys Logic Inc Flash memory controller having configuring unit of error correction code (ECC) capability and method thereof
US7810017B2 (en) * 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
US20120185752A1 (en) * 2010-12-14 2012-07-19 Cavium, Inc. Dram address protection

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370668B1 (en) 1999-07-23 2002-04-09 Rambus Inc High speed memory system capable of selectively operating in non-chip-kill and chip-kill modes
US7234099B2 (en) 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US20040268046A1 (en) 2003-06-27 2004-12-30 Spencer Andrew M Nonvolatile buffered memory interface
US7587658B1 (en) * 2005-01-03 2009-09-08 Sun Microsystems, Inc. ECC encoding for uncorrectable errors
US7468993B2 (en) * 2005-01-14 2008-12-23 International Business Machines Corporation Dynamic reconfiguration of solid state memory device to replicate and time multiplex data over multiple data interfaces
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US7523381B2 (en) * 2005-09-01 2009-04-21 Micron Technology, Inc. Non-volatile memory with error detection
JP2007287208A (ja) 2006-04-13 2007-11-01 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びそのエラー訂正方法
US8352805B2 (en) * 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US7487428B2 (en) 2006-07-24 2009-02-03 Kingston Technology Corp. Fully-buffered memory-module with error-correction code (ECC) controller in serializing advanced-memory buffer (AMB) that is transparent to motherboard memory controller
JP4918824B2 (ja) * 2006-08-18 2012-04-18 富士通株式会社 メモリコントローラおよびメモリ制御方法
US7949931B2 (en) * 2007-01-02 2011-05-24 International Business Machines Corporation Systems and methods for error detection in a memory system
JP2008198310A (ja) * 2007-02-15 2008-08-28 Megachips Lsi Solutions Inc ビットエラーの修復方法および情報処理装置
KR20080114208A (ko) * 2007-06-27 2008-12-31 주식회사 하이닉스반도체 에러 정정 기능을 갖는 불휘발성 메모리 장치의 카피투프로그램방법
US8762620B2 (en) 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
KR20110050404A (ko) 2008-05-16 2011-05-13 퓨전-아이오, 인크. 결함 있는 데이터 저장소를 검출하고 교체하는 장치, 시스템 및 프로그램 제품
KR100955157B1 (ko) * 2008-12-24 2010-04-28 서울대학교산학협력단 메모리 장치 및 메모리 장치의 관리 방법
KR101042197B1 (ko) * 2008-12-30 2011-06-20 (주)인디링스 메모리 컨트롤러 및 메모리 관리 방법
KR101014040B1 (ko) 2009-03-19 2011-02-14 (주)인디링스 디램 버퍼 관리 장치 및 방법
US8239629B2 (en) * 2009-03-31 2012-08-07 Micron Technology, Inc. Hierarchical memory architecture to connect mass storage devices
US8301980B2 (en) 2009-09-28 2012-10-30 Nvidia Corporation Error detection and correction for external DRAM
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
EP2550661A4 (en) * 2010-03-22 2013-10-09 Mosaid Technologies Inc COMPOSITE SEMICONDUCTOR MEMORY DEVICE WITH ERROR CORRECTION
JP2012113466A (ja) * 2010-11-24 2012-06-14 Fujitsu Ltd メモリコントローラ及び情報処理システム
US9317429B2 (en) 2011-09-30 2016-04-19 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy over common memory channels
JP2013109637A (ja) * 2011-11-22 2013-06-06 Renesas Electronics Corp メモリインターフェース回路、および、そのメモリインターフェース回路の動作方法
KR20130086887A (ko) 2012-01-26 2013-08-05 삼성전자주식회사 메모리 버퍼, 이를 포함하는 장치들 및 이의 데이터 처리 방법
US9697147B2 (en) 2012-08-06 2017-07-04 Advanced Micro Devices, Inc. Stacked memory device with metadata management
US8898544B2 (en) 2012-12-11 2014-11-25 International Business Machines Corporation DRAM error detection, evaluation, and correction
US9246516B2 (en) 2012-12-20 2016-01-26 Intel Corporation Techniques for error correction of encoded data
US9047211B2 (en) 2013-03-15 2015-06-02 SanDisk Technologies, Inc. Managing data reliability
US9477550B2 (en) * 2013-10-24 2016-10-25 Globalfoundries Inc. ECC bypass using low latency CE correction with retry select signal
US9645829B2 (en) 2014-06-30 2017-05-09 Intel Corporation Techniques to communicate with a controller for a non-volatile dual in-line memory module
KR102189780B1 (ko) * 2014-08-11 2020-12-11 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5559956A (en) * 1992-01-10 1996-09-24 Kabushiki Kaisha Toshiba Storage system with a flash memory module
US6172906B1 (en) * 1995-07-31 2001-01-09 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US20080028133A1 (en) * 2003-07-23 2008-01-31 Jeong-Mi Kwon Flash memory system and data writing method thereof
US7810017B2 (en) * 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
US20100058144A1 (en) * 2006-11-21 2010-03-04 Freescale Semiconductor, Inc Memory system with ecc-unit and further processing arrangement
TW201013691A (en) * 2008-09-25 2010-04-01 Key Technology Corp Error correcting code circuit
TW201015561A (en) * 2008-10-15 2010-04-16 Genesys Logic Inc Flash memory controller having configuring unit of error correction code (ECC) capability and method thereof
US20120185752A1 (en) * 2010-12-14 2012-07-19 Cavium, Inc. Dram address protection

Also Published As

Publication number Publication date
TW201611020A (zh) 2016-03-16
US20160055059A1 (en) 2016-02-25
US10002043B2 (en) 2018-06-19
KR20160022249A (ko) 2016-02-29
KR102184581B1 (ko) 2020-11-30
JP2016045955A (ja) 2016-04-04
CN105589762A (zh) 2016-05-18
CN105589762B (zh) 2020-01-14
JP6592305B2 (ja) 2019-10-16

Similar Documents

Publication Publication Date Title
TWI658464B (zh) 記憶體裝置以及記憶體模組
US10824499B2 (en) Memory system architectures using a separate system control path or channel for processing error information
KR102378466B1 (ko) 메모리 장치 및 모듈
US10019312B2 (en) Error monitoring of a memory device containing embedded error correction
CN105373443B (zh) 具有存储器系统体系结构的数据系统和数据读取方法
TWI417891B (zh) 記憶體鏡射裝置與方法
US9785570B2 (en) Memory devices and modules
US20150331732A1 (en) Memory device having storage for an error code correction event count
US20140195867A1 (en) Memory testing with selective use of an error correction code decoder
US9086990B2 (en) Bitline deletion
US10521113B2 (en) Memory system architecture
US8176388B1 (en) System and method for soft error scrubbing
US20190042364A1 (en) Technologies for maintaining data integrity during data transmissions
WO2019100186A1 (en) Power management for partial cache line sparing
US11656929B2 (en) Memory module and operating method