TWI417891B - 記憶體鏡射裝置與方法 - Google Patents

記憶體鏡射裝置與方法 Download PDF

Info

Publication number
TWI417891B
TWI417891B TW095118230A TW95118230A TWI417891B TW I417891 B TWI417891 B TW I417891B TW 095118230 A TW095118230 A TW 095118230A TW 95118230 A TW95118230 A TW 95118230A TW I417891 B TWI417891 B TW I417891B
Authority
TW
Taiwan
Prior art keywords
data
error
memory
cpu
logic
Prior art date
Application number
TW095118230A
Other languages
English (en)
Other versions
TW200703349A (en
Inventor
Mark Shaw
Original Assignee
Hewlett Packard Development Co
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 Hewlett Packard Development Co filed Critical Hewlett Packard Development Co
Publication of TW200703349A publication Critical patent/TW200703349A/zh
Application granted granted Critical
Publication of TWI417891B publication Critical patent/TWI417891B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring

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)
  • Debugging And Monitoring (AREA)
  • Image Input (AREA)

Description

記憶體鏡射裝置與方法
本發明是關於記憶體鏡射裝置與方法,尤其是關於具有記憶體全緩衝控制器的記憶體鏡射裝置與方法。
發明背景
記憶體鏡射一般被用於提供資料的冗餘儲存(redundant storage),以確保資料不會因為可能發生在記憶體裝置內的災難性故障或錯誤而損失。記憶體鏡射藉由將寫入一主記憶體的資料之相同副本儲存在一相對鏡射記憶體(counterpart mirror memory)內,提供資料的冗餘儲存。
發明概要
本發明係為一種用於記憶體鏡射的系統,包含:一鏡射記憶體,具有一記憶體全緩衝控制器,該記憶體全緩衝控制器被配置,以便利一中央處理單元(CPU)存取該鏡射記憶體內的多個記憶體;一主記憶體鏈接介面,位於該記憶體全緩衝控制器內,且被配置以耦接到一主記憶體;其中,該記憶體全緩衝控制器更包含:第一錯誤邏輯,被配置以檢測來自該主記憶體的一第一資料輸出內是否存在一第一資料錯誤;第二錯誤邏輯,被配置以檢測來自該鏡射記憶體的一第二資料輸出內是否存在一第二資料錯誤;以及選擇邏輯,選擇該第一資料輸出或該第二資料輸出中的一者,以提供給該CPU。
圖式簡單說明
本發明能參看以下的圖示被理解。圖示中的該等元件不需要是成比例的。而且,在該等圖示中,相同的參考標號指出了幾個圖中相對應的部分。
第1圖是依據本發明之一實施例的一電腦系統的示意圖,該電腦系統包括一中央處理單元(CPU)、一鏡射全緩衝控制器及一主全緩衝記憶體;第2圖是依據本發明之一實施例的鏡射全緩衝記憶體之一電腦系統的示意圖;第3圖是依據本發明之一實施例的第2圖的該鏡射全緩衝記憶體內所使用的選擇邏輯之一實例的流程圖;以及第4圖是依據本發明之一實施例的第2圖的該鏡射全緩衝記憶體內所使用的選擇邏輯之另一實例的流程圖。
較佳實施例之詳細說明
參看第1圖,第1圖顯示了根據本發明之一實施例的一電腦系統100。在這方面,該電腦系統100可能是,例如,一伺服器、一個人電腦系統或其他可被理解的系統。該電腦系統100包括一中央處理單元(CPU)103。該電腦系統100還包括一鏡射全緩衝雙直列記憶體模組(Dual Inline Memory Module,DIMM)106與一主全緩衝DIMM 109。
在該鏡射全緩衝DIMM 106內是一鏡射全緩衝控制器113。該鏡射全緩衝控制器113耦接到許多的隨機存取記憶體116,例如,動態隨機存取記憶體(DRAM)或者其他類型的適合記憶體。該等記憶體116可以一個或更多個可被理解的記憶體晶片來實施。由於一高速匯流排119,該鏡射全緩衝控制器113也耦接到該CPU 103。
類似於該鏡射全緩衝DIMM 106,該主全緩衝DIMM 109包括一主全緩衝控制器123。該主全緩衝控制器123耦接到許多的隨機存取記憶體126,例如,動態隨機存取記憶體或者其他類型的隨機存取記憶體。而且,該主全緩衝控制器123也經由靠該高速資料匯流排119電氣性地耦接到該鏡射全緩衝控制器113。透過該鏡射全緩衝控制器113,資料通訊在該主全緩衝DIMM 109與該CPU 103之間被建立。
該鏡射全緩衝DIMM 106與該主全緩衝DIMM 109可包含,例如,記憶卡(memory cards)或者其他模組(包括被該CPU 103存取的隨機存取記憶體116/126)。該鏡射全緩衝控制器113與該主全緩衝控制器123各別便利該中央處理單元103存取該等記憶體116與126的每一個。該鏡射全緩衝控制器113包括一主記憶體輸入,該主記憶體輸入被配置以經由該高速資料匯流排119耦接到該主全緩衝DIMM 109的該主全緩衝控制器123。
該鏡射全緩衝DIMM 106與該主全緩衝DIMM 109是“全緩衝”的,因為緩衝電路與其他電路以該鏡射全緩衝控制器113及該主全緩衝控制器123的形式被使用,作為該高速資料匯流排119與該等記憶體116/126之間的介面。該鏡射全緩衝控制器113與該主全緩衝控制器123各別被配置,以分別在該等記憶體116/126中分配(distribute)位址與控制資訊,從而便利來自該CPU 103的讀取與寫入操作。由於該鏡射全緩衝控制器113與該主全緩衝控制器123的使用,為了正常地存取該等記憶體116/126,各種位址與控制電路在該電腦系統100的母板上被去除,從而可根據情況執行讀取與寫入操作。
該鏡射全緩衝DIMM 106與該CPU 103之間,以及該主全緩衝DIMM 109與該鏡射全緩衝控制器113之間的高速介面119可以極高的速率操作,例如,其範圍從每秒48億位元(4.8 gigabits)到每秒64億位元(6.4 gigabits)或者更高。在這方面,該高速資料匯流排119可包含多個差分接腳。例如,在一實施例中,可使用十個差分接腳,以便利該CPU 103與該鏡射全緩衝DIMM 106或該主全緩衝DIMM 109之間的通訊,且可使用14個差分接腳,以便利從該鏡射全緩衝DIMM 106或該主全緩衝DIMM 109流向該CPU 103的資料通訊。差分接腳的其他組合或者其他類型的電氣資料通訊(electrical data communication)可被使用,只要是適當的。
由於該鏡射全緩衝控制器113與該主全緩衝控制器123的使用,提供存取該等記憶體116/126的每一個所需要的接腳數大大地減少了,因為沒有必要提供從一母板直接存取該等記憶體116/126所需要的接腳。用於在各種記憶體116/126中存取的時序也改善了,從而導致了更快的資料傳送,因為緊湊的時序(tight timing)可在涉及到該等記憶體116/126的兩個或更多個的個別資料傳送之間被指定。
在操作期間,該CPU 103傳送一訊息給該鏡射全緩衝控制器113或該主全緩衝控制器123中適當的一者,以對於該等記憶體116/126中指定的一者執行一讀取或寫入操作。然後,該鏡射全緩衝控制器113或該主全緩衝控制器123對於各自的記憶體116/126實現該讀取或寫入操作。例如,假定一讀取操作被期望,則該鏡射全緩衝控制器113或該主全緩衝控制器123存取來自適當記憶體116/126的資料,且經由將被討論的高速資料匯流排119將相同的資料傳送給該CPU 103。
當該主全緩衝控制器123傳送資料給該CPU 103時,是透過該鏡射全緩衝控制器113完成的。藉由透過該鏡射全緩衝控制器113本身在該主全緩衝DIMM 109與該CPU 103之間建立資料通訊,該鏡射全緩衝控制器113可有利地執行錯誤核對與/或更正,且確保一正確的值(correct value)從各自的鏡射或主全緩衝DIMM 106或109被獲得。
該鏡射全緩衝DIMM 106被使用以作為一相對於該主全緩衝DIMM 109的鏡射記憶體。在這方面,該鏡射全緩衝控制器113執行所有被該主全緩衝控制器123執行的讀取與寫入操作。該等記憶體116的狀態鏡射了該等記憶體126的狀態。當該CPU 103希望存取來自該主全緩衝DIMM 109的該等記憶體126之一個或更多個的資料時,相同的資料由該鏡射全緩衝控制器113從相對應的記憶體116存取。此時,依據將被討論的本發明之各種實施例,該鏡射全緩衝控制器113有利地獲得一機會,以對於從該主全緩衝DIMM 109的該等記憶體126獲得的資料與從該鏡射全緩衝DIMM 106的該等記憶體116獲得的相對應資料執行錯誤核對與比較。最後,該鏡射全緩衝控制器113決定來自該主或鏡射全緩衝DIMM 106/109的資料中的哪個要發送給該CPU 103。因為來自該主或鏡射全緩衝DIMM 106/109的資料被如此選擇以經由該匯流排119傳送給該CPU 103,該CPU 103不需要發送分開的讀取請求給該主與鏡射全緩衝DIMM 106/109以獲得冗餘資料,從而決定,例如,一錯誤是否存在。當將資料寫入該主全緩衝DIMM 109時,該鏡射全緩衝控制器113自動地將該資料的副本寫入該鏡射全緩衝DIMM 106的適當記憶體116。因此,每次此等操作被執行時,為了讀取/寫入該主與鏡射全緩衝DIMM 106/109二者,該CPU 103不需要傳送兩個讀取或寫入請求。此方法有效地提供資料的鏡射,同時有利地將該資料匯流排119上的流量(traffic)減少了一半。除此之外,錯誤核對或更正有利地由該鏡射全緩衝控制器113執行,而不是由一母板上的電路或該CPU 103自身執行。
以下參看第2圖,第2圖顯示了依據本發明之一實施例的鏡射全緩衝控制器113的示意方塊圖。該鏡射全緩衝控制器113包括一中央處理單元(CPU)鏈接介面133與一主鏈接介面136。該鏡射全緩衝控制器113也包括一隨機存取記憶體(RAM)介面139。
該CPU鏈接介面133被配置以經由如以上所描述的高速資料匯流排119耦接到該CPU 103。該主鏈接介面136也被配置以經由如所描述的高速介面119耦接到該主全緩衝DIMM 109。該RAM介面139被配置以與該等記憶體116的每一個建立資料通訊。在一實施例中,該等記憶體116包含,例如,動態隨機存取記憶體(DRAM)或可被一般熟悉該項技術的人士所理解的其它適當類型的記憶體。該鏡射全緩衝控制器113也包括主錯誤邏輯143與鏡射錯誤邏輯146。
該主鏈接介面136的一輸出被接收以作為該主錯誤邏輯143的一輸入。該主錯誤邏輯143的輸出被提供給一多工器149與選擇邏輯(selection logic)153。該RAM介面139的一輸出被提供給該鏡射錯誤邏輯146。然後,該鏡射錯誤邏輯146的輸出被提供給該選擇邏輯153,以及給該多工器149的一輸入。該選擇邏輯153產生一被提供給該多工器149的控制輸入。該多工器149的輸出被提供給該CPU鏈接介面133。
在操作期間,該CPU 103可傳送被指向到該主全緩衝DIMM 109的該等記憶體126(第1圖)的一讀取請求或一寫入請求。該鏡射全緩衝DIMM 106被使用以作為該主全緩衝DIMM 109的一鏡射記憶體。在這方面,被寫入或從該主全緩衝DIMM 109被讀取的資料也同時被寫入或從該鏡射全緩衝DIMM 106被讀取。該鏡射全緩衝控制器113的RAM介面139被配置以識別什麼時候來自該CPU 103的一特定讀取或寫入請求是指定給該主全緩衝DIMM 109的。在這方面,該RAM介面139使如由該主全緩衝控制器123所協調的將發生於該主全緩衝DIMM 109的該等記憶體126的相同讀取或寫入操作,發生於該鏡射全緩衝DIMM 106的該等記憶體116。
假定一讀取操作將被執行,則該RAM介面139從該等記憶體116中的一者的特定位置獲得所期望的資料,且將相同的資料提供給該鏡射錯誤邏輯146。類似地,該主全緩衝控制器123(第1圖)也從該等記憶體126中各自的一者讀取相同的資料。然後,該主全緩衝控制器123將從該等記憶體126中各自的一者讀取的資料傳送給該鏡射全緩衝控制器113,此資料由該主鏈接介面136接收。在此之後,該資料被提供給該主錯誤邏輯143。
該主錯誤邏輯143與該鏡射錯誤邏輯146二者可各別包含執行,例如,一循環冗餘核對(cyclical redundancy check,CRC)的電路。另外,該主錯誤邏輯143與該鏡射錯誤邏輯146可各別包含錯誤更正碼(error correcting code,ECC)。在該主與鏡射錯誤邏輯143與146包含執行一循環冗餘核對的代碼的情況下,該主錯誤邏輯143與該鏡射錯誤邏輯146操作以分別決定從該主鏈接介面136或該RAM介面139接收到的資料內是否檢測到一錯誤。在該主錯誤邏輯143與該鏡射錯誤邏輯146各別使用錯誤更正碼(ECC)的情況下,它們可分別嘗試更正從該主鏈接介面136或該RAM介面139接收到的資料內被檢測到的任何錯誤。如果該主錯誤邏輯143與該鏡射錯誤邏輯146對該資料作出一更正,則該主錯誤邏輯143與該鏡射錯誤邏輯146將已經作出更正告知該選擇邏輯153。
該選擇邏輯153接收來自該主錯誤邏輯143與該鏡射錯誤邏輯146的資料。該選擇邏輯153也接收指出從該主錯誤邏輯143或該鏡射錯誤邏輯146接收到的各自資料內是否存在一資料錯誤的資料。另外,在錯誤更正碼(ECC)被該主錯誤邏輯143與該鏡射錯誤邏輯146使用的情況下,可根據情況指出從該主鏈接介面136或該RAM介面139接收到的資料是否被執行一更正的指示也可被提供。
在此之後,該選擇邏輯153作出一決定是否將來自該主錯誤邏輯143或該鏡射錯誤邏輯146的資料提供給該CPU鏈接介面133,以被傳送給該CPU 103(第1圖)。在作出此決定時,該選擇邏輯153將考慮來自該主錯誤邏輯143與該鏡射錯誤邏輯146的各種輸入,包括該資料及可根據情況指出此資料中存在一錯誤或此資料被更正的任何指示。該選擇邏輯153藉由產生一控制輸入給該多工器149來控制哪個資料被提供給該CPU鏈接介面133。以下的討論描述了許多基於此種資訊可能會發生的選擇情形之實例。
在一實施例中,該主錯誤邏輯143與該鏡射錯誤邏輯146可對從該主鏈接介面136與該RAM介面139接收到的資料執行一循環冗餘核對。如果來自該主全緩衝DIMM 109或該鏡射全緩衝DIMM 106中的一者的資料已經遭遇一錯誤,則該選擇邏輯153將選擇來自該主錯誤邏輯143與該鏡射錯誤邏輯146的該等資料輸出中非錯誤的一者,該非錯誤的一者透過該CPU介面133被提供給該CPU。如果該主錯誤邏輯143與該鏡射錯誤邏輯146二者的資料輸出都指出一資料錯誤存在,則該選擇邏輯153可選擇該主或鏡射錯誤邏輯輸出中預定的一者,例如,來自該主全緩衝DIMM 109的資料。除此之外,該選擇邏輯153可將一指出該資料內存在一錯誤的指示傳送給該CPU 103。
在另一實施例中,該主錯誤邏輯143與該鏡射錯誤邏輯146使用錯誤更正碼(ECC)。在此種來自該主鏈接介面136或該RAM介面139的資料內的一錯誤分別被該主錯誤邏輯143或該鏡射錯誤邏輯146檢測到的情況下,該主錯誤邏輯143或該鏡射錯誤邏輯146將嘗試更正該錯誤自身。在此種情況下,該選擇邏輯153進一步被配置以選擇來自該主錯誤邏輯143或該鏡射錯誤邏輯146的資料輸出中沒被更正的一者。在此一情形中,是假定只有來自該主鏈接介面136或該RAM介面139中的一者的資料包括一被更正的錯誤。該等資料輸出中沒被更正的一者被選擇,因為所作的任何更正可能是有錯誤的,例如,如果不能利用錯誤更正碼(ECC)被更正的一多位元錯誤已經發生。
在下一實例中,如果來自該主錯誤邏輯143與該鏡射錯誤邏輯146的資料二者都被指出已經被更正,且來自該主錯誤邏輯143與該鏡射錯誤邏輯146二者的資料輸出是相等的,則該選擇邏輯可被配置,以選擇該資料輸出中預定的一者以提供給該CPU鏈接介面133。在一實施例中,該主錯誤邏輯143的輸出可被選擇。來自該主錯誤邏輯143與該鏡射錯誤邏輯146二者的已更正資料是相等的這個事實提供了一指示:二者錯誤的更正導致來自兩個訊源(source)的資料正確。因此,當來自該主錯誤邏輯143的資料從該主全緩衝DIMM 109發出(emanate)時,該資料被選擇,雖然在此一情形中,訊源的實際選擇是不重要的。
然而,在另一情形中,由該RAM介面139提供給該鏡射錯誤邏輯146的資料以及由該主鏈接介面136提供給該主錯誤邏輯143的資料可各別包括該主錯誤邏輯143與該鏡射錯誤邏輯146分別嘗試更正的一錯誤。然而,可能是這種情況:被提供給該選擇邏輯153的來自該主錯誤邏輯143與該鏡射錯誤邏輯146的已更正資料彼此不相等。在此情況下,很明顯的,來自該主錯誤邏輯143或該鏡射錯誤邏輯146的資料中的至少一者是不正確的,且相對應被嘗試的更正失敗了。也可能是這種情況:該主錯誤邏輯143與該鏡射錯誤邏輯146的輸出二者都是不正確的,且在這兩種情況中更正都失敗了。
在任一情形中,該選擇邏輯153不能決定從該主錯誤邏輯143或該鏡射錯誤邏輯146接收到的該等資料值中的任一者是否是正確的。因此,然後該選擇邏輯153可選擇該主錯誤邏輯143或該鏡射錯誤邏輯146的該等輸出中預定的一者,以提供給該CPU鏈接介面133,從而傳送給該CPU 103。除此之外,該選擇邏輯153可傳送一指示(指出了該資料自身內可能還沒被更正的一錯誤被檢測到)給該CPU 103。
在又一實例中,由該RAM介面139提供給該鏡射錯誤邏輯146的資料以及/或者由該主鏈接介面136提供給該主錯誤邏輯143的資料可能是不正確的,由於一所謂的資料不匹配(data mismatch)已發生的事實。一資料不匹配可能發生,例如,由於靜資料惡化(silent data corruption)。例如,當資料從該等記憶體116/126被讀取時,一位址位元或指令位元在某些點可能被倒裝(flipped),從而導致了從各自記憶體116/126讀取錯誤的資料。假定從錯誤的記憶體位置讀取的錯誤資料被提供給該鏡射錯誤邏輯146或該主錯誤邏輯143,則可能是這種情況:無論CRC或ECC在該鏡射錯誤邏輯146與該主錯誤邏輯143中被使用,沒有錯誤被檢測到。這是因為該鏡射錯誤邏輯146與/或該主錯誤邏輯143對資料資訊與冗餘資訊(該二資訊包括在從錯誤記憶體位置被讀取的資料內)的操作對於此種資料導致一正確的結果。問題不是資料自身被毀壞,而是資料從一記憶體內的錯誤位置被存取。
在此一情況中,被提供給該選擇邏輯153的來自該鏡射錯誤邏輯146與該主錯誤邏輯143的資料將不會是相等的,即使沒有指示(指出了一錯誤存在或者被更正等)從該鏡射錯誤邏輯146與該主錯誤邏輯143被接收到。在此情形中,該選擇邏輯153面臨一種情況:來自該鏡射錯誤邏輯146與該主錯誤邏輯143的至少一者的輸出中存在一錯誤,但是該選擇邏輯153不能決定哪個輸出是不正確的。因此,然後該選擇邏輯153可選擇該主錯誤邏輯143或該鏡射錯誤邏輯146的該等輸出中預定的一者,以提供給該CPU鏈接介面133,從而傳送給該CPU 103。除此之外,該選擇邏輯153可傳送一指示(指出了資料自身內可能還沒被更正的一錯誤被檢測到)給該CPU 103。
為了告知該CPU 103在以上情形的任一者中一錯誤被檢測到,該選擇邏輯153可調處該多工器149,從而將來自該選擇邏輯153的一輸出提供給該CPU鏈接介面133。該輸出可能是,例如,一預定的資料順序(data sequence),對該CPU 103指出了:一資料錯誤已經發生,且從該等記憶體讀取資料的嘗試已經失敗。
除此之外,該選擇邏輯153可被配置,以關閉該資料鏡射功能。在這方面,該選擇邏輯153調處該多工器149,以連續地將來自該主錯誤邏輯143的輸出直接提供給該CPU鏈接介面133。在這方面,來自該主全緩衝DIMM 109(第1圖)的資料通過該鏡射全緩衝DIMM 106(第1圖),且記憶體鏡射沒有被使用。
以下參看第3圖,第3圖顯示了依據本發明之一實施例的選擇邏輯153之一實施例的流程圖,此處該選擇邏輯153被表示為選擇邏輯153a。另外,第3圖的流程圖可被看作是描述了在該鏡射全緩衝控制器113內實現的一方法之步驟。例如,當該主錯誤邏輯143與該鏡射錯誤邏輯146各別使用一循環冗餘核對(CRC)時,該選擇邏輯153a被使用。從框163開始,該選擇邏輯153a決定將被傳給該中央處理單元103(第1圖)的資料是否已經從該主錯誤邏輯143與該鏡射錯誤邏輯146被接收到。如果是,則該選擇邏輯153a跳到框166,其中來自該主錯誤邏輯143(第2圖)的資料內是否有一錯誤以及來自該鏡射錯誤邏輯146的資料是否是正確的被決定。這可藉由檢查來自該主錯誤邏輯143與該鏡射錯誤邏輯146的指示而被決定,該等指示是關於該資料是否已經被決定是正確的,或者一錯誤是否已經在此資料內被檢測到。
假定來自該主錯誤邏輯143的資料已經遭遇一錯誤,且來自該鏡射錯誤邏輯146的資料是正確的,則該選擇邏輯153a跳到框169,其中來自該鏡射錯誤邏輯146的資料被選擇,且被提供給該CPU鏈接介面133。在此之後,該選擇邏輯153a返回到框163。
另一方面,在框166中,如果來自該主錯誤邏輯143的資料是正確的,則該選擇邏輯153a跳到框173。在框173中,該選擇邏輯153a決定來自該鏡射錯誤邏輯146的資料是否是不正確的,以及來自該主錯誤邏輯143的資料是否是正確的。如果是這種情況,則該選擇邏輯153a跳到框176。否則,該選擇邏輯153a跳到框179。在框176中,來自該主錯誤邏輯143的資料被選擇以被提供給該CPU鏈接介面133,且在此之後被傳送給該CPU 103。在此之後,該選擇邏輯153a返回到框163。因此,在框166到173中看出如果來自該主與鏡射錯誤邏輯146與149的第一與第二資料中的一者已經遭遇一錯誤,則該選擇邏輯153a選擇該等資料輸出中非錯誤的一者,以提供給該CPU。
在框179中,該選擇邏輯153a決定來自該主錯誤邏輯143與該鏡射錯誤邏輯146的二個輸出中是否都存在一錯誤。如果是,則該選擇邏輯153a跳到框183。否則,該選擇邏輯153a跳到框186。在框183中,該選擇邏輯153a透過該CPU鏈接介面133傳送一資料錯誤的指示給該CPU 103。在一實施例中,這可藉由控制該多工器149以選擇該選擇邏輯153a的輸出而完成,該資料錯誤指示透過該多工器149被傳送,以被繼續傳給該CPU 103。在這方面,該選擇邏輯153a可傳送一資料的預定順序給該CPU 103,而不是來自該主錯誤邏輯143或該鏡射錯誤邏輯146的資料輸出。該資料的預定順序告知該CPU 103一資料錯誤已經發生,且期望的資料不能從各自的記憶體讀取。
另外,該選擇邏輯153a可選擇來自該主錯誤邏輯143的資料,以隨同一指出了一資料錯誤已經發生的指示被提供給該CPU鏈接介面133,從而被傳送給該CPU 103。為了達到此目的,該多工器149可相對應地被調處。在這方面,該選擇邏輯153a可選擇來自該主錯誤邏輯143或該鏡射錯誤邏輯146的該等輸出中預定的一者,因為二者都是錯誤的。在此之後,該選擇邏輯153a返回到框163。
假定該選擇邏輯153a到達框186,則該選擇邏輯153a決定一資料不匹配是否已經發生。如以上所描述的,這種情況存在,例如,如果該主錯誤邏輯143與該鏡射錯誤邏輯146都沒有指出一錯誤已經被檢測到,但是來自該主錯誤邏輯143的資料輸出與來自該鏡射錯誤邏輯146的資料輸出是不相等的。如果是這種情況,則該選擇邏輯153a跳到如所示的框183。否則,該選擇邏輯153a跳到框189。
在框189中,藉由調處該多工器149,來自該主錯誤邏輯143的資料被選擇,以被傳送給該CPU鏈接介面133,且在此之後給該CPU 103。在此情況下,來自該主錯誤邏輯143與該鏡射錯誤邏輯146的資料二者都是正確的,且該兩者中預設的一者被選擇。在一實施例,該預設是來自該主錯誤邏輯143的資料。在此之後,該選擇邏輯153a返回到框163。
以下參看第4圖,第4圖顯示了依據本發明之一實施例的選擇邏輯153之另一實施例的流程圖,此處該選擇邏輯153被表示為選擇邏輯153b。如果該選擇邏輯實現了如以上所描述的錯誤更正碼(ECC),該選擇邏輯153b反映了該選擇邏輯153的配置。另外,第4圖的流程圖可被看作是描述了在該鏡射全緩衝控制器113內實現的一方法之步驟。
從框203開始,該選擇邏輯153b決定資料是否已經從該主錯誤邏輯143與該鏡射錯誤邏輯146二者被接收到。如果是,則該選擇邏輯153b跳到框206。在框206中,該選擇邏輯153b決定來自該主錯誤邏輯143的資料內的一錯誤是否已經被檢測到且被更正,以及來自該鏡射錯誤邏輯146的資料是否還沒被更正。在這方面,由於該錯誤更正碼(ECC)的實現,該主錯誤邏輯143將提供資料與該資料被更正的一指示給該選擇邏輯153。
如果是此種情況,則該選擇邏輯153b跳到框209。否則,該選擇邏輯153b跳到框213。在框209中,從該鏡射全緩衝DIMM 106發出且來自該鏡射錯誤邏輯146的資料被選擇,以提供給該CPU鏈接介面133,從而傳送給該CPU 103。在這方面,該選擇邏輯153提供一控制輸入給該多工器149,以選擇該鏡射錯誤邏輯146的輸出,從而提供給如所示的該CPU鏈接介面133。在此之後,該選擇邏輯153b返回到框203。
在框213中,該選擇邏輯153b決定來自該鏡射錯誤邏輯146的資料是否已經被檢測且被更正,以及來自該主錯誤邏輯143的資料是否還沒遭遇一需要更正的錯誤。在此種情況下,當每次核對被該錯誤更正碼執行時,來自該主錯誤邏輯143的資料應該是正確的。如果是這種情況,則該選擇邏輯153b跳到框216。否則,該選擇邏輯153b跳到框219。在框216中,藉由適當地調處該多工器149,從該主全緩衝DIMM 109獲得的來自該主錯誤邏輯143的資料被選擇,以提供給該CPU鏈接介面133,從而傳送給該CPU 103。然後,該選擇邏輯153b返回到框203。
在框219中,該選擇邏輯153b決定從該主全緩衝DIMM 109發出的來自該主錯誤邏輯143的資料與從該鏡射全緩衝DIMM 106發出的來自該鏡射錯誤邏輯146的資料二者是否都已經被更正,以及來自該主錯誤邏輯143與該鏡射錯誤邏輯146的資料是否是相等的。這指出了來自兩個位置的資料已經被更正,而且,可能的是,假設兩個更正的結果是相同的,則兩個資料都是正確的。如果是這種情況,則該選擇邏輯153b跳到框223。否則,該選擇邏輯153b跳到框226。
在框223中,該選擇邏輯153b選擇來自該主錯誤邏輯143或該鏡射錯誤邏輯146中預定的一者的資料。作為預設,例如,當所有的指示都指出此資料是正確的,且該主記憶體是資料儲存的主要位置時,最終從該主全緩衝DIMM 109發出的來自該主錯誤邏輯143的資料被選擇。在此之後,該選擇邏輯153b返回到如所示的框203。
在框226處,該選擇邏輯153b決定從該主全緩衝DIMM 109發出的來自該主錯誤邏輯143的資料與從該鏡射全緩衝DIMM 106發出的來自該鏡射錯誤邏輯146的資料二者是否都已經被更正,但是來自該主錯誤邏輯143與該鏡射錯誤邏輯146的資料是不相等的。在此情況下,來自該主錯誤邏輯143與該鏡射錯誤邏輯146的該等資料輸出中的一者或二者可能是不正確的。在此情況下,該選擇邏輯153b跳到框229。否則,該選擇邏輯153b跳到框233。
在框229中,該選擇邏輯153b透過該CPU鏈接介面133傳送一指示給該CPU 103,該指示指出了一資料錯誤已經被檢測到,以及被傳送的資料可能是不正確的。在這方面,該選擇邏輯153b可傳送一資料的預定順序給該CPU 103,而不是來自該主錯誤邏輯143或該鏡射錯誤邏輯146的資料輸出。該資料的預定順序告知該CPU 103一資料錯誤已經發生,且期望的資料不能從各自的記憶體被讀取。
另外,該選擇邏輯153b可選擇來自該主錯誤邏輯143的資料,以隨同一指出了一資料錯誤已經發生的指示被提供給該CPU鏈接介面133,從而被傳送給該CPU 103。為了達到此目的,該多工器149可相對應地被調處。在這方面,該選擇邏輯153b可選擇來自該主錯誤邏輯143或該鏡射錯誤邏輯146的該等輸出中預定的一者。在此之後,該選擇邏輯153b返回到如所示的框203。
假定該選擇邏輯153b跳到框233,則該選擇邏輯153b決定一資料不匹配是否已經發生。如以上所描述的,這種情形存在,例如,如果該主錯誤邏輯143與該鏡射錯誤邏輯146都沒有指出一錯誤已經被檢測到,但是來自該主錯誤邏輯143的資料輸出與來自該鏡射錯誤邏輯146的資料輸出是不相等的。如果是這種情況,則該選擇邏輯153b跳到如所示的框229。否則,該選擇邏輯153b跳到框236。
在框236中,藉由調處該多工器149,從該主全緩衝DIMM 109發出的且來自該主錯誤邏輯143的資料被選擇以被提供給該CPU介面133。這是因為沒有錯誤被該主錯誤邏輯143或該鏡射錯誤邏輯146檢測到,而且沒有更正在該等位置中的任一者發生。因此,在一實施例中,從該主全緩衝DIMM 109發出的資料被選擇為可被理解的預定的預設。在此之後,該選擇邏輯153b返回到框203,以等待下一資料到達。
在一實施例中,該選擇邏輯153以硬體的方式被實現。在此情況下,該選擇邏輯153可以使用許多技術中的任一者或組合的一電路或狀態機(state machine)被實現。該等技術可包括,但不限於,具有邏輯閘(用於根據一個或更多個資料信號的應用實現各種邏輯功能)的離散邏輯電路(discrete logic circuits)、具有適當邏輯閘的應用特定積體電路(application specific integrated circuits)、可程式閘陣列(PGA)、現場可程式閘陣列(FPGA)或其他元件等。此等技術對於熟悉該項技術的人士是眾所周知的,因此,此處不詳細描述。另外,該選擇邏輯153可以軟體或者軟體與硬體的組合之方式被實現。
第3圖與第4圖的流程圖顯示了該選擇邏輯153之一實現的功能與/或操作。如果以軟體實施,每一方塊可代表代碼的一模組、片段或部分,該代碼包含了實現該(等)特定邏輯功能的程式指令。該等程式指令可以原始碼或機器碼的形式實施,該原始碼包含了用一程式語言撰寫的人類可讀敘述,該機器碼包含了可被一適合的執行系統(例如,一電腦系統或其他系統內的一處理器)識別的數值指令。該機器碼可從該原始碼等轉換而來。如果以硬體實施,每一方塊可代表實現該(等)特定邏輯功能的一電路或許多互連電路(interconnected circuits)。
雖然第3圖與第4圖的流程圖顯示了一執行的特定順序,但是應該明白的是,該執行順序可與所描述的順序不同。例如,兩個或更多個方塊的執行順序可被攪亂(相對於所顯示的順序)。而且,在第3圖與第4圖中連續顯示的兩個或更多個方塊可同時或部分同時地被執行。除此之外,出於增強效用、歸責(accounting)、性能測量或者提供除錯幫助等的目的,任何數目的計數器(counters)、狀態變數、警示旗號(warning semaphores)或訊息可被加入此處所描述的邏輯流程。應該明白的是,所有這些變化都在本發明之範圍內。
而且,在該選擇邏輯153包含軟體或代碼的情況,該選擇邏輯153可以任何的電腦可讀媒體實施,以用於被一指令執行系統(例如,一電腦系統或其他系統內的一處理器)使用或與該指令執行系統連接。在此方面來說,該邏輯可包含,例如,包括可從該電腦可讀媒體被提取且被該指令執行系統執行的指令與宣告(declarations)之敘述。在本發明的內容中,一“電腦可讀媒體”可以是任何能夠包含、儲存或維持該選擇邏輯153的媒體,以用於被該指令執行系統使用或與該指令執行系統連接。該電腦可讀媒體可包含許多實體媒體中的任一者,例如,電子、磁性、光學、電磁、紅外線或半導體媒體。一適合的電腦可讀媒體之更特定實例將包括,但不限於,磁帶、磁性軟式磁片(magnetic floppy diskettes)、磁性硬驅動機(magnetic hard drive)或者光碟。而且,該電腦可讀媒體可以是一隨機存取記憶體(RAM),包括,例如,靜態隨機存取記憶體(SRAM)與動態隨機存取記憶體(DRAM),或者磁性隨機存取記憶體(MRAM)。除此之外,該電腦可讀媒體可以是一唯讀記憶體(ROM)、一可程式唯讀記憶體(PROM)、一可抹除可程式唯讀記憶體(EPROM)、一電子可抹除可程式唯讀記憶體(EEPROM)或者其他種類的記憶體裝置。
除此之外,依據另一實施例,一種用於記憶體鏡射的方法被提供,該方法利用一具有一全緩衝控制器的鏡射記憶體。該方法包含了使用該全緩衝控制器,以便利一中央處理單元存取該鏡射記憶體內的多個記憶體的步驟,以及將該全緩衝控制器內的一主記憶體鏈接介面耦接到一主記憶體的步驟。該方法進一步包含在該全緩衝控制器內,檢測來自該主記憶體且透過該主記憶體鏈接介面被接收到的一第一資料輸出內是否存在一第一資料錯誤的步驟,以及在該全緩衝控制器內,檢測來自該鏡射記憶體的一第二資料輸出內是否存在一第二資料錯誤的步驟。該方法也包含在該全緩衝控制器內,選擇該第一資料輸出或該第二資料輸出中的一者,以提供給該CPU的步驟。
在另外的實施例中,該方法更包含透過該全緩衝控制器,在該主記憶體與該CPU之間建立資料通訊的步驟。該第一與第二資料錯誤可藉由執行一循環冗餘核對(CRC)或者利用一錯誤更正碼(ECC)被檢測到。而且,在該全緩衝控制器內,選擇該第一資料輸出或該第二資料輸出中的一者,以提供給該CPU的步驟可進一步包含以下步驟:如果該第一與第二資料輸出中的一者已經遭遇一錯誤,則選擇該第一與第二資料輸出中非錯誤的一者,以提供給該CPU。
該方法可進一步包含以下步驟:如果該第一資料錯誤存在,則嘗試更正該第一資料錯誤,以及如果該第二資料錯誤存在,則嘗試更正該第二資料錯誤。而且,在該全緩衝控制器內,選擇該第一資料輸出或該第二資料輸出中的一者,以提供給該CPU的步驟可進一步包含以下步驟:如果該第一與第二資料輸出中的一者已經分別被該第一與第二錯誤邏輯中的一者更正,則選擇該第一與第二資料輸出中沒被更正的一者,以提供給該CPU。
仍然在另一實施例中,該方法可進一步包含以下步驟:如果該第一資料錯誤存在,則嘗試更正該第一資料錯誤,以及如果該第二資料錯誤存在,則嘗試更正該第二資料錯誤。而且,在該全緩衝控制器內,選擇該第一資料輸出或該第二資料輸出中的一者,以提供給該CPU的步驟可進一步包含以下步驟:如果該第一與第二資料輸出二者都已經被更正,且該第一資料輸出與該第二資料輸出相等,則選擇該第一與第二資料輸出中預定的一者,以提供給該CPU。
而在另一實施例中,該方法可進一步包含以下步驟:如果該第一資料錯誤存在,則嘗試更正該第一資料錯誤,以及如果該第二資料錯誤存在,則嘗試更正該第二資料錯誤。該方法也包括以下步驟:如果該第一與第二資料輸出二者都已經被更正,且該第一資料輸出與該第二資料輸出不相等,則將一資料錯誤的存在告知該CPU。而且,在該全緩衝控制器內,選擇該第一資料輸出或該第二資料輸出中的一者,以提供給該CPU的步驟可進一步包含以下步驟:如果該第一與第二資料輸出二者都已經被更正,且該第一資料輸出與該第二資料輸出不相等,則選擇該第一與第二資料輸出中預定的一者,以提供給該CPU。
雖然本發明關於特定實施例被顯示且被描述,但是明顯的是,根據本說明書的閱讀與理解,其它熟悉該項技術的人士可做出等效與修改。本發明包括所有此種等效與修改,且只被本申請專利範圍之範圍限制。
100...電腦系統
103...中央處理單元
106...鏡射全緩衝雙直列記憶體模組
109...主全緩衝雙直列記憶體模組
113...鏡射全緩衝控制器
116...隨機存取記憶體
119...高速匯流排
123...主全緩衝控制器
126...隨機存取記憶體
133...中央處理單元鏈接介面
136...主鏈接介面
139...隨機存取記憶體介面
143...主錯誤邏輯
146...鏡射錯誤邏輯
149...多工器
153...選擇邏輯
153a...選擇邏輯
153b...選擇邏輯
163~189...步驟
203~236...步驟
第1圖是依據本發明之一實施例的一電腦系統的示意圖,該電腦系統包括一中央處理單元(CPU)、一鏡射全緩衝控制器及一主全緩衝記憶體;第2圖是依據本發明之一實施例的鏡射全緩衝記憶體之一電腦系統的示意圖;第3圖是依據本發明之一實施例的第2圖的該鏡射全緩衝記憶體內所使用的選擇邏輯之一實例的流程圖;以及第4圖是依據本發明之一實施例的第2圖的該鏡射全緩衝記憶體內所使用的選擇邏輯之另一實例的流程圖。
100...電腦系統
103...中央處理單元
106...鏡射全緩衝雙直列記憶體模組
109...主全緩衝雙直列記憶體模組
113...鏡射全緩衝控制器
116...隨機存取記憶體
119...高速匯流排
123...主全緩衝控制器
126...隨機存取記憶體

Claims (18)

  1. 一種用於記憶體鏡射的系統,包含:一鏡射記憶體,具有一記憶體全緩衝控制器,該記憶體全緩衝控制器係組配來便利一中央處理單元(CPU)存取該鏡射記憶體內的多個記憶體;一主記憶體鏈接介面,位於該記憶體全緩衝控制器內,且被組配來耦接到一主記憶體;其中,該記憶體全緩衝控制器更包含:第一錯誤邏輯組件,被組配來檢測來自該主記憶體的一第一資料輸出內是否存在一第一資料錯誤,該第一錯誤邏輯組件包含如果檢測到該第一資料錯誤則嘗試更正之的邏輯組件;第二錯誤邏輯組件,被組配來檢測來自該鏡射記憶體的一第二資料輸出內是否存在一第二資料錯誤,該第二錯誤邏輯組件進一步包含如果檢測到該第二資料錯誤則嘗試更正之的邏輯組件;以及選擇邏輯組件,選擇該第一資料輸出或該第二資料輸出中的一者,以提供給該CPU,其中該選擇邏輯組件進一步包含以下邏輯組件:如果該第一及第二資料輸出中的一者已各別地由該第一及第二錯誤邏輯組件更正,則選擇該第一及第二資料輸出中之一未更正者以提供給該CPU。
  2. 如申請專利範圍第1項所述之系統,其中,透過該記憶體全緩衝控制器,資料通訊在該主記憶體與該CPU之間 被建立。
  3. 如申請專利範圍第1項所述之系統,其中該第一及第二錯誤邏輯組件係各組配來進行一循環冗餘核對(CRC)。
  4. 如申請專利範圍第1項所述之系統,其中該第一及第二錯誤邏輯組件各進一步地包含錯誤更正碼(ECC)。
  5. 如申請專利範圍第1項所述之系統,其中該選擇邏輯組件進一步包含以下邏輯組件:如果該第一及第二資料輸出中的一者已遭遇一錯誤,則選擇該第一及第二資料輸出中之一非錯誤者以提供給該CPU。
  6. 如申請專利範圍第1項所述之系統,其中該選擇邏輯組件進一步包含以下邏輯組件:如果該第一及第二資料輸出二者均已被更正且該第一資料輸出等於該第二資料輸出,則選擇該第一及第二資料輸出中之一預定義者以提供給該CPU。
  7. 如申請專利範圍第1項所述之系統,其中該選擇邏輯組件進一步包含以下邏輯組件:如果該第一及第二資料輸出二者均已被更正且該第一資料輸出不等於該第二資料輸出,則通知該CPU有一資料錯誤存在。
  8. 如申請專利範圍第1項所述之系統,其中該選擇邏輯組件進一步包含以下邏輯組件:如果在該第一及第二資料輸出之任一者中都沒有檢測到任何錯誤且該第一資料輸出不等於該第二資料輸出,則通知該CPU有一資料錯誤存在。
  9. 一種用於記憶體鏡射的方法,利用一具有一記憶體全緩 衝控制器的鏡射記憶體,其包含以下步驟:使用該記憶體全緩衝控制器,以便利一中央處理單元(CPU)存取該鏡射記憶體內的多個記憶體;將該記憶體全緩衝控制器內的一主記憶體鏈接介面耦接到一主記憶體;在該記憶體全緩衝控制器內,檢測來自該主記憶體且透過該主記憶體鏈接介面所接收到的一第一資料輸出內是否存在一第一資料錯誤;如果該第一資料錯誤存在,則嘗試更正該第一資料錯誤;在該記憶體全緩衝控制器內,檢測來自該鏡射記憶體的一第二資料輸出內是否存在一第二資料錯誤;如果該第二資料錯誤存在,則嘗試更正該第二資料錯誤;在該記憶體全緩衝控制器內,選擇該第一資料輸出或該第二資料輸出中的一者,以提供給該CPU;以及其中在該記憶體全緩衝控制器內選擇該第一資料輸出或該第二資料輸出中的一者以提供給該CPU之步驟進一步包含以下步驟:如果該第一及第二資料輸出中的一者已由該第一及第二錯誤邏輯組件分別更正時,則選擇該第一及第二資料輸出中之一未更正者以提供給該CPU。
  10. 如申請專利範圍第9項所述之方法,進一步包含以下步驟:透過該記憶體全緩衝控制器,在該主記憶體與該 CPU之間建立資料通訊。
  11. 如申請專利範圍第9項所述之方法,其中,該第一與第二資料錯誤藉由執行一循環冗餘核對(CRC)被檢測到。
  12. 如申請專利範圍第9項所述之方法,其中,該第一與第二資料錯誤利用一錯誤更正碼(ECC)被檢測到。
  13. 如申請專利範圍第9項所述之方法,其中,在該記憶體全緩衝控制器內選擇該第一資料輸出或該第二資料輸出中的一者以提供給該CPU的步驟進一步包含以下步驟:如果該第一與第二資料輸出中的一者已經遭遇一錯誤,則選擇該第一與第二資料輸出中非錯誤的一者,以提供給該CPU。
  14. 如申請專利範圍第9項所述之方法,其中,在該記憶體全緩衝控制器內選擇該第一資料輸出或該第二資料輸出中的一者以提供給該CPU的步驟進一步包含以下步驟:如果該第一與第二資料輸出二者都已經被更正,且該第一資料輸出與該第二資料輸出相等,則選擇該第一與第二資料輸出中預定義的一者,以提供給該CPU。
  15. 如申請專利範圍第9項所述之方法,其進一步包含以下步驟:如果該第一與第二資料輸出二者都已經被更正,且該第一資料輸出與該第二資料輸出不相等,則將一資料錯誤的存在告知該CPU。
  16. 如申請專利範圍第9項所述之方法,其進一步包含以下步驟:如果該第一與第二資料輸出的任一者都沒有被檢測出任何錯誤,且該第一資料輸出與該第二資料輸出不 相等,則將一資料錯誤的存在告知該CPU。
  17. 一種用於記憶體鏡射之系統,其包含:第一構件,其用以便利一中央處理單元(CPU)存取一鏡射記憶體內的多個記憶體;第二構件,其用以透過該第一構件,在一主記憶體與該CPU之間建立資料通訊;選擇構件,其用以基於該第一及第二資料輸出之至少一者中一資料錯誤的存在,選擇來自該主記憶體之一第一資料輸出或來自該鏡射記憶體之一第二資料輸出中的一者,以應用到該CPU;以及更正構件,其用以當檢測到該資料錯誤時,則嘗試更正該第一及第二資料輸出之該至少一者中的該資料錯誤;且該選擇構件進一步包含用以當該第一及第二資料輸出中的一者已經被更正時則選擇該第一及第二資料輸出中之一未更正者以提供給該CPU的構件。
  18. 如申請專利範圍第17項所述之系統,其中如果該資料錯誤存在於該第一及第二資料輸出之一者中,則選擇該第一及第二資料輸出中之一非錯誤者,以提供給該CPU。
TW095118230A 2005-06-21 2006-05-23 記憶體鏡射裝置與方法 TWI417891B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/158,187 US7444540B2 (en) 2005-06-21 2005-06-21 Memory mirroring apparatus and method

Publications (2)

Publication Number Publication Date
TW200703349A TW200703349A (en) 2007-01-16
TWI417891B true TWI417891B (zh) 2013-12-01

Family

ID=37574723

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095118230A TWI417891B (zh) 2005-06-21 2006-05-23 記憶體鏡射裝置與方法

Country Status (3)

Country Link
US (1) US7444540B2 (zh)
KR (1) KR20060133892A (zh)
TW (1) TWI417891B (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7404057B2 (en) * 2005-06-24 2008-07-22 Dell Products L.P. System and method for enhancing read performance of a memory storage system including fully buffered dual in-line memory modules
FR2896077B1 (fr) * 2006-01-11 2008-02-22 Bull Sa Sa Agencement de cartes a modules memoire totalement bufferises et utilisation d'une puce entre deux modules consecutifs
JP2007188428A (ja) * 2006-01-16 2007-07-26 Fuji Xerox Co Ltd 半導体ストレージ装置およびストレージシステム
US8082482B2 (en) 2007-08-31 2011-12-20 International Business Machines Corporation System for performing error correction operations in a memory hub device of a memory module
US8086936B2 (en) 2007-08-31 2011-12-27 International Business Machines Corporation Performing error correction at a memory device level that is transparent to a memory channel
US8019919B2 (en) 2007-09-05 2011-09-13 International Business Machines Corporation Method for enhancing the memory bandwidth available through a memory module
US20100269021A1 (en) * 2007-09-05 2010-10-21 Gower Kevin C Method for Performing Error Correction Operations in a Memory Hub Device of a Memory Module
US20090150721A1 (en) * 2007-12-10 2009-06-11 International Business Machines Corporation Utilizing A Potentially Unreliable Memory Module For Memory Mirroring In A Computing System
KR20090060774A (ko) * 2007-12-10 2009-06-15 한국전자통신연구원 임베디드 시스템의 펌웨어 및 데이터 미러링 장치 및 방법
US8140936B2 (en) 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
US20090300411A1 (en) * 2008-06-03 2009-12-03 Gerald Keith Bartley Implementing Redundant Memory Access Using Multiple Controllers for Memory System
US20090300291A1 (en) * 2008-06-03 2009-12-03 Gerald Keith Bartley Implementing Cache Coherency and Reduced Latency Using Multiple Controllers for Memory System
US8291181B2 (en) * 2008-10-28 2012-10-16 Micron Technology, Inc. Temporary mirroring, logical segregation, and redundant programming or addressing for solid state drive operation
US8151138B2 (en) * 2008-10-31 2012-04-03 Dell Products L.P. Redundant memory architecture management methods and systems
JP5590028B2 (ja) * 2009-03-27 2014-09-17 富士通株式会社 情報処理装置、メモリ制御方法、及びメモリ制御装置
TWI417893B (zh) * 2009-05-06 2013-12-01 Silicon Motion Inc 資料存取裝置及資料存取方法
JP2012003644A (ja) * 2010-06-21 2012-01-05 Fujitsu Ltd メモリエラー箇所検出装置、及びメモリエラー箇所検出方法。
KR101149685B1 (ko) * 2010-08-05 2012-05-23 한국원자력연구원 원자력 발전소 디지털 안전계통의 실시간 진단기능을 갖춘 제어장치
US20120096310A1 (en) * 2010-10-18 2012-04-19 Brocade Communications Systems, Inc. Redundancy logic
TWI557636B (zh) * 2012-11-12 2016-11-11 慧榮科技股份有限公司 儲存媒體、存取系統及方法
US9760293B2 (en) * 2013-03-07 2017-09-12 Seagate Technology Llc Mirrored data storage with improved data reliability
GB201315397D0 (en) * 2013-08-29 2013-10-16 Quixant Plc Memory controller and memory access method
US9804931B2 (en) 2014-04-25 2017-10-31 Rambus Inc. Memory mirroring utilizing single write operations
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
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
KR102399490B1 (ko) 2017-06-20 2022-05-19 에스케이하이닉스 주식회사 다양한 동작 모드를 수행하는 반도체 메모리 장치, 이를 포함하는 메모리 모듈 및 시스템
US10613989B2 (en) 2017-07-14 2020-04-07 Arm Limited Fast address translation for virtual machines
US10467159B2 (en) 2017-07-14 2019-11-05 Arm Limited Memory node controller
US10565126B2 (en) 2017-07-14 2020-02-18 Arm Limited Method and apparatus for two-layer copy-on-write
US10592424B2 (en) 2017-07-14 2020-03-17 Arm Limited Range-based memory system
US10534719B2 (en) 2017-07-14 2020-01-14 Arm Limited Memory system for a data processing network
US10489304B2 (en) 2017-07-14 2019-11-26 Arm Limited Memory address translation
US10613951B2 (en) * 2017-09-13 2020-04-07 International Business Machines Corporation Memory mirror invocation upon detecting a correctable error
CN107748704A (zh) * 2017-10-13 2018-03-02 郑州云海信息技术有限公司 基于fpga的内存镜像实现的方法及装置
US10884850B2 (en) 2018-07-24 2021-01-05 Arm Limited Fault tolerant memory system
CN109117302A (zh) * 2018-07-26 2019-01-01 郑州云海信息技术有限公司 一种内存数据获取方法、系统、内存管理中间件及介质
US11010234B2 (en) * 2019-02-01 2021-05-18 Winbond Electronics Corp. Memory device and error detection method thereof
EP3764233A1 (en) 2019-07-08 2021-01-13 Continental Teves AG & Co. OHG Method of identifying errors in or manipulations of data or software stored in a device
US11960360B1 (en) * 2022-09-22 2024-04-16 Micron Technology, Inc. Redundancy-based error detection in a memory device

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4541094A (en) * 1983-03-21 1985-09-10 Sequoia Systems, Inc. Self-checking computer circuitry
US5185748A (en) * 1989-05-12 1993-02-09 Nec Corporation Dual data check apparatus
US5216672A (en) * 1992-04-24 1993-06-01 Digital Equipment Corporation Parallel diagnostic mode for testing computer memory
US5263034A (en) * 1990-10-09 1993-11-16 Bull Information Systems Inc. Error detection in the basic processing unit of a VLSI central processor
US5619642A (en) * 1994-12-23 1997-04-08 Emc Corporation Fault tolerant memory system which utilizes data from a shadow memory device upon the detection of erroneous data in a main memory device
US6295591B1 (en) * 1999-03-30 2001-09-25 International Business Machines Corporation Method of upgrading and/or servicing memory without interrupting the operation of the system
US6732243B2 (en) * 2001-11-08 2004-05-04 Chaparral Network Storage, Inc. Data mirroring using shared buses

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4541094A (en) * 1983-03-21 1985-09-10 Sequoia Systems, Inc. Self-checking computer circuitry
US5185748A (en) * 1989-05-12 1993-02-09 Nec Corporation Dual data check apparatus
US5263034A (en) * 1990-10-09 1993-11-16 Bull Information Systems Inc. Error detection in the basic processing unit of a VLSI central processor
US5216672A (en) * 1992-04-24 1993-06-01 Digital Equipment Corporation Parallel diagnostic mode for testing computer memory
US5619642A (en) * 1994-12-23 1997-04-08 Emc Corporation Fault tolerant memory system which utilizes data from a shadow memory device upon the detection of erroneous data in a main memory device
US5905854A (en) * 1994-12-23 1999-05-18 Emc Corporation Fault tolerant memory system
US6295591B1 (en) * 1999-03-30 2001-09-25 International Business Machines Corporation Method of upgrading and/or servicing memory without interrupting the operation of the system
US6732243B2 (en) * 2001-11-08 2004-05-04 Chaparral Network Storage, Inc. Data mirroring using shared buses

Also Published As

Publication number Publication date
KR20060133892A (ko) 2006-12-27
US7444540B2 (en) 2008-10-28
TW200703349A (en) 2007-01-16
US20060288177A1 (en) 2006-12-21

Similar Documents

Publication Publication Date Title
TWI417891B (zh) 記憶體鏡射裝置與方法
US10824499B2 (en) Memory system architectures using a separate system control path or channel for processing error information
US10002043B2 (en) Memory devices and modules
US6009548A (en) Error correcting code retrofit method and apparatus for multiple memory configurations
US11646094B2 (en) Memory system with error detection
US6044483A (en) Error propagation operating mode for error correcting code retrofit apparatus
US8572455B2 (en) Systems and methods to respond to error detection
US11403170B2 (en) Method and device for monitoring data error status in a memory
KR102378466B1 (ko) 메모리 장치 및 모듈
US10606696B2 (en) Internally-generated data storage in spare memory locations
TWI635503B (zh) 半導體記憶體裝置及操作該半導體記憶體裝置的方法
JPH0430619B2 (zh)
US8433950B2 (en) System to determine fault tolerance in an integrated circuit and associated methods
US7107343B2 (en) Method and apparatus for improved RAID 1 write performance in low cost systems
JP4349532B2 (ja) メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体
JP3748117B2 (ja) 鏡像化メモリ用エラー検出システム
JP2001290710A (ja) データエラー検出装置
US10740179B2 (en) Memory and method for operating the memory
JP2513615B2 (ja) Ecc回路付記憶装置
JPH10143383A (ja) 誤り検出訂正装置
JPH05225070A (ja) メモリ装置
CN116069548A (zh) 存储器装置、存储器模块和存储器控制器的操作方法
JPH04324551A (ja) メモリ回路
JPS63279348A (ja) 記憶装置のチエツク方式
JPH01106248A (ja) 記憶装置

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees