TW200845022A - ECC implementation in non-ECC components - Google Patents
ECC implementation in non-ECC components Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 149
- 238000000034 method Methods 0.000 claims abstract description 23
- 238000012937 correction Methods 0.000 claims abstract description 13
- 239000000463 material Substances 0.000 claims description 7
- 235000009827 Prunus armeniaca Nutrition 0.000 claims 1
- 244000018633 Prunus armeniaca Species 0.000 claims 1
- 239000002023 wood Substances 0.000 claims 1
- 238000012545 processing Methods 0.000 description 36
- 239000000872 buffer Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/1044—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 with specific ECC/EDC distribution
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address 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)
- 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
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)
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)
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 | 不揮発性半導体記憶装置 |
-
2007
- 2007-03-20 US US11/725,922 patent/US8135935B2/en active Active
-
2008
- 2008-03-14 DE DE112008000736T patent/DE112008000736T5/de not_active Ceased
- 2008-03-14 CN CN2008800132997A patent/CN101711385B/zh active Active
- 2008-03-14 JP JP2009554534A patent/JP5303477B2/ja active Active
- 2008-03-14 WO PCT/US2008/003365 patent/WO2008115400A1/en active Application Filing
- 2008-03-14 KR KR1020097021820A patent/KR101500635B1/ko active IP Right Grant
- 2008-03-19 TW TW097109586A patent/TWI498913B/zh active
-
2009
- 2009-09-23 GB GB0916720A patent/GB2461428A/en not_active Withdrawn
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) | 메모리 장치, 이를 포함하는 메모리 모듈 및 메모리 컨트롤러의 동작 방법 |