(57)【特許請求の範囲】
【請求項１】
メモリセルアレイと、
前記メモリセルアレイに接続される複数のビット線と、
前記メモリセルアレイに接続されるセンスアンプと、
前記メモリセルアレイに接続される列デコーダと、
前記センスアンプに接続される行デコーダと、
前記メモリセルアレイ、前記列デコーダ、前記行デコーダ及び前記センスアンプを制御する制御回路とから構成されるメモリバンクを一つの半導体基板上に複数具備し、
前記制御回路は、ある一つのメモリサイクル時のアドレスをその次のメモリサイクル時の他のアドレスが入力された以降まで保持し、
前記制御回路は比較回路を有し、前記比較回路は、前記保持されたアドレスとその次のメモリサイクル時のアドレスとを比較し、
前記複数のメモリバンクの前記複数のビット線は複数のグローバルビット線に共通に接続され、
前記制御回路は、さらに出力回路を有し、
前記比較回路のアドレス比較が一致する場合、前記メモリセルアレイのワード線の選択動作を行わず、前記出力回路は前記複数のメモリバンクのうち対応するある一つから前記複数のグローバルビット線へのデータ出力及び前記グローバルビット線を経由して、前記複数のメモリバンクのうち対応するある一つへのデータ書き込みの準備が整ったことを示す第１信号を出力し、前記比較回路のアドレス比較が不一致の場合、前記メモリセルアレイのワード線の選択動作を行った後、前記出力回路は前記第1信号を出力することを特徴とする半導体集積回路装置。
【請求項２】
請求項１記載の半導体集積回路装置において、
前記複数のメモリバンクのうちの一つの読み出し動作が起動され、前記比較回路のアドレス比較が一致する場合、
前記制御回路は、前記メモリセルアレイからのデータ読み出しを行わず、前記センスアンプに保持されているデータを前記複数のメモリバンクのうち対応するある一つの外部に出力することを特徴とする半導体集積回路装置。
【請求項３】
請求項２記載の半導体集積回路装置において、
前記複数のメモリバンクのうちの一つの読み出し動作が起動され、前記比較回路のアドレス比較が一致しない場合、前記制御回路は、前記メモリセルアレイからのデータの読み出しを行うことを特徴とする半導体集積回路装置。
【請求項４】
メモリセルアレイと、前記メモリセルアレイに接続される前記センスアンプと、前記メモリセルアレイに接続される列デコーダと、前記センスアンプに接続される行デコーダと、前記メモリセルアレイ、前記列デコーダ、前記行デコーダ及び前記センスアンプを制御する制御回路とをそれぞれ有する第1のメモリ及び第2のメモリと、
前記第1及び第2のメモリに接続される制御部とを一つの半導体基板上に具備し、
前記制御部は、アドレス入力時に入力されたアドレスに対応して識別情報を出力すると共に前記識別情報を保持し、該入カアドレスに従って読み出された情報の出力時に、前記識別情報を出力することで、メモリアクセスの順番に関係なく、前記第1または第2のメモリからデータを出力する第1出力回路を有することを特徴とする半導体集積回路装置。
【請求項５】
請求項４記載の半導体集積回路装置において、
前記制御回路は、比較回路を有し、前記比較回路において過去のメモリアクセスによって前記センスアンプに読み出されている情報のアドレスと新たに入力されたアドレスとを比較し、前記比較の結果、両アドレスが一致する場合、前記メモリセルアレイから情報の読み出しを行わず、既に前記センスアンプに読み出されている前記情報を出力することを特徴とする半導体集積回路装置。
【請求項６】
請求項５記載の半導体集積回路装置において、
前記制御回路は、前記比較回路における前記アドレスの一致を前記メモリの外部に出力する第２出力回路を有することを特徴とする半導体集積回路装置。
【請求項７】
請求項４記載の半導体集積回路装置において、
更に演算回路を具備することを特徴とする半導体集積回路装置。
【請求項８】
請求項４記載の半導体集積回路装置において、
前記メモリセルアレイは、DRAMメモリセルで構成されることを特徴とする半導体集積回路装置。
【請求項９】
メモリセルアレイと、前記メモリセルアレイに接続されるセンスアンプと、前記メモリセルアレイに接続される列デコーダと、前記センスアンプに接続される行デコーダと、前記メモリセルアレイ、前記列デコーダ、前記行デコーダ及び前記センスアンプを制御する制御回路とをそれぞれ含む第１のメモリ及び第２のメモリと、前記第１及び第２のメモリに接続される制御部と、前記制御部に接続されるプロセッサを一つの半導体基板上に具備し、
前記制御部は前記プロセッサから複数の入力アドレスが入力される時、前記プロセッサに前記複数の入力アドレス毎に対応する識別情報を出力する第3出力回路及び前記識別情報を前記制御部内に保持する第1保持回路を有し、
前記プロセッサは、発行した前記複数のアドレス毎に前記制御部から出力された前記識別情報を対応させて保持する第2保持回路を有し、
前記制御部は、前記プロセッサに前記入力アドレスに従って読み出された情報とともに、前記プロセッサに前記入力アドレスに対応する前記識別情報を出力する第4出力回路を有し、
前記プロセッサは、前記読出された情報とともに受け取った識別情報と、その内に保持しておいた識別情報との一致を判別し、発行した前記複数の入力アドレスのうちどの入力アドレスに対応するかを検出する検出回路を有することを特徴とする半導体集積回路装置。
【請求項１０】
アクセスシーケンス制御回路により共通のデータ線に接続されている第1のメモリバンク及び第2のメモリバンクを含むメモリにアクセスする方法であって、
前記第1のメモリバンクからのデータの読み出し動作を示す第1のアドレスと前記第2のメモリバンクからのデータの読み出し動作を示す第2のアドレスとを前記アクセスシーケンス制御回路で連続的な順番で受け取る段階と、
前記アクセスシーケンス制御回路によって、前記第1のメモリバンクに対する第1読み出しコマンドを発行し、次に、第2のメモリバンクに対する第2読み出しコマンドを発行する段階と、
前記第1読み出しコマンドによる前記第1のメモリバンクのレイテンシが前記第2読み出しコマンドによる前記第2のメモリバンクのレイテンシより大きい場合、先ず前記第2のメモリバンクから前記共通のデータ線に読み出されたデータを前記アクセスシーケンス制御回路から出力し、次に、前記第1のメモリバンクから前記共通のデータ線に読み出されたデータを前記アクセスシーケンス制御回路から出力する段階を含んでなることを特徴とするメモリアクセス方法。
【請求項１１】
請求項１０記載のメモリアクセス方法において、
前記第１読み出しコマンドによる前記第１のメモリバンクのレイテンシが前記第２読み出しコマンドによる前記第２のメモリバンクのレイテンシより小さい場合、先ず前記第１のメモリバンクから前記共通のデータ線に読み出しデータを出力する段階を更に有することを特徴とするメモリアクセス方法。
【請求項１２】
請求項１０記載のメモリアクセス方法において、
前記第1及び第2のメモリバンクは、それぞれ複数のメモリセルを含み、前記各メモリセルはトランジスタとキャパシタを有することを特徴とするメモリアクセス方法。
【請求項１３】
アクセスシーケンス制御回路を通じてCPUにより共通のデータ線に接続されている第1のメモリバンク及び第2のメモリバンクを含むメモリにアクセスする方法であって、
前記第1のメモリバンクからのデータの読み出し動作を示す第1アドレスと、前記第2のメモリバンクからのデータの読み出し動作を示す第2アドレスとを前記CPUから前記アクセスシーケンス制御回路に連続的な順番で受け取る段階と、
前記アクセスシーケンス制御回路によって、前記第1のメモリバンクに対する第1読み出しコマンドを発行し、次に、第2のメモリバンクに対する第2読み出しコマンドを発行する段階と、
前記第1読み出しコマンドによる前記第1のメモリバンクのレイテンシが前記弟2読み出しコマンドによる前記第2のメモリバンクのレイテンシより大きい場合、先ず前記第2のメモリバンクから前記共通のデータ線に読み出されたデータをアクセスシーケンス制御回路が出力し、次に、前記第1のメモリバンクから前記共通のデータ線に読み出されたデータをアクセスシーケンス制御回路が出力する段階を含んでなることを特徴とするメモリアクセス方法。
【請求項１４】
請求項１３記載のメモリアクセス方法において、
前記第１及び第２のメモリバンクからの前記読み出されたデータの出力順番を示すID番号を前記アクセスシーケンス制御回路から前記CPUに発行する段階を更に含むことを特徴とするメモリアクセス方法。
【発明の詳細な説明】
技術分野
本発明は、DRAM(Dynamic Random Access Memory)等の高集積メモリを搭載した半導体集積回路装置に関し、特に、高集積メモリの高速アクセス方法に適用して有効な技術に関する。
背景技術
近年、半導体製造技術の進展によりLSI(Large Scaled Integrated Circuit)の高集積化が進み、大容量メモリと大規模な論理回路を１チップ上に集積することが可能となってきた。このような半導体チップではメモリと論理回路間のデータスループットを上げるためにデータ入出力線の本数を増やすことが容易で、チップ外部の入出力ピンをドライブする場合に比べてデータ入出力にかかる電力消費を抑えて高速にデータ転送が行えるという利点があるためその将来が期待されている。
このような半導体チップの中に大容量メモリと大規模な論理回路に加えて高速に動作するキャッシュメモリを混載したものがある。これは大容量メモリと論理回路の動作速度の違いをキャッシュメモリによって緩和することによって高速な動作を狙ったものであり、例えば「Toru Shimizu, et al.,"A Multimedia 32b RISC Microprocessor with 16Mb DRAM," 1966 IEEE Intemational Solid-State Circuits Conference, Digest of Technical Papers pp.216-217」（以下、従来技術１という。）に示されている。従来技術１によれば、32ビット・マイクロプロセッサ、2Mバイト・DRAM、2Kバイト・キャッシュメモリが66MHzで動作する128ビット幅の内部バスで結ばれている。128ビットのデータを転送する場合、マイクロプロセッサとDRAMの間は５サイクル、マイクロプロセッサとキャッシュメモリの間は１サイクルで終了する。従って、キャッシュメモリにヒットしているうちはデータ転送に要するサイクルを1/5に短縮できる。
発明の開示
従来技術１ような半導体チップに搭載されるメモリには、連続読み出し、キャッシュ機能、アクセス制御方法等、様々な機能が要求される。また、半導体チップの用途に応じて記憶容量の変更も必要である。しかし大容量メモリやキャッシュメモリでは高速動作が要求される部分にアナログ回路を多用しており、メモリの機能や記憶容量を変更する場合には、例えそれがわずかな変更であっても大掛かりな設計のやり直しとなってしまうという問題点がある。
また、従来技術１ような半導体チップにおいては製品仕様の決定から製品の完成までのTAT(Turn Around Time)が短いことが非常に重要であり、高機能性、記憶容量変更の容易さ、TATの短縮の３つを同時に達成することが大きな課題である。
更に、キャッシュメモリを用いて高速なメモリアクセスを実現しようとする場合にも、キャッシュメモリにヒットしているうちは良いが、一旦ミスが起きると時間のかかるメインメモリへのアクセスが行われるため、CPU(Central Processing Unit)の動作を律速することになり、動作速度が大きく制限されてしまうという問題点がある。
また、DRAMは同一ページ内でアドレスが連続にアクセスされる場合は、比較的高速にアクセスされる。しかし、異なるページがアクセスされる（ページミスが発生した）場合は、プリチャージ等のためアクセスが遅くなる。この問題を解決する一手法として、マルチバンク構造を利用することによってDRAMのページミスを隠すことが提案されている。この例としては、発明者等の先の出願（日本特許特出願平成８年第３０１５３８号（１９９６年１１月１３日出願））がある。
しかしながら、前記日本特許出願に開示されるような手法では、ランダムアクセス時にはページミスが避けられないという課題がある。
本発明の一つの目的は、マイクロプロセッサや画像プロセッサのような大規模な論理回路に混載される、様々な機能及び記憶容量をもつメモリマクロの設計を容易にすることにある。
本発明の一つの目的は、マイクロプロセッサや画像プロセッサのような大規模な論理回路とのインタフェースが容易なメモリを提供することにある。
本発明の一つの目的は、ページミス等のペナルティを軽減するメモリを提供することにある。
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば以下の通りである。
すなわち、半導体集積回路装置（CHIP）に搭載されるメモリマクロ（MM）を構成するため、メモリバンク・モジュール（10,11,12）、メインアンプ・モジュール（13）、電源回路・モジュール（14）、制御回路・モジュール（15）等の機能ブロックから成るデータベース（1）を準備する。データベース（1）に準備された各機能ブロックは隣接して配置するだけで電源や信号線が接続される構成とする。これにより大容量メモリやキャッシュメモリを構成する機能ブロックの種類やその数を変更することによって様々な機能、容量をもつメモリマクロの設計を容易に行える。
メモリバンクモジュール（11）内の制御回路（BKCONTH）にアドレス比較機能（COMP）を付加して、メモリマクロ（MM3）を構成する。これにより、同一ページ内をアクセスする場合は、高速にアクセスができる高速メモリマクロがメモリマクロの外部に制御回路を設けることなく実現できる。
複数のメモリバンクモジュール（11）と、前記メモリバンクモジュールを制御する制御回路モジュール（17）とでメモリマクロ（MM4）を構成する。前記制御回路モジュール（17）はアドレス及びデータにそれぞれ識別情報（ID(Identification)）を付加して管理し、アドレスとデータの対応をとるようにされる。これによって、アドレスの入力順番とデータの出力順番を変更して、ページミスが起きた場合にはアドレスが後から入力されていてもデータを先に出力できる場合はこれを先に出力してしまうことによって高速なメモリアクセスを可能とする。
【図面の簡単な説明】
図１は、メモリマクロの構成及び構成方法を示す。
図２は、DRAMバンク・モジュールの構成例を示す。
図３は、DRAMバンク・モジュールの制御回路の構成例を示す。
図４は、DRAMバンク・モジュールの動作波形を示す。
図５は、DRAMバンク・モジュールとSRAMバンク・モジュールとの接続例を示す。
図６は、キャッシュバンク・モジュールの構成例を示す。
図７は、キャッシュバンク・モジュールのヒット判定回路及び制御回路の構成例を示す。
図８は、キャッシュバンク・モジュールのヒットの場合の動作波形を示す。
図９は、キャッシュバンク・モジュールのミスの場合の動作波形を示す。
図１０は、メインアンプ・モジュールの構成例を示す。
図１１は、電源回路・モジュールの構成例を示す。
図１２は、ライトデータバッファ・モジュールとメインアンプ・モジュールとの接続例を示す。
図１３は、DRAMバンク・モジュールを用いたメモリマクロ（メモリマクロの第１の例）の構成例を示す。
図１４は、バンク制御回路モジュールの構成例を示す。
図１５は、メモリマクロの第１の例の動作波形を示す。
図１６は、メモリマクロの第１の例のアドレスの割り付け例を示す。
図１７は、SRAMバンク・モジュールを用いたメモリマクロ（メモリマクロの第２の例）の動作波形を示す。
図１８は、キャッシュバンク・モジュールを用いたメモリマクロ（メモリマクロの第３の例）の構成例を示す。
図１９は、キャッシュ制御回路の構成例を示す。
図２０は、メモリマクロの第３の例の動作波形を示す。
図２１は、メモリマクロの第３の例のアドレスの割り付け例を示す。
図２２は、メモリマクロの第３の例のレインテシを示す。
図２３は、ID付アクセスシーケンス制御回路を有するメモリマクロ（メモリマクロの第４の例）の構成例を示す。
図２４は、ID付アクセスシーケンス制御回路の構成例を示す。
図２５は、メモリマクロの第３の例の動作波形を示す。
図２６は、メモリマクロの第３の例のキャッシュバンク・モジュールの動作波形を示す。
図２７は、ID付アクセスシーケンス制御回路の他の構成例を示す。
図２８は、アドレス信号ADDINの入力時のアドレスID信号AIDの発行のフローを示す。
図２９は、データ出力時のデータID信号DIDの発行フローを示す。
図３０は、テーブルMM-TABLEの構成例を示す。
図３１は、マルチプロセッサシステム構成例を示す。
図３２は、アドレス信号ADDINの入力時のアドレスID信号AIDの発行のフローを示す。
図３３は、データ出力時のデータID信号DIDの発行フローを示す。
図３４は、テーブルM-TABLEの構成例を示す。
図３５は、アドレスID信号によるプロセッサの制御フローを示す。
図３６は、データID信号によるプロセッサの制御フローを示す。
図３７は、テーブルCPU-TABLEの構成例を示す。
発明を実施するための最良の形態
《メモリマクロの構成及び構成方法》
図１には、本発明のメモリマクロの構成及び構成方法が示される。大規模な論理回路の一例である中央処理装置CPUと大容量記憶装置の一例であるメモリマクロMMとが１つの半導体基板上（１つのチップ上）の半導体集積回路装置CHIPに混載される。半導体集積回路装置CHIPは、例えば、CMOS(Complementary Metal Oxide Semiconductor)プロセス技術で製造され、レジンモールド技術等でプラスティックパッケージに封止される。このチップのように混載される論理回路の規模や種類によって、メモリマクロMMに要求される記憶容量やスピードは様々だがメモリマクロの設計は短時間で行う必要がある。
そこで、メモリマクロ構成用データベース１には様々な機能をもった機能ブロック(モジュール)が準備される。すなわち、メモリマクロ構成用データベース１には、１トランジスタ・１キャパシタのDRAM(Dynamic Random Acces Memory)メモリセルを用いたDRAMバンク・モジュール10、DRAMバンク・モジュール10にヒット判定機能を設けたキャッシュバンク・モジュール11、４トランジスタ又は６トランジスタのSRAM(Static Random Access Memory)メモリセルを用いたSRAMバンク・モジュール12、メモリバンク(DRAMバンク10、キャッシュバンク11、SRAMバンク12等)とメモリマクロMM外部とのデータのやり取りを行うメインアンプ・モジュール13、メモリマクロMMを構成している各モジュールに必要な電源を供給する電源回路・モジュール14、バンク制御回路・モジュール15、キャッシュ制御回路・モジュール16、ID付アクセスシーケンス制御回路・モジュール17、ライトデータバッファ・モジュール18等が蓄積されるようにされる。
これらの機能ブロックは何れも並べて配置するだけで電源、信号線、データ入出力線などの必要な配線が自動的に接続できるようにレイアウトされている。
メモリマクロ構成用データベース１を準備しておくことによって容量や機能の異なるメモリマクロMMを速やかに構成することができる。
また、バンク制御回路・モジュール15、キャッシュ制御回路・モジュール16、ID付アクセスシーケンス制御回路・モジュール17、ライトデータバッファ・モジュール18等のメモリとメモリアクセス要求デバイスとのインタフェース回路をメモリマクロの中に準備するようにされるため、メモリアクセス要求デバイスの変更或いは新たなインタフェース回路を設計する必要ない。
所望の機能を持ったメモリマクロMMを構成する場合には、メモリマクロ構成用データベース１から必要な機能ブロックを選んで配置すればよい。図１に示されるメモリマクロMM1、MM2、MM3、MM4について以下概略を説明する。
（１）メモリマクロMM1
メモリマクロMM1は、メモリマクロ構成用データベース１からDRAMバンク・モジュール10、メインアンプ・モジュール13、電源回路・モジュール14、バンク制御回路・モジュール15、ライトデータバッファ・モジュール18を使用して構成したメモリマクロの例である。各機能ブロックは並べて配置するだけで必要な配線が行われるように予め設計されており、図１に示されるように配置するだけでDRAMを用いたメモリマクロが簡単に構成できる。
例えば、DRAMバンク・モジュール10、メインアンプ・モジュール13、電源回路・モジュール14の電源配線の場所はそれぞれの機能ブロック内において決められた場所に統一されており、図１に示されるように各機能ブロックを隣接して配置するだけで互いの電源配線を接続することができる。
詳細は後述するが、データの入出力線に関しても同様に簡単に接続できるよう、予め決めておいた場所に配置配線したグローバルビット線GBL（共通ビット線、共通データ線ともいう。）を通して行う。
このように必要な配線の場所を統一しておくことによって各機能ブロックの追加、変更を簡単に行えるので、例えば記憶容量を変更することも容易である。図１においてメモリマクロMM1に用いた一個のDRAMバンク・モジュール10の記憶容量が256Kbitなら、メモリマクロMM1は全体の記憶容量は1Mbitになる。記憶容量2Mbitのメモリマクロが必要な場合は、DRAMバンク・モジュール10を８個用いてメモリマクロを構成すればよいし、512kbitの記憶容量で良い場合には使用するDRAMバンク・モジュール10の数は２個で良い。
このようにメモリマクロMM1はDRAMバンク・モジュール10、電源回路・モジュール14、メインアンプ・モジュール13の３種類のモジュールから構成されており、必要最小限の構成で、記憶容量の変更が容易なメモリマクロが実現できる。従って、最小限の面積で大きな記憶容量が必要な場合に適したメモリマクロの構成である。
（２）メモリマクロMM2
メモリマクロMM2は、メモリマクロ構成用データベース１からDRAMバンク・モジュール10、SRAMバンク・モジュール12、メインアンプ・モジュール13、電源回路・モジュール14を、バンク制御回路・モジュール15ライトデータバッファ・モジュール18を使用して構成したメモリマクロの例である。
SRAMバンク・モジュール12は高速動作が可能なので、キャッシュ機能付き大容量メモリを構成できる。アクセスが比較的速いSRAM部分とアクセスが比較的遅いDRAM部分とが異なるアドレス範囲に混在し、SRAM部分が高速アクセス部分としてのいわゆるキャッシュとして機能する。更にメモリ容量を増やしたければDRAMバンク・モジュール10の数を増やせばよいし、キャッシュの容量を減らしてチップ面積を削減する場合には、例えば２個あるSRAMバンク・モジュール12を１個に変更すればよい。このようにメモリマクロMM2はキャッシュ機能を備えるメモリマクロでありキャッシュの記憶容量の変更も容易に行うことができる。
（３）メモリマクロMM3
メモリマクロMM3は、メモリマクロ構成用データベース１からキャッシュバンク・モジュール11、メインアンプ・モジュール13、電源回路・モジュール14、キャッシュ制御回路・モジュール16、ライトデータバッファ・モジュール18を使用して構成されたキャッシュ機能付きメモリマクロの構成例である。
メモリマクロMM3ではキャッシュ制御回路・モジュール16によってキャッシュバンク・モジュール11を制御することによって、キャッシュ機能を実現している。すなわち、同一ワード線内（ページ内）にデータがある場合は、アクセスが速くなる機能を実現している。
キャッシュバンク・モジュール11は、DRAMバンク・モジュール10と同様にDRAMメモリセルを用いたメモリバンク・モジュールであるが、センスアンプSAをキャッシュメモリとして使用し、バンク内にヒット判定回路を内蔵したDRAMメモリバンク・モジュールである。バンク内にヒット判定回路を内蔵したため、キャッシュ制御回路・モジュール16が小型化できるので、特に小さな記憶容量ながらキャッシュ機能付きが必要なメモリイマクロには好適である。DRAMバンク・モジュール10とSRAMバンク・モジュール12を用いて実現したメモリマクロMM2に比べて、より小さな面積でキャッシュ機能を持ったメモリマクロを構成することができる。従って、既存のキャッシュを持ったシステムを１チップ化するのではなく、新たに設計した演算回路と混載する場合には好適なキャッシュ機能付メモリマクロとなる。
（４）メモリマクロMM4
メモリマクロMM4は、メモリマクロ構成用データベース１からキャッシュバンク・モジュール11、メインアンプ・モジュール13、電源回路・モジュール14、ID付アクセスシーケンス制御回路・モジュール17、ライトデータバッファ・モジュール18を使用して構成されたキャッシュ機能付きメモリマクロの構成例である。
詳細は後述するが、メモリマクロMM4は入力されたアドレスに対して識別情報（ID）を発行し、後のデータ出力時に再び同じIDを付加して出力する。IDを受取った中央処理装置CPUは、このしくみによって、アドレスとデータの対応を知ることができる。メモリマクロMM4はアドレスの入力順番と、データの出力順番を変更し、先に出力できるデータを先に出力するようにされる。この動作によってキャッシュのミスが起きた場合（同一ワード線内にデータがない場合）も効率よくデータ転送を行うことができる。
メモリマクロMM1、MM2、MM3、MM4を例に説明したように、メモリマクロ構成用データベース１に予め準備しておいた多様な機能ブロックを、用途に応じて組み合わせたり、数量を変更することによって所望の機能と記憶容量をもったメモリマクロを速やかに構成することが可能となる。メモリマクロ構成用データベース１には多種多様な機能ブロックを準備しておくことが可能で、ここで示したもの以外にも必要な機能ブロックがあれば準備しておけば良い。ここではこのようなメモリマクロを構成するための代表的な機能ブロックについて以下詳細に説明する。
《DRAMバンク・モジュール》
図２にDRAMバンク・モジュール10のブロック図が示される。DRAMバンク・モジュール10はメモリセルアレイCA、センスアンプSA、YデコーダYD、XデコーダAD、制御回路BKCONT、電源配線端子PL、ワード線WD、グローバルビット線GBLにより構成される。
メモリセルアレイCAは、複数のワード線WDと、複数のビット線対と、それらが交差する箇所に配置される１つのトランジスタと１つの容量からなるダイナミック型のメモリセル（DRAMメモリセル）とで構成される。各ビット線対はセンスアンプSAに接続される。
センスアンプSAには、図示されていないが、ビット線対を電源電圧の半分の電圧にするプリチャージ回路、ビット線対を等電位にするイコライズ回路及びビット線対の電位を増幅するセンスアンプが含まれる。
YデコーダYDには、図示されていないが、センスアンプSAの出力を選択するカラムスイッチ(Yスイッチ)とカラムスイッチを制御する選択信号を発生するデコード回路が含まれる。前記デコード回路には、アドレス信号ADDの一部（Yアドレス）が入力される。
XデコーダADには、アドレス信号ADDの一部（Xアドレス）が入力され、デコードされて１本のワード線WDを選択するようにされる。
図３には、制御回路BKCONTの構成例が示される。制御回路BKCONTはタイミング発生回路TIM、X系制御回路XCNT、Y系制御回路YCNTから構成される。制御信号CBANKには、クロック信号CLKとバンク選択信号BSとリード/ライト切換え信号RWとリフレッシュ要求信号REF等が含まれる。タイミング発生回路TIMは、クロック信号CLKとバンク選択信号BSとリード/ライト切換え信号RW等を取り込んで、X系制御回路XCNTとY系制御回路YCNTとに必要なタイミング信号を生成するようにされる。また、データの読み出し又は書き込みの準備が整ったこと或いはリフレッシュが終了したことを外部に知らせるレディ信号RDYが生成される。X系制御回路XCNT及びY系制御回路YCNTはそれぞれDRAMバンク・モジュール10の内部動作に必要な制御信号XSIG、YSIGを生成するようにされる。
なお、電源配線端子PLに接続される電源配線の少なくとも一部及びグローバルビット線GBLはメモリセルアレイCAの中を通過するように配置される。
図４には、DRAMバンク・モジュール10から所望のメモリセルに保存してあるデータを読み出す場合のタイミングチャートが示される。アドレス信号ADD及び制御信号CBANKを解読して、該当バンクの読み出しであれば、外部からアドレス信号ADDを通して入力されたアドレスがXデコーダADによってデコードされ、ワード線WDの一本が選択される（"HIGH"レベルにされる）。メモリセルアレイCAにあるDRAMメモリセルのうち、ワード線WDによって選択されたメモリセル内の信号が読み出されてセンスアンプSA内のセンスアンプによって増幅され保持される。また、レディ信号RDYが"HIGH"レベルにされる。センスアンプSA内のセンスアンプによって読み出されたデータのうち、YデコーダYDによって更に選択されたものがグローバルビット線GBLを通してDRAMバンク・モジュール10から該モジュール外部へ出力される。
書込みについても同様にメモリバンク外部から入力された信号がグローバルビット線GBLを通してセンスアンプSAに送られ、入力されたアドレスに対応するワード線WDが立ちあげられメモリセルにデータが書込まれる。
メモリセルへのデータの書込みは、図４に示される読み出し動作と同様にワード線WDの選択によりアクティブになったメモリセルから読み出したデータを保持しているセンスアンプSA内のセンスアンプに対して、グローバルビット線GBLから送られてきたデータをYデコーダYDによって選択された所望のセンスアンプSAに送ることによって行われる。
一連の動作は制御信号CBANKを通して入力された信号に基づき制御回路BKCONTによって制御される。
データ入出力を行うグローバルビット線GBLは、隣接して配置することによって他のDRAMバンク・モジュール10やメインアンプ・モジュール13に自動的に接続されるよう予め定められた場所に配置される。
また、電源配線端子PLは外部から供給された電源をバンク内の所望の回路に供給するほか、隣接して配置された他の機能モジュールへ電源を供給できるように、定められた場所に配置される。このように、各機能モジュールにおいて、グローバルビット線GBL、電源配線端子PLの配置場所を共通化しておくことによって、各モジュールを隣接して配置するだけで必要な配線を行うことができるため、速やかにメモリマクロを構成することが可能となる。
特にDRAMバンク・モジュール10ではメモリセルにDRAMメモリセルを用いているため小面積で大きな記憶容量を得ることができる。特に演算回路とメモリを混載する場合には混載するチップ面積の増大は避けられないため集積性のよいDRAMメモリセルを用いたDRAMバンク・モジュール10が好適なモジュールである。
《SRAMバンク・モジュール》
SRAMバンク・モジュール12はDRAMバンク・モジュール10と同様の構成によって実現できる。但し、SRAMバンク・モジュール12の場合はセルアレイCAに４トランジスタや６トランジスタのSRAMメモリセルが用いられる。なお、メモリセル自体に駆動能力があるため、センスアンプSA内のセンスアンプは省略することができる。DRAMバンク・モジュール10とSRAMバンク・モジュール12とでは、使用しているメモリセルの大きさが異なるため、両方のバンク・モジュールを共通のグローバルビット線GBLのピッチに合せて配置することは難しい。そこで、グローバルビット線GBLのピッチにあわせてSRAMメモリセルSMCを配置すればよい。図５にはDRAMバンク・モジュール10とSRAMバンク・モジュール12との接続例が示される。
図５に示されるDRAMバンク・モジュール10には、メモリセルアレイCAとセンスアンプSAとYスイッチYSWのみが表わされている。メモリセルアレイCAは複数のワード線WLと複数のビット線対DL,DLBとその交点に配置されるDRAMセルDMCで構成される。センスアンプSAは各ビット線対DL,DLB毎に設けられる。４つのビット線対DL,DLBに１つの割合でグローバルビット線対GBL,GBLBが配置される。すなわち、YスイッチYSWによって、４つのビット線対DL,DLBのうちの１つが１つのグローバルビット線対GBL,GBLBに選択的に接続される。YスイッチYSWを制御する４本の信号線はYデコーダYDから出力される。
図５に示されるSRAMバンク・モジュール12には、メモリセルアレイCAとセンスアンプSAとYスイッチYSWのみが表わされている。メモリセルアレイCAは複数のワード線WLと複数のビット線対DL,DLBとその交点に配置されるSRAMセルSMCで構成される。センスアンプSSAは各ビット線対DL,DLB毎に設けられる。なお、センスアンプSSAはなくてもよい。２つのビット線対DL,DLBに１つの割合でグローバルビット線対GBL,GBLBが配置される。すなわち、YスイッチYSWによって、２つのビット線対DL,DLBのうちの１つが１つのグローバルビット線対GBL,GBLBに選択的に接続される。YスイッチYSWを制御する２本の信号線はYデコーダYDから出力される。
図５に示されたように、SRAMバンク・モジュール１２では一対のグローバルビット線GBL,GBLBに接続されるビット線対DL,DLBの数がDRAMバンク・モジュール10に比べて少なくなっており、この数を調整することによって大きなメモリセルを用いたSRAMバンク・モジュール12をDRAMバンク・モジュール10と共通のピッチでグローバルビット線対GBL,GBLBへ接続することができる。
SRAMバンク・モジュール12は同じ記憶容量を持つDRAMバンク・モジュール10よりも必要なチップ面積は大きくなるが、より高速な動作が可能となる。なお、SRAMバンク・モジュール12の記憶容量を少なくすると（例えば、１／４にすると）DRAMバンク・モジュール10と同程度の面積にすることができる。従って、高速性を重視する場合や、キャッシュメモリとして用いる場合にはSRAMバンク・モジュール12を使用したメモリマクロが有効である。
《キャッシュバンク・モジュール》
図６にキャッシュバンク・モジュール11のブロック図が示される。キャッシュバンク・モジュール11はメモリセルアレイCA、センスアンプSA、YデコーダYD、XデコーダAD、制御回路BKCONTH、電源配線端子PL、ワード線WD、グローバルビット線GBL、ヒット判定回路HMにより構成されている。キャッシュバンク・モジュール11は、ヒット判定回路HM及び制御回路BKCONTHがDRAMバンク・モジュール10とは異なるが、その他は同一である。
図７には、ヒット判定回路HMと制御回路BKCONTHの構成例が示される。ヒット判定回路HMは前回アクセスされたアドレスを保持しておくレジスタREGとレジスタREGに保持されていたアドレスと新しく入力されたアドレスを比較する比較回路COMPより構成される。制御回路BKCONTHはタイミング発生回路TIME、X系制御回路XCONT、Y系制御回路YCONTから構成される。制御信号CBANKHには、クロック信号CLKとバンク選択信号BSとリード/ライト切換え信号RWとリフレッシュ要求信号REFSとリフレッシュ中断信号REFEとビジィ信号BSY等が含まれる。タイミング発生回路TIMEは、クロック信号CLKとバンク選択信号BSとリード/ライト切換え信号RWとリフレッシュ要求信号REFSとビジィ信号BSY等を取り込んで、X系制御回路XCONTとY系制御回路YCONTとに必要なタイミング信号を生成するようにされる。また、データの読み出し又は書き込みの準備が整ったこと及びリフレッシュが終了したことを外部に知らせるレディ信号RDYが生成される。X系制御回路XCONT及びY系制御回路YCONTはそれぞれキャッシュバンク・モジュール11の内部動作に必要な制御信号XSIGN、YSIGNを生成するようにされる。
以下にヒット判定回路HMと制御回路BKCONTHの動作を説明する。バンク選択信号BSは、タイミング発生回路TIMEに入力される。タイミング発生回路TIMEでは、当該バンクが選択されるか否かが判定され、制御信号HMACが所定の状態にされる。当該バンクが選択される場合、制御信号HMACによって比較回路COMPが動作状態にされる。アドレスADDは比較回路COMP及びレジスタREGに入力される。レジスタREGからは前回アクセスされて保持されていたアドレスが比較回路COMPに出力される。なお、当該バンクが選択されない場合、制御信号HMACによって比較回路COMPが非動作状態にされる。また、アドレスADDは比較回路COMP及びレジスタREGに入力されない。
比較回路COMPでは新旧２つのアドレスが比較され、Xアドレスが一致する場合はヒットと判定してヒット信号HITが"HIGH"にされる。Xアドレス及びYアドレスが一致する場合はヒット信号HITCが"HIGH"にされる。レジスタREGに入力された新しいアドレスは次回のアドレス入力時以降、比較回路COMPでの比較が終了するまで保持されて次回のヒット判定に用いられる。
制御回路BKCONTHはヒット判定回路HMから出力されるヒット信号HITが"HIGH"であると、通常のアクセス動作は行なわれずに、レディ信号RDYを"HIGH"にするとともに、既にセンスアンプSAに読み込まれているデータがグローバルビット線へ出力される。この時にはYアドレスによるアドレス選択だけが行われ、Y系制御回路YCONTによってYデコーダYDが動作し、センスアンプSAに保持されていたデータがグローバルビット線GBLへ出力される。但し、他のメモリバンクの先のメモリアクセスが完了していないことを示すビジィ信号BSYが"HIGH"の場合は、センスアンプSAに保持されているデータはグローバルビット線GBLへ出力されない。
制御回路BKCONTHはヒット判定回路HMから出力されるヒット信号HITCが"HIGH"であると、通常のアクセス動作は行なわれずに、レディ信号RDYを"HIGH"にするとともに、既にメインアンプMAに読み込まれているデータがデータ入出力線MAOUTへ出力される。但し、他のメモリバンクの先のメモリアクセスが完了していないことを示すビジィ信号BSYが"HIGH"の場合は、メインアンプMAに保持されているデータはデータ入出力線MAOUTへ出力されない。
新旧２つのアドレスが一致しない場合はミスと判定され、ヒット信号HITは"LOW"にされ、制御回路BKCONTHは通常のメモリアクセスを行う。すなわち、前回アクセスされたワード線が立ち下げられ、ビット線のプリチャージが行われて、新たなワード線が立ち上げられてメモリアクセスが行われる。データがセンスアンプSAに読み出されると、レディ信号RDYが"HIGH"にされる。
キャッシュバンク・モジュール11から所望のメモリセルに保存してあるデータを普通に読み出す場合（例えば、リフレッシュ後に最初にメモリアクセス要求がある場合）を説明する。DRAMバンク・モジュール10と同様、図４に示されるように、該当バンクの読み出しであれば、外部からアドレス信号ADDを通して入力されたアドレスがアドレスデコーダADによってデコードされワード線WD一本が選択される。メモリセルアレイCAにあるDRAMメモリセルのうち、ワード線WDによって選択されたメモリセル内の信号が読み出されてセンスアンプSAによって増幅され保持される。また、レディ信号RDYが"HIGH"にされる。
センスアンプSAによって読み出されたデータのうち、YデコーダYDによって更に選択されたものがグローバルビット線GBLを通してキャッシュバンク・モジュール11から該モジュール外部へ出力される。
メモリセルへのデータの書込みは、ワード線WDの選択によりアクティブになったメモリセルから読み出されたデータを保持しているセンスアンプSAに対して、グローバルビット線GBLから送られてきたデータをYデコーダYDによって選択された所望のセンスアンプSAに送られることによって行われる。
次にヒット判定機能を用いて高速にデータの読み書きを行う場合（例えば、リフレッシュ後に既にメモリアクセス要求があり、その後のメモリアクセスの場合）を説明する。図８に示されるように、外部からアドレス信号ADDを通して入力されたアドレスは前述したようにXデコーダADに入力されるが、同時にヒット判定回路HMにも入力される。ヒット判定回路HMは新たに入力されたアドレスと以前に入力され保持していたアドレスとが比較され、この二つのアドレスが一致した場合は、ヒット信号HITが"HIGH"にされる。以前に入力されたアドレスに従ってすでにデータが読み出されてセンスアンプSAに保持されていると判断され、センスアンプSAに保持されているデータがグローバルビット線GBLへ出力される。このように二つのアドレスが一致した場合はヒットしたと判断され、制御回路BKCONTHを通してXデコーダADの動作はキャンセルされてメモリセルからの読み出し動作は行われない。
書き込みについても同様に、新たに入力されたアドレスと以前に入力されたアドレスが一致した場合はヒットしたと判断され、すでにセンスアンプSAに所望のアドレスに対応するデータが読み出されているとして、ワード線選択によるメモリセルからの読み出し動作が行われることなく、グローバルビット線GBLから送られてきたデータをYデコーダYDによって選択された所望のセンスアンプSAに送ることによって行われる。
また制御回路BKCONTHはキャッシュバンク・モジュール14の外部にヒットしたことを示すためにレディ信号RDYを"HIGH"にして出力するようにされる。一連の動作はCBANKHを通して入力された信号に基づき制御回路BKCONTHによって制御される。
新たに入力されたアドレスと以前に入力され保持していたアドレスとが一致しなかった場合は、ミスとなりキャッシュ機能は働かないようにされる。この場合のタイミングチャートが図９に示される。アドレス入力後、ミスと判定されるとワード線が立ち下げられ、センスアンプSAに接続されるビット線はプリチャージされる。その後改めて新しいアドレスに対応するワード線が立ち上げられセンスアンプSAのセンスアンプが動作してメモリセルからデータが読み出される。書き込みについても同様にミスであれば一旦ワード線が立ち下げられてから書き込み動作が行われる。
このようにキャッシュバンク・モジュール14はヒット判定回路HMを設けることによって、ヒットした場合はメモリへの読み出し、書き込み動作の一部を省略することによってより高速なアクセスを行うことが可能である。
データ入出力を行うグローバルビット線GBLは、隣接して配置した他のキャッシュバンク・モジュール14やメインアンプ・モジュール13に接続できるように定められた場所に配置されている。
また、電源配線端子PLは外部から供給された電源をバンク内の所望の回路に供給するほか、隣接して配置された他の機能モジュールへ電源を供給できるように、定められた場所に配置されている。このように、各機能モジュールにおいて、グローバルビット線GBL、電源配線端子PLの配置場所を共通化しておくことによって、各モジュールを隣接して配置するだけで必要な配線を自動的に行うことができるため、速やかにメモリマクロを構成することが可能となる。詳しくは後述するが小さな記憶容量でキャッシュ機能付きメモリマクロを構成したい場合は、キャッシュバンク・モジュール11を用いることによってキャッシュ制御回路・モジュール16が小型化できるためより小さな面積でメモリマクロが構成できる。
《メインアンプ・モジュール》
図１０にメインアンプ・モジュール13のブロック図が示される。メインアンプ・モジュール１３はメインアンプMAとその動作を制御する制御回路MACONT、電源配線端子PLから構成されている。メインアンプMAは、メインアンプ／出力回路MA&BUF及びライトアンプWAとで構成される。メインアンプ／出力回路MA&BUFには、グローバルビット線GBLの対を電源電圧にプリチャージするプリチャージ回路、グローバルビット線GBLの対の電位を同一にするイコライズ回路、グローバルビット線GBLの対のデータを増幅するセンスアンプ、センスアンプの出力を保持するラッチ回路、データ入出力線MAOUTにデータを出力する出力バッファ回路が含まれる。ライトアンプWAには、データ入出力線MAOUTからのデータを受ける入力バッファ回路（ライトアンプ）等が含まれる。
読み出し動作時にメモリバンクからグローバルビット線GBLを通して入力されたデータはメインアンプ／出力回路MA&BUF内の前記センスアンプによってメモリマクロ外部へ出力できるよう増幅され、前記ラッチ回路で保持される。また、書き込み動作時にはメモリマクロ外部からデータ入出力線MAOUTを通して入力されたデータはライトアンプWA内の前記入力バッファ回路を通してグローバルビット線GBLへ出力される。
一連の動作は外部から入力されたクロック信号CLK、リード/ライト切換え信号RW、メインアンプ制御信号MACS等の制御信号CMAMによって制御回路MACONTが制御する。
このようにメインアンプ・モジュール13はグローバルビット線GBLとメモリマクロ外部へつながる入出力線MAOUTとのインタフェースをとるものであり、メインアンプ・モジュール13によるグローバルビット線GBLの制御によってはじめてメモリバンクモジュールの数を変更して記憶容量の異なるメモリマクロが構成できる。
《電源回路・モジュール》
図１１には、電源回路・モジュール14の構成例が示される。電源回路・モジュール14には、電源電圧発生回路VCHC、電源電圧発生回路VHFC、電源電圧発生回路VBBC等が含まれる。電源電圧発生回路VCHCは、メモリマクロの外部から供給される電源電圧VCCよりも高い電圧VCH（XデコーダADに必要なワード線電圧等に使用される電圧）を発生する回路である。電源電圧発生回路VHFCは、メモリマクロの外部から供給される電源電圧VCCよりも低い電圧VHF（センスアンプSA内のプリチャージ回路に必要な電源電圧の２分の１電圧）を発生する回路である。電源電圧発生回路VBBCは、メモリマクロの外部から供給される電源電圧VSS（グランド電位）よりも低い電圧VBB（メモリセルアレイ内基板電圧（バックバイアス電圧））を発生する回路である。電源電圧VCC、電源電圧VSS、電圧VCH、電圧VHF、電圧VBBは電源配線端子PLから各モジュールに供給するようにされる。
SRAMバンク・モジュール12のみを使用する場合には、電源回路・モジュール14には電源電圧発生回路VBBC等が必要ないため、前記回路を省略した電源回路・モジュールを用意してもよい。
《ライトデータバッファ・モジュール》
図１２には、ライトデータバッファ・モジュール18とメインアンプ・モジュール13との接続例が示される。ライトデータバッファ・モジュール18はメモリバンクの数と同数の書き込みデータを一時記憶するようにされる。例えば、ライトデータバッファ・モジュール18のライトバッファWBは、４つの書き込みデータを保持するために４行×１２８列のメモリアレイから構成される。メモリセルMCは、２つのインバータ回路の入力と出力がそれぞれ接続されて構成される記憶素子と、CMOSトランスファーゲート（Ｐチャネル型ＭＯＳトランジスタとＮチャネル型ＭＯＳトランジスタとが並列に接続された構成されてトランスファーゲート）とで構成される。メモリセルMCには１対のワード線BWL#i(i=0-3)と、１本のデータ線IO#j(j=0-127)が接続される。面積を最小にするために、メモリセルMCはメモリマクロMM4のデータ入出力線MAOUTのピッチに合わせて配置される。
《メモリマクロの第１の例》
図１３はDRAMバンク・モジュール10からなる４つのメモリバンクBANK#0、BANK#1、BANK#2、BANK#3、メインアンプ・モジュール13、電源回路・モジュール14、バンク制御回路・モジュール15、ライトデータバッファ・モジュール18を用いて構成したメモリマクロMM1の構成例である。各機能モジュールは隣接して配置されることにより、電源配線端子PL、グローバルビット線GBLが自動的に配線される様に予め各モジュール内において配置位置が共通化されている。
電源回路・モジュール14にある電源配線端子PLOはメモリマクロ外部から電源の供給を受ける。各機能モジュールが必要とする電源は、電源回路・モジュール14が降圧、昇圧等必要な処理をした後に電源配線端子PLを通して全ての機能モジュール（DRAMバンク・モジュール10、メインアンプ・モジュール13）に供給される。データの入出力は、各DRAMバンク・モジュール10とメインアンプ・モジュール13を配置するだけで自動的に配線されるグローバルビット線GBLを通して行われる。
メモリバンクBANK#0、BANK#1、BANK#2、BANK#3はグローバルビット線GBLを通してメインアンプ・モジュール13との間でデータ入出力を行い、メインアンプ・モジュール13がデータ入出力線MAOUTを通してメモリマクロMM1外部とのデータ入出力を行う。各メモリバンクBANK#0、BANK#1、BANK#2、BANK#3にはそれぞれのメモリバンクごとの動作を制御する制御回路BKCONTが設けられる。アドレス信号ADDおよび制御信号CBANKは各メモリバンクに入力される。メインアンプ・モジュール13の制御は信号CMAMによって行われる。
図１４にはバンク制御回路・モジュール15の構成例が示される。バンク制御回路・モジュール15は、バッファメモリFIFOと、バッファメモリ制御回路FIFOCと、バンクデコード回路BANKDECと、バンク制御信号発生回路CBANKGEN#i(i=0-3)と、リフレッシュ制御回路REFCと、メインアンプ制御信号発生回路CMAMCと、レディ信号制御回路RDYC等から構成される。
バッファメモリFIFOは、アドレス信号ADDINがクロックサイクル毎に入力されても良いように、アドレス信号ADDINをバッファする機能を有する。異なるメモリバンクをアクセスする場合は、クロックサイクル毎にアドレス信号ADDINが入力されても良い。しかし、同一メモリバンクへの連続アクセス或いは３クロックサイクル以内の同一メモリバンクへのアクセスの場合は、すぐにメモリバンクをアクセスすることができない。従って、バッファメモリFIFOに複数のバスサイクルに対応するアドレス信号ADDIN及びリード/ライト切換え信号RWが一時保持される。
バッファメモリ制御回路FIFOCは、バッファメモリFIFOを制御するようにされる。
バンクデコード回路BANKDECは、アドレス信号ADDINに含まれるバンク情報をデコードし、アクセス要求のあるメモリバンクを決定するようにされる。メモリバンクのレディ信号RDY#iが"HIGH"にされ、アクセスが終了することが知らされた後、同一メモリバンクのアクセスが行われる。
バンク制御信号発生回路CBANKGEN#i(i=0-3)は、次にアクセスが可能なときにメモリバンクへのアドレス信号ADD#i(i=0-3)、制御信号CBANK（バンク選択信号BS#i、RW#i(i=0-3)等）及びライトデータバッファ制御信号CWDB#i(i=0-3)を出力するようにされる。
リフレッシュ制御回路REFCは、各メモリバンクに対してリフレッシュ要求信号REF#i(i=0-3)を出力するようにされる。各メモリバンクはリフレッシュ要求信号REF#i(i=0-3)を受けて、制御回路BKCONT内でリフレッシュアドレスを生成してリフレッシュを行うようにされる。
レディ信号制御回路RDYCは、各メモリバンクからのレディ信号RDY#i(i=0-3)を受けて、制御回路内部のレディ信号READY#i(i=0-3)と制御回路外部へ出力するレディ信号READYを生成する。CPU等のメモリアクセス要求デバイスはレディ信号READYが所定の期間内に入力されない場合は、それ以上の新たなメモリアクセス要求は出さないようにされる。従って、バッファメモリFIFOはオーバフローすることはない。
メインアンプ制御信号発生回路CMAMCは、メインアンプ制御信号CMAMを生成するようにされる。
メモリマクロMM1内部の動作について説明する。まず読み出しの場合は図２の説明において前述したようにアドレス入力後、選択されたメモリバンクからデータが出力され、グローバルビット線GBLを通してメインアンプMAにデータが送られる。メインアンプMAに送られたデータはデータ入出力線MAOUTから外部へ出力される。書き込みを行う場合はこれとは逆にデータ入出力線MAOUTから入力されたデータがメインアンプMAを通してグローバルビット線GBLへ出力され、所望のメモリバンクに送られる。メインアンプMAへの読み出し、書き込みの切り替えなどの制御は制御信号CMAMを通して行われる。
メモリバンク毎に独立した制御回路BKCONTを設けてメモリバンク単位で制御を行い、それぞれのメモリバンクを共通のデータI/O線（グローバルビット線GBL）を用いてメインアンプ・モジュール14に接続する方法でメモリマクロを構成することによって、メモリバンク数の加減が容易に行えるため、メモリマクロのメモリ容量を簡単に変更することができる。またメモリセルにDRAMメモリセルを用いたDRAMバンク・モジュール10を用いているため小面積で大きな記憶容量を持ったメモリマクロが構成できる。
また、各メモリバンクBANK#0、BANK#1、BANK#2、BANK#3にはDRAMバンク・モジュール10の代わりに、SRAMバンク・モジュール12を用いてもよい。SRAMバンク・モジュール12を用いた場合は、DRAMバンク・モジュール10を用いた場合に比べて、同じメモリ容量を得ようとするとメモリマクロのチップ面積は増大するが、より高速な動作が期待できる。特に高速なメモリマクロが必要な場合には好適である。
図１５には、メモリマクロMM1において全てのメモリバンクBANK#0、BANK#1、BANK#2、BANK#3に順番にデータの読み出し動作を行った場合のタイミングチャートが示される。
アドレス信号ADDINはクロック信号の立ち上がりエッジでバンク制御回路15に取り込まれ、各メモリバンクのアドレス信号ADD（ADD#0、ADD#1、ADD#2、ADD#3）にアドレスを供給するようにされる。各メモリバンクはアドレス信号ADDが入力されるとデータの読み出しの準備が整ったことを示すレディ信号RDY#iが３クロックサイクル後に出力される。メモリセルから読み出されたデータはグローバルビット線GBL上へ出力され、クロック信号の立ち上がりエッジでデータ入出力線MAOUT上に出力される。アドレスの入力とグローバルビット線GBL上に出力されたデータとの対応は矢印で示されており、いずれの読み出しもレイテンシは５クロックサイクルである。
このように、各メモリバンク順番にアクセスすることによってアクセス時間をかくしてデータの連続読み出しができる。例えば、図１５の期間t0からt3のように異なったメモリバンクにアドレス入力を繰り返し行えば、メモリマクロMM1内の全データを連続して読み出すことができる。なお、同一メモリバンクへの連続アクセスする場合は４クロックサイクル空ける必要がある。
一般にプロセッサ（例えば、中央処理装置CPU）が複数のデータを読み出す場合には、そのデータのアドレスは連続していることが多い。そこで、アドレスの連続したデータを高速に読み出すために、連続したアドレスが入力された場合には各バンク順番にアクセスされるようにメモリマクロMM1のアドレスを割り当てればよい。
メモリマクロMM1においてデータの連続アクセスが行えるようにメモリマクロMM1のアドレスをマッピングした例が図１６に示される。図１６の左側に示したアドレス空間と右側にある４個のメモリバンクBANK#0、BANK#1、BANK#2、BANK#3との対応が矢印で示されている。ここでDRAMバンク・モジュール10は２５６Kビットの容量を持っており、全体で１Mビットの容量を持つメモリマクロが構成されているとする。
このメモリマクロMM1に必要なアドレスは、先ずバンク４個の切替えに２ビット必要となる。次に、１個のメモリバンクにあるセンスアンプ数を1024個、グローバルビット線GBLの本数を128本とすると、グローバルビット線へ接続するセンスアンプを選択するために必要なアドレスは1024/128=8通りで３ビットとなる。更に１個のメモリバンクにあるメモリセルの数は256×1024個で、センスアンプの数1024個で割ると256となり、ワード線の本数は256本である。256本のワード線から一本を選択するために必要なアドレスは８ビットである。これらのアドレスを合計すると、全部で13ビットになる。その中でも８ビット分のアドレスが割り当てられるワード線WDの選択にはビット線のプリチャージ、センスアンプSAの動作、ワード線WDの立ち上げ等が含まれるので他の動作に比べて時間が必要である。そこでアドレスの順番通りに高速な連続アクセスを行うためには、アドレスの切替えに時間のかかるワード線WDの選択が行われる場合には現在アクセスしているメモリバンクとは別のメモリバンクでワード線WDの選択が行われるようにアドレスをマッピングすれば良い。図１６にこのようなアドレスマッピングを行った例が示される。全部で13桁のアドレスの内、ワード線WDの選択の８桁を上位ビットに、YデコーダYDによる選択の３ビットを中位ビットに、メモリバンク選択の２ビットを下位ビットに割り当てている。
例えば、アドレス０,０００,０００,０００,０００のデータはメモリバンクBANK#0から読み出されるデータである。その次のアドレスである０,０００,０００,０００,００１のデータはメモリバンクBANK#0の次のメモリバンクBANK#1から読み出されるデータである。これが順次繰り返されて、アドレスが０,０００,０００,０００,１００にあるデータは再びメモリバンクBANK#0から読み出されるデータとなる。
このようにアドレスをマッピングしたメモリマクロMM1ではアドレスの順番通りにアクセスを行うと、新たにワード線の立ち上げを行う場合には現在アクセスしているメモリバンクとは別のメモリバンクに対してアクセスすることになり、見かけ上プリチャージなどの準備期間を隠すことができるため、データが途切れることなく連続読み出しが可能となる。このように図１６に示されたアドレスのマッピングを行ったメモリマクロMM1において、アドレスを順番に入力することによって簡単にメモリマクロMM1の全ビットを連続して読み出すことができる。
書き込み動作も読み出し動作と同様に行われる。アドレス信号ADDINがクロックサイクル毎に入力可能にされている。従って、書き込みデータもクロックサイクル毎にメモリマクロMM1に送られてくる。しかし、その書き込みデータはすぐに各メモリバンクに書き込むことができない。そこで、ライトデータバッファWDBに書き込みデータが一時記憶され、各メモリバンクの書き込みの準備ができたとき、ライトデータバッファWDB内のデータが読み出され、各メモリバンクに書き込まれる。この制御はライトバッファ制御信号CWDB#iで行われる。すなわち、ライトバッファWBのワード線BWLの１つが選択され、書き込みデータが書き込まれる。その後、該当メモリバンクの書き込みの準備が整うと再びワード線BWLが選択され書き込みデータがデータ線IOに読み出される。そして、ライトアンプイネーブル信号WAEが活性化され、データ線IOに読み出された書き込みデータがメインアンプMA#i内のライトアンプによってグローバルビット線GBLに出力される。
《メモリマクロの第２の例》
また、メモリマクロMM1において、各メモリバンクにSRAMバンク・モジュール12を用いた場合は、より高速な動作が実現できる。図１７にSRAMバンク・モジュール12を４つ用いて構成したメモリマクロの読み出しタイミングチャートが示される。メモリバンクにDRAMバンク・モジュール10を用いた場合に比べてレイテンシが１と少なくてすむため、より高速にデータを読み出すことが可能となっている。
さらに、図１に示されたようにDRAMバンク・モジュール10を４個、SRAMバンク・モジュール12を２個組み合わせてメモリマクロMM2を構成してもよい。この場合は、DRAMバンク・モジュール10を６個使用した場合よりも高速動作が期待できるし、SRAMバンク・モジュール12を６個用いた場合よりもチップ面積を抑えることができる。
このように、メモリバンク単位の制御が可能なメモリバンクを組み合わせてメモリマクロを構成することによって、異なった機能、性能を持ったメモリマクロを簡単に構成することができるし、多様なメモリバンクを揃えておくことによってより一層のメモリマクロの高機能化を図ることができる。
《メモリマクロの第３の例》
図１８に、キャッシュ機能付きのメモリマクロMM3構成例が示される。メモリマクロMM3はキャッシュバンク・モジュール11からなる４つのメモリバンクBANKC#0、BANKC#1、BANKC#2、BANKC#3、メインアンプ・モジュール13、電源回路・モジュール14、キャッシュ制御回路・モジュール16、ライトデータバッファ・モジュール18により構成されている。
メモリマクロMM3のキャッシュ機能は一旦立ち上げたワード線によってアクティブとなったメモリセルから読み出されたデータをセンスアンプに保持しておき、次にアクセスされたデータが前回アクセスされたデータと同一のワード線上にある場合はワード線を再び立ち上げることなく、既にセンスアンプに読み出されて保持されているデータを出力することによってより高速なアクセスを実現するものである。
図１９にはキャッシュ制御回路・モジュール16の構成例が示される。キャッシュ制御回路・モジュール16は、バッファメモリFIFOCAと、バッファメモリ制御回路FIFOCNと、バンクデコード回路BANKDECCと、バンク制御信号発生回路CBANKGEC#i(i=0-3)と、リフレッシュ制御回路REFCCと、メインアンプ制御信号発生回路CMAMCCと、レディ信号制御回路RDYCC等から構成される。
バッファメモリFIFOCAは、アドレス信号ADDINがクロックサイクル毎に入力されても良いように、アドレス信号ADDINをバッファする機能を有する。ヒットするメモリバンクへのアクセスの場合は、クロックサイクル毎にアドレス信号ADDINが入力されても良い。しかし、ヒットしないメモリバンクへのアクセスの場合は、すぐにメモリバンクをアクセスすることができない。従って、バッファメモリFIFOに複数のバスサイクルに対応するアドレス信号ADDIN及びリード/ライト切換え信号RWが一時保持される。
バッファメモリ制御回路FIFOCは、バッファメモリFIFOCAを制御するようにされる。
バンクデコード回路BANKDECCは、アドレス信号ADDINに含まれるバンク情報をデコードし、アクセス要求のあるメモリバンクを決定するようにされる。
バンク制御信号発生回路CBANKGEC#i(i=0-3)は、アクセス要求のあるメモリバンクへのアドレス信号ADD#i(i=0-3)、制御信号CBANKH（バンク選択信号BS#i、RW#i(i=0-3)、BSY#i(i=0-3)等）及びライトデータバッファ制御信号CWDB#i(i=0-3)を出力するようにされる。
リフレッシュ制御回路REFCCは、各メモリバンクに対してリフレッシュ要求信号REFS#i(i=0-3)及びリフレッシュ中断信号REFE#i(i=0-3)を出力するようにされる。各メモリバンクはリフレッシュ要求信号REFS#i(i=0-3)を受けて、制御回路BKCONTH内でリフレッシュアドレスを生成してリフレッシュを行うようにされる。リフレッシュ中断信号REFE#i(i=0-3)が入力された場合は、リフレッシュが中断される。リフレッシュが終了した場合及びリフレッシュが中断された場合は、制御回路BKCONTHはレディ信号RDY#i(i=0-3)を出力するようにされる。
レディ信号制御回路RDYCCは、各メモリバンクからのレディ信号RDY#i(i=0-3)を受けて、制御回路内部のレディ信号READY#i(i=0-3)と制御回路外部へ出力するレディ信号READYを生成する。CPU等のメモリアクセス要求デバイスはレディ信号READYが所定の期間内に入力されない場合は、それ以上の新たなメモリアクセス要求は出さないようにされる。従って、バッファメモリFIFOCAはオーバフローすることはない。
メインアンプ制御信号発生回路CMAMCCは、メインアンプ制御信号CMAMを生成するようにされる。
以下にメモリマクロMM3のキャッシュ動作を説明する。図２０にはメモリマクロMM3のタイミングチャートが示される。アドレスがアドレス信号ADDINからのキャッシュ制御回路・モジュール16に入力されると、キャッシュ制御回路・モジュール16はアドレスが対応するメモリバンクにアクセスを行う。アドレスが入力されたメモリバンクでは、ヒット判定回路HMが前回アクセスされたアドレスと一致しているかどうかを判定する。もしアドレスが一致した場合は以前に入力されたアドレスに従って既にデータが読み出されてセンスアンプSAに保持されていると判断し、レディ信号RDY#iを通してキャッシュ制御回路・モジュール16に伝える。キャッシュ制御回路・モジュール16はこれをレディ信号READYとして外部へ出力する。
センスアンプSAにあるデータはYデコーダで選択され、グローバルビット線GBLを通してメインアンプMAを経てMAOUTから出力される。但し、ビジィ信号BSY#iが"LOW"にされ、他のメモリバンクの先のアクセスが終了することが知らされまで、グローバルビット線GBLを通してメインアンプMAを経てMAOUTから出力されない。
このようにキャッシュにヒットした（同一ページ内のアクセスの）場合は通常のアクセスに比べてデータ線プリチャージ、ワード線立ち上げ等を省略できるため、高速な動作が実現できるだけでなく、動作を一部省略することになり消費電力を抑えることができる。
キャッシュにヒットしている場合はレイテンシ２でデータを出力することができ、DRAMを用いた面積の小さなメモリマクロでありながら、より高速な動作を実現できる。
判定の結果アドレスが一致しなかった場合はワード線の立ち下げ、データ線のプリチャージが行われた後に通常のアクセスが行われる。
メモリマクロの第１の例で説明したように、一般にプロセッサ（例えば、中央処理装置CPU）が複数のデータを読み出す場合には、そのデータのアドレスは連続していることが多い。そこで、アドレスの連続したデータを高速に読み出すために、連続したアドレスが入力された場合には各バンク順番にアクセスされるようにメモリマクロMM3のアドレスを割り当てればよい。
メモリマクロMM3においてデータの連続アクセスが行えるようにメモリマクロMM3のアドレスをマッピングした例が図２１に示される。図２１の左側に示したアドレス空間と右側にある４個のメモリバンクBANKC#0、BANKC#1、BANKC#2、BANKC#3との対応が矢印で示されている。ここでDRAMバンク・モジュール10は２５６Kビットの容量を持っており、全体で１Mビットの容量を持つメモリマクロが構成されているとする。
このメモリマクロMM3に必要なアドレスは、先ずメモリバンク４個の切替えに2ビット必要となる。次に、１個のメモリバンクにあるセンスアンプ数を1024個、グローバルビット線GBLの本数を128本とすると、グローバルビット線へ接続するセンスアンプを選択するために必要なアドレスは1024/128=8通りで３ビットとなる。更に１個のメモリバンクにあるメモリセルの数は256×1024個で、センスアンプの数1024個で割ると256となり、ワード線の本数は256本である。256本のワード線から一本を選択するために必要なアドレスは8ビットである。これらのアドレスを合計すると、全部で13ビットになる。その中でも8ビット分のアドレスが割り当てられるワード線WDの選択にはビット線のプリチャージ、センスアンプSAの動作、ワード線WDの立ち上げ等が含まれるので他の動作に比べて時間が必要である。そこでアドレスの順番通りに高速な連続アクセスを行うためには、アドレスの切替えに時間のかかるワード線WDの選択が行われる場合には現在アクセスしているメモリバンクとは別のメモリバンクでワード線WDの選択が行われるようにアドレスをマッピングすれば良い。
図２１に示されるアドレスマッピングの例では、全部で１３桁のアドレスの内、ワード線WDの選択の８桁を上位ビットに、メモリバンク選択の２ビットを中位ビットに、YデコーダYDによる選択の３ビットを下位ビットに割り当てている。
例えば、アドレス０,０００,０００,０００,０００から０,０００,０００,０００,１１１までのデータはメモリバンクBANKC#0にある一本のワード線WDによって読み出されるデータであり、下位３ビットはYデコーダYDによる選択を表している。下位から４ビット目と５ビット目はバンク選択に充てられており、その次のアドレスである０,０００,０００,００１,０００から０,０００,０００,００１,１１１にあるデータはメモリバンクBANKC#0の次のメモリバンクBANKC#1にある一本のワード線WD上にあるデータである。これが順次繰り返されて、アドレスが０,０００,０００,１００,０００から０,０００,０００,１００,１１１にあるデータは再びメモリバンクBANKC#0にある一本のワード線WD上のデータとなる。
このようにアドレスをマッピングしたメモリマクロMM3ではアドレスの順番通りにアクセスを行うと、新たにワード線の立ち上げを行う場合には現在アクセスしているメモリバンクとは別のメモリバンクに対してアクセスすることになり、見かけ上プリチャージなどの準備期間を隠すことができるため、データが途切れることなく連続読み出しが可能となる。このように図２１に示されたアドレスのマッピングを行ったメモリマクロMM3において、アドレスを順番に入力することによって簡単にメモリマクロMM3の全ビットを連続して読み出すことができる。またこの方式によって、いったん立ち上げたワード線WDによってアクティブとなったメモリセルのデータはすべて読み出されることになるため、アドレスが連続したデータを読み出す場合は、データ読み出しに要する消費電力を最小に押さえることができる。
書き込み動作も読み出し動作と同様に行われる。アドレス信号ADDINがクロックサイクル毎に入力可能にされている。従って、書き込みデータもクロックサイクル毎にメモリマクロMM3に送られてくる。しかし、その書き込みデータはすぐに各メモリバンクに書き込むことができない場合がある。そこで、ライトデータバッファWDBに書き込みデータが一時記憶され、各メモリバンクの書き込みの準備ができたとき、ライトデータバッファWDB内のデータが読み出され、各メモリバンクに書き込まれる。この制御はライトバッファ制御信号CWDB#iで行われる。すなわち、ライトバッファWBのワード線BWLの１つが選択され、書き込みデータが書き込まれる。その後、該当メモリバンクの書き込みの準備が整うと再びワード線BWLが選択され書き込みデータがデータ線IOに読み出される。そして、ライトアンプイネーブル信号WAEが活性化され、データ線IOに読み出された書き込みデータがメインアンプMA#i内のライトアンプによってグローバルビット線GBLに出力される。
図２０において期間t4に入力されたアドレスに対してキャッシュミス（ページミス）がおきており、メモリバンクBANKC#0では一旦ワード線を立ち下げてデータ線のプリチャージを行った後に通常のメモリアクセスが行われているためレイテンシが７と大きくなっている。このようにセンスアンプSAをキャッシュとして用いた場合は一度ミスがおきると、ワード線立ち上げ、データ線プリチャージが行われてから通常のアクセスが行われるため、キャッシュ機能を用いないで普通にデータを読み出す場合よりもアクセスが遅くなるという課題がある。
更に、図２０において期間t5、t6、t7に入力されたアドレスに対して対応する各メモリバンクではヒットしており、キャッシュ機能を働かせてデータを早く出力できる状態にあるにも関わらず、期間t4で入力されたアドレスに対してキャッシュ機能が働かなかったためこれが期間t5以降に入力されたアドレスに対するデータ出力を律速しておりせっかくのキャッシュ機能が生かされていない。ここではキャッシュミスが原因で後続のデータ出力が妨げられているが、他にもDRAMメモリセルのリフレッシュ動作などが原因となってデータ出力が滞ることがある。
ここで、図２２にはメモリマクロMM3の持つ様々なレイテンシが示される。アドレス信号ADDIN入力後にデータがデータ入出力線MAOUTに出力される迄のレイテンシが示される。メインアンプMAに保持されていたデータにヒットした場合はレイテンシ１でデータが出力されることが"Main"として示されている。センスアンプSAに保持されていたデータにヒットした場合はレイテンシ２でデータが出力されることが"Sense"として示されている。通常のアクセスを行った場合は"Ordinary"に示されるようにレイテンシ５でデータが出力される。ミスした場合は"Mishit"と示されるようにレイテンシ７でデータが出力される。また、DRAMがリフレッシュサイクルに入っていた場合に、リフレッシュの終了を待ってデータ読み出しを行なう場合のレイテンシは"Ref.E"に示されるように様々な値をとることになる。
メモリマクロにキャッシュ機能を付加してより高速な動作を追求しているシステムにおいて、DRAMを用いたメモリマクロのリフレッシュが終了するまでデータの読み出しが出来ないことは、システムの性能に大きく影響を与える。このような場合にはリフレッシュの始まりに余裕を持たせて早めにリフレッシュ動作を始めてしまい、もしリフレッシュ中にメモリアクセス要求がきた場合にはリフレッシュ動作を一時中断してメモリアクセスに応じてから再びリフレッシュを再開すればよい。このように一時リフレッシュを中断してデータを出力する場合のレイテンシは図２２の"Ref.C"に示されるような値になる。以上説明してきたように、DRAMを用いてキャッシュ機能を持ったメモリマクロを構成する場合は多様なレイテンシに対応することが課題となる。
また、レイテンシの異なるメモリアクセスが行われることにより、アドレスの入力順番によってはデータ出力の順番待ちが頻繁に起こる。例えば、リフレッシュを行なているメモリバンクに対してアドレスを入力した直後に、他のメモリバンクでセンスアンプキャッシュにヒットするアドレスが入力された場合は、センスアンプSAのキャッシュから読み出されたデータの方が先に出力できるにも関らず、先に入力されたアドレスによって読み出されたデータの出力が終わるまでデータ出力を待つことになる。
《メモリマクロの第４の例》
図２３にはアドレス及びデータのIDを出力するメモリマクロMM4の構成例が示される。メモリマクロMM4は、メモリマクロMM3のキャッシュ制御回路・モジュール16の代わりにID付きアクセスシーケンス制御回路・モジュール17が備わったメモリマクロである。ID付きアクセスシーケンス制御回路・モジュール17はアドレスID信号AIDとデータID信号DIDに２つのID信号を出力するようにされることによって、アドレス入力の順番に関らず、後から入力されたアドレスに対応するデータを先に出力することが可能な場合はこれを先に出力することが可能になる。これによって、より高速なメモリアクセスが行なえる。
以下に動作概要について説明する。先ずアドレスがアドレス信号ADDINから入力されると、ID付きアクセスシーケンス制御回路・モジュール17はそのアドレス入力に対応するID番号を決定し、その値をアドレスID信号AIDに出力するようにされる。出力されたID番号はメモリアクセスを行なったプロセッサによってデータの到着まで保持される。一方、ID付きアクセスシーケンス制御回路・モジュール17は入力されたアドレスに対応するメモリバンクにメモリアクセスを行い、読み出したデータを出力すると共にアドレス入力時に対応させたID番号をデータID信号DIDへ出力する。データとID番号を受取ったプロセッサはメモリアクセスを行なった時にID付きアクセスシーケンス制御回路・モジュール17から受取ったID番号と、データと共に受取ったID番号とを比較して、一致しているものを見つけることでアドレスとデータの対応をとるようにされる。このようにID番号を介してアドレスとデータを対応させることができるため、従来のようにメモリアクセスを行う際に、アドレス入力の順番と、読み出したデータを出力する順番とが一致する必要はない。既に説明したように、DRAMを用いてキャッシュ機能付きメモリマクロを構成した場合に問題となるレイテンシが異なるメモリアクセスが連続して行われた場合にも、ID番号を介してアドレスとデータを対応させるため、アドレスの入力された順番にかかわらず出力準備のできたデータを先に出力することができ、レイテンシの大きなデータを後から出力することができる。従って、ID番号を介してアドレスとデータの対応をとることによってより効率の良いメモリアクセスを行うことができる。
図２４にはID付きアクセスシーケンス制御回路・モジュール17の構成例が示される。ID付きアクセスシーケンス制御回路・モジュール17は、ラッチ回路LTCHと、バンクデコード回路BNKDECと、バンク制御信号発生回路CBNKG#i(i=0-3)と、リフレッシュ制御回路RFRSHCと、メインアンプ制御信号発生回路CMMCと、ID信号制御回路IDCNT等から構成される。
ラッチ回路LTCHは、アドレス信号ADDIN及びリード/ライト切換え信号RWをクロック信号CLKの立ち上がりエッジで取り込むようにされる。
バンクデコード回路BNKDECは、アドレス信号ADDINに含まれるバンク情報をデコードし、アクセス要求のあるメモリバンクを決定するようにされる。
バンク制御信号発生回路CBNKG#i(i=0-3)は、アクセス要求のあるメモリバンクへのアドレス信号ADD#i(i=0-3)、制御信号CBANKH（バンク選択信号BS#i、RW#i(i=0-3)、BSY#i(i=0-3)等）バンク要求信号BR#i(i=0-3)及びライトデータバッファ制御信号CWDB#i(i=0-3)を出力するようにされる。バンク要求信号BR#i(i=0-3)はメモリアクセス要求があった場合に無条件に出力されるが、バンク選択信号BS#i(i=0-3)はメモリバンクがアクセス可能になるまで出力されないようにされる。」
リフレッシュ制御回路RFRSHCは、各メモリバンクに対してリフレッシュ要求信号REFS#i(i=0-3)及びリフレッシュ中断信号REFE#i(i=0-3)を出力するようにされる。各メモリバンクはリフレッシュ要求信号REFS#i(i=0-3)を受けて、制御回路BKCONTH内でリフレッシュアドレスを生成してリフレッシュを行うようにされる。リフレッシュ中断信号REFE#i(i=0-3)が入力された場合は、リフレッシュが中断される。
ID信号制御回路IDCNTは、バンク要求信号BR#i(i=0-3)及びレディ信号RDY#i(i=0-3)からアドレスID信号AIDとデータID信号DIDとが生成される。同一メモリバンク内ではアドレス入力の順にデータが入出力されるため、メモリバンク番号とID番号とを対応することができる。従って、バンク要求信号BR#i(i=0-3)によってどのメモリバンクがアクセスされたか判断できるので、バンク要求信号BR#i(i=0-3)からアドレスID信号AIDを生成することができる。また、データの読み出し又は書き込みの準備が整ったことを示すレディ信号RDY#i(i=0-3)によって、どのメモリバンクの準備が整ったかが判断できるので、レディ信号RDY#i(i=0-3)からデータID信号DIDを生成することができる。
メインアンプ制御信号発生回路CMAMCCは、メインアンプ制御信号CMAMを生成するようにされる。
以上説明したようにデータとID番号を出力するメモリマクロMM4のタイミングチャートが図２５に示される。まずアドレス信号ADDINに４つのアドレスa,b,c,d（バンクアドレスが全て異なる）が連続して入力され、それぞれのアドレスに対応したID番号がアドレスID信号AIDとして４個出力される。この値は読み出しが終了し、データが出力される際に、再びデータID信号DIDとして出力される。
例えば一番最初に入力されたアドレスａにはID番号１が割り当てられているが、アドレスａはリフレッシュ中のメモリバンクであると、データAは期間t12になってデータID信号DIDと共に出力される。またID番号２が割り当てられたアドレスｂは対応するデータが既にセンスアンプSAに読み出されていたのでレイテンシ２で出力される。アドレスｃはリフレッシュを一時中断してデータを出力する場合、アドレスｄはメインアンプMAにデータがある場合のデータ出力の様子が示されている。
このようにID番号を用いてアドレスとデータの対応をとることにより、アドレスの入力順番とデータの出力順番を一致させる必要が無いため、先に出力可能なデータを先に出力してしまうことによってより高速なメモリアクセスが可能となる。
更に、アドレス入力のタイミングによってはデータ出力のタイミングが重なる場合も考えられるが、このような場合には先に入力されたアドレスに対応するデータの方が緊急性が高いと考えられるので、先に出力するようにされる。この制御はビジィ信号BSY#i(i=0-3)で行われる。
例えば、アドレスe,fは図２２に"Mishit"として示される様にレイテンシ７でデータが出力されるメモリアクセスである。アドレスｅに対応するデータが出力される期間はt11である。しかし、アドレスｆに対応するデータが出力されるべき期間はt12であるが、アドレスａのデータ出力と重なる。従って、アドレス入力が先に行われたアドレスａに対応するデータが優先されるため、アドレスｆのデータ出力のレイテンシは１つ増え、データは期間t13に出力される。
図２６には、メモリバンク内部の動作が示される。ここでは簡単のため、メモリバンク２つ分の動作のみが示される。まず２つのアドレスa,bが入力され、それぞれメモリバンクBANKC#0、BANKC#１へアクセスされる。メモリバンクBANKC#０ではキャッシュミスが起こり、ワード線WDが一旦立ち下げられ、センスアンプがプリチャージした後に再び立ち上げられセンスアンプが動作する。
メモリバンクBANKC#１ではキャッシュにヒットしており信号HIT#１が出力され、直ちにデータBがグローバルビット線GBLへ出力される。その後、メモリバンクBANKC#0でのセンスアンプの動作が完了しデータAが読み出されてグローバルビット線GBLへ出力される。
書き込み動作も読み出し動作と同様に行われる。アドレス信号ADDINがクロックサイクル毎に入力可能にされている。従って、書き込みデータもクロックサイクル毎にメモリマクロMM4に送られてくる。しかし、その書き込みデータはすぐに各メモリバンクに書き込むことができないことがある。そこで、ライトデータバッファWDBに書き込みデータが一時記憶され、各メモリバンクの書き込みの準備ができたとき、ライトデータバッファWDB内のデータが読み出され、各メモリバンクに書き込まれる。この制御はライトバッファ制御信号CWDB#iで行われる。すなわち、ライトバッファWBのワード線BWLの１つが選択され、書き込みデータが書き込まれる。その後、該当メモリバンクの書き込みの準備が整うと再びワード線BWLが選択され書き込みデータがデータ線IOに読み出される。そして、ライトアンプイネーブル信号WAEが活性化され、データ線IOに読み出された書き込みデータがメインアンプMA#i内のライトアンプによってグローバルビット線GBLに出力される。このときにデータID信号DIDを出力するようにされる。
《ID付アクセスシーケンス制御回路・モジュールの他の構成例》
また、図２７にはID付アクセスシーケンス制御回路・モジュール17の他の構成例が示される。本制御回路はアドレス発行/全体制御部17A、ID制御部17B、コマンド発行部17Cから構成される。アドレス発行/全体制御部17Aはアドレス信号ADDINが入力されるとID制御部17BにアドレスID信号AIDを出力するように命令するようにされる。ID制御部17Bは後述するテーブルを参照してアドレスIDをアドレスID信号AIDに出力するようにされる。さらに、アドレス発行/全体制御部17Aはコマンド発行部17Cに対して入力されたアドレスが該当するメモリバンクへのコマンドの発行を要求するようにされる。コマンド発行部17Cでは各メモリバンクの状態を管理しており、入力されたアドレスの発行タイミングをアドレス発行/全体制御部17Aへ指示すると同時にコマンドを発行するようにされる。各メモリバンクのデータ出力の順番を決めてメインアンプMAを動作させるため、制御信号CMAMを出力し、ID制御部17Bに該当するデータIDの出力を指示するようにされる。ID制御部17Bはテーブルを参照し出力されるデータのアドレス入力時に発行したアドレスIDをデータID信号DIDに出力するようにされる。
図２８及び図２９にID制御部17Bの制御フローが示される。ID番号の値（ID No.）、アドレスの値（ADD）及びこれらの対応が有効であることを示す情報（Valid：以下有効フラグVALIDという）がテーブルMM-TABLEに保持するようにされ、テーブルMM-TABLEへの書き込み及び参照が行われる。これらの動作はテーブル管理ステートマシンTMSMによって制御される。ここでは中央処理装置CPU、メモリバンクBANKC#i、テーブルMM-TABLEの間での情報の流れが模式的に示される。
まず、図２８にはアドレス信号ADDの入力時のアドレスID信号AIDの発行のフローが示される。中央処理装置CPUから入力されたアドレス信号ADDIN（以下、アドレス信号ADDと表わす。）は該当するメモリバンクBANKC#iへアドレス信号ADDとして出力されるとともに、アドレス信号ADDに対応するID番号決められる。このID番号はアドレスID信号AIDとして中央処理装置CPUへ返される。以下図２８に示される具体例に従って説明する。
（１）中央処理装置CPUからアドレス発行/全体制御部17Aにアドレス信号ADD（ADD=6）が入力される。
（２）アドレス発行/全体制御部17Aはアドレス信号ADD（ADD=6）を該当するメモリバンクBANKC#iに出力するようにされる。
（３）また、アドレス発行/全体制御部17Aはアドレス信号ADD（ADD=6）をテーブルMM-TABLEに入力するようにされる。
（４）アドレス信号ADD（ADD=6）はテーブルMM-TABLEのID番号（ID=#4）に対応する場所に書き込まれ、有効フラグVALIDは有効にされる（図２８では"Yes"と表示されている）。
（５）テーブルMM-TABLEから割り当てられたアドレスID信号AID（AID=#4）が読み出される。
（６）割り当てられたアドレスID信号AID（AID=#4）が中央処理装置CPUに返される。
中央処理装置CPUはアドレスID信号AID（AID=#4）の値を保持しておき、データ出力時に付加されたデータID信号DIDとの一致を検出してアドレスとデータの対応を知ることができる。
図２９にデータ出力時のデータID信号DIDの発行フローが示される。データを出力するメモリバンクBANKC#iからデータを出力することを示す信号が入力され、そのメモリバンクをアクセスしたアドレス信号ADDを解読するようにされる。そのアドレス信号ADDに対応するID番号が調べられる。このID番号はデータID信号DIDとして中央処理装置CPUへ返される。以下図２９に示される具体例に従って説明する。
（１）コマンド発行部17Cにデータを出力するメモリバンクBANKC#iからレディ信号RDY#iが返されることによって、アドレス発行/全体制御部17A内でアクセスアドレスを記憶しているアドレスラッチADDLT#iからアドレス信号ADD（ADD=6）が得られる。
（２）テーブルMM-TABLEにアドレス信号ADD（ADD=6）が入力される。
（３）テーブルMM-TABLEでアドレス信号ADD（ADD=6）に対応するID番号（ID=#4）が検索される。
（４）テーブルMM-TABLEからデータID信号DID（DID=#4）が読み出される。
（５）データID信号DID（DID=#4））が中央処理装置CPUに出力される。
中央処理装置CPUはデータとデータID信号DID（DID=#4）を受け取り、以前に受け取ったアドレスID信号AID（AID=#4）の値からこのデータがアドレス信号ADDIN（ADDIN=6）に対応したものであることを知ることができる。
なお、図２８に示されるテーブルMM-TABLEと図２９に示されるテーブルMM-TABLEとの内容が異なっている。図２９に示されるテーブルMM-TABLEではID No. #2に対応する有効フラグVALIDは無効（図２９では"No"と表示されている）になりアドレスADDは空欄になっている。これは、アドレスの値が2のデータが既に読み出され、データID信号DIDの値として#2が中央処理装置CPUに送られたことを示している。有効フラグVALIDが無効になると、新しいアドレスを書き込みことができる。また、図２９に示されるテーブルMM-TABLEではID No. #5に対応する有効フラグVALIDは有効になりアドレスADDには１が書き込まれている。この２つの相違は、メモリマクロにアドレスADDの値6が入力されてからデータが出力されるまでの間にアドレスADDの値0に対応するデータが読み出され、アドレスADDの値１が入力されたことを示している。
図３０には、テーブルMM-TABLEの構成例が示される。テーブルMM-TABLEは、連想メモリCAM等で構成される。例えば、制御信号AWを"HIGH"レベルにすると連想禁止回路AINHが連想を禁止し、連想メモリワード線選択回路WSELが動作して、有効フラグが無効であるワード線を選択するようにされる。この状態で連想メモリCAMにはアドレスADDが入力され、記憶される。連想メモリCAMのワード線にID番号を対応させておくと、選択されたワード線をエンコード回路ENDERでエンコードすることによって、アドレスID信号AIDが得られる。制御信号AWを"LOW"レベルにすると連想禁止回路AINHが連想を可能にし、連想メモリワード線選択回路WSELが動作を停止する。この状態で連想メモリCAMにアドレスADDが入力されと、連想動作が行われ、該当するアドレスが記憶される行の一致線が"HIGH"レベルにされる。連想メモリCAMの一致線にID番号を対応させておくと、選択された一致線をエンコード回路ENDERでエンコードすることによって、データID信号DIDが得られる。また、連想メモリCAMの一致線で有効フラグVALIDをリセットすることによって、アクセス終了のアドレスに対応するID番号を無効にすることができる。
このようにID番号を用いることによってメモリマクロのアドレス入力順とデータ出力順が変更できるので、先に出力可能なデータを先に出力することができるため、効率の良いキャッシュ機能付メモリマクロを構成できる。
《マルチプロセッサシステムへの応用》
また、このようなID番号を用いる方法はマルチプロセッサシステムに対応することも容易である。図３１にはマルチプロセッサシステムの一例が示される。この例では２つのプロセッサ（CPU#1,CPU#2）が一つのメモリマクロMMを共有する形をとっている。アドレスバスABUS、データバスDBUS、アドレスID信号AID、データID信号DIDに加えてプロセッサの番号を示すプロセッサID信号PIDが設けられている。各プロセッサはアドレス発行の際にどちらのプロセッサが発行したアドレスであるかをメモリマクロMMに示すためにプロセッサID信号PIDを出力する。メモリマクロMMはプロセッサID信号PIDの値をアドレスの値とともに管理しておき、データを出力する際にこれを再び出力することによって、データがどちらのプロセッサへ行くべきかを明らかにすることができる。
図３２にアドレス入力時のメモリマクロMMによるアドレスID信号AID及びプロセッサID信号PIDの発行フローが示される。プロセッサID信号PIDの管理がテーブルに追加されたほかは、図２８に示されたフローと同様である。以下図３２に示される具体例に従って説明する。
（１）中央処理装置CPUからアドレス発行/全体制御部17Aにアドレス信号ADD（ADD=6）とプロセッサID信号PID（PID=0）が入力される。
（２）アドレス発行/全体制御部17Aはアドレス信号ADD（ADD=6）を該当するメモリバンクBANKC#iに出力するようにされる。
（３）また、アドレス発行/全体制御部17Aはアドレス信号ADD（ADD=6）とプロセッサID信号PID（PID=0）をテーブルM-TABLEに入力するようにされる。
（４）アドレス信号ADD（ADD=6）とプロセッサID信号PID（PID=0）はテーブルM-TABLEのID番号（ID=#4）に対応する場所に書き込まれ、有効フラグVALIDは有効にされる（図３２では"Yes"と表示されている）。
（５）テーブルM-TABLEから割り当てられたアドレスID信号AID（AID=#4）が読み出される。
（６）読み出されたアドレスID信号AID（AID=#4）とプロセッサID信号PID（PID=0）が中央処理装置CPUに返される。
図３３にはデータ出力時のデータID信号DID及びプロセッサID信号PIDの発行フローが示される。プロセッサID信号PIDの管理がテーブルに追加されたほかは、図２９に示されたフローと同様である。以下図３３に示される具体例に従って説明する。
（１）コマンド発行部17Cにデータを出力するメモリバンクBANKC#iからレディ信号RDY#iが返されることによって、アドレス発行/全体制御部17A内でアクセスアドレスを記憶しているアドレスラッチADDLT#iからアドレス信号ADD（ADD=6）が得られる。
（２）テーブルM-TABLEにアドレス信号ADD（ADD=6）が入力される。
（３）テーブルM-TABLEでアドレス信号ADD（ADD=6）に対応するID番号（ID=#4）及びプロセッサID信号PID（PID=0）が検索される。
（４）テーブルM-TABLEからデータID信号DID（DID=#4）及びプロセッサID信号PID（PID=0）が読み出される。
（５）データID信号DID（DID=#4）及びプロセッサID信号PID（PID=0）が中央処理装置CPUに出力される。
図３４には、テーブルM-TABLEの構成例が示される。テーブルM-TABLEは、連想メモリCAMM、ランダムアクセスメモリRAMM等で構成される。例えば、制御信号AWを"HIGH"レベルにすると連想禁止回路AINHが連想を禁止し、連想メモリワード線選択回路WSELが動作して、有効フラグが無効であるワード線を選択するようにされる。また、制御信号AWによって、連想メモリCAMMの一致線／ワード線切替回路WMSELがワード線を選択してランダムアクセスメモリRAMMのワード線と接続するようにされる。この状態で連想メモリCAMMにはアドレス信号ADDが入力され、記憶される。また、ランダムアクセスメモリRAMMにはプロセッサID信号PIDが入力され、記憶される。連想メモリCAMのワード線にID番号を対応させておくと、選択されたワード線をエンコード回路ENDERでエンコードすることによって、アドレスID信号AIDが得られる。制御信号AWを"LOW"レベルにすると連想禁止回路AINHが連想を可能にし、連想メモリワード線選択回路WSELが動作を停止する。また、制御信号AWによって、連想メモリCAMMの一致線／ワード線切替回路WMSELが一致線を選択してランダムアクセスメモリRAMMのワード線と接続するようにされる。この状態で連想メモリCAMにアドレス信号ADDが入力されと、連想動作が行われ、該当するアドレスが記憶される行の一致線が"HIGH"レベルにされる。これによって、ランダムアクセスメモリRAMMからプロセッサID（PID）が読み出される。連想メモリCAMの一致線にID番号を対応させておくと、選択された一致線をエンコード回路ENDERでエンコードすることによって、データID信号DIDが得られる。また、連想メモリCAMの一致線で有効フラグVALIDをリセットすることによって、アクセス終了のアドレスに対応するID番号を無効にすることができる。
図３５及び図３６にプロセッサ側でのID番号管理のフローが示される。図３５ではアドレスID信号AIDの読み込み時のフローが示されている。中央処理装置CPUにもメモリマクロMMと同様にID番号とアドレスの対応を記したテーブルCPU-TABLEを用意しておき、これをテーブル管理ステートマシンCSMCによって参照することによって対応を明らかにすることができる。以下図３５に示される具体例に従って説明する。
（１）メモリマクロMMからアドレスID信号AID（AID=#4）とプロセッサID信号PID（PID=0）が入力される。
（２）プロセッサID信号PID（PID=0）が自分のプロセッサIDであれば、先に出力したアドレス信号ADD（ADD=6）とアドレスID信号AID（AID=#4）とをテーブルCPU-TABLEに入力するようにされる。
（３）アドレス信号ADD（ADD=6）とアドレスID信号AID（AID=#4）はテーブルCPU-TABLEのID番号（ID=#4）に対応する場所に書き込まれ、有効フラグVALIDは有効にされる（図３５では"Yes"と表示されている）。
図３６にはデータID信号DIDの読み込み時のフローが示される。以下図３６に示される具体例に従って説明する。
（１）メモリマクロMMからデータID信号DID（DID=#4）とプロセッサID信号PID（PID=0）が入力される。
（２）プロセッサID信号PID（PID=0）が自分のプロセッサIDであれば、データID信号DID（DID=#4）をテーブルCPU-TABLEに入力するようにされる。
（３）テーブルCPU-TABLEでデータID信号DID（DID=#4）に対応するアドレス信号ADD（ADD=6）が検索される。
（４）テーブルCPU-TABLEからアドレス信号ADD（ADD=6）が読み出される。
（５）アドレス信号ADD（ADD=6）が出力される。
図３７には、テーブルCPU-TABLEの構成例が示される。テーブルCPU-TABLEは、連想メモリCAMC、ランダムアクセスメモリRAMC等で構成される。例えば、制御信号AWを"HIGH"レベルにすると連想禁止回路AINHが連想を禁止し、連想メモリワード線選択回路WSELが動作して、有効フラグが無効であるワード線を選択するようにされる。また、制御信号AWによって、連想メモリCAMCの一致線／ワード線切替回路WMSELがワード線を選択してランダムアクセスメモリRAMCのワード線と接続するようにされる。この状態で連想メモリCAMCにはアドレスID信号AIDが入力され、記憶される。また、ランダムアクセスメモリRAMCにはアドレスADDが入力され、記憶される。制御信号AWを"LOW"レベルにすると連想禁止回路AINHが連想を可能にし、連想メモリワード線選択回路WSELが動作を停止する。また、制御信号AWによって、連想メモリCAMCの一致線／ワード線切替回路WMSELが一致線を選択してランダムアクセスメモリRAMCのワード線と接続するようにされる。この状態で連想メモリCAMCにデータID信号DIDが入力されと、連想動作が行われ、該当するID番号が記憶される行の一致線が"HIGH"レベルにされる。これによって、ランダムアクセスメモリRAMCからアドレスADDが読み出される。また、連想メモリCAMCの一致線で有効フラグVALIDをリセットすることによって、アクセス終了のアドレスに対応するID番号を無効にすることができる。
このようにID番号を用いることによってメモリマクロのアドレス入力順とデータ出力順が変更できるので、先に出力可能なデータを先に出力することができるため、効率の良いキャッシュ機能付メモリマクロを構成できる。さらにこれを応用することによって、マルチプロセッサをによる共有メモリシステムを簡単に構成することが可能である。
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることはいうまでもない。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、メモリマクロがメモリバンク、メインアンプ、電源回路、制御回路等の機能モジュール単位でデータベースに記憶され、機能モジュールを組合せて配置するのみで種々の機能又は記憶容量のメモリマクロが容易に構成できる。
メモリマクロを構成するメモリバンク内又はメモリバンクを制御する制御回路内に従来マイクロプロセッサや画像プロセッサのような大規模論理回路内又は外部に設けられていた制御回路の機能をと取り入れたので、マイクロプロセッサや画像プロセッサのような大規模論理回路の設計が容易になる。
複数のメモリバンクに連続にアクセスし、データの出力が可能なメモリバンクからデータを出力することによって、ページミスやリフレッシュのペナルティを軽減できる。
【図１】
0003816110.tif 000002
【図２】
0003816110.tif 000003
【図３】
0003816110.tif 000004
【図４】
0003816110.tif 000005
【図５】
0003816110.tif 000006
【図６】
0003816110.tif 000007
【図７】
0003816110.tif 000008
【図８】
0003816110.tif 000009
【図９】
0003816110.tif 000010
【図１０】
0003816110.tif 000011
【図１１】
0003816110.tif 000012
【図１２】
0003816110.tif 000013
【図１３】
0003816110.tif 000014
【図１４】
0003816110.tif 000015
【図１５】
0003816110.tif 000016
【図１６】
0003816110.tif 000017
【図１７】
0003816110.tif 000018
【図１８】
0003816110.tif 000019
【図１９】
0003816110.tif 000020
【図２０】
0003816110.tif 000021
【図２１】
0003816110.tif 000022
【図２２】
0003816110.tif 000023
【図２３】
0003816110.tif 000024
【図２４】
0003816110.tif 000025
【図２５】
0003816110.tif 000026
【図２６】
0003816110.tif 000027
【図２７】
0003816110.tif 000028
【図２８】
0003816110.tif 000029
【図２９】
0003816110.tif 000030
【図３０】
0003816110.tif 000031
【図３１】
0003816110.tif 000032
【図３２】
0003816110.tif 000033
【図３３】
0003816110.tif 000034
【図３４】
0003816110.tif 000035
【図３５】
0003816110.tif 000036
【図３６】
0003816110.tif 000037
【図３７】
0003816110.tif 000038