JP2004030517A - メモリ制御方法 - Google Patents
メモリ制御方法 Download PDFInfo
- Publication number
- JP2004030517A JP2004030517A JP2002189513A JP2002189513A JP2004030517A JP 2004030517 A JP2004030517 A JP 2004030517A JP 2002189513 A JP2002189513 A JP 2002189513A JP 2002189513 A JP2002189513 A JP 2002189513A JP 2004030517 A JP2004030517 A JP 2004030517A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- address
- cache memory
- cache
- data
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/304—In main memory subsystem
- G06F2212/3042—In main memory subsystem being part of a memory device, e.g. cache DRAM
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2245—Memory devices with an internal cache buffer
-
- 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)
- Memory System Of A Hierarchy Structure (AREA)
- Dram (AREA)
- Memory System (AREA)
Abstract
【解決手段】ヒット判定対象とするメモリとヒット判定対象としない予備メモリとに区別し、ミスが生じた予備メモリにデータを転送した後、予備メモリをヒット対象メモリへ、ミスが生じたメモリを予備メモリへ切り替えることのできるメモリ制御装置、及びデータ処理装置。
【効果】本発明によって、ヒット判定対象とするキャッシュメモリとヒット判定対象としない予備キャッシュメモリに区別することにより、またキャッシュメモリとセンスアンプをキャッシュメモリとして利用することによりキャッシュメモリ内蔵メモリを高速、かつ低電力に動作させることができる。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、メモリ制御方法に関し、特にCPU等のメモリ(DRAM等)をアクセスする装置と、これらの装置からのアクセスを受けメモリ(DRAM等)を制御するメモリ制御回路と、メモリ(DRAM等)とから構成される情報処理装置に関する。
【0002】
【従来の技術】
従来のDRAMには、複数のDRAMメモリバンクとキャッシュメモリSRAMから構成されるDRAM、つまりキャッシュメモリ内蔵DRAMがあり、[文献1]特開平11−86532で開示されている。
また、従来のDRAMの制御方法には、DRAMのセンスアンプをキャッシュメモリとして機能させる方法が[文献2]特開平2000−21160で開示されている。
【0003】
【発明が解決しようとする課題】
本願発明者は、本願に先だって、キャッシュメモリを内蔵するDRAM及びその制御方法について検討を行った。
情報処理装置はCPUなどのDRAMをアクセスする装置と、DRAMを制御する制御装置とDRAMから構成されている。
DRAMには、CPUで実行されるプログラム、CPUで処理されるデータ、などを格納する。
【0004】
図2にメモリ容量が128Mbit、I/O幅が8bitのSDRAMを8個用いたメモリモジュールMEMを示す。
SDRAMは2つのメモリバンクB0およびB1とキャッシュメモリ部CACHEから構成される。各メモリバンクは、ロウデコーダX−DEC、セグメントデコーダーSG−DEC、メモリセルアレイARYとセンスアンプSAから構成される。センスアンプSAは8192bitの1ページ分のデータを保持することが出来る。
キャッシュメモリ部CACHEはキャッシュデコーダーCH−DEC、カラムデコーダーY−DEC、CH15からCH0の16個のキャッシュメモリから構成される。1つのキャッシュメモリは2048bitのデータを保持できる。
【0005】
図3を用いてSDRAMからデータを読み出し方法について説明をする。
バンクアクティブ命令ACとバンクアドレスBK0、ロウアドレスR0によって、メモリバンクとメモリバンク内のワード線が選択され、メモリセルアレイARYの1ページ分の8192bitのデータがセンスアンプSAへ転送、保持される。
【0006】
次に、プリフェッチ命令PFとバンクアドレスBK0、セグメントアドレスSG0、キャッシュアドレスCH0によって、選択されたバンクのセンスアンプSAに保持されたデータのうち、セグメントアドレスSG0で指定された、2048ビットのデータが、キャッシュアドレスCH0で指定されたキャッシュへ転送、保持される。
【0007】
次に、リード命令RDとキャッシュアドレスCH0、カラムアドレスC0で指定されたキャッシュに保持されデータが8bitずつ読み出される。この時の、クロック周期をTとすると、読出しレイテンシは6Tとなる。
最後にプリチャージ命令PREおよびバンクアドレスBK0によって指定されたメモリバンク内のワード線を非選択にし、センスアンプSAを非活性にする。
【0008】
プリチャージ命令PREによって、センスアンプSAに保持されたデータをは消えてしまうが、キャッシュ内のデータは保持されたままとなる。
キャッシュメモリ内にデータが保持された状態で、CPUがSDRAMへアクセスを行い、そのアクセスにおける、バンクアドレス、ロウアドレス、セグメントアドレスが、キャッシュ内に保持されたデータの、それぞれのアドレスと等しい場合、キャッシュから直接データを短時間で読み出すことが出来る。
【0009】
図4にSDRAMのキャッシュメモリCH0への4バーストのデータの書き込み方法を示す。
ライト命令WTとキャッシュアドレスCH0、カラムアドレスC0によって指定されたキャッシュメモリCH0内のアドレスC0、C0+1、C0+2、C0+3へ順に8bitずつデータが書きこまれる。この時の、書き込みレイテンシは0Tとなる。
一度、キャッシュCH0にデータ書きこまれると、メモリセルアレイARYとキャッシュメモリCH0とのデータの同一性は保たれなくなる。同一性を保つためには、キャッシュメモリCH0のデータをメモリセルアレイARYへ書き戻す必要がある。
【0010】
図5にSDRAMのキャッシュメモリからメモリセルアレイへのデータの書き戻し方法を示す。
リストア命令RST、バンクアドレスBK0、キャッシュアドレスCH0、セグメントアドレスSG0によって、メモリセルアレイARYへ書き込むデータが準備される。次の、バンクアクティブ命令ACとバンクアドレスBK0、ロウアドレスR0によって、指定されたメモリバンク内のワード線が選択され、センスアンプSAが活性化され、データがセンスアンプSAを通じてメモリセルアレイへ書きこまれる。
最後にプリチャージ命令PREおよびバンクアドレスBK0によって指定されたメモリバンク内のワード線を非選択にし、センスアンプSAを非活性にする。
【0011】
図6に、一度、新しいデータが書きこまれたキャッシュメモリCH0に対して読出しを行った際、CH0に読み出すべきデータが存在しない場合の読出し動作について示す。キャッシュメモリCH0だけに新しいデータが書き込まれると、キャッシュメモリCH0とメモリセルアレイARYとの間にはデータの同一性が失われる。そこで先ず、キャッシュメモリCH0とメモリセルアレイのデータの同一性を保つために、キャッシュメモリCH0からメモリセルアレイへデータを書き戻す。
【0012】
キャッシュメモリCH0からメモリセルアレイへデータを書き戻すために、リストア命令RST、バンクアドレスBK0、キャッシュアドレスCH0、セグメントアドレスSG0によって、メモリセルアレイARYへ書き込むデータが準備される。次の、バンクアクティブ命令ACとバンクアドレスBK0、ロウアドレスR0によって、指定されたメモリバンク内のワード線が選択され、センスアンプSAが活性化され、データがセンスアンプSAを通じてメモリセルアレイへ書きこまれる。
最後にプリチャージ命令PREおよびバンクアドレスBK0によって指定されたメモリバンク内のワード線を非選択にし、センスアンプSAを非活性にする。
【0013】
次に、読み出すべきデータの読出しを行う。
データを読み出すために、バンクアクティブ命令ACとバンクアドレスBK0、ロウアドレスR1によって、メモリバンクと、メモリバンク内のワード線が選択され、メモリセルアレイ1ページ分の8192bitのデータがセンスアンプへ転送、保持される。
次に、プリフェッチ命令PFとバンクアドレスBK0、セグメントアドレスSG0、キャッシュアドレスCH0によって、選択されたバンクのセンスアンプに保持されたデータのうち、セグメントアドレスで指定された、2048ビットのデータが、キャッシュアドレスで指定されたキャッシュメモリCH0へ転送、保持される。
次に、リード命令RD、キャッシュアドレスCH0及びカラムアドレスC0によって、指定されたキャッシュメモリCH0に保持されデータが読み出される。
【0014】
最後にプリチャージ命令PREおよびバンクアドレスBK0によってメモリバンク内のワード線を非選択にし、センスアンプを非活性にする。
このように、キャッシュメモリCH0に所望のデータが存在せず、書き戻しを必要とする場合、データの読出しに14サイクルの時間がかかるため、読出し速度が遅くなってしまい、さらに消費電力も大きくなってしまうという問題がある。
そこで、本発明の目的の1つは、DRAMの読み出し及び書込みを高速化および低電力化することである。
【0015】
【課題を解決するための手段】
本願発明の代表的な手段を示せば、以下の通りである。
<キャッシュメモリ切り替え制御>
キャッシュメモリに対してヒット判定対象とするキャッシュメモリとヒット判定対象としない予備のキャッシュメモリに区別するか、あるいは、キャッシュメモリを内蔵したDRAMへさらに、ヒット判定対象としない予備のキャッシュメモリを追加し、外部から読み出し要求がDRAMへ生じ、キャッシュメモリに対してミスが生じなおかつ、書き戻しが必要な場合、最初に、予備メモリにデータを転送し、読み出す。その後、ミスしたキャッシュメモリのデータをDRAMアレイに書き戻す。さらに、データ転送された予備メモリをヒット判定対象のキャッシュメモリへ、ミス生じたキャッシュメモリを予備メモリに切り替える。
<キャッシュメモリとセンスアンプキャッシュ同時利用>
DRAMに内蔵されたキャッシュメモリと各バンクに設けられたセンスアンプの双方をキャッシュメモリとして利用することである。
センスアンプをキャッシュメモリとして利用するには、センスアンプを活性化させたままにしデータを保持させておけば良い。
【0016】
【発明の実施の形態】
<実施例1>
図1は本願を適用した情報処理装置の基本構成図である。
これは、中央演算装置CPUと1次キャッシュメモリL1Cによって構成される情報処理装置MSOと、複数のキャッシュ内蔵DRAMから構成されるDRAMモジュールMEMと、DRAMモジュールMEMを制御するメモリ制御ユニットMCUと、デジタルシグナルプロセッサDSP、PCIブリッジ回路BRGで構成される。そして、この情報処理装置はクロックCLKに同期して動作する。特に限定はしないが、情報処理装置MSOとメモリ制御ユニットMCUは同一基板上に形成され、情報処理装置SMS0を形作ることも可能である。
【0017】
PCIブリッジ回路BRGはPCIインターフェースを備えており、メモリ制御ユニットMCUは、情報処理装置MS0、デジタルシグナルプロセッサDSP、PCIブリッジ回路BRGからのアクセス要求をうけて、DRAMモジュールMEMを制御する。
DRAMモジュールMEMは第0メモリM0、第1メモリM1、第2メモリM2、第3メモリM3、第4メモリM4、第5メモリM5、第6メモリM6、第7メモリM7の8つのメモリで構成されている。前記メモリは、特に制限はないが、16個のキャッシュメモリおよび2つのメモリバンクから構成され、各メモリバンクにはセンスアンプが設けられているSDRAMである。
前記情報処理装置MSOは、特に制限はないが、32ビットのアドレス信号によりアドレス空間を管理することができ、前記DRAMモジュールMEMは、前記情報処理装置MSOに管理されている。
【0018】
前記情報処理装置の動作を説明する。
MS0、DSP、BRGからの読み出し要求がRQ0、RQ1、RQ2を通じてメモリ制御ユニットMCUに入力する。メモリ制御ユニットMCUは3つの読み出し要求のうちCPUからの要求を許可すると、CPUは命令信号ICOより読み出し命令とアドレス信号IADよりアドレスをメモリ制御ユニットMCUへ出力する。メモリ制御ユニットMCUは、情報処理装置MSOからの読出し命令およびアドレスを受け取った後、メモリ命令信号MC0から読み出し命令を、メモリアドレス信号MA0からアドレスをDRAMモジュール(MEM)へ出力すると、DRAMモジュール(MEM)のMDQからデータが出力されDQを通じてMSOへ転送される。
【0019】
図7は本発明のメモリ制御回路(MCU)の構成例である。
この回路は、DRAMへのアクセス要求を調停するアクセス調停回路ARBとメモリ制御回路CNTから構成される。
前記アクセス調停回路(ARB)はMSO、DSP、BRGからのアクセス要求RQ0、RQ1、RQ2を受け付け、アクセス調停回路(ARB)で設定した優先順位に従ってそれぞれのアクセスを許可する。
メモリ制御回路CNTは、アドレス変換回路AT、ヒット判定回路HJおよびアドレス・コマンド発生回路ACGから構成される。
【0020】
アドレス変換回路ATは、許可されたアクセスのアドレスをDRAMのバンク、ロウ、セグメント、カラム、キャッシュアドレスへ変換する。
ヒット判定回路HJは、アドレス変換回路ATで変換されたアドレスがDRAM内部のキャッシュメモリへヒットしたかどうかのヒット/ミス判定と、ヒット判定を行ったDRAM内部キャッシュメモリ(CH0からCH15)とDRAMのメモリセルアレイ(ARY)との間にデータの同一性があるかのクリーン/ダーティ判定を行う。クリーンの場合、同一性があり、ダーティの場合は同一性が無いことを意味する。
アドレス・コマンド発生回路ACGはヒット判定回路HJの判定結果によってDRAMモジュールMEMを制御するメモリコマンドMC0から、メモリアドレスMAD0を出力し、入出力信号MDQを通じてデータ転送を行う。
【0021】
図8は前記アドレス変換回路ATでのアドレス変換の一例である。
IAD[31:0]はメモリ制御回路CNTに入力するアドレスである。
LIN0からLIN4はL1キャッシュL1Cのラインサイズ、IND0からIND7はL1キャッシュL1Cのインデックスアドレス、TAG0からTAG15はL1キャッシュL1Cのタグアドレスである。
IAD[4:0]はLIN0からLIN4に対応し、IAD[12:5]はIND0からIND7は、に対応し、IAD[31:13]はTAG18からTAG0に対応しており、メモリ制御回路CNTに入力される。
アドレス変換回路ATによって、IAD[31:0]は、DRAMモジュール(MEM)のカラムアドレス(TCOL[0]〜TCOL[7])、セグメントアドレス(SGAD[0]〜SGAD[1])、バンクアドレス(BANK)、ロウアドレス(TRAD[0]〜TRAD[12])へ変換される。
IAD[5:12]はカラムアドレスTCOL[0]からTCOL[7]へIAD[13]はバンクアドレスBANK、IAD[14:15]はセグメントアドレスSGAD[0]からSGAD[1]へ、IAD[16:31]はロウアドレスTRAD[0]からTRAD[12]へ変換される。
【0022】
図9はメモリ制御回路CNTによる、DRAMに内蔵されているキャッシュメモリの割り当て方法の一例を示す。
キャッシュメモリ内蔵DRAMのバンク0(B0)内のロウアドレスTRAD[12]がLowの領域にCH0、CH1、CH2、CH3の4つのキャッシュメモリが割り当てられており、
バンク0(B0)内のロウアドレスTRAD[12]がHighの領域にCH4、CH5、CH6、CH7の4つのキャッシュメモリが割り当てられており、
バンク1(B1)内のロウアドレスTRAD[12]がLowの領域にCH8、CH9、CH10、CH11の4つのキャッシュメモリが割り当てられており、
バンク1(B1)内のロウアドレスTRAD[12]がHighの領域、CH12、CH13、CH14、CH15の4つのキャッシュメモリが割り当てられている。
このような、キャッシュメモリの割り当てにより、バンク0内のデータの一部はキャッシュメモリCH0からCH7に保持することができ、バンク1(B1)内のデータの一部はキャッシュメモリCH8からCH15に保持することができる。
尚、CH0、CH1、CH2、CH3は同じ階層のキャッシュメモリであり、メモリバンクに対して重複したアドレスが割り当てられていない。CH4乃至CH7、CH8乃至CH11、CH12乃至CH15もそれぞれ同様である。
【0023】
図10は前記ヒット判定回路回路HJがヒット判定をおこなうために保持しているDRAMアドレス比較情報の一例を示している。
BANKはバンクアドレス、TRAD[12:0]はロウアドレス、SGADはセグメントアドレス、CHADはキャッシュメモリアドレス、DTはダーティビット、VLはバリッドビットを示す。
【0024】
キャッシュメモリアドレスCHADの値で、0はキャッシュメモリCH0に対応しているため、キャッシュメモリCH0には、バンクアドレスが0で、ロウアドレスTRAD[12]が0で、ロウアドレスTRAD[11:0]が1で、セグメントアドレスが1のデータが保持されていることを示す。
【0025】
キャッシュメモリアドレスCHADの値で、1はキャッシュメモリCH1に対応しているため、キャッシュメモリCH1には、バンクアドレスが0で、ロウアドレスTRAD[12]が0で、ロウアドレスTRAD[11:0]が10で、セグメントアドレスが2のデータが保持されていることを示す。
【0026】
キャッシュメモリアドレスCHADの値で、2はキャッシュメモリCH2に対応しているため、キャッシュメモリCH2には、バンクアドレスが0で、ロウアドレスTRAD[12]が0で、ロウアドレスTRAD[11:0]が11で、セグメントアドレスが3のデータが保持されていることを示す。
【0027】
キャッシュメモリアドレスCHADの値で、3はキャッシュメモリCH3に対応しているため、キャッシュメモリCH3には、バンクアドレスが0で、ロウアドレスTRAD[12]が0で、ロウアドレスTRAD[11:0]が20で、セグメントアドレスが0のデータが保持されていることを示す。
【0028】
キャッシュメモリアドレスCHADの値で、4はキャッシュメモリCH4に対応しているため、キャッシュメモリCH4には、バンクアドレスが0で、ロウアドレスTRAD[12]が1で、ロウアドレスTRAD[11:0]が33で、セグメントアドレスが2のデータが保持されていることを示す。
【0029】
キャッシュメモリアドレスCHADの値で、5はキャッシュメモリCH5に対応しているため、キャッシュメモリCH5には、バンクアドレスが0で、ロウアドレスTRAD[12]が1で、ロウアドレスTRAD[11:0]が45で、セグメントアドレスが3のデータが保持されていることを示す。
【0030】
キャッシュメモリアドレスCHADの値で、6はキャッシュメモリCH6に対応しているため、キャッシュメモリCH6には、バンクアドレスが0で、ロウアドレスTRAD[12]が1で、ロウアドレスTRAD[11:0]が32で、セグメントアドレスが0のデータが保持されていることを示す。
【0031】
キャッシュメモリアドレスCHADの値で、7はキャッシュメモリCH6に対応しているため、キャッシュメモリCH7には、バンクアドレスが0で、ロウアドレスTRAD[12]が1で、ロウアドレスTRAD[11:0]が27で、セグメントアドレスが1のデータが保持されていることを示す。
【0032】
キャッシュメモリアドレスCHADの値で、8はキャッシュメモリCH8に対応しているため、キャッシュメモリCH8には、バンクアドレスが1で、ロウアドレスTRAD[12]が0で、ロウアドレスTRAD[11:0]が16で、セグメントアドレスが3のデータが保持されていることを示す。
【0033】
キャッシュメモリアドレスCHADの値で、9はキャッシュメモリCH9に対応しているため、キャッシュメモリCH9には、バンクアドレスが1で、ロウアドレスTRAD[12]が0で、ロウアドレスTRAD[11:0]が3で、セグメントアドレスが2のデータが保持されていることを示す。
【0034】
キャッシュメモリアドレスCHADの値で、10はキャッシュメモリCH10に対応しているため、キャッシュメモリCH10には、バンクアドレスが1で、ロウアドレスTRAD[12]が0で、ロウアドレスTRAD[11:0]が47で、セグメントアドレスが1のデータが保持されていることを示す。
【0035】
キャッシュメモリアドレスCHADの値で、11はキャッシュメモリCH11に対応しているため、キャッシュメモリCH11には、バンクアドレスが1で、ロウアドレスTRAD[12]が0で、ロウアドレスTRAD[11:0]が55で、セグメントアドレスが0のデータが保持されていることを示す。
【0036】
キャッシュメモリアドレスCHADの値で、12はキャッシュメモリCH12に対応しているため、キャッシュメモリCH12には、バンクアドレスが1で、ロウアドレスTRAD[12]が1で、ロウアドレスTRAD[11:0]が100で、セグメントアドレスが3のデータが保持されていることを示す。
【0037】
キャッシュメモリアドレスCHADの値で、13はキャッシュメモリCH13に対応しているため、キャッシュメモリCH13には、バンクアドレスが1で、ロウアドレスTRAD[12]が1で、ロウアドレスTRAD[11:0]が111で、セグメントアドレスが2のデータが保持されていることを示す。
【0038】
キャッシュメモリアドレスCHADの値で、14はキャッシュメモリCH14に対応しているため、キャッシュメモリCH14には、バンクアドレスが1で、ロウアドレスTRAD[12]が1で、ロウアドレスTRAD[11:0]が123で、セグメントアドレスが2のデータが保持されていることを示す。
【0039】
キャッシュメモリアドレスCHADの値で、15はキャッシュメモリCH15に対応しているため、キャッシュメモリCH15には、バンクアドレスが1で、ロウアドレスTRAD[12]が1で、ロウアドレスTRAD[11:0]が255で、セグメントアドレスが0のデータが保持されていることを示す。
【0040】
ダーティビットDTがLowの時は、キャッシュメモリとDRAMアレイとのデータの同一性が保たれていることを示し、Highの時は、保たれていないことを示す。キャッシュメモリアドレスCHADで、0、1、2、4、5、6、8、9、10、12、13、14のダーティビットDTがHighのため、キャッシュメモリCH0、CH1、CH2、CH4、CH5、CH6、CH8、CH9、CH10、CH12、CH13、CH14とDRAMアレイとのデータには同一性が保たれていないことを示す。
【0041】
キャッシュメモリアドレスCHADで、3、8、11、15のダーティビットDTがLowのため、キャッシュメモリCH3、CH8、CH11、CH15とDRAMアレイとのデータには同一性が保たれていることを示す。
バリッドビットVLがHighの時は、そのキャッシュメモリはヒット判定を行うキャッシュメモリであることを、Low場合は、そのキャッシュメモリはヒット判定を行わない予備キャッシュメモリであることを示す。キャッシュアドレスCHADで、3、8、11、15のバリッドビットVLがLowのため、キャッシュメモリCH3、CH8、CH11、CH15は予備キャッシュメモリであることを示す。
【0042】
図11はメモリ制御回路CNTのデータ読出し動作の一例を示している。
図12‐(a)は、キャッシュCH0にヒットした場合の、メモリ制御回路CNTがDRAMモジュール(MEM)へ出力する動作波形の一例を示している。
図12‐(b)は、キャッシュCH0にキャッシュメモリCH0にミスが生じ、キャッシュメモリCH0がクリーンの場合、つまりキャッシュメモリとDRAMバンク内のデータが同一性を保っている時の、メモリ制御回路CNTがDRAMモジュール(MEM)へ出力する動作波形の一例を示している。
図12‐(c)は、キャッシュCH0にキャッシュメモリCH0にミスが生じ、キャッシュメモリCH0がダーティの場合、つまりキャッシュメモリとDRAMバンク内のデータが同一性を保っていない時の、メモリ制御回路CNTがDRAMモジュール(MEM)へ出力する動作波形の一例を示している。
【0043】
命令およびアドレスが入力すると、キャッシュメモリに対するヒット判定を行う。キャッシュメモリCH0にヒットした場合は、キャッシュメモリCH0から直接データを読み出すため、読み出し命令RDとキャッシュメモリアドレスCH0、カラムアドレスC0を出力し、その後プリチャージ命令PREを出力する。この時の読出しレイテンシは、クロック周期をTとすると、2Tとなる。
【0044】
キャッシュメモリCH0にミスが生じ、キャッシュメモリがクリーンの場合、つまりキャッシュメモリとDRAMバンク内のデータが同一性を保っている時は、メモリセルアレイからキャッシュメモリCH0にデータを転送してから読み出す。
【0045】
キャッシュメモリCH0へのデータ転送のために、先ず、バンクアクテイブ命令AC、バンクアドレスBK0、ロウアドレスR0、次にプリフェッチ命令PF、バンクアドレスBK0、キャッシュアドレスCH0、セグメントアドレスSG0を出力する。次に、キャッシュメモリCH0からデータを読み出すため、読み出し命令RDとキャッシュメモリアドレスCH0、カラムアドレスC0を出力する。最後にプリチャージ命令PREとバンクアドレスBK0を出力する。この時の読出しレイテンシは6Tとなる。
【0046】
キャッシュメモリに対してミスが生じ、キャッシュメモリがダーティの場合、つまりキャッシュメモリとDRAMバンク内のデータの同一性が保たれていない時は、予備メモリである他のキャッシュメモリにデータを転送してから読み出す。その後、ミスの生じたキャッシュメモリのデータをDRAMバンクへ書き戻す。最後に、キャッシュ切り替え動作CHANGEで現在、予備メモリであるキャッシュメモリのバリッド信号VLをHighにし、ヒット判定対象のキャッシュメモリに切り替える。そして、ミスの生じたキャッシュメモリのバリッド信号VLをLowにし、予備メモリに切り替える。
【0047】
予備メモリであるキャッシュメモリCH1へのデータ転送のために、バンクアクテイブ命令AC、バンクアドレスBK0、ロウアドレスR1、次にプリフェッチ命令PF、バンクアドレスBK0、キャッシュアドスCH1、セグメントアドレスSG1を出力する。次に、予備メモリであるキャッシュメモリCH1からデータを読み出すため、読み出し命令RDとキャッシュメモリアドレスCH1、カラムアドレスC0を出力する。最後にプリチャージ命令PREとバンクアドレスBK0を出力する。
【0048】
次に、ミスの生じたキャッシュメモリCH0のデータをDRAMバンクへ書き戻すために、先ず、リストア命令RT、バンクアドレスBK0、キャッシュアドレスCH0、セグメントアドレスSG0を出力する。次にバンクアクティブ命令AC、バンクアドレスBK0、ロウアドレスR0を出力する。次にプリチャージ命令PFE、バンクアドレスBK0を出力する。
【0049】
最後に、キャッシュ切り替え動作CHANGEで、現在、予備メモリであるキャッシュメモリCH1のバリッド信号VLをHighにし、ヒット判定対象のキャッシュメモリに切り替える。そして、ミスの生じたキャッシュメモリCH0のバリッド信号VLをLowにし、予備メモリに切り替える。このように、予備キャシュメモリを設け、最初に予備キャッシュメモリへデータを転送することで、読出しレイテンシを6Tに抑えることが出来る。
【0050】
図10では、すでにDRAMへ内蔵されているキャシュメモリに対して予備メモリを4つ設けたが、予備キャッシュメモリが1つの場合でも等しい効果が得られることはいうまでもない。また、既存のキャッシュメモリ内蔵DRAMへさらに、予備キャッシュメモリを追加したDRAMについても、等しい効果が得られることはいうまでもない。
【0051】
図13はメモリ制御回路MCUが行うDRAMモジュール(MEM)への読み出しおよび書き込み時のコマンド発行手順および、その際のDRAMモジュールのレイテンシと電力を示す。
図13‐(a) DRAMモジュール(MEM)への読み出し時のDRAMモジュールのレイテンシと電力を示す。
【0052】
キャッシュメモリにヒットした場合は、メモリ制御回路MCUはリード命令RDをDRAMモジュールに出力し、DRAMモジュールの読み出しレイテンシRLATは2サイクル、電力RPWは、0.25となる。
キャッシュメモリへのヒット判定がミスでクリーンの場合は、メモリ制御回路MCUはバンクアクティブ命令AC、プリフェッチ命令PF、リード命令RD、プリチャージ命令PREをDRAMモジュールに出力し、DRAMモジュールの読み出しレイテンシRLATは6サイクル、電力RPWは、1.0となる。
【0053】
キャッシュメモリへのヒット判定がミスでダーティの場合は、メモリ制御回路MCUはバンクアクティブ命令AC、プリフェッチ命令PF、リード命令RD、プリチャージ命令PREをDRAMモジュールに出力し、DRAMモジュールの読み出しレイテンシは6サイクルとなる。その後、DRAMモジュールにために、リストア命令RT、バンクアクティブ命令AC、プリチャージ命令PREを出力し、書き戻しを行う。結果、DRAMモジュールの読み出しレイテンシRLATは6サイクル、電力RPWは1.8となる。図13‐(b) DRAMモジュール(MEM)への書き込み時のDRAMモジュールのレイテンシと電力を示す。
キャッシュメモリへのヒット判定がヒットの場合は、メモリ制御回路MCUは書き込み命令WTをDRAMモジュールに出力し、DRAMモジュールの書き込みレイテンシWLATは0サイクル、電力WPWは、0.25となる。
【0054】
キャッシュメモリへのヒット判定がミスでクリーンの場合は、メモリ制御回路MCUはバンクアクティブ命令AC、プリフェッチ命令PF、書き込み命令WT、プリチャージ命令PREをDRAMモジュールに出力し、DRAMモジュールの書き込みレイテンシWLATは4サイクル、電力WPWは、1.0となる。
【0055】
キャッシュメモリへのヒット判定がミスでダーティの場合は、メモリ制御回路MCUはバンクアクティブ命令AC、プリフェッチ命令PF、ライト命令WT、プリチャージ命令PREをDRAMモジュールに出力し、DRAMモジュールの読み出しレイテンシは4サイクルとなる。その後、DRAMモジュールにために、リストア命令RT、バンクアクティブ命令AC、プリチャージ命令PREを出力し、書き戻しを行う。結果、DRAMモジュールの書き込みレイテンシWLATは4サイクル、電力WPWは1.8となる。
【0056】
図14は、図10で示したメモリ制御回路MCUが、ヒット判定を行うために保持しているDRAMアドレスの内、キャッシュメモリCH0からCH3が保持しているデータに対応するDRAMアドレスについての変遷の一例を示している。
他のキャッシュメモリが保持しているアドレスも同様の変遷を行うため、キャッシュメモリCH0からCH3が保持しているデータに対応するDRAMアドレスについて代表として説明する。
【0057】
BANKはバンクアドレス、TRADはロウアドレス、SGADはセグメントアドレス、CHADはキャッシュアドレス、DTはダーティビット、VLはバリッドビットを示す。ダーティビットDTがLowの時は、キャッシュメモリとDRAMバンクとのデータの同一性が保たれていることを示し、Highの時は、保たれていないことを示す。バリッドビットVLがHighの時は、そのキャッシュメモリに対してヒット判定を行い、Low場合は、そのキャッシュメモリのヒット判定を行わないことを示す。
ステップ1では、バンク0のロウアドレスTRAD0には4つのキャッシュメモリCH0、CH1、CH2、CH3が割り当てられており、キャッシュメモリCH0には、バンクアドレスBKが0で、ロウアドレスTRAD[12]が0で、ロウアドレスTRAD[11:0]が1で、セグメントアドレスSGAD が1のデータが保持されており、キャッシュメモリCH1には、バンクアドレスBKが0で、ロウアドレスTRAD[12]が0で、ロウアドレスTRAD[11:0]が10で、グメントアドレスSGADが2のデータが保持されていることを示す。
【0058】
キャッシュメモリCH2には、バンクアドレスBKが0で、ロウアドレスTRAD[12]が0で、ロウアドレスTRAD[11:0]が11で、セグメントアドレスSGAD が3のデータが保持されており、キャッシュメモリCH3 には、バンクアドレスBKが0で、ロウアドレスTRAD[12]が0で、ロウアドレスTRAD[11:0]が20で、セグメントアドレスSGADが3のデータが保持されていることを示す。
キャッシュメモリCH0、CH1、CH2のダーティビットDTがHighで、バリッドビットVLがHighであることから、バンクアドレスBANKが0、ロウアドレスTRAD[12]が1のメモリアレイ領域のデータとキャッシュメモリCH0、CH1、CH2に保持されているデータに同一性が保たれていないことを、またキャッシュメモリCH0、CH1、CH2はヒット判定の対象となるキャッシュメモリであることを示す。
【0059】
図14 STEP2は、STEP1の状態から、読み出し要求があり、キャッシュメモリCH0、CH1、CH2に対するヒット判定を行った結果、ミスでダーティが生じた場合の、アドレス情報を示す。
外部からのアドレスはアドレス変換回路ATによってバンクアドレスBKが0、ロウアドレスTRAD[12]が0、TRAD[11:0]が35、セグメントアドレスSGADが1に変換される。変換されたアドレスはアドレス比較表のバリッドビットVLがHighのアドレスに対して比較を行う。結果は、アドレスが一致せず、CH0、CH1、CH2のダーティビットDTがHighのため、ミスでダーティとなる。
【0060】
したがって、要求されたバンクアドレスBKが0、ロウアドレスTRAD[12]が0、TRAD[11:0]が35、セグメントアドレスSGADが1のデータは、アドレス・コマンド発生回路ACG によりバリッドビットVLがLowであるキャッシュメモリCH3へ転送され、読み出される。その後、キャッシュメモリCH0のデータをバンクアドレスBKが0、ロウアドレスTRAD[12]が0、TRAD[11:0]が1、セグメントアドレスSGADが1のメモリアレイへ書き戻す。
その際、アドレス比較情報にはキャッシュメモリCH3のロウアドレスTRAD[11:0]には35、セグメントアドレスSGADには1の値が保持され、バリッドビットVLはHighなり、キャッシュメモリCH3はヒット判定対象のキャッシュメモリに切り替わる。
また、キャッシュメモリCH0のバリッドビットVLはLowとなり、キャッシュメモリCH0は予備メモリへ切り替わる。
【0061】
図14のSTEP3は、図14のSTEP2の状態から、書き込み要求があり、キャッシュメモリCH3に対してヒットした場合の、アドレス比較情報を示す。
外部からのアドレスはアドレス変換回路ATによってバンクアドレスBKが0、ロウアドレスTRAD[12]が0、TRAD[11:0]が35、セグメントアドレスSGADが1に変換される。
【0062】
変換されたアドレスはアドレス比較表のバリッドビットVLがHighのキャッシュメモリCH1、CH2、CH3のアドレスに対して比較を行う。結果は、キャッシュメモリCH3のアドレスと一致し、ヒットとなり、データはキャッシュメモリCH3に書き込まれる。その際、アドレス比較情報のダーティビットDTがLowからHighになり、ダーティになったことを示す。
【0063】
図14のSTEP4は、図14のSTEP13の状態から、読み出し要求があり、キャッシュメモリに対するヒット判定を行った結果、ミスが生じた場合の、アドレス比較情報を示す。
外部からのアドレスはアドレス変換回路ATによってバンクアドレスBKが0、ロウアドレスTRAD[12]が0、TRAD[11:0]が55、セグメントアドレスSGADが0に変換される。
【0064】
変換されたアドレスはアドレス比較表のバリッドビットVLがHighのアドレスに対して比較を行う。結果は、アドレスが一致せず、CH1、CH2、CH3のダーティビットDTがHighのため、ミスでダーティとなる。
したがって、要求されたバンクアドレスBKが0、ロウアドレスTRAD[12]が0、TRAD[11:0]が55、セグメントアドレスSGADが0のデータは、アドレス・コマンド発生回路ACG によりバリッドビットVLがLowであるキャッシュメモリCH1へ転送され、読み出される。その後、キャッシュメモリCH1のデータをバンクアドレスBKが0、ロウアドレスTRAD[12]が0、TRAD[11:0]が10、セグメントアドレスSGADが2のメモリアレイへ書き戻す。
その際、アドレス比較情報には、キャッシュメモリCH0のロウアドレスTRAD[11:0]には55、セグメントアドレスSGADには0の値が保持され、バリッドビットVLはHighなり、キャッシュメモリCH3はヒット判定対象のキャッシュメモリに切り替わる。
また、キャッシュメモリCH1のバリッドビットVLはLowとなり、キャッシュメモリCH1は予備キャッシュメモリへ切り替わる。
このように、ヒット判定結果に応じて、STEP1からSTEP4を繰り返しながら、予備キャッシュメモリとなるキャッシュメモリは入れ替わっていく。
【0065】
<実施例2>
図15は、本願を適用した別の情報処理装置の構成図を示している。
これは、CPUと1次キャッシュメモリ(L1C)によって構成される情報処理装置(MS0、MS1、MS2)と、複数のキャッシュメモリを内蔵したDRAMから構成されるDRAMモジュール(MEM)と、DRAMモジュール(MEM)を制御するメモリ制御ユニット(MCU)と、PCIブリッジ回路(BRG)で構成される。そして、この情報処理装置はクロックCLKに同期して動作する。
PCIブリッジ回路(BRG)はPCIインターフェースを備えており、メモリ制御ユニット(MCU)は、情報処理装置MS0、MS1、MS2とPCIブリッジ回路(BRG)からのアクセス要求をうけて、DRAMモジュール(MEM)を制御する。
【0066】
DRAMモジュール(MEM)は、図1で示したDRAMモジュールと同じモジュールである。
前記CPUは、特に制限はないが、32ビットのアドレス信号によりアドレス空間を管理することができ、前記DRAMモジュール(MEM)は、前記CPUに管理されている。
【0067】
前記情報処理装置の動作を説明する。
情報処理装置MS0、MS1、MS2、PCIブリッジ回路BRGからの読み出し要求がRQ0、RQ1、RQ2、RQ3を通じてメモリ制御ユニット(MCU1)に入力する。メモリ制御ユニット(MCU1)は3つの読み出し要求のうちMS0からの要求を許可すると、MS0は命令信号ICOより読み出し命令とアドレス信号IADよりアドレスをメモリ制御ユニット(MCU)へ出力する。メモリ制御ユニット(MCU)は、MS0からの読出し命令およびアドレスを受け取った後、メモリ命令信号MC0から読み出し命令を、メモリアドレスMA0からアドレスをDRAMモジュール(MEM)へ出力すると、DRAMモジュール(MEM)のMD0から要求されたデータが出力されDQを通じてMS0へ転送される。
【0068】
図16は、図15で示したメモリ制御ユニットMCU1の回路構成を示す。
メモリ制御ユニットMCU1回路は、DRAMへのアクセス要求を調停するアクセス調停回路(ARB1)とメモリ制御回路(CNT1)から構成される。
前記アクセス調停回路(ARB1)はMS0、MS1、MS2、PCIブリッジ回路BRGの各マスターからのアクセス要求RQ0、RQ1、RQ2、RQ3を受け付け、アクセス調停回路(ARB1)で設定した優先順位に従って、メモリ制御回路CNT1へアクセス許可信号GT0、GT1、GT2、GT3のうち1つの信号をイネーブルにし、アクセスを許可する。
メモリ制御回路CNT1は、アドレス変換回路AT、ヒット判定回路HJ1およびアドレス・コマンド発生回路ACGから構成される。
【0069】
アドレス変換回路ATは、許可されたアクセスのアドレスをDRAMのバンク、ロウ、セグメント、カラム、キャッシュアドレスADへ変換する。
ヒット判定回路HJ1は、アドレス変換回路ATで変換されたアドレスがDRAM内部のキャッシュメモリへヒットしたかどうかのヒット/ミス判定と、ヒット判定を行ったDRAM内部キャッシュメモリ(CH0からCH15)とDRAMのメモリセルアレイ(ARY)との間にデータの同一性があるかのクリーン/ダーティ判定を行う。
アドレス・コマンド発生回路ACGはヒット判定回路HJの判定結果によってDRAMモジュールを制御するメモリコマンド信号をMC0から、メモリアドレス信号をMAD0から出力し、入出力信号MDQを通じてデータ転送を行う。
【0070】
図17はメモリ制御回路CNT1によって、キャッシュメモリ内蔵DRAMへアクセスする各々のマスターに割り当てられているキャッシュメモリの一例を示している。
情報処理装置MS0には、CH0、CH1、CH2、CH3の4つのキャッシュメモリが割り当てられており、情報処理装置MS0からのアクセス要求に対するデータが保持される。
情報処理装置MS1にはCH4、CH5、CH6、CH7の4つのキャッシュメモリが割り当てられており、情報処理装置MS1からのアクセス要求に対するデータが保持される。
情報処理装置MS2にはCH8、CH9、CH10、CH11の4つのキャッシュメモリが割り当てられており、情報処理装置MS2 からのアクセス要求に対するデータが保持される。
PCIブリッジ回路BRGにはCH12、CH13、CH14、CH15の4つのキャッシュメモリが割り当てられており、PCIブリッジ回路からのアクセス要求に対するデータが保持される。
尚、CH0、CH1、CH2、CH3は同じ階層のキャッシュメモリであり、メモリバンクに対して重複したアドレスが割り当てられていない。CH4乃至CH7、CH8乃至CH11、CH12乃至CH15もそれぞれ同様である。
【0071】
図18は前記ヒット判定回路HJ1がヒット判定をおこなうために保持している、マスター毎の、キャッシュメモリが保持しているデータのDRAMアドレス情報の一例を示している。
BANKはバンクアドレス、TRADはロウアドレス、SGADはセグメントアドレス、CHADはキャッシュアドレス、DTはダーティビット、VLはバリッドビットを示す。
ダーティビットDTがLowの時は、キャッシュメモリとDRAMのメモリアレイとのデータの同一性が保たれていることを示し、Highの時は、保たれていないことを示す。
バリッドビットVLがHighの時は、そのキャッシュメモリに対して、ヒット判定を行い、Low場合は、そのキャッシュメモリのヒット判定を行わない予備メモリであることを示す。
【0072】
マスターMS0には、4つのキャッシュメモリCH0、CH1、CH2、CH3が割り当てられている。
キャッシュメモリCH0には、バンクアドレスBANKが0で、ロウアドレスTRAD[12:0]が1で、セグメントアドレスSGADが1のデータが保持されている。
キャッシュメモリCH1には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が10で、セグメントアドレスSGADが2のデータが保持されている。
キャッシュメモリCH2には、バンクアドレスBANKが0で、ロウアドレスTRAD[12:0]が11で、セグメントアドレスSGADが3のデータが保持されている。
キャッシュメモリCH3には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が20で、セグメントアドレスSGADが0のデータが保持されている。
【0073】
キャッシュメモリCH0、CH1、CH2のバリッドビットVLはHighのため、キャッシュメモリCH0、CH1、CH2はヒット判定対象となり、キャッシュメモリCH3のバリッドビットVLはLowのため、キャッシュメモリCH3はヒット判定対象にはならない。
【0074】
また、キャッシュメモリCH0、CH1、CH2のダーティビットDTはHighのため、キャッシュメモリCH0、CH1、CH2はDRAMのメモリアレイとのデータの同一性が保たれておらず、キャッシュメモリCH3のダーティビットDTはLowのため、キャッシュメモリCH3はメモリアレイとのデータの同一性が保たれていることを示す。
【0075】
マスターMS1には、4つのキャッシュメモリCH4、CH5、CH6、CH7が割り当てられている。
キャッシュメモリCH4には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が33で、セグメントアドレスSGADが2のデータが保持されている。
キャッシュメモリCH5には、バンクアドレスBANKが0で、ロウアドレスTRAD[12:0]が45で、セグメントアドレスSGADが3のデータが保持されている。
キャッシュメモリCH6は、バンクアドレスBANKが0で、ロウアドレスTRAD[12:0]が32で、セグメントアドレスSGADが0のデータが保持されている。
キャッシュメモリCH7には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が27で、セグメントアドレスSGADが1のデータが保持されている。
【0076】
キャッシュメモリCH4、CH5、CH6のバリッドビットVLはHighのため、キャッシュメモリCH4、CH5、CH6はヒット判定対象となり、キャッシュメモリCH7のバリッドビットVLはLowのため、キャッシュメモリCH7はヒット判定対象にはならない。
【0077】
また、キャッシュメモリCH4、CH5、CH6のダーティビットDTはHighのため、キャッシュメモリCH4、CH5、CH6はDRAMのメモリアレイとのデータの同一性が保たれておらず、キャッシュメモリCH7のダーティビットDTはLowのため、キャッシュメモリCH7はメモリアレイとのデータの同一性が保たれていることを示す。
【0078】
マスターMS2には、4つのキャッシュメモリCH8、CH9、CH10、CH11が割り当てられている。
キャッシュメモリCH8には、バンクアドレスBANKが0で、ロウアドレスTRAD[12:0]が16で、セグメントアドレスSGADが3のデータが保持されている。
キャッシュメモリCH9には、バンクアドレスBANKが0で、ロウアドレスTRAD[12:0]が3で、セグメントアドレスSGADが2のデータが保持されている。
キャッシュメモリCH10には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が47で、セグメントアドレスSGADが1のデータが保持されている。
キャッシュメモリCH11には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が55で、セグメントアドレスSGADが0のデータが保持されている。
【0079】
キャッシュメモリCH8、CH9、CH10のバリッドビットVLはHighのため、キャッシュメモリCH8、CH9、CH10はヒット判定対象となり、キャッシュメモリCH11のバリッドビットVLはLowのため、キャッシュメモリCH11はヒット判定対象にはならない。
【0080】
また、キャッシュメモリCH8、CH9、CH10のダーティビットDTはHighのため、キャッシュメモリCH8、CH9、CH10はDRAMのメモリアレイとのデータの同一性が保たれておらず、キャッシュメモリCH11のダーティビットDTはLowのため、キャッシュメモリCH11はメモリアレイとのデータの同一性が保たれていることを示す。
マスターPCIブリッジ回路BRGには、4つのキャッシュメモリCH12、CH13、CH14、CH15が割り当てられている。
キャッシュメモリCH12には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が100で、セグメントアドレスSGADが3のデータが保持されている。
キャッシュメモリCH13には、バンクアドレスBANKが0で、ロウアドレスTRAD[12:0]が111で、セグメントアドレスSGADが2のデータが保持されている。
キャッシュメモリCH14には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が123で、セグメントアドレスSGADが2のデータが保持されている。
キャッシュメモリCH15には、バンクアドレスBANKが0で、ロウアドレスTRAD[12:0]が255で、セグメントアドレスSGADが0のデータが保持されている。
キャッシュメモリCH12、CH13、CH14のバリッドビットVLはHighのため、キャッシュメモリCH12、CH13、CH14はヒット判定対象となり、キャッシュメモリCH15のバリッドビットVLはLowのため、キャッシュメモリCH15はヒット判定対象にはならない。
【0081】
また、キャッシュメモリCH12、CH13、CH14のダーティビットDTはHighのため、キャッシュメモリCH12、CH13、CH14はDRAMのメモリアレイとのデータの同一性が保たれておらず、キャッシュメモリCH15のダーティビットDTはLowのため、キャッシュメモリCH15はメモリアレイとのデータの同一性が保たれていることを示す。
このように、マスターによって、キャッシュメモリと予備メモリを割り当てることによって、他のマスターによるキャッシュメモリ内のデータの入れ替えが起こらず、マスター毎に最適に、キャッシュを制御することができる。
【0082】
図19はメモリ制御回路MCU1が、情報処理装置MS0からのアクセスに対して、ヒット判定を行うために保持しているDRAMのアドレス情報の変遷の一例を示している。
情報処理装置MS1、MS2、PCIブリッジ回路BRGに関しても同様の動作となるので情報処理装置MS0を代表して説明する。BANKはバンクアドレス、TRADはロウアドレス、SGADはセグメントアドレス、CHADはキャッシュアドレス、DTはダーティビット、VLはバリッドビットを示す。ダーティビットDTがLowの時は、キャッシュメモリとDRAMバンクとのデータの同一性が保たれていることを示し、Highの時は、保たれていないことを示す。バリッドビットVLがHighの時は、そのキャッシュメモリに対してヒット判定を行い、Low場合は、そのキャッシュメモリのヒット判定を行わないことを示す。
【0083】
STEP1では、情報処理装置MS0には4つのキャッシュメモリCH0、CH1、CH2、CH3が割り当てられており、キャッシュメモリCH0には、バンクアドレスBKが0で、ロウアドレスTRAD[12:0]が1で、セグメントアドレスSGAD が1のデータが保持されており、キャッシュメモリCH1には、バンクアドレスBKが1で、ロウアドレスTRAD[12:0]が10で、セグメントアドレスSGADが2のデータが保持されており、キャッシュメモリCH2には、バンクアドレスBKが0で、ロウアドレスTRAD[12:0]が11で、セグメントアドレスSGADが3のデータが保持されており、キャッシュメモリCH3には、バンクアドレスBKが0で、ロウアドレスTRAD[12:0]が20で、セグメントアドレスSGADが3のデータが保持されていることを示す。
【0084】
キャッシュメモリCH0、CH1、CH2のダーティビットDTがHighで、バリッドビットVLがHighであることから、メモリアレイ領域のデータとキャッシュメモリCH0、CH1、CH2に保持されているデータに同一性が保たれていないことを、またキャッシュメモリCH0、CH1、CH2はヒット判定の対象となるキャッシュメモリであることを示す。
【0085】
STEP2は、STEP1の状態から、情報処理装置MS0より読み出し要求があり、キャッシュメモリCH0、CH1、CH2に対するヒット判定を行った結果、ミスでダーティが生じた場合の、アドレス情報を示す。
外部からのアドレスはアドレス変換回路ATによってバンクアドレスBKが0、ロウアドレスTRAD[12:0]が35、セグメントアドレスSGADが1に変換される。変換されたアドレスはアドレス比較表のバリッドビットVLがHighのアドレスに対して比較を行う。結果は、アドレスが一致せず、CH0、CH1、CH2のダーティビットDTがHighのため、ミスでダーティとなる。
【0086】
したがって、要求されたバンクアドレスBKが0、ロウアドレスTRAD[12:0]が35、セグメントアドレスSGADが1のデータは、アドレス・コマンド発生回路ACG によりバリッドビットVLがLowであるキャッシュメモリCH3へ転送され、読み出される。その後、キャッシュメモリCH0のデータをバンクアドレスBKが0、ロウアドレスTRAD[12]が0、TRAD[11:0]が1、セグメントアドレスSGADが1のメモリアレイへ書き戻す。
その際、アドレス比較情報にはキャッシュメモリCH3のロウアドレスTRAD[12:0]には35、セグメントアドレスSGADには1の値が保持され、バリッドビットVLはHighなり、キャッシュメモリCH3はヒット判定対象のキャッシュメモリに切り替わる。
また、キャッシュメモリCH0のバリッドビットVLはLowとなり、キャッシュメモリCH0は予備メモリへ切り替わる。
【0087】
STEP3は、STEP2の状態から、情報処理装置MS0からの書き込み要求があり、キャッシュメモリCH3に対してヒットした場合の、アドレス比較情報を示す。
外部からのアドレスはアドレス変換回路ATによってバンクアドレスBKが0、ロウアドレスTRAD[12:0]が35、セグメントアドレスSGADが1に変換される。
変換されたアドレスはアドレス比較表のバリッドビットVLがHighのキャッシュメモリCH1、CH2.CH3のアドレスに対して比較を行う。結果は、キャッシュメモリCH3のアドレスと一致し、ヒットとなり、データはキャッシュメモリCH3に書き込まれる。その際、アドレス比較情報のダーティビットDTがLowからHighになり、ダーティになったことを示す。
【0088】
STEP4は、STEP3の状態から、情報処理装置MS0からの読み出し要求があり、キャッシュメモリに対するヒット判定を行った結果、ミスが生じた場合の、アドレス比較情報を示す。
外部からのアドレスはアドレス変換回路ATによってバンクアドレスBKが0、ロウアドレスTRAD[12:0]が55、セグメントアドレスSGADが0に変換される。
変換されたアドレスはアドレス比較表のバリッドビットVLがHighのアドレスに対して比較を行う。結果は、アドレスが一致せず、CH1、CH2、CH3のダーティビットDTがHighのため、ミスでダーティとなる。
【0089】
したがって、要求されたバンクアドレスBKが0、ロウアドレスTRAD[12]が0、TRAD[11:0]が55、セグメントアドレスSGADが0のデータは、アドレス・コマンド発生回路ACG によりバリッドビットVLがLowであるキャッシュメモリCH1へ転送され、読み出される。その後、キャッシュメモリCH1のデータをバンクアドレスBKが0、ロウアドレスTRAD[12:0]が10、セグメントアドレスSGADが2のメモリアレイへ書き戻す。
その際、アドレス比較情報にはキャッシュメモリCH0のロウアドレスTRAD[12:0]には55、セグメントアドレスSGADには0の値が保持され、バリッドビットVLはHighなり、キャッシュメモリCH3はヒット判定対象のキャッシュメモリに切り替わる。
また、キャッシュメモリCH1のバリッドビットVLはLowとなり、キャッシュメモリCH1は予備メモリへ切り替わる。
【0090】
このように、メモリ制御回路CNT1により、ヒット判定結果に応じて、STEP1からSTEP4を繰り返しながら、予備キャッシュメモリとなるキャッシュメモリは入れ替わっていき、予備キャッシュメモリを利用したDRAMモジュールに対する制御動作は、図11、図12、図13に示す動作と等しく、高速にDRAMモジュールを制御できる。
また、マスターによって、キャッシュメモリと予備メモリを割り当てることによって、他のマスターによるキャッシュメモリ内のデータの入れ替えが起こらず、マスター毎に最適に、キャッシュを制御することができる。
【0091】
<実施例3>
図20は本発明のメモリ制御回路(MCU2)の1構成例である。
この回路は、DRAMへのアクセス要求を調停するアクセス調停回路(ARB2)とメモリ制御回路(CNT2)から構成される。
前記アクセス調停回路(ARB3)はアクセス要求RQ0、RQ1、RQ2を受け付け、アクセス調停回路(ARB3)で設定した優先順位に従ってそれぞれのアクセスを許可する。
【0092】
メモリ制御回路CNT2は、アドレス変換回路AT2、ヒット判定回路HJ2およびアドレス・コマンド発生回路ACG2から構成される。
アドレス変換回路AT2は、許可されたアクセスのアドレスをDRAMのバンク、ロウ、セグメント、カラム、キャッシュアドレスADへ変換する。
ヒット判定回路HJ2は、アドレス変換回路AT2で変換されたアドレスがDRAM内部のキャッシュメモリおよびセンスアンプへのヒット/ミス判定と、ヒット判定を行ったDRAM内部キャッシュメモリ(CH0からCH15)とDRAMのメモリセルアレイ(ARY)との間にデータの同一性があるかのクリーン/ダーティ判定を行う。
アドレス・コマンド発生回路ACG2はヒット判定回路HJ2の判定結果によってDRAMモジュールを制御するメモリコマンド信号をMC0から、メモリアドレス信号をMAD0から出力し、入出力信号MDQを通じてデータ転送を行う。
このように、内蔵しているキャッシュメモリのみならず、さらにセンスアンプをキャッシュメモリとして利用することにより、センスアンプで保持できるデータ分のキャッシュメモリサイズが増えることになり、キャッシュメモリのヒット率を上げることができ、高速かつ低電力でDRAMを動作させることが出来る。
【0093】
図21メモリ制御回路CNT2によってキャッシュメモリ内蔵DRAMのバンク0(B0)とバンク1(B1)に割り当てられているキャッシュメモリの一例を示している。
キャッシュメモリ内蔵DRAMのバンク0(B0)にはキャッシュメモリCH0、CH1、CH2、CH3、CH4、CH5、CH6、CH7の8つのキャッシュメモリが割り当てられている。
キャッシュメモリCH0からCH6までのキャッシュメモリ群WBCH0はメモリセルアレイARYとのデータ同一性が保たれないダーティの場合が生じる。
またキャッシュメモリCH7は常にメモリセルアレイARYと常に、データの同一性を保つキャッシュメモリWTCH0である。つまりキャッシュメモリCH7に書き込みが発生したら、常にメモリセルアレイへの書き込みを行う。
【0094】
キャッシュメモリ内蔵DRAMのバンク1(B1)にはキャッシュメモリCH8、CH9、CH10、CH11、CH12、CH13、CH14、CH15の8つのキャッシュメモリが割り当てられている。
キャッシュメモリCH8からCH14までのキャッシュメモリ群WBCH1はメモリセルアレイARYとのデータの同一性が保たれないダーティの場合が生じる。
またキャッシュメモリCH15は常にメモリセルアレイARYと常に、データの同一性を保つキャッシュメモリWTCH1である。つまりキャッシュメモリCH15に書き込みが発生したら、常にメモリセルアレイへの書き込みを行う。
このような、キャッシュメモリの割り当てにより、バンク0内のデータの一部はキャッシュメモリCH0からCH7に保持することができ、バンク1(B1)内のデータの一部はキャッシュメモリCH8からCH15に保持することができる。
【0095】
図22‐(a)はヒット判定回路HJ2がキャッシュメモリCH0からCH15に対するヒット判定をおこなうために保持しているタグアドレスの一例を示している。
BANKはバンクアドレス、TRAD[12:0]はロウアドレス、SGADはセグメントアドレス、CHADはキャッシュメモリアドレス、DTはダーティビット、VLはバリッドビット、WTHはライトスルービットを示す。
ダーティビットDTがLowの時は、キャッシュメモリとDRAMアレイとのデータの同一性が保たれていることを示し、Highの時は、保たれていないことを示す。
キャッシュメモリアドレスCHADで、0、1、2、3、4、5、6、8、9、10、11、12、13、14のダーティビットDTがHighのため、キャッシュメモリCH0、CH1、CH2、CH4、CH5、CH6、CH8、CH9、CH10、CH12、CH13、CH14とDRAMアレイとのデータには同一性が保たれていないことを示す。
【0096】
キャッシュメモリアドレスCHADで、7、15のダーティビットDTがLowのため、キャッシュメモリCH7、CH15とDRAMアレイとのデータには同一性が保たれていることを示す。
バリッドビットVLがHighの時は、そのキャッシュメモリに対してヒット判定を行い、Low場合は、そのキャッシュメモリのヒット判定を行わないことを示す。全キャッシュメモリはヒット判定の対象である。
WTHはライトスルービットWTHがHighの時は、対象となるキャッシュメモリへの書き込みが発生した際は、常にメモリアレイARYへも同一データを書き込み(ライトスルー)、Lowの時は、対象となるキャッシュメモリのデータは、必要な時にメモリアレイARYへ書き戻される(ライトハバック)。
【0097】
キャッシュメモリアドレスCHADで、7、15のライトスルービットWTHがHighのため、キャッシュメモリCH7、CH15は、ライトスルー動作対象のキャッシュメモリである。
キャッシュメモリアドレスCHADで、0から6、8から14のライトスルービットWTHがLowのため、キャッシュメモリCH0からCH6、CH8からCH14は、ライトバック動作対象のキャッシュメモリである。
【0098】
キャッシュメモリアドレスCHADの値で、0はキャッシュメモリCH0に対応しているため、キャッシュメモリCH0には、バンクアドレスが0で、ロウアドレスTRAD[12:0]が0で、セグメントアドレスが2のデータが保持されていることを示す。
【0099】
キャッシュメモリアドレスCHADの値で、1はキャッシュメモリCH1に対応しているため、キャッシュメモリCH1には、バンクアドレスが0でロウアドレスTRAD[12:0]が3で、セグメントアドレスが3のデータが保持されていることを示す。
【0100】
キャッシュメモリアドレスCHADの値で、2はキャッシュメモリCH2に対応しているため、キャッシュメモリCH2には、バンクアドレスが0で、ロウアドレスTRAD[12:0]が11で、セグメントアドレスが3のデータが保持されていることを示す。
【0101】
キャッシュメモリアドレスCHADの値で、3はキャッシュメモリCH3に対応しているため、キャッシュメモリCH3には、バンクアドレスBANKが0で、ロウアドレスTRAD[12:0]が20で、セグメントアドレスが0のデータが保持されていることを示す。
【0102】
キャッシュメモリアドレスCHADの値で、4はキャッシュメモリCH4に対応しているため、キャッシュメモリCH4には、バンクアドレスBANKが0で、ロウアドレスTRAD[12:0]が33で、セグメントアドレスが2のデータが保持されていることを示す。
【0103】
キャッシュメモリアドレスCHADの値で、5はキャッシュメモリCH5に対応しているため、キャッシュメモリCH5には、バンクアドレスBKが0、ロウアドレスTRAD[12:0]が45で、セグメントアドレスが3のデータが保持されていることを示す。
【0104】
キャッシュメモリアドレスCHADの値で、6はキャッシュメモリCH6に対応しているため、キャッシュメモリCH6には、バンクアドレスBANKが0で、ロウアドレスTRAD[12:0]が32で、セグメントアドレスが0のデータが保持されていることを示す。
【0105】
キャッシュメモリアドレスCHADの値で、7はキャッシュメモリCH6に対応しているため、キャッシュメモリCH7には、バンクアドレスBANKが0で、ロウアドレスTRAD[12:0]が27で、セグメントアドレスが1のデータが保持されていることを示す。
【0106】
キャッシュメモリアドレスCHADの値で、8はキャッシュメモリCH8に対応しているため、キャッシュメモリCH8には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が16で、セグメントアドレスが3のデータが保持されていることを示す。
【0107】
キャッシュメモリアドレスCHADの値で、9はキャッシュメモリCH9に対応しているため、キャッシュメモリCH9には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が3で、セグメントアドレスが2のデータが保持されていることを示す。
【0108】
キャッシュメモリアドレスCHADの値で、10はキャッシュメモリCH10に対応しているため、キャッシュメモリCH10には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が47で、セグメントアドレスが1のデータが保持されていることを示す。
【0109】
キャッシュメモリアドレスCHADの値で、11はキャッシュメモリCH11に対応しているため、キャッシュメモリCH11には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が55で、セグメントアドレスが0のデータが保持されていることを示す。
【0110】
キャッシュメモリアドレスCHADの値で、12はキャッシュメモリCH12に対応しているため、キャッシュメモリCH12には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が100で、セグメントアドレスが3のデータが保持されていることを示す。
【0111】
キャッシュメモリアドレスCHADの値で、13はキャッシュメモリCH13に対応しているため、キャッシュメモリCH13には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が111で、セグメントアドレスが2のデータが保持されていることを示す。
【0112】
キャッシュメモリアドレスCHADの値で、14はキャッシュメモリCH14に対応しているため、キャッシュメモリCH14には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が123で、セグメントアドレスが2のデータが保持されていることを示す。
【0113】
キャッシュメモリアドレスCHADの値で、15はキャッシュメモリCH15に対応しているため、キャッシュメモリCH15には、バンクアドレスBANKが1で、ロウアドレスTRAD[12:0]が255で、セグメントアドレスが0のデータが保持されていることを示す。
【0114】
図22‐(b)はヒット判定回路HJ2がセンスアンプに対するヒット判定をおこなうために保持しているDRAMアドレスの一例を示している。
BANKはバンクアドレス、TRAD[12:0]はロウアドレス、SVLはセンスアンプバリッドビットを示す。センスアンプバリッドビットSVLがHighの時は、センスアンプが活性化しており、Lowのときは非活性であることを示す。
バンク0のセンスアンプは活性化しておりロウアドレスTRAD[12:0]が27のデータがセンスアンプに保持され、バンク1のセンスアンプは活性化しておりロウアドレスTRAD[12:0]が255のデータがセンスアンプに保持されていることを示す。
【0115】
このように、内蔵キャッシュメモリのみならず、さらにセンスアンプをキャッシュメモリとして利用することにより、16kビット分(8kビット×2バンク)のキャッシュメモリサイズが増え、キャッシュメモリのヒット率を上げることができ、高速かつ低電力でDRAMを動作させることが出来る。
【0116】
図23はメモリ制御回路MCU2で行う、内蔵キャッシュとセンスアンプに対するヒット判定の一例を示す。
図23−(a)は、図22−(a)で示すライトスルービットWTHがLowであるキャッシュメモリに対するヒット判定動作を示す。
命令ICOM及びアドレスIADがメモリ制御回路にMCU2に入力すると、メモリ制御回路MCU2内のヒット判定回路HJ2は、ライトスルービットWTHがLowであるキャッシュメモリに対してヒット判定を同時に行う。
入力したアドレスIADとヒット判定回路HJ2が保持しているタグアドレス内のライトスルービットWTHがLowのアドレスと一致した場合は、ヒットHIT1となる。
アドレスが一致せず、比較したキャッシュメモリのアドレス比較テーブル内のダーティビットがHighの場合は、ミスかつダーティMISS1(Dirty)となる。また、アドレスが一致せず、比較したキャッシュメモリのタグアドレス内のダーティビットがLowの場合は、ミスかつクリーンMISS1(Clean)となる。
【0117】
図23−(b)は、図23−(a)で示すライトスルービットWTHがHighであるキャッシュメモリおよび、図22−(b)示すセンスアンプに対するヒット判定動作を示す。
命令ICOM及びアドレスIADがメモリ制御回路にMCU2に入力すると、メモリ制御回路MCU2内のヒット判定回路HJ2は、ライトスルービットWTHがHighであるキャッシュメモリとセンスアンプに対してヒット判定を同時に行う。
【0118】
入力したアドレスIADとヒット判定回路HJ2が保持している図22−(a)で示すタグアドレス内のライトスルービットWTHがHighのアドレスと一致した場合は、ヒットHIT2となる。アドレスが一致しなかった場合、ミスMISS2となる。
また、入力したアドレスIADとヒット判定回路HJ2が保持している図23−(b)で示すタグアドレス内のアドレスと一致し、センスアンプバリッドビットSVLがHighの場合は、ヒットHIT3 となる。アドレスが一致せず、比較したセンスアンプのタグアドレスのセンスアンプバリッドビットSVLがHighの場合は、MISS3(ACT)となる。センスアンプバリッドビットSVLがLowの場合は、ミスかつ非活性MISS3(INACT)となる。
【0119】
図23−(c)は、図22−(a)で示すライトスルービットWTHがHighであるキャッシュメモリへのヒット判定結果が、ミスかつダーティMISS1(Dirty)の場合に、そのMISS1(Dirty)となったキャッシュメモリのタグアドレスのバンクアドレスBANKおよびロウアドレスTRAD[12:0]と、図22−(b)で示すセンアンプのタグアドレスとのヒット判定動作を示す。
MISS1(Dirty)となったキャッシュメモリのタグアドレス内のバンクアドレスBANKおよびロウアドレスTRAD[12:0]とが、図22−(b)で示すセンアンプのタグアドレス内のバンクアドレスBANK1とロウアドレスTRAD[12:0]とに一致すればヒットHIT4となる。一致しなければMISS4となる。
【0120】
図24は図23で説明したヒット判定結果に基づいて、アドレス・コマンド発生回路ACGがメモリモジュールMEM0に対して出力する、データ書き込みのためのコマンドの一例である。
【0121】
判定結果がHIT1の時、他の判定結果によらず、アドレス・コマンド発生回路ACG2はライトコマンドWTを出力する。その際、書き込み先DESTは、ヒットしたライトバック・キャッシュメモリWBCHとなり、DRAMの書き込みレイテンシWLATは0、書き込み電力WPWは、0.25となる。
【0122】
判定結果がMISS1かつHIT2かつACTの時、他の判定結果によらず、アドレス・コマンド発生回路ACG2はライトスルー・キャッシュメモリとメモリセルアレイARYへの書き込みを行うため、ライトコマンドWTとリストアコマンドRTを出力する。その際、書き込み先DESTは、ヒットしたライトスルー・キャッシュメモリWTCHおよびメモリセルアレイARYとなり、DRAMの書き込みレイテンシWLATは0、書き込み電力WPWは、0.35となる。
【0123】
判定結果がMISS1かつMISS2かつHIT3かつACTの時、他の判定結果によらず、アドレス・コマンド発生回路ACG2はライトスルー・キャッシュメモリとメモリセルアレイARYへの書き込みを行うため、プリフェッチコマンドPFとライトコマンドWTとリストアコマンドRTを出力する。その際、書き込み先DESTは、ヒットしたライトスルー・キャッシュメモリWTCHおよびメモリセルアレイARYとなり、DRAMの書き込みレイテンシWLATは2、書き込み電力WPWは、0.5となる。
【0124】
判定結果がMISS1(Clean)かつMISS2かつMISS3かつACTの時、他の判定結果によらず、アドレス・コマンド発生回路ACG2はライトバック・キャッシュメモリへの書き込みを行うため、プリチャージコマンドPREとバンクアクティブコマンドACとプリフェッチコマンドPFとライトコマンドWTを出力する。その際、書き込み先DESTは、ライトバック・キャッシュメモリWBCHとなり、DRAMの書き込みレイテンシWLATは6、書き込み電力WPWは、1.0となる。
【0125】
判定結果がMISS1(Clean)かつMISS2かつMISS3かつINACTの時、他の判定結果によらず、アドレス・コマンド発生回路ACG2はライトバック・キャッシュメモリへの書き込みを行うため、バンクアクティブコマンドACとプリフェッチコマンドPFとライトコマンドWTを出力する。その際、書き込み先DESTは、ライトバック・キャッシュメモリWBCHとなり、DRAMの書き込みレイテンシWLATは4、書き込み電力WPWは、0.9となる。
【0126】
判定結果がMISS1(Dirty)かつMISS2かつMISS3かつACTかつHIT4の時、アドレス・コマンド発生回路ACG2は、メモリセルアレイARYへの書き戻しと、ライトバック・キャッシュメモリへの書き込みを行うため、リストアコマンドRT、プリチャージコマンドPRE、バンクアクティブコマンドACとプリフェッチコマンドPFとライトコマンドWTを出力する。その際、書き込み先DESTは、ライトバック・キャッシュメモリWBCHおよびメモリセルアレイARYとなり、DRAMの書き込みレイテンシWLATは8、書き込み電力WPWは、1.2となる。
【0127】
判定結果がMISS1(Dirty)かつMISS2かつMISS3かつACTかつMISS4の時、アドレス・コマンド発生回路ACG2は、メモリセルアレイARYへの書き戻しと、ライトバック・キャッシュメモリへの書き込みを行うため、プリチャージコマンドPRE、リストアコマンドRT、バンクアクティブコマンドAC、プリチャージコマンドPRE、バンクアクティブコマンドACとプリフェッチコマンドPFとライトコマンドWTを出力する。その際、書き込み先DESTは、ライトバック・キャッシュメモリWBCHおよびメモリセルアレイARYとなり、DRAMの書き込みレイテンシWLATは12、書き込み電力WPWは、1.8となる。
【0128】
判定結果がMISS1(Dirty)かつMISS2かつMISS3かつINACTかつMISS4の時、アドレス・コマンド発生回路ACG2は、メモリセルアレイARYへの書き戻しと、ライトバック・キャッシュメモリへの書き込みを行うため、リストアコマンドRT、バンクアクティブコマンドAC、プリチャージコマンドPRE、バンクアクティブコマンドACとプリフェッチコマンドPFとライトコマンドWTを出力する。その際、書き込み先DESTは、ライトバック・キャッシュメモリWBCHおよびメモリセルアレイARYとなり、DRAMの書き込みレイテンシWLATは10、書き込み電力WPWは、1.7となる。
【0129】
図25は図23で説明したヒット判定結果に基づいて、アドレス・コマンド発生回路ACGがメモリモジュールMEM0に対して出力する、データ書き込みのためのコマンドの一例である。
【0130】
判定結果がHIT1の時、他の判定結果によらず、アドレス・コマンド発生回路ACG2はライトバックキャッシュメモリWBCHからデータを読み出すためリードコマンドRDを出力する。その際、読み出し元SORSは、ヒットしたライトバック・キャッシュメモリWBCHとなり、DRAMの読み出しレイテンシRLATは2、書き込み電力RPWは、0.25となる。
【0131】
判定結果がMISS1かつHIT2かつACTの時、他の判定結果によらず、アドレス・コマンド発生回路ACG2はライトスルー・キャッシュメモリからデータを読み出しを行うため、リードコマンドRDを出力する。その際、読み出し元SORSは、ヒットしたライトスルー・キャッシュメモリWTCHとなり、DRAMの読み出しレイテンシRLATは2、読み出し電力RPWは、0.25となる。
【0132】
判定結果がMISS1かつMISS2かつHIT3かつACTの時、他の判定結果によらず、アドレス・コマンド発生回路ACG2はライトスルー・キャッシュメモリから読み出しを行うため、プリフェッチコマンドPFとリードコマンドRDを出力する。その際、読み出し元SORSはヒットしたライトスルー・キャッシュメモリWTCHとなり、DRAMの読み出しレイテンシRLATは2、読み出し電力RPWは、0.5となる。
【0133】
判定結果がMISS1(Clean)かつMISS2かつMISS3かつACTの時、他の判定結果によらず、アドレス・コマンド発生回路ACG2はライトバック・キャッシュメモリから読み出しを行うため、プリチャージコマンドPREとバンクアクティブコマンドACとプリフェッチコマンドPFとリードコマンドRDを出力する。その際、読み出し元SORSは、ライトバック・キャッシュメモリWBCHとなり、DRAMの読み出しレイテンシRLATは8、読み出し電力RPWは、1.0となる。
【0134】
判定結果がMISS1(Clean)かつMISS2かつMISS3かつINACTの時、他の判定結果によらず、アドレス・コマンド発生回路ACG2はライトバック・キャッシュメモリへから読み出しを行うため、バンクアクティブコマンドACとプリフェッチコマンドPFとリードコマンドRDを出力する。その際、読み出し元SORSは、ライトバック・キャッシュメモリWBCHとなり、DRAMの読み出しレイテンシRLATは6、読み出し電力RPWは、0.9となる。
【0135】
判定結果がMISS1(Dirty)かつMISS2かつMISS3かつACTかつHIT4の時、アドレス・コマンド発生回路ACG2は、メモリセルアレイARYへの書き戻しと、ライトバック・キャッシュメモリからの読み出しを行うため、リストアコマンドRT、プリチャージコマンドPRE、バンクアクティブコマンドACとプリフェッチコマンドPFとリードコマンドRDを出力する。その際、読み出し元は、ライトバック・キャッシュメモリWBCHとなり、DRAMの読み出しレイテンシRLATは10、読み出し電力RPWは、1.2となる。
【0136】
判定結果がMISS1(Dirty)かつMISS2かつMISS3かつACTかつMISS4の時、アドレス・コマンド発生回路ACG2は、メモリセルアレイARYへの書き戻しと、ライトバック・キャッシュメモリからの読出しを行うため、プリチャージコマンドPRE、リストアコマンドRT、バンクアクティブコマンドAC、プリチャージコマンドPRE、バンクアクティブコマンドACとプリフェッチコマンドPFとリードコマンドRDを出力する。その際、読出し元SORSは、ライトバック・キャッシュメモリWBCHとなり、DRAMの読出しレイテンシRLATは14、読出し電力RPWは、1.8となる。
【0137】
判定結果がMISS1(Dirty)かつMISS2かつMISS3かつINACTかつMISS4の時、アドレス・コマンド発生回路ACG2は、メモリセルアレイARYへの書き戻しと、ライトバック・キャッシュメモリからの読出しを行うため、リストアコマンドRT、バンクアクティブコマンドAC、プリチャージコマンドPRE、バンクアクティブコマンドACとプリフェッチコマンドPFとリードコマンドRDを出力する。その際、読出し元SORSは、ライトバック・キャッシュメモリWBCHとなり、DRAMの読出しレイテンシRLATは12、読出し電力RPWは、1.7となる。
【0138】
このように、内蔵キャッシュメモリのみならず、さらにセンスアンプをキャッシュメモリとして利用することにより、16kビット分(8kビット×2バンク)のキャッシュメモリサイズを増やし、キャッシュメモリのヒット率を上げることができ、高速かつ低電力でDRAMを動作させることが出来る。
【0139】
<実施例4>
図26は本願を適用した情報処理装置の一実施例である。
これは、中央演算装置CPU3と1次キャッシュメモリL1C3によって構成される情報処理装置MS3と、複数のキャッシュ内蔵DRAMから構成されるDRAMモジュールMEMと、DRAMモジュールMEMを制御するメモリ制御ユニットMCU3と、デジタルシグナルプロセッサDSP3、PCIブリッジ回路BRG3で構成される。そして、この情報処理装置はクロックCLKに同期して動作する。特に限定はしないが、情報処理装置MS3とメモリ制御ユニットMCU3は同一基板上に形成され、情報処理装置SMS3を形作ることも可能である。
PCIブリッジ回路BRG3はPCIインターフェースを備えており、メモリ制御ユニットMCU3は、情報処理装置MS3、デジタルシグナルプロセッサDSP3、PCIブリッジ回路BRG3からのアクセス要求をうけて、DRAMモジュールMEMを制御する。
【0140】
DRAMモジュールMEMは第0メモリM0、第1メモリM1、第2メモリM2、第3メモリM3、第4メモリM4、第5メモリM5、第6メモリM6、第7メモリM7の8つのメモリで構成されている。前記メモリは、特に制限はないが、16個のキャッシュメモリおよび2つのメモリバンクから構成され、各メモリバンクにはセンスアンプが設けられているSDRAMである。
前記情報処理装置MS3は、特に制限はないが、32ビットのアドレス信号によりアドレス空間を管理することができ、前記DRAMモジュールMEMは、前記情報処理装置MS3に管理されている。
【0141】
前記情報処理装置の動作を説明する。
MS3、DSP3、BR3Gからの読み出し要求がRQ0、RQ1、RQ2を通じてメモリ制御ユニットMCUに入力する。メモリ制御ユニットMCU3は3つの読み出3し要求のうちMS3からの要求を許可すると、MS3は命令信号ICOより読み出し命令とアドレス信号IADよりアドレス、データ属性信号ICDから要求しているデータの属性をメモリ制御ユニットMCU3へ出力する。メモリ制御ユニットMCU3は、情報処理装置MS3からの読出し命令およびアドレスを受け取った後、メモリ命令信号MCOから読み出し命令を、メモリアドレス信号MA0からアドレスをDRAMモジュール(MEM)へ出力すると、DRAMモジュール(MEM)のMDQからデータが出力されDQを通じてMS3へ転送される。
【0142】
図27は本発明のメモリ制御回路(MCU3)の1構成例である。
この回路は、DRAMへのアクセス要求を調停するアクセス調停回路(ARB3)とメモリ制御回路(CNT3)ら構成される。
前記アクセス調停回路(ARB3)はアクセス要求RQ0、RQ1、RQ2を受け付け、アクセス調停回路(ARB3)で設定した優先順位に従ってそれぞれのアクセスを許可する。
【0143】
メモリ制御回路CNT3は、アドレス変換回路AT3、ヒット判定回路HJ3およびアドレス・コマンド発生回路ACG3から構成される。
アドレス変換回路AT3は、許可されたアクセスのアドレスIADをDRAMのバンク、ロウ、セグメント、カラム、キャッシュアドレスADへ変換する。
ICDからは、要求しているデータの種類が命令あるいは処理データであるかの情報が入力する。
ヒット判定回路HJ3は、ICDからの情報とアドレス変換回路AT3で変換されたアドレスを受け取り、DRAM内部のキャッシュメモリおよびセンスアンプへのヒット/ミス判定と、ヒット判定を行ったDRAM内部キャッシュメモリ(CH0からCH15)とDRAMのメモリセルアレイ(ARY)との間にデータの同一性があるかのクリーン/ダーティ判定を行う。
アドレス・コマンド発生回路ACG3はヒット判定回路HJ3の判定結果によってDRAMモジュールを制御するメモリコマンド信号をMC0から、メモリアドレス信号をMAD0から出力し、入出力信号MDQを通じてデータ転送を行う。
【0144】
図28メモリ制御回路CNT3によって割り当てられるDRAMに内蔵しているキャッシュメモリの一例を示している。特に限定はしないが、キャッシュメモリCH8からCH15までのキャッシュメモリ群ICHは、データの属性が命令に対して割り当てられており、キャッシュメモリCH0からCH7までのキャッシュメモリ群DCHは、データの属性が処理データに対して割り当てられている。さらに、キャッシュメモリ群DCHのうち1つは、図14で示す予備キャッシュメモリの役割をする。
【0145】
データの属性が命令の場合は、DRAMに対して読出し要求のみが発生するので、データの属性が命令に対して割り当てられたキャッシュメモリはDRAMアレイへの書き戻しを行う必要がないため、高速にアクセスすることが出来る。
データの属性が処理データの場合は、DRAMに対して読出しおよび書き込み要求が発生するので、データの属性が処理データに対して割り当てられたキャッシュメモリDCHはDRAMアレイへの書き戻しを行う必要がある。そこで、キャッシュメモリDCHには、予備キャッシュメモリを設けることにより、図11、図12で示した動作により、DRAMモジュールのミス時のレイテンシーを6Tに抑え高速にアクセスすることが出来る。
データの属性(命令、データ)に対し、それぞれに、DRAMに内蔵したキャッシュメモリを割り当てることで、データの属性の違いによるキャッシュメモリ内のデータの入れ替えが起こらず、データの属性毎に最適に、キャッシュを制御することができる。
【0146】
図29はメモリ制御回路MCU3で行う、内蔵キャッシュに対するヒット判定の一例を示す。
命令ICOM、アドレスIADおよびデータの属性ICDがメモリ制御回路にMCU3に入力すると、メモリ制御回路MCU3内のヒット判定回路HJ3は、データ属性が命令の場合は、キャッシュメモリCH8からCH15までのキャッシュメモリ群ICHに対してヒット判定を行い、データ属性が処理データの場合は、キャッシュメモリCH0からCH7までのキャッシュメモリ群DCHに対してヒット判定を行う。キャッシュメモリ群ICHに対してヒットした場合IHITを、ミスが生じた場合IMISSを、キャッシュメモリ群DCHに対してヒットした場合DHITを、ミスが生じ、クリーンの場合DMISS(Clean)を、ミスが生じ、ダーティの場合DMISS(Dirty)をアドレス・コマンド発生回路ACGへ出力する。
【0147】
図30−(a)は図29で説明したヒット判定結果に基づいて、アドレス・コマンド発生回路ACGがメモリモジュールMEM0に対して出力する、データ読出しのためのコマンドの一例である。
【0148】
判定結果がIHITの時、アドレス・コマンド発生回路ACG3はリードコマンドRDを出力する。その際、読出し元はヒットした命令用キャッシュメモリICHで、DRAMの読出しレイテンシRLATは2、読出し電力RPWは、0.25となる。
【0149】
判定結果がIMISSの時、アドレス・コマンド発生回路ACG3はバンクアクティブコマンドAC、プリフェッチコマンドPF、リードコマンドRD、プリチャージコマンドPREを出力する。その際、読出し元SORSは、命令用キャッシュメモリICHで、DRAMの読出しレイテンシRLATは6、読出し電力RPWは、1.0となる。
【0150】
判定結果がDHITの時、アドレス・コマンド発生回路ACG3はリードコマンドRDを出力する。その際、読出し元SORSは、ヒットしたデータ用キャッシュメモリDCHとなり、DRAMの読出しレイテンシRLATは2、読出し電力RPWは、0.25となる。
【0151】
判定結果がDMISS(Clean)の時、アドレス・コマンド発生回路ACG3はバンクアクティブコマンドAC、プリフェッチコマンドPF、リードコマンドRD、プリチャージコマンドPREを出力する。その際、読出し元SORSは、処理データ用キャッシュメモリDCHで、DRAMの読出しレイテンシRLATは6、読出し電力RPWは、1.0となる。
【0152】
判定結果がDMISS(Dirty)の時、アドレス・コマンド発生回路ACG3はバンクアクティブコマンドAC、プリフェッチコマンドPF、リードコマンドRD、プリチャージコマンドPRE、リストアコマンドRT、バンクアクティブコマンドAC、プリチャージコマンドPREを出力する。その際、読出し元SORSは、データ用キャッシュメモリDCHとなり、DRAMの読出しレイテンシRLATは6、読出し電力RPWは、1.8となる。
【0153】
図30−(b)は図29で説明したヒット判定結果に基づいて、アドレス・コマンド発生回路ACGがメモリモジュールMEM0に対して出力する、データ書き込みのためのコマンドの一例である。
【0154】
判定結果がDHITの時、アドレス・コマンド発生回路ACG3はライトコマンドWTを出力する。その際、書き込み先DESTは、ヒットした処理データ用キャッシュメモリDCHでDRAMの書き込みレイテンシWLATは0、書き込み電力WPWは0.25となる。
【0155】
判定結果がDMISS(Clean)の時、アドレス・コマンド発生回路ACG3はバンクアクティブコマンドAC、プリフェッチコマンドPF、ライトコマンドWT、プリチャージコマンドPREを出力する。その際、書き込み先DESTは、ミスが生じた処理データ用キャッシュメモリDCHとなり、DRAMの書き込みレイテンシWLATは4、書き込み電力WPWは、1.0となる。
【0156】
判定結果がDMISS(Dirty)の時、アドレス・コマンド発生回路ACG3はバンクアクティブコマンドAC、プリフェッチコマンドPF、ライトコマンドWT、プリチャージコマンドPRE、リストアコマンドRT、バンクアクティブコマンドAC、プリチャージコマンドPREを出力する。その際、書き込み先DESTは、予備キャッシュメモリとなり、書き込みレイテンシWLATは4、書き込み電力WPWは、1.8となる。
【0157】
このように、データの属性(命令、データ)に対し、それぞれに、DRAMに内蔵したキャッシュメモリを割り当てることで、データの属性の違いによるキャッシュメモリ内のデータの入れ替えが起こらず、データの属性毎に最適に、キャッシュを制御することができる。さらに、キャッシュメモリDCHには、予備キャッシュメモリを設け、図11、図12で示した制御と同様の制御を行うことで、DRAMモジュールへ高速にアクセスすることが出来る。
【0158】
<実施例5>
図31はメモリ制御回路MCU3で行う、内蔵キャッシュおよびセンスアンプキャッシュに対するヒット判定の一例を示す。
命令ICOM、アドレスIADおよびデータの属性ICDがメモリ制御回路にMCU3に入力すると、メモリ制御回路MCU3内のヒット判定回路HJ3は、キャッシュメモリおよび、センスアンプへのヒット判定を行う。
【0159】
キャッシュメモリへのヒット判定は、データ属性が命令の場合は、キャッシュメモリCH8からCH15までのキャッシュメモリ群ICHに対してヒット判定を行い、データ属性が処理データの場合は、キャッシュメモリCH0からCH7までのキャッシュメモリ群DCHに対してヒット判定を行う。キャッシュメモリ群ICHに対してヒットした場合IHITを、ミスが生じた場合IMISSを、キャッシュメモリ群DCHに対してヒットした場合DHITを、ミスが生じた場合DMISSを、アドレス・コマンド発生回路ACGへ出力する。
また、メモリ制御回路MCU3内のヒット判定回路HJ3は、同時に、センスアンプへのヒット判定を行う。センアンプへヒットした場合は、SAHITを、ミスが生じ、センスアンプが活性化している場合は、SAMISS(ACT)を、ミスが生じセンスアンプが非活性の場合は、SAMISS(INACT)をアドレス・コマンド発生回路ACGへ出力する。
図32−(a)は図31で説明したヒット判定結果に基づいて、アドレス・コマンド発生回路ACGがメモリモジュールMEM0に対して出力する、データ書き込みのためのコマンドの一例である。
判定結果がDHITかつSAHIT(ACT)の時、アドレス・コマンド発生回路ACG3はライトコマンドWT、リストアコマンドRTを出力する。その際、書き込み先DESTは、ヒットした処理データ用キャッシュメモリWCHとメモリセルアレイARYとなり、DRAMの書き込みレイテンシWLATは0、書き込み電力WPWは0.35となる。
【0160】
判定結果がDHITかつSAMISS(ACT)の時、アドレス・コマンド発生回路ACG3はライトコマンドWT、プリチャージコマンドPRE、リストアコマンドRT、バンクアクティブコマンドACを出力する。その際、書き込み先DESTは、ヒットした処理データ用キャッシュメモリDCHとメモリセルアレイARYとなり、DRAMの書き込みレイテンシWLATは0、書き込み電力WPWは0.9となる。
【0161】
判定結果がDHITかつSAMISS(INACT)の時、アドレス・コマンド発生回路ACG3はライトコマンドWT、リストアコマンドRT、バンクアクティブコマンドACを出力する。その際、書き込み先DESTは、ヒットした処理データ用キャッシュメモリDCHとメモリセルアレイARYとなり、DRAMの書き込みレイテンシWLATは0、書き込み電力WPWは0.8となる。
【0162】
判定結果がDMISS かつSAHIT(ACT)の時、アドレス・コマンド発生回路ACG3はプリフェッチコマンドPF、ライトコマンドWT、リストアコマンドRTを出力する。その際、書き込み先DESTは、ヒットした処理データ用キャッシュメモリDCHとなり、DRAMの書き込みレイテンシWLATは2、書き込み電力WPWは、0.5となる。
【0163】
判定結果がDMISS かつSAMISS(ACT)の時、アドレス・コマンド発生回路ACG3はプリチャージコマンドPRE、バンクアクティブコマンドAC、プリフェッチコマンドPF、ライトコマンドWT、リストアコマンドRTを出力する。その際、書き込み先DESTは、ヒットした処理データ用キャッシュメモリDCHとなり、DRAMの書き込みレイテンシWLATは6、書き込み電力WPWは、1.0となる。
【0164】
判定結果がDMISS かつSAMISS(INACT)の時、アドレス・コマンド発生回路ACG3はバンクアクティブコマンドAC、プリフェッチコマンドPF、ライトコマンドWT、リストアコマンドRTを出力する。その際、書き込み先DESTは、ヒットした処理データ用キャッシュメモリDCHとなり、DRAMの書き込みレイテンシWLATは6、書き込み電力WPWは、0.9となる。
【0165】
図32−(b)は図31で説明したヒット判定結果に基づいて、アドレス・コマンド発生回路ACGがメモリモジュールMEM0に対して出力する、データ読出しのためのコマンドの一例である。
【0166】
判定結果がIHITの時、アドレス・コマンド発生回路ACG3はリードコマンドRDを出力する。その際、読出し元SORSは、ヒットした命令用キャッシュメモリICHとなり、DRAMの読出しレイテンシRLATは2、読出し電力RPWは、0.25となる。
【0167】
判定結果がDHITの時、アドレス・コマンド発生回路ACG3はリードコマンドRDを出力する。その際、読出し元SORSは、ヒットしたデータ用キャッシュメモリDCHとなり、DRAMの読出しレイテンシRLATは2、読出し電力RPWは、0.25となる。
【0168】
判定結果がIMISSかつDMISSで、SAHIT(ACT)の時、アドレス・コマンド発生回路ACG3はプリフェッチコマンドPF、リードコマンドRDを出力する。その際、読出し元SORSは、命令用キャッシュメモリICHおよびDCHとなり、DRAMの読出しレイテンシRLATは4、読出し電力RPWは、0.5となる。
【0169】
判定結果がIMISSかつDMISSで、SAMISS(ACT)の時、アドレス・コマンド発生回路ACG3はプリチャージコマンドPRE、バンクアクティブコマンドAC、プリフェッチコマンドPF、リードコマンドRDを出力する。その際、読出し元SORSは、データ用キャッシュメモリDCHとなり、DRAMの読出しレイテンシRLATは8、読出し電力RPWは、1.0となる。
【0170】
判定結果がIMISSかつDMISSで、SAMISS(INACT)の時、アドレス・コマンド発生回路ACG3はバンクアクティブコマンドAC、プリフェッチコマンドPF、リードコマンドRDを出力する。その際、読出し元SORSは、データ用キャッシュメモリDCHとなり、DRAMの読出しレイテンシRLATは6、読出し電力RPWは、0.9となる。
【0171】
このように、データの属性(命令、データ)に対し、それぞれに、DRAMに内蔵したキャッシュメモリを割り当てることで、データの属性の違いによるキャッシュメモリ内のデータの入れ替えが起こらず、データの属性毎に最適に、キャッシュを制御することができる。さらに、キャッシュメモリDCHへの書き込み時は、センスアンプを活性化させ、常にメモリセルアレイARYへ書き戻すことで、高速かつ低電力でキャッシュメモリDCHとメモリセルアレイとのデータの同一性を取ることが出来る。
キャッシュメモリからのデータの読出し時は、センスアンプを活性化させることでより低電力で高速にデータを読み出すことが出来る。
【0172】
CPUと1次キャッシュメモリからなる情報処理部とメモリ制御ユニットつまりメモリ制御装置とを別の半導体チップ上に形成してもよいが、両者を単一の半導体チップ上に形成してもよい。その場合、単一の半導体チップ上に形成された情報処理装置は、データバスDQを別々の半導体チップで形成するよりも幅の広いバスとすることが可能となる上に、両者の距離が短縮されるために、両者間での高速データ転送が可能となる。
【0173】
更に、メモリ制御装置のみを他者に設計させ、或いは既に設計されている設計資産として情報処理部と同一の半導体チップ上に形成してワンチップの情報処理装置とすることも可能である。
この場合、メモリ制御装置の回路等の構成を記録媒体に記録し、情報処理部の設計者或いは情報処理装置の設計者に提供することの可能である。
【0174】
また、自らが半導体装置の製造を行う場合、他者が提供する情報処理部に、本発明のメモリ制御装置或いはメモリ制御装置とメモリ装置とを組み合わせ、半導体装置を提供して他者に供給することも可能である。
【0175】
他方、メモリ制御ユニットをメモリモジュール内に設けることも可能である。メモリ制御装置を情報処理装置或いはメモリモジュール内に形成することで、情報処理システムの製造者の負荷を低減するとが可能となり、情報処理システムの小型化も可能となる。
また、半導体装置の製造プロセスの進歩にあわせ、メモリモジュールの一部或いは全部を情報処理装置と同一の半導体チップ上に形成することも可能である。つまりワンチップの情報処理システムの実現であり、システムの一層の小型化が可能となる。
また、中央演算処理装置にメモリ制御回路の動作をソフト的に実行させることも可能である。勿論、メモリモジュールと情報処理部とを同一の半導体チップ上に形成しない場合であっても、中央処理装置にメモリ制御装置の動作をソフト的に実行させることも可能である。
【0176】
但し、ソフト的に実施する場合、余分な構成の付加は不要であるが、中央処理装置にアドレス比較等を行わせるための負荷が大きくなり、中央処理装置が行う他の処理が低速となってしまう可能性は残る。
本発明を別構成とすることで、中央処理装置に対して余計な付加を与えずに本発明の効果を得ることが可能となる。
【0177】
また、図33に示すように、単一チップの情報処理装置S−MSとそれぞれが単一チップのメモリ装置(S−ME1〜S−ME2)とで形成されたモジュールとを1つのパッケージで封止した半導体装置であってもよい。この構成は、マルチチップモジュール或いはマルチチップパッケージなどとして知られている。
【0178】
以上、高速動作可能な情報処理システムの実施形態を説明してきたが、本発明は上記実施形態に限定されるわけでは無く、本願発明の思想を逸脱しない範囲で、他にも様々な実施形態を採用することが可能である。
【0179】
また、第1、第3、第4、及び、第5の実施形態ではメモリモジュールは複数のバンクを有する構成としたが、メモリバンクを有さないメモリモジュールにより構成される情報処理システムに適用することも可能である。メモリバンクを有さないメモリモジュールにより構成される情報処理システムのメモリ装置へのアクセスの高速化を実現することも可能である。
【0180】
【発明の効果】
本発明によって、キャッシュメモリを内蔵したDRAMのキャッシュメモリをキャッシュメモリに対してヒット判定対象とするキャッシュメモリとヒット判定対象としない予備キャッシュメモリに区別し、キャッシュメモリへのヒット/ミス判定結果により、最初に、予備キャッシュメモリへのデータ転送を行い、その後、メモリセルアレイへのデータ転送を行うことで、キャッシュメモリ内蔵DRAMを高速、かつ低電力に動作させることができる。
またキャッシュメモリとセンスアンプをキャッシュメモリとして利用することによりにキャッシュ内蔵DRAMを高速かつ低電力で動作させることができる。
【図面の簡単な説明】
【図1】本発明を適用した情報処理装置の一実施例である。
【図2】キャッシュメモリを内蔵したDRAMを用いたメモリモジュールの一実施例である。
【図3】キャッシュメモリを内蔵したDRAMを用いたメモリモジュールの読出し動作の一例である。
【図4】キャッシュメモリを内蔵したDRAMを用いたメモリモジュールの書き込み動作の一例である。
【図5】キャッシュメモリを内蔵したDRAMを用いたメモリモジュールの書き戻し動作の一例である。
【図6】キャッシュメモリを内蔵したDRAMを用いたメモリモジュールの読出し動作の一例である。
【図7】本発明の一実施例である。
【図8】アドレス変換回路が行うアドレス変換の一例である。
【図9】メモリ制御ユニットMCUが行う、内蔵キャッシュメモリの割り当て方法の一例である。
【図10】ヒット判定回路HJがヒット判定をおこなうために保持しているDRAMアドレス比較情報の一例である。
【図11】メモリ制御回路CNTのデータ読出し動作の一例である。
【図12】メモリ制御回路MCUがDRAMモジュール(MEM)へ出力する動作波形の一例である。
【図13】メモリ制御回路MCUが行うDRAMモジュール(MEM)への読み出しおよび書き込み時のコマンド発行手順の一例である。
【図14】ヒット判定回路HJが、ヒット判定を行うために保持しているDRAMアドレス比較情報の変化の様子を示す図である。
【図15】本発明を適用した情報処理装置の一実施例である。
【図16】本発明の一実施例である。
【図17】メモリ制御ユニットMCU1が行う、内蔵キャッシュメモリの割り当て方法の一例である。
【図18】ヒット判定回路HJ1がヒット判定をおこなうために保持しているDRAMアドレス比較情報の一例である。
【図19】ヒット判定回路HJ1が、ヒット判定を行うために保持しているDRAMアドレス比較情報の変化の様子を示す図である。
【図20】本発明の一実施例である。
【図21】メモリ制御ユニットMCU2が行う、内蔵キャッシュメモリの割り当て方法の一例である。
【図22】ヒット判定回路HJ2がヒット判定をおこなうために保持しているDRAMアドレス比較情報の一例である。
【図23】ヒット判定回路HJ2のヒット判定動作の一例である。
【図24】メモリ制御回路MCU2が行うDRAMモジュール(MEM)への書き込み時のコマンド発行手順の一例である。
【図25】メモリ制御回路MCU2が行うDRAMモジュール(MEM)への読み出し時のコマンド発行手順の一例である。
【図26】本発明を適用した情報処理装置の一実施例である。
【図27】本発明の一実施例である。
【図28】メモリ制御ユニットMCU3が行う、内蔵キャッシュメモリの割り当て方法の一例である。
【図29】ヒット判定回路HJ3のヒット判定動作の一例である。
【図30】メモリ制御回路MCU3が行うDRAMモジュール(MEM)への読出しおよび書き込み時のコマンド発行手順の一例である。
【図31】ヒット判定回路HJ3のヒット判定動作の一例である。
【図32】メモリ制御回路MCU3が行うDRAMモジュール(MEM)への読出しおよび書き込み時のコマンド発行手順の一例である。
【図33】本発明を適用したマルチチップモジュールである。
【符号の説明】
MS0、MS1、MS2:情報処理装置、
CPU、CPU0、CPU1、CPU2:中央演算処理装置、
L1C:1次キャッシュメモリ、
DSP:デジタルシグナルプロセッサ、
BRG:PCIブリッジ回路、
MCU:メモリ制御ユニット、
MEM:DRAMモジュール、
ME0、ME1、ME2、ME3、ME4、ME5、ME6、ME7:DRAM、
RQ0、RQ1、RQ2 :アクセス要求信号、
ICO、MCO:命令信号、
IAD、MAD:アドレス信号、
DQ、MDQ:データ信号、
CBE:アクセス要求信号、
ADQ:アドレス/データ信号、
B0、B1:メモリバンク、
CACHE:キャッシュメモリ部、
CH−DEC:キャッシュデコーダー、
X−DEC:ロウデコーダ、
SG−DEC:セグメントデコーダー、
ARY:メモリセルアレイ、
SA:センスアンプ、
Y−DEC:カラムデコーダー、
CH15、CH14、CH13、CH12、CH11、CH10、CH9、CH8:キャッシュメモリ、
CH7、CH6、CH5、CH4、CH3、CH2、CH1、CH0:キャッシュメモリ、
IOBUF:IOバッファ、
WL:ワード線、BL:ビット線、
CLK:クロック信号、 T:クロック周期
AC:バンクアクティブコマンド、 BK:バンクアドレス
R0、R1:ロウアドレス、 PF:プリフェッチコマンド
CH0:キャッシュアドレス、 SG0:セグメントアドレス
RD:リードコマンド、 C0:カラムアドレス
PRE:プリフェッチコマンド、
D0、D1、D2、D3:データ信号、
WT:ライトコマンド、 RST:リストアコマンド、
CNT、CNT1、CNT2、CNT3:メモリ制御回路、
AT、AT1、AT2、AT3:アドレス変換回路、
HJ、HJ1、HJ2、HJ3:ヒット判定回路、
ACG、ACG1、ACG2、ACG3:アドレス・コマンド発生回路、
ARB、ARB1、ARB2、ARB3:アクセス調停回路、
GT0、GT1、GT2:アクセス許可信号、
TAG0〜TAG15:タグアドレス、
IND0〜IND7:インデックスアドレス、
LIN0〜LIN4:ラインサイズ、 R12〜R0:ロウアドレス、
BA:バンクアドレス、 S0、S1:セグメントアドレス、
C0〜C7:カラムアドレス、
BANK:バンクアドレス、 TRAD[12:0]:ロウアドレス、
SGAD:セグメントアドレス、 CHAD:はキャッシュアドレス、
DT:ダーティビット、 VL:バリッドビット、
CHANGE: キャッシュメモリ切り替え動作、
CMDFLOW:コマンド実行手順、
WBCH0、WBCH1:キャッシュメモリ群、
WTCH0、WTCH1:キャッシュメモリ群、
WTH:ライトスルービット、
SVL:センスアンプバリッドビット、
HIT1、HIT2、HIT3、HIT4:キャッシュメモリに対するヒット、
MISS1(Dirty):キャッシュメモリに対するミスかつダーティ、
MISS1(Clean):キャッシュメモリに対するミスかつクリーン、
MISS2:キャッシュメモリに対するミス、
HIT3:センスアンプに対するヒット、
MISS3(ACT):センスアンプに対するミスかつセンスアンプが活性、
MISS3(INACT):センスアンプに対するミスかつセンスアンプが非活性、
HIT4:キャッシュメモリのセンスアンプへのヒット、
MISS4:キャッシュメモリのセンスアンプへのミス、
ICH:命令用キャッシュメモリ群、
DCH:処理データ用キャッシュメモリ群、
HITC:ヒット判定、
IHIT:命令用キャッシュメモリに対するヒット、
IMISS:命令用キャッシュメモリに対するミス、
DHIT:処理データ用キャッシュメモリに対するヒット、
DMISS(Dirty):処理データ用キャシュメモリに対するミスかつダーティ、
DMISS(Clean):処理データ用キャシュメモリに対するミスかつクリーン、
HITSA:センスアンプにたいするヒット判定、
SAHIT:センスアンプに対するヒット、
SAMISS(ACT):センスアンプに対するミスかつセンスアンプが活性、
SAMISS(INACT):センスアンプに対するミスかつセンスアンプが非活性、
RLAT:リードレイテンシ、
WLAT:ライトレイテンシ、
RPW:リード時のDRAMモジュールの電力、
WPW:ライト時のDRAMモジュールの電力、
DEST:書き込み先、
SORS:読出し元、
PCB:プリント基盤、
COVER:モジュールの封止カバー、
S−ME1、S−ME2:半導体メモリ、
S−MS:半導体情報処理装置、
PATH1:S−MSとS−ME1を接続するボンデイング配線、
PATH2:S−MSとS−ME2を接続するボンデイング配線、
PATH3:S−MSとPCBを接続するボンデイング配線、
PATH4:S−ME1とPCBを接続するボンデイング配線、
PATH5:S−ME2とPCBを接続するボンデイング配線。
Claims (13)
- 中央演算処理装置と、
前記中央演算処理装置から読み出し要求が供給されるメモリ制御装置と、
前記メモリ制御装置によって制御されメモリバンクとキャッシュメモリを有するメモリ装置とを具備した情報処理装置において、
前記メモリバンク1つに対して割り当てられた複数のキャッシュメモリのうち、1つはヒット判定の対象としないことを特徴とするメモリ制御方法。 - 前記キャッシュメモリへのヒット判定の結果に応じて、
前記ヒット判定の対象となるキャッシュメモリを変えることを特徴とする請求項1に記載のメモリ制御方法。 - 前記キャッシュメモリへのヒット判定の結果、前記キャッシュメモリに対してミスが生じ、かつ前記メモリバンクへの書き戻しが必要な場合、
ヒット判定の対象としない前記キャッシュメモリへ前記メモリバンクから前記読み出し要求に対応したデータの転送を行い、ヒット判定の対象とするキャッシュメモリのデータを前記メモリバンクに書き込みを行なった後に、
前記ヒット判定の対象としないキャッシュメモリをヒット判定の対象とする一方、前記ヒット判定の対象とするキャッシュメモリをヒット判定の対象としないようにヒット判定の対象を切り替えることを特徴とする請求項1に記載のメモリ制御方法。 - 中央演算処理装置と、
前記中央演算処理装置から読み出し要求が供給されるメモリ制御装置と、
前記メモリ制御装置によって制御されメモリバンクとキャッシュメモリを有するメモリ装置とを具備した情報処理装置において、
前記読み出し要求に対して、前記キャッシュメモリと前記メモリバンクに接続されたセンスアンプメモリの両方に対してヒット判定することを特徴とするメモリ制御方法。 - 前記中央演算処理装置からの要求データが命令コードか処理データかの識別を行い、前記識別の結果、命令コードの場合はキャッシュメモリに、処理データの場合はセンスアンプメモリに前記ヒット判定の対象を割り当てることを特徴とする請求項4に記載のメモリ制御方法。
- 前記中央演算処理装置からの要求データが命令コードか処理データかの識別を行い、前記識別の結果、命令コードの場合はキャッシュメモリからデータを読み出し、処理データの場合は、メモリバンクへアクセスを行なうことを特徴とする請求項4に記載のメモリ制御方法。
- 前記情報処理装置において、DRAM、SRAMまたは不揮発性メモリのいずれかを含む前記メモリ装置を用いることを特徴とする請求項1又は4に記載のメモリ制御方法。
- 前記情報処理装置において、SRAMからなる前記キャッシュメモリ装置を用いることを特徴とする請求項1又は4に記載のメモリ制御方法。
- 前記中央演算処理装置と前記メモリ制御装置とが1チップ上に設けられた情報処理装置を用いることを特徴とする請求項1又は4に記載のメモリ制御方法。
- 中央演算処理装置と、
前記中央演算処理装置から読み出し要求が供給されるメモリ制御装置と、
前記メモリ制御装置によって制御されメモリバンクとキャッシュメモリを有するメモリ装置とを具備した情報処理装置において、
前記キャッシュメモリのうち、一部の記憶領域はヒット判定の対象としないことを特徴とするメモリ制御方法。 - 前記キャッシュメモリは前記メモリバンクに対して重複したアドレスを割り当てていないことを特徴とする請求項10に記載のメモリ制御方法。
- 前記中央演算処理装置に対して、前記キャッシュメモリの記憶領域を複数割り当てることを特徴とした請求項10に記載のメモリ制御方法。
- 前記中央演算処理装置と前記メモリ制御装置と前記メモリ装置とが1チップ上に設けられた情報処理装置を用いることを特徴とする請求項10に記載のメモリ制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002189513A JP4160790B2 (ja) | 2002-06-28 | 2002-06-28 | 半導体装置 |
US10/457,609 US6928003B2 (en) | 2002-06-28 | 2003-06-10 | Memory controller controlling cached DRAM |
US11/155,504 US7328311B2 (en) | 2002-06-28 | 2005-06-20 | Memory controller controlling cashed DRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002189513A JP4160790B2 (ja) | 2002-06-28 | 2002-06-28 | 半導体装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004030517A true JP2004030517A (ja) | 2004-01-29 |
JP2004030517A5 JP2004030517A5 (ja) | 2005-10-20 |
JP4160790B2 JP4160790B2 (ja) | 2008-10-08 |
Family
ID=29774301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002189513A Expired - Fee Related JP4160790B2 (ja) | 2002-06-28 | 2002-06-28 | 半導体装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US6928003B2 (ja) |
JP (1) | JP4160790B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150006266A (ko) * | 2013-07-08 | 2015-01-16 | 삼성전자주식회사 | 액티브 상태에서 인터페이스 모드를 전환하는 스토리지 시스템 및 ufs 시스템 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005085289A (ja) * | 2003-09-04 | 2005-03-31 | Elpida Memory Inc | 半導体記憶装置 |
US20070005902A1 (en) * | 2004-12-07 | 2007-01-04 | Ocz Technology Group, Inc. | Integrated sram cache for a memory module and method therefor |
US7983091B2 (en) * | 2007-11-06 | 2011-07-19 | Intel Corporation | Divided bitline flash memory array with local sense and signal transmission |
KR101132797B1 (ko) * | 2010-03-30 | 2012-04-02 | 주식회사 하이닉스반도체 | 모듈제어회로를 포함하는 반도체모듈 및 반도체모듈의 제어방법 |
US9779025B2 (en) | 2014-06-02 | 2017-10-03 | Micron Technology, Inc. | Cache architecture for comparing data |
US9805802B2 (en) | 2015-09-14 | 2017-10-31 | Samsung Electronics Co., Ltd. | Memory device, memory module, and memory system |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04255989A (ja) * | 1991-02-07 | 1992-09-10 | Mitsubishi Electric Corp | 半導体記憶装置および内部電圧発生方法 |
US5771367A (en) * | 1992-12-17 | 1998-06-23 | International Business Machines Corporation | Storage controller and method for improved failure recovery using cross-coupled cache memories and nonvolatile stores |
US5822772A (en) * | 1996-03-22 | 1998-10-13 | Industrial Technology Research Institute | Memory controller and method of memory access sequence recordering that eliminates page miss and row miss penalties |
US5983313A (en) * | 1996-04-10 | 1999-11-09 | Ramtron International Corporation | EDRAM having a dynamically-sized cache memory and associated method |
US5848428A (en) * | 1996-12-19 | 1998-12-08 | Compaq Computer Corporation | Sense amplifier decoding in a memory device to reduce power consumption |
JP3161384B2 (ja) | 1997-09-16 | 2001-04-25 | 日本電気株式会社 | 半導体記憶装置とそのアクセス方法 |
US5983325A (en) * | 1997-12-09 | 1999-11-09 | Advanced Micro Devices, Inc. | Dataless touch to open a memory page |
JP3786521B2 (ja) | 1998-07-01 | 2006-06-14 | 株式会社日立製作所 | 半導体集積回路及びデータ処理システム |
JP3178423B2 (ja) * | 1998-07-03 | 2001-06-18 | 日本電気株式会社 | バーチャルチャネルsdram |
US6415353B1 (en) * | 1998-10-01 | 2002-07-02 | Monolithic System Technology, Inc. | Read/write buffers for complete hiding of the refresh of a semiconductor memory and method of operating same |
US6629207B1 (en) * | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method for loading instructions or data into a locked way of a cache memory |
JP2002063069A (ja) | 2000-08-21 | 2002-02-28 | Hitachi Ltd | メモリ制御装置、データ処理システム及び半導体装置 |
-
2002
- 2002-06-28 JP JP2002189513A patent/JP4160790B2/ja not_active Expired - Fee Related
-
2003
- 2003-06-10 US US10/457,609 patent/US6928003B2/en not_active Expired - Lifetime
-
2005
- 2005-06-20 US US11/155,504 patent/US7328311B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150006266A (ko) * | 2013-07-08 | 2015-01-16 | 삼성전자주식회사 | 액티브 상태에서 인터페이스 모드를 전환하는 스토리지 시스템 및 ufs 시스템 |
KR102094902B1 (ko) | 2013-07-08 | 2020-03-30 | 삼성전자주식회사 | 액티브 상태에서 인터페이스 모드를 전환하는 스토리지 시스템 및 ufs 시스템 |
Also Published As
Publication number | Publication date |
---|---|
US20040001362A1 (en) | 2004-01-01 |
US20050232060A1 (en) | 2005-10-20 |
US6928003B2 (en) | 2005-08-09 |
JP4160790B2 (ja) | 2008-10-08 |
US7328311B2 (en) | 2008-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3807582B2 (ja) | 情報処理装置及び半導体装置 | |
JP6840145B2 (ja) | 高速メモリインタフェースのためのコマンドアービトレーション | |
KR100764633B1 (ko) | 메모리 제어장치, 데이터 처리시스템 및 반도체장치 | |
US7519774B2 (en) | Data processor having a memory control unit with cache memory | |
JP3786521B2 (ja) | 半導体集積回路及びデータ処理システム | |
JP5420648B2 (ja) | 半導体装置 | |
WO2018013158A1 (en) | Memory controller with flexible address decoding | |
WO2003088048A1 (en) | Non-uniform cache apparatus, systems, and methods | |
KR102615693B1 (ko) | Dram을 위한 리프레시 관리 | |
JP2004536417A (ja) | 読出及び書込動作でバースト順序が異なるアドレッシングを行うメモリデバイス | |
US7328311B2 (en) | Memory controller controlling cashed DRAM | |
JP3816110B2 (ja) | 半導体集積回路装置 | |
JPH04252486A (ja) | 半導体記憶装置 | |
WO2016043158A1 (ja) | メモリ制御回路および記憶装置 | |
JPH04318389A (ja) | 半導体記憶装置におけるデータ転送装置 | |
US6542958B1 (en) | Software control of DRAM refresh to reduce power consumption in a data processing system | |
JP2004030517A5 (ja) | ||
JP2003297082A (ja) | 半導体記憶装置及びその制御方法 | |
JP4936489B2 (ja) | 半導体装置 | |
US20240086325A1 (en) | DRAM Cache with Stacked, Heterogenous Tag and Data Dies | |
JPH0337747A (ja) | 記憶装置制御装置、ディスクキャッシュ方式およびディスクキャッシュシステム | |
TW202403750A (zh) | 儲存模組及其操作方法、以及記憶體系統 | |
CN118525335A (zh) | 用于恢复细粒度dram中的常规访问性能的方法和装置 | |
CN118689800A (zh) | 缓存器及其控制方法、计算机系统 | |
JPH11143770A (ja) | 多バンクdram制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050624 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050624 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050624 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080314 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080408 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080609 |
|
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: 20080624 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080718 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110725 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110725 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110725 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120725 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120725 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130725 Year of fee payment: 5 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |