【解決手段】本発明のメモリ装置は、複数のキャッシュライン及び複数のキャッシュラインに対応する複数のタグを保存するセルアレイと、複数の管理ポリシーのうちの少なくとも一つの管理ポリシーを選択し、選択された少なくとも一つの管理ポリシーに基づいてキャッシュポリシーを設定するキャッシュポリシー設定回路と、キャッシュポリシーに基づいて複数のキャッシュラインを管理するキャッシュロジックと、を備える。
前記キャッシュポリシー設定回路は、外部装置から受信されたコマンドに基づいて前記複数の管理ポリシーのうちの他の少なくとも一つの管理ポリシーを選択することにより前記キャッシュポリシーを変更することを特徴とする請求項1に記載のメモリ装置。
前記キャッシュポリシー設定回路は、外部メモリコントローラから受信されたキャッシュポリシー設定コマンドに応答して前記キャッシュポリシーを変更することを特徴とする請求項1に記載のメモリ装置。
前記キャッシュポリシー設定コマンドは、読み取りコマンド及び書き込みコマンドが受信された入出力ピンと異なる入出力ピンを介して受信されることを特徴とする請求項3に記載のメモリ装置。
前記キャッシュポリシー設定回路は、前記メモリ装置で受信されたアクセスコマンド又はデータ入出力をモニタリングして前記メモリ装置に要請された動作パターンを分析するモニタ回路を更に含むことを特徴とする請求項6に記載のメモリ装置。
前記キャッシュポリシー設定回路は、予め設定された期間内の前記メモリ装置に対する書き込み要請が臨界値以上と判断された場合、前記複数のキャッシュラインのうちのクリーンキャッシュラインを置換キャッシュラインとして選択するための管理ポリシーを選択することを特徴とする請求項1に記載のメモリ装置。
前記複数の管理ポリシーは、複数の置換ポリシー、複数の割り当てポリシー、及び複数の書き込みポリシーのうちの少なくとも一つを含むことを特徴とする請求項1に記載のメモリ装置。
受信インデックスに基づいて前記複数のロウのうちの選択されたロウに保存された前記複数のキャッシュライン及び前記複数のタグをローディングするロウバッファを更に含み、
前記キャッシュロジックは、前記ローディングされた複数のタグ及び受信タグに基づいてキャッシュヒットしたか否かを判断することを特徴とする請求項10に記載のメモリ装置。
前記第2メモリ装置は、受信されたキャッシュ設定コマンド又は動作コマンドに基づいて前記複数の管理ポリシーのうちの他の少なくとも一つの管理ポリシーを選択することにより前記キャッシュポリシーを変更することを特徴とする請求項14に記載のメモリモジュール。
前記複数の第1メモリ装置及び前記第2メモリ装置は、同一インデックスを受信して該インデックスに対応するロウの複数のキャッシュライン及び複数のキャッシュタグを前記複数の第1メモリ装置及び前記第2メモリ装置内のそれぞれに具備されるロウバッファにローディングすることを特徴とする請求項14に記載のメモリモジュール。
前記第2メモリ装置から選択キャッシュラインのウェイ情報を受信して該ウェイ情報に対応するロウアドレスを前記複数の第1メモリ装置に提供するレジスタを更に含むことを特徴とする請求項17に記載のメモリモジュール。
前記第2メモリ装置は、前記キャッシュロジックから受信された選択キャッシュラインのウェイ情報に基づいてロウアドレスを生成し、該ロウアドレスを前記複数の第1メモリ装置に提供するアドレス変換回路を更に含むことを特徴とする請求項17に記載のメモリモジュール。
前記複数の第1メモリ装置及び前記第2メモリ装置のうちの少なくとも一つは、カラム及びロウに配列されたメモリセルを含むメモリセルアレイを含むことを特徴とする請求項14に記載のメモリモジュール。
前記予め設定されたキャッシュポリシーを変更する段階は、予め設定された期間内の前記メモリ装置に対する書き込み要請が臨界値以上と判断された場合、前記複数のキャッシュラインのうちのクリーンキャッシュラインを置換キャッシュラインとして選択するための管理ポリシーを選択する段階を含むことを特徴とする請求項21に記載のメモリ装置の動作方法。
前記複数の管理ポリシーは、複数の置換ポリシー、複数の割り当てポリシー、及び複数の書き込みポリシーのうちの少なくとも一つを含むことを特徴とする請求項21に記載のメモリ装置の動作方法。
【発明を実施するための形態】
【0010】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。しかし、本発明は、多くの異なる形態で具体化され、ここで説明する例示的な実施形態に限定されるものであると解釈してはならない。このような例示的な実施形態は、単に一例に過ぎず、ここに提供する細部事項を必要としない多くの具現及び変形が可能である。特許請求範囲の文言は、本発明の要件決定において参照されなければならない。
【0011】
本発明の技術分野において伝統的であるように、本実施形態を機能ブロック、ユニット、及び/又はモジュールの観点から図面に記述して説明する。当業者は、このようなブロック、ユニット、及び/又はモジュールが論理回路、ディスクリート部品、マイクロプロセッサ、配線回路、メモリ素子、配線接続のような電子(又は、光学)回路によって物理的に具現されることを理解する。それは、半導体基盤製造技術又は他の製造技術を使用して形成される。ブロック、ユニット、及び/又はモジュールがマイクロプロセッサ又は類似体によって具現される場合、それらは、本明細書に記述する多様な機能を遂行するために、ソフトウェア(例えば、マイクロコード)を使用してプログラミングされ、選択的にファームウェア及び又はソフトウェアによって駆動される。代案として、各々のブロック、ユニット、及び/又はモジュールは、専用ハードウェアによって、又は一部機能を遂行するための専用ハードウェア及び他の機能を遂行するためのプロセッサ(例えば、1以上のプログラムされたマイクロプロセッサ及び関連回路)の組み合わせとして具現される。また、本実施形態の各々のブロック、ユニット、及び/又はモジュールは、本発明の概念の範囲を外れずに、物理的に2個以上の相互作用する個別的なブロック、ユニット、及び/又はモジュールに分離される。また、本実施形態のブロック、ユニット、及び/又はモジュールは、本発明の概念の範囲を外れずに、更に複雑なブロック、ユニット、及び/又はモジュールに物理的に結合される。
【0012】
以下、本発明の多様な実施形態について、図面を参照しながら詳細に説明する。
【0013】
図1は、本発明の一実施形態による電子システムを簡略に示すブロック図である。
【0014】
図1を参照すると、電子システム1000は、スマートフォン、タブレットPC(personal computer)、移動電話機(mobile phone)、画像電話機、電子書籍リーダ(e−book reader)、デスクトップPC、ラップトップPC、ネットブックコンピュータ、PDA(personal digital assistant)、PMP(portable multimedia player)、MP3プレーヤ、カメラ、ウェアラブル装置、サーバ、車両用電子装置、船舶用電子装備(例:船舶用航法装置及びジャイロコンパスなど)、航空電子機器(avionics)、セキュリティ機器、産業用又は家庭用ロボット、金融機関のATM(automatic teller’s machine)、電子医療機器、家電製品、スマート家具又は建物/構造物の一部のうちの少なくとも一つによって具現される。
【0015】
電子システム1000は、ホストシステム(Host System)1200、キャッシュメモリ(Cache Memory)1100、及びメインメモリ(Main Memory)1300を含む。
【0016】
ホストシステム1200は、電子システム1000の全般的な動作を制御し、論理演算を行う。例えば、ホストシステム1200は、システムオンチップで構成される。ホストシステム1200は、中央処理装置(CPU)1210、及び知能素子(IP:intellectual properties)1220を含む。
【0017】
中央処理装置(CPU)1210は、メインメモリ1300に保存されたプログラム及び/又はデータを処理又は実行する。一実施形態において、CPU1210はマルチコア・プロセッサによって具現される。一実施形態において、CPU1210は同一チップ上に位置するキャッシュ(例えば、L1キャッシュ(図示せず))を含む。
【0018】
IP1220は、電子システム1000に集積された回路、ロジック、又はそれらの組み合わせを意味する。集積された回路又はロジックには、コンピュータコード(code)が保存される。
【0019】
IP1220は、例えばGPU(graphics processing unit)、MFC(multi−format codec)、ビデオモジュール(例えば、カメラインターフェース、JPEG(joint photographic experts group)プロセッサ、ビデオプロセッサ、ミキサなど)、オーディオシステム、ドライバ、ディスプレイドライバ、揮発性メモリ装置、不揮発性メモリ装置、メモリコントローラ、キャッシュメモリ、シリアルポート、システムタイマ、ウォッチドグタイマ、アナログ・デジタルコンバータなどを含む。
【0020】
一実施形態において、IP1220は内部にキャッシュメモリを含む。
図1において、ホストシステム1200は、一つのIP1220を含むように図示しているが、それに制限されるものではなく、複数のIPを含み得る。
【0021】
メインメモリ1300は、ホストシステム1200から要請されたデータを保存したり読み取ったりする。例えば、メインメモリ1300はCPU1210が実行するコマンド及びデータを保存する。また、メインメモリ1300はIP1220から要請されたデータを保存したり読み取ったりする。
【0022】
メインメモリ1300は、揮発性メモリ装置又は不揮発性メモリ装置によって具現される。揮発性メモリ装置は、DRAM(dynamic random access memory)、SRAM(static random access memory)、T−RAM(thyristor RAM)、Z−RAM(zero capacitor RAM)、又はTTRAM(twin transistor RAM)によって具現される。
【0023】
不揮発性メモリ装置は、EEPROM(electrically erasable programmable read−only memory)、フラッシュメモリ、MRAM(magnetic RAM)、スピン伝達トルクMRAM(STT(spin−transfer torque)−MRAM)、CBRAM(conductive bridging RAM)、FeRAM(ferroelectric RAM)、PRAM(phase change RAM)、抵抗メモリ(ReRAM:resistive RAM)、ナノチューブReRAM(nanotube ReRAM)、ポリマーRAM(PoRAM(polymer RAM))、ナノ浮遊ゲートメモリ(NFGM:nano floating gate memory)、ホログラフィックメモリ(holographic memory)、分子電子メモリ素子(molecular electronics memory device)、又は絶縁抵抗変化メモリ(insulator resistance change memory)によって具現される。
【0024】
キャッシュメモリ1100は、メインメモリ1300に保存されるデータ又は保存されるデータの一部を臨時保存するメモリであり、プログラムが遂行されるときにキャッシュポリシーを基とする、時間的又は空間的な地域性(locality)を利用して、メインメモリ1300やディスク(図示せず)で使用されるデータに迅速にアクセスするメモリである。時間基盤キャッシュポリシーはリソース/データが検索された時間を使用してキャッシュ項目の最新性(freshness)を定義する。空間基盤キャッシュポリシーは要請された資源/データを持ってくる位置を基にキャッシュ項目の最新性を定義する。
【0025】
キャッシュメモリ1100は、ホストシステム1200とメインメモリ1300との間に配置される。メインメモリ1300に保存されたデータの一部はキャッシュメモリ1100にコピーされ、メインメモリ1300のどの位置に保存されたデータがキャッシュメモリ1100にコピーされたかを示すタグがキャッシュメモリ1100に更に保存される。一つのタグに対応するデータ単位、即ちキャッシュメモリ1100とメインメモリ1300との間に伝送されるデータブロックをキャッシュライン(cache line)という。それに関する詳細な内容を、
図4A及び
図4Bを参照して説明する。
【0026】
タグ比較動作に基づいて、ホストシステム1200がアクセス要請したデータがキャッシュメモリ1100に存在するか否かが判別され、アクセス要請したデータがキャッシュメモリ1100に存在する場合(例えば、キャッシュヒットした場合)、キャッシュメモリ1100のデータがホストシステム1200に提供される。アクセス要請されたデータがキャッシュメモリ1100に存在しない場合(例えば、キャッシュミスした場合)、要請されたデータを含む所定サイズのデータがメインメモリ1300から読み取られ、キャッシュメモリ1100にコピーされ、コピーされたデータのうちのホストシステム1200から要請されたデータが読み取られてホストシステム1200に提供される。
【0027】
キャッシュミスした場合、キャッシュメモリ1100のキャッシュポリシーに基づいて、キャッシュメモリ1100に保存されたキャッシュラインのうちから犠牲キャッシュライン(又は、置換キャッシュラインともいう)が選択され、犠牲キャッシュラインが保存されたセル領域(「ウェイ」という)に、メインメモリ1300から読み取られたデータがコピーされる。キャッシュメモリ1100は、使用環境、例えばホストシステム1200からの要請パターンを基にキャッシュポリシーを動的に変更する。例えば、キャッシュポリシーはキャッシュライン置換ポリシーを含む。キャッシュメモリ1100がLRU(least recently used)基盤の置換ポリシーを使用し、ホストシステム1200から書き込み要請が多い場合、キャッシュメモリ1100は、キャッシュライン置換ポリシーをLRU基盤の置換ポリシーからクリーンキャッシュライン優先置換ポリシーに変更する。ここで、クリーンキャッシュラインは、メインメモリ1300に保存されたデータと同一値を有するデータを保存するキャッシュラインをいう。例えば、キャッシュメモリ1100がLRU基盤の置換ポリシーを使用する場合、キャッシュメモリ1100は、最近最も少なく使用されたキャッシュライン(least recently used cache line)を優先的に犠牲キャッシュラインとして選択する。キャッシュメモリ1100がクリーンキャッシュライン優先置換ポリシーを使用する場合、キャッシュメモリ1100は、優先的にクリーンキャッシュラインを犠牲キャッシュラインとして選択する。一実施形態において、ホストシステム1200から書き込み要請が多い場合、キャッシュメモリ1100は、キャッシュライン置換ポリシーをLRU基盤の置換ポリシーからクリーンキャッシュライン優先置換ポリシーに変更し、その後、優先的にクリーンキャッシュラインを犠牲キャッシュラインとして選択する。
【0028】
キャッシュメモリ1100は揮発性メモリ又は不揮発性メモリによって具現される。以下では、キャッシュメモリ1100としてDRAMが適用される例について説明する。しかし、本発明は、それに限定される必要はなく、ページ単位でメモリセルアレイにアクセス可能なメモリ装置、又はカラムアドレス及びロウアドレスでメモリセルアレイにアクセス可能な多様なメモリ装置が適用される。
【0029】
フラッシュメモリやPRAMのような揮発性メモリをメインメモリ1300として使用する場合、書き込み回数に制限があり、使用寿命に制限が発生する。従って、キャッシュメモリ1100がリードレイテンシ(read latency)基盤のキャッシュポリシーを適用する場合、ダーティキャッシュラインが頻繁に置換され、それによりメインメモリ1300の寿命が急減する。ここで、ダーティキャッシュラインは、メインメモリ1300に保存されている値と異なるデータを保存しているキャッシュラインを意味する。また、メインメモリ1300の書き込み回数を減らすために、ダーティキャッシュラインを長時間残しておく場合、キャッシュ再参照率が落ち、キャッシュメモリ1100自体が機能しないこともある。従って、単一キャッシュポリシーが使用される場合、キャッシュメモリ1100の性能が十分に示されない。しかし、本発明によるキャッシュメモリ1100は、上述のように、使用環境に適するように動的にキャッシュポリシーを変更し、それにより電子システム1000の性能及びメインメモリ1300の信頼性を向上させることができる。
【0030】
図2は、本発明の一実施形態によるメモリシステムを示すブロック図である。
【0031】
図2を参照すると、メモリシステム1500は、メモリ装置(Memory Device)100及びメモリコントローラ(Memory Controller)200を含む。メモリ装置100はキャッシュメモリとして動作する。メモリ装置100は
図1のキャッシュメモリ1100に適用され、
図1を参照して説明したキャッシュメモリ1100に関する開示はメモリ装置100に適用される。メモリ装置100はDRAM装置を含むものと仮定する。
【0032】
一実施形態において、メモリ装置100及び/又はメモリコントローラ200は、PoP(package on package)、BGAs(ball grid arrays)、CSPs(chip scale packages)、PLCC(plastic leaded chip carrier)、PDIP(plastic dual in−line package)、die in waffle pack、die in wafer form、COB(chip on board)、CERDIP(ceramic dual in−line package)、plastic MQFP(metric quad flat pack)、TQFP(thin quad flat pack)、SOIC(small outline IC)、SSOP(shrink small outline package)、TSOP(thin small outline package)、SIP(system in package)、MCP(multi chip package)、WFP(wafer−level fabricated package)、WSP(wafer−level processed stack package)のような多様な形態でパッケージングされる。
【0033】
メモリコントローラ200は、メモリ装置100にコマンド信号CMD、クロック信号CLK、及びアドレス信号ADDRを伝送し、書き込み/読み取りデータDATAをメモリ装置100と送受信する。メモリコントローラ200は、外部装置、例えばホストシステム1200(
図1)からのアクセス要請を基にコマンド信号CMD及びアドレス信号ADDRを生成する。
【0034】
コマンド信号CMDは、メモリ装置100のノーマル動作、例えば書き込み動作又は読み取り動作を制御する動作コマンドCMD_OPを示す。また、コマンド信号CMDは、メモリ装置100のキャッシュポリシー変更を制御するキャッシュポリシー設定コマンドCMD_CPを示す。一実施形態において、キャッシュポリシー設定コマンドCMD_CPは、メモリ装置100の入出力ピンのうちの動作コマンドCMD_OPが受信される入出力ピンとは異なる入出力ピンを介してメモリ装置100で受信される。他の実施形態において、キャッシュポリシー設定コマンドCMD_CPが受信される入出力ピンは、動作コマンドCMD_OPが受信される入出力ピンと同一である。
【0035】
アドレス信号ADDRはインデックスINDEX及びタグTAGを含む。アドレス信号ADDRはオフセットを更に含む。アドレス信号ADDRは、外部装置から要請されたアドレス(例えば、メインメモリ1300(
図1)のアドレス)に対応するデータがメモリ装置100に保存されているか否かを判別するための信号であり、要請されたアドレスの一部又は全部のビットを含む。
【0036】
メモリ装置100は、メモリセルアレイ(Memory Cell Array)110、キャッシュロジック(Cache Logic)120、及びキャッシュポリシー設定回路(Cache Policy Setting Circuit)130を含む。
【0037】
メモリセルアレイ110は複数のDRAMセルを含む。メモリセルアレイ110は、複数のキャッシュライン、及び複数のキャッシュラインに対応する複数のタグを保存する。
【0038】
キャッシュポリシー設定回路130は、メモリ装置100のキャッシュポリシーを設定する。例えば、キャッシュポリシーは、置換ポリシー、割り当てポリシー、及び書き込みポリシーのうちの一つを含む。一実施形態において、キャッシュポリシー設定回路130は、複数の管理ポリシーのうちの少なくとも一つの管理ポリシーを選択し、選択された少なくとも一つの管理ポリシーに基づいてキャッシュポリシーを設定する。一実施形態において、キャッシュポリシー設定回路130は、受信されたキャッシュポリシー設定コマンドCMD_CPに応答してキャッシュポリシーを変更する。一実施形態において、キャッシュポリシー設定回路130は、アクセスコマンド、例えば動作コマンドCMD_OPをモニタリングし、モニタリング結果に基づいてキャッシュポリシーを変更する。
【0039】
キャッシュロジック120は、キャッシュヒット又はキャッシュミスを判断する。また、キャッシュロジック120は、設定されたキャッシュポリシーを基にメモリ装置100のキャッシュ動作を制御する。キャッシュロジック120は、メモリセルアレイ110に保存された複数のキャッシュライン又は複数のタグを管理する。例えば、キャッシュロジック120は、キャッシュミス発生時、キャッシュポリシーを基に犠牲キャッシュラインを選択し、キャッシュラインを置換させる。
【0040】
図3は、本発明の一実施形態によるメモリ装置の一例を示すブロック図である。
【0041】
図3を参照すると、メモリ装置100は、メモリセルアレイ(Memory Cell Array)110、キャッシュロジック(Cache Logic)120、キャッシュポリシー選定回路(Cache Policy Setting Circuit)130、ロウデコーダ(Row Decorder)140、ロウバッファ(Row Buffer)150、カラムデコーダ(Column Decorder)160、入出力(I/O)バッファ170、コマンドデコーダ(Command Decorder)180、及びアドレスレジスタ(ADDR Register)190を含む。
【0042】
メモリセルアレイ110は、複数のキャッシュラインCL、及び複数のキャッシュラインCLに対応する複数のタグTAGsを保存する。タグは、対応するキャッシュラインがメインメモリのどの位置に保存されているかを示す。
【0043】
メモリセルアレイ110は、複数のロウ及び複数のカラムによって、行列(カラム及びロウ)に配列された複数のメモリセルを含む。メモリセルアレイ110は、ワードラインWL及びビットラインBLを介して、ロウデコーダ140及びロウバッファ150に連結される。
【0044】
メモリセルアレイ110において、各ロウはインデックス番号(INDX1〜INDEXm)によって区別される。例えば、一つのロウは一つのインデックス番号に対応する。複数のロウは、それぞれ複数のウェイ(WAY1〜WAYn)を含む。複数のロウは、それぞれ複数のウェイ(又は、セル領域)(WAY1〜WAYn)に対応する複数のキャッシュライン(CL1〜CLn)、及び複数のキャッシュライン(CL1〜CLn)に対応する複数のタグ(T1〜Tn)を保存する。説明の便宜のために、一つのロウにおいて、複数のウェイ(WAY1〜WAYn)にそれぞれ対応するキャッシュラインCL及びタグは同一符号を使用する。
図3では、複数のタグTAGsと複数のキャッシュラインCLとが区別されて保存されるように図示しているが、それに制限されるものではなく、複数のタグTAGsと複数のキャッシュラインCLとが一つのロウ内で交互に保存され得る。
【0045】
複数のロウは、複数のキャッシュライン(CL1〜CLn)の各々に関する状態情報(例えば、ダーティ又はクリーン、有効又は無効)を更に含む。複数のロウにそれぞれ保存された複数のキャッシュラインCL、複数のタグTAGs、及び状態情報は、一つのセットSETを構成する。
【0046】
コマンドデコーダ180は、メモリコントローラ200(
図2)から受信されたコマンド信号、例えばチップ選択信号/CS(chip select)、ロウアドレスストローブ/RAS(row address strobe)、カラムアドレスストローブ/CAS(column address strobe)、ライトイネーブル信号/WE(write enable)、及びクロックイネーブル信号CKE(clock enable)が入力されてデコーディング動作を遂行する。コマンドデコーダ180は、デコーディング動作を介して確認されたコマンドによる内部制御信号CTRLを生成する。コマンドデコーダ180は、制御信号CTRLをロウデコーダ140及びキャッシュポリシー設定回路130に提供するが、それ以外のメモリ装置100の他の構成要素に提供することもできる。
【0047】
キャッシュポリシー設定回路130は、メモリ装置100のキャッシュポリシーを設定する。キャッシュポリシー設定回路130は、複数の管理ポリシー(MP1、MP2、MP3)を含み、そのうちの少なくとも一つを選択することによりキャッシュポリシーを設定する。
図3では、3つの管理ポリシーを図示しているが、それに制限されるものではなく、多様な数の種類及び多様な数の管理ポリシーを含み得る。例えば、複数の管理ポリシー(MP1〜MP3)は、置換ポリシー、割り当てポリシー、又は書き込みポリシーを含む。複数の管理ポリシー(MP1〜MP3)は、アルゴリズム、回路、又はアルゴリズムを実行する回路として具現される。
【0048】
キャッシュポリシー設定回路130は、受信された制御信号CTRLを基に、動的にキャッシュポリシーを変更する。
【0049】
メモリコントローラ200から受信されたアドレス信号ADDRはアドレスレジスタ190に保存される。アドレスレジスタ190は、アドレス信号ADDRのうちのインデックスINDEXをロウアドレスX−ADDRとしてロウデコーダ140に提供し、タグTAGをキャッシュロジック120に提供する。
【0050】
ロウデコーダ140は、制御信号CTRL及びロウアドレスX−ADDRに基づいてワードラインWLを選択する。それにより、ロウアドレスX−ADDRに対応するインデックスを有するロウが活性化される。活性化されたロウに保存されたデータ、即ち複数のキャッシュラインCL及び複数のタグTAGsが、ビットラインBLを介してロウバッファ150にローディングされる。ロウバッファ150は、ビットラインBLに連結されたメモリセルのデータをセンシングするセンスアンプ回路によって具現される。
【0051】
キャッシュロジック120は、アドレスレジスタ190から提供されたタグTAG、即ち受信されたタグを、ロウバッファ150にローディングされた複数のタグ(T1〜Tn)と比較してキャッシュヒットしたか否かを判断する。キャッシュロジック120は、受信されたタグTAGが複数のタグ(T1〜Tn)のうちの一つにマッチングされた場合、キャッシュヒットであり、マッチングされない場合、キャッシュミスと判断する。
【0052】
キャッシュヒットの場合、キャッシュロジック120は、ロウバッファ150にローディングされた複数のキャッシュライン(CL1〜CLn)のうち、マッチングされたタグに対応するキャッシュラインを示す情報(例えば、ウェイ情報など)を基にカラムアドレスY−ADDRを生成する。キャッシュミスの場合、キャッシュロジック120は、キャッシュポリシー設定回路130で設定されたキャッシュポリシーを基に置換キャッシュラインを選択し、キャッシュラインを示す情報を基にカラムアドレスY−ADDRを生成する。
【0053】
キャッシュロジック120は、カラムアドレスY−ADDRをカラムデコーダ160に提供する。カラムデコーダ160は、ロウバッファ150にローディングされたデータのうちのカラムアドレスY−ADDRに対応するキャッシュラインのデータ(又は、キャッシュラインの一部データ)を選択する。ロウバッファ150は、選択されたデータDATA及び選択されたデータDATAに対応するタグTAGを、入出力バッファ170を介して外部に出力する。データDATA及びタグTAGは、メモリコントローラ200(
図2)又はメインメモリ1300(
図1)に伝送される。
【0054】
図4Aは、
図1のキャッシュメモリとメインメモリとのデータマッピングを示す図である。
図4Aは、マッピング動作の一例であり、n−ウェイ集合連想マッピング(n−way set associative mapping)を示す。
【0055】
メインメモリ300は、所定サイズの複数のブロック(301〜30k)に区分され、区分されたブロックに対応してそれぞれタグTAG値が割り当てられる。例えば、第1ブロック301のタグTAG値は「0000」であり、第2ブロックのタグTAG値は「0001」である。各ブロック(301〜30k)は、複数の領域に区分され、複数の領域に対応してそれぞれインデックスINDEX値が割り当てられる。
【0056】
キャッシュメモリ100は複数のウェイ(WAY1〜WAYn)を含む。各ウェイのサイズは、メインメモリ300の各ブロック(301〜30k)のサイズと同一である。
【0057】
メインメモリ300のデータをキャッシュメモリ100にコピーする際に、所定サイズのデータを示すキャッシュラインCL、及び当該キャッシュラインのタグTAG値がキャッシュメモリ100に書き込まれる。また、当該キャッシュラインに関する状態情報(V、D)がキャッシュメモリ100に書き込まれる。複数のウェイ(WAY1〜WAYn)において、同一インデックス値を有するキャッシュラインCL、タグTAG、及び状態情報(V、D)が一つのセットSETを構成する。
【0058】
その後、キャッシュメモリ100に保存されたデータを読み取る場合、セットSETを示すインデックス情報により、多数のセットSETのうちのいずれか一つが選択される。一つのセットに含まれる多数のキャッシュラインCLについては、タグTAG値の比較動作に基づいて1本のキャッシュラインが選択される。
【0059】
図4Bは、
図1のキャッシュメモリにアクセスするためのアドレス構造の一例を示す図である。
【0060】
図4Bを参照すると、メモリアドレスMEM_ADDRは、タグTAGフィールド、インデックスINDEXフィールド、オフセットOFFSETフィールドを含む。インデックスINDEXフィールドの値を利用して多数のセットのうちのいずれか一つのセットが選択され、タグTAGフィールドの値を利用して多数のキャッシュラインのうちの一つが選択される。また、オフセットOFFSETフィールドの値を利用して、1本のキャッシュラインに関するバイト(byte)単位のアクセスも可能である。
【0061】
図5A及び
図5Bは、本発明の一実施形態によるキャッシュポリシー設定回路の多様な例を示すブロック図である。説明の便宜のために、メモリコントローラ(Memory Controller)200及びキャッシュロジック(Cache Logic)120を共に図示する。
【0062】
図5Aを参照すると、メモリコントローラ200は、外部装置、例えばホストシステムからのキャッシュポリシー変更要請REQ_PCがあると、キャッシュポリシー変更要請REQ_PCに対応するキャッシュポリシー設定コマンドCMD_CPを生成し、これをメモリ装置100aに提供する。一実施形態において、キャッシュポリシー変更要請REQ_PCは、メモリ装置100aの既設定のキャッシュポリシーを他のキャッシュポリシーに変更することを要求する信号を含む。一実施形態において、キャッシュポリシー変更要請REQ_PCは、ホストシステムのアクセス要請が有する特性(例えば、アクセス要請が書き込み中心要請であるか、或いは読み取り中心要請であるかなど)を示す信号を含む。他の実施形態において、メモリコントローラ200は、ホストシステムからのアクセス要請(書き込み要請又は読み取り要請)を分析し、アクセス要請の特性を基にキャッシュポリシー設定コマンドCMD_CPを生成する。
【0063】
キャッシュポリシー設定回路(Cache Policy Setting Circuit)130aは、複数の管理ポリシー131、ポリシーレジスタ(Policy Register)133、及びキャッシュポリシー選択器(Cache Policy Selector)132を含む。
【0064】
複数の管理ポリシー131は、アルゴリズム、回路、又はアルゴリズムを実行する回路として具現される。複数の管理ポリシー131は、キャッシュ動作に関する置換ポリシー、割り当てポリシー、書き込みポリシーなどを含む。
【0065】
キャッシュポリシー選択器132は、複数の管理ポリシー131のうちの少なくとも一つの管理ポリシーを選択する。キャッシュポリシー選択器132は、メモリコントローラ200からキャッシュポリシー設定コマンドCMD_CPが受信されると、キャッシュポリシー設定コマンドCMD_CPに応答して管理ポリシーを選択する。キャッシュポリシー選択器132は、ポリシーレジスタ133に、選択された管理ポリシーを示す値を提供する。
【0066】
ポリシーレジスタ133は、選択された管理ポリシーに関する情報を保存する。これにより、キャッシュポリシー設定回路130aは、ポリシーレジスタ133に保存された値を基に、複数の管理ポリシー131のうちの少なくとも一つの管理ポリシーに基づいてキャッシュポリシーを設定する。
【0067】
キャッシュロジック120は、キャッシュポリシーCPを基に、メモリ装置100aのキャッシュ動作を制御する。
【0068】
図5Bを参照すると、キャッシュポリシー設定回路(Cache Policy Setting Circuit)130bは、複数の管理ポリシー131、ポリシーレジスタ(Policy Register)133、キャッシュポリシー選択器(Cache Policy Selector)132、及びモニタ回路(Monitor Circuit)134を含む。
図5Aと比較すると、
図5Bのキャッシュポリシー設定回路130bはモニタ回路134を更に含む。
図5Bのキャッシュポリシー設定回路130bは、
図5Aのキャッシュポリシー設定回路130aの動作を遂行し、モニタ回路134のモニタリングによる動作を追加して遂行する。
【0069】
メモリコントローラ(Memory Controller)200は、外部装置、例えばホストシステムからアクセス要請REQ_ACCを受信すると、書き込みコマンド又は読み取りコマンドを含む動作コマンドCMD_OPを生成し、動作コマンドCMD_OPをメモリ装置100bに提供する。動作コマンドCMD_OPは、例えば書き込みコマンドCMD_WR又は読み取りコマンドCMD_RDを含む。
【0070】
モニタ回路134は、メモリ装置100bに要請された動作パターンを分析する。モニタ回路134は、受信された動作コマンドCMD_OP又はデータ入出力をモニタリングする。モニタ回路134は、モニタリング結果を基に、メモリ装置100bに要請された動作パターン又はワークロードを分析する。モニタ回路134は、分析結果をキャッシュポリシー選択器132に提供する。
【0071】
キャッシュポリシー選択器132は、分析結果を基に、既設定のキャッシュポリシーの変更の要否を決定する。キャッシュポリシーの変更が必要であると判断された場合、キャッシュポリシー選択器132は、分析結果を基に、複数の管理ポリシー131のうちの少なくとも一つの管理ポリシーを選択する。
【0072】
図6は、
図5Bのモニタ回路の一具現例を示すブロック図である。
【0073】
図6を参照すると、モニタ回路134aは、カウンタ(Counter)10及びパターン分析器(Pattern Analyzer)20を含む。カウンタ10は、受信された動作コマンドCMD_OPをカウンティングする。具体的に、動作コマンドCMD_OPは書き込みコマンドCMD_WR及び読み取りコマンドCMD_RDを含み、カウンタ10は書き込みコマンドCMD_WR及び読み取りコマンドCMD_RDをそれぞれカウンティングする。
【0074】
一実施形態において、カウンタ10は、予め設定された期間内に受信された書き込みコマンドCMD_WR及び読み取りコマンドCMD_RDをそれぞれカウンティングする。他の実施形態において、カウンタ10は、受信されたアクセス要請、即ち書き込みコマンドCMD_WR及び読み取りコマンドCMD_RDを、順に予め設定された回数だけカウンティングする。カウンティングされた回数のうち、書き込みコマンドCMD_WRのカウンティング回数と、読み取りコマンドCMD_RDのカウンティング回数とを区分する。
【0075】
パターン分析器20は、書き込みコマンドCMD_WR及び読み取りコマンドCMD_RDのカウンティング結果を基に動作パターンを分析する。パターン分析器20は、書き込みコマンドCMD_WRのカウンティング回数が予め設定された臨界値以上であるか、或いはアクセス要請のうちの書き込み要請の比、即ち書き込みコマンドCMD_WR及び読み取りコマンドCMD_RDのカウンティング回数に対する書き込みコマンドCMD_WRの比が臨界値以上である場合、書き込み要請が頻繁であると分析する。
【0076】
キャッシュポリシー設定回路132は、分析結果に基づいて、キャッシュミス発生時、複数のキャッシュラインのうちのクリーンキャッシュラインを優先的に犠牲キャッシュラインとして選択させる管理ポリシーを選択し、それによってキャッシュポリシーが変更される。
【0077】
以上、
図6を参照して本発明の一実施形態による
図5Bのモニタ回路の一具現例について説明した。しかし、それは一実施形態であって、モニタ回路の構成及び動作は、本発明の技術的思想を含む限り多様に変更され得る。
【0078】
図7A及び
図7Bは、本発明の一実施形態によるメモリ装置の動作を示す図である。
図7Aは、メモリ装置100がキャッシュヒットを判断する動作について説明する図であり、
図7Bは、キャッシュミス時、キャッシュラインの置換動作について説明する図である。
【0079】
図7Aを参照すると、メモリ装置100は、受信されたアクティブコマンド及びインデックスINDEXに基づいて、インデックスINDEXに対応するロウを活性化させ(Active)、インデックスINDEXに対応するロウに保存されたデータをロウバッファ150にローディングする。ローディングされたデータは、選択されたロウのキャッシュライン152、及びキャッシュラインに対応するメタデータ151を含む。メタデータ151は、ローディングされたキャッシュライン152に対応するタグTAGs及び状態情報(VBs、DBs)を含む。
【0080】
キャッシュロジック120は、メタデータ151のタグ(T1〜Tn)及び有効情報(V1〜Vn)を、受信されたタグTAGと比較してキャッシュヒットを判断する。キャッシュロジック(Cache Logic)120は、受信されたタグTAG及びマッチングされたタグに対応するキャッシュラインを選択する。選択されたキャッシュラインの少なくとも一部のデータDATA及びマッチングされたタグTAG_Sは、メモリ装置100の外部に出力される。
【0081】
図7Bを参照すると、キャッシュミス時、キャッシュロジック(Cache Logic)120は、キャッシュポリシー設定回路(Cache Policy Setting Circuit)130で設定されたキャッシュポリシーCPを基にキャッシュラインを置換する。キャッシュロジック120は、キャッシュポリシーCPのうちから置換ポリシーを基に犠牲キャッシュラインを選択する。ロウバッファ(Row Buffer)150はキャッシュラインを置換する。ロウバッファ150は、選択された犠牲キャッシュラインのデータDATA及び犠牲キャッシュラインに対応するタグTAG_Sをメモリ装置100の外部に出力し、新たなキャッシュラインのデータDATA及びタグTAG_Sを受信する。その後、メモリセルアレイ(Memory cell Array)110はプリチャージされる。ロウバッファ150にローディングされたキャッシュライン及びメタデータがインデックスINDEXに対応するロウに保存されることにより、インデックスINDEXに保存されたデータがアップデートされる。
【0082】
図8〜
図11は、本発明の一実施形態によるメモリ装置の動作の多様な例を示すフローチャートである。
【0083】
具体的に、
図8及び
図9は、本発明の一実施形態によるメモリ装置のキャッシュポリシー変更動作について説明するフローチャートである。
【0084】
図8を参照すると、メモリ装置100(
図2)は、予め設定されたキャッシュポリシーに基づいて複数のキャッシュラインを管理する(S110)。例えば、ポリシーレジスタ133(
図5A)にはデフォルト値がセッティングされ、複数の管理ポリシーのうちのデフォルト値による管理ポリシーが選択され、選択された管理ポリシーに基づいてキャッシュポリシーが設定される。
【0085】
メモリコントローラ200(
図2)からキャッシュポリシー設定コマンドが受信される(S120)。メモリ装置100は、キャッシュポリシー設定コマンドによるキャッシュポリシーが既設定のキャッシュポリシーと異なる場合、キャッシュポリシーを変更する(S130)。例えば、キャッシュポリシー選択器132(
図5A)は、複数の管理ポリシーのうちのキャッシュポリシー設定コマンドに対応する少なくとも一つの管理ポリシーを選択し、選択された少なくとも一つの管理ポリシーに関する情報を示す値を、ポリシーレジスタ133に提供する。
【0086】
メモリ装置100は、変更されたキャッシュポリシーに基づいて複数のキャッシュラインを管理する(S140)。
【0087】
図9を参照すると、メモリ装置100は、予め設定されたキャッシュポリシーに基づいて複数のキャッシュラインを管理する(S210)。メモリ装置100は、受信された書き込み及び読み取りコマンドをモニタリングして動作パターンを分析する(S220)。一実施形態において、メモリ装置100は、周期的に動作パターンを分析する。一実施形態において、メモリ装置100は、メモリコントローラ200から動作コマンドが受信され始めた後、所定期間(例えば、プリセット期間)の間動作パターンを分析する。
【0088】
メモリ装置100は、動作パターンを基に、キャッシュポリシー変更が必要であるか否かを判断する(S230)。メモリ装置100は、動作パターンによって、キャッシュ性能を向上させるキャッシュポリシーを決定し、既設定のキャッシュポリシーが動作パターンによって決定されたキャッシュポリシーに符合するか否かを判断する。
【0089】
メモリ装置100は、既設定のキャッシュポリシーが動作パターンによって決定されたキャッシュポリシーに符合しない場合、キャッシュポリシー変更が必要であると判断し、キャッシュポリシーを変更する(S240)。その後、メモリ装置100は、変更されたキャッシュポリシーに基づいて複数のキャッシュラインを管理する(S250)。
【0090】
図10は、本発明の一実施形態によるメモリ装置の動作の他の例を示すフローチャートである。具体的に、
図10は、読み取りコマンド受信時、メモリ装置のキャッシュヒットの判断動作及びキャッシュラインの置換動作を示す。
【0091】
図10を参照すると、メモリ装置100は、メモリコントローラ200(
図2)からアクティブコマンド(活性命令)及びインデックスを受信する(S310)。
【0092】
メモリ装置100は、メモリセルアレイから受信されたインデックスに対応するキャッシュライン、タグ、及び状態情報を読み取る(S320)。例えば、読み取られたデータはロウバッファにローディングされる。
【0093】
メモリ装置100は、メモリコントローラ200(
図2)から読み取りコマンド及びタグが受信されると(S330)、キャッシュヒットしたか否かを判断する(S340)。メモリ装置100は、ロウバッファにローディングされたタグを、受信されたタグと比較し、マッチングされるタグを探してマッチングされたタグに対応するキャッシュラインが有効である場合、キャッシュヒットと判断する。マッチングされるタグがないか、或いはマッチングされたタグに対応するキャッシュラインが無効状態である場合、キャッシュミスと判断する。
【0094】
キャッシュヒットである場合、メモリ装置100は、タグに対応するキャッシュラインを選択し、選択されたキャッシュラインのデータを出力する(S350)。また、メモリ装置100はマッチングされたタグを出力する。
【0095】
キャッシュミスである場合、メモリ装置100は、キャッシュラインを置換する(S370)。メモリ装置100は、設定されたキャッシュ置換ポリシーを基に犠牲キャッシュラインを選択する(S360)。犠牲キャッシュラインがダーティ状態である場合、犠牲キャッシュラインのデータをメインメモリに保存する。その後、メモリ装置100は、アクセス要請されたデータを含むキャッシュライン、及びキャッシュラインに対応するタグをメインメモリから読み取り、それを犠牲キャッシュラインが保存されたウェイに保存する。
【0096】
図11は、本発明の一実施形態による動作方法の他の例を示すフローチャートである。具体的に、
図11は、
図10の犠牲キャッシュラインを選択する段階の一具現例を更に詳細に示す。
【0097】
図11を参照すると、キャッシュミス時、メモリ装置100は、キャッシュ置換ポリシーを基に犠牲キャッシュラインを検索する(S361)。メモリ装置100は、ロウバッファにローディングされたキャッシュラインのうち、犠牲キャッシュラインに選択されるキャッシュラインを探す。例えば、キャッシュ置換ポリシーがクリーンキャッシュラインを優先的に置換キャッシュラインとして選択する管理ポリシーに基づいて設定された場合、ロウバッファにローディングされたキャッシュラインのうちからクリーンキャッシュラインを探す。
【0098】
メモリ装置100は、キャッシュ置換ポリシーに符合するキャッシュラインが存在するか否かを判断する(S362)。メモリ装置100は、キャッシュ置換ポリシーに符合するキャッシュラインが存在する場合、キャッシュラインを犠牲キャッシュラインとして選択し(S363)、キャッシュラインを置換する(S370)。
【0099】
キャッシュ置換ポリシーに符合するキャッシュラインが存在しない場合、メモリ装置100は、メモリコントローラに、犠牲キャッシュラインを探すことができなかったことを示すフェイル信号を伝送し(S364)、キャッシュ置換ポリシーを変更する(S365)。一実施形態において、メモリ装置100は、メモリコントローラからキャッシュポリシー設定コマンドを再受信し、それに基づいてキャッシュ置換ポリシーを変更する。一実施形態において、メモリ装置100は、デフォルトに設定された管理ポリシーを基にキャッシュ置換ポリシーを変更する。その後、メモリ装置100は、変更されたキャッシュ置換ポリシーを基に犠牲キャッシュラインを再検索し、キャッシュ置換ポリシーに符合するキャッシュラインを犠牲キャッシュラインとして選択する(S366)。
【0100】
図12は、本発明の一実施形態によるメモリシステムの動作を示すフローチャートである。
【0101】
図12を参照すると、メモリ装置100は、デフォルトキャッシュポリシーを設定する(S410)。例えば、ポリシーレジスタ133(
図5A)に、デフォルトで保存された値に対応する管理ポリシーに基づいてデフォルトキャッシュポリシーが設定される。
【0102】
メモリコントローラ200は、メモリ装置100に設定されたキャッシュポリシー、又はキャッシュポリシーに関する情報を要請する(S420)。メモリ装置100は、メモリコントローラ200の要請に応答し、設定されたキャッシュポリシー、又はキャッシュポリシーに関する情報をメモリコントローラ200に伝送する(S430)。キャッシュポリシーの変更が要請されると、メモリコントローラ200は、キャッシュポリシー設定コマンドをメモリ装置100に送信する(S440)。例えば、メモリコントローラ200は、ホストシステムから要請された動作に適するキャッシュポリシーがメモリ装置100に既設定のキャッシュポリシーと異なる場合、ホストシステムから要請されたキャッシュポリシーを設定するためのキャッシュポリシー設定コマンドを送信する。
【0103】
メモリ装置100は、受信されたキャッシュポリシー設定コマンドに基づいてキャッシュポリシーを変更する(S450)。一実施形態において、ホストシステムから要請された動作が一時的なものである場合、メモリコントローラ200は、一時的にキャッシュポリシーを変更し、ホストシステムから要請された動作が終わると、キャッシュポリシーをデフォルトキャッシュポリシーに再び変更する。
【0104】
図13は、本発明の一実施形態によるメモリ装置の他の例を示すブロック図である。
【0105】
図13は、
図3のメモリ装置100の他の実施例である。
図3のメモリ装置100及び
図13のメモリ装置100cにおいて、同一参照符号を有する構成要素の動作は同一であり、それに関する重複説明を省略する。
【0106】
図13を参照すると、メモリ装置100cは、第1メモリセルアレイ(Memori Cell Array 1)111及び第2メモリセルアレイ(Memori Cell Array 2)112を含む。また、メモリ装置100cは、第1メモリセルアレイ111に連結された第1ロウデコーダ(Row Decorder 1)141、第1ロウバッファ(Row Buffer 1)150_1、及び第1カラムデコーダ(Column Decorder 1)161を含み、第2メモリセルアレイ112に連結された第2ロウデコーダ(Row Decorder 2)142、第2ロウバッファ(Row Buffer 2)150_2、及び第2カラムデコーダ(column decorder 2)162を含む。
【0107】
第2メモリセルアレイ112には複数のキャッシュラインが保存され、第1メモリセルアレイ111には複数のキャッシュラインにそれぞれ対応する複数のタグTAGsが保存される。同一インデックスを有する複数のキャッシュライン(CL1〜CLn)及び複数のタグ(T1〜Tn)が同じセットに含まれる。第1ロウデコーダ141及び第2ロウデコーダ142は、同一ロウアドレスX−ADDRを受信し、それに応答して動作する。
【0108】
同一インデックスを有する複数のキャッシュライン(CL1〜CLn)及び複数のタグ(T1〜Tn)は、それぞれ第1ロウバッファ150_1及び第2ロウバッファ150_2にローディングされる。キャッシュロジック120は、第1ロウバッファ150_1にローディングされた複数のタグ(T1〜Tn)を、受信されたタグTAGと比較し、マッチングされたタグに対応するキャッシュラインの位置を示す第2カラムアドレスY−ADDR2を、第2カラムデコーダ162を介して第2ロウバッファ150_2に提供する。また、キャッシュロジック120は、マッチングされたタグの位置を示す第1カラムアドレスY−ADDR1を、第1カラムデコーダ161を介して第1ロウバッファ151に提供する。第1ロウバッファ150_1及び第2ロウバッファ150_2は、それぞれタグTAG及びデータDATAを出力する。また、第1ロウバッファ150_1及び第2ロウバッファ150_2は、受信されたタグTAG及びデータDATAを、第1カラムアドレスY−ADDR1及び第2カラムアドレスY−ADDR2がそれぞれ示す第1ロウバッファ150_1及び第2ロウバッファ150_2内の位置にローディングする。
【0109】
図14は、本発明の一実施形態によるメモリ装置の更に他の例を示すブロック図である。
【0110】
図14は、
図3のメモリ装置100の更に他の実施例である。
図3のメモリ装置100及び
図14のメモリ装置100dにおいて、同一参照符号を有する構成要素の動作は同一であり、それに関する重複説明を省略する。
【0111】
図14を参照すると、メモリ装置100dは複数のバンク(BANK0〜BANK3)を含む。複数のバンク(BANK0〜BANK3)は、それぞれメモリセルアレイ110(Memory Cell Array)、ロウデコーダ(Row DEC)140、ロウバッファ(Row Buffer)150、キャッシュロジック(Cache Logic)120、キャッシュポリシー設定回路(Cache Policy Setting Circuit)130、及びカラムデコーダ(Column Decorder)160を含む。それにより、複数のバンク(BANK0〜BANK3)の各々は、それぞれ異なるキャッシュポリシーに基づいてキャッシュ動作を遂行する。一方、複数のバンク(BANK0〜BANK3)のうちの一つを選択するために、メモリ装置100dはバンク制御ロジック(Bank Control Logic)195を含む。メモリ装置100dに受信されたインデックスINDEXのうちの一部のビットが、バンクアドレスB−ADDRとしてバンク制御ロジック195に提供される。バンク制御ロジック195は、バンクアドレスB−ADDRを基に、複数のバンク(BANK0〜BANK3)のうちの少なくとも一つのバンクを選択する。本実施形態では、4つのバンク(BANK0〜BANK3)だけを図示しているが、それに限定されるものではない。
【0112】
図15は、本発明の一実施形態によるメモリモジュールの一例を示す図である。
【0113】
図15を参照すると、メモリモジュール3000は、複数の第1メモリ3100、少なくとも一つの第2メモリ3200、レジスタ(RCD)3300、及びタップ3400を含む。メモリモジュールは、RDIMM(registered dual in−line module)である。
図15では、9個のメモリ(3100、3200)を図示しているが、それに制限されるものではない。メモリ(3100、3200)の数は、メモリモジュール3000の構造及びI/O(input/output)構成(configuration)によって決定される。
【0114】
複数の第1メモリ3100は複数のキャッシュラインCLsを保存する。複数のキャッシュラインCLsは、それぞれ複数の第1メモリ3100に分散して保存される。即ち、1本のキャッシュラインのビットが複数の第1メモリ3100に分散して保存され、一つの第1メモリ3100には複数のキャッシュラインの一部のビットが保存される。
【0115】
第2メモリ3200は、複数のキャッシュラインCLsに対応する複数のタグTAGsを保存する。また、第2メモリ3200はキャッシュロジックCLGC及びキャッシュポリシー設定回路CPSCを含む。キャッシュポリシー設定回路CPSCは、上述の実施形態によって、メモリモジュール3000のキャッシュポリシーを設定し、またキャッシュポリシーを変更する。キャッシュロジックCLGCは、アドレスADDRに含まれるタグを基にキャッシュヒットを判断し、キャッシュヒット時、マッチングされたタグに対応するキャッシュラインが保存されたウェイ情報WIFOをレジスタ3300に提供する。キャッシュロジックCLGCは、キャッシュミス時、キャッシュポリシーに基づいて犠牲キャッシュラインを選択し、犠牲キャッシュラインが保存されたウェイ情報WIFOをレジスタ3300に提供する。
【0116】
レジスタ3300は、メモリモジュール3000の全般的な動作を制御する。レジスタ3300は、クロックCLK、コマンドCMD、及びアドレスADDRを受信する。レジスタ3300は、複数の第1メモリ3100及び第2メモリ3200にクロックCLK、ロウアドレスX−ADDR、及び制御信号CTRLを提供する。また、レジスタ3300は、第2メモリ3200から受信されたウェイ情報WIFOを基にカラムアドレスY−ADDRを生成し、それを複数の第1メモリ3100及び第2メモリ3200に提供する。
【0117】
複数の第1メモリ3100は、レジスタ3300から提供されたロウアドレスX−ADDRに対応するロウに保存されたキャッシュラインCLsを内部のロウバッファにローディングし、ロウバッファにローディングされたキャッシュラインCLsのうちのカラムアドレスY−ADDRに対応するキャッシュラインのデータDATAを出力する。
【0118】
第2メモリ3200は、ロウアドレスX−ADDRに対応するロウに保存されたタグTAGsを内部のロウバッファにローディングし、ロウバッファにローディングされたタグTAGsのうちのカラムアドレスY−ADDRに対応するタグTAGを出力する。
【0119】
メモリモジュール3000基板のエッジ部にはタップ3400が形成される。タップ3400はタップピンとも呼ばれるコネクティング端子を複数有する。タップ3400には、コマンド/アドレス信号入力ピン、クロック入力ピン、データ入出力信号ピンが割り当てられる。
【0120】
以下、
図16及び
図17を参照し、
図15のメモリモジュールの動作について更に詳細に説明する。
【0121】
図16及び
図17は、
図15のメモリモジュールの動作を示すフローチャートである。
【0122】
図16を参照すると、レジスタ3300がアクティブコマンド及びインデックスを受信する(S510)。レジスタ3300が、インデックスによるロウアドレスX−ADDRを複数の第1メモリ3100及び少なくとも一つの第2メモリ3200に伝送する(S520)。複数の第1メモリ及び少なくとも一つの第2メモリ3200は、それぞれロウアドレスX−ADDRが示すロウのデータを内部ロウバッファにローディングする(S530)。複数の第1メモリ3100は複数のキャッシュラインをロウバッファにローディングし、第2メモリ3200は複数のキャッシュラインに対応するタグをロウバッファにローディングする。
【0123】
その後、第2メモリ3200が読み取りコマンド及びタグを受信する(S540)。一実施形態において、第2メモリ3200がコマンド/アドレス信号入力ピンから直接読み取りコマンド及びタグを受信する。他の実施形態において、レジスタ3300が、読み取りコマンド及びタグを受信し、受信された読み取りコマンド及びタグを第2メモリ3200に提供する。
【0124】
第2メモリ3200は、ロウバッファにローディングされたタグと受信されたタグとを比較してキャッシュヒットを判断する(S550)。キャッシュヒット時、第2メモリ3200は、マッチングされたタグのウェイ情報WIFO(又は、マッチングされたタグに該当するキャッシュラインのウェイ情報WIFO)をレジスタ3300に提供する(S560)。
【0125】
レジスタ3300は、ウェイ情報WIFOに対応するカラムアドレスY−ADDRを、複数の第1メモリ3100及び第2メモリ3200にそれぞれ提供する(S570)。
【0126】
複数の第1メモリ3100及び第2メモリ3200は、ロウバッファにローディングされたデータのうち、カラムアドレスに対応するデータを出力する(S580)。複数の第1メモリ3100は選択されたキャッシュラインのデータDATAを出力し、第2メモリ3200は選択されたキャッシュラインに対応するタグTAGを出力する。
【0127】
図17を参照すると、キャッシュミス時、第2メモリ3200は、設定されたキャッシュ置換ポリシーに基づいて犠牲キャッシュラインを選択し(S610)、犠牲キャッシュラインのウェイ情報WIFOをレジスタ3300に提供する(S620)。
【0128】
レジスタ3300が、ウェイ情報WIFOに対応するカラムアドレスY−ADDRを複数の第1メモリ3100及び第2メモリ3200にそれぞれ提供する(S630)。犠牲キャッシュラインがダーティ状態である場合、キャッシュラインをメインメモリに保存しなければならないため、複数の第1メモリ3100及び第2メモリ3200は、それぞれロウバッファにローディングされたデータのうちのカラムアドレスに対応するデータ、即ち犠牲キャッシュラインのデータ及びタグを出力する(S640)。出力された犠牲キャッシュラインのデータ及びタグはメモリコントローラ又はメインメモリに提供される。
【0129】
その後、複数の第1メモリ3100及び第2メモリ3200は、それぞれ受信されたデータ又はタグを、ロウバッファのうちのカラムアドレスY−ADDRに対応する領域にローディングし(650)、ロウバッファのデータをインデックスに対応するロウに保存することにより、キャッシュラインを置換する(S660)。
【0130】
図18は、本発明の一実施形態によるメモリモジュールの他の例を示す図である。
図18は、
図15のメモリモジュール3000の他の実施例である。
【0131】
複数の第1メモリ3100の動作は、
図15のメモリモジュール3000の複数の第1メモリ3100の動作と同一であり、重複説明を省略する。
【0132】
メモリモジュール3000aは少なくとも一つの第2メモリ3200aを含み、第2メモリ3200aは、複数のタグTAGsを保存し、キャッシュロジックCLGC、キャッシュポリシー設定回路CPSC、及びアドレス変換回路ACCを含む。アドレス変換回路ACCは、
図15のレジスタ3300の機能の一部を遂行する。アドレス変換回路ACCは、アドレス信号ADDRを受信し、アドレス信号ADDRに含まれるインデックスを基にロウアドレスX−ADDRを生成する。また、アドレス変換回路ACCは、選択されたキャッシュラインのウェイ情報を基にカラムアドレスY−ADDRを生成する。第2メモリ3200aは、ロウアドレスX−ADDR、カラムアドレスY−ADDR、クロックCLK、及び制御信号CTRLを複数の第1メモリ3100に提供する。
【0133】
図19は、本発明の一実施形態によるメモリモジュールの更に他の例を示す図である。
【0134】
図19を参照すると、メモリモジュール4000は複数のメモリ4100を含む。メモリモジュール4000はLRDIMM(load reduced dual in−line module)である。
図19では、メモリモジュール4000が9個のメモリ4100を含むように図示しているが、それに制限されるものではない。メモリ4100の数はメモリモジュール4000の構造及びI/O構成(configuration)によって決定される。
【0135】
メモリ4100は、それぞれ複数のキャッシュラインCLs、及び複数のキャッシュラインCLsに対応する複数のタグTAGsを保存する。メモリ4100は、それぞれキャッシュロジックCLGC及びキャッシュポリシー設定回路CPSCを含む。
【0136】
一実施形態において、複数のキャッシュラインCLs及び複数のタグTAGsは、それぞれ複数のメモリ4100に分散して保存される。例えば、1本のキャッシュライン及び一つのタグのビットが複数のメモリ4100に分散して保存され、一つのメモリ4100には、複数のキャッシュラインの一部のビット及び複数のタグの一部のビットが保存される。複数のメモリ4100は、同一のインデックス及びタグを受信して同一の動作を行う。
【0137】
他の実施形態において、それぞれ異なるキャッシュライン及びタグTAGsが複数のメモリ4100に保存される。即ち、
図2のメモリ装置100が複数のメモリ4100に適用され、複数のメモリ4100はそれぞれ独立して動作する。
【0138】
以上、
図15〜
図19を参照して本発明の一実施形態によるメモリモジュールについて説明した。しかし、それは、一実施形態であって、メモリモジュールの構造及び動作は、本発明の技術的思想を含む限り多様に変更される。
【0139】
図20〜
図22は、本発明の一実施形態によるコンピュータシステムの多様な例を示すブロック図である。
【0140】
図20を参照すると、コンピュータシステム5100は、CPU5010、第1メモリシステム5020、第2メモリシステム5030、ユーザインターフェース(User Interfece)5040、モデム(Modem)5050、及びバス5060を含む。それら以外にも、コンピュータシステム5100は、多様な構成要素を更に含み得る。第1メモリシステム5020、第2メモリシステム5030、ユーザインターフェース5040、及びモデム5050は、バス5060に電気的に接続され、バス5060を介してデータ及び信号を送受信する。
【0141】
CPU5010は、コンピュータシステム5100の演算、データ処理、及び制御を行う。
【0142】
第1メモリシステム5020は、第1メモリコントローラ(Memory Controller 1)5021及びキャッシュメモリ5022を含む。
図2のメモリシステム1500が第1メモリシステム5020に適用される。第1メモリコントローラ5021は、コンピュータシステム5100の他の構成要素、例えばCPU5010、ユーザインターフェース5040、又はモデム5050とキャッシュメモリ5022とのインターフェースを提供する。
【0143】
図2〜
図19を参照して説明したメモリ装置又はメモリモジュールがキャッシュメモリ5022に適用される。キャッシュメモリ5022は、キャッシュロジックCLGC及びキャッシュポリシー設定回路CPSCを含む。一実施形態において、キャッシュメモリ5022は、ページ基盤でデータを書き込んだり読み取ったりする。一実施形態において、キャッシュメモリ5022はDRAMメモリセルを含む。
【0144】
第2メモリシステム5030は、第2メモリコントローラ(Memory Controller 2)5031及びメインメモリ(Main Memory)5032を含む。第2メモリコントローラ5031は、コンピュータシステム5100の他の構成要素とメインメモリ5032とのインターフェースを提供する。メインメモリ5032は、キャッシュメモリ5022と同種又は異種のメモリセルアレイを含む。メインメモリ5032の動作速度はキャッシュメモリ5022の動作速度以下である。一実施形態において、メインメモリ5032は揮発性メモリセルを含む。
【0145】
ユーザインターフェース(User Interface)5040は、コンピュータシステム5100の外部と信号を交換する。例えば、ユーザインターフェース5040は、キーボード、キーパッド、ボタン、タッチパネル、タッチスクリーン、マイク、振動センサのようなユーザ入力インターフェースを含む。ユーザインターフェース5040は、LCD(liquid crystal display)、OLED(organic light emitting diode)、AMOLED(active matrix OLED)、LED(light emitting diode)、スピーカ、モータのようなユーザ出力インターフェースを含む。
【0146】
モデム(Modem)5050は、CPU5010の制御によって外部装置と無線通信又は有線通信を行う。モデム5050は、Wi−Fi(wireless fidelity)、CDMA(登録商標)(code division multiple access)、GSM(登録商標)(global system for mobile communication)、LTE(long−term evolution)、ブルートゥース(登録商標)(Bluetooth(登録商標))、NFC(near field communication)のような多様な通信標準のうちの少なくとも一つに基づいて通信を行う。
【0147】
図21を参照すると、コンピュータシステム5200は、CPU5010、メモリシステム5070、ユーザインターフェース(User Interface)5040、モデム(Modem)5050、及びバス5060を含む。
【0148】
メモリシステム5070は、メモリコントローラ(Memory Controller)5071、キャッシュメモリ5072、及びメインメモリ(Main Memory)5073を含む。キャッシュメモリ5072は、
図2〜
図19を参照して説明したメモリ装置又はメモリモジュールを含む。
図21に示すように、メモリコントローラ5071は、キャッシュメモリ5072及びメインメモリ5073に対するインターフェースを提供し、キャッシュメモリ5072及びメインメモリ5073を制御する。このように、キャッシュメモリ5072及びメインメモリ5073は同一メモリコントローラによって制御される。
【0149】
図22を参照すると、コンピュータシステム5300は、CPU5010、メモリシステム5080、ユーザインターフェース(User Interface)5040、モデム(Modem)5050、及びバス5060を含む。メモリシステム5080は、メモリコントローラ(Memory Controller)5081、キャッシュメモリ5082、及びメインメモリ(Main Memory)5083を含む。キャッシュメモリ5082は、
図2〜
図19を参照して説明したメモリ装置又はメモリモジュールを含む。キャッシュメモリ5082及びメインメモリ5083は、同じメモリコントローラ5081によって制御される。また、キャッシュメモリ5082及びメインメモリ5083は、図示するように、同一チャネル、即ち同一データ伝送ラインに連結される。それにより、キャッシュラインの置換などのように、キャッシュメモリ5082とメインメモリ5083との間でデータが送受信されるとき、データは、メモリコントローラ5081を経ずに、キャッシュメモリ5082とメインメモリ5083との間で直接的に送受信される。
【0150】
図23は、本発明の一実施形態によるモバイルシステムを示すブロック図である。
【0151】
図23を参照すると、モバイルシステム6000は、アプリケーションプロセッサ(Application Processor)6100、キャッシュメモリ(Cache Memory)6200、メインメモリ(Main Memory)6300、ディスプレイ(Display)6400、及びモデム(Modem)6500を含む。
【0152】
アプリケーションプロセッサ6100は、モバイルシステム6000で実行が要求される動作を制御する。アプリケーションプロセッサ6100は、中央処理装置(CPU)6111、デジタル信号処理器(DSP)6112、システムメモリ(System Memory)6113、メモリコントローラ(Memory Controller)6114、ディスプレイコントローラ(Display Controller)6115、通信インターフェース(Communication Interface)6116、及びそれらをそれぞれ電気的に接続するバスを含む。一実施形態において、アプリケーションプロセッサ6100は、システムオンチップ(SoC(system on chip)によって具現される。
【0153】
CPU6111は、アプリケーションプロセッサ6100の演算、データ処理、及び制御を行う。DSP6115は、高速でデジタル信号処理を行い、アプリケーションプロセッサ6000の演算及びデータ処理のうちの一部を行う。
【0154】
システムメモリ6113は、CPU6111が動作を遂行するために要求されるデータをロード(load)する。システムメモリ6113は、SRAM(static random access memory)、DRAM(dynamic random access memory)、MRAM(magnetoresistive random access memory)、FeRAM(ferroelectric random access memory)、及びReRAM(resistive random access memory)などによって具現される。
【0155】
メモリコントローラ6114は、アプリケーションプロセッサ6100と、キャッシュメモリ6200及びメインメモリ6300とのインターフェースを提供する。メインメモリ6300は、アプリケーションプロセッサ6100の動作メモリとして使用される。例えば、アプリケーションプロセッサ6100から、アプリケーション(application)の実行によるデータがメインメモリ6300にロードされる。一実施形態において、メインメモリ6300は揮発性メモリである。
【0156】
キャッシュメモリ6200は、
図2〜
図19を参照して説明したメモリ装置又はメモリモジュールを含む。キャッシュメモリ6200は、使用環境に合うように動的にキャッシュポリシーを変更し、それにより、モバイルシステム6000の性能及びメインメモリ6300の信頼性を向上させることができる。
【0157】
図23において、メモリコントローラ6114がメインメモリ6300及びキャッシュメモリ6200に接続されるように図示しているが、それに制限されるものではない。アプリケーションプロセッサ6100は、キャッシュメモリ6200を制御する別途のメモリコントローラを更に含む。
【0158】
ディスプレイコントローラ6115は、アプリケーションプロセッサ6100とディスプレイ6400とのインターフェースを提供する。ディスプレイ6400は、タッチスクリーン、LCD、OLED、AMOLED、LEDなどの平板ディスプレイ又はフレキシブルディスプレイを含む。
【0159】
通信インターフェース6116は、アプリケーションプロセッサ6100とモデム6500とのインターフェースを提供する。モデム6500は、Wi−Fi、LTE(long−term evolution)、ブルートゥース(登録商標)(Bluetooth(登録商標))、RFID(radio frequency identification)、赤外線通信(IrDA:infrared data association)、UWB(ultra wideband)、ZigBee(登録商標)、WFD(Wi−Fi direct)、NFC(near field communication)などの多様な通信プロトコル(protocol)のうちの少なくとも一つ以上を利用した通信を支援する。アプリケーションプロセッサ6100は、通信インターフェース6116及びモデム6500を介して他の電子装置又は他のシステムと通信する。
【0160】
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。