TW200845022A - ECC implementation in non-ECC components - Google Patents

ECC implementation in non-ECC components Download PDF

Info

Publication number
TW200845022A
TW200845022A TW097109586A TW97109586A TW200845022A TW 200845022 A TW200845022 A TW 200845022A TW 097109586 A TW097109586 A TW 097109586A TW 97109586 A TW97109586 A TW 97109586A TW 200845022 A TW200845022 A TW 200845022A
Authority
TW
Taiwan
Prior art keywords
address
memory
ecc
data
physical
Prior art date
Application number
TW097109586A
Other languages
English (en)
Other versions
TWI498913B (zh
Inventor
Michael John Haertel
Stephen R Polzin
Andrej Kocev
Maurice Bennet Steinman
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of TW200845022A publication Critical patent/TW200845022A/zh
Application granted granted Critical
Publication of TWI498913B publication Critical patent/TWI498913B/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
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation

Description

200845022 九、發明說明: 【發明所屬之技術領域】 本發明係關於電腦系統,尤係關於記憶體子系統中之 錯块檢查和更正。 【先前技術】 許多高階電腦系統在他們的記憶體子系統内包含已知 為之特徵“ECC” 。阢(:(錯誤更正碼(err〇r c〇rrecting _ ode)或者錯誤檢查和更正(error checking and correction))用來偵測於記憶體中之訛誤資料,以及若可 月匕的話’更正該說誤資料。由於不同的來源,譬如自然背 景輻射、電性雜訊、故障的組件、等等,而使得記憶體中 之資料也許變成訛誤。 ECC子系統藉由使用所希望之記憶體内容而工作, 記憶體内容作為用於計算額外的位元以形成錯誤更正碼 基組成ECC之資料和位元儲存於記憶體中。於一些e 相谷系統中,包括ECC之位元可以與資料分離儲存,其 ECC保護該資料(例如,如於—些議系統中)。於其他 ECC相容電腦系統中,特殊的記憶體裝置用來餘存資料 匕括ECC之位元。這些記憶體褒置需要額外的儲存空 (12.5%於-個類型)用來儲存聊連同保護的資料。額 的儲存空間依次需要額外的1連接(亦即,連接器和電路 跡)以傳遞在記憶體控制器與記憶體之間的額外的位元 ECC n己k、體組件主要用於高階電腦系統中,因此他們的 用未變成普及足以獲得經濟規模。因此,於記憶體系統 94271 5 200845022 執行ECC也許需要明顯的额外成本。 除了成本因素外,於一此雷 也許不可行。例如,用來在^上=射執行咖記憶體 接之實際空間和儲存””月;”’躅系統執行額外互連 门々储存工間明頦受到限制 也許一些桌上型電腦系絲办閂介5 f 王4了獲传)。 i冤月自糸、、、先工間亦受到限制。 糸 統中不可能使用ECC相容組件,即使在 4種系 做。 ”吏在其他方面希望如此 ⑩【發明内容】 本發明揭示-種用來於非錯誤更正碼相容(咖一 ΕΚ — compliant)組件中執行錯誤更正碼檢查⑽◦之方法和裝 置。於一個實施例中,本方法包含接收邏輯位址,其中該 $輯位㈣2至記憶體之第—和第二實體位址。記憶體^ 第和第一貫體位址對應於分別儲存資料和相應之記 fe體位置。本方法復包括轉譯邏輯位址成該第一和第二實 體位址、通過資料通路存取該資料、通過相同的資料通路 ⑩各自地存取ECC、以及檢查使用該ECC之資料之完整性。 於一個實施例中,記憶體子系統包含記憶體、資料通 路、和藉由資料通路耦接至記憶體之記憶體控制器。該記 憶體控制器耦接以接收邏輯位址並配置以轉譯該邏輯位址 成第一和第二實體位址。第一實體位址對應於其中儲存了 資料之記憶體位置,而該第二實體位址對應於其中儲存了 關聯於資料之ECC之記憶體位置。復配置記憶體控制器以 通過該資料通路存取資料、通過該資料通路各自地存取資 料、以及檢查使用該ECC之資料之完整性。, 6 94271 200845022 於不同的貫施例中,可以配置_部分的資料㈣相關 聯之ECC之儲存而使得該部分的資料在記憶體之相同頁或 列中。於此種方式,僅須提供單—列位址(隨同二個分離之 打位址)以存取資料和其對應之Ecc。因為僅須一個列位 址,因此可以避免存取損失(其中分離列必須預充電)。一 般而言’在給定之記憶體裝置中資料和咖之配置可 得資料之位元和其對應的ECC之位元可以儲存在實 的位置中。 【實施方式】 茲轉至第1圖,顯示電腦系統300之一個實施例。於 第1圖之實施例中,電腦系統300包含幾個處理節點、 312A、312B、312C、和3121)。各處理節點經由包含在各個 別處理節點312Α至3抓内之記憶體控制器3似至3⑽ 而搞接至各自的記憶體314Α至314D。此外,處理節點⑽ =312D包含用來於該等處理節點31以至312d之間通訊的 介面邏輯。例如,處理節點312A包含介面邏輯31δΑ用來 與處理節點312Β通訊、介面邏輯318Β用來與處理節點 312C通訊、和第三介面邏輯318C用來與又另一處理節點 (未顯示)通訊。相似情況,處理節點312β包含介面邏輯 318D、318E、和318F;處理節點312C包含介面邏輯318g、 318H、和3181 ;處理節點312j)包含介面邏輯318J、31狀、 萍318L處理卽點312])經由介面邏輯318L而摩禺接與複數 個輸入/輸出裝置(例如,裝置320A至320B於雛菊鏈配置) 通訊。其他的處理節點可與另外的ί/〇裝置以相似的方式 94271 7 200845022 # 通訊。 處理節點312A至312D執行基於封包的鏈路用於處理 節點間之通訊。於本實施例中,鏈路執行為單方向線路組 (例如,線路324A用來傳送封包從處理節點312A至處理節 點312B而線路324B用來傳送封包從處理節點312B至處理 節點312A)。其他組之線路324C至32411用來傳送封包於 其他處理節點之間如第4圖中所示。一般而言,各組之線 路324可以包含一個或多個資料線路、一個或多個對應於 該資料線路之時脈線路、和一個或多個指示被傳輸封包類 型之控制線路。該鏈路可操作於快取一致樣式(cache coherent fashion)用於處理節點之間的通訊,或者操作於 不一致樣式用於處理節點與I/O裝置(或者匯流排橋接 器,至譬如周邊組件互連接(Peripheral Component Interconnect,PCI)匯流排或工業標準架構(Industry Standard Architecture,ISA)匯流排之習知構造之 I/O ⑩匯流排)之間的通訊。而且,該鏈路可操作於不一致樣式使 用雛菊鏈結構於I/O裝置之間,如所示。應注意的是待傳 輸從一個處理節點至另一個處理節點之封包可通過一個或 多個中間節點。例如,由處理節點312A傳輸至處理節點 312D之封包可通過處理節點312B或處理節點312C其中一 者,如第4圖中所示。可以使用任何適當的路線演算法。 電腦系統300之其他實施例可包含較第4圖中所示之實施 例者更多或更少之處理節點。 、 一般而言,封包於節點之間線路324上可傳送為一個 8 94271 200845022 或多偭位元時間。位元時間可以是於對應時脈路上時脈訊 號之上升或下降波緣。封包可包含用於起始異動之命令封 包、用於維持快取一致性之探測封包、和來自於反應於探 測和命令之反應封包。 除了記憶體控制器和界面邏輯之外,處理節點312A 至312D可包含一個或多個處理器。廣言之,處理節點包括 至少一個處理器並可視情況包含記憶體控制器用於與記憶 體和其他所需要的邏輯通訊。尤其是,各處理節點312A 至312D可包括一個或多個複製之處理器10如第1圖中所 示(例如,包含如第2至3圖中所示之各種結構和操作細 節)。一個或多個處理器可包括晶片多重處理(chip multiprocessing,CMP)或晶片多緒(chip multithreaded, CMT)積體電路於處理節點中或形成該處理節點,或該處理 •節點可以具有任何其他所希望之内部結構。 記憶體314A至314D可以包括任何適當的記憶體裝 _置。例如,記憶體314A至314D可以包括一個或多個RAMBUS DRAM(RDRAM)、同步 DRAM(SDRAM)、DDR SDRAM、靜態 RAM、 等等。電腦系統300之位址空間被劃分於記憶體314A至 314D之間。各處理節點312A至312D可包含記憶體地圖用 來決定那些位址被映對至那些記憶體314A至314D,並因 此決定對於特定位址之記憶體請求應路由那些處理節點 312A至312D。於一個實施例中,對於電腦系統300内位址 之一致點(coherency point)為編接至儲存對應於該位址 之位元組之記憶體之記憶體控制器316A至316D。換言之, 9 94271 200845022 記憶體控制器316A1 316D負責確保各記憶體存取對應之 記憶體314A至314D發生於快取一致樣式。記憶體控哭 316A至316D可以包括控制電路用於界接記憶體3UA ^ 314D。此外,記憶體控制器316A至316D可以包含用於排 佇記憶體請求之請求佇列。 7 一般而言,介面邏輯318A至318L可以包括各種之緩 衝器用來接收來自鏈路之封包,並缓衝儲存待傳送於該鍵 •路之封包。電腦系統300可以使用任何合適的流程控:機 構用來傳送封包。舉例而言,於一個實施例中,各介面邏 輯318儲存各類型之緩衝器的數量之計數,該緩㈣㈣ 鏈路之另一端之接收器内,介面邏輯係連接到該另一端。 介面邏輯不傳送封包,除非該接收介面邏輯具有閒置緩衝 =以儲存封包。當接收緩衝器由於路由封包向前而閒置 時,該接收介面邏輯傳送訊息至該發送介面邏輯以表示缓 衝器已經閒置。此種機構可稱之為“聯票式(c〇up〇n_ • based)” 系統。 I/O裝置320A至320B可以是任何合適的1/〇裝置。 牛例而5,1/0裝置320A至320B可以包含用來可耦接至 另迅私系統(例如,用網路介面卡或數據機)而與該電腦 系統通訊的裝置。再者,1/〇裝置32〇A至32〇B可以包含 才見Λ加速為、聲音卡、硬碟或軟碟機或驅動控制器、以(小 ,腦系統界面(Small C⑽puterSystems Interface))轉接 :和電話卡、音效卡、和各種之資料獲取卡(譬如GpiB或 昜匯"IL排界面卡)。再者,任何執行為卡之I/0裝置亦可執 94271 10 200845022 行為於系統300之主電路板上之電路,和/ 點之軟體。應注意的是詞囊“ 1/〇壯¥,,去订於處理即 置”在此處表示同義1/0衣置㈣囊“周邊裝 多個處理器10可以執行於更傳統的個人 a細構,個人電腦結構包含處理器之_個或多個入 :連接至橋接器以橋接至一個或多個1/〇互連接和/或;: 4¾體。 轉至第2圖,顯示記憶體子系統之一個實施例之圖 不。於所示實施例中,記憶體子系統包含具有複數個記情 體模組314之記憶體。各記憶體模314包含複數個記情 體裝置360。特定數目之記憶體模、组314和於各模組上ς d憶體裝直360於不同的實施例中根據譬如記憶體之尺寸 (和最大可能尺寸)、連接器之數目、快取線収寸、和其 他共同的因素之參數而可改變。 ^ 記憶體模組314經由記憶體匯流排35〇而輛接至記憶 體控制器316。可以配置記憶體匯流排35〇以於纪情姆模 組314和記憶體控制器316之間傳輸資料和位址訊^虹可 經由其為記憶體匯流排350之-部分之資料通路而傳輸資 料訊號至記憶體模組314或自該記憶體模組3U傳輸資料 訊號。可自記憶體控制器316傳輪位址訊號至記憶體模组 314,位址訊號可包含獨立的列位址訊號(用於選擇記憶體 之列)和行位址訊號(用於選擇列中特定的位址),該列:址 訊號與行位址訊號可於分離之時間傳送。資料和錯誤更正 碼(ECC)可以儲存於遍及各種記憶體裝置36〇之記情體模 94271 11 200845022 組中。f例而言,若記憶體模組314包含8個記憶體裝置 360則貝料之位兀組可藉由將該位元組之一個位元儲存於 各記憶體裝置中而被儲存。 記憶體控制器316包含Ecc子系統34〇,該ECC子系 統可用來驗證讀取自記憶體之資料之完整性,並於一 些十月況,更正也許存在之任何錯誤。ECC子系、统340可使 周數種不同之已建立完備之產生Ecc用於保護資料之方法 肇中之其中一種方法。 於2貝施例中’記憶體模組314為非ECC相容(當由 本技術狀〜、所了解)§己憶體模組。然而,記憶體空間可保留 在記憶體模組314内以便错存ECC。舉例而言,於一個實 施例中,可保留記憶體模組之1/8之可利用位址空間用於 ECC,同時可保留剩餘的7/8用於儲存資料。保留用於财 之記憶體部分對於應用也許是不可見的,而因此僅由於記 憶體控制器316中之ECC子系統34〇所使用。將記憶體位 ❿址空間劃分成保留用於館存資料之位置保留用於儲存财 之那魏在將結合第3W而作更詳細地討論。 第3圖為顯示記憶體之一個實施例之定址的圖示,其 :部分之記憶體被保留用於儲存ECC。於所示實施例中:、 兒憶體414顯示為邏輯位址空間和實體位址空間。於邏輯 位址空間中’保留小部分之記憶體用於儲存Ecc,而保留 主要的位址空間用於儲存資料。各儲存之ECC對應於館存 於用於保留ECC之位址空間中之資料的區塊。保留用於儲 存貝料之位土止空間可由應用軟體所存取,該應用軟體需要 94271 12 200845022 • ='==r。反之,保_存-之 不可見的:存 撕一 土、 對於ECC子系統(嬖如第? 所不者)可以是可見的。 匕如昂2圖中 於只體位址空間,該資料和 頁或列配置。於此特定實施例中,二己憶體之 使得可以更有对j同頁中貧料區塊接近頁邊界處。如此 、存取,因為單一列位址 存取資料和其對岸之FrT & & 钣毛迗用於待
之ECC可儲广If H單位之資料和其對應 知㈣ '存 列,但是於不同行中。藉由配置ECC 和對應之貧料,而使得僅單一列位址須被送去存取 聯於預充電一列之存取損失。因此EC。儲存 於位於辦接其所保護資料之位址位置。—般而言 得自於保留T/n(例如,1/8,此處η=δ)位址用 咖置 儀(例如,7一 資料和對應ECC之其他配置為可能並予以考量。舉例 =言,於-個實施例中,每一個使用者請求儲存位置:數 字位址可以乘上(η+υ/η(例如’…,此處η:。以便計算= 於記憶體中的實際位置,該實際位置將用來儲存對應: ECC。此將得到ECC可予儲存之資料區塊之間# ; 1/8)間隙。 _第4圖顯示方法之一個實施例圖示’用來交換位址位 元以便確保資料和其相關ECC儲存於記憶體之同一頁。於 94271 13 200845022 所示實施例中,保留邏輯位址空間之某些部分(此處顯示為 A8 A7、A6、A5、A4、A3、A2、A1、A0)用於儲存 ECC。詳 言之’於此例中用來儲存資料之最高可使用邏輯位址為 - 1—111。因此’於此例中所有邏輯位址1 Η_χχχ_χχχ 被保4用於儲存ECC,同時其餘的邏輯位址被保留用於儲 存資料。 為了保留用於儲存對應於資料範圍之Ecc之實體位址 ⑩工間,可父換位址位元。因此,如圖中所示,對於實體位 址之一個特定範圍,可藉由交換(亦即,交易)某些位址位 元而獲得用於對應ECC之實體位址。於此實例中,位址位 元A8、A7和A6與位址位元A5、A4和A3交換以便獲得用 於儲存對應ECC之實體位址。提供至記憶體之所得到之位 址為 A5、A4、A3、A8、A7、A6、A2、Al、A0。因此,對於 儲存在貝體位址A5 A4 A3 A8 A7 A6 X X X之範圍内的資 料’對應的ECC可儲存在實體位址A5 A4 A3 1 1 1 A2 A1 • A0 〇 以此種方式交換位址位元可以使得更有效存取資料和 對應之ECC。可以此種方式交換位址位元(譬如於上述例子 中)· ECC儲存於與對應之資料區塊相同的頁内,並且亦可 以儲存於頁邊界上,如第3圖中所示。於是,對於對應於 單一列位址之記憶體之頁,資料和其對應之£(:(:將儲存在 相同的列,但在不同之行中。因此,單一列位址可被發送 仔取ECC和資料’用他們的對應行位址分別發送。於此種 方式,存取區塊資料和對應之ECC僅需要一個預充電循環 94271 14 200845022 參 以取代二個預充電循環,否則該二個預充電循環也許需要 從二個不同的列位址存取資訊,由此使得存取等待時間 (latency)最小。 第5圖顯示記憶體模組之一個實施例之圖示。於所示 貫施例中,記憶體模組314如於本技術狀態所了解的不是 ECC相容記憶體模組。於技術狀態Ε(χ相容記憶體模組, 一般提供有專用於ECC之額外的儲存器。此額外的儲存器 鲁可藉由安裝於記憶體模組之PCB(印刷電路板,print二 circuit board)上之額外的記憶體裝置所提供。此外,ecc 相容記憶體模組之間之資料通路(和一般而言ECC相容呓 憶體)較寬以允許Ecc與對應受保護資料同時被輸送。n 反之,第5圖中所示之記憶體模組314被設計用於資 料儲存而沒有ECC相容之任何特殊的考量。不過,使用此 處所揭示之技術,使用ECC可執行於這些類型之記憶體模 組。 、 於此特定實施例中,記憶體模组314包含8個記憶體 裝置360。各記憶體裝f 360可以儲存部分尤資料區塊和 部分之ECC。舉例而言,位元組(8位元)可以藉由將該位天 組之-個位元儲存至8個記憶•置之每—個記情 中而儲存於記憶體模組314。相似情況,各記憶體裝置編 :以儲存8位元ECC之一個位元。於是,儲存資料和EC( =展佈遍及記憶體模組314之複數個記憶體裝置。此種 =置可以依照前面結合第3圖所討論之映對實體位址 而仍然適合用於配置儲存之資料和Ecc。 94271 15 200845022 記憶體模組314亦包含連接器370,該連接器37〇致 能待耦接於記憶體匯流排之記憶體模組。連接器37〇可以 是卡片邊沿(card-edge)或任何其他類型之適合連接器。連 接之資料部分之寬度(就位元數而論)可以依照使用了快取 ,路之系統中之快取線路。n统其他方面非為ecc、相 谷,則快取線路將足夠的寬以容納轉移之資料,但是並未 見至足以容納同時轉移Ecc。如以下將作更詳細之討論, φ =此種實施例中之ECC可輸送橫越資料匯流排,從轉:之 資料於轉移分離方式。 "Γ ^ 第6圖為使用具有非ECC相容記憶體裝置之ecc子系 統驗證資料的完整性之一個實施例之流程圖。於所示實施 =中]方法600開始提供邏輯位址(6〇5)。可以藉由執行於 電腦系統之軟體雨提供邏輯位址至記憶體控制器。於接收 .邏=位址後,記憶體控制器然後可將邏輯位址轉譯成第一 和第一貫體位址(610)。這些實體位址之第一個可以對廡於 •儲存於記憶體中之資料區塊,同時第二個實體位址對;於 用來檢查資料區塊之完整性《咖。於一個實施例中厂邏 輯位址可以轉譯單一列位土止和二個分離之行位土止。第一行 位址(連同列位址)對應於儲存資料區塊之位置,而第二= 位址(連同相同列位址)對應於關聯於該資料區塊之EM。 在轉譯邏輯位址成第一和第二實體位址時,於第— 期期間資料可經由資料通路而從第一實體位址存取 (615)。因為記憶體系統不明確設計用於ECC相容之標準形 狀因素(form factor),因此對應於資料之ECC經由;;的 94271 16 200845022 · 2通路於分離之第二遇期中存取⑽)。於是’給定的用 * :力之保@位址工間和於與存取資料之週期分離之週期 =取位址空間致能於裝置中所揭示執行之咖,否則該 ^不表示設計與咖相容。於存取資料和其對應咖後, y後E:CC子系統可依照^ t 认協疋檢查貧料的完整性(625)。 此㈣可亦包含若可能於摘測錯誤時而更正資料。' 資料ί方法用t產生和儲存用於待寫入記憶體之 ⑽鳋 方法考1接收對應於將儲存資料之位置之 邈輯位址。用於儲存資料之第一每麵 址導得。用於儲存對應ECC之第::體二:譯之邏輯位 , 映對至保留用於ECC館存之位址空間之 部分。當接收資料時,其可依日 止工間之 生對應之ECC。資料可^、^的财協定而用來產 位址。於第一月细p 、、肩舄至纪憶體於第一實體 弟―週期,咖可寫至第—實體位址。如 其他貫施例所討論的,第一 /、 ^ 列位址但不同的行位址。“1體位址可分享共同的 了解照特定實施例而詳細說明了本發明,作是將 二例係為例示說明而本發明之範圚不受此等 制。任何對此等實施例之變化、修飾、添加 下列詳細宇請專利修飾、添加、和改進可落於 月專利耗圍之本發明範圍内。 【圖式簡單說明】 基於閱讀以上之詳細說明並束附 態樣將變得报清楚,其中:/ 兮圖式,本發明之 94272 17 200845022 :1圖為電腦系統之一個實施例圖示; =2圖為記憶體子系統之一個實施例圖示; 3 圖 - , ^不元憶體之一個實施例之定址的圖示,其中 在圖1之各部分保留用於儲存錯誤更正碼(ECC); 弟4圖显g 一、 〜不方法之一個實施例圖示,用來交換位址位 一 、f萑保貝料和其相關ECC儲存於記憶體之同一頁; =5圖顯示記憶體模組之一個實施例之圖示;以及 第6圖為使用具有非ECC相容記憶體裝置之ECC子车 統驗證資料的完整性之_個實施例之流程圖。 ” 、雖然此處所揭示之標的事物易受到各種修改和替代形 式之衫響,然該等標的事物之特定實施例已藉由圖式 方式頒不和予以詳細說明。然而,應了解到此處特 貫施例之圖式和說明並不欲限制本發明於所揭示之特 式反之,本發明將涵蓋所有落於由所附之申請專利 所界定之精神和範圍内之所有的修飾、等效、和改變。 【主要元件符號說明】 又 300電腦系統 3似至3121)處理節辱、 314記憶體模組 314A至314D記憶體 316、316A至316D記憶體控制器 318、318A至318L介面邏輯 320A至320B裝置(I/O裝置) 324、324A 至 324H 線路 340 ECC子系統 350記憶體匯流排 360記憶體裝置 370連接器 94271 18 200845022 414 記憶體 600 方法 605、610、615、620、625 步驟 A8、A7、A6、A5、A4、A3、A2、Al、A0 邏輯位址空間部分
19 94271

Claims (1)

  1. 200845022 申請專利範圍: ι· 一種方法,包括下列步驟: 接收邏輯位址,JL φ,# 每 /、 該遴輯位址映對至記憶體之 弟一貝體位址和該記憶體之 杏 -實體位址係組構以儲存二 第 娃— 储存貝料而該第二實體位址係敏 構以儲存對應於儲存於哕證 _ 、 誤更正碼⑽);、〜-貫體位址之該資料之錯 „輯位址成該第_和第二實體位址; 徒該乐-貫體位址通過資料通路存取該資料; 通過該資料通路各自存取該ECC;以及 檢查使用該ECC之資料之完整性。 2·如申請專利範圍第1項 ^ ^ ^ _ 、 去,,、中,該第一實體位址 位於§己憶體頁中,以及Α伞,… 記憶體頁中。 ’、〜弟二貫體位址位於相同 3·如申請專利範圍第2項 體頁,實體位址之第-子隹中,對於給定的記憶 之子木5保留用來儲存資料而位址 之弟一子木5保留用來儲存ECC,夂 該第—CC σΕα關聯於儲存在 市之戶'體位址中儲存之資料。 4. 如申請專利範㈣i項之方法,其中, 包含列位址和第一行位址," 貝-位址 A入 乂及其中,該第二實體位址 匕含該列位址和第二行位址。 5. 如申請專利範圍第1項之方 甘士 # 成為第—和第一體位::’其中,轉譯該邏輯位址 . Λ體位址包括交換該邏輯位址之位 心而使得該咖儲存在鄰接在該記憶體中 94271 20 200845022 2實體記憶體位址中,在該實體位置中館存由該ecc 所保,之㈣,其中,該交換根據頁邊界而實施。 •如申碩專利範圍第1項之方法,i中 鵰/ ^ T,错由將該第一實 肢位址乘上(η+1)/η而計算該第二實體位址。 7·如申請專利範圍第1項之方法,德白虹心^ 」 次设包括儲存該ECC於資 科之區塊之間之區塊中,其中,保留1/η之該位址用來 儲存ECC而保留(n-i)/η之該位址用來儲存資料。 8 ·如申請專利範圍第1項之方法庐 乃凌奴包括儲存£CC於鄰接 由該ECC所保護之資料之位址位置中。 9.如申請專利範圍第μ之方法’其中,該記憶體為包含 複數個記憶體裝置之記憶體模組,以及其中,該資料和 該ECC儲存遍及該複數個記憶體裝置。 10 · —種記憶體子系統,包括·· 記憶體; 資料通路, ·以及 藉由該資料通路耦接至該記憶體之記憶體控制 器,其中,該記憶體控制器耦接以接收邏輯位址,以及 其中,組構該記憶體控制器以: 轉譯該邏輯位址成記憶體之第一實體位址和該記 憶體之第二實體位址,其中,組構該第一實體位址以儲 存資料和組構該第二實體位址以儲存對應於儲存於該 第一貫體位址之該資料之錯誤更正碼(ECC); 存取來自該記憶體中之該第一實體位址經由該資 料通路之資料; 、 94271 21 200845022 分別存取來自該第二實體位址經由該資料 該ECC ;以及 < 似查使用該ECC之該資料之完整性。 11. 如:請專利範圍第10項之記憶體子系統,其中,該第 一實體位址位於記憶體頁中,以及其中,該第二實體位 址位於相同之記憶體頁中。 12. 如申請專利範圍第u項之記憶體子系統,其中,對於 •,定的記憶體頁,實體位址之第一子集合保留用來儲存 貝料而位址之第二子集合保留用來儲存ECC,各ECC關 聯於儲存在該第一子集合之實體位址中之資料。 13·如申請專利範圍第1〇項之記憶體子系統,其中,該第 貝體位址包含列位址和第一行位址,以及其中,該第 二實體位址—包含該列位址和第二行位址。 〃 14·如申請專利範圍第10項之記憶體子系統,其中,組構 該U己隐體控制益以藉由交換該邏輯位址之位元而轉譯 _ 該邈輯位址成為第一和第二實體位址,使得該ECC儲存 在鄰接在該記憶體中之實體位置之實體記憶體位置 中’在該實體位置中儲存由該ECC所保護之資料,以及 其中,該交換係根據頁邊界而實施。 15·如申請專利範圍第1 〇項之記憶體子系統,以及其中, 藉由將該第一實體位址乘上(n+l)/n而計算該第二實 體位址。 16·如申請專利範圍第1 ΰ項之記憶體子系統,其中,儲存 該ECC於資料之區塊之間之區塊中,其中,保留i/n 22 94271 200845022 之該位址用來儲存ECC而保留(n_1)/ni該位址用來儲 存資料。 17. 如申請專利範圍第1〇項之記憶體子系統,其中,儲存 該ECC於鄰接由該ECC所保護之資料之位址位置中。 18. 如申請專利範圍第10項之記憶體子系統,其中,該記 fe體為記憶體模組。 19· 一種方法,包括下列步驟: 春保留記憶體之第一部分用來儲存資料;以及 保留相同記憶體之第二部分用來儲存保護該資料 之錯誤更正碼(ECC); 一其中,逛輯位址映對至該記憶體之該第一部分中之 第一貫體位址和該記憶體之該第二部分中之第二實體 位址;以及 其中,該第一實體位址位於記憶體頁中,以及其 中,該第二實體位址位於相同記憶體頁中。 • 20.如=請專利範圍第19項之方法,其中,該記憶體為包 含硬數個記憶體裝置之記憶體模組,其中,該資料和該 ECC為各儲存遍及該複數個記憶體裝置中。 94271 23
TW097109586A 2007-03-20 2008-03-19 非ecc組件中之ecc實作 TWI498913B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/725,922 US8135935B2 (en) 2007-03-20 2007-03-20 ECC implementation in non-ECC components

Publications (2)

Publication Number Publication Date
TW200845022A true TW200845022A (en) 2008-11-16
TWI498913B TWI498913B (zh) 2015-09-01

Family

ID=39563549

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097109586A TWI498913B (zh) 2007-03-20 2008-03-19 非ecc組件中之ecc實作

Country Status (8)

Country Link
US (1) US8135935B2 (zh)
JP (1) JP5303477B2 (zh)
KR (1) KR101500635B1 (zh)
CN (1) CN101711385B (zh)
DE (1) DE112008000736T5 (zh)
GB (1) GB2461428A (zh)
TW (1) TWI498913B (zh)
WO (1) WO2008115400A1 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5605238B2 (ja) * 2011-01-25 2014-10-15 ソニー株式会社 メモリシステムおよびその動作方法
US8949686B1 (en) 2011-02-13 2015-02-03 Apple Inc. Protection against word line failure in memory devices
US9563681B1 (en) 2012-08-08 2017-02-07 Amazon Technologies, Inc. Archival data flow management
US9767098B2 (en) 2012-08-08 2017-09-19 Amazon Technologies, Inc. Archival data storage system
US9753858B2 (en) 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
US9612901B2 (en) 2012-03-30 2017-04-04 Intel Corporation Memories utilizing hybrid error correcting code techniques
WO2013147890A1 (en) * 2012-03-30 2013-10-03 Intel Corporation Error correcting code scheme utilizing reserved space
DE112012006154T5 (de) * 2012-03-30 2015-02-05 Intel Corporation Speicher, die Hybrid-Fehlerkorrekturcode-Techniken verwenden
US9009570B2 (en) 2012-06-07 2015-04-14 Micron Technology, Inc. Integrity of an address bus
US9323608B2 (en) 2012-06-07 2016-04-26 Micron Technology, Inc. Integrity of a data bus
US8924832B1 (en) * 2012-06-26 2014-12-30 Western Digital Technologies, Inc. Efficient error handling mechanisms in data storage systems
US9904788B2 (en) 2012-08-08 2018-02-27 Amazon Technologies, Inc. Redundant key management
US9779035B1 (en) 2012-08-08 2017-10-03 Amazon Technologies, Inc. Log-based data storage on sequentially written media
US8959067B1 (en) 2012-08-08 2015-02-17 Amazon Technologies, Inc. Data storage inventory indexing
US9830111B1 (en) 2012-08-08 2017-11-28 Amazon Technologies, Inc. Data storage space management
US9225675B2 (en) 2012-08-08 2015-12-29 Amazon Technologies, Inc. Data storage application programming interface
US10120579B1 (en) 2012-08-08 2018-11-06 Amazon Technologies, Inc. Data storage management for sequentially written media
US8805793B2 (en) 2012-08-08 2014-08-12 Amazon Technologies, Inc. Data storage integrity validation
US9652487B1 (en) * 2012-08-08 2017-05-16 Amazon Technologies, Inc. Programmable checksum calculations on data storage devices
US8984368B2 (en) 2012-10-11 2015-03-17 Advanced Micro Devices, Inc. High reliability memory controller
FR2996937B1 (fr) * 2012-10-16 2015-12-11 Bull Sas Procede et dispositif pour ameliorer la fiabilite de memorisation de donnees dans un disque dur comprenant plusieurs plateaux
US10558581B1 (en) 2013-02-19 2020-02-11 Amazon Technologies, Inc. Systems and techniques for data recovery in a keymapless data storage system
KR20160034913A (ko) * 2013-07-25 2016-03-30 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 미―준수 메모리 기술을 포함하거나 이와 인터페이스하는 메모리 모듈에 대한 응답 제어
JP6164003B2 (ja) 2013-09-25 2017-07-19 富士通株式会社 メモリ制御装置、情報処理装置、及び情報処理装置の制御方法
US10402324B2 (en) 2013-10-31 2019-09-03 Hewlett Packard Enterprise Development Lp Memory access for busy memory by receiving data from cache during said busy period and verifying said data utilizing cache hit bit or cache miss bit
KR101500877B1 (ko) 2013-11-28 2015-03-09 엘에스산전 주식회사 전력선 통신의 중계장치 및 중계방법
JP6140093B2 (ja) * 2014-03-18 2017-05-31 株式会社東芝 キャッシュメモリ、誤り訂正回路およびプロセッサシステム
US9665423B2 (en) * 2015-06-15 2017-05-30 Nxp Usa, Inc. End-to-end error detection and correction
US11386060B1 (en) 2015-09-23 2022-07-12 Amazon Technologies, Inc. Techniques for verifiably processing data in distributed computing systems
JP6605359B2 (ja) 2016-03-02 2019-11-13 ルネサスエレクトロニクス株式会社 半導体装置及びメモリアクセス制御方法
JP6258399B2 (ja) * 2016-05-16 2018-01-10 ウィンボンド エレクトロニクス コーポレーション 半導体装置
US10291258B2 (en) 2017-05-25 2019-05-14 Advanced Micro Devices, Inc. Error correcting code for correcting single symbol errors and detecting double bit errors
KR102362229B1 (ko) * 2017-08-10 2022-02-11 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 컨트롤러를 포함하는 어플리케이션 프로세서
US11119909B2 (en) 2018-12-11 2021-09-14 Texas Instmments Incorporated Method and system for in-line ECC protection
FR3100347B1 (fr) * 2019-09-04 2022-07-22 St Microelectronics Rousset Détection d'erreurs
FR3100346B1 (fr) 2019-09-04 2022-07-15 St Microelectronics Rousset Détection d'erreurs
US11468962B2 (en) 2021-03-03 2022-10-11 Micron Technology, Inc. Performing memory testing using error correction code values

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727474A (en) * 1983-02-18 1988-02-23 Loral Corporation Staging memory for massively parallel processor
US5263032A (en) * 1991-06-27 1993-11-16 Digital Equipment Corporation Computer system operation with corrected read data function
US5390308A (en) * 1992-04-15 1995-02-14 Rambus, Inc. Method and apparatus for address mapping of dynamic random access memory
JPH0675863A (ja) * 1992-08-26 1994-03-18 Kofu Nippon Denki Kk 誤り検出修正機能付メモリファイル
DE60004057D1 (de) * 1999-05-18 2003-08-28 Advanced Micro Devices Inc Fehlerkorrekturschaltung und verfahren in einer speichereinrichtung
US6438726B1 (en) * 1999-05-18 2002-08-20 Advanced Micro Devices, Inc. Method of dual use of non-volatile memory for error correction
US6675344B1 (en) * 2000-05-01 2004-01-06 Hewlett-Packard Development Company, L.P. Multiple ECC schemes to improve bandwidth
GB0031436D0 (en) * 2000-12-22 2001-02-07 Koninkl Philips Electronics Nv Method and apparatus for data reproduction
US6915479B2 (en) * 2001-05-17 2005-07-05 Matsushita Electric Industrial Co., Ltd. Apparatus and method for error correction
US7308621B2 (en) * 2002-04-30 2007-12-11 International Business Machines Corporation Testing of ECC memories
US7117421B1 (en) * 2002-05-31 2006-10-03 Nvidia Corporation Transparent error correction code memory system and method
JP2005173860A (ja) * 2003-12-10 2005-06-30 Sony Corp データ記憶装置、および記憶データ処理方法、並びにコンピュータ・プログラム
US6965537B1 (en) * 2004-08-31 2005-11-15 Micron Technology, Inc. Memory system and method using ECC to achieve low power refresh
TWI277869B (en) * 2005-08-23 2007-04-01 Via Tech Inc Architecture and method for storing data
JP2008108297A (ja) * 2006-10-23 2008-05-08 Toshiba Corp 不揮発性半導体記憶装置

Also Published As

Publication number Publication date
US8135935B2 (en) 2012-03-13
TWI498913B (zh) 2015-09-01
WO2008115400A1 (en) 2008-09-25
GB0916720D0 (en) 2009-11-04
CN101711385B (zh) 2013-06-12
JP2010522374A (ja) 2010-07-01
GB2461428A (en) 2010-01-06
KR20100015704A (ko) 2010-02-12
DE112008000736T5 (de) 2010-01-21
JP5303477B2 (ja) 2013-10-02
US20080235485A1 (en) 2008-09-25
CN101711385A (zh) 2010-05-19
KR101500635B1 (ko) 2015-03-09

Similar Documents

Publication Publication Date Title
TW200845022A (en) ECC implementation in non-ECC components
JP7121875B1 (ja) パーシステントメモリシステム等のデータ完全性
USRE40877E1 (en) Method of communicating data in an interconnect system
US7206891B2 (en) Multi-port memory controller having independent ECC encoders
US4939643A (en) Fault tolerant digital data processor with improved bus protocol
TWI417891B (zh) 記憶體鏡射裝置與方法
TWI684102B (zh) 記憶體系統中的鏈路糾錯
TWI354888B (en) Integrated circuit, method, and system for memory
US20160132240A1 (en) Systems and methods for support of non-volatile memory on a ddr memory channel
US7428689B2 (en) Data memory system and method for transferring data into a data memory
US20160283303A1 (en) Reliability, availability, and serviceability in multi-node systems with disaggregated memory
JP5824488B2 (ja) トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用
TW201626231A (zh) 用於基於記憶體資料判定比較資訊之設備、系統與方法
JP2009537899A (ja) 制御情報、読み出しデータおよび/または書き込みデータにおけるエラーを検出および識別するシステム
WO2007002219A2 (en) Certified memory-to-memory data transfer between active-active raid controllers
JP5301668B2 (ja) インバンドのデータ・マスク・ビットの転送システム、方法、及び装置
TW201007748A (en) Method and apparatus for error correction
US20230273857A1 (en) Efficient storage of error correcting code information
US7552249B2 (en) Direct memory access circuit and disk array device using same
TWI254849B (en) Method and related apparatus for data error checking
US20230063804A1 (en) Memory controller and memory device including the same
Kwon et al. Gen‐Z memory pool system implementation and performance measurement
WO2019000456A1 (zh) 传输数据掩码的方法、内存控制器、内存芯片和计算机系统
US7836329B1 (en) Communication link protocol optimized for storage architectures
KR20230062172A (ko) 메모리 장치, 이를 포함하는 메모리 모듈 및 메모리 컨트롤러의 동작 방법