JP7252845B2 - 高帯域幅メモリのras(信頼性、アクセシビリティ、及びサービサビリティ)キャッシュ構造 - Google Patents

高帯域幅メモリのras(信頼性、アクセシビリティ、及びサービサビリティ)キャッシュ構造 Download PDF

Info

Publication number
JP7252845B2
JP7252845B2 JP2019123601A JP2019123601A JP7252845B2 JP 7252845 B2 JP7252845 B2 JP 7252845B2 JP 2019123601 A JP2019123601 A JP 2019123601A JP 2019123601 A JP2019123601 A JP 2019123601A JP 7252845 B2 JP7252845 B2 JP 7252845B2
Authority
JP
Japan
Prior art keywords
memory
address
data
error
processor
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2019123601A
Other languages
English (en)
Other versions
JP2020009441A5 (ja
JP2020009441A (ja
Inventor
迪 民 牛
マラディ,クリシュナ
宏 忠 チョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2020009441A publication Critical patent/JP2020009441A/ja
Publication of JP2020009441A5 publication Critical patent/JP2020009441A5/ja
Application granted granted Critical
Publication of JP7252845B2 publication Critical patent/JP7252845B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)

Description

本発明は、メモリエラー訂正に関し、より詳しくは、高帯域幅メモリ(HBM:high-bandwidth memory)のRAS(reliability,accessibility,and serviceability:信頼性、アクセシビリティ、及びサービサビリティ)キャッシュ構造に関する。
HBM(High Bandwidth Memory)は、積層されたダイナミックランダムアクセスメモリ(stacked DRAM:stacked dynamic random access memory)のための高性能RAMインターフェースである。HBMは、一般的に、高性能グラフィックスアクセラレータ及びネットワーク装置とともに使用される。HBMを使用した最初の装置は、GPU(graphical processing unit)である。
HBMは、DDR4(double data rate fourth-generation synchronous DRAM)又はGDDR5(double data rate type five synchronous graphics random-access memory)よりも実質的にもっと小さいフォームファクタで、より少ない電力を使用しながら、より高い帯域幅を達成する。これは、多数(例えば、8個)のDRAMダイを積層し、メモリコントローラーを有する、選択的な基本的ダイを追加することによって達成される。これらはTVS(through-silicon vias)及びマイクロバンプによって連結される。
HBMメモリバスは、DDR4又はGDDR5のような他のDRAMメモリに比べて非常に広い。4つのDRAMダイのHBMスタック(4-Hi)は、一般的に、ダイ当たり2つの128ビットチャネルからなる総計8つのチャンネルを有し、全体で1024ビットの幅を有する。したがって、4つの4-Hi HBMスタックを有するグラフィックカード/GPUは4096ビットの幅を有するメモリバスを含む。これに比べて、GDDRメモリのバス幅は32ビットであり、512ビットのメモリインターフェースを有するグラフィックスカードについて16チャンネルである。
DDR4又はGDDR5より相対的にメモリへのより多くの連結は、HBMメモリをGPU(又は他のプロセッサ)に連結するするための新しい方法を必要とする。一部の企業はインターポーザー(interposer)と呼ばれる特殊製作されたシリコンチップ(purpose built silicon chips)を使用して、メモリとGPUとを連結する。このようなインターポーザーは、メモリ及びプロセッサが物理的に近づいてメモリパスを減少させる利点を有する。しかし、半導体装置の製造は、プリント回路基板の製造よりも非常に高価なので、これは最終的な製品のコストに追加される。
米国特許第8898437号明細書 米国特許出願公開第2006/0080572号明細書 米国特許出願公開第2010/0070809号明細書 米国特許出願公開第2015/0235716号明細書
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、向上された信頼性を有するHBM(high-bandwidth memory)のRAS(reliability,accessibility,and serviceability:信頼性、アクセシビリティ、及びサービサビリティ)キャッシュ構造を提供することにある。
上記目的を達成するためになされた本発明の一態様による装置は、複数の積層された集積回路ダイを備え、前記複数の積層された集積回路ダイは、メモリアドレスに基づいて、ランダムアクセス方式でデータを格納するように構成されたメモリセルダイと、ロジックダイと、を含み、前記ロジックダイは、前記複数の積層された集積回路ダイに連結され、前記メモリセルダイと少なくとも1つの外部装置との間でメモリアクセスを通信するように構成されたインターフェースと、前記メモリセルダイ内のデータのエラーを改善するように構成された信頼性回路と、を含み、前記信頼性回路は、ランダムアクセス方式でデータを格納するように構成された補助メモリと、エラーに関連付けられたメモリアドレスを前記補助メモリの部分にマッピングするように構成されたアドレステーブルと、を含み、前記信頼性回路は、前記複数の積層された集積回路ダイへのメモリアクセスが発生した場合、前記メモリアクセスがエラーに関連付けられているか否かを判定し、前記メモリアクセスが前記エラーに関連付けられている場合、少なくとも部分的に前記補助メモリを使用して、前記メモリアクセスを完了するように構成されたことを特徴とする。
上記目的を達成するためになされた本発明の一態様によるシステムは、プロセッサと、高帯域幅メモリスタックの集積回路と、を備え、前記プロセッサは、前記プロセッサへのデータの流れを管理するように構成されたメモリコントローラーと、格納されたデータにエラーが発生したかを検出するように構成されたエラー訂正回路と、を含み、前記高帯域幅メモリスタックの集積回路は、メモリアドレスに基づいて、データを格納するように構成された高帯域幅メモリセルと、前記高帯域幅メモリセル内のデータのエラーを改善するように構成された信頼性回路と、を含み、前記信頼性回路は、データを格納するように構成された補助メモリと、前記エラーに関連付けられたメモリアドレスを前記補助メモリの部分にマッピングするように構成されたアドレステーブルと、を含み、前記信頼性回路は、前記高帯域幅メモリスタックの集積回路へのメモリアクセスが発生した場合、前記メモリアクセスがエラーに関連付けられているか否かを判定し、前記メモリアクセスが前記エラーに関連付けられている場合、前記補助メモリを少なくとも部分的に使用して、前記メモリアクセスを完了するように構成されたことを特徴とする。
上記目的を達成するためになされた本発明の他の態様による装置は、ロジックダイを備え、前記ロジックダイは、メモリアドレスに基づいて、データを格納するように構成された高帯域幅メモリダイに連結された内部インターフェースと、前記高帯域幅メモリダイと、少なくとも1つの外部装置との間でメモリアクセスを通信するように構成された外部インターフェースと、前記高帯域幅メモリダイ内のデータエラーを改善するように構成された信頼性回路と、を含み、前記信頼性回路は、データを格納するように構成された補助メモリと、エラーに関連付けられたメモリアドレスを前記補助メモリの部分にマッピングするように構成されたアドレステーブルを含み、前記信頼性回路は、前記高帯域幅メモリダイへのメモリアクセスが発生した場合、前記メモリアクセスがエラーに関連付けられているか否かを判定し、前記メモリアクセスがエラーに関連付けられている場合、前記補助メモリを少なくとも部分的に使用して、前記メモリアクセスを完了するように構成されたことを特徴とする。
本発明によれば、向上された信頼性を有するHBM(high-bandwidth memory)のRAS(reliability,accessibility,and serviceability:信頼性、アクセシビリティ、及びサービサビリティ)キャッシュ構造が提供される。
本発明の一実施形態による装置の例示的な実施例を示す斜視図である。 本発明の一実施形態によるシステムの例示的な実施例を示すブロック図である。 本発明の一実施形態によるシステムの例示的な実施例を示すブロック図である。 本発明の一実施形態によるシステムの例示的な他の実施例を示すブロック図である。 本発明の一実施形態によるデータ構造の一例を示す図である。 本発明の一実施形態によるシステムの例示的な実施例を示すブロック図である。 本発明の一実施形態によるシステムの例示的な実施例のブロック図である。 本発明の実施形態の原理に基づいて形成された装置を含む情報処理システムの概念的なブロック図である。
多様な例示的な実施例が、一部の例示的な実施例を示す図面を参照して、より詳細に説明される。しかし、本明細書に記載された内容は、他の多様な形態で具現可能であり、本明細書に記載された例示的な実施例に限定されない。代わりに、このような例示的な実施例は、詳細な説明が完全であり、当業者に本発明の技術的思想を完全に伝達されるように提供される。図面では、層と領域のサイズ及び相対的なサイズは、明確化のために、誇張される。
構成や層が、他の構成や階層に「連結された」と記載される場合、これは直接的に他の構成や階層に連結されるか、または1つ以上の中間の構成や階層が存在し得る。対照的に、構成や階層が他の構成や階層に「直接に連結された」と記載される場合、中間の構成又は階層は存在しない。類似の参照番号は、明細書全体的に類似の構成を示す。本明細書で使用される「及び/又は」は、関連して羅列されたリストの中の1つ又はそれ以上の組み合わせの一部及び全部を含む。
「第1」、「第2」、「第3」などのような用語は、多様な要素、構成、領域、階層、及び/又はセクションを説明するために本明細書で使用されるが、このような要素、構成、領域、階層、及び/又はセクションは、このような用語で限定されない。このような用語は、1つの要素、構成、領域、階層、又はセクションを他の1つの要素、構成、領域、階層、又はセクションから区別するためにだけ使用される。つまり、以下で記載する第1の要素、構成、領域、階層、又はセクションは、本発明の思想と技術範囲から逸脱することなく、第2の要素、構成、領域、階層、又はセクションと呼ばれ得る。
「~の下」、「~の上」などのような空間的に相対的な用語は、図面に示された1つの要素や特徴を他の1つの要素や特徴との関連性を容易に説明するために、本明細書で使用される。空間的に相対的な用語は、図面に示された方向に加えて、動作や使用において装置の他の方向(orientation)を含む。例えば、図面で、装置が裏返される場合、他の要素や特徴の「下」にと説明された要素は、他の要素や特徴の「上部」を向く。つまり、「下」との例示的な用語は、上及び下の両方の方向を含み得る。装置は他の方向(例えば、90度回転したり、又は他の方向)を向くことができ、本明細書で使用される空間的に相対的な説明は、それに応じて解釈される。
同様に、「高(high)」、「低(low)」、「プルアップ」、「プルダウン」、「1」、「0」などのような電気的な用語は、図面で示されるように、他の電圧レベル、他の構成や特徴との相対的な電圧レベル及び電流を示す説明の便宜のために、詳細な説明で使用される。電気的に相対的な用語は、図面に示された電圧又は電流に加えて使用や動作で、装置の他の基準電圧を含む。例えば、図面で、装置又は信号が反転されるか、他の基準電圧、電流又は電荷を使用している場合、「高」又は「プルアップ」と説明される構成は、新しい基準電圧又は電流と比較して、「低」又は「プルダウン」であり得る。つまり、「高」の用語は、相対的に低い又は高い電圧や電流のすべてを含み得る。装置は、他の電気的なフレームの基準に基づくことができ、詳細な説明で使用される電気的に相対的な説明に基づいて解釈される。
詳細な説明で使用される用語は、単に特定の実施例について説明する目的のためのものであり、本発明の限定を意図するものではない。詳細な説明で使用されるように、単数形は、明確に別の方法で定義されていない限り、複数形を含む。「含む」という用語は、詳細な説明に使用される場合、列挙された特徴、ステップ、動作、要素、及び/又は構成の存在を特定するが、1つ又はそれ以上の他の特徴、ステップ、動作、要素、構成、及び/又はそれらのグループの追加若しくは存在を排除しない。
例示的な実施例が理想的な実施例(及び中間構造)の例示的な図面である断面図を参照して、詳細な説明で説明される。このように、例えば、製造技術や許容誤差のような結果としての図面の形状からの変形が予想される。つまり、例示的な実施例は、詳細な説明で図示された特定の形状の領域に限定されず、例えば、製造からもたらされる形状の偏差を含む。例えば、長方形で図示された、注入領域は、一般的に、注入領域から注入されていない領域へのバイナリ変化というよりは、円形又は曲線のフィーチャー及び/又はエッジでの注入濃度の勾配を有する。同様に、注入によって形成された埋め込み領域は、埋め込み領域と注入される表面との間の領域に若干の注入をもたらし得る。したがって、図面に示された領域は、本質的に概略であり、その形状はデバイス領域の実際の形状を説明するものではなく、本発明の技術範囲を制限するものではない。
別の方法で定義されていない限り、本明細書で使用されるすべての用語(技術的及び科学的用語を含む)は、当業者によって一般的に理解される意味を有する。さらに、一般的に使用される辞典に定義された用語のような用語は、関連技術のコンテキストにおける意味と一致する意味を有するものと解釈され、本明細書で定義されていない限り、理想的又は過度に形式的な意味として解釈されない。
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
図1は、本発明の一実施形態による装置の例示的な実施例を示す斜視図である。図1に示す実施例では、多数の集積回路ダイが積層されるか、又は集積されてマルチチップシステムを形成する。多様な実施例で、マルチチップシステムの装置100は、以下で説明するように、RASキャッシュやRAS回路を含むことができる。
多様な実施例で、HBM(High Bandwidth Memory)は、高性能な形態のRAM(high-performance form of random access memory)を含むことができる。一部の実施例で、HBMは、TSV(through-silicon via)を使用して通信する積層されたDRAM(stacked dynamic RAM)メモリを含むことができる。一般的に、HBMはTSV(through-silicon via)とマイクロバンプとを組み合わせて、複数(例えば、4個、8個など)のダイ(die)のメモリセルアレイを互いの上部で連結する。一部の実施例で、メモリコントローラーは、積層の最下段に位置した別のダイに含まれ得る。
図1に示す実施例で、装置100は、1つ又は1つ以上のメモリダイ(例えば、DRAMなど)104及びロジックダイ102を含むことができる。一実施例で、メモリダイ104及びロジックダイ102は、同一の製造工程を使用して製造されるか、生成され、又はそうでない可能性もある。
図1に示す実施例で、メモリダイ104は、複数のメモリセルアレイ114を含むことができる。このような実施例で、メモリセルアレイ114は、データの多様な部分を格納するように構成され得る。一部の実施例で、データは、ロジックダイ102又は外部装置(例えば、以下で説明する外部プロセッサ又はホスト)によってアクセスされ得る。
図1に示す実施例で、ロジックダイ102は、1つ又はそれ以上のロジック回路112を含むことができる。このような実施例で、ロジック回路112は、読み取り(リード)/書き込み(ライト)要請、又はより一般的にメモリセルアレイ114内にデータを格納したり、読み取ったりするメモリアクセスを受信するためのインターフェース(内部インターフェース)を含むことができる。多様な実施例で、ロジックダイ102は、以下で説明するように、RASキャッシュ又はRAS回路113を含むことができる。
多様な実施例で、ロジック回路112は、1つ又はそれ以上のビア126(又はマイクロバンプなど)を使用して、メモリセルアレイ114と通信することができる。このような実施例では、バス又は外部インターフェースを介した通信に対する要求なしに、処理構成要素(例えば、ロジック回路112)と格納されたデータ(メモリセルアレイ114)との間の高速通信を可能する。
多様な実施例で、装置100は、ルーティングダイ106を含むことができる。ルーティングダイ106は、ロジックダイ102とメモリダイ104との間で信号を動的に伝送するように構成され得る。多様な実施例で、ルーティングダイ106は、1つ又はそれ以上のビア126によってロジックダイ102に連結され得る。ビア126(又はそれらの部分)は、入力/出力(I/O:input/output)端子又はI/Oインターフェース123に接続され得る。このような実施例で、ルーティングダイ106は、I/Oインターフェース123と意図されたデータを格納するメモリセルアレイ114との間で信号を動的にルーティングすることができる。
多様な実施例で、ルーティングは、ルーティング構造体116によって達成される。多様な実施例で、ルーティング構造体116は、例えば、マルチプレクサ、デマルチプレクサ、クロスバースイッチ、スイッチ、ロータリスイッチ、メモリスイッチ、クロスオーバースイッチなど、多様なルーティング装置を含むことができる。上述した構成は、単に一部の例示的な実施例であり、本発明はこれに限定されない。
一部の実施例で、ルーティング構造体116は、ロジック回路112のI/Oインターフェース123とメモリセルアレイ114の類似したI/Oインターフェース(123a又は123b)との間の入力/出力信号をルーティングするように構成され得る。図1に示す実施例では、2つの可能なルーティング方式が図示される。例えば、実線は、ロジック回路112を第1メモリ(メモリダイ104の左下隅に示す)のI/Oインターフェース123aに連結するのに使用される第1ルーティングを示す。点線は、ロジック回路112を第2メモリ(メモリダイ104の右側に示す)のI/Oインターフェース123bに連結するのに使用される第2ルーティングを示す。しかし、多様な実施例で、メモリセルアレイ114は、図1に示すように、分割されず、モノリシック(monolithic)であり得る。上述した内容は、単に一部の例示的な実施例であり、本発明はこれに限定されるものではない。
図2Aは、本発明の一実施形態によるシステムの例示的な実施例を示すブロック図である。多様な実施例で、システム200は、多数の区分された集積回路、MCM、及び/又はシステム・オン・チップ(SoC:system-on-chip)の一部であり得る。多様な実施例で、システム200は、例えば、ラップトップ、デスクトップ、ワークステーション、PDA(personal digital assistant)、スマートフォン、タブレット、その他の適切なコンピュータ、又は仮想マシン若しくはそれらの仮想コンピューティング装置で使用され得る。
一実施例で、システム200は、ホスト装置206を含むことができる。多様な実施例で、このようなホスト装置は、中央処理ユニット(CPU:central processing unit)、マザーボード(motherboard)、コンピューティングシステムを含むことができる。多様な実施例で、ホスト装置206は、コマンドを実行して、一般的に、データを読み書きするプロセッサ(図示せず)を含むことができる。これの一部として、ホスト装置206は、ソフトウェア又はファームウェアからなるドライバ242を実行することができる。図2Aに示す実施例で、ホスト装置206のドライバ242は、コンピュータに付着された、特定タイプの装置(例えば、プロセッサ204又はHBMダイ202)を制御したり、駆動したりするコンピュータプログラムを含むことができる。このような実施例で、ドライバ242は、ハードウェア装置にソフトウェアインターフェースを提供して、使用されているハードウェアの細かい項目を知らなくても、オペレーティングシステム(operating systems)及び他のコンピューティングプログラムがハードウェアの機能にアクセスできるようにする。
図2Aに示す実施例で、システム200は、プロセッサ204を含むことができる。多様な実施例で、プロセッサ204は、多様なタイプのプロセッサ(例えば、グラフィックスプロセッサ(graphic processor)、中央プロセッサ(central processor)、装置専用プロセッサ(device specific processor)、物理演算プロセッサ(physics processor)など)のいずれか1つを含むことができる。説明の便宜のために、プロセッサ204は、グラフィックス処理ユニットGPU(graphic processing unit)であるとして説明するが、これは単に1つの例示的な実施例であり、本発明はこれに限定されるものではない。多様な実施例で、GPUであるプロセッサ204は、グラフィックスデータを生成したり、または作業を大量に並列演算するために使用される。
多様な実施例で、プロセッサ204は、メモリコントローラー232を含むことができる。このような実施例で、メモリコントローラー232は、プロセッサ204からの、そしてプロセッサ204へのデータの流れを管理するように構成され得る。特に、図2Aに示す実施例で、メモリコントローラー232は、プロセッサ204とHBMダイ202との間でのデータの流れを管理するように構成され得る。
図2Aに示す実施例で、プロセッサ204は、ECC(error correcting or correction)エンジン(又はエラー訂正回路)234を含むことができる。このような実施例で、ECCエンジン(又はエラー訂正回路)234は、HBMダイ202から受信したデータの一部に、エラーが発生したか否かを検出するように構成され得る。多様な実施例で、ECCエンジン234は、メモリコントローラー232の一部であるか、またはメモリコントローラー232とともに集積され得る。多様な実施例で、ECCエンジン234はシングル又はダブルビットエラー(single or double bit errors)を検出するように構成され得る。上述した内容は、単に一部の例示的な実施例であり、本発明はこれに限定されない。
図2Aに示す実施例で、プロセッサ204は、不揮発性メモリ236を含むことができる。多様な実施例で、メモリは、以下で説明するように、揮発性であるか、またはプロセッサ204の外部に位置し得る。このような実施例で、不揮発性メモリ236は、エラーがどのメモリアドレスに関連付けられているかについての情報を格納するように構成される。一部の実施例で、不良又はエラーの起きたメモリアドレスは、回避(avoid)され得る。他の実施例で、不良又はエラーの起きたメモリアドレスは、良好な又は動作メモリセルにリマップされ得る。
上述したように、図2Aに示す実施例で、不揮発性メモリ236により、このような不良又はエラーの起きたメモリアドレスは、プロセッサ204のパワーサイクリング中、記憶され得る。他の実施例では、揮発性メモリが使用され、不良又はエラーの起きたメモリアドレスは、各パワーサイクルで再検索される。他の実施例で、プロセッサ204は、ローカル又は集積された揮発性メモリを含むことができるが、プロセッサ204のパワーサイクルが終了した場合、プロセッサ204の外部に位置するか、または遠隔に位置する不揮発性メモリ(たとえば、ハードドライブ)にデータを格納することができ、プロセッサ204が再起動された場合、データを回収することができる。上述した内容は、単に一部の例示的な実施例であり、本発明はこれに限定されない。
図2Aに示す実施例で、システム200は、上述のように、HBMダイ、又はより正確には、HBMダイ202のスタックを含むことができる。多様な実施例で、HBMダイ202は、上述したように、複数のメモリセルアレイ214を含むことができる。多様な実施例で、メモリセルアレイ214は、複数の集積回路(IC:integrated circuit)ダイ上に分散され、それぞれのメモリアドレスにデータを格納するように構成され得る。
多様な実施例で、HBMダイ202は、メモリセルアレイのECCストレージ216を含むことができる。このような実施例で、ECCストレージ216は、メモリセルアレイ214に格納されたデータ内のエラーの検出を許容するか、または可能にする追加ビットの情報(たとえば、パリティ)を含むことができる。多様な実施例で、ECCストレージ216は、メモリセルアレイ214の一部であるか、又は物理的に分離されて、先に説明したのと同様に、複数の集積回路(IC)ダイ上に分散され得る。このような実施例で、ECCデータは、エラーを検出するために、ECCエンジン234によって使用される。
多様な実施例で、HBMダイ202は、プロセッサ204とホスト装置206との間で、それらと通信するように構成されたHBMインターフェース218を含むことができる。多様な実施例で、システム200は、内部ダイ(例えば、プロセッサ204とHBMダイ202との間)の通信を可能にする1つ又はそれ以上の通信バス(図示せず)を含むことができる。このような実施例で、これは、要請及び応答のようなメモリアクセスの伝送(transmission of memory accesses)を含むことができる。
多様な実施例で、HBMダイ202は、RAS(reliability,accessibility,and serviceability)キャッシュ又はRAS回路(又は信頼性回路)212を含むことができる。これらの実施例では、RAS回路212は、高速アクセス方式で少量のデータを格納する従来のキャッシュのように動作するように構成されていない可能性があり、より大きなメモリは、追加のストレージを提供する。代わりに、RASキャッシュ又はRAS回路212は、メモリセルアレイ214内に発見されたエラーを訂正(又は訂正されたように見えるように)するか、または改善するためのバックアップ又は補助メモリとして動作するように構成され得る。以下で説明するように、従来、メモリセルアレイ214内でエラーが検出された場合、広範かつ時間のかかる動作を行うことなく、エラーが訂正されるか、または回復されない可能性がある。RASキャッシュ又はRAS回路212を使用すれば、このような回復又は訂正がより迅速かつ効率的に達成され得る。
多様な実施例では、RAS回路212は、RASメモリ又は補助メモリ222(若しくは補助ストレージ)を含むことができる。多様な実施例で、補助メモリ222は、エラーに関連するか、または破損したメモリセルアレイ214の部分に対するデータを格納するように構成され得る。このような構成の動作を、以下で説明する。
多様な実施例で、RAS回路212は、エラーに関連付けられているメモリアドレス(メモリセルアレイ214内の)のリストを格納して、このようなメモリアドレスエラーを補助メモリ222の部分にマッピングするように構成されたアドレステーブル220を含むことができる。
図2Bは、本発明の一実施形態によるシステムの例示的な実施例を示すブロック図である。図2Bに示すシステム200は、システムがエラーを検出するのに伴う情報の流れとイベントの相対的なタイミングを示す。上述した内容は、単に1つの例示的な実施例であり、本発明はこれに限定されない。
エラー管理及び検出に関して、従来のGPUのメモリエラー管理は、一般的に以下のように処理される。まず、ECCエンジン234によって復旧不可能なエラー(non-recoverable error)が検出される。このようなエラーは、メモリセルアレイ214の特定のメモリアドレスに関連付けられ、一般的にダブルビットエラー又は2つのシングルビットエラーを含む。このようなエラーは、ドライバ242に通知される。
このような実施例で、ドライバ242は、この通知に従ってエラーをアプリケーション(図示せず)やホスト装置206の一部に報告する。ドライバ242は、メモリエラーをGPUの不揮発性メモリ236に記録(log)する。通常的には、現行のGPUの相互作用が発生するうちに、システムは、このようなエラーの再発を防止したり、または改善(回復)することができなかった。
しかしながら、システムの次の再付着(reattachment)、リセット(reset)、再起動(reboot)、又はGPUの相互作用の次のシーケンス若しくはシリーズにおいて、フレームバッファマネージャー(図示しないが、プロセッサ204の一部)は、エラーを含むリタイアされたページ(retired pages)をブラックリストに載せることができる。このような実施例で、メモリアドレス又はページは、これ以上ストレージのために使用されない可能性がある。このように、メモリアドレス又はページは恒久的にリタイアされ、メモリの機能的な容量が減少する。
このような従来の処理は、いくつかの問題点を有する。第1に、クライアント(例えば、ホスト装置やそこで駆動されるソフトウェア)が動作を維持しながら、ページをブラックリストに載せることは不可能である。第2に、部分的にGPUの現在のNVM(不揮発性メモリ)の容量のために、現在のGPUにおいてリタイア可能なページ又はメモリアドレスの個数が制限される。第3に、大きなリタイアグラニュラリティ(large retire granularity)が存在する。つまり、2ビットエラーは4KB(kilobyte)ページのリタイアを引き起こす。また、このような従来の処理は、結果的に、メモリセルアレイ214のより多くの部分がブラックリストに載るほど、より多くのメモリ容量の減少を起こす。
図2Bに示す実施例で、システム200は、HBMモジュール又はHBMダイ202上に追加のロジック及びメモリを提供し、エラーをキャッシングして復旧することにより、このような状況を改善する。より詳細には、RAS回路212は、少なくとも数キロバイトの大きさでHBMのロジックダイに具現され得る。これは単に例示的な実施例であり、本発明はこれに限定されない。このようなRAS回路212は、ホスト装置206又はプロセッサ204によって受信されたメモリアドレスを格納するインデックス領域(index region)又はアドレステーブル220を含むことができ、HBMダイ202の内部エラー訂正メカニズムによって保護され得る。RAS回路212は、復旧されたデータ(与えられたサイズであり得る)を格納するように構成されたデータ領域(data region)又は補助メモリ222を含むことができる。アドレステーブル220と補助メモリ222の領域とは、1対1のマッピングを含むことができる。なお、このような領域は、HBMロジックダイと互換性のある技術(DRAM、SRAM、フラッシュなどのような技術)で具現され得る。
図2Bに示す実施例で、エラー検出処理は、与えられたメモリアドレスでエラーが発生したことを検出するECCエンジン234から開始される。矢印282で示すように、ECCエンジン234は、上述したように、ドライバ242に通知することができる。また、矢印284で示すように、ドライバ242は、これを不揮発性メモリ236に記録することができる。
しかし、メモリアドレス又はページをブラックリストに載せて、プロセッサ204が、これ以上、即時使用されなくなるまで待つ代わりに、プロセッサ204は、HBMダイ202(またはHBMダイ202のロジックダイ)に与えられたメモリアドレスが不良(バッド)であることを知らせることができる(矢印286で示す)。HBMダイ202、より詳細には、RAS回路212は、エラー訂正動作を行うことができる。
図2Bに示す実施例で、RAS回路212は、不良メモリアドレスをアドレステーブル220に記録するか、または入力することができる。不良メモリアドレスは、補助メモリ222の一部又はメモリアドレスにマッピングすることができる。多様な実施例で、当該メモリアドレスでメモリセルアレイ214に含まれるデータは、補助メモリ222のマッピングされた部分にコピー(エラーと全体)され得る。しかし、これはデータがエラーを含むので、好ましくない可能性がある。このような実施例で、プロセッサ204は、新しいデータ(エラーがないデータ)が再読み込みされる前に、HBMダイ202に格納される(書き込まれる)ことを要求できる。上述した内容は、単にいくつかの例示的な実施例であり、本発明はこれに限定されない。
このような実施例で、新しいメモリアクセス(例えば、読み込み又は書き込み)がメモリアドレスに発生した場合、RAS回路212は、そのメモリアドレスがアドレステーブル220に含まれているか(したがって、エラーに関連付けられているか)をチェックする。もしそうでなければ、メモリへのアクセスは正常に処理される。メモリアクセスは、メモリセルアレイ214によって遂行される。メモリアドレスがエラーに関連付けられている場合、メモリアクセスは、補助メモリ222、特にアドレステーブル220によってマップされたメモリアドレスの部分によって遂行される。
このような本発明による実施例は、いくつかの利点を有する。第1に、不良メモリアドレスへのすべてのメモリアクセスは、補助メモリ222によって(プロセッサ204又はホスト装置206に)スムーズに遂行され得る。プロセッサ204は、クライアントに結合された途中であっても、これを達成し得る。プロセッサ204が結合解除されるか、使用されないか、または再付着の一部であるまで待つ必要がない。第2に、特定のメモリアドレスを補助メモリ222に再びマッピングすることにより、HBMダイ202のストレージ容量が減少しない。ブラックリストに載せることなしに、HBMダイ202は、同じ大きさのストレージ容量を有するように見える。第3に、RAS回路212は、多様なメモリマッピングの単位を提供することができる。従来の方法が、4KBページのブラックリストとリタイアを必要とするのに対し、RAS回路212は、キャッシュライン、ページ、及びメモリの他のサイズのマッピングを許容することができる。
多様な実施例で、アドレステーブル220への新たなメモリアドレスの追加(矢印286)は、予め定められた、又は予備のメモリアドレス(predefined or reserved memory address)への書込み(ライト)のメモリアクセスを遂行するプロセッサ204(またはホスト装置206)を含むことができる。このような実施例で、RAS回路212は、このようなメモリアドレスへのある書込みが、新たなエントリがアドレステーブル220に位置されることを意味するものと知ることができる。このような実施例で、書き込みのメモリアクセスのデータ部分は、不良メモリアドレスを含み得る。他の実施例で、アドレステーブル220への新たなメモリアドレスの追加(矢印286)は、新しいメッセージタイプやプロトコルの使用を伴い得る。上述した内容は、単にいくつかの例示的な実施例であり、本発明はこれに限定されない。
多様な実施例で、プロセッサ204又はホスト装置206は、他の予め定められた、または予備のメモリアドレスへの読み込み(リード)のメモリアクセスを行うことにより、リマッピングのために利用可能な、または使用される補助メモリ222がどれくらい多いのかをチェックすることができる。このため、RAS回路(又は信頼性回路)は補助メモリの使用レベルを監視し、予め定められたメモリアドレスに使用レベルのインジケーターを格納するように構成される。このような実施例で、RAS回路は補助メモリ222の現在のストレージ容量や使用レベルでレジスタ又はメモリアドレスをアップデートすることができ、必要なときごとに、プロセッサ204又はホスト装置206は、メモリアドレスからリード(read)することができる。多様な実施例で、リードは、このような空間が利用可能なことを確認するために、矢印286の動作の以前に行われ得る。いくつかの実施例で、補助メモリ222がいっぱいになるか、またはすべて使用中の場合は、プロセッサ204及びホスト装置206は、従来のブラックリスト/リタイア技法を使用することができる。他の実施例で、補助メモリ222の自由容量をチェックするのは、新しいメッセージタイプ又はプロトコルの使用を伴い得る。上述した内容は、単にいくつかの例示的な実施例であり、本発明はこれに限定されない。
多様な実施例で、システム200が初期化されるときに(たとえば、ブートアップのとき)、情報がHBMダイ202から(ホスト装置206又はプロセッサ204のいずれか1つによって)リード(read)される。一実施例で、HBMダイ202がRAS回路212をサポートするか、または含むかを判定することができる。一実施例で、使用されるリマッピングユニットのレベル(例えば、256ビット、512ビットなど)が何なのかを判定することができる。他の実施例で、キャッシュ又は補助メモリ222のエントリ及び/又はアドレステーブル220のエントリがどのようにサポートされているかを判定することができる。多様な実施例で、このような確認は、予め定められた、若しくは予備のアドレスへのリード(read)のメモリアクセスによって、又は特定のメッセージやプロトコルによって行われる。上述した内容は、単にいくつかの例示的な実施例であり、本発明はこれに限定されない。
同様に、多様な実施例で、システム200が初期化されるときに(たとえば、ブートアップのとき)、情報又は設定が、HBMダイ202に(ホスト装置206又はプロセッサ204のいずれか1つによって)記入(格納)され得る。一実施例で、不良(バッド)メモリアドレスの既存のリストが(例えば、不揮発性メモリ236から)アドレステーブル220に格納される。他の実施例で、リマッピングユニットのレベル(例えば、256ビット、512ビットなど)が補助メモリ222に対して設定される。上述した内容は、単にいくつかの例示的な実施例であり、本発明はこれに限定されない。
図2Cは、本発明の一実施形態によるシステムの例示的な他の実施例を示すブロック図である。多様な実施例で、システム201は、先に説明した実施例の他の変形を示す。
この実施例では、ホスト装置206、プロセッサ204、及び先に説明した実施例と同じ構成要素を含むことができる。HBMダイ202、特にロジックダイは、独自のECCエンジン294を含むことができる。このような実施例で、HBMダイ202は、ホスト装置206及びプロセッサ204の支援を借りずに、メモリセルアレイ214内のエラーを検出し、補助メモリ222に不良メモリアドレスをリマッピングすることができる。多様な実施例で、不揮発性メモリの使用を通じて、リマップされたものが、実質的に永久的に維持され得る。他の実施例で、これがそれほど効率的ではないか、または好ましくないことで有り得るが、リマッピングが再起動後ごとに発生され得る。
このような実施例で、ECCエンジン294は、ECCエンジン234の代わりにエラーを検出することができる。このような実施例で、ホスト装置206及びプロセッサ204は、このようなエラーを認識しない可能性がある。多様な実施例で、ホスト装置206及びプロセッサ204は、上述した従来のブラックリスト/リタイア技法を使用し続けることができるが、HBMダイ202の内部改善活動により、ブラックリスト/リタイアが発生しないか、または稀にしか現れない。
多様な実施例で、矢印292で示すように、HBMダイ202のECCエンジン294は、不良メモリアドレスをアドレステーブル220に追加することができる。不良メモリアドレスは、その後、補助メモリ222の部分にマッピングされ、以後のメモリアクセスは、上述したように発生し得る。
図3は、本発明の一実施形態によるデータ構造の一例を示す図である。図3に示す実施例で、データ構造(300、302)は、上述したように、RAS回路のアドレステーブル及び補助メモリを表すことができる。
図3に示す実施例で、データ構造300は、上述したアドレステーブル又はインデックス領域の1つの可能な実施例を表すことができる。このような実施例で、データ構造300(アドレステーブル又はインデックス領域)は、不良又はエラーの起きたメモリアドレス(またはページのようなメモリ領域)を格納するように構成され得る。多様な実施例で、このような不良メモリアドレスは、ホスト装置又はプロセッサから受信され得る。多様な実施例で、データ構造300は、ECC独自の形態により保護され得る。いくつかの実施例では、図示しないが、データ構造300(アドレステーブル又はインデックス領域)は、データ構造300(アドレステーブル又はインデックス領域)内のエラーから保護するエラー訂正コードの部分をさらに含み得る。
図3に示す実施例で、データ構造300の各行は、メモリアドレスのエントリと見なすことができる。このような実施例で、データ構造300は、どのメモリアドレスが不良であるかを指定する列312を含むことができる。これは、メモリアクセスが発生するときにチェックされて、上述のように、メモリアクセスがHBMメモリセルによって遂行されるか、または補助メモリによって遂行されるかを判定する列312であり得る。
図3に示す実施例で、各メモリアドレスのエントリは、有効ビット又は有効フラグ314の列を含み得る。このような実施例で、有効フラグ314は、それぞれのメモリアドレスのエントリが使用中であるか否かを示す。即ち、メモリアドレスのエントリがアクティブ状態であるか否かを示す。この実施例では、ホスト又はプロセッサがデータ構造300にエントリを格納するときに、有効フラグ314が設定され得る。他の実施例で、データ構造300は、周期的に(例えば、再起動の一部として)消去され、有効フラグ314を含んでいない可能性がある。
多様な実施例では、各メモリアドレスのエントリは、タイプフィールドの列(図示せず)を含むことができる。このような実施例で、エラーの改善がすべてのアドレスの使用を通じて、均一又は同一のサイズ(例えば、ワードや行ベース)で、フィールドが含まれていない可能性がある。しかし、図3に示す実施例で、各アドレスは、1ビット、1ワード、又は多様な個数のビットとともにエラー改善の他のレベル、サイズ、又はタイプと関連付けられる。いくつかの実施例では、フィールドは、修正されたメモリアドレスを通ったビット数を含むことができる。しかし、図3に示す実施例で、1ビットの場合は値1、1ワードの場合は値2などのように予め定められた値が使用され得る。上述した内容は、単にいくつかの例示的な実施例であり、本発明はこれに限定されない。
図3に示す実施例で、各メモリアドレスのエントリは、マッピングされたアドレス316の列を含むことができる。この実施例で、マッピングされたアドレス316は、不良メモリアドレス(列312)に関連付けられたデータが実際に格納される補助メモリ内のメモリアドレス又は位置であり得る。このような実施例で、メモリアクセスが不良メモリアドレスに対して発生する場合は、そのアクセスは予備のストレージにリダイレクトされるだけでなく、マッピングされたメモリアドレス316に再びアドレス指定される。多様な実施例で、これは固定マッピングであり得る。図3に示す実施例で、マッピングは1対1である。しかし、他の実施例で、マッピングは、関連性を有するように設定したり、または他の方式を使用したりできる。
図3に示す実施例では、データ構造300は、1(又はSet)の有効フラグを含んで、アドレス(#M1)にマッピングされたメモリアドレスのエントリ(Address#1)を含むことができる。同様に、メモリアドレスのエントリ(Address#2)は、1(又はSet)の有効フラグを含んで、アドレス(#M2)にマッピングされ得る。多数の他のメモリアドレスのエントリが存在し得る。最後に、メモリアドレスのエントリ(Address #N)は、0(又はcleared)の有効フラグを含んで、アドレス(#MN)にマッピングされ得る。上述した内容は、単にいくつかの例示的な実施例であり、本発明はこれに限定されない。
図3に示す実施例で、データ構造302は、複数のメモリセルを含むことができ、複数のメモリセルのそれぞれは、それぞれのメモリアドレスからデータを格納するように構成され得る。多様な実施例で、データ構造302は、ECC保護を使用することができる。上述したように、不良メモリアドレスへのライト(write)のメモリアクセスが発生した場合、新しいデータは補助メモリ又はデータ構造302(例えば、Data#1、Data#2、Data#N)に格納される。上述したように、データが格納される位置は、メモリアドレスのエントリに基づく。
多様な実施例で、データ構造302は、任意の大きさであり得る。この実施例で、データ構造302は、150KBを含むことができるが、これは単に1つの例示的な実施例であり、本発明はこれに限定されない。多様な実施例では、単位のレベルは可変されるサイズ(例えば、256ビット)であり得る。
いくつかの実施例で、RAS回路は、他のサイズやエラーパターンを収容するための複数のデータ構造(302、300)を含むことができる。例えば、多様な実施例で、RAS回路はシングルビットデータエラー、シングルワードデータエラー、シングル行データエラー、及び/又はシングル列データエラーのエラーパターンを収容し、それらのためのデータ構造を含むことができる。これは単に1つの例示的な実施例であり、本発明はこれに限定されない。
図4Aは、本発明の一実施形態によるシステムの例示的な実施例を示すブロック図である。図4Aに示す実施例では、ライト(write)のメモリアクセスが示される。これは単に1つの例示的な実施例であり、本発明はこれに限定されない。
図4Aに示す実施例で、システム400は、上述したように、プロセッサ204及びHBMダイ202を含むことができる。多様な実施例で、プロセッサ204は、メモリコントローラー232を含むことができる。HBMダイ202は、上述のように、HBMアレイ又はメモリセルアレイ214(ECCストレージを含むことができる)、及びRAS回路212を含むことができる。図4Aに示す実施例で、RAS回路212は、上述のように、インデックス領域又はアドレステーブル220、及びRASメモリ又は補助メモリ222を含むことができる。図4Aに示す実施例で、システム400は、コマンドバス412及びデータバス414をさらに含むことができる。
図4Aに示す実施例で、メモリコントローラー232は、HBMダイ202へのライト(write)のメモリアクセスを発行することができる。この実施例で、コマンド自体(およびメモリアドレス)は、コマンドバス412によって伝送され、格納されるデータは、データバス414によって伝送される。これは単に1つの例示的な実施例であり、本発明はこれに限定されない。
ライト(書き込み)のメモリアクセスが受信された場合、RAS回路212は、メモリアクセスに関連付けられたメモリアドレスがアドレステーブル220に格納されているか(そして有効であるか)否かを判定する。アドレステーブル220は、アドレステーブルのヒット(アドレスが格納されている場合)、またはアドレステーブルのミス(アドレスが格納されていない場合)の信号を発生させ得る。これは信号424で示される。
図4Aに示す実施例で、RAS回路212は、デマルチプレクサ(DeMUX:demultiplexer)又はルーティング回路420を含むことができる。ルーティング回路420は、アドレステーブルのヒット/ミスの信号424に基づいて、データをメモリセルアレイ214又は補助メモリ222のいずれか1つへ伝送するように構成され得る。上述のように、アドレステーブルのヒットが発生した場合、ルーティング回路420は、格納されるデータを補助メモリに伝送する(矢印434で示される)。同様に、アドレステーブル220は、マッピングされたメモリアドレス432を生成し、それを補助メモリ222に伝送する。逆に、上述のように、アドレステーブルのミスが発生した場合、ルーティング回路420は、格納されるデータをメモリセルアレイ214に伝送する(矢印436で示される)。同様に、図示されていないが、コマンドバス412からのメモリアドレスは、データを格納するために、メモリセルアレイ214によって使用される。
多様な実施例で、アドレステーブルのヒット/ミスの発生とは無関係に、データはメモリセルに常に格納され得る。このような実施例で、メモリセルアレイ214へのメモリアクセスを遂行するロジックは、RAS回路212の追加を収容するように変更する必要はない。このような実施例で、アドレステーブルのヒットが発生した場合、データはメモリセルアレイ214及び補助メモリ222の両方に格納されるが、メモリセルアレイ214のデータは、以下に示すように、無視される。これは単に1つの例示的な実施例であり、本発明はこれに限定されない。
図4Bは、本発明の一実施形態によるシステムの例示的な実施例を示すブロック図である。図4Bに示す実施例では、リード(read)のメモリアクセスが図示されている。これは単に1つの例示的な実施例であり、本発明はこれに限定されない。
図4Bに示す実施例で、システム401は、上述のように、プロセッサ204及びHBMダイ202を含むことができる。多様な実施例で、プロセッサ204は、メモリコントローラー232を含むことができる。HBMダイ202は、上述のように、HBMアレイ又はメモリセルアレイ214(ECCストレージを含むことができる)、及びRAS回路212を含むことができる。図4Bに示す実施例で、RAS回路212は、上述のように、インデックス領域又はアドレステーブル220、及びRAS又は補助メモリ222を含むことができる。図4Bに示す実施例で、システム401は、コマンドバス412及びデータバス414をさらに含むことができる。
図4Bに示す実施例で、メモリコントローラー232は、HBMダイ202へのリード(read)のメモリアクセスを発行することができる。このような実施例で、コマンド自体(およびメモリアドレス)は、コマンドバス412によって伝送され、データはデータバス414によってリターンされる。これは単に1つの例示的な実施例であり、本発明はこれに限定されない。
リード(read)のメモリアクセスが受信された場合、RAS回路212は、メモリアクセスに関連付けられたメモリアドレスがアドレステーブル220に格納されているか(そして有効であるか)否かを判定する。アドレステーブル220は、アドレステーブルのヒット(アドレスが格納されている場合)、またはアドレステーブルのミス(アドレスが格納されていない場合)を発生する。これは信号424で示される。
図4Bに示す実施例で、RAS回路212は、マルチプレクサ(MUX:multiplexer)、ゲーティング、又はルーティング回路470を含むことができる。ルーティング回路470は、アドレステーブルのヒット/ミスの信号424に基づいて、メモリセルアレイ214又は補助メモリ222のいずれか1つからのデータをデータバス414に伝送するように構成される。上述のように、アドレステーブルのヒットが発生した場合、ルーティング回路470は、補助メモリから回収されたデータ(矢印474によって図示される)をデータバス414に伝送する。同様に、アドレステーブル220は、マッピングされたメモリアドレス432を生成し、それを補助メモリ222に伝送する。逆に、上述のように、アドレステーブルのミスが発生した場合、ルーティング回路470は、メモリセルアレイ214から回収されたデータ(矢印476によって図示される)をデータバス414に伝送する。同様に、図示されていないが、コマンドバス412からのメモリアドレスは、データを回収するために、メモリセルアレイ214によって使用される。
多様な実施例で、上述のように、アドレステーブルのヒット/ミスの発生とは無関係に、データはメモリセルに常にライト(write)され得る。このような実施例で、データがメモリセルアレイ214のうちの不良又はエラーの起きたメモリアドレスに格納されても、ルーティング回路470は、不良又はエラーの起きたデータがデータバス414に存在することを防止できる。代わりに、補助メモリ222からの有用なデータ(good data)が使用される。このような実施例で、データはメモリセルアレイ214から常にリード(read)され、その後、ルーティング回路470によってゲーティングされ得る。
図5は、本発明の実施形態の原理に基づいて形成された半導体装置を含む情報処理システムの概念的なブロック図である。
図5を参照すると、情報処理システム500は、本発明の実施形態の原理に基づいて構成された1つ又はそれ以上の装置を含むことができる。他の実施例で、情報処理システム500は、本発明の実施形態の原理に基づく1つ又はそれ以上の技法を使用するか、または実行することができる。
多様な実施例で、情報処理システム500は、例えば、ラップトップ、デスクトップ、ワークステーション、サーバ、ブレードサーバ、PDA(personal digital assistant)、スマートフォン、タブレット及び他の適切なコンピュータのようなコンピューティング装置、又は仮想マシン若しくはそれらの仮想コンピューティングデバイスを含むことができる。多様な実施例で、情報処理システム500は、ユーザー(図示せず)によって使用され得る。
本発明による情報処理システム500は、中央処理ユニット(CPU:central processing unit)、ロジック又はプロセッサ510をさらに含むことができる。一部の実施例で、プロセッサ510は、1つ又はそれ以上の機能ユニットブロック(FUB)や組み合わせ論理ブロック(CLB)515を含むことができる。このような実施例で、組み合わせ論理ブロックは、多様なブーリアン方式のロジック動作(例えば、NAND、NOR、NOT、XOR)、安定化ロジックデバイス(例えば、フリップフロップ、ラッチ)、他のロジックデバイス、又はそれらの組み合わせを含むことができる。このような組み合わせロジックの動作は、単純又は複雑な方式で入力信号を処理して意図された結果を達成するように構成され得る。同期式組み合わせロジックの動作の一部の例示的な実施例を説明したが、本発明はこれに限定されるものではなく、非同期式動作、又はそれらの組み合わせを包含できる。一実施例で、組み合わせロジックの動作は、複数のCMOS(complementary metal oxide semiconductors)トランジスタを含むことができる。多様な実施例で、このようなCMOSトランジスタは、ロジック動作を遂行するゲートに整列され得るが、ただし、本発明の技術範囲に属する他の技術が使用され得る。
本発明による情報処理システム500は、揮発性メモリ520(例えば、ランダムアクセスメモリRAM(random access memory))をさらに含むことができる。本発明による情報処理システム500は、不揮発性メモリ530(例えば、ハードドライブ、光メモリ、NAND又はフラッシュメモリ)をさらに含むことができる。一部の実施例で、揮発性メモリ520、不揮発性メモリ530、又はそれらの組み合わせ若しくは一部は、「記憶媒体(storage medium)」と称される。多様な実施例で、揮発性メモリ520及び/又は不揮発性メモリ530は、半永久的な又は実質的に永続的な形態でデータを格納するように構成される。
多様な実施例で、情報処理システム500は、情報処理システム500が通信ネットワークの一部となって、この通信ネットワークを通じて通信するように構成された1つ又はそれ以上のネットワークインターフェース540を含むことができる。Wi-Fi(登録商標)プロトコルの例として、IEEE(Institute of Electrical and Electronics Engineers)802.11g、IEEE 802.11nを含むことができるが、これに限定されない。セルラープロトコルの例は、IEEE 802.16m(別名、Wireless-MAN(Metropolitan Area Network)Advanced)、LTE(登録商標)(Long Term Evolution)Advanced、Enhanced Data rates for GSM(登録商標)(Global System for Mobile Communications)Evolution(EDGE)、Evolved High- Speed Packet Access(HSPA +)を含むことができるが、これに限定されない。有線プロトコルの例は、IEEE 802.3(別名、Ethernet)、ファイバチャネル(Fibre Channel)、電力線通信(Power Line communication)(例えば、ホームプラグ、IEEE 1901)を含むことができるが、これに限定されない。上述した内容は、単にいくつかの例示的な実施例であり、本発明はこれに限定されない。
本発明による情報処理システム500は、ユーザーインターフェースユニット550(例えば、ディスプレイアダプタ、ハプティックインターフェース、ヒューマンインターフェース装置)をさらに含むことができる。多様な実施例で、このようなユーザーインターフェースユニット550は、ユーザーから入力を受信したり、ユーザーに出力を提供したりするように構成され得る。他の種類の装置がユーザーとの相互作用を提供するために使用されることができ、例えば、ユーザーに提供されるフィードバックは、感覚フィードバック(sensory feedback)の形態(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であり、ユーザーからの入力は、音、音声、又は触覚入力の形態で受信され得る。
多様な実施例で、情報処理システム500は、1つ又はそれ以上の他の装置やハードウェア構成(例えば、ディスプレイ又はモニター、キーボード、マウス、カメラ、指紋リーダー、ビデオプロセッサ)(以下、他のハードウェア装置560という)を含むことができる。上述した内容は、単にいくつかの例示的な実施例であり、本発明はこれに限定されない。
本発明による情報処理システム500は、1つ又はそれ以上のシステムバス505をさらに含むことができる。このような実施例で、システムバス505は、プロセッサ510、揮発性メモリ520、不揮発性メモリ530、ネットワークインターフェース540、ユーザーインターフェースユニット550、並びに1つ又はそれ以上のハードウェア構成560を通信的に連結するように構成され得る。プロセッサ510によって処理されたデータ、又は不揮発性メモリ530の外部から入力されたデータは、不揮発性メモリ530又は揮発性メモリ520のいずれか1つに格納され得る。
多様な実施例では、情報処理システム500は、1つ又はそれ以上のソフトウェア構成(以下、ソフトウェア570という)を含むか、または実行することができる。一部の実施例で、ソフトウェア570は、オペレーティングシステムOS(operating system)及び/又はアプリケーションを含み得る。いくつかの実施例で、OSは、1つ又はそれ以上のサービスをアプリケーションとして提供し、アプリケーションと情報処理システム500の多様なハードウェア構成(例えば、プロセッサ510、ネットワークインターフェース540)との間の仲介者(intermediary)として管理し、または動作させることができる。このような実施例で、情報処理システム500は、ローカルに(例えば、不揮発性メモリ530内に)設置され、プロセッサ510によって直接実行され、OSと直接相互作用するように構成された1つ又はそれ以上のネイティブ(native)アプリケーションを含むことができる。このような実施例で、ネイティブアプリケーションは、予めコンパイルされたマシン実行可能なコード(pre-compiled machine executable code)を含むことができる。一部の実施例で、ネイティブアプリケーションは、ソース又はオブジェクトコードをプロセッサ510によって実行される実行可能なコードに変換するように構成されたVM(virtual execution machine)(例えば、the Java(登録商標) Virtual Machine、the Microsoft(登録商標) Common Language Runtime)、又はスクリプトインタープリター(script interpreter)(例えば、csh(C shell)、AppleScript、AutoHotkey)を含むことができる。
上述の半導体装置は、多様なパッケージング技法を使用してカプセル化され得る。例えば、本発明の技術的思想に基づいて構成された半導体装置は、POP(package on package)技法、BGA(ball grid array)技法、CSP(chip scale package)技法、PLCC(plastic leaded chip carrier)技法、PDIP(plastic dual in-line package)技法、ダイ・インワッフルパック技法(die in waffle pack technique)、ダイ・インウェハー形成技法(die in wafer form technique)、COB(chip on board)技法、CERDIP(ceramic dual in-line package)技法、PMQFP(plastic metric quad flat package)技法、PQFP(plastic quad flat package)技法、SOIC(small outline package)技法、SSOP(shrink small outline package)技法、TSOP(thin small outline package)技法、TQFP(thin quad flat package)技法、SIP(system in package)技法、MCP(multi-chip package)技法、WFP(wafer-level fabricated package)技法、WSP(wafer-level processed stack package)技法、又は当業者によってよく知られている他の技法のいずれか1つを使用してカプセル化され得る。
方法のステップは、コンピュータプログラムを実行して、入力データに対して動作するか、または出力を生成することにより、機能を実行する1つまたはそれ以上のプログラム可能なプロセッサによって遂行される。方法のステップはまた、例えば、FPGA(field programmable gate array)又はASIC(application-specific integrated circuit)のような特定用途向けのロジック回路によって遂行され、装置は、特定用途向けのロジック回路として具現され得る。
多様な実施例で、コンピュータ読み取り可能な記憶媒体は、コマンドを含むことができ、コマンドが実行される場合、装置は、方法のステップの少なくとも一部を遂行することができる。一部の実施例で、コンピュータ読み取り可能な記憶媒体は、磁気媒体(magnetic medium)、光媒体(optical medium)、他の媒体、又はそれらの組み合わせ(例えば、CD-ROM、ハードドライブ、読み取り専用メモリ、フラッシュドライブ)が含まれる。このような実施例で、コンピュータ読み取り可能な記憶媒体は明確かつ非一時的に形象化された製造品であり得る。
本発明の技術的思想が例示的な実施例を参照して説明されたが、当業者は、本発明の思想及び技術範囲から逸脱せずに多様な変形及び変更を行うことができる。したがって、上述した実施例は、単に説明のためのものであり、限定されないことが理解される。本発明の技術範囲は、上述の説明によって制限されたり、または限定されない。したがって、本発明の技術範囲は、実施例の範囲内でこのような変形及び修正のすべてを含むことが理解される。
100 装置
102 ロジックダイ
104 メモリダイ
106 ルーティングダイ
112 ロジック回路
113、212 RAS回路
114、214 メモリセルアレイ
116 ルーティング構造体
123、123a、123b I/Oインターフェース
126 ビア
200、201、400、401 システム
202 HBMダイ
204、510 プロセッサ
206 ホスト装置
216 ECCストレージ
218 HBMインターフェース
220 アドレステーブル
222 補助メモリ
232 メモリコントローラー
234、294 ECCエンジン
236 不揮発性メモリ
242 ドライバ
412 コマンドバス
414 データバス
420 ルーティング回路
424 信号
432 マッピングされたメモリアドレス
470 ルーティング回路
500 情報処理システム
505 システムバス
520 揮発性メモリ
530 不揮発性メモリ
540 ネットワークインターフェース
550 ユーザーインターフェースユニット
560 ハードウェア構成
570 ソフトウェア構成


Claims (20)

  1. 装置であって、
    積層された集積回路ダイを備え、
    前記積層された集積回路ダイは、
    メモリアドレスに基づいて、少なくとも部分的に、データを格納するように構成されたメモリセルダイと、
    ロジックダイと、を含み、
    前記ロジックダイは、
    前記積層された集積回路ダイに連結され、前記メモリセルダイと外部装置との間でメモリアクセスを通信するように構成されたインターフェースと、
    信頼性回路と、を含み、
    前記信頼性回路は、
    データを格納するように構成された補助メモリと、
    エラーに関連付けられたメモリアドレスを前記補助メモリの部分にマッピングするように構成されたアドレステーブルを含み、
    前記信頼性回路は、
    前記ロジックダイの外部のプロセッサから受信した前記メモリセルダイエラーが検出されたメモリアドレスに基づいて、前記アドレステーブルのメモリアドレスのエントリを編集するよう構成され、
    前記積層された集積回路ダイへのメモリアクセスに基づいて、前記メモリアクセスがエラーに関連付けられているメモリアドレスであると判定した場合、少なくとも部分的に、前記補助メモリを使用して、前記メモリアクセスを完了するように構成されたことを特徴とする装置。
  2. 前記アドレステーブルは、
    前記アドレステーブル内のエラーから保護するエラー訂正コードの部分と、
    前記メモリアドレスのエントリがアクティブ状態であることを示すように構成された有効フラグと、を含むことを特徴とする請求項1に記載の装置。
  3. 前記信頼性回路は、
    メモリアドレスのデータに対するライト(write)のメモリアクセスを外部装置から受信し、
    前記メモリアドレスがエラーに関連付けられていると判定した場合
    前記データを前記補助メモリの部分に格納するように構成されたことを特徴とする請求項1に記載の装置。
  4. 前記信頼性回路は、前記メモリアドレスがメモリアドレスのエントリとして、前記アドレステーブルに格納されていると判定し、且つ有効フラグが前記メモリアドレスのエントリがアクティブ状態であることを示すと判定することにより、前記メモリアドレスがエラーに関連付けられていると判定するように構成されたことを特徴とする請求項3に記載の装置。
  5. 前記信頼性回路は、
    メモリアドレスのデータに対するリード(read)のメモリアクセスを外部装置から受信し、
    前記メモリアドレスがエラーに関連付けられていると判定した場合
    前記補助メモリの部分から前記データを回収するように構成されたことを特徴とする請求項1に記載の装置。
  6. 前記信頼性回路は、
    メモリアドレスがエラーに関連付けられていることを示すメッセージを外部装置から受信し、
    前記アドレステーブルに前記メモリアドレスを位置させ、
    前記メモリアドレスを前記補助メモリの前記部分に関連付けるように構成されたことを特徴とする請求項1に記載の装置。
  7. 前記信頼性回路は、予め定められたメモリアドレスへのライト(write)のメモリアクセスを受信することにより、前記メモリアドレスがエラーに関連付けられていることを示すメッセージを外部装置から受信するように構成され、
    前記予め定められたメモリアドレスは、前記アドレステーブルに関連付けられていることを特徴とする請求項6に記載の装置。
  8. 前記信頼性回路は、
    前記補助メモリの使用レベルを監視し、
    予め定められたメモリアドレスに前記使用レベルのインジケーターを格納するように構成され、
    前記インターフェースは、
    前記予め定められたメモリアドレスへのリード(read)のメモリアクセスを受信し、
    前記リードのメモリアクセスに基づいて、前記補助メモリの前記使用レベルの前記インジケーターを提供することを特徴とする請求項1に記載の装置。
  9. システムであって、
    プロセッサと、
    前記プロセッサとは別の高帯域幅メモリダイのスタックと、を備え、
    前記プロセッサは、
    前記プロセッサとの間のデータの流れを管理するように構成されたメモリコントローラーと、
    格納されたデータに関連するエラーを検出するように構成されたエラー訂正回路と、を含み、
    前記高帯域幅メモリダイのスタックは
    メモリアドレスに基づいて、少なくとも部分的に、データを格納するように構成されたメモリセルアレイが分散配置された複数の集積回路ダイと、
    信頼性回路と、を含み、
    前記信頼性回路は、
    データを格納するように構成された補助メモリと、
    前記エラーに関連付けられたメモリアドレスを前記補助メモリの部分にマッピングするように構成されたアドレステーブルと、を含み、
    前記信頼性回路は、前記高帯域幅メモリダイのスタックへのメモリアクセスに基づいて、前記メモリアクセスが前記エラー訂正回路によって検出されたエラーに関連付けられていると判定した場合、少なくとも部分的に、前記補助メモリを使用して、前記メモリアクセスを完了するように構成されたことを特徴とするシステム。
  10. 前記プロセッサは、
    前記補助メモリが前記エラーを、少なくとも部分的に、訂正するのに十分な自由容量を含んでいると判定し、
    前記エラーに関連付けられている前記メモリアドレスを前記補助メモリの部分にマッピングすることを特徴とする請求項9に記載のシステム。
  11. 前記信頼性回路は、
    メモリアドレスのデータに対するライト(write)のメモリアクセスを前記プロセッサから受信し、
    前記メモリアドレスがエラーに関連付けられていると判定した場合
    前記データを前記補助メモリのマッピングされた部分に格納するように構成されたことを特徴とする請求項9に記載のシステム。
  12. 前記信頼性回路は、
    メモリアドレスのデータに対するリード(read)のメモリアクセスを、前記プロセッサから受信し、
    前記メモリアドレスがエラーに関連付けられていると判定した場合
    前記データを前記補助メモリのマッピングされた部分から回収するように構成されたことを特徴とする請求項9に記載のシステム。
  13. 前記プロセッサは、予め定められたメモリアドレスへのライト(write)のメモリアクセスを発行するように構成され、
    前記予め定められたメモリアドレスは、前記アドレステーブルに関連付けられ、
    前記ライト(write)のメモリアクセスは、データの一部として、前記エラーに関連付けられている前記メモリアドレスを含み、
    前記信頼性回路は、
    メモリアドレスがエラーに関連付けられていることを示すメッセージを前記プロセッサから受信し、
    前記メモリアドレスを前記アドレステーブルに位置させ、
    前記メモリアドレスを前記補助メモリの前記部分に関連させるように構成されたことを特徴とする請求項9に記載のシステム。
  14. 前記信頼性回路は、
    前記補助メモリの使用レベルを監視し、
    予め定められたメモリアドレスで前記使用レベルのインジケーターを格納するように構成され、
    前記プロセッサは、
    前記予め定められたメモリアドレスへのリード(read)のメモリアクセスを発行し、
    前記リード(read)のメモリアクセスに基づいて、前記補助メモリの前記使用レベルの前記インジケーターを受信するように構成されたことを特徴とする請求項9に記載のシステム。
  15. 前記プロセッサは、それぞれのエラーに関連付けられているメモリアドレスのリストを格納するように構成された不揮発性メモリを含み、
    前記エラー訂正回路は、格納されたデータに対するエラーの検出に基づいて、前記エラーに関連付けられている、前記メモリアドレスが前記不揮発性メモリと前記アドレステーブルの両方によって格納されるように構成されることを特徴とする請求項9に記載のシステム。
  16. 前記不揮発性メモリは、それぞれのエラーに関連付けられている、前記メモリアドレスの前記リストの1つ以上を前記アドレステーブルに追加するように構成され、
    前記信頼性回路は、前記メモリアドレスの1つ以上を前記補助メモリのそれぞれの部分にマッピングするように構成されたことを特徴とする請求項15に記載のシステム。
  17. 前記信頼性回路は、前記プロセッサをリセットすることなく、前記メモリセルアレイ内のデータエラーをリマッピングするように構成されたことを特徴とする請求項9に記載のシステム。
  18. 装置であって、
    ロジックダイを備え、
    前記ロジックダイは、
    メモリアドレスに基づいて、データを格納するように構成された高帯域幅メモリダイに連結された内部インターフェースと、
    前記高帯域幅メモリダイと、少なくとも1つの外部装置との間でメモリアクセスを通信するように構成された外部インターフェースと、
    信頼性回路と、を含み、
    前記信頼性回路は、
    データを格納するように構成された補助メモリと、
    エラーに関連付けられたメモリアドレスを前記補助メモリの部分にマッピングするように構成されたアドレステーブルを含み、
    前記信頼性回路は、
    前記ロジックダイの外部のプロセッサから受信した前記高帯域幅メモリダイエラーが検出されたメモリアドレスに基づいて、前記アドレステーブルのメモリアドレスのエントリを編集するよう構成され、
    前記高帯域幅メモリダイへのメモリアクセスに基づいて、前記メモリアクセスがエラーに関連付けられているメモリアドレスであると判定した場合、少なくとも部分的に、前記補助メモリを使用して、前記メモリアクセスを完了するように構成されたことを特徴とする装置。
  19. 前記信頼性回路は、
    メモリアドレスのデータに対するライト(write)のメモリアクセスを、前記外部装置から受信し、
    前記メモリアドレスがエラーに関連付けられていると判定した場合
    前記補助メモリの部分に前記データを格納するように構成されたことを特徴とする請求項18に記載の装置。
  20. 前記信頼性回路は、
    メモリアドレスのデータに対するリード(read)のメモリアクセスを、前記外部装置から受信し、
    前記メモリアドレスがエラーに関連付けられていると判定した場合
    前記補助メモリのマッピングされた部分から前記データを回収するように構成されたことを特徴とする請求項18に記載の装置。
JP2019123601A 2018-07-02 2019-07-02 高帯域幅メモリのras(信頼性、アクセシビリティ、及びサービサビリティ)キャッシュ構造 Active JP7252845B2 (ja)

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 (3)

Publication Number Publication Date
JP2020009441A JP2020009441A (ja) 2020-01-16
JP2020009441A5 JP2020009441A5 (ja) 2022-07-08
JP7252845B2 true JP7252845B2 (ja) 2023-04-05

Family

ID=69055272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019123601A Active JP7252845B2 (ja) 2018-07-02 2019-07-02 高帯域幅メモリのras(信頼性、アクセシビリティ、及びサービサビリティ)キャッシュ構造

Country Status (5)

Country Link
US (2) US11151006B2 (ja)
JP (1) JP7252845B2 (ja)
KR (1) KR102420098B1 (ja)
CN (1) CN110673980B (ja)
TW (1) TWI768200B (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140082411A1 (en) 2011-06-30 2014-03-20 Hewlett-Packard Development Company, L.P. Memory module that includes a memory module copy engine for copying data from an active memory die to a spare memory die
US20150199246A1 (en) 2014-01-16 2015-07-16 Fujitsu Limited Memory device, storage method and control device

Family Cites Families (26)

* Cited by examiner, † Cited by third party
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
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
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140082411A1 (en) 2011-06-30 2014-03-20 Hewlett-Packard Development Company, L.P. Memory module that includes a memory module copy engine for copying data from an active memory die to a spare memory die
US20150199246A1 (en) 2014-01-16 2015-07-16 Fujitsu Limited Memory device, storage method and control device
JP2015135577A (ja) 2014-01-16 2015-07-27 富士通株式会社 記憶装置、記憶方法及び制御装置

Also Published As

Publication number Publication date
US11151006B2 (en) 2021-10-19
TW202006548A (zh) 2020-02-01
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
KR20200003709A (ko) 2020-01-10

Similar Documents

Publication Publication Date Title
JP7252845B2 (ja) 高帯域幅メモリのras(信頼性、アクセシビリティ、及びサービサビリティ)キャッシュ構造
US11301172B2 (en) Quasi-volatile memory device with a back-channel usage
CN110073322B (zh) 用于快速执行封装体内命令的系统和方法
US11038749B2 (en) Memory resource allocation in an end-point device
US20210286667A1 (en) Cloud scale server reliability management
TWI506423B (zh) 用以執行並行讀取及寫入記憶體操作之方法及裝置
US20180276161A1 (en) PCIe VIRTUAL SWITCHES AND AN OPERATING METHOD THEREOF
US20200185052A1 (en) Undo and redo of soft post package repair
US10740243B1 (en) Storage system and method for preventing head-of-line blocking in a completion path
US11467902B2 (en) Apparatus to insert error-correcting coding (ECC) information as data within dynamic random access memory (DRAM)
US12032443B2 (en) Shadow DRAM with CRC+RAID architecture, system and method for high RAS feature in a CXL drive
KR20200081045A (ko) 3차원 적층 메모리 장치 및 그 동작 방법
US11748112B2 (en) Configurable media structure
WO2024030785A2 (en) Memory controller for a high capacity memory circuit with large number of independently accessible memory banks
US11281277B2 (en) Power management for partial cache line information storage between memories
KR20210081229A (ko) 와이드 프리페치를 갖는 고 대역폭 dram 메모리
US11960770B2 (en) Access request management using sub-commands
US20230318825A1 (en) Separately storing encryption keys and encrypted data in a hybrid memory
US20240004799A1 (en) Memory controller architecture
US20240289062A1 (en) Raid controller, operating method of raid controller and storage device
US20240192892A1 (en) Read replacement via data reconstruction based on access patterns
US20230315334A1 (en) Providing fine grain access to package memory
US20150309741A1 (en) Apparatuses and methods for memory management

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220630

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220630

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230324

R150 Certificate of patent or registration of utility model

Ref document number: 7252845

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150