JP3789998B2 - メモリ内蔵プロセサ - Google Patents
メモリ内蔵プロセサ Download PDFInfo
- Publication number
- JP3789998B2 JP3789998B2 JP00621797A JP621797A JP3789998B2 JP 3789998 B2 JP3789998 B2 JP 3789998B2 JP 00621797 A JP00621797 A JP 00621797A JP 621797 A JP621797 A JP 621797A JP 3789998 B2 JP3789998 B2 JP 3789998B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- dram
- processor
- sram
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims description 418
- 230000004044 response Effects 0.000 claims description 7
- 239000004065 semiconductor Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 22
- 239000003990 capacitor Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 238000000034 method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7846—On-chip cache and off-chip main memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Dram (AREA)
- Microcomputers (AREA)
Description
【0001】
【発明の属する技術分野】
この発明は、メモリとプロセサとが同一チップ上に形成されたメモリ内蔵プロセサに関し、特に、面積効率の優れたキャッシュメモリを内蔵するメモリ内蔵プロセサに関する。
【0002】
【従来の技術】
マイクロプロセサ(MPU)または中央演算処理装置(CPU)などのプロセサは、その動作速度が100MHz、200MHzと高速化されてきている。一方、主記憶として用いられるダイナミック・ランダム・アクセス・メモリ(DRAM)は、高速化されてきてはいるものの、その動作速度は依然プロセサのそれよりも遅い。この動作速度の差が存在すると、DRAMへのアクセス時、必要データが揃うまで、プロセサはウエイト状態となる。このようなウエイト状態をできるだけ少なくして高速データ処理を行なうようにシステム性能を改善するために、主記憶とプロセサとの間にキャッシュメモリと呼ばれる高速のメモリが配置される。このキャッシュメモリに、プロセサが頻繁にアクセスするデータを格納する。
【0003】
処理実行時においては、プログラムに従って処理が進行するため、この処理には、アクセス領域の局所性が存在する。したがって、プロセサが要求するデータがキャッシュメモリ内に格納されているとき(キャッシュヒット時)、連続的にアクセスされるデータがこのキャッシュメモリ内に格納されている可能性が高い。このプロセサが要求するデータがキャッシュメモリに存在する場合には、常にプロセサとキャッシュメモリとの間でデータ転送を行なう。これにより、プロセサのウエイト時間を少なくして、高速処理を行なうことができる。キャッシュメモリ内にプロセサが要求するデータが存在しないとき(キャッシュミス時)のみ、主記憶のDRAMへアクセスする。
【0004】
キャッシュメモリ内に適当なサイズのキャッシュブロック(キャッシュミス時にデータ転送単位となるブロック)を適当な数格納することにより、キャッシュヒット率を高くすることができ、プロセサのウエイト時間を短縮でき、高速データ処理が可能となる。
【0005】
【発明が解決しようとする課題】
キャッシュメモリの記憶容量を大きくすれば、キャッシュヒット率を高くすることができる。このキャッシュメモリとしては、通常スタティック・ランダム・アクセス・メモリ(SRAM)が用いられる。
【0006】
図17は、SRAMセルの構成の一例を示す図である。図17において、SRAMセルSMCは、電源ノードVCCと内部記憶ノードNAの間に接続される負荷素子Z1と、電源ノードVCCと内部記憶ノードNBの間に接続される負荷素子Z2と、内部記憶ノードNAと接地ノードGNDの間に接続されかつそのゲートが内部記憶ノードNBに接続されるnチャネルMOSトランジスタ(絶縁ゲート型電界効果トランジスタ)T1と、内部記憶ノードNBと接地ノードGNDの間に接続されかつそのゲートが内部記憶ノードNAに接続されるnチャネルMOSトランジスタT2と、ワード線WL上の信号電位に応答して導通し、内部記憶ノードNAとビット線BLとを電気的に接続するnチャネルMOSトランジスタT3と、ワード線WL上の信号電位に応答して導通し、内部記憶ノードNBとビット線/BLとを電気的に接続するnチャネルMOSトランジスタT4を含む。
【0007】
ワード線WLには、1行のSRAMセルSMCが接続される。ビット線BLおよび/BLは相補なデータ信号を伝達し、対をなして配設される。このビット線対BLおよび/BLに1列のメモリセルが接続される。
【0008】
負荷素子Z1およびZ2は、記憶ノードNAまたはNBを記憶情報に応じて電源電圧VCC(ノードとそこに与えられる電圧を同じ符号で示す)レベルにプルアップする機能を有し、薄膜トランジスタまたは抵抗素子で形成される。
【0009】
MOSトランジスタT1およびT2はフリップフロップを構成し、この内部記憶ノードNAおよびNBの信号電位を保持する。ワード線WLの信号電位がHレベルに上昇すると、MOSトランジスタT3およびT4が導通し、内部記憶ノードNAおよびNBが、それぞれ、ビット線BLおよび/BLに接続される。この状態で、このSRAMセルSMCに対するデータの読出または書込が行なわれる。
【0010】
この図17に示すように、SRAMセルSMCは、データを記憶するためのMOSトランジスタT1およびT2、ならびにこのSRAMセルSMCにアクセスするためのMOSトランジスタT3およびT4と4個のMOSトランジスタを含んでいる。したがって、このSRAMは、相補データ信号の伝達およびスタティック動作のため高速動作するという利点を有するものの、1ビットのメモリセルSMCの占有面積が大きいという欠点を有する。したがって、このSRAMセルSMCを用いてキャッシュメモリを構築する場合、このキャッシュメモリの記憶容量を増大させると、キャッシュメモリの占有面積が増大する。特に、最近の傾向としてのプロセサとメモリとのワンチップ化およびシステムのサイズ低減などに対する大きな障害となる。
【0011】
図18は、DRAMセルの構成を示す図である。図18においては、2つのDRAMセルDMCaおよびDMCbを示す。DRAMセルDMCaは、ワード線WLaとビット線BLの交差部に対応して配置される。DRAMセルDMCbは、ワード線WLbとビット線/BLの交差部に対応して配置される。DRAMセルDMCaおよびDMCbの各々は、情報を記憶するためのキャパシタCと、対応のワード線WL(WLaまたはWLb)の信号電位に応答して導通し、キャパシタCを、対応のビット線BLまたは/BLに電気的に接続するnチャネルMOSトランジスタQを含む。
【0012】
このDRAMにおいても、ワード線WLaおよびWLbそれぞれに対し、1行のDRAMセルが接続され、ビット線対BLおよび/BLに1列のメモリセルが接続される。このDRAMセルDMCaおよびDMCbのキャパシタCの一方電極ノードへは、一定のセルプレート電圧VCPが印加される。DRAMセルDMCaおよびDMCbは、このキャパシタCの他方電極に蓄積される電荷量に応じて情報を記憶する。メモリセルデータ読出時において、ビット線BLおよび/BLの一方にメモリセルデータが読出され、他方のビット線は、このメモリセルデータに対する基準電位を与える。
【0013】
DRAMセルDMCaおよびDMCbの各々は、この図18に示すように、1つのMOSトランジスタと1つのキャパシタCとで構成される。したがって、図17に示すSRAMセルSMCに比べて、トランジスタの数が少なく、DRAMセルDMCaおよびDMCbの各々の占有面積は、ほぼSRAMセルSMCの1/4となる。したがって、このDRAMは、限られた面積内で、大記憶容量のメモリを実現することができる。
【0014】
しかしながら、このDRAMは、ダイナミック動作を行なっており、各信号線を所定電位にプリチャージする必要があり、SRAMほど高速では動作することはできない。したがってこのDRAMを単純にキャッシュメモリとして用いた場合、高速のキャッシュメモリを実現するのは困難である。
【0015】
それゆえ、この発明の目的は、チップ面積を増加させることなくキャッシュミス時のペナルティを低減することのできるキャッシュシステムを内蔵するメモリ内蔵プロセサを提供することである。
【0016】
【課題を解決するための手段】
請求項1に係るメモリ内蔵プロセサは、与えられたデータおよび命令に従って演算処理を行なう演算処理器と、この演算処理器のためのデータ/命令を含む情報を格納する第1のメモリと、この第1のメモリよりも低速動作でありかつこの第1のメモリよりも大きな記憶容量を有しかつ1ビットのメモリセルのトランジスタ数が第1のメモリのそれよりも少なく、演算処理器のための情報を格納するための第2のメモリと、これら演算処理器、第1のメモリおよび第2のメモリを相互結合するバスと、このバスと別に設けられかつこのバスよりも大きなバス幅を有し、第1のメモリと第2のメモリとの間で情報を転送するための転送手段と、演算処理器のアクセス要求する情報が第1のメモリに記憶されているか否かを判定し該判定結果に従ってバスを介して演算処理器と第1のメモリとの間で情報の転送を行なうための第1の制御手段と、この第1の制御手段による演算処理器が要求する情報が第1のメモリに存在しないとの判定結果により活性化され、アクセス要求された情報が第2のメモリに存在するか否かを判定し、該判定結果が第2のメモリ内でのアクセス要求された情報の存在を示すとき、転送手段を介して第1のメモリと第2のメモリとの間でアクセス要求された情報を含む情報の転送を行なうための第2の制御手段を備える。
【0017】
請求項2に係るメモリ内蔵プロセサは、第2の制御手段の不存在を示す判定結果に応答して、バスを介して第2のメモリと外部に設けられた外部メモリとの間でこのアクセス要求された情報を含む情報の転送を行ない、かつこのアクセス要求された情報を演算処理器へバスを介して転送するための手段をさらに備える。
【0018】
【発明の実施の形態】
図1は、この発明の実施の形態に従うメモリ内蔵プロセサおよびそれを用いるシステムの構成を概略的に示す図である。図1において、処理システムは、メモリ内蔵プロセサ1と、DRAMで構成される主記憶メモリ2と、このメモリ内蔵プロセサ1と主記憶メモリ2の間でのデータ転送および図示しない回路とメモリ内蔵プロセサ1および主記憶メモリ2の間でのデータ転送を制御するためのコントロールユニット3を含む。
【0019】
メモリ内蔵プロセサ1は、与えられた命令およびデータ(以下、両者を含めて情報と称す)に従って、演算処理を行なうプロセサ10と、プロセサ10とプロセサバス11を介して結合され、このプロセサ10の1次キャッシュとして機能する第1のメモリとしてのSRAMキャッシュメモリ12と、このSRAMキャッシュメモリ12と転送バス部13を介して双方向に情報の転送が可能なように結合され、このSRAMキャッシュメモリ12に対するキャッシュメモリ、すなわち2次キャッシュメモリとして機能する第2のメモリとしてのDRAMキャッシュメモリ14を含む。
【0020】
コントロールユニット3は、システムバス15を介してこのメモリ内蔵プロセサ1に結合されかつ主記憶メモリ2にも、システムバス15を介して結合される。このコントロールユニット3は、さらに、図示しないユニット(他の処理装置、ロジックまたはメモリ)にローカルバス16を介して結合される。
【0021】
このメモリ内蔵プロセサ1は、1つのチップ上に形成される。したがって、このSRAMキャッシュメモリ12とプロセサ10の間のプロセサバス11の幅は、SRAMキャッシュメモリのデータ入出力端子数の影響を受けず、任意の幅に設定することができる。また、このSRAMキャッシュメモリ12を、プロセサ10と別々のチップに形成する場合、このプロセサ10およびSRAMキャッシュメモリ12は、これらが実装されるボード上の配線により相互接続される。この場合、チップ内部に形成されるプロセサバス11に比べて、ボード上配線の負荷は大きい。したがって、プロセサ10とSRAMキャッシュメモリ12とを同一チップ上に形成することにより、高速でプロセサ10とSRAMキャッシュメモリ12の間で大量の情報の転送を行なうことができる。
【0022】
DRAMキャッシュメモリ14は、転送手段としての転送バス部13を介してSRAMキャッシュメモリ12に結合される。この転送バス部13は、プロセサバス11と別に設けられており、そのバス幅は、プロセサバス11よりも十分広くされている。したがって、プロセサ10が要求した情報がSRAMキャッシュメモリ12内に存在しない場合、DRAMキャッシュメモリ14からこのバス幅の広い転送バス部13を介してSRAMキャッシュメモリ12へ情報を転送することができる。この場合においても、転送バス部13は、チップ上の内部バスであり、高速でデータ転送を行なうことができるとともに、またDRAMキャッシュメモリ14のデータ入出力ピン端子の影響を受けることなく任意のバス幅に設定することができる。これにより、SRAMキャッシュメモリ12におけるキャッシュミス時においても、高速でSRAMキャッシュメモリ12に情報を転送することができ、キャッシュミス時のペナルティ(プロセサ10のウエイト時間)を低減することができる。
【0023】
また、DRAMキャッシュメモリ14に含まれるDRAMセルについては、先の図18に示すように、1ビットのメモリセルは1トランジスタと1キャパシタとで構成されており、この1ビットのDRAMメモリセルの占有面積は小さく、DRAMキャッシュメモリ14の集積度は、SRAMキャッシュメモリ12のそれよりも大きい。したがって、このメモリ内蔵プロセサ1において、チップ占有面積を増加させることなく、必要とされるたとえば2Mバイトの記憶容量を有するキャッシュメモリを実現することができる。
【0024】
図2は、この図1に示すメモリ内蔵プロセサのデータ転送動作を示すフロー図である。図2においては、プロセサ10からアクセス要求されたデータをプロセサ10へ転送する動作、すなわちキャッシュメモリからのデータ読出動作について説明する。なお、以下の説明においては、データ、すなわち演算処理されるデータの転送について説明するが、これは命令が転送される場合であっても同じである。
【0025】
まず、図示しない制御装置により、SRAMキャッシュメモリ12に対して、プロセサ10からアクセス要求が与えられたか否かの判定を行なう(ステップS1)。
【0026】
このアクセス要求があった場合、プロセサ10がアクセス要求するデータがSRAMキャッシュメモリ12内に存在するか否かの判定が行なわれる(ステップS2)。SRAMキャッシュメモリ12内に、このプロセサ10がアクセス要求したデータが存在する場合には、ステップS5へ移り、SRAMキャッシュメモリ12から、このプロセサ10へ、プロセサバス11を介してアクセス要求されたデータが転送される。
【0027】
一方、このアクセス要求されたデータがSRAMキャッシュメモリ12内に存在しない場合には、次いで、DRAMキャッシュメモリ14内に、このアクセス要求されたデータが存在するか否かの判定が行なわれる(ステップS3)。このアクセス要求されたデータがDRAMキャッシュメモリ14内に存在する場合には、DRAMキャッシュメモリ14から転送バス部13を介してSRAMキャッシュメモリ12へ、このアクセス要求されたデータを含むデータブロックが転送される(ステップS4)。ここで、SRAMキャッシュメモリ12に対するキャッシュミス時において、いわゆる「コピーバック動作」は行なわれず、SRAMキャッシュメモリ12からDRAMキャッシュメモリ14へのデータの転送は行なわれない動作モードを想定している。この動作モードは、SRAMキャッシュメモリ12へのデータ書込時においては、この書込まれたデータがまたDRAMキャッシュメモリI4の対応の位置に書込まれる「ライトスルー動作」を想定している。当然、コピーバック時においては、DRAMキャッシュメモリ14からSRAMキャッシュメモリ12へのデータ転送前に、SRAMキャッシュメモリ12からDRAMキャッシュメモリ14へデータ転送が行なわれる。
【0028】
このステップS4において、必要データがSRAMキャッシュメモリ12へ転送されると、この転送動作と並行して、SRAMキャッシュメモリ12からプロセサバス11を介してプロセサ10へアクセス要求されたデータが転送される(ステップS5)。
【0029】
一方、ステップS3において、プロセサ10がアクセス要求したデータがDRAMキャッシュメモリ14内においても存在しない場合には、このメモリ内蔵プロセサ1は、コントロールユニット3へ、アクセス要求とともにアドレス情報を与える。コントロールユニット3は、アクセス要求が与えられると、このアドレス情報に従って主記憶メモリ2から必要なデータを読出し、システムバス15を介してメモリ内蔵プロセサ1へ転送する。メモリ内蔵プロセサ1においては、このコントロールユニット3の制御の下にシステムバス15を介して転送された主記憶メモリ2からのデータは、DRAMキャッシュメモリ14へ格納されるとともに、必要とされるデータがプロセサ11へプロセサバス(この経路は図示せず)を介して転送される(ステップS6)。
【0030】
このDRAMキャッシュメモリ14へのデータ転送動作と並行してプロセサ10へ必要データを転送することにより、プロセサ10のウエイト時間を低減する。
【0031】
DRAMキャッシュメモリ14へ、主記憶メモリ2から1つの単位となるデータブロックがすべて転送されると、次いでこのDRAMキャッシュメモリ14からSRAMキャッシュメモリ12へデータが転送される間(ステップS7)。これにより、SRAMキャッシュメモリ12へは、プロセサ10がアクセス要求したデータを含むデータブロック(SRAMキャッシュブロック)が格納され、次のアクセス時のキャッシュヒット率を高くすることができる。
【0032】
図3は、図1に示すメモリ内蔵プロセサ1のより詳細な構成を概略的に示す図である。図3において、メモリ内蔵プロセサ1は、プロセサ10とSRAMキャッシュメモリ12との間でプロセサバス11を介してデータの転送を行なうためのSRAMI/Oユニット22と、プロセサ10およびDRAMキャッシュメモリ14と外部の主記憶メモリとのデータの転送を行なうためのDRAMI/Oユニット26とプロセサバス11を介して結合され、かつメモリ内蔵プロセサ1の外部の主記憶メモリなどとシステムバス15を介して結合されて、プロセサバス11とシステムバス15の間で情報の転送を行なうためのインタフェースユニット28を含む。
【0033】
DRAMI/Oユニット26は、プロセサバス11を介してプロセサ10およびインタフェースユニット28に結合される。インタフェースユニット28は、DRAMI/Oユニット26とデータの授受を行なう。SRAMI/Oユニット22は、プロセサ10とのみデータの転送を行なう。すなわち、このメモリ内蔵プロセサ1の構成においては、外部からは、DRAMキャッシュメモリ14へのみ直接アクセスすることができる。
【0034】
インタフェースユニット28は、プロセサバス11と外部のシステムバス15のバス幅が異なる場合には、データビット幅を変換する機能を備えていてもよい。しかし、以下の説明においては、システムバス15とプロセサバス11は、同じバス幅を備えるものと仮定する。
【0035】
メモリ内蔵プロセサ1は、さらに、プロセサ10とコントロール/アドレスバス19を介して結合され、プロセサ10からアクセス要求時、与えられたアドレスに従って、SRAMキャッシュメモリ12に対するアクセス制御を行なうためのSRAMコントロールユニット20と、このSRAMコントロールユニット20におけるキャッシュミス判定時活性化され、DRAMキャッシュメモリ14からSRAMキャッシュメモリ12へのデータ転送および/または外部の主記憶メモリとDRAMキャッシュメモリ14の間のデータ転送を制御するDRAMコントロールユニット24を含む。SRAMキャッシュメモリ12とDRAMキャッシュメモリ14とは、転送バス部13を構成する転送回路13a、ならびに内部転送バス13bおよび13cを介して結合される。
【0036】
SRAMコントロールユニット20は、プロセサ10から、コントロール/アドレスバス19を介して与えられるアドレス信号が指定するメモリセルデータがSRAMキャッシュメモリ12に存在するときには、キャッシュメモリ12へアクセスしてアドレス指定されたSRAMセルのデータを読出して、SRAMI/Oユニット22およびプロセサバス11を介してプロセサ10へ与える(キャッシュヒット時)。
【0037】
プロセサ10から与えられたアドレス信号が指定するメモリセルのデータがSRAMキャッシュメモリ12内に存在しない(SRAMキャッシュミス)場合には、SRAMコントロールユニット20は、プロセサ10に対しコントロール/アドレスバス19を介してキャッシュミスのためにウエイトをかける。このとき、SRAMコントロールユニット20は、DRAMコントロールユニット24を活性化する。またさらに、SRAMコントロールユニット20は、プロセサ10がアクセス要求したメモリセルデータを含むデータブロックの転送を受けるために、SRAMキャッシュメモリ12内において、所定のタイミングで、転送を受けるキャッシュブロックサイズのSRAMセルを選択状態へ駆動する。
【0038】
DRAMコントロールユニット24は、このSRAMコントロールユニット20からのキャッシュミス指示に従って活性化され、またSRAMコントロールユニット20を介して、プロセサ10から与えられるアドレスを受け、このプロセサ10がアクセス要求したメモリセルのデータがDRAMキャッシュメモリ14内に存在するか否かを判定する。プロセサ10がアクセス要求したメモリセルのデータがDRAMキャッシュメモリ14内に存在する場合には、DRAMコントロールユニット24は、SRAMコントロールユニット20へ、DRAMキャッシュヒットを知らせる。SRAMコントロールユニット20は、このDRAMコントロールユニット24からのDRAMキャッシュヒット指示に従って、SRAMキャッシュメモリ12のデータ転送を受ける領域を選択状態へ駆動し、これらの選択されたSRAMセルを、内部データバス13cに結合する。DRAMコントロールユニット24は、このプロセサ10から与えられたアドレス信号に従ってDRAMキャッシュメモリ14のアクセス要求されたデータを含むブロックを選択して内部データバス13bへ読出し、転送回路13aを活性化する。
【0039】
この転送回路13aは、後に説明するが内部転送バス13bに結合されるDRAM転送回路部分と内部転送バス13cに結合されるSRAM転送回路部分を含む。転送回路をDRAM部分およびSRAM部分別々に分割することにより、これらの転送動作をDRAMコントロールユニット24およびSRAMコントロールユニット20により非同期的に(ハンドシェイク態様で)実行することができ、選択されたメモリセルデータの正確な転送が可能となる。
【0040】
すなわち、DRAMコントロールユニット24からの、この転送回路13aに含まれるDRAM転送回路部分の活性化指示に応答して、SRAMコントロールユニット20は、この転送回路13aに含まれるSRAM転送回路部分を活性化し、内部転送バス13b上に転送されたデータを、内部転送バス13cに転送する。このときには、SRAMキャッシュメモリ12においては、対応のメモリセルがSRAMコントロールユニット20により選択状態に駆動されており、内部転送バス13c上に転送されたデータが、各選択されたSRAMセルに書込まれる。このとき、またSRAMコントロールユニット20は、SRAMI/Oユニット22を活性化し、プロセサ10からのアドレス信号に従ってSRAMキャッシュメモリ12の対応のデータを選択し、プロセサバス11を介してプロセサ10へ与える。
【0041】
DRAMキャッシュメモリ14内に、プロセサ10がアクセス要求したメモリセルのデータが存在しない場合には、DRAMコントロールユニット24は、外部のコントロールユニット(図1のコントロールユニット3)へDRAMキャッシュミスを知らせるとともに、このDRAMキャッシュメモリ14内の、データ転送を受ける部分を選択状態へ駆動しかつDRAMI/Oユニット26を活性化する。さらに、インタフェースユニット28がこのDRAMコントロールユニット24の制御の下に活性化され、プロセサバス11を、外部のシステムバス15に結合する。
【0042】
外部に設けられたコントロールユニット(図1参照)は、DRAMコントロールユニット24から与えられるアドレス信号に従って主記憶メモリ(図1参照)へアクセスし、この主記憶メモリ2の対応の領域のデータ(DRAMキャッシュブロックのデータ)を順次システムバス15上に読出し、このインタフェースユニット28へ与える。インタフェースユニット28は、このシステムバス15を介して与えられるデータを、順次DRAMI/Oユニット26へ与える。DRAMI/Oユニット26は、転送されたデータのブロックをDRAMキャッシュメモリ14内の選択されたDRAMセルに順次転送する。
【0043】
このインタフェースユニット28を介してプロセサバス11上に与えられるデータについて、プロセサ10がアクセス要求したデータが到達した場合には、このプロセサ10がアクセス要求したデータは、プロセサバス11を介してプロセサ10へまた与えられる。DRAMキャッシュメモリ14内において、1つのDRAMキャッシュブロック(転送バス部13のバス幅に相当)のデータ転送が完了すると、DRAMコントロールユニット24は、転送回路13aに含まれるDRAM転送回路部分を活性化し、この内部転送バス13bに読出されたデータを転送回路13a内部に取込む。ここで、内部転送バス13bへは、DRAMキャッシュメモリ14へ、DRAMI/Oユニット26からのデータ書込時に同時に、書込まれたデータが転送されている。DRAMコントロールユニット24は、この転送回路13aに含まれるDRAM転送回路部分の活性化を行なうと、SRAMコントロールユニット20に対し、データ転送完了を指示し、SRAMコントロールユニット20は、応じて転送回路13aのSRAM転送回路部分を活性化し、SRAMキャッシュメモリ12内の対応のSRAMキャッシュブロックのSRAMセルへデータを書込む。
【0044】
なお、主記憶メモリからDRAMキャッシュメモリ14へのデータ転送時において、外部のコントロールユニットが、必要なDRAMキャッシュブロックデータの転送完了をこのDRAMコントロールユニット24へ指示する構成が用いられてもよい。また、DRAMコントロールユニット24が、インタフェースユニット28を介してプロセサバス11上に転送されるデータの数をカウントし、必要なデータの数(DRAMキャッシュブロックの全データ)が転送されたことを識別する構成が用いられてもよい。
【0045】
上述のように、SRAMキャッシュメモリ12およびDRAMキャッシュメモリ14をそれぞれ2ポートとすることにより、プロセサバス11およびシステムバス15よりもバス幅の広い内部転送バス13bおよび13cを介してSRAMキャッシュメモリ12とDRAMキャッシュメモリ14との間で、高速にデータ転送を行なうことができる。
【0046】
図4は、主記憶メモリ2におけるアドレス領域とDRAMキャッシュブロック、SRAMキャッシュブロックの対応関係を概略的に示す図である。図4に示すように、主記憶メモリ2内において、DRAMキャッシュヒット/ミス判定単位となるDRAMキャッシュブロックDCBは、複数個のSRAMキャッシュブロックSCBを含む。DRAMキャッシュミス時主記憶メモリ2とDRAMキャッシュメモリ14の間で、このDRAMキャッシュブロックDCBを単位としてデータの転送が行なわれる。
【0047】
SRAMキャッシュブロックSCBは、複数個のデータを含む。SRAMキャッシュミス時SRAMキャッシュメモリとDRAMキャッシュメモリとの間では、SRAMキャッシュブロックSCBを単位としてデータの転送が行なわれる。SRAMキャッシュブロックSCBを単位として、SRAMキャッシュヒット/ミスが判定される。データが、プロセサバス11(図3参照)を介してプロセサ10へ転送される。
【0048】
図5は、プロセサアドレスとDRAMキャッシュブロック、SRAMキャッシュブロックおよびデータの対応関係を示す図である。プロセサアドレスは、DRAMタグアドレスDTG、SRAMタグアドレスSTGおよびメモリアドレスMADを含む。これらのDRAMタグアドレスDTG、SRAMタグアドレスSTGおよびメモリアドレスMADにより、1つのデータが指定される。DRAMタグアドレスDTGとSRAMタグアドレスSTGの組により、SRAMキャッシュブロックが指定される。DRAMタグアドレスDTGにより、DRAMキャッシュブロックが指定される。
【0049】
図6は、SRAMキャッシュヒット時におけるSRAMキャッシュメモリ12へ与えられるアドレスを概略的に示す図である。SRAMキャッシュヒット時においては、SRAMキャッシュメモリ12内に、プロセサ10がアクセス要求したデータが存在している。したがって、この場合においては、SRAMキャッシュメモリ12へSRAMタグアドレスSTGおよびメモリアドレスMADが与えられ、ヒットしたSRAMキャッシュブロックSCB内のアクセス要求されたデータが読出される。このSRAMタグアドレスSTGおよびメモリアドレスMADを、SRAMキャッシュメモリ12内の行および列アドレスに分割する態様は、このSRAMキャッシュメモリ12内のメモリセルの配置により異なる。たとえば、SRAMキャッシュブロックSCBが、SRAMキャッシュメモリ12内の1つのワード線(1行のSRAMセル)に対応する場合、SRAMタグアドレスSTGが行アドレス、メモリアドレスMADが列アドレスとして用いられる。
【0050】
図7は、SRAMキャッシュミスかつDRAMキャッシュミス時のDRAMキャッシュメモリ14へ与えられるアドレスを示す図である。図7に示すように、SRAMキャッシュミスかつDRAMキャッシュミス時においては、DRAMキャッシュメモリ14へは、DRAMタグアドレスDTGおよびバーストアドレスが与えられる。このバーストアドレスは、後に説明するが、バーストアドレスカウンタから発生され、データ転送ごとにこのバーストアドレスが順次増分される。主記憶メモリ2とDRAMキャッシュメモリ14の間では、システムバス15を介してデータの転送が行なわれる(プロセサ内部においては、プロセサバス11を介して)。この主記憶メモリ2に対するアクセスのためには、外部のコントロールユニットへDRAMタグアドレスDTGが与えられる。外部のコントロールユニットは、このDRAMタグアドレスDTGを先頭アドレスとして、バーストアドレスに従ってDRAMセルを選択してDRAMキャッシュブロックサイズのデータを順次転送する。
【0051】
このとき、また主記憶メモリ2が、クロック信号に同期してデータの書込/読出を行なうクロック同期型ダイナミック・ランダム・アクセス・メモリ(SDRAM)の場合、SDRAMは内部でバーストアドレスを発生するカウンタを内蔵しているため、コントロールユニットは、単にDRAMタグアドレスDTGを先頭アドレスとして主記憶メモリへ与えるだけでよい。また、これに代えて、メモリ内蔵プロセサから、DRAMタグアドレスDTGおよびバーストアドレスが外部のコントロールユニットへ順次与えられてもよい。
【0052】
図8は、SRAMキャッシュメモリ12とDRAMキャッシュメモリ14の間でのデータ転送時にこれらのSRAMキャッシュメモリ12およびDRAMキャッシュメモリ14へ与えられるアドレスを示す図である。このデータ転送時においては、SRAMキャッシュメモリ12へは、SRAMタグアドレスSTGが与えられ、DRAMキャッシュメモリ14においては、DRAMタグアドレスDTGおよびSRAMタグアドレスSTGが与えられる。これにより、DRAMキャッシュメモリ14からは、DRAMキャッシュブロック内のSRAMタグアドレスSTGで特定されるSRAMキャッシュブロックのデータが転送バス部13(図3に示す転送回路13aを含む)を介して転送される。
【0053】
図9は、図3に示すSRAMコントロールユニット20の構成を概略的に示す図である。図9において、SRAMコントロールユニット20は、SRAMキャッシュメモリ14内のSRAMキャッシュブロックそれぞれについてのタグアドレスを格納するSRAMタグメモリ20aと、プロセサからのアクセス要求ならびにアドレス信号STGおよびMADを受け、アクセス要求が与えられたときにSRAMタグメモリ20aを活性化するとともに必要な制御を行なうSRAMアクセス制御回路20bと、キャッシュミス時、SRAMタグメモリ20aのタグアドレスを更新するタグ更新回路20cを含む。
【0054】
SRAMタグメモリ20aは、このプロセサから与えられたSRAMタグアドレスSTGをそこに格納されるタグアドレスと比較し、一致するタグアドレスが格納されているかを判別し、その判別結果に従ってSRAMキャッシュヒット指示信号SCHの活性/非活性化を行なう。このSRAMタグメモリ20aは、たとえば内容参照メモリで構成され、与えられたSRAMタグアドレスSTGを検索データとして、その記憶内容との一致/不一致を判別する。
【0055】
SRAMキャッシュヒット指示信号SCHが活性状態のとき、SRAMアクセス制御回路20bは、与えられたアドレス信号STGおよびMADに従ってSRAMキャッシュメモリへアクセスし、対応のデータを読出してプロセサへ与える。SRAMキャッシュヒット指示信号SCHの非活性化時、すなわちSRAMキャッシュミス時においては、SRAMアクセス制御回路20bは、データ転送に必要な制御を行なう。
【0056】
タグ更新回路20cは、このSRAMキャッシュヒット指示信号SCHの非活性化時、たとえばLRU論理(Least Recently Used 論理)に従って、最も古く用いられたタグアドレスを、この与えられたタグアドレスSTGで置換える。
【0057】
図10は、図3に示すDRAMコントロールユニット24の構成を概略的に示す図である。図10において、DRAMコントロールユニット24は、DRAMキャッシュメモリに格納されたDRAMキャッシュブロックの各タグアドレスを格納し、活性化時与えられたDRAMタグアドレスDTGと格納されたDRAMタグアドレスとの一致/不一致を検出するDRAMタグメモリ24aと、このDRAMタグメモリ24aからのDRAMキャッシュヒット指示信号DCHに従って、主記憶メモリまたはSRAMキャッシュメモリとの間でデータ転送を行なうための必要な制御を行なう転送制御回路24bと、DRAMタグメモリ24aからのDRAMキャッシュヒット指示信号DCHの非活性化時このDRAMタグメモリ24内のタグアドレスを新たに与えられたDRAMタグアドレスDTGで書換えるタグ更新回路24cを含む。
【0058】
DRAMタグメモリ24aは、SRAMコントロールユニット(図9参照)からの図示しない活性化信号に従って活性化され、SRAMキャッシュヒット指示信号SCHの非活性化時、与えられたDRAMタグアドレスDTGと格納されたDRAMタグアドレスの比較を行なう。このDRAMタグメモリ24aも、また、内容参照メモリで構成され、与えられたDRAMタグアドレスDTGを検索データとして検索動作を行なう。
【0059】
転送制御回路24bは、活性化時DRAMキャッシュメモリと主記憶メモリとの間でのデータ転送を行なうための主記憶転送制御回路24baと、この主記憶転送制御回路24baの制御の下に動作し、与えられたDRAMタグアドレスDTGを初期値としてデータ転送ごとにカウント動作を行なって、DRAMキャッシュメモリに対するアドレス信号を生成するバーストアドレスカウンタ24bbと、活性化時、SRAMキャッシュメモリとDRAMキャッシュメモリとの間でのデータ転送を行なうためのキャッシュ間転送制御回路24bcを含む。
【0060】
主記憶転送制御回路24baは、DRAMキャッシュメモリとDRAMI/Oユニットを介してのインタフェースユニットとのデータ転送およびDRAMキャッシュメモリ内の行/列選択動作を制御するとともに、外部に設けられたコントロールユニットへデータ転送を指示する制御信号を与える。バーストアドレスカウンタ24bbのアドレスはDRAMキャッシュメモリへ与えられ、DRAMキャッシュメモリの行/列選択のために用いられる。
【0061】
キャッシュ間転送制御回路24bcは、DRAMキャッシュメモリと転送バス部に含まれるDRAM転送回路の間のデータ転送を制御する。主記憶転送制御回路24baは、図示しない経路を介してSRAMコントロールユニットの制御の下に活性化される。キャッシュ間転送制御回路24bcは、SRAMキャッシュミスかつDRAMキャッシュヒット時およびSRAMキャッシュミス時かつDRAMキャッシュミス時に活性化される。次にこの図10に示すDRAMコントロールユニット24の動作を図11に示すフロー図を参照して説明する。
まず、DRAM転送制御回路24bおよびDRAMタグメモリ24aは、SRAMコントロールユニットからSRAMキャッシュミスが発生したことを知らされたか否かを識別する(ステップS20)。図10においては、この報知のための信号としては単にSRAMキャッシュヒット指示信号SCHのみ示すが、プロセサからのアクセス要求があったときに、このSRAMキャッシュヒット指示信号SCHがイネーブルされてキャッシュヒット/ミスを示す状態に設定されてDRAMコントロールユニット24へ与えられる。プロセサからのアクセス要求がない場合には、このDRAMコントロールユニット24へ与えられるキャッシュヒット指示信号SCHはディスエーブルされSRAMキャッシュヒット/ミスは示さず、このDRAMコントロールユニットは、非動作状態(非活性状態)に置かれる。
【0062】
SRAMキャッシュミスが発生したとき(キャッシュヒット指示信号SCHが非活性状態)、DRAMタグメモリ24aが活性化され、SRAMコントロールユニットまたはプロセサから与えられたDRAMタグアドレスDTGと格納されたDRAMタグアドレスの比較を行なう(ステップS21)。
【0063】
この与えられたDRAMタグアドレスDTGが、DRAMタグメモリ24a内に格納されたタグアドレスと一致する場合には、DRAMキャッシュヒット指示信号DCHが活性状態とされ、DRAMキャッシュメモリ内にプロセサがアクセス要求するデータが存在することを示す。DRAMキャッシュヒット指示信号DCHの活性化に応答して、キャッシュ間転送制御回路24bcが活性化され(先に、SRAMコントロールユニットの制御の下にイネーブル状態とされている)、DRAMキャッシュメモリにおける、対応のキャッシュブロックの選択、選択キャッシュブロックデータの転送バス部の内部転送バスへの転送および転送回路の活性化が行なわれる(ステップS22)。
【0064】
このキャッシュ間転送制御回路24bcは、DRAMキャッシュメモリ14に結合される内部転送バス13bから転送回路13a(図3参照)へのデータ転送が完了すると、転送回路13a内にDRAMキャッシュブロックのデータが転送されたことを示す信号をSRAMコントロールユニット20へ知らせる(ステップS23)。この後は、先の図9に示すSRAMアクセス制御回路20bが、SRAMキャッシュメモリの対応のデータブロックの選択、転送バス部13内の転送回路の制御およびプロセサへのデータ転送を実行する。
【0065】
一方、ステップS21において、与えられたDRAMタグアドレスDTGが、DRAMタグメモリ24a内に格納されたタグアドレスのいずれとも一致しない場合には、DRAMヒット指示信号DCHが非活性状態とされる。この場合には、主記憶転送制御回路24baが活性化され、またバーストアドレスカウンタ24bbに、DRAMタグアドレスDTGが初期値としてセットされる。この主記憶転送制御回路24baは、活性化されると、外部に設けられたコントロールユニットへデータ転送を指示するとともに、このDRAMタグアドレスDTGを与える。主記憶転送制御回路24baは、DRAMI/Oユニットを介して与えられるデータを、このバーストアドレスカウンタ24bbからのアドレス信号によりアドレス指定されたメモリセルへ順次書込む(ステップS24)。
【0066】
主記憶転送制御回路24baは、また、DRAMキャッシュブロックのデータがすべて転送されたか否かを図示しないカウンタのカウント値または外部からのコントロールユニットの指示に従ってモニタする(ステップS25)。DRAMキャッシュブロックのすべてのデータが転送されると、主記憶転送制御回路24baは、キャッシュ間転送制御回路24bcへ、必要とされるDRAMキャッシュブロックのデータがすべて転送されたことを知らせる。キャッシュ間転送制御回路24bcは、この全データ転送完了指示を受けると活性化され、ステップS22およびS23の動作を行なう。DRAMキャッシュメモリからSRAMキャッシュメモリおよびプロセサへのデータ転送動作は先の説明と同じである。
【0067】
図12は、主記憶転送制御回路24baに含まれるプロセサデータ転送制御部の構成を概略的に示す図である。図12において、主記憶転送制御回路24baは、プロセサデータ転送制御部として、プロセサバス11およびDRAMI/Oユニット26を介して転送されるデータの数をカウントする転送データ数カウンタ34aと、プロセサ10から与えられたメモリアドレスMADを格納するメモリアドレスレジスタ34bと、転送データ数カウンタ34aのカウント値とメモリアドレスレジスタ34bの格納するメモリアドレスMADが一致したか否かを検出する一致検出回路34cを含む。一致検出回路34cは、一致検出時、プロセサ10へデータサンプリング指示を与え、プロセサ10に対し、このプロセサバス11に与えられたデータを取込むことを指示する。
【0068】
主記憶メモリ2からDRAMキャッシュメモリ14へのデータ転送時、DRAMタグアドレスが指定するDRAMキャッシュブロックの先頭アドレスから順次データが選択される。この場合、DRAMキャッシュブロック内のデータの位置は、アドレスSTGおよびMADの組合せにより指定される。したがって、転送データ数カウンタ34aのカウント値が、メモリアドレスレジスタ34bに格納されたSRAMタグアドレスSTGとメモリアドレスMADの組合せに等しくなった場合には、プロセサがアクセス要求したデータが与えられたことを示す。この主記憶メモリからDRAMのデータ転送時に、一致検出回路34cにより一致検出を行なうことにより、プロセサがアクセス要求したデータを検出して、DRAMキャッシュメモリ14へのデータ転送と並行してプロセサ10へデータを転送することができ、プロセサ10のウエイト時間を短縮することができる。
【0069】
なお、上述の説明においては、すべて主記憶メモリ2からDRAMキャッシュメモリ14へのデータ転送およびDRAMキャッシュメモリ14からSRAMキャッシュメモリ12へのデータ転送を説明している。しかしながら、いわゆる「コピーバック」動作が行なわれるキャッシュシステムの場合、まずDRAMキャッシュメモリ14からSRAMキャッシュメモリ12へのデータ転送前に、SRAMキャッシュメモリ12からDRAMキャッシュメモリ14へのデータ転送が行なわれる。したがって、主記憶メモリ2からDRAMキャッシュメモリ14へのデータ転送時コピーバックを行なうためには、SRAMキャッシュメモリ12からDRAMキャッシュメモリ14へのデータ転送、およびDRAMキャッシュメモリ14から主記憶メモリ2へのデータ転送動作が必要となる。この構成は、先の説明において、転送バス部13の転送回路13aを双方向転送回路で構成することにより実現される。
【0070】
図13は、SRAMキャッシュメモリ12とDRAMキャッシュメモリ14の間のデータ転送を行なう部分の構成を示す図である。図13において、SRAMキャッシュメモリ12は、同時に選択状態とされて、内部転送バス13cに接続される複数のSRAMビット線対SBL0〜SBLNを含む。図13においては、これらのSRAMビット線対SBL0〜SBLNと交差する1つのSRAMワード線SWLを代表的に示す。
【0071】
DRAMキャッシュメモリ14は、内部転送バス13bに同時に接続される複数のDRAMビット線対DBL0〜DBLNを含む。これらのDRAMビット線対DBL0〜DBLNと交差するように、1つのDRAMワード線DWLが代表的に示される。転送回路13aは、内部転送バス13bに読出されたデータをSRAMキャッシュメモリ部へ転送するためのDRAM転送回路13aaと、このDRAM転送回路13aaから転送されたデータをSRAMキャッシュメモリ12の各SRAMビット線対SBL0〜SBLNへ内部転送バス13cを介して転送するSRAM転送回路13abを含む。
【0072】
DRAM転送回路13aaおよびSRAM転送回路13abは、バスドライバおよびラッチ回路を含む。DRAM転送回路13aaは、DRAMコントロールユニット(図3参照)により動作が制御され、SRAM転送回路13abは、SRAMコントロールユニット(図3参照)によりその動作が制御される。転送回路13aaおよび13abは、双方向にデータを転送する機能を備えてもよい(コピーバック動作を実現するため)。
【0073】
この内部転送バス13cおよび13bに同時に結合されるSRAMビット線対SBL0〜SBLNおよびDRAMビット線対DBL0〜DBLNの数は、SRAMキャッシュブロックのサイズにより決定される。
【0074】
図14は、このSRAMキャッシュメモリ12とDRAMキャッシュメモリ14の間での1回のキャッシュミス時のデータ転送時に転送されるデータを模式的に示す図である。図14において、SRAMキャッシュメモリ12において、1つのSRAMワード線SWLが選択状態とされ、またDRAMキャッシュメモリ14においても、1つのDRAMワード線DWLが選択状態とされる。このワード線SWLおよびDWLに接続されるメモリセルの間でデータが、転送回路13を介して転送される。したがって、この図14に示す構成においては、DRAMキャッシュブロックは、複数のDRAMワード線DWLに接続されるDRAMセルを含む。この場合には、1本のSRAMワード線SWLに接続されるSRAMセルの数と、1本のDRAMワード線DWLに接続されるDRAMセルの数は同じとなり、1つのSRAMキャッシュブロックを構成する。
【0075】
図15は、SRAMキャッシュブロックの構成の他の例を概略的に示す図である。この図15に示す構成において、DRAMキャッシュメモリ14においては、同時に4本のDRAMワード線DW1〜DW4が選択状態とされ、これらのDRAMワード線DW1〜DW4に接続されるメモリセルが同時に内部転送バス13に結合される。SRAMキャッシュメモリ12においては、1つのSRAMワード線SWLが選択状態へ駆動される。この1つのSRAMワード線SWLに対し、4つのDRAMワード線DWL1〜DWL4上に接続されるメモリセルのデータが転送される。したがって、この構成においては、1つのSRAMキャッシュブロックのサイズが、4本のDRAMワード線に接続されるメモリセルの数となる。
【0076】
このDRAMキャッシュメモリ14内において、同時に複数のDRAMワード線を選択状態へ駆動する構成は、以下のようにして実現される。通常、DRAMはブロック分割されており各ブロックに対しロウデコード回路(行選択回路)が設けられている。したがって、複数のブロックでロウデコード回路により、対応のワード線を同時に選択状態へ駆動することができる。このとき、A個のDRAMアレイブロックがDRAMキャッシュメモリ14内に設けられている場合、B個のメモリアレイブロックを単位としてこのアレイブロックをグループ化する。各グループに対し1行(1本のワード線)のメモリセル数に等しいビット幅の内部転送バスを設ける。この構成に従えば、各グループにおいて1つのワード線を選択し、対応の内部転送バスに1行のメモリセルデータを転送することができる。
【0077】
また、この図15に示す構成に代えて、逆に1本のDRAMワード線上のメモリセルのデータを複数本のSRAMワード線に転送することもできる。SRAMキャッシュメモリは、DRAMキャッシュメモリよりも高速であり、DRAMワード線の各部分のデータ転送に合せてSRAMキャッシュメモリ内で順次SRAMワード線を選択状態へ駆動することができる。
【0078】
また、この図15および図14に示す構成と異なり、ワード線単位でのデータ転送でなくてもよい。内部転送バス13のバス幅およびSRAMキャッシュブロックのサイズに応じて適当な構成が用いられればよい。
【0079】
図16は、DRAMキャッシュメモリの他の構成を示す図である。図16において、DRAMキャッシュメモリ14は、各々がSRAMキャッシュメモリ12と同じ記憶容量を有する複数のメモリバンク♯0〜♯Mを含む。これらのメモリバンク♯0〜♯Mは、互いに独立に活性/非活性状態へ駆動することができる。すなわち、1つのメモリバンクにおいてワード線を選択状態としたとき、別のメモリバンクにおいて、ワード線を選択状態から非選択状態または非選択状態から選択状態へ駆動することができる。これらのメモリバンク♯0〜♯Mは、共通に、内部転送バス13に結合される。
【0080】
この図16に示す構成においては、メモリバンク♯0〜♯Mは、各々が、SRAMキャッシュメモリ12と同じ記憶容量を備えている。したがって、1つのDRAMキャッシュブロックを、複数のメモリバンクにわたって格納する。1つのDRAMメモリバンクにおいては、異なるDRAMキャッシュブロックのSRAMキャッシュブロックデータを格納する。この構成の場合、DRAMタグアドレスDTGは、バンクアドレスを含む。DRAMタグアドレスの構成は、バンクの数、およびDRAMキャッシュブロックのサイズおよびSRAMキャッシュブロックのサイズにより異なる。DRAMキャッシュメモリ14からSRAMキャッシュメモリ12へのデータ転送時において、1つのメモリバンクが選択されて、1つの選択されたメモリバンク内のSRAMキャッシュブロックが選択されて内部転送バス13を介してSRAMキャッシュメモリ12へ転送される。主記憶メモリ2とDRAMキャッシュメモリ14との間のデータ転送時、このメモリバンクを、インタリーブ対応で活性状態へ駆動する。すなわち、1つのメモリバンクに対し主記憶メモリからデータ転送が行なわれているとき、別のメモリバンクを選択状態へ駆動する。これにより、連続的に主記憶メモリからDRAMキャッシュメモリ14へデータ転送を行なうことができ、SRAMキャッシュミスおよびDRAMキャッシュミス時のペナルティ(プロセサの待ち時間)を小さくすることができる。
【0081】
また、このバンク構成の場合、主記憶メモリ2からメモリバンクへのデータ転送時、プロセサがアクセス要求したデータを含むSRAMキャッシュブロックが1つのメモリバンクへ転送された場合、このアクセス要求されたデータを含むSRAMキャッシュブロックを、このメモリバンクから内部転送バス部13を介してSRAMキャッシュメモリ12へ転送しかつ同時に、並行して主記憶メモリ2から別のメモリバンクへ、対応のDRAMキャッシュブロックの残りのSRAMキャッシュブロックデータを転送することができ、高速アクセスが可能となる。
【0082】
なお、上述の説明においては、高速メモリとしてSRAM、低速かつ大記憶容量のメモリとしてDRAMを用いている。しかしながら、メモリセルを構成するトランジスタの数が異なり、高集積化に適したメモリであれば、これらのSRAMおよびDRAMに代えて用いることができる。また、データ転送は双方向的に行なわれてもよい。
【0083】
【発明の効果】
以上のように、この発明に従えば、高速動作が可能な第1のメモリと、低速であるものの高集積化が可能な第2のメモリとを、ビット幅の広い転送バスを介して相互結合してキャッシュメモリとしてプロセサ内部に設けたため、キャッシュミス時におけるプロセサのデータ待ち時間を低減することが可能となり、プロセサの処理性能が改善される。また、第2のメモリは、高集積化が可能であり、このメモリ内蔵プロセサの面積を増加させることなくキャッシュの大記憶容量化が可能となる。また、第1のメモリと第2のメモリとを、幅の広い転送バスで結合していることにより、この第1および第2のメモリ間のデータ転送を高速に行なうことができる。
【0084】
請求項1のメモリ内蔵プロセサにおいては、第1および第2のメモリが階層的なキャッシュシステムを構成しており、第1のメモリでのキャッシュミスかつ第2のメモリでのキャッシュヒット時、転送手段を介して情報を第1と第2のメモリの間で転送している。この転送手段は、バス幅が演算処理器に結合されるバスの幅よりも広い。したがって、大量のデータを一括して転送することができ、第1のメモリのキャッシュミス時のペナルティ(ウエイト時間)を低減することができる。
【0085】
また、第2のメモリの1ビットセルのトランジスタ数は第1のメモリのそれよりも小さく、第2のメモリの集積度は第1のメモリよりも高くすることができ、応じて第2のメモリの記憶容量を小占有面積で大きくすることができる。これにより、内蔵キャッシュメモリの記憶容量を大きくすることができ、等価的にヒット率を高くすることができる。
【0086】
請求項2のメモリ内蔵プロセサにおいては、第1および第2のメモリのキャッシュミス時に初めて外部のメモリへアクセスして第2のメモリと外部メモリとの間で情報転送を行なっており、このとき併せてプロセサへも情報転送を行なっており、ミス時のウエイト時間を最小とすることができる。
【図面の簡単な説明】
【図1】 この発明に従うメモリ内蔵プロセサおよびこれを用いるシステムの構成を概略的に示す図である。
【図2】 この発明に従うメモリ内蔵プロセサの動作を示すフロー図である。
【図3】 この発明に従うメモリ内蔵プロセサの構成をより具体的に示す図である。
【図4】 この発明に従うメモリ内蔵プロセサにおけるキャッシュブロックの階層関係を概略的に示す図である。
【図5】 この発明に従うメモリ内蔵プロセサにおけるプロセサアドレスと各キャッシュブロックとの対応関係を概略的に示す図である。
【図6】 SRAMキャッシュヒット時にSRAMキャッシュメモリへ与えられるアドレス信号を概略的に示す図である。
【図7】 DRAMキャッシュメモリと主記憶メモリとの間でのデータ転送時にDRAMキャッシュメモリへ与えられるアドレスを概略的に示す図である。
【図8】 SRAMキャッシュメモリとDRAMキャッシュメモリとのデータ転送時の各キャッシュメモリへ与えられるアドレスを概略的に示す図である。
【図9】 図3に示すSRAMコントロールユニットの構成を概略的に示す図である。
【図10】 図3に示すDRAMコントロールユニットの構成を概略的に示す図である。
【図11】 図10に示すDRAMコントロールユニットの動作を示すフロー図である。
【図12】 図3に示すDRAMコントロールユニットのプロセサデータ転送部の構成を概略的に示す図である。
【図13】 この発明に従うメモリ内蔵プロセサにおけるSRAMキャッシュメモリとDRAMキャッシュメモリ間のデータ転送部の構成を概略的に示す図である。
【図14】 この発明に従う、キャッシュメモリ間データ転送時の選択メモリセルの対応関係を概略的に示す図である。
【図15】 キャッシュメモリ間のデータ転送時のキャッシュ内メモリセルの対応関係を概略的に示す図である。
【図16】 DRAMキャッシュメモリの他の構成を概略的に示す図である。
【図17】 従来のSRAMセルの構成を概略的に示す図である。
【図18】 従来のDRAMセルの構成を概略的に示す図である。
【符号の説明】
1 メモリ内蔵プロセサ、2 主記憶メモリ、10 プロセサ、11 プロセサバス、12 SRAMキャッシュメモリ、13 転送バス部、14 DRAMキャッシュメモリ、13a 転送回路、13b,13c 内部転送バス、20SRAMコントロールユニット、22 SRAMI/Oユニット、24 DRAMコントロールユニット、26 DRAMI/Oユニット。
【発明の属する技術分野】
この発明は、メモリとプロセサとが同一チップ上に形成されたメモリ内蔵プロセサに関し、特に、面積効率の優れたキャッシュメモリを内蔵するメモリ内蔵プロセサに関する。
【0002】
【従来の技術】
マイクロプロセサ(MPU)または中央演算処理装置(CPU)などのプロセサは、その動作速度が100MHz、200MHzと高速化されてきている。一方、主記憶として用いられるダイナミック・ランダム・アクセス・メモリ(DRAM)は、高速化されてきてはいるものの、その動作速度は依然プロセサのそれよりも遅い。この動作速度の差が存在すると、DRAMへのアクセス時、必要データが揃うまで、プロセサはウエイト状態となる。このようなウエイト状態をできるだけ少なくして高速データ処理を行なうようにシステム性能を改善するために、主記憶とプロセサとの間にキャッシュメモリと呼ばれる高速のメモリが配置される。このキャッシュメモリに、プロセサが頻繁にアクセスするデータを格納する。
【0003】
処理実行時においては、プログラムに従って処理が進行するため、この処理には、アクセス領域の局所性が存在する。したがって、プロセサが要求するデータがキャッシュメモリ内に格納されているとき(キャッシュヒット時)、連続的にアクセスされるデータがこのキャッシュメモリ内に格納されている可能性が高い。このプロセサが要求するデータがキャッシュメモリに存在する場合には、常にプロセサとキャッシュメモリとの間でデータ転送を行なう。これにより、プロセサのウエイト時間を少なくして、高速処理を行なうことができる。キャッシュメモリ内にプロセサが要求するデータが存在しないとき(キャッシュミス時)のみ、主記憶のDRAMへアクセスする。
【0004】
キャッシュメモリ内に適当なサイズのキャッシュブロック(キャッシュミス時にデータ転送単位となるブロック)を適当な数格納することにより、キャッシュヒット率を高くすることができ、プロセサのウエイト時間を短縮でき、高速データ処理が可能となる。
【0005】
【発明が解決しようとする課題】
キャッシュメモリの記憶容量を大きくすれば、キャッシュヒット率を高くすることができる。このキャッシュメモリとしては、通常スタティック・ランダム・アクセス・メモリ(SRAM)が用いられる。
【0006】
図17は、SRAMセルの構成の一例を示す図である。図17において、SRAMセルSMCは、電源ノードVCCと内部記憶ノードNAの間に接続される負荷素子Z1と、電源ノードVCCと内部記憶ノードNBの間に接続される負荷素子Z2と、内部記憶ノードNAと接地ノードGNDの間に接続されかつそのゲートが内部記憶ノードNBに接続されるnチャネルMOSトランジスタ(絶縁ゲート型電界効果トランジスタ)T1と、内部記憶ノードNBと接地ノードGNDの間に接続されかつそのゲートが内部記憶ノードNAに接続されるnチャネルMOSトランジスタT2と、ワード線WL上の信号電位に応答して導通し、内部記憶ノードNAとビット線BLとを電気的に接続するnチャネルMOSトランジスタT3と、ワード線WL上の信号電位に応答して導通し、内部記憶ノードNBとビット線/BLとを電気的に接続するnチャネルMOSトランジスタT4を含む。
【0007】
ワード線WLには、1行のSRAMセルSMCが接続される。ビット線BLおよび/BLは相補なデータ信号を伝達し、対をなして配設される。このビット線対BLおよび/BLに1列のメモリセルが接続される。
【0008】
負荷素子Z1およびZ2は、記憶ノードNAまたはNBを記憶情報に応じて電源電圧VCC(ノードとそこに与えられる電圧を同じ符号で示す)レベルにプルアップする機能を有し、薄膜トランジスタまたは抵抗素子で形成される。
【0009】
MOSトランジスタT1およびT2はフリップフロップを構成し、この内部記憶ノードNAおよびNBの信号電位を保持する。ワード線WLの信号電位がHレベルに上昇すると、MOSトランジスタT3およびT4が導通し、内部記憶ノードNAおよびNBが、それぞれ、ビット線BLおよび/BLに接続される。この状態で、このSRAMセルSMCに対するデータの読出または書込が行なわれる。
【0010】
この図17に示すように、SRAMセルSMCは、データを記憶するためのMOSトランジスタT1およびT2、ならびにこのSRAMセルSMCにアクセスするためのMOSトランジスタT3およびT4と4個のMOSトランジスタを含んでいる。したがって、このSRAMは、相補データ信号の伝達およびスタティック動作のため高速動作するという利点を有するものの、1ビットのメモリセルSMCの占有面積が大きいという欠点を有する。したがって、このSRAMセルSMCを用いてキャッシュメモリを構築する場合、このキャッシュメモリの記憶容量を増大させると、キャッシュメモリの占有面積が増大する。特に、最近の傾向としてのプロセサとメモリとのワンチップ化およびシステムのサイズ低減などに対する大きな障害となる。
【0011】
図18は、DRAMセルの構成を示す図である。図18においては、2つのDRAMセルDMCaおよびDMCbを示す。DRAMセルDMCaは、ワード線WLaとビット線BLの交差部に対応して配置される。DRAMセルDMCbは、ワード線WLbとビット線/BLの交差部に対応して配置される。DRAMセルDMCaおよびDMCbの各々は、情報を記憶するためのキャパシタCと、対応のワード線WL(WLaまたはWLb)の信号電位に応答して導通し、キャパシタCを、対応のビット線BLまたは/BLに電気的に接続するnチャネルMOSトランジスタQを含む。
【0012】
このDRAMにおいても、ワード線WLaおよびWLbそれぞれに対し、1行のDRAMセルが接続され、ビット線対BLおよび/BLに1列のメモリセルが接続される。このDRAMセルDMCaおよびDMCbのキャパシタCの一方電極ノードへは、一定のセルプレート電圧VCPが印加される。DRAMセルDMCaおよびDMCbは、このキャパシタCの他方電極に蓄積される電荷量に応じて情報を記憶する。メモリセルデータ読出時において、ビット線BLおよび/BLの一方にメモリセルデータが読出され、他方のビット線は、このメモリセルデータに対する基準電位を与える。
【0013】
DRAMセルDMCaおよびDMCbの各々は、この図18に示すように、1つのMOSトランジスタと1つのキャパシタCとで構成される。したがって、図17に示すSRAMセルSMCに比べて、トランジスタの数が少なく、DRAMセルDMCaおよびDMCbの各々の占有面積は、ほぼSRAMセルSMCの1/4となる。したがって、このDRAMは、限られた面積内で、大記憶容量のメモリを実現することができる。
【0014】
しかしながら、このDRAMは、ダイナミック動作を行なっており、各信号線を所定電位にプリチャージする必要があり、SRAMほど高速では動作することはできない。したがってこのDRAMを単純にキャッシュメモリとして用いた場合、高速のキャッシュメモリを実現するのは困難である。
【0015】
それゆえ、この発明の目的は、チップ面積を増加させることなくキャッシュミス時のペナルティを低減することのできるキャッシュシステムを内蔵するメモリ内蔵プロセサを提供することである。
【0016】
【課題を解決するための手段】
請求項1に係るメモリ内蔵プロセサは、与えられたデータおよび命令に従って演算処理を行なう演算処理器と、この演算処理器のためのデータ/命令を含む情報を格納する第1のメモリと、この第1のメモリよりも低速動作でありかつこの第1のメモリよりも大きな記憶容量を有しかつ1ビットのメモリセルのトランジスタ数が第1のメモリのそれよりも少なく、演算処理器のための情報を格納するための第2のメモリと、これら演算処理器、第1のメモリおよび第2のメモリを相互結合するバスと、このバスと別に設けられかつこのバスよりも大きなバス幅を有し、第1のメモリと第2のメモリとの間で情報を転送するための転送手段と、演算処理器のアクセス要求する情報が第1のメモリに記憶されているか否かを判定し該判定結果に従ってバスを介して演算処理器と第1のメモリとの間で情報の転送を行なうための第1の制御手段と、この第1の制御手段による演算処理器が要求する情報が第1のメモリに存在しないとの判定結果により活性化され、アクセス要求された情報が第2のメモリに存在するか否かを判定し、該判定結果が第2のメモリ内でのアクセス要求された情報の存在を示すとき、転送手段を介して第1のメモリと第2のメモリとの間でアクセス要求された情報を含む情報の転送を行なうための第2の制御手段を備える。
【0017】
請求項2に係るメモリ内蔵プロセサは、第2の制御手段の不存在を示す判定結果に応答して、バスを介して第2のメモリと外部に設けられた外部メモリとの間でこのアクセス要求された情報を含む情報の転送を行ない、かつこのアクセス要求された情報を演算処理器へバスを介して転送するための手段をさらに備える。
【0018】
【発明の実施の形態】
図1は、この発明の実施の形態に従うメモリ内蔵プロセサおよびそれを用いるシステムの構成を概略的に示す図である。図1において、処理システムは、メモリ内蔵プロセサ1と、DRAMで構成される主記憶メモリ2と、このメモリ内蔵プロセサ1と主記憶メモリ2の間でのデータ転送および図示しない回路とメモリ内蔵プロセサ1および主記憶メモリ2の間でのデータ転送を制御するためのコントロールユニット3を含む。
【0019】
メモリ内蔵プロセサ1は、与えられた命令およびデータ(以下、両者を含めて情報と称す)に従って、演算処理を行なうプロセサ10と、プロセサ10とプロセサバス11を介して結合され、このプロセサ10の1次キャッシュとして機能する第1のメモリとしてのSRAMキャッシュメモリ12と、このSRAMキャッシュメモリ12と転送バス部13を介して双方向に情報の転送が可能なように結合され、このSRAMキャッシュメモリ12に対するキャッシュメモリ、すなわち2次キャッシュメモリとして機能する第2のメモリとしてのDRAMキャッシュメモリ14を含む。
【0020】
コントロールユニット3は、システムバス15を介してこのメモリ内蔵プロセサ1に結合されかつ主記憶メモリ2にも、システムバス15を介して結合される。このコントロールユニット3は、さらに、図示しないユニット(他の処理装置、ロジックまたはメモリ)にローカルバス16を介して結合される。
【0021】
このメモリ内蔵プロセサ1は、1つのチップ上に形成される。したがって、このSRAMキャッシュメモリ12とプロセサ10の間のプロセサバス11の幅は、SRAMキャッシュメモリのデータ入出力端子数の影響を受けず、任意の幅に設定することができる。また、このSRAMキャッシュメモリ12を、プロセサ10と別々のチップに形成する場合、このプロセサ10およびSRAMキャッシュメモリ12は、これらが実装されるボード上の配線により相互接続される。この場合、チップ内部に形成されるプロセサバス11に比べて、ボード上配線の負荷は大きい。したがって、プロセサ10とSRAMキャッシュメモリ12とを同一チップ上に形成することにより、高速でプロセサ10とSRAMキャッシュメモリ12の間で大量の情報の転送を行なうことができる。
【0022】
DRAMキャッシュメモリ14は、転送手段としての転送バス部13を介してSRAMキャッシュメモリ12に結合される。この転送バス部13は、プロセサバス11と別に設けられており、そのバス幅は、プロセサバス11よりも十分広くされている。したがって、プロセサ10が要求した情報がSRAMキャッシュメモリ12内に存在しない場合、DRAMキャッシュメモリ14からこのバス幅の広い転送バス部13を介してSRAMキャッシュメモリ12へ情報を転送することができる。この場合においても、転送バス部13は、チップ上の内部バスであり、高速でデータ転送を行なうことができるとともに、またDRAMキャッシュメモリ14のデータ入出力ピン端子の影響を受けることなく任意のバス幅に設定することができる。これにより、SRAMキャッシュメモリ12におけるキャッシュミス時においても、高速でSRAMキャッシュメモリ12に情報を転送することができ、キャッシュミス時のペナルティ(プロセサ10のウエイト時間)を低減することができる。
【0023】
また、DRAMキャッシュメモリ14に含まれるDRAMセルについては、先の図18に示すように、1ビットのメモリセルは1トランジスタと1キャパシタとで構成されており、この1ビットのDRAMメモリセルの占有面積は小さく、DRAMキャッシュメモリ14の集積度は、SRAMキャッシュメモリ12のそれよりも大きい。したがって、このメモリ内蔵プロセサ1において、チップ占有面積を増加させることなく、必要とされるたとえば2Mバイトの記憶容量を有するキャッシュメモリを実現することができる。
【0024】
図2は、この図1に示すメモリ内蔵プロセサのデータ転送動作を示すフロー図である。図2においては、プロセサ10からアクセス要求されたデータをプロセサ10へ転送する動作、すなわちキャッシュメモリからのデータ読出動作について説明する。なお、以下の説明においては、データ、すなわち演算処理されるデータの転送について説明するが、これは命令が転送される場合であっても同じである。
【0025】
まず、図示しない制御装置により、SRAMキャッシュメモリ12に対して、プロセサ10からアクセス要求が与えられたか否かの判定を行なう(ステップS1)。
【0026】
このアクセス要求があった場合、プロセサ10がアクセス要求するデータがSRAMキャッシュメモリ12内に存在するか否かの判定が行なわれる(ステップS2)。SRAMキャッシュメモリ12内に、このプロセサ10がアクセス要求したデータが存在する場合には、ステップS5へ移り、SRAMキャッシュメモリ12から、このプロセサ10へ、プロセサバス11を介してアクセス要求されたデータが転送される。
【0027】
一方、このアクセス要求されたデータがSRAMキャッシュメモリ12内に存在しない場合には、次いで、DRAMキャッシュメモリ14内に、このアクセス要求されたデータが存在するか否かの判定が行なわれる(ステップS3)。このアクセス要求されたデータがDRAMキャッシュメモリ14内に存在する場合には、DRAMキャッシュメモリ14から転送バス部13を介してSRAMキャッシュメモリ12へ、このアクセス要求されたデータを含むデータブロックが転送される(ステップS4)。ここで、SRAMキャッシュメモリ12に対するキャッシュミス時において、いわゆる「コピーバック動作」は行なわれず、SRAMキャッシュメモリ12からDRAMキャッシュメモリ14へのデータの転送は行なわれない動作モードを想定している。この動作モードは、SRAMキャッシュメモリ12へのデータ書込時においては、この書込まれたデータがまたDRAMキャッシュメモリI4の対応の位置に書込まれる「ライトスルー動作」を想定している。当然、コピーバック時においては、DRAMキャッシュメモリ14からSRAMキャッシュメモリ12へのデータ転送前に、SRAMキャッシュメモリ12からDRAMキャッシュメモリ14へデータ転送が行なわれる。
【0028】
このステップS4において、必要データがSRAMキャッシュメモリ12へ転送されると、この転送動作と並行して、SRAMキャッシュメモリ12からプロセサバス11を介してプロセサ10へアクセス要求されたデータが転送される(ステップS5)。
【0029】
一方、ステップS3において、プロセサ10がアクセス要求したデータがDRAMキャッシュメモリ14内においても存在しない場合には、このメモリ内蔵プロセサ1は、コントロールユニット3へ、アクセス要求とともにアドレス情報を与える。コントロールユニット3は、アクセス要求が与えられると、このアドレス情報に従って主記憶メモリ2から必要なデータを読出し、システムバス15を介してメモリ内蔵プロセサ1へ転送する。メモリ内蔵プロセサ1においては、このコントロールユニット3の制御の下にシステムバス15を介して転送された主記憶メモリ2からのデータは、DRAMキャッシュメモリ14へ格納されるとともに、必要とされるデータがプロセサ11へプロセサバス(この経路は図示せず)を介して転送される(ステップS6)。
【0030】
このDRAMキャッシュメモリ14へのデータ転送動作と並行してプロセサ10へ必要データを転送することにより、プロセサ10のウエイト時間を低減する。
【0031】
DRAMキャッシュメモリ14へ、主記憶メモリ2から1つの単位となるデータブロックがすべて転送されると、次いでこのDRAMキャッシュメモリ14からSRAMキャッシュメモリ12へデータが転送される間(ステップS7)。これにより、SRAMキャッシュメモリ12へは、プロセサ10がアクセス要求したデータを含むデータブロック(SRAMキャッシュブロック)が格納され、次のアクセス時のキャッシュヒット率を高くすることができる。
【0032】
図3は、図1に示すメモリ内蔵プロセサ1のより詳細な構成を概略的に示す図である。図3において、メモリ内蔵プロセサ1は、プロセサ10とSRAMキャッシュメモリ12との間でプロセサバス11を介してデータの転送を行なうためのSRAMI/Oユニット22と、プロセサ10およびDRAMキャッシュメモリ14と外部の主記憶メモリとのデータの転送を行なうためのDRAMI/Oユニット26とプロセサバス11を介して結合され、かつメモリ内蔵プロセサ1の外部の主記憶メモリなどとシステムバス15を介して結合されて、プロセサバス11とシステムバス15の間で情報の転送を行なうためのインタフェースユニット28を含む。
【0033】
DRAMI/Oユニット26は、プロセサバス11を介してプロセサ10およびインタフェースユニット28に結合される。インタフェースユニット28は、DRAMI/Oユニット26とデータの授受を行なう。SRAMI/Oユニット22は、プロセサ10とのみデータの転送を行なう。すなわち、このメモリ内蔵プロセサ1の構成においては、外部からは、DRAMキャッシュメモリ14へのみ直接アクセスすることができる。
【0034】
インタフェースユニット28は、プロセサバス11と外部のシステムバス15のバス幅が異なる場合には、データビット幅を変換する機能を備えていてもよい。しかし、以下の説明においては、システムバス15とプロセサバス11は、同じバス幅を備えるものと仮定する。
【0035】
メモリ内蔵プロセサ1は、さらに、プロセサ10とコントロール/アドレスバス19を介して結合され、プロセサ10からアクセス要求時、与えられたアドレスに従って、SRAMキャッシュメモリ12に対するアクセス制御を行なうためのSRAMコントロールユニット20と、このSRAMコントロールユニット20におけるキャッシュミス判定時活性化され、DRAMキャッシュメモリ14からSRAMキャッシュメモリ12へのデータ転送および/または外部の主記憶メモリとDRAMキャッシュメモリ14の間のデータ転送を制御するDRAMコントロールユニット24を含む。SRAMキャッシュメモリ12とDRAMキャッシュメモリ14とは、転送バス部13を構成する転送回路13a、ならびに内部転送バス13bおよび13cを介して結合される。
【0036】
SRAMコントロールユニット20は、プロセサ10から、コントロール/アドレスバス19を介して与えられるアドレス信号が指定するメモリセルデータがSRAMキャッシュメモリ12に存在するときには、キャッシュメモリ12へアクセスしてアドレス指定されたSRAMセルのデータを読出して、SRAMI/Oユニット22およびプロセサバス11を介してプロセサ10へ与える(キャッシュヒット時)。
【0037】
プロセサ10から与えられたアドレス信号が指定するメモリセルのデータがSRAMキャッシュメモリ12内に存在しない(SRAMキャッシュミス)場合には、SRAMコントロールユニット20は、プロセサ10に対しコントロール/アドレスバス19を介してキャッシュミスのためにウエイトをかける。このとき、SRAMコントロールユニット20は、DRAMコントロールユニット24を活性化する。またさらに、SRAMコントロールユニット20は、プロセサ10がアクセス要求したメモリセルデータを含むデータブロックの転送を受けるために、SRAMキャッシュメモリ12内において、所定のタイミングで、転送を受けるキャッシュブロックサイズのSRAMセルを選択状態へ駆動する。
【0038】
DRAMコントロールユニット24は、このSRAMコントロールユニット20からのキャッシュミス指示に従って活性化され、またSRAMコントロールユニット20を介して、プロセサ10から与えられるアドレスを受け、このプロセサ10がアクセス要求したメモリセルのデータがDRAMキャッシュメモリ14内に存在するか否かを判定する。プロセサ10がアクセス要求したメモリセルのデータがDRAMキャッシュメモリ14内に存在する場合には、DRAMコントロールユニット24は、SRAMコントロールユニット20へ、DRAMキャッシュヒットを知らせる。SRAMコントロールユニット20は、このDRAMコントロールユニット24からのDRAMキャッシュヒット指示に従って、SRAMキャッシュメモリ12のデータ転送を受ける領域を選択状態へ駆動し、これらの選択されたSRAMセルを、内部データバス13cに結合する。DRAMコントロールユニット24は、このプロセサ10から与えられたアドレス信号に従ってDRAMキャッシュメモリ14のアクセス要求されたデータを含むブロックを選択して内部データバス13bへ読出し、転送回路13aを活性化する。
【0039】
この転送回路13aは、後に説明するが内部転送バス13bに結合されるDRAM転送回路部分と内部転送バス13cに結合されるSRAM転送回路部分を含む。転送回路をDRAM部分およびSRAM部分別々に分割することにより、これらの転送動作をDRAMコントロールユニット24およびSRAMコントロールユニット20により非同期的に(ハンドシェイク態様で)実行することができ、選択されたメモリセルデータの正確な転送が可能となる。
【0040】
すなわち、DRAMコントロールユニット24からの、この転送回路13aに含まれるDRAM転送回路部分の活性化指示に応答して、SRAMコントロールユニット20は、この転送回路13aに含まれるSRAM転送回路部分を活性化し、内部転送バス13b上に転送されたデータを、内部転送バス13cに転送する。このときには、SRAMキャッシュメモリ12においては、対応のメモリセルがSRAMコントロールユニット20により選択状態に駆動されており、内部転送バス13c上に転送されたデータが、各選択されたSRAMセルに書込まれる。このとき、またSRAMコントロールユニット20は、SRAMI/Oユニット22を活性化し、プロセサ10からのアドレス信号に従ってSRAMキャッシュメモリ12の対応のデータを選択し、プロセサバス11を介してプロセサ10へ与える。
【0041】
DRAMキャッシュメモリ14内に、プロセサ10がアクセス要求したメモリセルのデータが存在しない場合には、DRAMコントロールユニット24は、外部のコントロールユニット(図1のコントロールユニット3)へDRAMキャッシュミスを知らせるとともに、このDRAMキャッシュメモリ14内の、データ転送を受ける部分を選択状態へ駆動しかつDRAMI/Oユニット26を活性化する。さらに、インタフェースユニット28がこのDRAMコントロールユニット24の制御の下に活性化され、プロセサバス11を、外部のシステムバス15に結合する。
【0042】
外部に設けられたコントロールユニット(図1参照)は、DRAMコントロールユニット24から与えられるアドレス信号に従って主記憶メモリ(図1参照)へアクセスし、この主記憶メモリ2の対応の領域のデータ(DRAMキャッシュブロックのデータ)を順次システムバス15上に読出し、このインタフェースユニット28へ与える。インタフェースユニット28は、このシステムバス15を介して与えられるデータを、順次DRAMI/Oユニット26へ与える。DRAMI/Oユニット26は、転送されたデータのブロックをDRAMキャッシュメモリ14内の選択されたDRAMセルに順次転送する。
【0043】
このインタフェースユニット28を介してプロセサバス11上に与えられるデータについて、プロセサ10がアクセス要求したデータが到達した場合には、このプロセサ10がアクセス要求したデータは、プロセサバス11を介してプロセサ10へまた与えられる。DRAMキャッシュメモリ14内において、1つのDRAMキャッシュブロック(転送バス部13のバス幅に相当)のデータ転送が完了すると、DRAMコントロールユニット24は、転送回路13aに含まれるDRAM転送回路部分を活性化し、この内部転送バス13bに読出されたデータを転送回路13a内部に取込む。ここで、内部転送バス13bへは、DRAMキャッシュメモリ14へ、DRAMI/Oユニット26からのデータ書込時に同時に、書込まれたデータが転送されている。DRAMコントロールユニット24は、この転送回路13aに含まれるDRAM転送回路部分の活性化を行なうと、SRAMコントロールユニット20に対し、データ転送完了を指示し、SRAMコントロールユニット20は、応じて転送回路13aのSRAM転送回路部分を活性化し、SRAMキャッシュメモリ12内の対応のSRAMキャッシュブロックのSRAMセルへデータを書込む。
【0044】
なお、主記憶メモリからDRAMキャッシュメモリ14へのデータ転送時において、外部のコントロールユニットが、必要なDRAMキャッシュブロックデータの転送完了をこのDRAMコントロールユニット24へ指示する構成が用いられてもよい。また、DRAMコントロールユニット24が、インタフェースユニット28を介してプロセサバス11上に転送されるデータの数をカウントし、必要なデータの数(DRAMキャッシュブロックの全データ)が転送されたことを識別する構成が用いられてもよい。
【0045】
上述のように、SRAMキャッシュメモリ12およびDRAMキャッシュメモリ14をそれぞれ2ポートとすることにより、プロセサバス11およびシステムバス15よりもバス幅の広い内部転送バス13bおよび13cを介してSRAMキャッシュメモリ12とDRAMキャッシュメモリ14との間で、高速にデータ転送を行なうことができる。
【0046】
図4は、主記憶メモリ2におけるアドレス領域とDRAMキャッシュブロック、SRAMキャッシュブロックの対応関係を概略的に示す図である。図4に示すように、主記憶メモリ2内において、DRAMキャッシュヒット/ミス判定単位となるDRAMキャッシュブロックDCBは、複数個のSRAMキャッシュブロックSCBを含む。DRAMキャッシュミス時主記憶メモリ2とDRAMキャッシュメモリ14の間で、このDRAMキャッシュブロックDCBを単位としてデータの転送が行なわれる。
【0047】
SRAMキャッシュブロックSCBは、複数個のデータを含む。SRAMキャッシュミス時SRAMキャッシュメモリとDRAMキャッシュメモリとの間では、SRAMキャッシュブロックSCBを単位としてデータの転送が行なわれる。SRAMキャッシュブロックSCBを単位として、SRAMキャッシュヒット/ミスが判定される。データが、プロセサバス11(図3参照)を介してプロセサ10へ転送される。
【0048】
図5は、プロセサアドレスとDRAMキャッシュブロック、SRAMキャッシュブロックおよびデータの対応関係を示す図である。プロセサアドレスは、DRAMタグアドレスDTG、SRAMタグアドレスSTGおよびメモリアドレスMADを含む。これらのDRAMタグアドレスDTG、SRAMタグアドレスSTGおよびメモリアドレスMADにより、1つのデータが指定される。DRAMタグアドレスDTGとSRAMタグアドレスSTGの組により、SRAMキャッシュブロックが指定される。DRAMタグアドレスDTGにより、DRAMキャッシュブロックが指定される。
【0049】
図6は、SRAMキャッシュヒット時におけるSRAMキャッシュメモリ12へ与えられるアドレスを概略的に示す図である。SRAMキャッシュヒット時においては、SRAMキャッシュメモリ12内に、プロセサ10がアクセス要求したデータが存在している。したがって、この場合においては、SRAMキャッシュメモリ12へSRAMタグアドレスSTGおよびメモリアドレスMADが与えられ、ヒットしたSRAMキャッシュブロックSCB内のアクセス要求されたデータが読出される。このSRAMタグアドレスSTGおよびメモリアドレスMADを、SRAMキャッシュメモリ12内の行および列アドレスに分割する態様は、このSRAMキャッシュメモリ12内のメモリセルの配置により異なる。たとえば、SRAMキャッシュブロックSCBが、SRAMキャッシュメモリ12内の1つのワード線(1行のSRAMセル)に対応する場合、SRAMタグアドレスSTGが行アドレス、メモリアドレスMADが列アドレスとして用いられる。
【0050】
図7は、SRAMキャッシュミスかつDRAMキャッシュミス時のDRAMキャッシュメモリ14へ与えられるアドレスを示す図である。図7に示すように、SRAMキャッシュミスかつDRAMキャッシュミス時においては、DRAMキャッシュメモリ14へは、DRAMタグアドレスDTGおよびバーストアドレスが与えられる。このバーストアドレスは、後に説明するが、バーストアドレスカウンタから発生され、データ転送ごとにこのバーストアドレスが順次増分される。主記憶メモリ2とDRAMキャッシュメモリ14の間では、システムバス15を介してデータの転送が行なわれる(プロセサ内部においては、プロセサバス11を介して)。この主記憶メモリ2に対するアクセスのためには、外部のコントロールユニットへDRAMタグアドレスDTGが与えられる。外部のコントロールユニットは、このDRAMタグアドレスDTGを先頭アドレスとして、バーストアドレスに従ってDRAMセルを選択してDRAMキャッシュブロックサイズのデータを順次転送する。
【0051】
このとき、また主記憶メモリ2が、クロック信号に同期してデータの書込/読出を行なうクロック同期型ダイナミック・ランダム・アクセス・メモリ(SDRAM)の場合、SDRAMは内部でバーストアドレスを発生するカウンタを内蔵しているため、コントロールユニットは、単にDRAMタグアドレスDTGを先頭アドレスとして主記憶メモリへ与えるだけでよい。また、これに代えて、メモリ内蔵プロセサから、DRAMタグアドレスDTGおよびバーストアドレスが外部のコントロールユニットへ順次与えられてもよい。
【0052】
図8は、SRAMキャッシュメモリ12とDRAMキャッシュメモリ14の間でのデータ転送時にこれらのSRAMキャッシュメモリ12およびDRAMキャッシュメモリ14へ与えられるアドレスを示す図である。このデータ転送時においては、SRAMキャッシュメモリ12へは、SRAMタグアドレスSTGが与えられ、DRAMキャッシュメモリ14においては、DRAMタグアドレスDTGおよびSRAMタグアドレスSTGが与えられる。これにより、DRAMキャッシュメモリ14からは、DRAMキャッシュブロック内のSRAMタグアドレスSTGで特定されるSRAMキャッシュブロックのデータが転送バス部13(図3に示す転送回路13aを含む)を介して転送される。
【0053】
図9は、図3に示すSRAMコントロールユニット20の構成を概略的に示す図である。図9において、SRAMコントロールユニット20は、SRAMキャッシュメモリ14内のSRAMキャッシュブロックそれぞれについてのタグアドレスを格納するSRAMタグメモリ20aと、プロセサからのアクセス要求ならびにアドレス信号STGおよびMADを受け、アクセス要求が与えられたときにSRAMタグメモリ20aを活性化するとともに必要な制御を行なうSRAMアクセス制御回路20bと、キャッシュミス時、SRAMタグメモリ20aのタグアドレスを更新するタグ更新回路20cを含む。
【0054】
SRAMタグメモリ20aは、このプロセサから与えられたSRAMタグアドレスSTGをそこに格納されるタグアドレスと比較し、一致するタグアドレスが格納されているかを判別し、その判別結果に従ってSRAMキャッシュヒット指示信号SCHの活性/非活性化を行なう。このSRAMタグメモリ20aは、たとえば内容参照メモリで構成され、与えられたSRAMタグアドレスSTGを検索データとして、その記憶内容との一致/不一致を判別する。
【0055】
SRAMキャッシュヒット指示信号SCHが活性状態のとき、SRAMアクセス制御回路20bは、与えられたアドレス信号STGおよびMADに従ってSRAMキャッシュメモリへアクセスし、対応のデータを読出してプロセサへ与える。SRAMキャッシュヒット指示信号SCHの非活性化時、すなわちSRAMキャッシュミス時においては、SRAMアクセス制御回路20bは、データ転送に必要な制御を行なう。
【0056】
タグ更新回路20cは、このSRAMキャッシュヒット指示信号SCHの非活性化時、たとえばLRU論理(Least Recently Used 論理)に従って、最も古く用いられたタグアドレスを、この与えられたタグアドレスSTGで置換える。
【0057】
図10は、図3に示すDRAMコントロールユニット24の構成を概略的に示す図である。図10において、DRAMコントロールユニット24は、DRAMキャッシュメモリに格納されたDRAMキャッシュブロックの各タグアドレスを格納し、活性化時与えられたDRAMタグアドレスDTGと格納されたDRAMタグアドレスとの一致/不一致を検出するDRAMタグメモリ24aと、このDRAMタグメモリ24aからのDRAMキャッシュヒット指示信号DCHに従って、主記憶メモリまたはSRAMキャッシュメモリとの間でデータ転送を行なうための必要な制御を行なう転送制御回路24bと、DRAMタグメモリ24aからのDRAMキャッシュヒット指示信号DCHの非活性化時このDRAMタグメモリ24内のタグアドレスを新たに与えられたDRAMタグアドレスDTGで書換えるタグ更新回路24cを含む。
【0058】
DRAMタグメモリ24aは、SRAMコントロールユニット(図9参照)からの図示しない活性化信号に従って活性化され、SRAMキャッシュヒット指示信号SCHの非活性化時、与えられたDRAMタグアドレスDTGと格納されたDRAMタグアドレスの比較を行なう。このDRAMタグメモリ24aも、また、内容参照メモリで構成され、与えられたDRAMタグアドレスDTGを検索データとして検索動作を行なう。
【0059】
転送制御回路24bは、活性化時DRAMキャッシュメモリと主記憶メモリとの間でのデータ転送を行なうための主記憶転送制御回路24baと、この主記憶転送制御回路24baの制御の下に動作し、与えられたDRAMタグアドレスDTGを初期値としてデータ転送ごとにカウント動作を行なって、DRAMキャッシュメモリに対するアドレス信号を生成するバーストアドレスカウンタ24bbと、活性化時、SRAMキャッシュメモリとDRAMキャッシュメモリとの間でのデータ転送を行なうためのキャッシュ間転送制御回路24bcを含む。
【0060】
主記憶転送制御回路24baは、DRAMキャッシュメモリとDRAMI/Oユニットを介してのインタフェースユニットとのデータ転送およびDRAMキャッシュメモリ内の行/列選択動作を制御するとともに、外部に設けられたコントロールユニットへデータ転送を指示する制御信号を与える。バーストアドレスカウンタ24bbのアドレスはDRAMキャッシュメモリへ与えられ、DRAMキャッシュメモリの行/列選択のために用いられる。
【0061】
キャッシュ間転送制御回路24bcは、DRAMキャッシュメモリと転送バス部に含まれるDRAM転送回路の間のデータ転送を制御する。主記憶転送制御回路24baは、図示しない経路を介してSRAMコントロールユニットの制御の下に活性化される。キャッシュ間転送制御回路24bcは、SRAMキャッシュミスかつDRAMキャッシュヒット時およびSRAMキャッシュミス時かつDRAMキャッシュミス時に活性化される。次にこの図10に示すDRAMコントロールユニット24の動作を図11に示すフロー図を参照して説明する。
まず、DRAM転送制御回路24bおよびDRAMタグメモリ24aは、SRAMコントロールユニットからSRAMキャッシュミスが発生したことを知らされたか否かを識別する(ステップS20)。図10においては、この報知のための信号としては単にSRAMキャッシュヒット指示信号SCHのみ示すが、プロセサからのアクセス要求があったときに、このSRAMキャッシュヒット指示信号SCHがイネーブルされてキャッシュヒット/ミスを示す状態に設定されてDRAMコントロールユニット24へ与えられる。プロセサからのアクセス要求がない場合には、このDRAMコントロールユニット24へ与えられるキャッシュヒット指示信号SCHはディスエーブルされSRAMキャッシュヒット/ミスは示さず、このDRAMコントロールユニットは、非動作状態(非活性状態)に置かれる。
【0062】
SRAMキャッシュミスが発生したとき(キャッシュヒット指示信号SCHが非活性状態)、DRAMタグメモリ24aが活性化され、SRAMコントロールユニットまたはプロセサから与えられたDRAMタグアドレスDTGと格納されたDRAMタグアドレスの比較を行なう(ステップS21)。
【0063】
この与えられたDRAMタグアドレスDTGが、DRAMタグメモリ24a内に格納されたタグアドレスと一致する場合には、DRAMキャッシュヒット指示信号DCHが活性状態とされ、DRAMキャッシュメモリ内にプロセサがアクセス要求するデータが存在することを示す。DRAMキャッシュヒット指示信号DCHの活性化に応答して、キャッシュ間転送制御回路24bcが活性化され(先に、SRAMコントロールユニットの制御の下にイネーブル状態とされている)、DRAMキャッシュメモリにおける、対応のキャッシュブロックの選択、選択キャッシュブロックデータの転送バス部の内部転送バスへの転送および転送回路の活性化が行なわれる(ステップS22)。
【0064】
このキャッシュ間転送制御回路24bcは、DRAMキャッシュメモリ14に結合される内部転送バス13bから転送回路13a(図3参照)へのデータ転送が完了すると、転送回路13a内にDRAMキャッシュブロックのデータが転送されたことを示す信号をSRAMコントロールユニット20へ知らせる(ステップS23)。この後は、先の図9に示すSRAMアクセス制御回路20bが、SRAMキャッシュメモリの対応のデータブロックの選択、転送バス部13内の転送回路の制御およびプロセサへのデータ転送を実行する。
【0065】
一方、ステップS21において、与えられたDRAMタグアドレスDTGが、DRAMタグメモリ24a内に格納されたタグアドレスのいずれとも一致しない場合には、DRAMヒット指示信号DCHが非活性状態とされる。この場合には、主記憶転送制御回路24baが活性化され、またバーストアドレスカウンタ24bbに、DRAMタグアドレスDTGが初期値としてセットされる。この主記憶転送制御回路24baは、活性化されると、外部に設けられたコントロールユニットへデータ転送を指示するとともに、このDRAMタグアドレスDTGを与える。主記憶転送制御回路24baは、DRAMI/Oユニットを介して与えられるデータを、このバーストアドレスカウンタ24bbからのアドレス信号によりアドレス指定されたメモリセルへ順次書込む(ステップS24)。
【0066】
主記憶転送制御回路24baは、また、DRAMキャッシュブロックのデータがすべて転送されたか否かを図示しないカウンタのカウント値または外部からのコントロールユニットの指示に従ってモニタする(ステップS25)。DRAMキャッシュブロックのすべてのデータが転送されると、主記憶転送制御回路24baは、キャッシュ間転送制御回路24bcへ、必要とされるDRAMキャッシュブロックのデータがすべて転送されたことを知らせる。キャッシュ間転送制御回路24bcは、この全データ転送完了指示を受けると活性化され、ステップS22およびS23の動作を行なう。DRAMキャッシュメモリからSRAMキャッシュメモリおよびプロセサへのデータ転送動作は先の説明と同じである。
【0067】
図12は、主記憶転送制御回路24baに含まれるプロセサデータ転送制御部の構成を概略的に示す図である。図12において、主記憶転送制御回路24baは、プロセサデータ転送制御部として、プロセサバス11およびDRAMI/Oユニット26を介して転送されるデータの数をカウントする転送データ数カウンタ34aと、プロセサ10から与えられたメモリアドレスMADを格納するメモリアドレスレジスタ34bと、転送データ数カウンタ34aのカウント値とメモリアドレスレジスタ34bの格納するメモリアドレスMADが一致したか否かを検出する一致検出回路34cを含む。一致検出回路34cは、一致検出時、プロセサ10へデータサンプリング指示を与え、プロセサ10に対し、このプロセサバス11に与えられたデータを取込むことを指示する。
【0068】
主記憶メモリ2からDRAMキャッシュメモリ14へのデータ転送時、DRAMタグアドレスが指定するDRAMキャッシュブロックの先頭アドレスから順次データが選択される。この場合、DRAMキャッシュブロック内のデータの位置は、アドレスSTGおよびMADの組合せにより指定される。したがって、転送データ数カウンタ34aのカウント値が、メモリアドレスレジスタ34bに格納されたSRAMタグアドレスSTGとメモリアドレスMADの組合せに等しくなった場合には、プロセサがアクセス要求したデータが与えられたことを示す。この主記憶メモリからDRAMのデータ転送時に、一致検出回路34cにより一致検出を行なうことにより、プロセサがアクセス要求したデータを検出して、DRAMキャッシュメモリ14へのデータ転送と並行してプロセサ10へデータを転送することができ、プロセサ10のウエイト時間を短縮することができる。
【0069】
なお、上述の説明においては、すべて主記憶メモリ2からDRAMキャッシュメモリ14へのデータ転送およびDRAMキャッシュメモリ14からSRAMキャッシュメモリ12へのデータ転送を説明している。しかしながら、いわゆる「コピーバック」動作が行なわれるキャッシュシステムの場合、まずDRAMキャッシュメモリ14からSRAMキャッシュメモリ12へのデータ転送前に、SRAMキャッシュメモリ12からDRAMキャッシュメモリ14へのデータ転送が行なわれる。したがって、主記憶メモリ2からDRAMキャッシュメモリ14へのデータ転送時コピーバックを行なうためには、SRAMキャッシュメモリ12からDRAMキャッシュメモリ14へのデータ転送、およびDRAMキャッシュメモリ14から主記憶メモリ2へのデータ転送動作が必要となる。この構成は、先の説明において、転送バス部13の転送回路13aを双方向転送回路で構成することにより実現される。
【0070】
図13は、SRAMキャッシュメモリ12とDRAMキャッシュメモリ14の間のデータ転送を行なう部分の構成を示す図である。図13において、SRAMキャッシュメモリ12は、同時に選択状態とされて、内部転送バス13cに接続される複数のSRAMビット線対SBL0〜SBLNを含む。図13においては、これらのSRAMビット線対SBL0〜SBLNと交差する1つのSRAMワード線SWLを代表的に示す。
【0071】
DRAMキャッシュメモリ14は、内部転送バス13bに同時に接続される複数のDRAMビット線対DBL0〜DBLNを含む。これらのDRAMビット線対DBL0〜DBLNと交差するように、1つのDRAMワード線DWLが代表的に示される。転送回路13aは、内部転送バス13bに読出されたデータをSRAMキャッシュメモリ部へ転送するためのDRAM転送回路13aaと、このDRAM転送回路13aaから転送されたデータをSRAMキャッシュメモリ12の各SRAMビット線対SBL0〜SBLNへ内部転送バス13cを介して転送するSRAM転送回路13abを含む。
【0072】
DRAM転送回路13aaおよびSRAM転送回路13abは、バスドライバおよびラッチ回路を含む。DRAM転送回路13aaは、DRAMコントロールユニット(図3参照)により動作が制御され、SRAM転送回路13abは、SRAMコントロールユニット(図3参照)によりその動作が制御される。転送回路13aaおよび13abは、双方向にデータを転送する機能を備えてもよい(コピーバック動作を実現するため)。
【0073】
この内部転送バス13cおよび13bに同時に結合されるSRAMビット線対SBL0〜SBLNおよびDRAMビット線対DBL0〜DBLNの数は、SRAMキャッシュブロックのサイズにより決定される。
【0074】
図14は、このSRAMキャッシュメモリ12とDRAMキャッシュメモリ14の間での1回のキャッシュミス時のデータ転送時に転送されるデータを模式的に示す図である。図14において、SRAMキャッシュメモリ12において、1つのSRAMワード線SWLが選択状態とされ、またDRAMキャッシュメモリ14においても、1つのDRAMワード線DWLが選択状態とされる。このワード線SWLおよびDWLに接続されるメモリセルの間でデータが、転送回路13を介して転送される。したがって、この図14に示す構成においては、DRAMキャッシュブロックは、複数のDRAMワード線DWLに接続されるDRAMセルを含む。この場合には、1本のSRAMワード線SWLに接続されるSRAMセルの数と、1本のDRAMワード線DWLに接続されるDRAMセルの数は同じとなり、1つのSRAMキャッシュブロックを構成する。
【0075】
図15は、SRAMキャッシュブロックの構成の他の例を概略的に示す図である。この図15に示す構成において、DRAMキャッシュメモリ14においては、同時に4本のDRAMワード線DW1〜DW4が選択状態とされ、これらのDRAMワード線DW1〜DW4に接続されるメモリセルが同時に内部転送バス13に結合される。SRAMキャッシュメモリ12においては、1つのSRAMワード線SWLが選択状態へ駆動される。この1つのSRAMワード線SWLに対し、4つのDRAMワード線DWL1〜DWL4上に接続されるメモリセルのデータが転送される。したがって、この構成においては、1つのSRAMキャッシュブロックのサイズが、4本のDRAMワード線に接続されるメモリセルの数となる。
【0076】
このDRAMキャッシュメモリ14内において、同時に複数のDRAMワード線を選択状態へ駆動する構成は、以下のようにして実現される。通常、DRAMはブロック分割されており各ブロックに対しロウデコード回路(行選択回路)が設けられている。したがって、複数のブロックでロウデコード回路により、対応のワード線を同時に選択状態へ駆動することができる。このとき、A個のDRAMアレイブロックがDRAMキャッシュメモリ14内に設けられている場合、B個のメモリアレイブロックを単位としてこのアレイブロックをグループ化する。各グループに対し1行(1本のワード線)のメモリセル数に等しいビット幅の内部転送バスを設ける。この構成に従えば、各グループにおいて1つのワード線を選択し、対応の内部転送バスに1行のメモリセルデータを転送することができる。
【0077】
また、この図15に示す構成に代えて、逆に1本のDRAMワード線上のメモリセルのデータを複数本のSRAMワード線に転送することもできる。SRAMキャッシュメモリは、DRAMキャッシュメモリよりも高速であり、DRAMワード線の各部分のデータ転送に合せてSRAMキャッシュメモリ内で順次SRAMワード線を選択状態へ駆動することができる。
【0078】
また、この図15および図14に示す構成と異なり、ワード線単位でのデータ転送でなくてもよい。内部転送バス13のバス幅およびSRAMキャッシュブロックのサイズに応じて適当な構成が用いられればよい。
【0079】
図16は、DRAMキャッシュメモリの他の構成を示す図である。図16において、DRAMキャッシュメモリ14は、各々がSRAMキャッシュメモリ12と同じ記憶容量を有する複数のメモリバンク♯0〜♯Mを含む。これらのメモリバンク♯0〜♯Mは、互いに独立に活性/非活性状態へ駆動することができる。すなわち、1つのメモリバンクにおいてワード線を選択状態としたとき、別のメモリバンクにおいて、ワード線を選択状態から非選択状態または非選択状態から選択状態へ駆動することができる。これらのメモリバンク♯0〜♯Mは、共通に、内部転送バス13に結合される。
【0080】
この図16に示す構成においては、メモリバンク♯0〜♯Mは、各々が、SRAMキャッシュメモリ12と同じ記憶容量を備えている。したがって、1つのDRAMキャッシュブロックを、複数のメモリバンクにわたって格納する。1つのDRAMメモリバンクにおいては、異なるDRAMキャッシュブロックのSRAMキャッシュブロックデータを格納する。この構成の場合、DRAMタグアドレスDTGは、バンクアドレスを含む。DRAMタグアドレスの構成は、バンクの数、およびDRAMキャッシュブロックのサイズおよびSRAMキャッシュブロックのサイズにより異なる。DRAMキャッシュメモリ14からSRAMキャッシュメモリ12へのデータ転送時において、1つのメモリバンクが選択されて、1つの選択されたメモリバンク内のSRAMキャッシュブロックが選択されて内部転送バス13を介してSRAMキャッシュメモリ12へ転送される。主記憶メモリ2とDRAMキャッシュメモリ14との間のデータ転送時、このメモリバンクを、インタリーブ対応で活性状態へ駆動する。すなわち、1つのメモリバンクに対し主記憶メモリからデータ転送が行なわれているとき、別のメモリバンクを選択状態へ駆動する。これにより、連続的に主記憶メモリからDRAMキャッシュメモリ14へデータ転送を行なうことができ、SRAMキャッシュミスおよびDRAMキャッシュミス時のペナルティ(プロセサの待ち時間)を小さくすることができる。
【0081】
また、このバンク構成の場合、主記憶メモリ2からメモリバンクへのデータ転送時、プロセサがアクセス要求したデータを含むSRAMキャッシュブロックが1つのメモリバンクへ転送された場合、このアクセス要求されたデータを含むSRAMキャッシュブロックを、このメモリバンクから内部転送バス部13を介してSRAMキャッシュメモリ12へ転送しかつ同時に、並行して主記憶メモリ2から別のメモリバンクへ、対応のDRAMキャッシュブロックの残りのSRAMキャッシュブロックデータを転送することができ、高速アクセスが可能となる。
【0082】
なお、上述の説明においては、高速メモリとしてSRAM、低速かつ大記憶容量のメモリとしてDRAMを用いている。しかしながら、メモリセルを構成するトランジスタの数が異なり、高集積化に適したメモリであれば、これらのSRAMおよびDRAMに代えて用いることができる。また、データ転送は双方向的に行なわれてもよい。
【0083】
【発明の効果】
以上のように、この発明に従えば、高速動作が可能な第1のメモリと、低速であるものの高集積化が可能な第2のメモリとを、ビット幅の広い転送バスを介して相互結合してキャッシュメモリとしてプロセサ内部に設けたため、キャッシュミス時におけるプロセサのデータ待ち時間を低減することが可能となり、プロセサの処理性能が改善される。また、第2のメモリは、高集積化が可能であり、このメモリ内蔵プロセサの面積を増加させることなくキャッシュの大記憶容量化が可能となる。また、第1のメモリと第2のメモリとを、幅の広い転送バスで結合していることにより、この第1および第2のメモリ間のデータ転送を高速に行なうことができる。
【0084】
請求項1のメモリ内蔵プロセサにおいては、第1および第2のメモリが階層的なキャッシュシステムを構成しており、第1のメモリでのキャッシュミスかつ第2のメモリでのキャッシュヒット時、転送手段を介して情報を第1と第2のメモリの間で転送している。この転送手段は、バス幅が演算処理器に結合されるバスの幅よりも広い。したがって、大量のデータを一括して転送することができ、第1のメモリのキャッシュミス時のペナルティ(ウエイト時間)を低減することができる。
【0085】
また、第2のメモリの1ビットセルのトランジスタ数は第1のメモリのそれよりも小さく、第2のメモリの集積度は第1のメモリよりも高くすることができ、応じて第2のメモリの記憶容量を小占有面積で大きくすることができる。これにより、内蔵キャッシュメモリの記憶容量を大きくすることができ、等価的にヒット率を高くすることができる。
【0086】
請求項2のメモリ内蔵プロセサにおいては、第1および第2のメモリのキャッシュミス時に初めて外部のメモリへアクセスして第2のメモリと外部メモリとの間で情報転送を行なっており、このとき併せてプロセサへも情報転送を行なっており、ミス時のウエイト時間を最小とすることができる。
【図面の簡単な説明】
【図1】 この発明に従うメモリ内蔵プロセサおよびこれを用いるシステムの構成を概略的に示す図である。
【図2】 この発明に従うメモリ内蔵プロセサの動作を示すフロー図である。
【図3】 この発明に従うメモリ内蔵プロセサの構成をより具体的に示す図である。
【図4】 この発明に従うメモリ内蔵プロセサにおけるキャッシュブロックの階層関係を概略的に示す図である。
【図5】 この発明に従うメモリ内蔵プロセサにおけるプロセサアドレスと各キャッシュブロックとの対応関係を概略的に示す図である。
【図6】 SRAMキャッシュヒット時にSRAMキャッシュメモリへ与えられるアドレス信号を概略的に示す図である。
【図7】 DRAMキャッシュメモリと主記憶メモリとの間でのデータ転送時にDRAMキャッシュメモリへ与えられるアドレスを概略的に示す図である。
【図8】 SRAMキャッシュメモリとDRAMキャッシュメモリとのデータ転送時の各キャッシュメモリへ与えられるアドレスを概略的に示す図である。
【図9】 図3に示すSRAMコントロールユニットの構成を概略的に示す図である。
【図10】 図3に示すDRAMコントロールユニットの構成を概略的に示す図である。
【図11】 図10に示すDRAMコントロールユニットの動作を示すフロー図である。
【図12】 図3に示すDRAMコントロールユニットのプロセサデータ転送部の構成を概略的に示す図である。
【図13】 この発明に従うメモリ内蔵プロセサにおけるSRAMキャッシュメモリとDRAMキャッシュメモリ間のデータ転送部の構成を概略的に示す図である。
【図14】 この発明に従う、キャッシュメモリ間データ転送時の選択メモリセルの対応関係を概略的に示す図である。
【図15】 キャッシュメモリ間のデータ転送時のキャッシュ内メモリセルの対応関係を概略的に示す図である。
【図16】 DRAMキャッシュメモリの他の構成を概略的に示す図である。
【図17】 従来のSRAMセルの構成を概略的に示す図である。
【図18】 従来のDRAMセルの構成を概略的に示す図である。
【符号の説明】
1 メモリ内蔵プロセサ、2 主記憶メモリ、10 プロセサ、11 プロセサバス、12 SRAMキャッシュメモリ、13 転送バス部、14 DRAMキャッシュメモリ、13a 転送回路、13b,13c 内部転送バス、20SRAMコントロールユニット、22 SRAMI/Oユニット、24 DRAMコントロールユニット、26 DRAMI/Oユニット。
Claims (2)
- 同一半導体チップ上に一体的に形成されるメモリ内蔵プロセサであって、
与えられたデータおよび命令に従って演算処理を行なう演算処理器、
前記演算処理器のためのデータおよび命令を含む情報を格納するための第1のメモリ、
前記第1のメモリよりも低速動作しかつ前記第1のメモリよりも大きな記憶容量を有し、かつ1ビットのメモリセルに含まれるトランジスタの数が前記第1のメモリのそれよりも少なく、前記演算処理器のための情報を格納するための第2のメモリ、
前記演算処理器、前記第1のメモリおよび前記第2のメモリを相互結合するバス、
前記バスと別に設けられかつ前記バスよりも大きなバス幅を有し、前記第1のメモリと前記第2のメモリとの間で情報を転送するための転送手段、
前記演算処理器のアクセス要求する情報が前記第1のメモリに記憶されているか否かを判定し、該判定結果に従って前記バスを介して前記演算処理器と前記第1のメモリとの間で情報の転送を行なうための第1の制御手段、および
前記第1の制御手段による、前記演算処理器が要求する情報が前記第1のメモリに存在しないとの判定結果に応答して活性化され、前記アクセス要求された情報が前記第2のメモリに存在するか否かを判定し、該判定結果が前記第2のメモリ内での前記アクセス要求された情報の存在を示すとき、前記転送手段を介して前記第1のメモリと前記第2のメモリとの間で前記アクセス要求された情報を含む情報の転送を行なうための第2の制御手段を備える、メモリ内蔵プロセサ。 - 前記第2の制御手段の前記アクセス要求された情報の不存在を示す判定結果に応答して、前記バスを介して前記第2のメモリと外部に設けられた外部メモリとの間で情報を転送しかつ前記演算処理器がアクセス要求した情報を前記演算処理器へ前記バスを介して転送するための手段をさらに備える、請求項1記載のメモリ内蔵プロセサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00621797A JP3789998B2 (ja) | 1997-01-17 | 1997-01-17 | メモリ内蔵プロセサ |
US08/887,285 US5983023A (en) | 1997-01-17 | 1997-07-02 | Memory-contained processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00621797A JP3789998B2 (ja) | 1997-01-17 | 1997-01-17 | メモリ内蔵プロセサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10207769A JPH10207769A (ja) | 1998-08-07 |
JP3789998B2 true JP3789998B2 (ja) | 2006-06-28 |
Family
ID=11632364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP00621797A Expired - Fee Related JP3789998B2 (ja) | 1997-01-17 | 1997-01-17 | メモリ内蔵プロセサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US5983023A (ja) |
JP (1) | JP3789998B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3803196B2 (ja) * | 1998-07-03 | 2006-08-02 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、情報処理方法および記録媒体 |
US6859399B1 (en) * | 2000-05-17 | 2005-02-22 | Marvell International, Ltd. | Memory architecture and system and multiport interface protocol |
US8046343B2 (en) * | 2001-09-29 | 2011-10-25 | Siebel Systems, Inc. | Computing system and method for automatic completion of pick field |
US7000067B2 (en) * | 2002-06-07 | 2006-02-14 | Seagate Technology Llc | Virtual expansion of program RAM size |
US6961807B1 (en) | 2002-08-27 | 2005-11-01 | Cypress Semiconductor Corporation | Device, system and method for an integrated circuit adaptable for use in computing systems of differing memory requirements |
US7401185B2 (en) * | 2006-07-06 | 2008-07-15 | International Business Machines Corporation | Buffered indexing to manage hierarchical tables |
US8103833B2 (en) * | 2007-09-04 | 2012-01-24 | Freescale Semiconductor, Inc. | Cache memory and a method for servicing access requests |
US7777330B2 (en) * | 2008-02-05 | 2010-08-17 | Freescale Semiconductor, Inc. | High bandwidth cache-to-processing unit communication in a multiple processor/cache system |
WO2013054378A1 (en) | 2011-10-13 | 2013-04-18 | Hitachi, Ltd. | Storage system and method of controlling storage system |
JP2016170729A (ja) | 2015-03-13 | 2016-09-23 | 株式会社東芝 | メモリシステム |
JP6039772B1 (ja) * | 2015-09-16 | 2016-12-07 | 株式会社東芝 | メモリシステム |
KR102507302B1 (ko) | 2018-01-22 | 2023-03-07 | 삼성전자주식회사 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69133361T2 (de) * | 1990-12-25 | 2004-12-23 | Mitsubishi Denki K.K. | Halbleiterspeichervorrichtung mit einem Speicher mit großer Speicherkapazität und einem Hochgeschwindigkeits-Speicher |
US5561783A (en) * | 1992-11-16 | 1996-10-01 | Intel Corporation | Dynamic cache coherency method and apparatus using both write-back and write-through operations |
JP2625348B2 (ja) * | 1993-02-03 | 1997-07-02 | 日本電気株式会社 | キャッシュメモリ |
JPH06337815A (ja) * | 1993-05-28 | 1994-12-06 | Hitachi Ltd | データ処理装置 |
JPH07200404A (ja) * | 1993-12-03 | 1995-08-04 | Internatl Business Mach Corp <Ibm> | Dramを利用したキャッシュメモリ |
JPH07169271A (ja) * | 1993-12-10 | 1995-07-04 | Mitsubishi Electric Corp | 半導体記憶装置、クロック同期型半導体装置および出力回路 |
JP3626514B2 (ja) * | 1994-01-21 | 2005-03-09 | 株式会社ルネサステクノロジ | 画像処理回路 |
JPH07319436A (ja) * | 1994-03-31 | 1995-12-08 | Mitsubishi Electric Corp | 半導体集積回路装置およびそれを用いた画像データ処理システム |
US5835442A (en) * | 1996-03-22 | 1998-11-10 | Enhanced Memory Systems, Inc. | EDRAM with integrated generation and control of write enable and column latch signals and method for making same |
-
1997
- 1997-01-17 JP JP00621797A patent/JP3789998B2/ja not_active Expired - Fee Related
- 1997-07-02 US US08/887,285 patent/US5983023A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5983023A (en) | 1999-11-09 |
JPH10207769A (ja) | 1998-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3304413B2 (ja) | 半導体記憶装置 | |
US4577293A (en) | Distributed, on-chip cache | |
US5226139A (en) | Semiconductor memory device with a built-in cache memory and operating method thereof | |
US6233195B1 (en) | Multi-bank DRAM suitable for integration with processor on common semiconductor chip | |
US6370073B2 (en) | Single-port multi-bank memory system having read and write buffers and method of operating same | |
EP0444601B1 (en) | Data processor with interleaved DRAM memory | |
US6848035B2 (en) | Semiconductor device with multi-bank DRAM and cache memory | |
US5043943A (en) | Cache memory with a parity write control circuit | |
US20020078294A1 (en) | High-speed random access semiconductor memory device | |
US20080256305A1 (en) | Multipath accessible semiconductor memory device | |
US6151664A (en) | Programmable SRAM and DRAM cache interface with preset access priorities | |
KR20000011417A (ko) | 반도체집적회로및데이터처리시스템 | |
JPH05314779A (ja) | 連想メモリセルおよび連想メモリ回路 | |
US7203794B2 (en) | Destructive-read random access memory system buffered with destructive-read memory cache | |
US7636808B2 (en) | Semiconductor device | |
JPH03286495A (ja) | 半導体記憶装置 | |
JP2006190402A (ja) | 半導体装置 | |
JP4445081B2 (ja) | キャッシュ・メモリ | |
JP3789998B2 (ja) | メモリ内蔵プロセサ | |
JP2009026439A (ja) | 半導体メモリ装置及びそれによる共有レジスタ運用方法 | |
JPH0620476A (ja) | 電子的コンピュータ・メモリのためのビット・ライン・スイッチ配列 | |
US6222786B1 (en) | Dynamic random access memory with write-without-restore and systems and methods using the same | |
US20080282042A1 (en) | Multi-path accessible semiconductor memory device with prevention of pre-charge skip | |
EP0793827B1 (en) | Method and structure for utilizing a dram array as second level cache memory | |
US20060190678A1 (en) | Static random access memory (SRAM) compatible, high availability memory array and method employing synchronous dynamic random access memory (DRAM) in conjunction with a single DRAM cache and tag |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060315 |
|
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: 20060322 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060330 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |