TW202006548A - 儲存裝置以及多晶片系統 - Google Patents
儲存裝置以及多晶片系統 Download PDFInfo
- Publication number
- TW202006548A TW202006548A TW108113273A TW108113273A TW202006548A TW 202006548 A TW202006548 A TW 202006548A TW 108113273 A TW108113273 A TW 108113273A TW 108113273 A TW108113273 A TW 108113273A TW 202006548 A TW202006548 A TW 202006548A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- storage address
- error
- data
- address
- Prior art date
Links
Images
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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2094—Redundant storage or storage space
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/1064—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 in cache or content addressable memories
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/74—Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring specific for caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
- Debugging And Monitoring (AREA)
Abstract
根據一個一般方面,一種裝置可包括多個堆疊的積體電路裸晶,所述多個堆疊的積體電路裸晶包括儲存單元裸晶及邏輯裸晶。儲存單元裸晶可被配置成將資料儲存在儲存位址處。邏輯裸晶可包括與所述堆疊的積體電路裸晶的介面且所述介面被配置成在儲存單元裸晶與至少一個外部元件之間傳送記憶體存取。邏輯裸晶可包括可靠性電路,可靠性電路被配置成改善儲存單元裸晶內的資料錯誤。可靠性電路可包括備用記憶體以及位址表,備用記憶體被配置成儲存資料,位址表被配置成將與錯誤相關聯的儲存位址映射到備用記憶體。可靠性電路可被配置成判斷記憶體存取是否與錯誤相關聯,且如果是,則利用備用記憶體來完成記憶體存取。
Description
本說明內容涉及記憶體糾錯,且更具體來說涉及高頻寬記憶體(HBM)可靠性、可存取性及可服務性(RAS)快取記憶體架構。
高頻寬記憶體(High Bandwidth Memory,HBM)是用於堆疊的動態隨機存取記憶體(dynamic random-access memory,DRAM)的高性能隨機存取記憶體(random-access memory,RAM)介面。高頻寬記憶體通常結合高性能圖形加速器及網路元件一起使用。使用HBM的第一元件是圖形處理單元(graphical processing unit,GPU)。
與雙倍數據速率第四代同步DRAM(double data rate fourth-generation synchronous DRAM,DDR4)或雙倍數據速率類型五同步圖形隨機存取記憶體(double data rate type five synchronous graphics random-access memory,GDDR5)相比,HBM以實質上較小的形狀因數在使用較小的功率的同時實現較高的頻寬。這常常是通過堆疊許多(例如,8個)DRAM裸晶來實現的,所述許多DRAM裸晶包括具有記憶體控制器的可選的基礎裸晶且通過矽通孔(through-silicon via,TSV)及微凸塊來進行互連。
HBM記憶體匯流排與其他DRAM記憶體(例如DDR4或GDDR5)相比非常寬。四個DRAM裸晶的HBM堆疊(4-Hi)的每個裸晶通常具有兩個128位元通道以實現總共8個通道以及總共1024位元的寬度。具有四個4-Hi HBM堆疊的圖形卡/GPU因此將具有寬度為4096位元的記憶體匯流排。相比之下,GDDR記憶體的匯流排寬度是32位元,對於具有512位元記憶體介面的圖形卡來說具有16個通道。
相對於DDR4或GDDR5,對記憶體的較大數目的連接需要將HBM記憶體連接到GPU(或其他處理器)的新的方法。一些公司使用特製矽晶片(被稱為插入件)來連接記憶體與GPU。這種插入件(interposer)已增加需要使記憶體與處理器實體接近的優點,從而減少儲存路徑。然而,由於半導體元件製作明顯比印刷電路板製造更昂貴,因此,這會使最終產品的成本增加。
根據一個一般方面,一種裝置可包括多個堆疊的積體電路裸晶。所述堆疊的積體電路裸晶可包括儲存單元裸晶及邏輯裸晶。所述儲存單元裸晶可被配置成以基於儲存位址的隨機存取方式來儲存資料。所述邏輯裸晶可包括與所述多個堆疊的積體電路裸晶的介面,且所述介面被配置成在所述儲存單元裸晶與至少一個外部元件之間傳送記憶體存取。所述邏輯裸晶可包括可靠性電路,所述可靠性電路被配置成改善所述儲存單元裸晶內的資料錯誤。所述可靠性電路可包括備用記憶體以及位址表,所述備用記憶體被配置成以隨機存取方式來儲存資料,所述位址表被配置成將與錯誤相關聯的儲存位址映射到所述備用記憶體的一部分。所述可靠性電路可被配置成當進行對所述多個堆疊的積體電路裸晶的記憶體存取時,判斷所述記憶體存取是否與錯誤相關聯,且如果是,則至少部分地利用所述備用記憶體來完成所述記憶體存取。
根據另一一般方面,一種系統可包括處理器,所述處理器包括記憶體控制器以及糾錯電路,所述記憶體控制器被配置成管理往來於所述處理器的資料流程,所述糾錯電路被配置成檢測所儲存的資料中是否出現錯誤。所述系統可包括積體電路的高頻寬儲存堆疊,所述積體電路的高頻寬儲存堆疊包括:高頻寬儲存單元,被配置成基於儲存位址而儲存資料;以及可靠性電路,被配置成改善所述高頻寬儲存單元內的資料錯誤。所述可靠性電路可包括備用記憶體以及位址表,所述備用記憶體被配置成儲存資料,所述位址表被配置成將與所述錯誤相關聯的儲存位址映射到所述備用記憶體的一部分。所述可靠性電路被配置成當進行對積體電路的所述高頻寬儲存堆疊的記憶體存取時,判斷所述記憶體存取是否與錯誤相關聯,且如果是,則至少部分地利用所述備用記憶體來完成所述記憶體存取。
根據另一一般方面,一種裝置可包括邏輯裸晶,所述邏輯裸晶包括與高頻寬記憶體裸晶的內部介面,其中所述高頻寬記憶體裸晶被配置成基於儲存位址而儲存資料。所述邏輯裸晶可包括外部介面,所述外部介面被配置成在所述高頻寬記憶體裸晶與至少一個外部元件之間傳送記憶體存取。所述邏輯裸晶可包括可靠性電路,所述可靠性電路被配置成改善所述高頻寬記憶體裸晶內的資料錯誤。所述可靠性電路可包括備用記憶體以及位址表,所述備用記憶體被配置成儲存資料,所述位址表被配置成將與錯誤相關聯的儲存位址映射到所述備用記憶體的一部分。所述可靠性電路可被配置成當進行對所述高頻寬記憶體裸晶的記憶體存取時,判斷所述記憶體存取是否與錯誤相關聯,且如果是,則至少部分地利用所述備用記憶體來完成所述記憶體存取。
在附圖及以下說明內容中闡述一種或多種實施方式的詳細情況。通過閱讀說明內容及圖式以及閱讀申請專利範圍,其他特徵將顯而易見。
實質上在各圖中的至少一個圖中示出了和/或結合各圖中的至少一個圖闡述了用於記憶體糾錯的系統和/或方法,且更具體來說高頻寬記憶體(HBM)可靠性、可存取性及可服務性(reliability, accessibility, and serviceability,RAS)快取記憶體架構,如在申請專利範圍中更完整地闡述。
在下文中,將參照附圖更充分地闡述各種示例性實施例,在所述附圖中示出一些示例性實施例。然而,本發明所公開主題可被實施為許多不同形式,而不應被視為僅限於本文所述示例性實施例。確切來說,提供這些示例性實施例是為了使本公開將透徹及完整,並將向所屬領域中的技術人員充分傳達本發明所公開主題的範圍。在圖式中,為清晰起見,可誇大各個層及各個區的大小及相對大小。
應理解,當稱一元件或層位於另一元件或層“上(on)”、“連接到(connected to)”或“耦合到(coupled to)”另一元件或層時,所述元件或層可直接位於所述另一元件或層上、直接連接到或直接耦合到所述另一元件或層,抑或可存在中間元件或層。相比之下,當稱一元件“直接位於(directly on)”另一元件或層上、“直接連接到(directly connected to)”或“直接耦合到(directly coupled to)”另一元件或層時,則不存在中間元件或層。相同的編號自始至終指代相同的元件。本文所用用語“和/或(and/or)”包括相關列出項中的一個或多個項的任意及所有組合。
應理解,儘管在本文中可使用“第一(first)”、“第二(second)”、“第三(third)”等用語來闡述各個元件、元件、區、層和/或區段,然而這些元件、元件、區、層和/或區段不應受限於這些用語。這些用語僅用於區分各個元件、元件、區、層或區段。因此,以下論述的第一元件、元件、區、層或區段也可被稱為第二元件、元件、區、層或區段,而此並不背離本發明所公開主題的教示內容。
為易於說明,在本文中可使用例如“在…之下(beneath)”、“在…下面(below)”、“下部的(lower)”、“在…上方(above)”、“上部的(upper)”等空間相對性用語來闡述圖中所示一個元件或特徵與另一(其他)元件或特徵的關係。應理解,空間相對性用語旨在除圖中所繪示的取向外還囊括元件在使用或操作中的不同取向。舉例來說,如果圖中所示元件被翻轉,則被闡述為位於其他元件或特徵“下面”或“之下”的元件此時將被取向為位於所述其他元件或特徵“上方”。因此,示例性用語“在…下面”可囊括“上方”及“下面”兩種取向。元件可具有其他取向(旋轉90度或處於其他取向)且本文所用的空間相對性描述語相應地進行解釋。
同樣地,為易於說明,在本文中可使用例如“高(high)”、“低(low)”、“上拉(pull up)”、“下拉(pull down)”、“1”、“0”等電性用語來闡述圖中所示電壓準位或電流相對於其他電壓準位的關係或者相對於另一(其他)元件或特徵的關係。應理解,所述電性相對用語旨在除了圖中所繪示的電壓或電流之外還囊括元件在使用或操作中的不同的參考電壓。舉例來說,如果圖中所示元件或信號被反相或使用其他參考電壓、電流或電荷,則被闡述為“高”或“被上拉”的元件此時與新的參考電壓或電流相比將為“低”或“被下拉”的。因此,示例性用語“高”可囊括相對低的電壓或電流或者相對高的電壓或電流二者。元件可另外地基於不同的電性參考框架且本文所用的電性相對描述語相應地加以解釋。
本文所用術語僅是出於闡述特定示例性實施例的目的而並非旨在限制本發明所公開主題。除非上下文清楚地另外指明,否則本文所用單數形式“一(a、an)”及“所述(the)”旨在也包括複數形式。還應理解,當在本說明書中使用用語“包括(comprises)”和/或“包括(comprising)”時,是指明所陳述特徵、整數、步驟、操作、元件和/或元件的存在,但不排除一個或多個其他特徵、整數、步驟、操作、元件、元件和/或其群組的存在或添加。
在本文中參照剖視圖闡述示例性實施例,所述剖視圖為對理想示例性實施例(及中間結構)的示意性例示。由此,預期會因例如製造技術和/或容差而導致相對於例示形狀的變化。因此,示例性實施例不應被視為僅限於本文所示區的特定形狀,而是應包含由例如製造引起的形狀偏差。舉例來說,被例示為矩形的注入區通常應具有圓形特徵或曲線特徵和/或在其邊緣存在注入濃度的梯度而非從注入區到非注入區為二元變化。同樣地,通過注入而形成的掩埋區可在所述掩埋區與在進行注入時所經過的表面之間的區中引起一些注入。因此,圖中所例示的區為示意性的且其形狀並非旨在例示元件的區的實際形狀且並非旨在限制本發明所公開主題的範圍。
除非另外定義,否則本文所用所有用語(包括技術及科學用語)的含義均與本發明所公開主題所屬領域中的一般技術人員所通常理解的含義相同。還應理解,用語(例如在常用詞典中所定義的用語)應被解釋為具有與其在相關技術的上下文中的含義一致的含義,且除非在本文中明確定義,否則不應將其解釋為具有理想化或過於正式的意義。
在下文中,將參照附圖詳細解釋示例性實施例。
圖1是根據所公開主題的系統100的示例性實施例的等距方塊圖。在所示出的實施例中,多個積體電路裸晶可堆疊(或以其他方式)整合以形成多晶片系統。在各種實施例中,這種多晶片系統100可如以下所述包括RAS快取記憶體(cache)或電路。
在各種實施例中,高頻寬記憶體(HBM)可包括隨機存取記憶體(RAM)的高性能形式。在一些實施例中,HBM可包括使用矽通孔(TSV)進行通信的堆疊的動態RAM(DRAM)記憶體。一般來說,高頻寬記憶體對矽通孔(TSV)與微凸塊進行組合來連接疊置在彼此頂部上的多個(例如,4個、8個等)儲存單元陣列裸晶。在一些實施例中,記憶體控制器可在堆疊的最底部處包括在單獨的裸晶上。
在所示出的實施例中,系統100可包括一個或多個記憶體(例如,DRAM等)裸晶104及邏輯裸晶102。在一個實施例中,記憶體裸晶104及邏輯裸晶102可使用或可不使用相同的製造製程來創建或製造。
在所示出的實施例中,記憶體裸晶104可包括多個儲存陣列114。在這種實施例中,儲存陣列114可被配置成儲存各種資料。在一些實施例中,可由邏輯裸晶102或外部元件(例如,外部處理器或主機,如以下所述)來對資料進行存取。
在所示出的實施例中,邏輯裸晶102可包括一個或多個邏輯電路112。在這種實施例中,邏輯電路112可包括用於接受讀取/寫入請求或更一般的記憶體存取的介面以讀取或儲存記憶體114內的資料。在各種實施例中,邏輯裸晶102可包括RAS快取記憶體或電路113,如以下所述。
在各種實施例中,邏輯電路112可使用一個或多個通孔126(或微凸塊等)來與記憶體114進行通信。在這種實施例中,此可實現處理元件(例如,邏輯電路112)與所儲存的資料(記憶體114)之間的高速通信而無需通過匯流排或外部介面進行通信。
在各種實施例中,系統100也可包括路由裸晶106。路由裸晶106可被配置成在邏輯裸晶112與記憶體裸晶104之間對信號進行動態路由。在各種實施例中,路由裸晶106可通過一個或多個通孔126來與邏輯裸晶102進行耦合。通孔126(或通孔126的一部分)可以輸入/輸出(input/output,I/O)端子或介面123作為終點。在這種實施例中,路由裸晶106可在輸入/輸出介面123與儲存所需資料的記憶體114之間對信號進行動態路由。
在各種實施例中,所述路由可由路由結構126來實現。在各種實施例中,路由結構126可包括各種路由元件,例如(舉例來說)多工器(multiplexer)、解多工器(de-multiplexer)、交叉開關(crossbar switch)、開關、旋轉開關、記憶體開關、跨交開關(crossover switch)等。應理解,以上僅為幾個例示性實例,所公開主題並不受限於上述幾個例示性實例。
在一些實施例中,路由結構126可被配置成在邏輯電路112的輸入/輸出介面123與記憶體114的相似的輸入/輸出介面123a或123b之間對輸入/輸出信號進行路由。在所示出的實施例中,示出兩種可能的路由方案。舉例來說,實線示出第一路由,其可被用於將邏輯電路112連接到第一記憶體(在記憶體裸晶104的左下角中示出)的輸入/輸出介面123a。在另一實例中,虛線示出第二路由,其可用於將邏輯電路112連接到第二記憶體(在記憶體裸晶104的右側中示出)的輸入/輸出介面123b。然而,在各種實施例中,記憶體114可為單片的且不如圖中所示分開。應理解,以上僅為幾個例示性實例,所公開主題並不受限於上述幾個例示性實例。
圖2A是根據所公開主題的系統200的示例性實施例的方塊圖。在各種實施例中,系統200可為多個分立的積體電路、多晶片模組(multi chip module,MCM)和/或系統晶片(system-on-a-chip,SoC)的一部分。在各種實施例中,系統200可用於例如(舉例來說)以下計算元件中:膝上型電腦、桌上型電腦、工作站、個人數位助理、智慧手機、平板電腦及其他適合的電腦或者虛擬機器或虛擬機器的虛擬計算元件。
在一個實施例中,系統200可包括主機元件206。在各種實施例中,這種主機元件可包括中央處理器(central processing unit,CPU)、主機板、計算系統。在各種實施例中,主機元件206可包括執行指令且通常讀取及儲存資料的處理器(未示出)。作為這一過程的一部分,主機元件206可執行驅動器軟體或韌體242。在所示出的實施例中,元件驅動器242可包括運行或控制附接到電腦的特定類型的元件(例如,處理器204或HBM裸晶202)的電腦程式。在這種實施例中,驅動器242可向硬體元件提供軟體介面,以使作業系統及其他電腦程式存取硬體功能而無需知曉關於正使用的硬體的確切的詳細情況。
在所示出的實施例中,系統200可包括處理器204。在各種實施例中,處理器204可包括多種類型的處理器(例如,圖形處理器、中心處理器、元件專用處理器、實體處理器等)中的一者。為易於例示,處理器204將作為圖形處理單元(GPU)闡述;但是,應理解,以上僅為一個例示性實例,所公開主題並不受限於上述一個例示性實例。在各種實施例中,可採用GPU 204來產生圖形資料或實現大規模平行計算任務。
在各種實施例中,處理器204可包括記憶體控制器232。在這種實施例中,記憶體控制器232可被配置成管理往來於處理器204的資料流程。具體來說,在所示出的實施例中,記憶體控制器232可被配置成管理處理器204與HBM裸晶202之間的資料流程。
在所示出的實施例中,處理器204可包括糾錯(error correcting or correction,ECC)引擎或電路234。在這種實施例中,ECC引擎或電路234可被配置成檢測在從HBM裸晶202接收的資料中的一些資料或任意資料中是否已出現錯誤。在各種實施例中,ECC引擎234可與記憶體控制器232整合在一起或者可為記憶體控制器232的一部分。在各種實施例中,ECC引擎234可被配置成檢測單位錯誤或雙位元錯誤。應理解,以上僅為幾個例示性實例,所公開主題並不受限於上述幾個例示性實例。
在所示出的實施例中,處理器204可包括非揮發性記憶體236。但是,在各種實施例中,記憶體可為揮發性的或存在於處理器204外部,如以下所述。在這種實施例中,非揮發性記憶體236可被配置成儲存關於哪一儲存位址與錯誤相關聯的資訊。在一些實施例中,可避免壞的或有錯誤的儲存位址。在另一實施例中,可將壞的或有錯誤的儲存位址重新映射到良好的儲存單元或工作儲存單元。
如上所述,在所示出的實施例中,通過作為非揮發性記憶體236,可在處理器204的電源迴圈之間記住這些壞的或有錯誤的儲存位址。在另一實施例中,可使用揮發性記憶體且可能必須在每一電源迴圈重新發現壞的或有錯誤的儲存位址。在另一實施例中,處理器204可包括局部或整合的揮發性記憶體,但是當處理器204結束電源迴圈時,可將所述資料儲存在處理器204的遠端或外部的非揮發性記憶體(例如,硬驅動器(hard drive))中,並在處理器204重新啟動時取回所述資料。應理解,以上僅為幾個例示性實例,所公開主題並不受限於上述幾個例示性實例。
在所示出的實施例中,系統100可包括HBM裸晶,或者更準確來說可包括裸晶202的堆疊,如上所述。在各種實施例中,HBM裸晶202可包括多個儲存單元214,如上所述。在各種實施例中,儲存單元214可散佈在多個積體電路(integrated circuit,IC)裸晶之上且被配置成將資料儲存在相應的儲存位址處。
在各種實施例中,HBM裸晶202可包括儲存單元的ECC儲存裝置216。在這種實施例中,ECC儲存裝置216可包括額外的資訊(例如,同位(parity))位以允許或有利於檢測儲存在儲存單元214中的資料內的錯誤。在各種實施例中,ECC儲存裝置216可為儲存單元214的一部分,且即使ECC儲存裝置216在實體上分開,仍可同樣地散佈在多個積體電路(IC)裸晶之上,如上所述。在這種實施例中,ECC引擎234可使用此種ECC資料來檢測任意錯誤。
在各種實施例中,HBM裸晶202可包括HBM介面218,HBM介面218被配置成與處理器204和/或主機元件206進行通信或者在處理器204與主機元件206之間進行通信。在各種實施例中,系統200可包括一條或多條通信匯流排(未示出)以有利於裸晶間(例如,處理器204對HBM裸晶202)通信。在這種實施例中,這可包括記憶體存取(例如請求及回應)的發送。
在各種實施例中,HBM裸晶202可包括可靠性、可存取性及可服務性(RAS)快取記憶體或電路212(或可靠性電路212)。在這種實施例中,RAS電路212可不被配置成充當傳統的快取記憶體,從而以可快速存取的方式儲存小量資料,同時較大的記憶體提供另外的儲存。而是,RAS快取記憶體或電路212可被配置成充當備份記憶體或備用記憶體以糾正(或看起來糾正)或者以其他方式改善在儲存單元214內找到的錯誤。如以下所述,傳統上,一旦在儲存單元214中檢測到錯誤,可能無法在不採取大量的且耗時的動作的條件下修復或糾正所述錯誤。利用RAS快取記憶體或電路212,可更快速且高效地進行這種修復或糾正。
在各種實施例中,RAS電路212可包括RAS或備用記憶體或儲存裝置222。在各種實施例中,備用儲存裝置222可被配置成儲存儲存單元214的與錯誤相關聯的一些部分或者以其他方式失修的一些部分的資料。以下將闡述這些元件的操作。
在各種實施例中,RAS電路212可包括位址表220,位址表220被配置成儲存與錯誤相關聯的一系列儲存位址(位於儲存單元214內)並將這種儲存位址錯誤映射到備用記憶體222的一部分。
圖2B是根據所公開主題的系統200的示例性實施例的方塊圖。圖2B所示系統200示出資訊流以及事件的相對時序作為對錯誤進行檢測的系統。應理解,以上僅為一個例示性實例,所公開主題並不受限於上述一個例示性實例。
在錯誤處置及檢測方面,傳統GPU的儲存錯誤管理一般來說如下所述進行。首先,ECC引擎234檢測到不可恢復的錯誤。這種錯誤常常與儲存單元214的特定儲存位址相關聯且一般來說涉及雙位元錯誤或兩個單位錯誤。這種錯誤可被報告給驅動器242。
在這種實施例中,驅動器242轉而可將錯誤報告給應用(未示出)或主機元件206的一部分。驅動器242也可將儲存錯誤登記到GPU的非揮發性記憶體236中。傳統上,系統將無法在進行當前GPU交互的同時改善或防止這種錯誤的重現。
然而,在系統的下一重新附接、重置、重新啟動或者GPU交互的下一順序或序列時,幀緩衝器管理器(未示出,但為處理器204的一部分)可將具有錯誤的止用頁(retired page)加入黑名單。在這種實施例中,可不再使用所述儲存位址或頁來進行儲存。由此,儲存位址或頁被永久止用,且記憶體的功能容量減小。
這種傳統製程具有一些缺陷。首先,不可能在客戶機(例如,主機元件或在主機元件上運行的軟體)保持現用的同時將頁加入黑名單。第二,在當前GPU上可能止用的頁或儲存位址的數目部分地因GPU的當前NVM能力而受限。第三,存在大的止用細微性;也就是說,2位元錯誤會引起4千位元組(KB)頁的止用。另外,這種傳統製程最終會引起記憶體容量減小且儲存單元214的越來越多的部分被加入黑名單。
在所示出的實施例中,系統200通過在HBM模組或裸晶202上實現額外的邏輯及記憶體以對錯誤進行快取記憶體及修復來對所述情況進行補救。詳細來說,RAS電路212以至少幾千位元組的大小在HBM邏輯裸晶上實施;但是,應理解,以上僅為例示性實例,所公開主題並不受限於上述例示性實例。這種RAS電路212包括索引區或位址表220以儲存由主機206或處理器204接收的位址,且可被HBM裸晶202的內部糾錯機制保護。RAS電路212也可包括資料區或備用儲存裝置222,所述資料區或備用儲存裝置222被配置成儲存經修復的資料(其可為任意給定大小)。表220與儲存裝置222區可具有1-1映射。另外,這些區可利用與HBM邏輯裸晶(例如,DRAM、靜態隨機存取記憶體(Static random access memory,SRAM)、快閃記憶體等)相容的任意技術來實施。
在所示出的實施例中,再次,糾錯處理可以ECC引擎234檢測到在給定儲存位址處已出現錯誤開始。如由箭頭282所示,ECC引擎234可警告驅動器242,如上所述。再次,如由箭頭284所示,驅動器242可將此記錄在非揮發性記憶體236中。
然而,代替將儲存位址或頁加入黑名單以及等待直到處理器204不再立即使用才將儲存位址或頁加入黑名單,處理器204(通過箭頭286示出)可通知HBM裸晶202(或HBM裸晶202的邏輯裸晶)給定儲存位址是壞的。HBM裸晶202(且更具體來說RAS電路212)可接著採取糾正動作。
在所示出的實施例中,RAS電路212可將壞的儲存位址登記或錄入到位址表220中。壞的儲存位址可被映射到備用儲存裝置222的一部分或儲存位址。在各種實施例中,可將在儲存位址處的儲存單元214中包含的資料複製(包括錯誤及全部)到備用儲存裝置222的被映射的部分。在各種實施例中,這可能是不期望的,因為所述資料確實包含錯誤。在這種實施例中,處理器204可能要求在可讀回新資料(不具有錯誤的資料)之前將新資料寫入到HBM裸晶202中。應理解,以上僅為幾個例示性實例,所公開主題並不受限於上述幾個例示性實例。
在這種實施例中,一旦對儲存位址進行新的記憶體存取(例如,讀取或寫入),RAS電路212便檢查儲存位址是否位於位址表220中(且由此與錯誤相關聯)。如果不是,則正常地處理記憶體存取。記憶體存取由儲存單元214實現。如果儲存位址與錯誤相關聯,則記憶體存取由備用儲存裝置222實現,具體來說由位址的被位址表220映射的部分實現。
在這種實施例中,對壞的儲存位址的所有記憶體存取均可由備用儲存裝置222無縫地(對處理器204或主機元件206)實現。在這種實施例中,即使當處理器204與客戶機接合時,此也可實現。不需要等待到處理器204脫離接合、不使用或作為重新附接的一部分。第二,通過將特定儲存位址重新映射到備用儲存裝置222,HBM裸晶202的儲存容量不減小。在不加入黑名單的條件下,HBM裸晶202看起來具有相同量的儲存容量。第三,RAS電路212可提供記憶體映射的各種細微性。儘管傳統的方法需要將4 KB頁加入黑名單並止用,然而RAS電路212可允許對快取記憶體行、頁或其他大小的記憶體進行映射。
在各種實施例中,向位址表220添加新的儲存位址(箭頭286)可涉及處理器204(或主機元件206)對預定義的或預留的儲存位址實行記憶體寫入要求。在這種實施例中,RAS電路212可知曉對所述儲存位址的任意寫入均意指要將新的條目置於位址表220中。在這種實施例中,記憶體寫入要求的資料部分可包括壞的儲存位址。在另一實施例中,向位址表220添加新的儲存位址(箭頭286)可涉及使用新的消息類型或協定。應理解,以上僅為幾個例示性實例,所公開主題並不受限於上述幾個例示性實例。
在各種實施例中,處理器204或主機元件242可能夠通過對另一預定義的或預留的儲存位址實行記憶體讀取要求來檢查備用儲存裝置222正在使用或可供用於重新映射的容量。在這種實施例中,RAS儲存裝置可利用備用儲存裝置222的當前儲存容量或使用量級別來更新暫存器或儲存位址,且處理器204或主機元件206可能夠在任意希望的時間從所述儲存位址進行讀取。在各種實施例中,這可在箭頭286的操作之前完成,以便確認這種空間是可用的。在一些實施例中,如果備用儲存裝置222已滿或全部正在使用,則處理器204及主機元件206可回退到傳統的加黑名單/止用技術。在另一實施例中,檢查備用儲存裝置222的空閒容量可涉及使用新的消息類型或協定。應理解,以上僅為幾個例示性實例,所公開主題並不受限於上述幾個例示性實例。
在各種實施例中,當系統200初始化(例如,啟動)時,可(由主機元件206或處理器204)從HBM裸晶202讀取信息。在一個實施例中,可判斷HBM裸晶202是否包括或支援RAS電路212。在一個實施例中,可確定使用何種級別的重新映射細微性(例如,256位、512位等)。在另一實施例中,可確定可如何支援快取記憶體或備用儲存裝置222條目和/或位址表條目220。在各種實施例中,可通過對預定義的或預留的位址的記憶體讀取要求或通過特定消息或協定來進行這些查詢。應理解,以上僅為幾個例示性實例,所公開主題並不受限於上述幾個例示性實例。
同樣,在各種實施例中,當系統200初始化(例如,啟動)時,可(由主機元件206或處理器204)將資訊或設置寫入到HBM裸晶202。在一個實施例中,可(例如,從非揮發性記憶體236)將預先存在的一系列壞的儲存位址寫入到位址表220。在另一實施例中,可為備用儲存裝置222設置重新映射細微性級別(例如,256位、512位等)。應理解,以上僅為幾個例示性實例,所公開主題並不受限於上述幾個例示性實例。
圖2C是根據所公開主題的系統201的示例性實施例的方塊圖。在各種實施例中,系統201示出所公開主題的另一變型。
在這種實施例中,主機元件206及處理器204可包括與上述相同的元件。HBM裸晶202(且具體來說邏輯裸晶)可包括其自己的ECC引擎294。在這種實施例中,HBM裸晶202可能夠檢測儲存單元214中的錯誤並將一或多個壞的儲存位址重新映射到備用儲存裝置222,而無需主機元件206及處理器204的輔助。在各種實施例中,通過使用非揮發性記憶體,這種重新映射可實質上為永久的。但是,在其他實施例中,在每次重新啟動之後均可進行重新映射,即使這並非高效的或期望的。
在這種實施例中,ECC引擎294可代替ECC引擎234檢測錯誤。在這種實施例中,主機元件206及處理器204可不知曉任意此種錯誤。在各種實施例中,主機元件206及處理器204可繼續參與上述傳統的加黑名單/止用技術,但是由於HBM裸晶202內部改善努力,可能不會進行或者僅偶爾進行這種加黑名單/止用。
在各種實施例中,如由箭頭292所示,HBM裸晶202中的ECC引擎294可將壞的儲存位址添加到位址表220。壞的儲存位址可接著被映射到備用儲存裝置222的一部分,且如上所述可進行任意未來記憶體存取。
圖3是根據所公開主題的資料結構300及302的示例性實施例的方塊圖。在所示出的實施例中,資料結構300及302可表示RAS電路的表及儲存裝置,如上所述。
在所示出的實施例中,資料結構300可表示上述位址表或索引區的一個可能的實施例。在這種實施例中,資料結構300(位址表或索引區)可被配置成儲存壞的或有錯誤的儲存位址(或儲存區,例如頁)。在各種實施例中,可從主機元件或處理器接收這些壞的儲存位址。在各種實施例中,資料結構300可被其自己的ECC形式保護。
在所示出的實施例中,資料結構300的每一列均可被視為儲存位址條目。在這種實施例中,資料結構300可包括指示哪一儲存位址是壞的的行312。這可為當進行記憶體存取以確定記憶體存取應由HBM儲存單元實現還是由備用儲存裝置實現時所檢查的行312,如上所述。
在所示出的實施例中,每一儲存位址條目均可包括有效位或旗標行314。在這種實施例中,這種有效旗標314可指示相應的儲存位址條目是否正在使用。在這種實施例中,當主機或處理器將條目寫入到資料結構300中時可設置有效旗標314。在另一實施例中,資料結構300可被週期性地(例如,作為重新啟動的一部分)擦除且可不包括有效旗標314。
在各種實施例中,每一儲存位址條目均可包括行的類型欄位315。在這種實施例中,可不包括此種欄位315,這是因為錯誤改善可為均勻的或者在所有的位址中實現相同的大小(例如,以字或列計)。然而,在所示出的實施例中,每一位址可與錯誤改善的不同級別、量或類型(例如1位、1字或各種數目的位元)相關聯。在一些實施例中,欄位315可包括經過已糾正的儲存位址的位元的數目。然而,在所示出的實施例中,預定義的可為所採用的,例如對於1位來說值為1、對於1字來說值為2等等。應理解,以上僅為幾個例示性實例,所公開主題並不受限於上述幾個例示性實例。
在所示出的實施例中,每一儲存位址條目均可包括被映射的位址行316。在這種實施例中,被映射的位址行316可為備用儲存裝置中的其中實際上儲存有與壞的儲存位址(行312)相關聯的資料的儲存位址或位置。在這種實施例中,當對壞的儲存位址進行記憶體存取時,所述存取不僅重新定向到備用儲存裝置而且還重新定址到被映射的儲存位址316。在各種實施例中,這可為固定映射。在所示出的實施例中,所述映射可為1對1。然而,在另一實施例中,映射可為組關聯的或者採用另一方案。
在所示出的實施例中,資料結構300可包括儲存位址條目Address #1,儲存位址條目Address #1具有有效旗標1或被重置(Set)且被映射到位址#M1。同樣地,儲存位址條目Address #2可包括有效旗標1或被重置且被映射到位址#M2。可存在多個其他儲存位址條目。最終,儲存位址條目Address #N可包括有效旗標0或被清零且被映射到位址#MN。應理解,以上僅為幾個例示性實例,所公開主題並不受限於上述幾個例示性實例。
在所示出的實施例中,資料結構302可包括多個儲存單元,所述多個儲存單元分別被配置成將資料儲存在相應的儲存位址處。在各種實施例中,資料結構302可採用ECC保護。如上所述,當進行對壞的儲存位址的記憶體寫入要求時,可將新的資料儲存在備用儲存裝置或資料結構302中(例如,Data #1、Data #2、Data #N)。如上所述,儲存資料的位置可基於儲存位址條目。
在各種實施例中,資料結構302可為任意大小。在一個這種實施例中,資料結構302可包括150千位元組;但是,應理解,以上僅為一個例示性實例,所公開主題並不受限於上述一個例示性實例。在各種實施例中,細微性級別也可為可變的大小(例如,256位)。
在一些實施例中,RAS電路可包括多資料結構302和/或300以適應不同的大小或錯誤圖案。舉例來說,在各種實施例中,RAS電路可適應以下的錯誤圖案且包括以下的資料結構:單位資料錯誤、單字資料錯誤、單列資料錯誤和/或單行資料錯誤。應理解,以上僅為幾個例示性實例,所公開主題並不受限於上述幾個例示性實例。
圖4A是根據所公開主題的系統400的示例性實施例的方塊圖。在所示出的實施例中,示出記憶體寫入要求。應理解,以上僅為一個例示性實例,所公開主題並不受限於上述一個例示性實例。
在所示出的實施例中,系統400可包括處理器204及HBM裸晶202,如上所述。在各種實施例中,處理器204可包括記憶體控制器232。HBM裸晶202可包括HBM陣列或儲存單元214(其可包括ECC儲存裝置)及RAS電路212,如上所述。在所示出的實施例中,RAS電路212可包括索引區或位址表220以及RAS或備用儲存裝置222,如上所述。在所示出的實施例中,系統400還可包括命令匯流排412及資料匯流排414。
在所示出的實施例中,記憶體控制器232可向HBM裸晶202發出記憶體寫入要求。在這種實施例中,命令本身(及儲存位址)可通過命令匯流排412發送且將要寫入的資料可通過資料匯流排414發送。應理解,以上僅為一個例示性實例,所公開主題並不受限於上述一個例示性實例。
一旦接收到記憶體寫入要求,RAS電路212便可判斷與記憶體存取相關聯的儲存位址是否在位址表220中列出(且有效)。位址表220可生成位址表命中(如果列出所述位址)或位址表未中(如果未列出所述位址)。這由信號424示出。
在所示出的實施例中,RAS電路212可包括解多工器(DeMUX)或路由電路420。路由電路420可被配置成根據位址表命中/未中424而將資料路由到儲存單元214或備用儲存裝置222。如上所述,如果出現位址表命中,則路由電路420可將要寫入的資料發送到備用儲存裝置(由箭頭434示出)。同樣,位址表220可產生被映射的儲存位址432,並將被映射的儲存位址432發送到備用儲存裝置222。相反地且還如上所述,如果出現位址表未中,則路由電路420可將要寫入的資料發送到儲存單元214(由箭頭436示出)。同樣但未示出,來自命令匯流排412的儲存位址可由儲存單元214使用以儲存資料。
在各種實施例中,可始終將資料寫入到儲存單元,而不論是否出現位址表命中/未中。在這種實施例中,不需要更改用於對儲存單元214實行記憶體存取的邏輯以適應RAS電路212的添加。在這種實施例中,當出現位址表命中時,可將資料寫入到儲存單元214及備用儲存裝置222二者,但可只忽略儲存單元214中的資料,如以下所示。應理解,以上僅為一個例示性實例,所公開主題並不受限於上述一個例示性實例。
圖4B是根據所公開主題的系統401的示例性實施例的方塊圖。在所示出的實施例中,示出記憶體讀取要求。應理解,以上僅為一個例示性實例,所公開主題並不受限於上述一個例示性實例。
在所示出的實施例中,系統401可包括處理器204及HBM裸晶202,如上所述。在各種實施例中,處理器204可包括記憶體控制器232。HBM裸晶202可包括HBM陣列或儲存單元214(其可包括ECC儲存裝置)及RAS電路212,如上所述。在所示出的實施例中,RAS電路212可包括索引區或位址表220以及RAS或備用儲存裝置222,如上所述。在所示出的實施例中,系統400還可包括命令匯流排412及資料匯流排414。
在所示出的實施例中,記憶體控制器232可向HBM裸晶202發出記憶體讀取要求。在這種實施例中,命令本身(及儲存位址)可通過命令匯流排412發送且資料將通過資料匯流排414返回。應理解,以上僅為一個例示性實例,所公開主題並不受限於上述一個例示性實例。
一旦接收到記憶體讀取要求,RAS電路212便可判斷與記憶體存取相關聯的儲存位址是否在位址表220中列出(且有效)。位址表220可生成位址表命中(如果列出所述位址)或位址表未中(如果未列出所述位址)。這由信號424示出。
在所示出的實施例中,RAS電路212可包括多工器(multiplexer,MUX)、閘控(gating)或路由電路470。路由電路470可被配置成根據位址表命中/未中424而將資料從儲存單元214或備用儲存裝置222路由到資料匯流排414。如上所述,如果出現位址表命中,則路由電路470可將從備用儲存裝置取回的資料(由箭頭474示出)發送到資料匯流排414。同樣,位址表220可產生被映射的儲存位址432,並將被映射的儲存位址432發送到備用儲存裝置222。相反地且還如上所述,如果出現位址表未中,則路由電路470可將從儲存單元214取回的資料(由箭頭476示出)發送到資料匯流排414。同樣但未示出,來自命令匯流排412的儲存位址可由儲存單元214使用以取回資料。
在各種實施例中,可始終將資料寫入到儲存單元,而不論是否出現位址表命中/未中,如上所述。在這種實施例中,儘管資料被儲存在儲存單元214的壞的或有錯誤的儲存位址中,然而路由電路470仍會防止將壞的或有錯誤的資料置於資料匯流排414上。而是,使用來自備用儲存裝置222的良好的資料。在這種實施例中,資料可始終從儲存單元214讀取但接著由路由電路470閘控。
圖5是可包括根據所公開主題的原理形成的半導體元件的資訊處理系統500的示意性方塊圖。
參照圖5,資訊處理系統500可包括根據所公開主題的原理構造而成的一個或多個元件。在另一實施例中,資訊處理系統500可採用或執行根據所公開主題的原理的一種或多種技術。
在各種實施例中,資訊處理系統500可包括計算元件,例如(舉例來說)膝上型電腦、桌上型電腦、工作站、伺服器、刀片伺服器(blade server)、個人數位助理、智慧手機、平板電腦及其他適合的電腦或者虛擬機器或虛擬機器的虛擬計算元件。在各種實施例中,資訊處理系統500可由使用者(圖中未示出)使用。
根據所公開主題的資訊處理系統500還可包括中央處理器(central processing unit,CPU)、邏輯或處理器510。在一些實施例中,處理器510可包括一個或多個功能單元塊(functional unit block,FUB)或組合邏輯塊(combinational logic block,CLB)515。在這種實施例中,組合邏輯塊可包括各種布林邏輯運算(例如,反及、反或、反、或斥或)、穩定化邏輯元件(例如,觸發器、鎖存器)、其他邏輯元件或其組合。這些組合邏輯運算可以簡單方式或複雜方式進行配置,以對輸入信號進行處理來實現期望結果。應理解,儘管闡述了同步組合邏輯運算的幾個例示性實例,然而所公開主題並不受限於此且可包括非同步運算或其混合。在一個實施例中,組合邏輯運算可包括多個互補金屬氧化物半導體(complementary metal oxide semiconductor,CMOS)電晶體。在各種實施例中,這些CMOS電晶體可被排列成用於實行邏輯運算的閘;但是,應理解,可使用其他技術且所述其他技術處於所公開主題的範圍內。
根據所公開主題的資訊處理系統500還可包括揮發性記憶體520(例如,隨機存取記憶體(RAM))。根據所公開主題的資訊處理系統500還可包括非揮發性記憶體530(例如,硬驅動器、光學記憶體、與非記憶體或快閃記憶體記憶體)。在一些實施例中,揮發性記憶體520、非揮發性記憶體530或它們的組合或一些部分可被稱為“儲存介質”。在各種實施例中,揮發性記憶體520和/或非揮發性記憶體530可被配置成以半永久形式或實質上永久形式儲存資料。
在各種實施例中,資訊處理系統500可包括一個或多個網路介面540,所述一個或多個網路介面540被配置成使資訊處理系統500成為通信網路的一部分且通過通信網路進行通信。Wi-Fi協定的實例可包括但不限於電氣及電子工程師協會(Institute of Electrical and Electronics Engineers,IEEE)802.11g、IEEE 802.11n。蜂窩協定的實例可包括但不限於:IEEE 802.16m(又名,先進無線都會區網路(Metropolitan Area Network,MAN)、先進長期演進(Long Term Evolution,LTE)、增強資料速率全球移動通信系統(Global System for Mobile Communications,GSM)演進(Enhanced Data rates for GSM Evolution,EDGE)、演進高速封包存取(Evolved High-Speed Packet Access,HSPA+)。有線協定的實例可包括但不限於IEEE 802.3(又名乙太網)、光纖通道、電力線通信(例如,家庭插座(HomePlug)、IEEE 1901)。應理解,以上僅為幾個例示性實例,所公開主題並不受限於上述幾個例示性實例。
根據所公開主題的資訊處理系統500還可包括使用者介面單元550(例如,顯示卡、觸覺介面、人機介面元件)。在各種實施例中,這種使用者介面單元550可被配置成從使用者接收輸入和/或向用戶提供輸出。也可使用其他種類的元件來實現與用戶的交互;舉例來說,提供到用戶的回饋可為任意形式的感覺回饋,例如,視覺回饋、聽覺回饋或觸覺回饋;且來自用戶的輸入可以任意形式接收,包括聲學輸入、語音輸入或觸覺輸入。
在各種實施例中,資訊處理系統500可包括一個或多個其他元件或硬體元件560(例如,顯示器或監視器、鍵盤、滑鼠、相機、指紋讀取器、視頻處理器)。應理解,以上僅為幾個例示性實例,所公開主題並不受限於上述幾個例示性實例。
根據所公開主題的資訊處理系統500還可包括一條或多條系統匯流排505。在這種實施例中,系統匯流排505可被配置成對處理器510、揮發性記憶體520、非揮發性記憶體530、網路介面540、使用者介面單元550及一個或多個硬體元件560進行通信耦合。經處理器510處理的資料或從非揮發性記憶體530外部輸入的資料可儲存在非揮發性記憶體530中或揮發性記憶體520中。
在各種實施例中,資訊處理系統500可包括或執行一個或多個軟體元件570。在一些實施例中,軟體元件570可包括作業系統(operating system,OS)和/或應用。在一些實施例中,OS可被配置成向應用提供一種或多種服務並管理或充當應用與資訊處理系統500的各種硬體元件(例如,處理器510、網路介面540)之間的中間介質。在這種實施例中,資訊處理系統500可包括一種或多種局部應用,所述一種或多種局部應用可在局部安裝(例如,安裝在非揮發性記憶體530內)且被配置成由處理器510直接執行並與OS直接進行交互作用。在這種實施例中,局部應用可包括預先編譯的機器可執行代碼。在一些實施例中,局部應用可包括腳本解譯器(例如,C shell(csh)、蘋果腳本(AppleScript)、AutoHotkey)或虛擬執行機(virtual execution machine,VM)(例如,Java虛擬機器、微軟公共語言運行時環境(Microsoft Common Language Runtime)),腳本解譯器及虛擬執行機被配置成將原始程式碼或目標代碼轉換成可執行代碼,然後由處理器510來執行所述可執行代碼。
上述半導體元件可使用各種封裝技術來進行包封。舉例來說,根據所公開主題的原理構造而成的半導體元件可使用以下中的任意一種來進行包封:層疊封裝(package on package,POP)技術、球柵陣列(ball grid array,BGA)技術、晶片尺寸封裝(chip scale package,CSP)技術、塑膠引線晶片載體(plastic leaded chip carrier,PLCC)技術、塑膠雙列直插式封裝(plastic dual in-line package,PDIP)技術、華夫包裝式裸晶(die in waffle pack)技術、晶片式裸晶(die in wafer form)技術、板上晶片(chip on board,COB)技術、陶瓷雙列直插封裝(ceramic dual in-line package,CERDIP)技術、塑膠公制四方扁平封裝(plastic metric quad flat package,PMQFP)技術、塑膠四方扁平封裝(plastic quad flat package,PQFP)技術、小外形封裝(small outline package,SOIC)技術、縮小型小外形封裝(shrink small outline package,SSOP)技術、薄型小外形封裝(thin small outline package,TSOP)技術、薄型四方扁平封裝(thin quad flat package,TQFP)技術、系統級封裝(system in package,SIP)技術、多晶片封裝(multi-chip package,MCP)技術、晶片級構造封裝(wafer-level fabricated package,WFP)技術、晶片級處理堆疊封裝(wafer-level processed stack package,WSP)技術或所屬領域中的技術人員將知曉的其他技術。
方法步驟可由一個或多個可程式設計處理器執行電腦程式來實行,以通過對輸入資料進行操作並產生輸出來實行功能。方法步驟還可由專用邏輯電路(例如,現場可程式設計閘陣列(field programmable gate array,FPGA)或應用專用積體電路(application-specific integrated circuit,ASIC))來實行,且裝置可被實施為專用邏輯電路。
在各種實施例中,電腦可讀介質可包括指令,所述指令在被執行時會使元件實行方法步驟的至少一部分。在一些實施例中,電腦可讀介質可包括在磁性介質、光學介質、其他介質或其組合(例如,壓縮磁碟唯讀記憶體(compact disc read only memory,CD-ROM)、硬驅動器、唯讀記憶體、快閃記憶體驅動器)中。在這種實施例中,電腦可讀介質可為有形的及以非暫時方式實施的製品。
儘管已參照示例性實施例闡述了所公開主題的原理,然而對所屬領域中的技術人員來說顯而易見的是,在不背離這些所公開概念的精神及範圍的條件下,可對其作出各種改變及修改。因此,應理解,以上實施例並非限制性的,而是僅為例示性的。因此,所公開概念的範圍將由以上申請專利範圍及其等效範圍所許可的最廣範圍的解釋來確定,而不應受上述說明約束或限制。因此,應理解,隨附申請專利範圍旨在涵蓋落於實施例的範圍內的所有這種修改及改變。
100‧‧‧系統/多晶片系統
102‧‧‧邏輯裸晶
104‧‧‧記憶體裸晶
106‧‧‧路由裸晶
112‧‧‧邏輯電路
113‧‧‧RAS快取記憶體或電路
114‧‧‧儲存陣列/記憶體
123‧‧‧輸入/輸出端子或介面/輸入/輸出介面
123a、123b‧‧‧輸入/輸出介面
126‧‧‧通孔
127‧‧‧路由結構
200、201、400、401‧‧‧系統
202‧‧‧HBM裸晶/裸晶/HBM模組
204‧‧‧處理器/GPU
206‧‧‧主機元件/主機
212‧‧‧可靠性、可存取性及可服務性(RAS)快取記憶體或電路/RAS電路/可靠性電路
214‧‧‧儲存單元
216‧‧‧ECC儲存裝置
218‧‧‧HBM介面
220‧‧‧位址表/表
222‧‧‧RAS或備用記憶體或儲存裝置/備用儲存裝置/備用記憶體/儲存裝置
232‧‧‧記憶體控制器
234‧‧‧ECC引擎或電路/ECC引擎
236、530‧‧‧非揮發性記憶體
242‧‧‧驅動器軟體或韌體/元件驅動器/驅動器
282、284、286、292、434、436、474、476‧‧‧箭頭
294‧‧‧ECC引擎
300、302‧‧‧資料結構
312‧‧‧行
314‧‧‧有效位或旗標行/有效旗標
316‧‧‧被映射的位址行/被映射的儲存位址
412‧‧‧命令匯流排
414‧‧‧資料匯流排
420、470‧‧‧路由電路
424‧‧‧信號/位址表命中/未中
432‧‧‧被映射的儲存位址
500‧‧‧資訊處理系統
505‧‧‧系統匯流排
510‧‧‧處理器/邏輯
515‧‧‧組合邏輯塊
520‧‧‧揮發性記憶體
540‧‧‧網路介面
550‧‧‧使用者介面單元
560‧‧‧硬體元件
570‧‧‧軟體元件
ADDRESS #1、ADDRESS #2、ADDRESS #N‧‧‧儲存位址條目
圖1是根據所公開主題的系統的示例性實施例的方塊圖。
圖2A是根據所公開主題的系統的示例性實施例的方塊圖。
圖2B是根據所公開主題的系統的示例性實施例的方塊圖。
圖2C是根據所公開主題的系統的示例性實施例的方塊圖。
圖3是根據所公開主題的系統的示例性實施例的方塊圖。
圖4A是根據所公開主題的系統的示例性實施例的方塊圖。
圖4B是根據所公開主題的系統的示例性實施例的方塊圖。
圖5是可包括根據所公開主題的原理形成的元件的資訊處理系統的示意性方塊圖。
各個圖式中相同的參考符號表示相同的元件。
100‧‧‧系統/多晶片系統
102‧‧‧邏輯裸晶
104‧‧‧記憶體裸晶
106‧‧‧路由裸晶
112‧‧‧邏輯電路
113‧‧‧RAS快取記憶體或電路
114‧‧‧儲存陣列/記憶體
123‧‧‧輸入/輸出端子或介面/輸入/輸出介面
123a、123b‧‧‧輸入/輸出介面
126‧‧‧通孔
127‧‧‧路由結構
Claims (20)
- 一種裝置,包括: 多個堆疊的積體電路裸晶,包括: 儲存單元裸晶,被配置成以基於儲存位址的隨機存取方式來儲存資料;以及 邏輯裸晶,包括: 與所述多個堆疊的積體電路裸晶的介面,且所述介面被配置成在所述儲存單元裸晶與至少一個外部元件之間傳送記憶體存取;以及 可靠性電路,被配置成改善所述儲存單元裸晶內的資料錯誤,且包括: 備用記憶體,被配置成以隨機存取方式來儲存資料,以及 位址表,被配置成將與錯誤相關聯的儲存位址映射到所述備用記憶體的一部分;且 其中所述可靠性電路被配置成當進行對所述多個堆疊的積體電路裸晶的記憶體存取時,判斷所述記憶體存取是否與錯誤相關聯,且如果是,則至少部分地利用所述備用記憶體來完成所述記憶體存取。
- 如申請專利範圍第1項所述的裝置,其中所述位址表包括: 改錯碼部分,用於防止所述位址表中的錯誤;且 對於每一儲存位址條目,包括有效旗標,所述有效旗標被配置成指示所述儲存位址條目是否為現用的。
- 如申請專利範圍第1項所述的裝置,其中所述可靠性電路被配置成: 從外部元件接收指示資料將儲存在儲存位址處的記憶體寫入要求; 判斷所述儲存位址是否與錯誤相關聯; 如果所述儲存位址與錯誤相關聯,則將所述資料寫入到所述備用記憶體的一部分;且 如果所述儲存位址不與錯誤相關聯,則將所述資料寫入到所述儲存位址處的所述儲存單元裸晶。
- 如申請專利範圍第3項所述的裝置,其中所述可靠性電路被配置成通過以下步驟來判斷所述儲存位址是否與錯誤相關聯: 判斷所述儲存位址是否作為儲存位址條目儲存在所述位址表內;以及 判斷有效旗標是否指示所述儲存位址條目是現用的。
- 如申請專利範圍第1項所述的裝置,其中所述可靠性電路被配置成: 從外部元件接收指示將從儲存位址讀取資料的記憶體讀取要求; 判斷所述儲存位址是否與錯誤相關聯; 如果所述儲存位址與錯誤相關聯,則從所述備用記憶體的一部分取回所述資料;且 如果所述儲存位址不與錯誤相關聯,則從所述儲存位址處的所述儲存單元裸晶取回所述資料。
- 如申請專利範圍第1項所述的裝置,其中所述可靠性電路被配置成: 從外部元件接收指示儲存位址與錯誤相關聯的消息; 將所述儲存位址置於所述位址表中;且 將所述儲存位址與所述備用記憶體的所述部分相關聯。
- 如申請專利範圍第6項所述的裝置,其中所述可靠性電路被配置成通過以下步驟從所述外部元件接收指示所述儲存位址與所述錯誤相關聯的所述消息: 接收對預定義的儲存位址的記憶體寫入要求,其中所述預定義的儲存位址與所述位址表相關聯。
- 如申請專利範圍第1項所述的裝置,其中所述可靠性電路被配置成: 監測所述備用記憶體的使用量級別,以及 將所述使用量級別的指示符儲存在預定義的儲存位址處;且 其中所述介面被配置成: 接收對所述預定義的儲存位址的記憶體讀取要求,且 利用所述備用記憶體的所述使用量級別的所述指示符對所述記憶體讀取要求作出回應。
- 一種系統,包括: 處理器,包括: 記憶體控制器,被配置成管理往來於所述處理器的資料流程,及 糾錯電路,被配置成檢測所儲存的資料中是否出現錯誤;以及 積體電路的高頻寬儲存堆疊,包括: 高頻寬儲存單元,被配置成基於儲存位址而儲存資料,以及 可靠性電路,被配置成改善所述高頻寬儲存單元內的資料錯誤,且包括: 備用記憶體,被配置成儲存資料,以及 位址表,被配置成將與所述錯誤相關聯的儲存位址映射到所述備用記憶體的一部分;且 其中所述可靠性電路被配置成當進行對積體電路的所述高頻寬儲存堆疊的記憶體存取時,判斷所述記憶體存取是否與錯誤相關聯,且如果是,則至少部分地利用所述備用記憶體來完成所述記憶體存取。
- 如申請專利範圍第9項所述的系統,其中所述處理器被配置成,當在所儲存的資料中出現錯誤時: 判斷所述備用記憶體是否包括足夠的空閒容量來改善所述錯誤, 如果不包括,則將與所述錯誤相關聯的所述儲存位址加入黑名單,且 如果包括,則使所述可靠性電路將與所述錯誤相關聯的所述儲存位址映射到所述備用記憶體的一部分。
- 如申請專利範圍第9項所述的系統,其中所述可靠性電路被配置成: 從所述處理器接收指示資料將儲存在儲存位址處的記憶體寫入要求; 判斷所述儲存位址是否與錯誤相關聯; 如果所述儲存位址與錯誤相關聯,則將所述資料寫入到所述備用記憶體的被映射的部分;且 如果所述儲存位址不與錯誤相關聯,則將所述資料寫入到所述儲存位址處的所述高頻寬儲存單元。
- 如申請專利範圍第9項所述的系統,其中所述可靠性電路被配置成: 從所述處理器接收指示將從儲存位址讀取資料的記憶體讀取要求; 判斷所述儲存位址是否與錯誤相關聯; 如果所述儲存位址與錯誤相關聯,則從所述備用記憶體的被映射的部分取回所述資料;且 如果所述儲存位址不與錯誤相關聯,則從所述儲存位址處的所述高頻寬儲存單元取回所述資料。
- 如申請專利範圍第9項所述的系統,其中所述處理器被配置成發出對預定義的儲存位址的記憶體寫入要求,其中所述預定義的儲存位址與所述位址表相關聯且其中所述記憶體寫入要求包括與所述錯誤相關聯的所述儲存位址作為一條資料;且 其中所述可靠性電路被配置成: 從所述處理器接收指示儲存位址與錯誤相關聯的消息; 將所述儲存位址置於所述位址表中;且 將所述儲存位址與所述備用記憶體的所述部分相關聯。
- 如申請專利範圍第9項所述的系統,其中所述可靠性電路被配置成: 監測所述備用記憶體的使用量級別,且 將所述使用量級別的指示符儲存在預定義的儲存位址處;並且 其中所述處理器被配置成: 發出對所述預定義的儲存位址的記憶體讀取要求,且 回應於所述記憶體讀取要求接收所述備用記憶體的所述使用量級別的所述指示符。
- 如申請專利範圍第9項所述的系統,其中所述處理器包括非揮發性記憶體,所述非揮發性記憶體被配置成儲存與相應的錯誤相關聯的一系列儲存位址;且其中所述糾錯電路被配置成當所述糾錯電路檢測到所儲存的資料中已出現錯誤時: 使與所述錯誤相關聯的所述儲存位址能夠由所述非揮發性記憶體及所述位址表二者儲存。
- 如申請專利範圍第15項所述的系統,其中所述非揮發性記憶體被配置成當所述系統初始化時,將與相應的錯誤相關聯的所述一系列儲存位址中的每一者添加到所述位址表;且 其中所述可靠性電路被配置成將所述儲存位址中的每一者映射到所述備用記憶體的相應的位置。
- 如申請專利範圍第9項所述的系統,其中所述可靠性電路被配置成在不對所述處理器進行重置的條件下改善所述高頻寬儲存單元內的資料錯誤。
- 一種裝置,包括: 邏輯裸晶,包括: 與高頻寬記憶體裸晶的內部介面,其中所述高頻寬記憶體裸晶被配置成基於儲存位址而儲存資料; 外部介面,被配置成在所述高頻寬記憶體裸晶與至少一個外部元件之間傳送記憶體存取;以及 可靠性電路,被配置成改善所述高頻寬記憶體裸晶內的資料錯誤,且包括: 備用記憶體,被配置成儲存資料,以及 位址表,被配置成將與錯誤相關聯的儲存位址映射到所述備用記憶體的一部分;且 其中所述可靠性電路被配置成當進行對所述高頻寬記憶體裸晶的記憶體存取時,判斷所述記憶體存取是否與錯誤相關聯,且如果是,則至少部分地利用所述備用記憶體來完成所述記憶體存取。
- 如申請專利範圍第18項所述的裝置,其中所述可靠性電路被配置成: 從所述至少一個外部元件接收指示資料將儲存在儲存位址處的記憶體寫入要求; 判斷所述儲存位址是否與錯誤相關聯; 如果所述儲存位址與錯誤相關聯,則將所述資料寫入到所述備用記憶體的一部分;且 如果所述儲存位址不與錯誤相關聯,則將所述資料寫入到所述儲存位址處的所述高頻寬記憶體裸晶。
- 如申請專利範圍第18項所述的裝置,其中所述可靠性電路被配置成: 從所述至少一個外部元件接收指示將從儲存位址讀取資料的記憶體讀取要求; 判斷所述儲存位址是否與錯誤相關聯; 如果所述儲存位址與錯誤相關聯,則從所述備用記憶體的被映射的部分取回所述資料;且 如果所述儲存位址不與錯誤相關聯,則從所述儲存位址處的所述高頻寬記憶體裸晶取回所述資料。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862692960P | 2018-07-02 | 2018-07-02 | |
US62/692,960 | 2018-07-02 | ||
US16/150,239 | 2018-10-02 | ||
US16/150,239 US11151006B2 (en) | 2018-07-02 | 2018-10-02 | HBM RAS cache architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202006548A true TW202006548A (zh) | 2020-02-01 |
TWI768200B TWI768200B (zh) | 2022-06-21 |
Family
ID=69055272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108113273A TWI768200B (zh) | 2018-07-02 | 2019-04-16 | 儲存裝置以及多晶片系統 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11151006B2 (zh) |
JP (1) | JP7252845B2 (zh) |
KR (1) | KR102420098B1 (zh) |
CN (1) | CN110673980B (zh) |
TW (1) | TWI768200B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108511017B (zh) * | 2018-04-02 | 2021-08-20 | 郑州云海信息技术有限公司 | 一种光媒介存储光媒介机构及系统 |
US11151006B2 (en) * | 2018-07-02 | 2021-10-19 | Samsung Electronics Co., Ltd. | HBM RAS cache architecture |
US10802967B1 (en) * | 2019-06-28 | 2020-10-13 | Intel Corporation | Partial write management in a multi-tiled compute engine |
CN113495671B (zh) | 2020-04-01 | 2023-10-17 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
EP3936996A4 (en) | 2020-04-01 | 2022-07-06 | Changxin Memory Technologies, Inc. | READ-WRITE METHOD AND STORAGE DEVICE |
EP3964940A4 (en) | 2020-04-01 | 2022-08-17 | Changxin Memory Technologies, Inc. | READ/WRITE METHOD AND STORAGE DEVICE |
EP3985494B1 (en) | 2020-04-01 | 2024-01-17 | Changxin Memory Technologies, Inc. | Read-write method and memory device |
EP3964941B1 (en) | 2020-04-01 | 2024-02-28 | Changxin Memory Technologies, Inc. | Read-write method and memory device |
CN113495675B (zh) * | 2020-04-01 | 2023-08-11 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
CN113495674B (zh) * | 2020-04-01 | 2023-10-10 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
CN113495672B (zh) | 2020-04-01 | 2023-08-11 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
KR20220034542A (ko) | 2020-09-11 | 2022-03-18 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US11573905B2 (en) * | 2021-01-21 | 2023-02-07 | Vmware, Inc. | Saving page retire information persistently across operating system reboots |
KR20230166563A (ko) * | 2022-05-31 | 2023-12-07 | 삼성전자주식회사 | 작동 도중에 발생하는 메모리 고장을 실시간으로 리페어링하는 방법과 메모리 시스템, 및 메모리 시스템을 포함하는 데이터 처리 장치 |
US20240078195A1 (en) * | 2022-09-01 | 2024-03-07 | Advanced Micro Devices, Inc. | Systems, methods, and devices for advanced memory technology |
US12019870B2 (en) | 2022-11-07 | 2024-06-25 | International Business Machines Corporation | System wide memory technology over-provisioning |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06139152A (ja) * | 1992-10-27 | 1994-05-20 | Kawasaki Steel Corp | 記憶装置用入出力回路 |
JP3242890B2 (ja) * | 1998-12-16 | 2001-12-25 | 株式会社ハギワラシスコム | 記憶装置 |
DE102004047813A1 (de) * | 2004-09-29 | 2006-03-30 | Infineon Technologies Ag | Halbleiterbaustein mit einer Umlenkschaltung |
US20060080572A1 (en) | 2004-09-30 | 2006-04-13 | Fong John Y | Set associative repair cache systems and methods |
JP2006323739A (ja) * | 2005-05-20 | 2006-11-30 | Renesas Technology Corp | メモリモジュール、メモリシステム、及び情報機器 |
US20070147115A1 (en) * | 2005-12-28 | 2007-06-28 | Fong-Long Lin | Unified memory and controller |
US7647536B2 (en) | 2005-12-30 | 2010-01-12 | Intel Corporation | Repair bits for a low voltage cache |
US8898437B2 (en) | 2007-11-02 | 2014-11-25 | Qualcomm Incorporated | Predecode repair cache for instructions that cross an instruction cache line |
US8756486B2 (en) * | 2008-07-02 | 2014-06-17 | Micron Technology, Inc. | Method and apparatus for repairing high capacity/high bandwidth memory devices |
US9042191B2 (en) | 2009-08-12 | 2015-05-26 | Taiwan Semiconductor Manufacturing Company, Ltd. | Self-repairing memory |
DE112011105326T5 (de) | 2011-06-30 | 2014-02-27 | Hewlett-Packard Development Company, L.P. | Speichermodul, umfassend eine Kopierroutine zum Kopieren von Daten aus einen aktiven Speicherwürfel in einen Reservespeicherwürfel |
US8867286B2 (en) * | 2011-12-20 | 2014-10-21 | Industrial Technology Research Institute | Repairable multi-layer memory chip stack and method thereof |
CN103377143B (zh) * | 2012-04-27 | 2016-12-21 | 群联电子股份有限公司 | 存储器管理方法、存储器控制器与存储器存储装置 |
US9230609B2 (en) * | 2012-06-05 | 2016-01-05 | Rambus Inc. | Memory bandwidth aggregation using simultaneous access of stacked semiconductor memory die |
KR102025080B1 (ko) * | 2013-01-02 | 2019-09-25 | 삼성전자 주식회사 | 스토리지 시스템 및 스토리지 시스템의 여분 공간 조절 방법 |
US9406403B2 (en) * | 2013-06-25 | 2016-08-02 | Advanced Micro Devices, Inc. | Spare memory external to protected memory |
US9372750B2 (en) * | 2013-11-01 | 2016-06-21 | Qualcomm Incorporated | Method and apparatus for non-volatile RAM error re-mapping |
US9535831B2 (en) * | 2014-01-10 | 2017-01-03 | Advanced Micro Devices, Inc. | Page migration in a 3D stacked hybrid memory |
JP6221762B2 (ja) * | 2014-01-16 | 2017-11-01 | 富士通株式会社 | 記憶装置、記憶方法及び制御装置 |
US20160147667A1 (en) * | 2014-11-24 | 2016-05-26 | Samsung Electronics Co., Ltd. | Address translation in memory |
KR102190125B1 (ko) * | 2014-12-05 | 2020-12-11 | 삼성전자주식회사 | 어드레스 리매핑을 위한 적층형 메모리 장치, 이를 포함하는 메모리 시스템 및 어드레스 리매핑 방법 |
US9632867B2 (en) * | 2014-12-08 | 2017-04-25 | Cypress Semiconductor Corporation | Methods, circuits, devices, systems and machine executable code for reading from a non-volatile memory array |
KR102538246B1 (ko) * | 2015-12-01 | 2023-06-01 | 삼성전자주식회사 | 불휘발성 메모리 모듈 |
CN106055420B (zh) * | 2016-05-18 | 2019-07-16 | 东软医疗系统股份有限公司 | 一种数据校验方法、装置及设备 |
US10395748B2 (en) * | 2016-06-15 | 2019-08-27 | Micron Technology, Inc. | Shared error detection and correction memory |
KR20180051706A (ko) * | 2016-11-07 | 2018-05-17 | 삼성전자주식회사 | 어드레스 맵핑 테이블의 에러 정정을 수행하는 메모리 시스템 |
US20180137005A1 (en) * | 2016-11-15 | 2018-05-17 | Intel Corporation | Increased redundancy in multi-device memory package to improve reliability |
US11151006B2 (en) * | 2018-07-02 | 2021-10-19 | Samsung Electronics Co., Ltd. | HBM RAS cache architecture |
-
2018
- 2018-10-02 US US16/150,239 patent/US11151006B2/en active Active
-
2019
- 2019-04-03 KR KR1020190039290A patent/KR102420098B1/ko active IP Right Grant
- 2019-04-16 TW TW108113273A patent/TWI768200B/zh active
- 2019-06-03 CN CN201910496617.XA patent/CN110673980B/zh active Active
- 2019-07-02 JP JP2019123601A patent/JP7252845B2/ja active Active
-
2021
- 2021-10-12 US US17/499,852 patent/US20220035719A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11151006B2 (en) | 2021-10-19 |
CN110673980B (zh) | 2024-09-20 |
US20220035719A1 (en) | 2022-02-03 |
KR102420098B1 (ko) | 2022-07-12 |
JP2020009441A (ja) | 2020-01-16 |
CN110673980A (zh) | 2020-01-10 |
TWI768200B (zh) | 2022-06-21 |
US20200004652A1 (en) | 2020-01-02 |
JP7252845B2 (ja) | 2023-04-05 |
KR20200003709A (ko) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI768200B (zh) | 儲存裝置以及多晶片系統 | |
US9747959B2 (en) | Stacked memory devices, and memory packages and memory systems having the same | |
CN110995289B (zh) | 错误检测码生成电路 | |
US10191805B2 (en) | Semiconductor memory devices and memory systems including the same | |
US9905314B2 (en) | Storage module and method for datapath bypass | |
US20210286667A1 (en) | Cloud scale server reliability management | |
US11038749B2 (en) | Memory resource allocation in an end-point device | |
US9923578B2 (en) | Parity check circuit and memory device including the same | |
US20200097422A1 (en) | Host emulator | |
US9570132B2 (en) | Address-remapped memory chip, memory module and memory system including the same | |
US20180276161A1 (en) | PCIe VIRTUAL SWITCHES AND AN OPERATING METHOD THEREOF | |
US11467902B2 (en) | Apparatus to insert error-correcting coding (ECC) information as data within dynamic random access memory (DRAM) | |
EP4312219A2 (en) | Memory system, operating method of the same, and controller of memory device | |
US11281277B2 (en) | Power management for partial cache line information storage between memories | |
KR20210081229A (ko) | 와이드 프리페치를 갖는 고 대역폭 dram 메모리 | |
US20230318825A1 (en) | Separately storing encryption keys and encrypted data in a hybrid memory | |
US11960770B2 (en) | Access request management using sub-commands | |
US12067239B2 (en) | Data stripe protection | |
US20240086090A1 (en) | Memory channel disablement | |
US20190213013A1 (en) | Booting firmware from expansion block storage devices | |
TW202329106A (zh) | 記憶體系統及其操作方法 |