[実施の形態1]
図1は、この発明の実施の形態1に従う演算処理システムの全体の構成を概略的に示す図である。
図1において、この発明の実施の形態1に従う演算処理システム1は、与えられたプログラムに従って演算/制御処理を実行する演算処理回路2と、この演算処理回路2に対するプログラム命令および処理データを記憶する半導体記憶装置3を含む。
この半導体記憶装置3は、MRAM等の不揮発性RAMで構成され、記憶情報の書換が禁止されるROM領域20と、記憶情報の書換が可能なRAM領域30を含む。これらのROM領域20およびRAM領域30の境界領域(境界アドレス)15は、変更可能であり、ROM領域20のサイズおよびアドレス空間上での位置は、不揮発性RAM3のアドレス空間内で変更可能であり、また物理的な位置および記憶容量も不揮発性RAM3内において変更可能である。
ROM領域20には、演算処理回路2において実行される処理を指定するプログラム命令、この半導体集積回路装置1における初期化時のシステム立上げおよび初期化用のブートプログラム、BIOS命令、および制御データなどの固定情報が格納される。一方、RAM領域30には、書換が許容される情報、すなわち処理データ、アプリケーションプログラムおよび演算処理回路2の中間処理データ等を格納する。
この不揮発性RAM3は、FeRAMまたはMRAMであり、データ保持時間は10年以上であり、データ書換可能回数が1015以上であり、また、データの読出および書込時間が10nsという特性を有する。FeRAMまたはMRAMは、それぞれ、強誘電体の分極方向および強磁性体層の磁化方向に応じてデータを記憶し、不揮発的に情報を記憶することができる。従って、この不揮発性RAMは、マスクROMなどの不揮発的にデータを記憶する不揮発性ROMと、高速にランダムアクセスを行なうことができるものの、データ保持には電源を供給する必要のあるSRAM(スタティック・ランダム・アクセス・メモリ)などの揮発性RAMの特長を併せ持つ。
不揮発性RAM3を用いて、内部メモリ領域を、ROM領域20およびRAM30に区分してそれぞれ属性の異なる情報(すなわち書換を拒否すべき情報と書換が許容される情報)を記憶することにより、1種類のメモリを用いて処理システムを構築することができ、製造コストを低減することができる。また、RAM領域20およびRAM領域30は、そのアドレス位置および記憶容量を用途に応じて適宜設定することができ、記憶システムの構成が簡略化され、設計コストおよび製造コストを低減することができる。
演算処理システム1は、さらに、命令Iを転送する命令バス4と、データDを転送するデータバス5と、このデータバス5と集積回路装置1の外部周辺機器とのインターフェイスを取るバスインターフェイス10を含む。このバスインターフェイス10は、外部I/O端子11に結合される。
不揮発性RAM3は、ROMポート8を介して命令バス4に格納情報を転送し、またRAMポート9を介してデータバス5と双方向で情報を転送する。
演算処理回路2は、命令バス4に結合される命令ポート6と、データバス5に結合されるデータポート7を含む。演算処理回路2は、また不揮発性RAM3に対する制御信号CTLおよびアドレス信号ADをそれぞれ伝達する制御バス13およびアドレスバス14に結合される。これらの制御バス13およびアドレスバス14は、不揮発性RAMに結合されるが、図1においては、この接続経路は、図面を簡略化するために示していない。これらの制御バス13およびアドレスバス14の組は、ROMポート8およびRAMポート9それぞれに対して設けられる。
なお、以下の説明において、「ポート」は、周辺装置と情報の転送を行なう機能を有する入出力機能ブロックおよび情報の転送経路を含む。したがって、バスインターフェイス10は、外部I/O端子11を介して各々が異なる周辺機器と結合されるように、複数のポートを有することが可能である。
この不揮発性RAM3を、たとえば複数のMRAMチップを有するモジュールで構成し、そのMRAMモジュール内で、MRAMチップまたはアレイが、ROM領域20および30に割当てられる。また、不揮発性RAM3が、1つの半導体チップ上に形成される場合、不揮発性RAM3内においてメモリアレイが、ROM領域20およびRAM領域30に選択的に分割される。この不揮発性RAM3の記憶容量の範囲内で、ROM領域20およびRAM領域30の容量を変更でき、種々の容量の組合せを実現することができ、複数の用途に対してこの不揮発性RAM3により対応することができる。従って、用途に応じて記憶容量が固定されたROMおよびRAMを設ける必要がなく、各種用途に対して一種類の不揮発性RAMで対応することができ、生産性を向上することができ、また、製品管理が容易となり、流通コストを低減することができる。
また、ROM領域20は、ROMポート8を介して命令バス4に結合し、また、RAM領域30は、RAMポート9を介してデータバス5に結合する。これにより、演算処理回路2においては、命令ポート6およびデータポート7を介してROM領域20およびRAM領域30に対して並行してアクセスすることができ、データ転送のために、命令フェッチを待つ必要がなく、演算処理回路2のウエイトサイクルを低減でき、処理効率を改善することができる。
また、この演算処理回路2および不揮発性RAM3は、半導体集積回路装置内に設けられ、同一チップ上に形成されてもよく、また、演算処理回路2および不揮発性RAM3は、共通のボード上に配置される個別装置であってもよい。演算処理システム1の構成に応じて、不揮発性RAM3が、そのアドアレス領域がROM領域20およびRAM領域30に容量可変に区分される構成であればよい。
図2は、図1に示す不揮発性RAMの構成の一例を概略的に示す図である。図2において、不揮発性RAM3は、各々が複数の不揮発性メモリセルを含むメモリマットMAT1−MAT6と、メモリマットMAT1−MAT6に共通に設けられるアドレスバスAB1およびAB2と、これらのメモリマットMAT1およびMAT6に共通に設けられるデータバスDB1およびDB2を含む。
データバスDB1およびアドレスバスAB1がポートP1の一部を構成し、このポートP1が、ROMポート8に結合される。アドレスバスAB2およびデータバスDB2が、ポートP2の一部を構成し、ポートP2が、RAMポート9に結合される。したがって、データバスDB1へは、読出情報(命令)が転送され、一方、データバスDB2には、読出データおよび書込データの両者が転送される。ポート1およびP2は、それぞれ、入出力(バッファ)回路を含むが、図2においては、図面を簡略化するために示していない。
メモリマットMAT1−MAT6それぞれに対応して、対応のメモリマットのバスへの接続を設定しかつ書込/読出を制御するアクセスコントローラACL1−ACL6が設けられる。図2に示す配置においては、アクセスコントローラACL1−ACL4が対応のメモリマットMAT1−MAT4をアドレスバスAB1およびデータバスDB1に結合し、アクセスコントローラACL5およびACL6が、対応のメモリマットMAT5およびMAT6をデータバスDB2に結合する。したがって、メモリマットMAT1−MAT4が、ROM領域として用いられ、メモリマットMAT5およびMAT6が、RAM領域として用いられる。アクセスコントローラACL1−ACL4が、1つのサブアレイ接続制御回路CCK1を構成し、アクセスコントローラACL5およびACL6が、サブアレイ接続制御回路CCK2を構成する。これらのメモリマットMAT1−MAT6の接続経路を切換えることにより、ROM領域およびRAM領域を、その記憶容量を変更することができ、応じて、サブアレイ接続制御回路の構成も変更される。
メモリマットMAT1−MAT6は、不揮発性RAM3がメモリモジュールの構成の場合、個々のチップで構成され、メモリマットMATiおよび対応のアクセスコントローラACLiが、1つの半導体チップで構成される個別素子(ディスクリート素子)に対応する。不揮発性RAM3が、1つの半導体チップで構成される個別素子に対応する場合には(演算処理システムが、半導体集積回路装置の場合には)、メモリマットMAT1−MAT6は、メモリアレイ、1つのメモリアレイ内のアレイブロック、またはバンクで構成される。以下の説明においては、メモリマットは、アドレス空間(メモリ空間)内においてある空間を占有するメモリ領域を参照するものとして、この用語を利用する。従って、メモリマットは、1つの個別素子、個別素子内のメモリバンク、1つのメモリアレイ内の分割アレイブロックのいずれで実現されてもよい。
図3は、図2に示すメモリマットおよび対応のアクセスコントローラの構成を概略的に示す図である。図3においては、メモリマットMATiとアクセスコントローラACLiが、1つの半導体チップ上に配置され、メモリマットMATiが、1つのバンクで構成される場合を一例として示す。
図3において、メモリマットMATiは、メモリセルMCが行列状に配列されるメモリセルアレイ50を含む。メモリセルMCは、たとえば磁気トンネル抵抗素子(TMR素子)で構成される可変抵抗素子VRと、ワード線WL上の信号に従って選択的に可変抵抗素子VRをソース線SLに結合するアクセストランジスタATを含む。この可変抵抗素子VRは、強誘電体キャパシタで構成されてもよい。
メモリセルアレイ50においては、ワード線WLと平行にディジット線DLがメモリセル行に対応して配置され、またメモリセルMCの各列に対応してビット線BLが配置される。このビット線BLには、対応の列のメモリセルの可変抵抗素子VRが接続される。ディジット線DLと可変抵抗素子VRとは、電気的に分離される。可変抵抗素子VRは、磁化方向が固定される固定層と磁化方向が記憶データに応じて設定される自由層とがトンネルバリア層を介して積層される構造を有する。ディジット線を流れる電流が誘起する磁界とビット線BLを流れる電流が誘起する磁界の合成磁界により、可変抵抗素子VRの自由層の磁化方向を固定層の磁化方向に対して平行および反平行のいずれかに設定して、この可変抵抗素子VRを構成するTMR素子の磁気抵抗効果により、可変抵抗素子を高抵抗状態および低抵抗状態のいずれかに設定して、その抵抗値の大小によりデータを記憶する。
メモリマットMATiは、さらに、アドレス信号ADに含まれる行アドレス信号RAと読出指示信号REiとに従って、データ読出時、アドレス指定された行に対応するワード線WLを選択状態へ駆動するワード線ドライバ51と、行アドレス信号RAと書込指示信号WEiとに従って、データ書込時、アドレス指定された行に対応するディジット線DLに電流を流すディジット線ドライバ52と、書込指示信号WEiと列アドレス信号CAとに従って、データ書込時、アドレス指定された列に対応するビット線BLを選択する書込列選択回路53と、読出指示信号REiと列アドレス信号CAとに従って、データ読出時、アドレス指定された列のビット線BLを選択する読出列選択回路54と、センスアンプ活性化信号SAEiに従って読出列選択回路54により選択されたビット線を流れる電流を検出して、選択メモリセルのデータを内部読出するセンスアンプ55と、書込指示信号WEiに従ってデータ書込時、書込データに従って書込列選択回路53により選択されたビット線BLに電流を流すライトドライバ56を含む。
書込指示信号WEiおよび読出指示信号REiとセンスアンプ活性化信号SEAiは、書込モードおよび読出モードそれぞれにおいてメモリマットMATiが選択されたときに活性化される。
可変抵抗素子が磁気抵抗効果素子の場合、データ書込時には、書込データに応じてビット線に双方向に書込電流を流し、またデータ読出時には、内部読出データ線に定電流を供給して選択メモリセルを流れる電流をセンスアンプ55で検出する。したがって、通常、この内部のデータ書込線および内部読出データ線は別々に設けられる。
アクセスコントローラACLiは、対応のメモリセルマットMATiの結合するポートを指定するポート指定データを保持するポート指定データ保持回路60と、ポート指定データ保持回路60に保持されるデータとマット選択信号MASiとメモリセル選択動作活性化信号(アクセス指示信号)ACTとに従って、書込指示信号WEi、センスアンプ活性化信号SAEiおよびポート接続制御信号MP1/2を生成するアクセス制御回路61と、アクセス制御回路61からのポート選択信号MP1/2に従ってセンスアンプ55およびライトドライバ56に対する内部データバスの接続経路を設定する接続設定回路62と、ポート選択信号MP1/2に従ってアドレスバスAB1およびAB2の一方を選択して内部アドレスADを生成するアドレスバス選択回路63を含む。
ポート指定データ保持回路60には、このメモリマットMATiがROMポートおよびRAMポートのいずれに接続するか、すなわち、メモリマットMATiがROM領域およびRAM領域のいずれに割当てられるかを指定するデータを格納する。アクセス制御回路61は、アクセス指示信号ACTの活性化時、マット選択信号MASiが活性状態にあれば、接続制御信号MP1/2、および外部からの動作モード指示信号に従って書込指示信号WEiまたは読出指示信号REiおよびセンスアンプ活性化信号SEAEiを活性化する。
接続設定回路62は、アクセス制御回路61からの接続制御信号MP1/2に従って、センスアンプ55およびライトドライバ56の接続経路を設定する。図3においては、ポートP1に対して、読出データバスRDB1が配置され、ポートP2に対して、読出データバスRDB2および書込データバスWDB2が配置される。ポートP1は、書込データバスを含まず、書込データはポートP1においては転送されない。
アドレス選択回路63は、このアクセス制御回路61からの接続制御信号MP1/2に従って、アドレスバスAB1およびAB2の一方の行アドレス信号および列アドレス信号を取込み、内部アドレス信号AD(行アドレス信号RAおよび列アドレス信号CA)を生成する。
図4は、図3に示すメモリマット選択信号MASiを発生する部分の構成の一例を概略的に示す図である。図4において、メモリマット選択信号発生部は、アドレスバスAB1上のマットアドレス信号をデコードして第1のマットアドレスデコード信号MD1を生成するマットアドレスデコーダ65と、アドレスバスAB2上のマットアドレス信号をデコードして、第2のマットデコード信号MD2を生成するマットアドレスデコーダ66と、これらのマットアドレスデコーダ65および66上のマットアドレスデコード信号MD1およびMD2の論理和を取って、メモリマットごとのマット選択信号MAS1−MASnを生成するOR回路67を含む。OR回路67からのマット選択信号MAS1−MASnが、メモリマットそれぞれに対応して設けられるアクセスコントローラACL1−ACLnへ与えられる。ここで、メモリマットの数は、nとしている。
マットアドレス信号は1つのメモリマットを指定する。従って、アクセス時、アドレスバスAB1およびAB2に与えられるマットアドレス信号各々により、1つのメモリマットが指定され、従って、各ポートにおいて1つのメモリマットを指定してアクセスを行う(メモリセルの選択およびデータ/情報の内部読出または内部書込を行う)。
アクセスコントローラACL1−ACLnは、制御バス70からのアクセス活性化信号ACT(またはチップ選択信号CS)と対応のメモリマット選択信号MASi(i=1〜n)に従って対応のメモリセルマットが選択されたかを判定し、対応のメモリマット選択時、メモリセル選択およびデータ/情報の書込または読出の動作を制御するとともに対応のメモリマットを対応のポートのバスに結合する。
制御バス70aおよび70bは、ポートP1およびポートP2それぞれ別々に設けられる。制御バス70aおよび70bを介してポートP1およびポートP2(ROMポートおよびRAMポート)からのアクセス要求信号ACT1およびACT2をOR回路68により論理和を取って、メインのアクセス指示信号ACTを生成する。このメインのアクセス指示信号ACTは、メモリマットMAT1−MATnに共通に与えられ、アクセス要求時のアドレスの取り込み及び内部回路の活性化およびバス接続のタイミングを設定する。メインのアクセス活性化信号ACTは、半導体チップ単体で構成される半導体記憶装置のチップセレクト信号CSに対応する。
マットアドレスデコーダ65および66は、スタティックにデコード動作を行なってマットアドレス信号に従って、マットデコード信号MD1およびMD2を生成する。
これにより、1つのチップ上に複数のメモリマットが共通に配置される場合においても、各メモリマットに対して個々にアクセス経路の設定を行なうことができる。図5は、図4に示すメモリマット選択信号発生部の動作を示すタイミング図である。以下、図5を参照して、簡単に、図4に示すマット選択信号発生部の動作について簡単に説明する。
マットアドレスデコーダ65および66は、システムクロックなどの、演算処理回路の動作サイクルを規定するクロック信号CLKと非同期でスタティックに動作する。アドレスバスAB1およびAB2には、演算処理回路から対応のポートを介してアドレス信号が与えられる。アドレス信号は、演算サイクルを規定するクロック信号CLKの立上がりに対してセットアップ時間を有し、クロック信号CLKの立上がりより早いタイミングで、アドレスバスAB1およびAB2のアドレス信号が確定状態となる。したがって、マットアドレスデコーダ65および66は、このクロック信号CLKの立上がりより早いタイミングで、デコード信号MD1およびMD2をそれぞれ活性状態とする。
OR回路67は、これらのデコード信号MD1およびMD2に従って、選択メモリマットに対するメモリマット選択信号MASiを活性状態へ駆動する。
クロック信号CLKが立上がると、演算処理回路からのコントローラバス70aおよび70bを介して与えられるアクセス指示信号ACT1および/またはACT2が活性化されて、応じてアクセス指示信号ACTが活性化され、各メモリマットに対してアクセス要求を報知する。アクセスコントローラACL1−ACLnにおいて、アクセスが指示されたメモリマット(マット選択信号に指定されたメモリセルマット)に対して配置されるアクセスコントローラが動作し、メモリマットのデータ/情報転送経路が設定され、また選択メモリマットの周辺回路が活性化されてデータアクセスが行なわれる。
したがって、図4に示す構成を利用することにより、アクセス指示信号ACTの活性化時、メモリマット選択信号MATiが確定状態にあり、アクセス指示信号ACTの活性化に従って、図3に示すアドレス選択回路63に対するアクセス要求アドレスの選択経路を、即座に設定することができる。
図6は、図3に示すポート指定データ保持回路60の構成の一例を示す図である。図6において、ポート指定データ保持回路60は、データバスDB1の特定のデータ線に結合され、初期化動作指示信号BOOTに従って選択的に導通するトランスファーゲート71と、トランスファーゲート71から与えられたデータを反転するインバータ72と、インバータ72と反並行に接続されるインバータ73と、インバータ73の入力部と接地ノードの間に接合され。リセット信号RSTに従って選択的に導通するリセット用NMOSトランジスタ74と、インバータ72の出力信号と初期プログラム書込指示信OTWRとに従ってポート2選択信号P2Sを生成するOR回路75と、OR回路75の出力信号を反転してポート1選択信号P1Sを生成するインバータ76を含む。
これらのポート選択信号P2SおよびP1Sが、ポートP2およびP1を指定する信号として用いられる。インバータ72および73がラッチ回路を構成する。
リセット信号RSTは、電源投入時にワンショットのパルスの形態で生成されるパルス信号であり、MOSトランジスタ74の導通時にインバータ72の出力信号をLレベルに設定する。
図7は、図6に示すポート指示データ保持回路60のポート指定データ保持動作を示すフロー図である。以下、図7を参照して、図6に示すポート指定データ保持回路の動作について説明する。
この不揮発性RAMのROM領域固定前において、この不揮発性RAMの初期情報が特定のROM領域に格納される。この初期情報書込時においては、まず、初期情報書込指示信号BOTWRを活性状態(Hレベル)に設定し、ポート指定信号P2Sを活性状態として、すべてのメモリマットをRAM領域に設定する(ステップS1)。
これにより、不揮発性RAMにおけるメモリマットにおいて任意のメモリマットをROM領域として指定することが可能となり、特定のメモリマットに、ブート用プログラム、BIOSなどの基本ソフトウェア、初期化用制御データなどの初期化動作に必要な情報、および固定情報を書込む(ステップS2)。この初期情報書込時において、初期化制御データとして、メモリマットそれぞれについて、ROM領域およびRAM領域のいずれに設定するかの情報も併せて制御データとして書込む。
この初期化情報の書込が完了すると、初期化情報書込指示信号BOTWRが非活性状態(Lレベル)に設定される。この初期化情報を書込んだ後においては、ポート指示データ保持回路60においては、インバータ72および73によるラッチ回路により、リセットMOSトランジスタ74により設定されたLレベルを保持し、ポートP1(ROMポート)を指定するポート選択信号P1Sが活性状態に維持される(電源電圧供給時)。したがって、初期情報の書込完了後、電源投入後デフォルト状態としては、すべてのメモリマットはROM領域に設定され、情報の書込が禁止される(ステップS3)。
この初期情報を書込んだ後、記憶装置または演算処理システムが出荷される。システムに組み込まれた実使用状態において、システムの立上げが行なわれる。この場合、まず電源投入に従って、リセットMOSトランジスタ74が、リセット信号RSTに従って導通し、インバータ72の出力信号をLレベルに設定し、全メモリマットは、ROM領域に設定される。次いで、演算処理回路がブート用プログラムを読出し不揮発性RAMを初期化する。この初期化時においては、初期化動作指示信号BOOTが活性状態とされる。各ポート指定データ保持回路60は、データバスDB1の対応のデータ線に結合され、初期化データ(ポート指定データ)を格納するメモリマットからデータバスDB1に読出されたデータが、インバータ72および73および各メモリマットに格納される(ステップS4)。これにより、各メモリマットの接続ポートの設定を行ない、実使用時の初期化が完了する(ステップS5)。
この初期化用のブートプログラムおよび制御データを格納するメモリセルマットは、ROM領域として利用されるため、ポートP1に接続される。したがって、このブートプログラムを格納するメモリセルマットにおいては常にポート指定信号P1Sが活性状態となる。残りのメモリマットにおいて、ポート指定データに従って、接続ポートがROM領域またはRAM領域に設定される。これらの残りのメモリマットにおいては、単に内部ノードの電位の初期化などの初期化動作が行なわれるだけであり、データアクセスは行なわれないため、誤動作が生じるのを防止される。1つのメモリマットから各メモリマットそれぞれのポート指定データを並列に読出し、ポートP1のバスを介して転送することにより、並行して各メモリマットにおいてポート指定データを書込むことができ、バスDB1のバス幅以下の数のメモリマットに対して並列にポート指定データを設定することができ、高速で、各メモリマットの接続ポートの設定を行なうことができる。
図8は、図3に示すアクセスコントローラACLiに含まれるアクセス制御回路61の構成の一例を示す図である。図8において、アクセス制御回路61は、アクセス指示信号ACTとマット選択信号MASiを受け、マット活性化信号MTACTを生成するAND回路80と、AND回路80の出力信号とポート指定信号P1Sとを受けて接続制御信号MP1を生成するAND回路82aと、マット活性化信号MTACTとポート指定信号P2Sとを受けて接続制御信号MP2を生成するAND回路82bと、マット活性化信号MTACTと読出モード指示信号READとを受けてセンスアンプ活性化信号SAEiおよび読出指示信号REiを生成するAND回路82cと、マット活性化信号MTACTと書込モード指示信号WRITEとを受けて書込指示信号WEiを生成するAND回路82dを含む。接続制御信号MP1およびMP2が、図3に示す接続制御信号MP1/2に対応する。
書込モード指示信号WRITEは、ポート1書込モード指示信号WRITE1とポート指定信号P1Sとを受けるゲート回路81aと、ポート指定信号P2Sとポート2書込モード指示信号WRITE2とを受けるAND回路81bと、ゲート回路81aの出力信号とAND回路81bの出力信号を受けるOR回路81eとにより生成される。
ゲート回路81aは、ポート指定信号P1SがLレベルであリポート1書込モード指示信号WRITE1がHレベルのときにHレベルの信号を出力する。従って、ポート1に対して書込が指示され、対応のメモリマットがROM領域に設定されているときには、ゲート回路81aの出力信号はLレベルとなる。
AND回路81bは、ポート指定信号P1SがHレベルであり、かつポート2書込モード指示信号WRITE2がHレベルのときにHレベルの信号を出力する。OR回路81eは、これらのゲート回路81aおよびAND回路81bの出力信号の少なくとも一方がHレベルのときに書込モード指示信号WRITEをHレベルに設定し、対応のメモリマットを書込状態に指定する。
ポート指定信号P1SがHレベルであり、対応のメモリマットがROM領域に指定されている場合には、ゲート回路81aの出力信号はLレベルであり、ポート1書込モード指示信号WRITE1は、無視される。従って、ROM領域に指定されたメモリマットに対しての書込は確実に禁止される。ポート指定信号P1SがLレベルのときにポート1書込モード指示信号WRITE1がHレベルとなると、書込モード指示信号WRITEがHレベルとなる。この状態では対応のメモリマットはRAM領域に設定されており、書込が行なわれるのは許容される。ポートP1に対してデータバスが配置されていれば、ポートP1を介してRAM領域のメモリマットに書込アクセスを行うことができる。
読出モード指示信号READを発生する系統は、ポート指定信号P1Sおよびポート1読出モード指示信号READ1とを受けるAND回路81cと、ポート2指定信号P2Sおよびポート2読出モード指定信号READ2を受けるAND回路81dと、これらのAND回路81cおよび81dの出力信号を受けるOR回路81fとを含む。OR回路81fから読出モード指示信号READが出力される。
データ/情報の読出は、ROM領域およびRAM領域いずれにおいても許可される。従って、ポート指定信号PiSが指定するポートPiから読出モード指示信号READiが与えられると、OR回路81fからの読出モード指示信号READが活性化され、読出アクセス要求したポートからの読出モード指示信号に従ってデータ/情報のアクセスが行われる。
ポートの接続制御および内部動作の活性化は、すべてマット活性化信号MTACTの活性化に従って行なわれる。したがって2つのポートにおいてデータおよび命令が並行して転送されている動作時においても、ROM領域のメモリマットおよびRAM領域のメモリマットにおいて確実に、対応のデータバス上のデータの読出を行なうことができ、誤動作を防止することができる。また、ポート接続制御信号MP1およびMP2をこのマット活性化信号MTACTに従って活性化することにより、各ポートのバスに対し非選択メモリマットが、ハイインピーダンス状態で接続させることができ、誤動作を防止することができる。
書込モード指示信号WRITEおよび読出モード指示信号READを生成する部分(回路81aから81f)は、アクセスコントローラ内部に配置され、各メモリマット単位で対応のポート指定信号P1SおよびP2Sに従って読出モードおよび書込モード判定を行なっている。従って、メモリマットがROM領域およびRAM領域のいずれに設定されても、各メモリマットに対して正確に動作モードを設定してアクセスを行うことができ、また、ROM領域に指定されたメモリマットに対しての書込アクセスを確実に禁止することができ、ROM領域の情報の書換を防止することができる。
図9は、図3に示す接続設定回路62の構成の一例を概略的に示す図である。図9において、ポート1に結合されて情報を転送するデータバスDB1は、読出データを転送する読出データバスRB1を含み、ポート2に結合されてデータを転送するデータバスDB2は、読出データを転送する読出データバスRB2と、書込データを転送する書込データバスWB2を含む。ここで、バスについては、名称を簡略化するために、命令などの情報を転送するバスについても単にデータバスとして参照する。後の実施例において、ポートP1がRAM領域のデータを転送するポートとして利用される構成との整合性を維持するためである。
接続設定回路62は、ポート接続制御信号MP1に従ってセンスアンプ55の出力信号を読出データバスRB1に結合するスイッチング回路SWG1と、接続制御信号MP2に従ってセンスアンプ55の出力信号を読出データバスRB2に伝達するスイッチング回路SWG2と、接続制御信号MP2に従ってライトドライバ56と書込データバスWB2を結合するスイッチング回路SWG3を含む。これらのスイッチング回路SWG1からSWG3は、各々、一例として、NMOSトランジスタのトランスファーゲートで構成される。これらのスイッチング回路SWG1からSWG3は、各々、CMOSトランスミッションゲートで構成されてもよい。接続制御信号MP1およびMP2に応答して、導通/非導通とされる構成であれば、これらのスイッチング回路SWG1からSWG3としては、任意の構成を利用することができる。
センスアンプ55およびライトドライバ56がそれぞれ、相補データ(信号)を出力および入力する場合、これらのスイッチング回路SWG1−SWG3は、相補データをそれぞれ転送する転送ゲートで構成される。この場合、データバスRB1、RB2およびWB2も、各々相補データ(信号)を転送する相補バス線構造を有する。
対応のメモリマットがROM領域として利用される場合には、アクセスサイクル時、接続制御信号MP1が活性化され、接続制御信号MP2は非活性状態に維持される。この場合、センスアンプ55の出力信号が読出データバスRB1に転送され、ポートP1(ROMポート)の出力部に転送される。一方、ライトドライバ56に対しては、この場合、スイッチング回路SWG3は非導通状態であり、書込データは転送されず、記憶データの誤書換は禁止される。
図9においては、ポートP1に対する書込データバスは配置されないように示される。これは、ポートP1に対しては書込が実行されないため、書込データ/情報を転送する必要がないためである。ポートP1に対しても、書込データバスが配置される場合には、対応のスイッチング回路が、ポート指定信号P1Sに従って常時非導通状態に設定される。
一方、このメモリマットが、RAM領域として利用される場合には、アクセスサイクル時、制御信号MP2が活性化され、スイッチング回路SWG2およびSWG3が導通し、一方、スイッチング回路SWG1は非導通状態を維持する。したがって、読出データバスRB2および書込データバスWB2を介して、データの読出および書込を行なうことができ、RAMポート(ポートP2)を介して双方向でデータの転送を行なうことができる。
図10は、図3に示すメモリセルアレイ50の周辺回路のワード線ドライバ51、ディジット線ドライバ52、書込列選択回路53および読出列選択回路54の構成の一例を示す図である。図10においては、ライトドライバおよびセンスアンプ55の構成も併せて示す。メモリセルアレイ50に対しては、内部書込データ線ILLおよびILRがビット線BLの両側に配設され、また、ビット線の一方側に内部読出データ線OLが配設される。
ワード線ドライバ51は、ワード線WLそれぞれに対応して設けられるワード線ドライブ回路93を含む。このワード線ドライブ回路93は、行アドレス信号RAと読出指示信号REiに従って対応のワード線WLを選択状態(Hレベル)を駆動する単位デコード/ドライブ回路93aを含む。
ディジット線ドライバ52は、各デジット線に対応して配置される単位でジット線ドライブ回路94を含む。この単位デジット線ドライブ回路94は、行アドレス信号RAと書込指示信号WEiとに従ってディジット線選択信号を生成するAND型デコード回路94aと、このAND型デコード回路94aの出力信号に従ってディジット線DLを接地ノードに結合するドライブトランジスタ94bを含む。ドライブトランジスタ94bは、一例としてNMOSトランジスタで構成される。
デジット線DLの他方端は、電源ノードに結合される。したがって、ディジット線DLの選択時、電源ノードから接地ノードに向かって電流が流れる。
書込列選択回路53は、ビット線BLに対応して設けられ、書込指示信号WEiと列アドレス信号CAに従って書込列選択信号WCSLを生成する単位列デコード回路88と、書込列選択信号WCSLに従って対応のビット線BLを内部書込データ線ILLおよびILRに結合する書込列選択ゲート90および91を含む。
書込列選択デコード回路88は、書込指示信号WEiおよび列アドレス信号CAを受けるAND型デコード回路88aを含む。データ書込時、列アドレス信号CAが対応の列を指定しているときに、単位列デコード回路88aは書込列選択信号WCSLを選択状態へ駆動する。
読出列選択回路54は、各ビット線に対しても受けられ、読出指示信号REiと列アドレス信号CAとを受けて読出列選択信号RCSLを生成する読出列デコード回路89と、読出列デコード回路89からの読出列選択信号RCSLに従って対応のビット線BLを内部読出データ線OLに結合する読出列選択ゲート92を含む。読出列デコード回路89は、読出指示信号REiと列アドレス信号CAとを受けるAND型デコード回路89aを含む。
この図10においては、列アドレス信号CAおよび行アドレス信号RAは多ビットアドレス信号であり、これらそれぞれ所定の組合せのときに対応のデコード回路が選択状態とされる。また、1つの書込列選択信号WCSLおよび読出列選択信号RCSLに従って、1つのビット線が選択される。しかしながら、これらの列選択信号WCSLおよびRCSLは、各々複数のビット線を同時に指定して複数のビット線に対して、並行してデータの書込/読出が行われても良い。図10においては、1ビットのデータ/情報の書込および読出を行う部分の構成を代表的に示す。
ライトドライバ56は、書込指示信号WEiと内部書込データ(情報)Dに従って内部書込データ線ILLを駆動するドライブ回路56lと、書込指示信号WEiと補の内部書込データ(情報)/Dに従って内部書込データ線ILRを駆動するドライブ回路56rを含む。ドライブ回路56lおよび56rは、それぞれ、NAND回路で構成され、非選択時、内部書込データ線ILLおよびILRを、電源電圧レベルに維持する。
なお、書込/読出されるデータは、RAM領域のデータまたはROM領域の情報であるが、以下の説明においては、説明を簡単にするために、書込/読出対象はデータであるとする。しかしながら、ROMポートに対する書込/読出部の構成を排除するものではない。
センスアンプ55は、データ読出時、内部読出データ線OLに定電流を供給する定電流源55aと、内部読出データ線OLの流れる電流を検出して内部読出データを生成するセンス回路55bを含む。これらの定電流源55aおよびセンス回路55bは、図10において明確に示していないが、センスアンプ活性化信号SAEiに従って活性化される。
データ読出時、対応のメモリマットが指定されたときには、読出指示信号REiが活性化され、読出列選択回路54が活性化される。応じて、読出列選択回路54のデコード回路89がデコード動作を行ない、列アドレス信号CAに従って、選択列に対する読出列選択信号RCSLを選択状態へ駆動し、ビット線BLを読出データ線OLに結合する。このとき、また、ワード線ドライバ51においても、ワード線ドライブ回路93が、読出指示信号REiと行アドレス信号RAに従って、選択行のワード線WLを選択状態へ駆動する。応じて、メモリセルMCにおいてアクセストランジスタが導通し、可変抵抗素子がビット線とソース線との間に接続される。
メモリセルMCの可変抵抗素子の抵抗値に応じて、センスアンプ55の定電流源55aから内部読出データ線OL、読出列選択ゲート92を介して供給される電流がソース線(接地ノード)へ放電される電流量が異なる。センス回路55bが、内部読出データ線OLの放電電流のセンス動作を行なって、内部読出データを生成する。
データ読出時においては、書込指示信号WEiは非活性状態であり、書込列選択ゲート90および91は非導通状態であり、また単位ディジット線ドライブ回路94のドライブトランジスタ94bも非導通状態である。したがって、データ読出時、選択メモリマットにおいて、選択メモリセルMCを介して流れる電流量の大小をセンスアンプ55が検出して内部読出データの読出を行ない、センスアンプ生成55により生成された内部読出データが図9に示す、データバスRB1またはRB2に伝達される。
データ書込モード時において、対応のメモリマットが選択されたときには、書込指示信号WEiが選択状態へ駆動され、一方、読出指示信号REiおよびセンスアンプ活性化信号(SAEi)は非活性状態にある。この状態において、列アドレス信号CAに従って書込列選択信号WCSLが選択状態へ駆動され、対応の書込列選択ゲート90および91が導通し、ビット線BLが内部書込データ線ILLおよびILRに結合される。
書込ドライブ回路56lおよび56rが、相補内部書込データDおよび/Dに従って、これらの内部書込データ線ILLおよびILRを駆動する。今、データDがHレベルのときには、補の書込データ/DはLレベルであり、書込ドライブ回路56lが内部書込データ線ILLを接地電圧レベルに駆動し、一方、書込ドライブ回路56rが、書込データ線ILRを電源電圧レベルに駆動する。したがって、この場合には、ビット線BLには、書込データ線ILRから書込データ線ILLに向かって電流が流れる。
また、ディジット線ドライバ52においても、ディジット線単位デコード回路94においてディジット線ドライブトランジスタ94bが導通し、ディジット線DLを接地ノードに結合し、ディジット線DLに電流が流れる。これらのビット線BLおよびディジット線DLを流れる電流が誘起する磁界により、メモリセルMCの可変抵抗素子(磁気抵抗素子)の強磁性体自由層の磁化方向が設定され、可変抵抗素子が、高抵抗状態または低抵抗状態に設定される。
一方、書込データDがLレベルのときには、書込ドライブ回路56lの出力信号が電源電圧レベルとなり、一方、書込ドライブ回路56rの出力信号が接地電圧レベルとなる。この状態においては、ビット線BLには、内部書込データ線ILLから内部書込データ線ILRに向かって電流が流れる。デジット線DLには、書込データDがHレベルのときと同一方向に電流が流れる。ビット線BLには、書込データDがHレベルのときと反対の方向に電流が流れ、メモリセルMCの可変抵抗素子が、書込データDがHレベルと逆の状態に設定される。
上述のように、書込データDの論理レベルに従ってビット線BLを流れる電流の方向が異なり、応じて、ビット線電流により生成される磁界の向きが異なる。メモリセルMCの可変抵抗素子は、MRAMセルの磁気抵抗素子であり、各々強磁性体層で構成される固定層および自由層を含む。この自由層の磁化方向が、ビット線BLの誘起する磁界の向きに応じて設定される。固定層の磁化方向はビット線電流およびディジット線電流の方向にかかわらず一定である。したがって、可変抵抗素子(磁気抵抗素子)において自由層および固定層の磁化方向を平行方向または反平行方向にビット線BLを流れる電流の方向に従って設定する。、応じて、可変抵抗素子の抵抗値を、高抵抗状態または低抵抗状態に設定してデータの書込および記憶を行なうことができる。
書込指示信号WEiおよび読出指示信号REiおよびセンスアンプ活性化信号(SAEi)を、対応のメモリマットが接続されるポートを指定するポート指定信号に基づいて生成することにより、正確に、ROM領域のメモリマットに対するデータの書込を禁止しつつ、選択メモリマットに対してデータの書込/読出を行なうことができる。
書込ドライブ回路56lおよび56rのデータ書込タイミングまたはセンスアンプ回路55におけるデータ読出タイミングに応じて、図9に示す接続設定回路62がバス接続を実施することにより、対応のメモリマットの内部動作(書込または読出動作)に応じてデータバスにセンスアンプ/ライトドライバを結合することができ、正確にデータの書込/読出を行なうことができ、別のメモリマットに対するデータの書込または別のメモリマットの読出データとの競合などの問題を防止することができる。
なお、上述の構成においては、メモリマットMATiは、1つの活性動作制御単位であり、バンクとして示される。しかしながら、メモリマットMATiが、それぞれ個々に、周辺回路(メモリセル選択回路および書込/読出回路)を有する構成であれば、これまでに説明した構成を適用することができる。また、メモリマットMATiが、1つのメモリチップの構成に対応する場合には、メモリマット単位で、チップ選択信号に対応する活性化制御信号ACTに従って、アクセスコントローラで接続経路の設定および内部動作制御を行なうことができる。この構成(モジュール構成)の場合には、データバスRB1、RB2およびWB2が、チップ外部のモジュール内配線で構成され、アクセスコントローラが、メモリ内部動作を制御する回路で実現される。
また、1つのメモリセルアレイに配置される複数のメモリブロック個々がメモリマットに対応する場合であっても、各メモリブロックに個々に、ローカルデータバスが設けられる場合、このローカルデータバスと内部の複数のメモリブロックに共通に設けられるグローバルデータバスとの間の接続経路を、接続制御信号に従って設定することにより、同様、1つのメモリアレイ内の各メモリブロックをROM領域またはRAM領域として利用することができる。
以上のように、この発明の実施の形態1に従えば、メモリマット(メモリブロック、メモリチップ)を個々に、ROM領域またはRAM領域に設定し、ROM領域およびRAM領域をそれぞれ別々のポートに結合して、外部の演算処理回路のROMポートおよびRAMポートに結合しており、演算処理回路においては、1つのポートから命令およびデータの属性の異なるデータを受取って内部で再分配する必要がなく、演算処理回路の内部構成が簡略化され、また各ポートにそれぞれ、属性に対応するデータが転送されるため、演算処理回路において、データ情報の処理を早いタイミングで実行することができる。また、メモリマットにおいてROMポートおよびRAMポートを別々に設けており、これらのROMポートおよびRAMポートにおいて一方のポートのアクセス完了時点まで待つことなく他方のポートのアクセスを行なうことができ(内部データ線の初期状態へのリカバリ時間を考慮する必要はない)、高速のデータ転送を行なうことができる(アクセスサイクル時間を短縮することができるため)。
また、ROM領域およびRAM領域を不揮発性RAM内において、サイズを変更可能としている。従って、ROMおよびRAMを同一の高速のメモリで構成することができかつ記憶容量を各用途に応じて最適値に設定することができ、高速アクセス可能でかつ寿命の長いメモリシステムを、1種類のメモリを用いて実現することができる。応じて、設計および製造および流通のコストを低減することができる。
[実施の形態2]
図11は、この発明の実施の形態2に従う不揮発性RAMの要部の構成を概略的に示す図である。この図11においては、メモリマットMATiおよびMATjが、隣接して配置されるバンクで構成される。すなわち、メモリマットMATiおよびMATjが、同一の半導体チップ上に形成され、互いに独立にメモリ選択動作が可能である。これらのメモリマットMATiおよびMATjに対し、それぞれ、センスアンプ55iおよび55jが設けられる。センスアンプ55iは、内部読出データ線OLiを介してメモリマットMATiから読出されたデータを増幅し、センスアンプ55jは、内部読出データ線OLjを介してメモリマットMATjから読出されるデータを増幅する。
これらのメモリマットMATiおよびMATjに対し共通にライトドライバ100(56)が設けられる。このライトドライバ100(56)は、内部書込データ線ILを介してメモリマットMATiおよびMATjに対し選択的にデータの書込を行なう。したがって、ライトドライバ100からの書込データ(書込電流)を供給する内部書込データ線ILは、メモリマットMATiおよびMATjに共通に設けられる。
メモリマットMATiおよびMATjのアクセスを制御するために、共通にアクセスコントローラACLijが設けられる。このアクセスコントローラACLijは、メモリマットMATiに対し、読出指示信号FEi、書込指示信号WEiおよびセンスアンプ活性化信号SAEiを生成し、また、メモリマットMATjに対し、読出指示信号REj、書込指示信号WEjおよびセンスアンプ活性化信号SAEjを生成する。また、アクセスコントローラACLijは、ライトドライバ100に対して、書込指示信号WEijを生成して与える。
アクセスコントローラACLijには、読出モード指示信号READ1およびREAD2と書込モード指示信号WRITE2が与えられる。読出モード指示信号READ1は、ポートP1から与えられ、読出モード指示信号READ2および書込モード指示信号WRITE2は、ポートP2から与えられる。アクセスコントローラACLijは、メモリマットMATiおよびMATjへのアクセスを制御するとともに、読出データバスRB1およびRB2ならびに書込データバスWB2の接続を制御する。読出データバスRB1はポートP1(ROMポート)に結合され、命令および制御データなどの情報を転送し、読出データバスRB2および書込データバスWB2は、ポートP2(RAMポート)に結合され、書換可能なデータを転送する。
図11に示すように、半導体チップ上において隣接して配置されるメモリマットMATiおよびMATjに対し、ライトドライバ100を共通に設ける。ライトドライバ100は、MRAMの場合、電流供給によりデータの書込を行なう回路であり、供給電流により磁界を生成する必要があり、電流駆動力が大きく、その占有面積は比較的大きい。したがって、ライトドライバ100を隣接するバンクで構成されるメモリマットMATiおよびMATjで共有することにより、チップのレイアウト面積を低減することができる。
また、メモリマットMATiおよびMATjが同一のポートに接続される場合および異なるポートに接続される場合いずれの場合においても、両者に同時に書込が行なわれることはない(ROMポートは書込禁止であり、書込アクセスは行なわれない)。したがって、ライトドライバをメモリマットで共有してもデータの誤書込は生じることはない。
図12は、図11に示すアクセスコントローラACLijのうちの制御信号を生成するアクセス制御回路の部分の構成を概略的に示す図である。図12において、アクセスコントローラACLijは、メモリマットMATiに対するアクセスを制御するマットiアクセス制御回路61iと、メモリマットMATjに対するアクセスを制御するマットjアクセス制御回路61jと、マットiアクセス制御回路61iおよびマットjアクセス制御回路61jからの書込指示信号WEiおよびWEjの論理和に従って書込活性化信号WEijを生成するOR回路101を含む。
マットiアクセス制御回路61iおよびマットjアクセス制御回路61jは、図8に示すアクセス制御回路と同様の構成を備え、それぞれ対応のポート指定データ保持回路からのポート指定信号に従ってまたアクセス指示信号ACTおよびマット選択信号(MAS)に従って各対応のアクセス制御信号を生成する。すなわち、メモリマットMATiおよびMATjそれぞれに対応してポート指定データ保持回路が設けられており(図6参照)、対応のポート指定データ保持回路からのポート指定信号P1Si,P2Si、P1SjおよびP2Sjに従って、選択的に書込指示信号などのアクセス制御信号を生成する。
OR回路101を利用することにより、メモリマットMATiおよびMATjにおいて内部書込データ線ILが共有されまたライトドライバ100が共有される場合においても、一方のメモリマットの選択時に、正確に、書込モード時にライトドライバを活性化してデータの書込は行なうことはできる(書込列選択ゲートは、各マットに対する書込指示信号WEiおよびWEjにより、選択メモリマットにおいて選択状態とされる)。
図13は、ライトドライバの配置の一例を示す図である。図13においては、メモリマットMATiは、メモリセルが行列状に配列されるメモリセルアレイ105iと、このメモリセルアレイ105iのビット線BLの両側にそれぞれ配置される書込列選択ゲート群107liおよび107riを含む。書込列選択ゲート群107liおよび107riは、メモリマットMATiに対する書込指示信号WEiと列アドレス信号CAに従って生成された書込列選択信号群WCSL(i)に従って選択列のビット線BLを書込データ線ILiおよびILにそれぞれ結合する。
図13においては、書込列選択信号群WCSL(i)は、書込指示信号WEiと列アドレス信号CAの論理積に従って生成されるように示す。これは、書込指示信号WEiが活性化されると列アドレス信号が有効とされて列選択動作(デコード動作)が行われて、書込列選択信号群が生成されることを示す。
メモリマットMATjは、メモリマットMATiと同様、メモリセルアレイ105jと、メモリセルアレイ105jのビット線BLの両側に配置される書込列選択ゲート群107ljおよび107rjを含む。このメモリマットMATjに対しては、書込指示信号WEjと列アドレス信号CAに従って書込列選択信号群WCSL(j)が生成されて、選択列のビット線BLが、内部書込データ線ILおよびILjにそれぞれ結合される。
ライトドライバ100が、メモリマットMATiおよびMATjにより共通に用いられる。内部書込データ線ILiおよびILjに、ライトドライブ回路110iおよび110jが設けられ、それぞれ、メモリマットMATiおよびMATjの選択時に、ライトドライバ100と協働して選択列のビット線に書込電流を供給する。
図14は、図13に示すライトドライバの配置に対するアクセスコントローラACLijにおける書込データバスとの接続を行なう接続制御回路の構成を示す図である。書込データバスWB2は、相補データ信号Dおよび/Dをそれぞれ伝達する書込データバス線WB2Lおよび/WB2Lを含む。
アクセスコントローラACLijは、ポート接続制御信号MP2iに従ってライトドライブ回路110iおよびライトドライバ100をそれぞれ書込データバス線WB2Lおよび/WB2Lに結合するスイッチングゲートTGiおよびTGijと、ポート接続制御信号NP2jに従ってライトドライバ100およびライトドライブ回路110jをそれぞれ書込データバス線WB2Lおよび/WB2Lに結合するスイッチングゲートTGjiおよびTGjを含む。
ポート接続制御信号MP2iが活性化されると、ライトドライブ回路110iおよびライトドライバ100が、それぞれ、書込データバス線WB2Lおよび/WB2Lに結合され、これらのバス線WB2Lおよび/WB2L上を介して伝達される相補データDおよび/Dに従って選択ビット線に対し電流を供給する。ライトドライブ回路110i、ライトドライブ100およびライトドライブ回路110jの構成は、先の図10に示すライトドライブ回路56lおよび56rの構成と同じであり、書込データDおよび/Dに従ってメモリマットMATiの選択ビット線に書込電流を供給する。
一方、メモリマットMATjの選択時、ポート接続制御信号MP2jが活性化されると、スイッチングゲートTGjiおよびTGjが導通し、ライトドライバ100およびライトドライブ回路110jに、それぞれ書込データDおよび/Dが伝達される。ライトドライバ100およびライトドライブ回路110jが、それぞれ、書込指示信号WEijおよびWEjに従って活性化されて、内部書込データ線ILおよびILjに電流を供給する。
このアクセスコントローラACLijにおいて、ライトドライブ回路110iおよび110jとライトドライバ100の接続先を、選択メモリマットに応じて切換ることにより、メモリマットMATiおよびMATjにおいて、ビット線BLに、書込データの論理値が同じとき、同じ方向に電流を流すことができ、各メモリマットにおいてメモリセルの可変抵抗素子(磁気抵抗素子)の抵抗値と書込データの論理値を一致させることができる。
[ライトドライバの配置の変更例]
図15は、この発明の実施の形態2に従う不揮発性RAMのライトドライバの配置の変更例を示す図である。図15において、メモリマットMATiおよびMATjの間に、ライトドライバ110が配設され、これらのメモリマットMATiおよびMATjのビット線BL方向の両側に、メモリマットMATiおよびMATjに共通に内部書込データ線ILaおよびILbが配設される。メモリマットMATiのビット線BLはデータ書込時、書込列選択ゲートWSGiを介して内部書込データ線ILaおよびILbに接続される。書込列選択ゲートWSGiは、列アドレス信号CA(のデコード信号)と書込指示信号WEiの組合せ(論理積)により生成される書込列選択信号に従って選択的に導通する。
一方、メモリマットMATjにおいては、データ書込時、ビット線BLは、書込指示信号WEjと列アドレス信号CAの組合せ(論理積)に従って導通する書込列選択ゲートWSGjにより、内部書込データ線ILaおよびILbに結合される。
ライトドライバ110は、アクセスコントローラに含まれる接続制御ゲートSGを介して与えられる内部書込データDと書込指示信号WEijとを受けて内部書込データ線ILaを駆動するNAND型ドライブ回路110aと、内部書込データDを反転するインバータ110bと、インバータ110bの出力信号と書込指示信号WEijに従って内部書込データ線ILbを駆動するNAND型ドライブ回路110cを含む。
接続制御ゲートSGは、ポート接続制御信号MP2iおよびMP2jに従って、メモリマットMATiおよびMATjの一方の選択時に書込データバスWB2をライトドライバ110に結合する。書込データバスWB2が、図14に示すように相補データを転送する場合には、インバータ110bは設けられず、書込データバスの相補データDおよび/DをNAND型ドライブ回路110aおよび110cにそれぞれ転送する。
データ書込時、メモリマットMATiおよびMATjにおいて書込列選択ゲートWSGiおよびWSGjの一方が導通状態となる。図15においては、メモリマットMATjに対して設けられる書込列選択ゲートWSGjが導通状態とされる状態を一例として示す。内部書込データDは、接続制御信号MP2iまたはMP2jに従ってスイッチングゲートSGを介して内部書込データバスWB2から与えられる。このスイッチングゲートSGは、メモリマットMATiおよびMATjにおいてビット線BLの配設方向がライトドライバ110に関して同じであり、選択メモリマットの位置に応じて書込データDの論理を切換える必要はない。したがって、選択スイッチングゲートSGは、ポート接続制御信号MP2iおよびMP2jの一方の活性化時、図14に示す書込データバスWB2の書込データ線WB2Lにライトドライバ110を接続する(図14の構成において、スイッチングゲートTGijおよびTGjiがともに書込データバス線WB2Lに接続される)。
今、書込データDがLレベルのときには、NAND型ドライブ回路110aの出力信号がHレベル、NAND型ドライブ回路110cの出力信号がLレベルであり、ビット線BLの電流Iblは、内部書込データ線ILaから内部書込データ線ILbに向かって流れる。書込データDがHレベルのときには、逆に、ビット線BLに対して、内部書込データ線ILbから内部書込データ線ILaに向かってビット線電流Iblが流れる。
内部書込データ線ILaおよびILbが、メモリマットMATiおよびMATjに共通に設けられる。しかしながら、ビット線の書込電流は、この内部書込データ線ILaおよびILbの中間部から供給されるため、等価的に、ビット線書込電流が流れる経路は、1つのメモリマットに対して設けられる内部書込データ線の部分である。従って、内部書込データ線が2つのメモリマットにわたって配置される場合においても、その配線抵抗の影響は抑制することができ、安定にビット線へ書込電流を供給することができる。
[実施の形態2の変更例]
図16は、この発明の実施の形態2に従う不揮発性RAMの変更例の構成を概略的に示す図である。図16において、メモリセルアレイが、各々がメモリマットに対応する複数のメモリサブアレイMB0−MBkに分割される。これらのメモリサブアレイMB0−MBkの間の境界領域に、ローカルデータ線LIOが配設される。メモリサブアレイの境界領域に対応して、ローカルセンス/ライト回路LRW1−LRWkが設けられ、また、メモリサブアレイMB0に対しては、さらに、ローカルセンス/ライト回路LWR1と対向する位置に書込ドライブ回路WD0が設けられ、また、メモリサブアレイMBkにおいても、ローカルセンス/ライト回路LRWkと対向するようにライトドライブ回路WDkが設けられる。
これらのローカルセンス/ライト回路LRW1−LRWkの各々は、対応のメモリサブアレイそれぞれに対して設けられるセンスアンプSAと、対応の2つの隣接メモリサブアレイに共通に設けられる書込ドライブ回路WDを含む。
ローカルセンス/ライト回路LRW1−LRWkに対応してアクセスコントローラACL1−ACLkが設けられ、また、書込ドライブ回路WD0およびWDkに対しても、アクセスコントローラACL0およびACLk+1がそれぞれ設けられる。これらのアクセスコントローラACL0−ACLk+1は、これまでに説明した実施の形態における構成と同様、指定されたポートに従って、内部読出バスRB1およびRB2ならびに書込バスWB2への接続を選択的に確立する。
読出データバスRB1は出力回路OKに結合され、書込データバスWB2および読出データバスRB2が、入出力回路IOKに接続される。この出力回路OKは、ROMポートの一部を構成し、また入出力回路IOKがRAMポートの一部を構成する。各ポートは、また、アドレス信号および制御信号の入力部を含む。
メモリサブアレイMB0−MBkそれぞれに対して行選択用のXデコーダXD0−XDkが設けられ、また、メモリサブアレイMB0−MBkに共通に、ポートP1からの列アドレス信号CA1をデコードするポート1列デコーダYDC1と、ポートP2からの列アドレス信号CA2をデコードするポート2列デコーダYDC2が設けられる。
ポート1列デコーダYDC1からの列選択信号CSL1が、メモリサブアレイMB0−MBkに共通に与えられ、また、ポート2列デコーダYDC2からの列選択信号CSL2が、メモリサブアレイMB0−MBkに共通に与えられる。
XデコーダXD0−XDkは、それぞれメモリサブアレイMB0−MBkを指定するマット選択信号MAT0−MATkに従って活性化される。この図16に示す構成においては、マット選択信号MAT0−MATkが、それぞれ、サブメモリブロック選択信号として用いられる。
この図16に示す構成において、センスアンプSAはメモリサブアレイMB0−MBkそれぞれに対応して設けられ、一方、書込ドライブ回路WDが2つの隣接メモリサブアレイに共有されるように設けられる。書込ドライブ回路WDの接続制御のために、図14に示すライトドライバ100に対する接続制御を行う部分と同様の構成が用いられ、共有するメモリサブアレイに対するポート接続制御信号MP2に従ってライトドライブ回路WDが書込データバスWB2へ選択的に接続される。
この図16に示す構成においては、書込ドライブ回路WDは、隣接する2つのメモリサブアレイにおいて共有されるため、書込ドライブ回路の占有面積を低減することができる。
メモリサブアレイMB0−MBkに対するアクセス動作は、先の実施の形態1および実施の形態2においてこれまで説明したバンク構成のメモリマットに対するアクセスと同様であり、列選択ゲートの構成および列選択制御を除いて、同様の制御が行なわれる。
図17は、図16に示すメモリサブアレイ境界部に配置されるローカルデータ線LIOに関連する部分の構成の一例を示す図である。図17においては、2つのメモリサブアレイMBiおよびMBjの間に配置されるローカルデータ線LIOに関連する部分の構成を示す。
ローカルデータ線LIOは、メモリサブアレイMBiに対する内部読出データ線OLiと、メモリサブアレイMBjに対する内部読出データ線OLjと、これらのメモリサブアレイMBiおよびMBjに共通に設けられる内部書込データ線ILiを含む。
メモリサブアレイMBiにおいて、ビット線BLに対し、ポート1読出列選択ゲートTRi1と、ポート2読出列選択ゲートTRi2と、ポート2書込列選択ゲートTWi2が設けられる。ポート1読出列選択ゲートTRi1は、ポート1接続制御信号MP1iとポート1の列選択信号CSL1を受けるANDゲートAGi1の出力信号に従って選択的に導通し、ポート2読出列選択ゲートTRi2は、ポート2からの列選択信号CSL2とポート2接続制御信号MP2iを受けるAND回路AGi2の出力信号に従って選択的に導通する。ポート2書込列選択ゲートTWi2は、同様、AND回路AGi2の出力信号に従って導通する。
読出列選択ゲートTRi1およびTRi2は、導通時、ビット線BLを内部読出データ線OLiに結合し、書込列選択ゲートTWi2は、導通時、ビット線BLを内部書込データ線ILiに結合する。
メモリサブアレイMBjにおいても、ポート1読出列選択ゲートTRj1、ポート2読出列選択ゲートTRj2およびポート2書込列選択ゲートTWj2が設けられる。ポート1読出列選択ゲートTRj1は、ポート1の列選択信号CSL1とポート1接続制御信号MP1jを受けるAND回路の出力信号に従って選択的に導通する。ポート2読出列選択ゲートTRj2は、ポート2用列選択信号CSL2とメモリサブアレイMBjに対するポート2接続制御信号MP2jの出力信号を受けるAND回路AGj2の出力信号に従って選択的に導通する。ポート2書込列選択ゲートTWj2も、AND回路AGj2の出力信号に従って選択的に導通する。読出列選択ゲートTRj1およびTRj2は、導通時、ビット線BLを、内部読出データ線OLjに結合し、書込列選択ゲートTWj2は、導通時、ビット線BLを内部書込データ線ILiに結合する。
メモリサブアレイMBiおよびMBjに共通に設けられるローカルセンス/ライト回路は、内部読出データ線OLiおよびOLjそれぞれに対して設けられるセンスアンプSAiおよびSAjと、内部書込データ線ILiに対して設けられる書込ドライブ回路WDを含む。
この図17に示す構成において、メモリサブアレイMBiに対しポートP1を介してアクセスが行なわれる場合、ポート1接続制御信号MP1iが活性化される(Hレベルとなる)。したがって、メモリサブアレイMBiのビット線BLが、ポート1読出列選択ゲートTRi1に従って選択されて、内部読出データ線OLiに結合される。ポートP1は書込アクセスは行なわない。したがって、センスアンプSAiによるセンス動作が行なわれてメモリサブアレイMBiの選択メモリセルのデータの読出が行なわれる。図16に示す対応のアクセスコントローラACLiに従ってセンスアンプの出力部の接続経路が設定されて、内部データの読出が行なわれる。
一方、このポートP1からのアクセスと並行してポートP2からのアクセスが行なわれた場合、ポート2列選択信号CSL2が選択状態へ駆動される。この状態で、ポートP1からのアクセスによりメモリサブアレイMBiが選択状態へ駆動された場合、ポートP2からのアクセスは、メモリサブアレイMBjに対して実行される。これは、ポート1は、命令などの情報を外部の演算処理装置が格納するためのデータ出力転送のために用いられ、ポート2は、書換可能なアプリケーションデータまたは中間処理データが転送される。ポートP1およびP2それぞれがアクセス対象とする領域のアドレス(メモリマット)が異なるため、ポートP1およびポートP2が並行して同じアドレス領域(メモリマット)をアクセスすることはない。
このため、ポートP1からの読出アクセスの場合、メモリサブアレイMBiに対するポート接続制御信号MP1jが活性化され、メモリサブアレイMBiの読出列選択ゲートTRi1が導通して内部データ読出線OLiに結合され、センスアンプSAiが、ポート1読出データバスに結合される。ポートP2からの読出アクセスがメモリサブアレイMBjに対して実行される場合、メモリサブアレイMBjのビット線BLは、読出列選択ゲートTRj1を介して内部読出データ線OLjに接続され、センスアンプSAjによりデータの読出が行なわれる。センスアンプSAjは、ポート2読出データバスに結合される。センスアンプSAiおよびSAjにより、並行してポートP1およびポートP2にそれぞれの読出データが転送される(アクセスコントローラの制御による)。
一方、メモリサブアレイMBjに対して、データの書込が行なわれる場合には、書込列選択ゲートTWj2が導通し、このメモリサブアレイMBjのビット線BLへ書込ドライブ回路WDから内部書込データ線ILiを介して書込電流が供給されデータの書込が行なわれる。
ポートP1およびポートP2から、これらのメモリサブアレイMBiおよびMBjに並行して、データ書込が行なわれることはない。したがって、内部書込データ線を駆動する書込ドライブ回路WDが、メモリサブアレイMBiおよびMBjで共有されていしても、書込データの衝突および読出データと書込データの衝突は生じず、正確な書込および読出を行なうことができる。
以上のように、この発明の実施の形態2に従えば、実施の形態1の効果に加えて、書込ドライブ回路を、隣接メモリマットまたは隣接メモリサブアレイで共有しており、書込電流を供給するために比較的大きな面積を占有する書込ドライブ回路の数を低減することができ、チップレイアウト面積を低減することができる。
[実施の形態3]
図18は、この発明の実施の形態3に従う不揮発性RAMの全体の構成を概略的に示す図である。図18において、不揮発性RAMは、M個のメモリアレイブロックMAP1−MAPMを含む。これらのメモリアレイブロックMAP1−MAPMは、1つのメモリセルアレイを分割するメモリサブブロックで実現されてもよく、また、個々別々に同一半導体チップ上に配置されるメモリセルマット(入力コードおよびコラムデコーダおよび周辺回路を含む1つのメモリ回路単位)であってもよい。図18においては、これらメモリアレイブロックMAP1−MAPMが、1つのメモリアレイ内に配置され、デジット線DLを共有する構成を示す。
メモリアレイブロックMAP1−MAPMは、それぞれ複数のI/Oブロックに分割される。図18においては、メモリアレイブロックMAP1においては、I/OブロックI/O11−I/O1nが設けられ、メモリアレイブロックMAP2においては、I/OブロックI/O21−I/O2nが設けられる。
メモリアレイブロックMAPMにおいては、I/OブロックI/OM1−I/OMnが設けられる。これらのI/Oブロックは、1つの多ビットデータ(情報)の1ビットのデータ/情報を格納する。I/Oブロック各々において、複数のビット線が配置され、複数のビット線から1つのビット線が選択されて1ビットのデータの読出/書込が行なわれる。1つのメモリアレイブロックにおいて、内部のI/Oブロックが同時に選択される。
これらのメモリアレイブロックMAP1−MAPMそれぞれに対応して、ワード線ドライバWDK1−WDKMが設けられ、メモリアレイブロックMAP1−MAPMに共通にデジット線ドライバDDKが設けられる。このデジット線ドライバDDKは、データ書込時に、メモリアレイブロックMAP1−MAPMに対して共通に配置されるデジット線を選択状態に駆動して、デジット線書込電流を流す。
ワード線WLは、各メモリアレイブロック単位で選択され、一方、ディジット線DLは、上述のように、メモリアレイブロックMAP1−MAPMに対して共通に選択される。ディジット線DLが選択状態へ駆動されるのは、データ書込時であり、一方、ワード線WLが選択されるのはデータ読出時である。1つのポートすなわちRAMポート(ポートP2)から書込アクセスが行なわれるとき、ポートP1からは単に読出アクセスが行なわれるだけである。したがって、これらのメモリアレイブロックMAP1−MAPMに共通にディジット線ドライバDDKを配置しても、何ら書込データの衝突は生じない。また、ポートP2からのデータ書込アクセスと、ポートP1からのデータ読出アクセスが並行して行なわれる場合においても、後に詳細に説明するように、このポート制御は、I/Oブロック単位で実行されるため、同一アドレスに対して、ポートP2からの書込アクセスおよびポートP1からの読出アクセスが実行されても、ポートP1の読出データは、ポートP2からの書込データの影響を受けることがなく、正確に並列書込/読出を実行することができる。
これらのメモリアレイブロックMAP1−MAPMそれぞれに対応して、ローカル内部読出/書込回路LRWK1−LRWKMが設けられる。このローカル読出/書込回路LRWK1−LRWKMは、それぞれ、対応のメモリマットにおけるI/Oブロックに対して設けられるローカルセンス/書込ドライブ回路LSWDを含む。図18においては、メモリマットMAP1のI/OブロックI/O11−I/O1nそれぞれに対して設けられるローカルセンス/書込ドライブ回路LSWD1−LSWDnを代表的に示す。
これらのローカル書込/読出回路LRWK1−LRWKMに対し、アクセスコントローラACL1−ACLMが設けられる。これらのアクセスコントローラACL1−ACLMは、それぞれ、対応のローカル読出/書込回路におけるローカルセンス/書込ドライブ回路LSWD1−LSWDnにそれぞれ対応して設けられるローカルアクセス制御回路LACK1−LACKnを含み、I/Oブロック単位でポート接続制御を実行する。
これらのアクセスコントローラACL1−ACLMは、それぞれ、読出データバスRB2、書込データバスWB2および読出データバスRB1の所定のバス線との接続を確立し、かつデータの書込/読出を制御する。
読出データバスRB2および書込データバスWB2が、RAMデータ入出力ポート(RAMポート)9に結合され、読出データバスRB1がROM情報出力ポート(ROMポート)8に結合される。RAMデータ入出力ポート9は、データの出力回路および入力回路を含み、ROM情報出力ポート8は、データ(情報)の出力回路を含む。
この図18に示す構成において、列デコーダは、メモリマットMAP1−MAPMに対し、個々に設けられてもよく、またディジット線ドライバDDKと同様、これらのメモリマットMAP1−MAPMに共通に設けられてもよい。
このローカルセンス/書込ドライブ回路LSWD1−LSWDnそれぞれの構成と対応のローカルアクセス制御回路LACK1−LACKnの構成は、先の実施の形態1または2において示す構成と同様であり、対応のメモリマットを1つのI/Oブロックとして読換えることにより、実施の形態1または2において説明した構成を利用して、I/Oブロック単位でのポート接続制御を実現する構成が得られる。ただし、図3に示すディジット線ドライバは、図18に示す構成においてはメモリアレイブロックMAP1−MAPMに共通に設けられ、各I/Oブロックには設けられない点が、実施の形態1または2と本実施の形態3と異なる。マット選択信号をI/Oブロック選択信号として利用する。
ディジット線ドライバDDKの活性化は、書込モード指示信号WRITEが与えられたときに活性化される。この書込モード指示信号WRITEは、RAMポートから与えられるだけであり、ポートP2からの制御信号に含まれる書込モード指示信号WRITE2を参照することにより、データ書込時にディジット線ドライバDDKの活性化を行なうことができる。
メモリアレイブロックMAP1−MAPMにおけるデータの書込/読出の制御は、実施の形態1または2と同様にして実行される。ただし、実施の形態2の構成と異なり、ローカルの書込ドライブ回路は、隣接I/Oブロックで共有されず、個々のI/Oブロックに対して設けられる(隣接I/Oブロックが同一のポートに割当てられる場合があるため、隣接I/Oブロックで書込ドライブ回路を共有することができない)。
このメモリアレイブロックそれぞれにおいてI/Oブロック単位でのポート接続制御を行なうことにより、メモリアドアレス空間(メモリアレイブロックMAP1−MAPM全体が形成することのできるアドレス領域)において同一アドレスの情報/データを、ROMデータおよびRAMデータとして別々に利用することができ、演算処理回路のアドレス空間が小さい場合においても、ポート接続制御により、互いに属性の異なる情報、すなわち命令およびアプリケーションデータまたは中間処理データを不揮発性RAMとの間で送受信することができ、メモリアドレス空間を実質的に拡張することができる。
図19は、この発明の実施の形態3における不揮発性RAMの転送データの構造を概略的に示す図である。演算処理回路から与えられるアドレスにより、1つのメモリアレイブロックにおいて、ビットI/O1−I/Onに対応するI/Oブロックが指定される。ROMポートに対しては、ビットI/O1−I/Oiが割当てられ、RAMポートに対しては、ビットI/Oj−I/Onのビットが割当てられる。
例えば、RAMポート(ポートP2)からのアクセス時においては、選択メモリアレイブロックにおいて、対応のI/Oブロックにおいて並列にメモリセル選択が実行される。ROMポートからは、このとき、読出アクセスが行なわれない場合には、ビットI/O1−I/Oiの読出は行なわれず、ビットI/Oj−I/OnがポートP2を介して読出される。ポートP2からのアクセスがない場合、マット選択信号に対応するI/Oブロック選択信号は非活性状態であり、ビットI/Oj−I/Onの読出は禁止される。また、ポートP1およびP2から並列して、同一アドレスに対し読出アクセスが行なわれた場合、これらのビットI/O1−I/Onが並列に読出され、それぞれROMポートおよびRAMポートを介して転送される。
一方、RAMポートからの書込アクセスおよびROMポートからの読出アクセスが同じアドレスに対して並行して行なわれる場合においても、データの書込は、ビットI/Oj−I/Onに対して実行され、ビットI/O1−I/Oiは、この書込の影響を受けずに、読出が行なわれる(I/Oブロック単位での書込/読出が行なわれるため)。
なお、異なるアドレスのメモリアレイブロックへ各ポートからアクセスする場合には、各ポートからのアクセス指示に従って対応のメモリアレイブロックにおいてメモリセル選択が実行され、各ポート対応のI/Oブロックに対するアクセスが実行される。
したがって、このメモリマットにおいて複数のI/Oブロックが設けられ、それぞれが異なるビットに対応する場合、各ビットを、ポート指定データに従って、ポートP1(ROMポート)またはポートP2(RAMポート)に結合することができる。これにより、演算処理回路のアドレス空間または不揮発性RAMのアドレス空間が小さい場合においても、実質的にアドレス空間を拡張して、演算命令の実行/処理を行なうことができる。
通常の、メモリシステムにおいてバンク切換によりアドレス領域を切換える構成に代えて、I/Oブロック単位でポート接続制御を行なうことにより、容易に、同じアドレス領域をROM情報格納領域およびRAMデータ格納領域として利用することができる。また、通常のメモリアドレス空間でのバンク切換時においては、一方のバンクのデータしか利用できない欠点が生じるものの、メモリアレイブロック単位でメモリセル選択を実行し、かつI/Oブロック単位でのポート接続制御を行なうことにより、これらのROMポートおよびRAMポートそれぞれに対して割当てられたアドレスのデータ/情報を並行してアクセスすることができ、処理効率が改善される。
[実施の形態4]
図20は、この発明の実施の形態4に従うアクセスコントローラACLiの構成を概略的に示す図である。このアクセスコントローラACLiは、ROM領域およびRAM領域を設定するために、各メモリマットに対応して配置される。本実施の形態4においては、外部のまたは同一チップ上の演算処理回路から、各メモリマットに対してアクセスする際に利用するポートP1およびP2を、それぞれROMポートとして利用するかまたはRAMポートとして利用するかを、ポート属性設定信号ROM/RAM♯1およびROM/RAM♯2により設定する。このポート属性設定信号ROM/RAM♯1およびROM/RAM♯2は、各々、Hレベルに設定されると、対応のポートをRAMポートに設定する。したがって、本実施の形態4においては、1つのポートは、ROMポートまたはRAMポートに固定されず、ROMポートおよびRAMポートに適宜、処理の進行状況または処理内容に応じて柔軟に設定することができる。
図20において、アクセスコントローラACLiは、外部の演算回路から与えられるアクセス指示信号EN♯1(信号ACTに対応)とマット選択信号MAS1iとを受けるAND回路120aと、ポートP2に対するアクセスを要求するアクセス指示信号EN♯2とマット選択信号MAS2iとを受けるAND回路120bと、AND回路120aおよび120bの出力信号を受けてマット活性化信号MTACTを生成するOR回路120cを含む。これらのゲート回路120a−120cにより、対応のメモリマットがアクセス要求されたかの判定が行なわれる。マット選択信号MAS1iおよびMAS2iは、それぞれポートP1およびポートP2に与えられるアドレス信号のうちのマット指示アドレス信号をデコードして生成される信号である(図4参照)。
アクセスコントローラACLiは、さらに、ポートP1に対するポート属性指定信号ROM/RAM♯1とポート1に対する書込モード指示信号WRITE♯1とを受けるAND回路121aと、ポートP2に対するポート属性指定信号ROM/RAM♯2とポートP2からの書込モード指示信号WRITE♯2とを受けるAND回路121bと、AND回路121aおよび121bの出力信号を受けて対応のメモリマットに対する書込指示信号WRITEを生成するOR回路122aと、ポートP1に対するアクセス指示信号EN♯1とポートP1に対する読出モード指示信号READ♯1とを受けるAND回路121cと、アクセス指示信号EN♯2とポートP2に対する読出モード指示信号READ♯2とを受けるAND回路121dと、AND回路121cおよび121dの出力信号を受けて対応のメモリマットに対する読出指示信号READを生成するOR回路122bと、ポートP1のデータDATA♯1とポート属性指定信号ROM/RAM♯1とを受けるAND回路121eと、ポートP2のデータDATA♯2とポート2の属性指定信号ROM/RAM♯2とを受けるAND回路121fとを含む。
AND回路121eおよび121fは、対応のポートP1およびポートP2が、ROMポートに指定されたときには、出力信号レベルをLレベルに固定し、対応のデータDATA♯1およびDATA♯2の内部転送を禁止する。
アクセスコントローラACLiは、さらに、OR回路120cからのマット活性化信号MTACTとポート属性指定信号ROM/RAM♯1とを受けてポート接続制御信号MPW1を生成するAND回路123aと、マット活性化信号MTACTとポート属性指定信号ROM/RAM♯2とを受けてポート接続制御信号MPW2を生成するAND回路123bと、マット活性化信号MTACTと内部読出モード指示信号READとを受けてセンスアンプ活性化信号SAEiおよび読出指示信号REiを生成するAND回路123cと、内部書込モード指示信号WRITEとマット活性化信号MTACTとに従って書込指示信号WEiを生成するAND回路123dを含む。
この図20に示す構成において、ポート属性指定信号ROM/RAM♯1またはROM/RAM♯2がLレベルに設定され、対応のポートがROMポートに指定されると、書込モード指示信号WRITE♯1またはWRITE♯2は、AND回路121aおよび121bにより内部への転送が禁止されて、内部書込モード指示信号WRITEの活性化が停止される。書込データについても、同様、内部への転送は禁止され、ROM領域の格納情報の誤書換が生じるのを防止する。
なお、ポート属性指定信号ROM/RAM♯1およびROM/RAM♯2が、RAMポートを指定するHレベルに設定された場合には、AND回路121aまたは121bにより、ポート対応の書込モード指示信号WRITE♯1およびWRITE♯2が伝達され、内部の書込モード指示信号WRITEが生成される。
ポート特定読出モード指示信号READ♯1およびREAD♯2は、ポート活性化用のアクセス指示信号EN♯1およびEN♯2の活性化に従ってAND回路121cおよび121dを介して伝達され、内部の読出モード指示信号READが生成される。これにより、選択メモリマットにおいて、センスアンプ活性化信号SAEiおよび読出指示信号REiが活性化され、内部のデータ読出が行なわれる。
ポート接続制御信号MPW1は、対応のメモリマットが選択されて、かつポート1属性指定信号ROM/RAM♯1がHレベルのときにHレベルに設定される。同様、ポート接続制御信号MPW2は、マット活性化信号MTACTがHレベルでありかつポート属性指定信号ROM/RAM♯2がHレベルのときに、Hレベルに設定される。したがって、これらのポート接続制御信号MPW1およびMPW2は、Hレベルのときに、対応のライトドライバを、対応のポートのデータバスに結合するようにマルチプレクサ125の動作を制御する。このマルチプレクサ125は、書込データの内部データの転送を制御するだけであり、読出データは、内部から転送されて対応のポートを介して外部演算処理回路に転送される。
図21は、アクセスコントローラACLiに含まれるデータバス接続設定回路62の構成の一例を示す図である。図21に示すデータバス、DB1およびDB2は、書込データおよび読出データをともに転送するように示される。これらのデータバスDB1およびDB2は、書込データバスおよび読出データバスが別々に配置される構成であってもよい。
メモリマットにおいては、センスアンプ55およびライトドライバ56が設けられる。マルチプレクサ125は、ポート接続制御信号MPW1がHレベルのとき導通し、ライトドライバ56をポート1データバスDB1に結合するトランスファーゲート125aと、ポート接続制御信号MPW2の活性化時導通し、ライトドライバ56をポート2データバスDB2に接続するトランスミッションゲート125bを含む。
ポート属性指定信号ROM/RAM♯1およびROM/RAM♯2により、ポートP1およびP2それぞれに対応するデータバスDB1およびDB2がRAM領域に設定された場合には、ライトドライバ56は、対応のデータバスに結合され、データの書込を行なうことができる。
一方、センスアンプ55に対して設けられる読出接続設定回路127は、マット選択信号MAS2iに従って導通し、導通時センスアンプ55をデータバスDB2に接続するトランスファーゲート127aと、メモリマット選択信号MAS1iに従ってセンスアンプ55をデータバスDB1に接続するスイッチングゲート127bを含む。
このマット選択信号MAS1iおよびMAS2iは、対応のメモリマットが選択されたときに活性化される。また、ポートP1およびP2がそれぞれ対応のメモリマットをアクセスするときに、センスアンプ55の読出データが、対応のポートに接続するデータバスDB1またはDB2に接続される。読出接続設定回路127においては、マット選択信号MAS1iおよびMAS2iを利用しており、対応のメモリマットがROM領域およびRAM領域のいずれかに設定された状態で、ポートP1およびP2がROMポートおよびRAMポートのいずれに設定されても、データの読出は行なうことができる。
したがって、図20および図21に示すアクセスコントローラACLiの構成を利用することにより、ポートP1およびP2がROMポートおよびRAMポートのいずれに設定されても、ROM領域に指定されたメモリマットに対する書込をメモリマット単位で禁止することができ、データ破壊を確実に防止することができる。
[変更例]
図22は、この発明の実施の形態4に従う書込禁止回路の変更例の構成を示す図である。図22においては、メモリマットMAT1−MATnに対し共通にコントロールバスCTB1およびCTB2とデータバスDB1およびDB2とアドレスバスADB1およびADB2が設けられる。ポートP1に対してポート1入力回路130が設けられ、ポートP2に対してポート2入力回路132が設けられる。ポート1入力回路130は、ポート1読出モード指示信号READ♯1をバッファ処理して内部ポート読出モード指示信号READ1を生成するバッファ回路130aと、ポート属性指定信号ROM/RAM♯1とポート1書込モード指示信号WRITE♯1とを受けて、内部ポート1書込モード指示信号WRITE1を生成するAND回路130bと、ポート属性指定信号ROM/RAM♯1と書込データDATA♯1とを受けて内部書込データDT1を生成するAND回路130cと、外部からのアドレス信号ADD♯1をバッファ処理してポート1内部アドレス信号ADD1を生成してアドレスバスADB1上に伝達するバッファ回路130dを含む。
ポート2入力回路132は、ポート2読出モード指示信号READ♯2をバッファ処理して内部ポート2読出モード指示信号READ2を生成するバッファ回路132aと、ポート属性指定信号ROM/RAM♯2とポート2書込モード指示信号WRITE♯2とを受けて、内部ポート1書込モード指定信号WRITE2を生成するAND回路132bと、ポート属性指定信号ROM/RAM♯2と書込データDATA♯2とを受けて内部書込データDT2を生成するAND回路132cと、アドレス信号ADD♯2をバッファ処理して内部アドレス信号ADD2を生成するバッファ回路132dを含む。
内部ポート1書込モード指示信号WRITE1および内部ポート1読出モード指定信号READ1は、ポート1のコントロールバスCTB1上の制御信号線を伝達される。ポート2の内部読出モード指示信号READ2および内部書込モード指示指定信号WRITE2は、ポートP2のコントロールバスCTB2の制御信号線上を伝達される。
この図22に示す構成の場合、各ポート単位で、内部書込の禁止/許可をポート属性指定信号ROM/RAM♯1およびROM/RAM♯2に従って設定しており、各メモリマットに、ROM領域情報書換禁止のための構成を設ける必要がなく、回路構成が簡略化される(センスアンプおよびライトドライバのバス接続制御をマット選択信号に従って実行することできる)。
[変更例2]
図23は、この発明の実施の形態4の変更例の構成を概略的に示す図である。図23においては、ポートP1およびポートP2に対し、モードレジスタ回路140aおよび140bが設けられる。モードレジスタ回路140aは、ポートP1からの書込モード指示信号WRITE♯1、アクセス指示信号EN♯1およびアドレス信号ADD♯1の特定のアドレスビットに従って、ポート属性指定信号FROM/RAM♯1を生成する。同様、モードレジスタ回路140bは、ポートP2からの書込モード指示信号WRITE♯2とアクセス指示信号EN♯2とアドレス信号ADD♯2とに従って、ポートP2の属性指定信号FROM/RAM♯2を生成する。
これらのモードレジスタ回路140aおよび140bは、制御信号WRITE♯1およびEN♯1のタイミング関係およびアドレス信号ADD♯1の特定のアドレスビットに従ってポート属性指定信号FROM/RAM♯1を生成しかつラッチする。モードレジスタ回路140bも、同様、書込モード指示信号WRITE♯2およびアクセス指示信号EN♯2の特定のタイミング関係に従ってアドレス信号ADD♯2の特定のビットを取込み、取り込んだアドレス信号ビットの値に応じてポート属性指定信号FROM/RAM♯2を生成しかつラッチする。
モードレジスタ回路140aおよび140bが、それぞれメモリマットに対応して配置される場合には、メモリマットをアドレス信号ADD♯1およびADD♯2により特定することにより、メモリマット個々に、モードレジスタ回路140aおよび140bにおいて、ポート属性指定信号FROM/RAM♯1およびFROM/RAM♯2を生成することができる。
また、これらのモードレジスタ回路140aおよび140bは、メモリマットに対して共通に配置されてもよい。例えばバーストモードのように各ポートを連続してRAMポートまたはROMポートとして利用する場合、連続サイクルの最初にポート属性の設定を行い、設定されたポート属性に従ってデータアクセスを行う。
この場合、各外部の演算処理回路からはポート属性指定信号は与えられず、不揮発性RAM内部で、各ポートの属性を指定する信号FROM/RAM♯1およびFROM/RAM♯2に従って、ポート属性の判定が行なわれ、アクセス制御が実行される。
モードレジスタ回路140aおよび140bからのポート属性指定信号FROM/RAM♯1およびFROM/RAM♯2が、図20および図22に示すポート属性指定信号ROM/RAM♯1およびROM/RAM♯2に代えて、各メモリマットにおいて用いられる。
以上のように、この発明の実施の形態4に従えば、ポートをROMポートおよびRAMポート両者に設定可能とし、ROMポート指定時において、確実にポートのデータの書込を禁止しており、ポートへのアクセスの自由度が改善される。
なお、メモリマットの構成としては、先の実施の形態1から3のいずれが用いられてもよい。
[実施の形態5]
図24は、この発明の実施の形態5に従う演算処理システムの構成を概略的に示す図である。この演算処理システムにおいては、演算処理回路200および不揮発性RAMは、ポートP1およびP2を介して情報を双方向に転送することができる。ポートP1およびP2をROM領域として利用するかRAM領域として指定するかは、ポート属性指定信号ROM/RAM♯1およびROM/RAM♯2により指定される。したがって、不揮発性RAM203は、先の実施の形態1から4の構成を有しており、特定のポートP1およびP2に対し並行にアクセスすることができ、命令および演算処理データを並列に取出すのみならず、ポートP1を、ROMポートに代えてRAMポートとして利用して必要なデータを並行して転送することができる。
図25は、この発明の実施の形態5における演算処理システムにおけるデータアクセスシーケンスを示す図である。この演算処理システムは、クロック信号に従ってその動作サイクルが規定され、図25において各サイクルは、クロック信号により指定されるサイクルを示す。
サイクル♯1において、ポートP1がROMポートに設定され、また、ポートP2がRAMポートにそれぞれ設定される(ポート属性指定信号ROM/RAM♯1およびROM/RAM♯2により設定される)。このサイクル♯1において、ポートP1においては、不揮発性RAM203のROM領域のデータ/情報の読出が行なわれ、一方、ポートP2においては、RAM領域のデータの読出または書込が行なわれる。
サイクル♯2においては、ポートP1をROM領域に設定してデータ/情報の読出が行なわれる。ポートP2に対してはアクセスは行なわれない(NOP状態)。したがって、このサイクル♯2においては、不揮発性RAM203のROM領域の命令または制御データが読出されて、演算処理回路200において処理が実行される。
クロックサイクル♯3において、ポートP1およびP2がともにROM領域に指定される。この場合、メモリマットにおいては、センスアンプは、ポートP1およびP2に結合されるデータバスDB1およびDB2(図21参照)いずれにも接続することができるため、不揮発性RAM203におけるメモリマットの任意のROM領域に設定されたメモリマットからデータの読出を行なうことができる。不揮発性RAM203のROM領域から互いに異なるアドレスの命令/制御データを並列に読出して処理を行なうことができる。
クロックサイクル♯4においては、ポートP1に対してはアクセスは行なわれない(NOP状態)。一方、ポートP2は、RAMポートに設定され、データの読出/書込が実行される。
クロックサイクル♯5においては、ポートP1およびP2がともにRAMポートに設定され、この不揮発性RAM203のRAM領域における異なるアドレスのデータの読出/書込が実行される。メモリマットにおいては、ライトドライバがポートP1およびP2に対して配置されるデータバスDB1およびDB2に対して接続することができるため(図21参照)、不揮発性RAM203内のRAM領域の異なるメモリマットに対してデータのアクセス(読出/書込)を行うことができる。
クロックサイクル♯6においては、必要な処理が完了し、または処理の終了を待ち合わせるために、ポートP1およびP2は、アクセスは行なわれない(NOP状態)。
クロックサイクル♯3および♯5に示すように、ポートP1およびP2はともにROM領域ポートまたはRAMポートに設定して、命令/データのアクセスを行なうことができる。このポートの指定は、演算処理回路200における実行命令により設定される。したがって、たとえば2項演算時に2つのソースデータを、並行して不揮発性RAMからポートP1およびP2から読出すことができ、また、2つの異なる命令をROMポートから並行して読出すことができる。また、たとえば演算処理時において、命令サイズまたはデータサイズが異なり、倍語長データまたは倍語長命令を処理する場合においても、単位長命令または単位長データの並列読出を行なって倍語長命令の実行倍語長データの転送を行うことができる(ただし、倍語長命令(データ)の上位命令(データ)および下位命令(データ)はそれぞれ異なるメモリマットに格納することが必要となる)。
したがって、不揮発性RAM203は、ROMおよびRAMいずれの用途においても、その性能を損なうことなく使用することができ、ポート並列アクセスにより柔軟なメモリシステムを構築することができ、演算処理回路200の処理効率を改善することができる。
なお、ポートの属性を設定する際には、演算処理回路200の実行命令に応じて、これらのポート属性指定信号ROM/RAM♯1およびROM/RAM♯2のレベルが適宜設定されればよい。演算処理回路200において、マイクロプロセッサの場合、命令デコーダからのデコード命令(マイクロ命令)に基づいて、内部のアクセス制御信号発生部において、このポート属性制御信号を生成することができる。
[変更例]
図26は、この発明の実施の形態5に従う演算処理回路200の構成を概略的に示す図である。この図26において、演算処理回路200は、演算処理を実行するプロセッサ(またはマイクロコントローラ)210と、不揮発性RAMにおけるROM領域アドレスおよびRAM領域アドレスを格納するアドレステーブル220を含む。このアドレステーブル220は、ROM領域のアドレスA♯0−A♯Mを格納するROMアドレス格納領域250aと、RAM領域のアドレスを格納するアドレス格納領域250bを含む。
プロセッサ(またはマイクロコントローラ)210は、不揮発性RAMへのアクセス時、アドレスマップ220を参照してポートを決定する。すなわち、ポートP1およびポートP2は、優先的に、それぞれROM領域アドレスおよびRAM領域アドレスに割当てられる。プロセッサ(またはマイクロコントローラ)210が、また、アクセス時、ポートP1およびP2が両者がともに利用されているかをモニタする。ポートP1またはP2が不使用状態の場合、プロセッサ(またはマイクロコントローラ)210は、アドレスマップ220を参照して、アドレス領域250aおよび250bのアドレスを参照して、空きポートおよび対象ポートに対しポート属性指定信号ROM/RAM♯1およびROM/RAM♯2を設定して、同一属性のデータ(または命令)をプリフェッチする。
予め実行命令においてアクセスポートを設定する必要がなく、プログラム設計の負荷が軽減される。また処理状態に応じてダイナミックにアクセスするポートの属性を設定することができ、処理状況に応じて効率的なデータ/情報のアクセスを行なうことができる。
以上のように、この発明の実施の形態5に従えば、不揮発性RAMの2つのポートを、ROMポートおよびRAMポートに各サイクルごとに設定可能とするように構成しており、ROM領域およびRAM領域のデータを効率的にアクセスすることができ、演算処理システムの処理効率を改善することができる。
[実施の形態6]
図27は、この発明の実施の形態6に従う演算処理システム230の構成を概略的に示す図である。図23において、この演算処理システム230は、1チップのマイクロプロセッサまたはマイクロコントローラであり、ALU(算術演算処理回路)またはCPU(中央演算処理装置)などで実現される演算処理回路200と実施の形態1から5において説明した内部構造を有する不揮発性RAM203を含む。
演算処理回路200は、(命令)バス214を介して不揮発性RAMのポートP1に結合され、また(データ)バス216を介して不揮発性RAM203のポートP2に結合される。バス216は、バスインターフェイス回路(バスI/F)205に結合される。バスI/F205は、端子212を介して外部の周辺機器(I/O装置)235に結合される。
周辺機器235は、ROMライタまたはキーボードなどの入力装置である。I/O装置235を用いて、不揮発性RAM203のROM領域およびRAM領域の割当を設定する。ポート設定時において、I/O装置235は、不揮発性RAM203のROM領域およびRAM領域の割当てを実行する場合、ポート設定信号PSをアサートする(Hレベルに設定する)。このポート設定信号PSのアサートに応答して、演算処理回路200または外部のI/O装置235が、不揮発性RAM203のポートおよび/またはメモリマットの属性設定処理を実行する。
図28は、図27に示す演算処理システム230における不揮発性RAMのROM領域およびRAM領域割当て時の処理シーケンスを示すフロー図である。以下、図28を参照して、図27に示す演算処理システムにおけるメモリマット属性割当て処理シーケンスについて説明する。
まず、ポート設定モードが指定されたかの判定が行なわれる(ステップS10)。この判定は、ポート設定信号PSがHレベルにアサートされたかを見ることにより、演算処理回路200において行なわれる。
ポート設定信号PSがアサートされると、演算処理回路200は、ポート設定モードが設定されたとして、ポート設定処理モードに入る(ステップS11)。
次に、外部のI/O装置235が、不揮発性RAM203におけるROM領域の容量およびRAM領域の容量を特定する情報を入力する(ステップS12)。この特定情報は、たとえば、ROM領域を構成するメモリマットの数およびRAM領域を構成するメモリマットの数をそれぞれ入力してもよい。また、各メモリマットの記憶容量は固定されているため、単に、I/O装置235が、ROM領域の容量値およびRAM領域の容量値の情報を、処理画面上のウインドウに表示されるダイアログボックスに入力してもよい。
演算処理回路200は、ポート設定入力情報に従って、不揮発性RAM203におけるメモリマットのROM領域およびRAM領域の設定を行なう。このとき、不揮発性RAM203において、入力されたポート容量特定情報では利用されないメモリマットが存在する場合、その領域は、ROM領域およびRAM領域のいずれにも設定されない。この未割当て領域は、未使用領域として保存されるか、または、外部に配置されるハードディスクまたはマスクROMなどの低速の記憶装置の記憶情報を格納するシャドウRAM領域として使用される。シャドウRAM領域は、通常、ユーザが処理実行時にアドレス指定して利用することはない。
このステップS13における容量設定の前に、必要なOS(オペレティングシステム;基本ソフト)、システム立ち上げ用のブートプログラム、および固定制御データなどの書込が完了していてもよく、また、このステップS13の後に、OS、ブートプログラムおよび制御データ等の書込が実行されてもよい。
ROM領域に必要な情報が書込まれた後に、ROM領域に設定されるメモリマットへの書込を禁止する処理が行なわれる(ステップS14)。この場合、先の実施の形態1において示される書込禁止ビットの設定が行なわれてもよく、また先の実施の形態4に示すようにレジスタ回路において、ROM/RAM属性設定情報が格納されてもよい。
次いで、不揮発性RAM内の全メモリマットに対するポート(ROM領域/RAM領域)の設定が行なわれたかの判定が行なわれ、また、ROM領域の全メモリマットに対して書込禁止が設定されたかの判定が行なわれる。(ステップS15)。
全メモリマットについてのRAM/ROM領域(ポート)の設定およびROM領域(ポート)の書込禁止の設定が完了すると、ポート設定モードが終了し、外部のI/O装置235または演算処理回路235が、ポート設定信号PSをデアサートする(ステップS16)。このポート設定信号PSは、単に演算処理回路200からの処理完了表示により、I/O装置235で、表示画面上で完了ボタンをクリックしてデアサートしてもよく、また、ROMライタなどの書込装置の場合、演算処理回路200からの完了指示信号に従ってROMライタがポート設定信号PSをLレベルに設定してもよい。
この一連の処理により、演算処理システム230において、不揮発性RAM203のROM領域およびRAM領域の選択的な設定およびROM領域のメモリマットの書込禁止を設定することができる。
図29は、この不揮発性RAM203のポート設定モード完了後の内部状態を概略的に示す図である。メモリマットMAT♯0−MAT♯nが不揮発性RAM内に設けられ、各メモリマットMAT♯0−MAT♯nにおいて、ROM/RAM属性指示ビットA/O♯0−A/O♯nおよび書込禁止ビットLKB♯1−LKB♯nがそれぞれ設定される。ROM/RAM(ポート)属性指定ビット格納領域PRRおよび書込禁止ビット格納領域LKRは、先の実施の形態1において示した構成または実施の形態3等において示した構成を利用することができる。これらの領域PRRおよびLKRに設定されたビットの状態に応じて、メモリマットMAT♯0−MAT♯nは、それぞれ、ポートP1に対するデータバスDB1とポートP2に対するデータバスDB2に選択的に結合される。この場合、データバスDB1はROM領域として設定され、一方方向にデータが転送される構成であってもよく、また、先の実施の形態5に示すように、ポートP1およびポートP2両者を、それぞれ、双方向のデータバスに結合し、これらのデータバスDB1およびDB2が双方向データバスとして利用され、メモリマットMAT♯0−MAT♯nが、データバスDB1およびDB2のいずれにも接続される構成が用いられてもよい。
[変更例]
図30は、この発明の実施の形態6に従う不揮発性RAMの変更例の構成を概略的に示す図である。図30において、不揮発性RAM203は、ポート設定モード完了後、ROM領域203aおよびRAM領域203bに割当てられたメモリマットを含む。このROM領域203aの特定のアドレス位置に、ROMアドレス領域を指定するアドレス情報ROMAD♯が格納される。ROM領域203aおよびROM領域203bは共に、ポートバスPBD1およびPBD2に結合される。ポートバスPBD1は、ポートP1に対するバスであり、コントロール信号、アドレスおよびデータを転送する。ポートバスPBD2は、ポートP2に対するバスであり、同様、アドレスバス、コントロールバスおよびデータバスを含む。
ポートバスPBD1およびPBD2上のアドレスAD♯1およびAD♯2を、ROMアドレスレジスタ244に格納されたアドレスと比較し、与えられたアドレス信号がROM領域203aを指定している場合には、書込禁止信号WLKBをアサートし、このROM領域203aへの書込を禁止する。
ROMアドレスレジスタ244においては、システム立上げ時において、ROM領域の特定のアドレス領域242に格納されるROM領域アドレス指定情報ROMAD♯を読出して格納する。書込禁止回路240は、比較回路で構成され、比較結果に従って書込禁止信号WLKBを選択的にアサートする。
この図30に示す構成の場合、ポートP1およびP2がいずれもROMポートおよびRAMポートとして利用されてもよく、この場合でも、メモリマットの属性はROM領域またはRAM領域に設定されており、ROM領域203a全体に対し、書込禁止回路240により書込禁止信号WLKBを用いることにより、ROM領域203aに対する書込を禁止することができる。
この書込禁止回路240は、アドレスROMアドレスレジスタ244に格納されたアドレス情報ROMAD♯の範囲内のアドレスへのアクセスが指定されているとき、データ読出/書込モードに係らず、書込禁止信号WLKBをアサートする。これに代えて、書込モードが指定されたときに書込禁止回路240が比較動作および比較結果に基づく禁止信号WLKBのアサートを行なう構成が用いられてもよい。
ROM領域203aにおける書込禁止を実現する構成は、先の実施の形態4において示された構成が用いられてもよい。書込禁止信号WLKBにより、ROM領域203aに含まれるメモリマットを構成するメモリセルアレイの書込に関連する回路を非活性状態に維持する構成が用いられればよい。
図30に示す構成においては、ROM領域203a全体に対し書込を禁止することができ、この領域のサイズ(アドレス空間のサイズ)が変更されても、ROM領域203aの特定の領域(アドレス)242に格納するROMアドレス指定情報ROMAD♯を設定ROM容量に応じて書替えることにより、このROMサイズの変更に対して容易に対応することができる。
以上のように、この発明の実施の形態6に従えば、不揮発性RAMの初期設定時、各メモリマットについて、ROM領域またはRAM領域の指定を行なうとともに、ROM領域に指定された領域には、書込禁止ビットを設定して書込を禁止しており、確実に不揮発性RAMの必要とされるROM領域およびRAM領域のサイズに応じた初期設定を行なうことができる。
[実施の形態7]
図31は、この発明の実施の形態7に従う演算処理システムの構成を概略的に示す図である。図31において、この演算処理システム(半導体集積回路装置)においては、演算処理回路300と不揮発性RAM303の間に、命令を転送するポート1バスPDB1およびデータを転送するポート2データバスPDB2に加えて、さらに、ブート情報を転送するためのブートバスBTBSが設けられる。不揮発性RAM303は、このブート情報を格納するブート領域310と、命令/制御データを格納する命令領域311と、データを記憶するデータ領域312を含む。ブート領域310および命令領域311は、ROMとして用いられ、その記憶内容の書替えが禁止される。データ領域312については、格納されるデータは書替え可能である。
このブート領域310と、命令領域311およびデータ領域312においては、これまでに説明した実施の形態と同様、メモリマットMAT♯が配置されており、これらの領域310、311および312に含まれるメモリマットMAT♯の数は、不揮発性RAM303の記憶容量内で変更可能である。
演算処理回路300は、プロセッサまたはマイクロコントローラで構成される。ブート領域310は、演算処理回路300および演算処理システムを起動するためのプログラム、不揮発性RAMまたは演算処理回路300などの内部電圧チューニング情報、および不揮発性RAMのメモリ冗長置換の不良救済情報および、ユーザが起動時に必要とするプログラムなどを記憶する領域である。ブート領域310に格納されるブート情報は、このシステム立上げ時のブート動作時に必要とされる情報を示す。命令領域311には、OSおよび基本ソフトウェアなどのプログラム命令およびプログラム実行時に必要とされる固定的にその値が設定される制御データなどを含む情報が格納される。
データ領域312には、一時的に利用されるアプリケーションソフト、アプリケーションデータおよび命令実行時の中間データなどが格納される。
命令領域311およびデータ領域312は、それぞれ、ポート1データバスPDB1およびポート2データバスPDB2に結合される。命令領域311およびデータ領域312のポート接続構成としては、先の実施の形態4または5に示すように、ポート1データバスPDB1およびポート2データバスPDB2が、命令領域311およびデータ領域312両者により利用される構成が用いられてもよい。
ブートバスBTBSは、通常、ブートROMなどが接続されるバスであり、演算処理回路300においては、このような低速のブートROMに接続するポートが一般に設けられる。このブートバスBTBSを、不揮発性RAM303のブート領域310に結合する。
図32は、図31に示す演算処理装置のブート情報および命令書込シーケンス(初期設定シーケンス)の一例を示すフロー図である。以下、図32を参照して、図31に示す演算処理装置の初期情報設定シーケンスについて説明する。
まず、ポート設定モードを、ポート設定信号PS(図27参照)をアサートすることにより設定する(ステップS20)。
次いで、バスI/F305を介してブート、命令、およびデータの各領域310、311および312の容量を指定する情報を入力する(ステップS21)。演算処理回路300においては、この入力された各領域の容量に従って領域310、311および312それぞれに割当てられるアドレス領域を設定するとともに、メモリマットを各領域310、311および312に割当てる(ステップS22)。各メモリマットの属性の割当てに従って演算処理回路300が、マット属性情報を各メモリマットMAT♯に与え、各メモリマットの接続経路を設定する(ステップS22)。これにより、ポート属性が固定される場合には、ブート領域311がブートバスBTSBSに結合され、命令領域311が、ポート1バス(命令バス)PDB1に結合され、データ領域312が、ポート2バス(データバス)PDB2に結合される。
この状態で、外部から、バスI/F305を介してブート情報をブート領域310のメモリマットMAT♯に書込み、また命令領域311にプログラム命令を書込む(ステップS23)。このブート情報の書込時において、バスI/F305に含まれるブート情報入力ポートにより、バスI/F305は、ブートバスBTBSにブート情報を転送して、このブート領域310のメモリマットに対するブート情報の書込が外部回路の制御の下に行なわれてもよい。また、このブート情報の書込時、演算処理回路300が、ブートバスBTBSを駆動して、演算処理回路300の制御の下にブート領域310に対するブート情報の書込を行なってもよい。
また、命令領域311の各メモリマットに対し、必要とされる命令の書込が実行される。この場合、ポート属性が固定される場合には、ポートとメモリマットとの接続が設定されており、命令領域311が接続されるポート、すなわちポート1バスPDB1を介して命令の書込が行なわれる。ポート属性が、処理実行時にダイナミックに切替えられる場合においては、ポートP1およびポートP2のバスのいずれが命令書込に対して用いられてもよいが、好ましくは、ポート固定用途との互換性から、ポート1データバスPDB1を利用して命令の書込を実行する。
ステップS24におけるブート情報および命令の書込が完了すると、ブート書込モードが完了し、ブート書込モードイグディットが実行される(ステップS25)。ブート書込モードイグディット後は、ブートバスBTBSを介してのブート領域310へのデータの書込が禁止される。
次いで、ブート領域310および命令領域311へのデータの書込を禁止する処理が実行される(ステップS26)。この命令領域311へのデータ書込禁止に対しては、先の実施の形態1から4において説明した手法を用いることができる。ブート領域310は、ブートバスBTBSにその接続経路が設定されており、ブート領域310の書込禁止は、ブートバスBTBSを用いて実行される。また、ポートP1用のバスPDB1およびポートP2用のバスPDB2各々について、不揮発性RAM303においては、内部のデータバスに加えてアドレスバスおよびコントロールバスが、不揮発性RAM内のメモリマットMAT♯すべてに対して共通に配設される。したがって、命令領域311のメモリマットの書込禁止ビットの格納は、これらのポートP1またはポートP2用の内部の制御バスおよびアドレスバスを用いて行なわれてもよい。また、このブート情報および命令の書込を行なうステップS24において、各ブート情報および命令の書込完了後、対応のメモリマットにそれぞれ、書込禁止ビットを書込む構成が用いられてもよい。また、実施の形態6に示すように、命令領域311全体に対して書込を禁止する構成が用いられてもよい。
また、これに代えて、以下の処理により書込禁止が設定されてもよい。ステップS22において、単に演算処理回路300において、各メモリマットとポートの属性割当てを設定し、ブート情報および命令の書込を、ポートP1またはポートP2を介して実行する。このブート情報および命令の書込完了後に、各メモリマットとポートの接続経路を設定し、次いで、ブート領域310および命令領域311への書込を禁止する。この場合、各メモリマットに対し書込を禁止するビットを対応のメモリセルアレイ内に書込み設定することができる(特定のバスを介して)。この後、ステップS27においてポート設定信号をデアサートして一連のポート設定処理を完了する。
ブートバスBTBSという特別のアクセスポートを設けておくことにより、ブートROMを用いた場合において低速バスのローカルブートバスを用いてブート情報のロードおよび実行を行なう構成に比べて、システム時、高速でブートバスBTBSを介してブート情報を読込んでブート処理を実行することができる。
図33は、図31に示す不揮発性RAM303の内部構成を概略的に示す図である。不揮発性RAM303は、メモリマットMAT♯1−MAT♯nを含み、これらのメモリマットMAT♯1−MAT♯nそれぞれに対応してアクセスコントローラACL1−ACLnが設けられる。
アクセスコントローラACL1は、ポート接続制御信号MP11、MP21およびMPB1を受けるバス接続スイッチTG10、TG11およびTG12を含む。これらのバス接続スイッチTG10、TG11およびTG12を介して、メモリマットMAT♯1が、ポートP1に対する内部バスPBD1、ポートP2に対する内部バスPBD2およびブートバスに対応する内部バスPBBに選択的にそれぞれ結合される。
アクセスコントローラACLnも同様、メモリマットMAT♯nに対するポート接続制御信号MP1n、MP2nおよびMPBnに従って選択的に導通するバス接続スイッチTG11およびTG12を含む。これらのアクセスコントローラACLnのバス接続スイッチTG10、TG11およびTG12は、導通時、メモリマットMAT♯nを、内部バスPBD1、PBD2およびPBBに結合する。
これらのバス接続スイッチTG10,TG11およびTG12は、対応のメモリマットMAT♯に含まれるセンスアンプおよびライトドライバを、動作モードに応じて指定された内部バスに結合する。内部バスPBD1、PBD2およびPBBは、アドレスバス、コントロールバスおよびデータバスを含む。データバスは、読出データを転送する読出デタバスおよび書込データを転送する書込データバスが別々に設けられていてもよく、また、データバスは、読出データおよび書込データ両者を転送するバスであってもよい。
[変更例]
図34は、この発明の実施の形態7の変更例の不揮発性RAMの構成を概略的に示す図である。図34においては、不揮発性RAM303は、命令領域315と、データ領域312とを含む。命令領域315には、ブート情報を格納するブート用メモリマットMAT♯Bと、命令(制御データを含む)を格納するメモリマットMAT♯Iが設けられ、ROM領域として利用される。
データ領域312において、データ格納用のメモリマットMAT♯Dが設けられ、このデータ領域312は、RAM領域として利用される。
不揮発性RAM303の内部構成は、これまでに説明した実施の形態1から4に示される構成と同様であり、これらの領域315および312のサイズは可変であり、また、ブート情報格納メモリマットMAT♯Bの数、命令格納メモリマットMAT♯Iおよびデータ格納用メモリマットMAT♯Dの数も可変である。また、ROM領域315のメモリマットに対しては書込が禁止される。
演算処理回路300と不揮発性RAM303の間には、ポートP1に対するバスPDB1とポートP2に対するバスPDB2が設けられる。ブートバスは設けられない。したがって、ブート情報は、バスPDB1を介して演算処理回路300に転送される。
この図34に示す構成の場合、ブート情報格納領域が、命令を格納する領域と同じ領域に配置される。不揮発性RAMは、例えばMRAMであり、高速メモリであり、命令メモリおよびブートメモリ両者の速度は同じ高速であり、ブートバスを別に設ける必要がなく、バスの構成が簡略化される。
なお、図30に示す構成において、バスインターフェイス回路(I/F)305および外部端子308が設けられ、このバスI/F305を介してブート情報および命令の書込を実行する。この場合、書込シーケンスとして、先の実施の形態6における図28に示す処理シーケンスを用いて、ブート情報の書込を行なうことができる。
なお、図34に示す構成においては、バスPDB1が命令を転送する命令バスとして利用され、バスPDB2が、RAM領域へのアクセスを行なうためのバスとして利用される。しかしながら、これらのバスPDB1およびPDB2各々が、ROM領域の情報およびRAM領域のデータ両者を転送するように構成されてもよい。
以上のように、この発明の実施の形態7に従えば、命令領域において、ブート情報を格納する領域を確保しており、高速でブート情報の転送を行なうことができ、システム立上げを高速化することができる。また、ブート情報を、専用のブートバスを用いて転送する場合、ブートROMを用いて、ローカルブートバスに接続するプロセッサまたはマイクロコントローラなどに対しても、このポートの構成を変更することなく高速でブート情報を転送するメモリシステムを実現することができる。
[実施の形態8]
図35は、この発明の実施の形態8に従う演算処理装置400の構成を概略的に示す図である。図35において、演算処理装置400は、演算処理回路402と、この演算処理回路402の必要な情報を格納する不揮発性RAM404を含む。演算処理装置400は、好ましくは、半導体集積回路装置で実現され、1つの半導体チップ上に集積化される。
不揮発性RAM404は、2つのポート411aおよび411bと、ポート411aおよび411bそれぞれに対応して設けられるROM領域410aおよびRAM領域410bを含むメモリ領域410とで構成される。ROM領域410aおよびRAM領域410bは、メモリマットを含み、その数は、変更可能である。ポート411aおよび411bは、それぞれROM情報転送ポートとして用い、ポート411bは、ROM情報を転送するROMポートとして用いられる。したがってこれらのポート411aおよび411bは、それぞれ情報/信号を転送する機能を備える。不揮発性RAM404の内部構成は、実施の形態1から4および7において説明した不揮発性RAMと同様の構成を備える。
演算処理回路402は、シングルポートプロセッサまたはマイクロコントローラであり、1つのポートPRTを有する。演算処理回路402および不揮発性RAM404の間に、ポート切換回路406が設けられる。このポート切換回路406は、演算処理回路402からのポート設定信号PSSに従って、演算処理回路のポートPRTを、不揮発性RAMのポート411aおよび411bに択一的に接続する。
演算処理装置400においては、演算処理回路402、不揮発性RAM404およびポート切換回路406は、好ましくは、同じ半導体チップ上に形成される。したがって、不揮発性RAM404が、ポート切換回路406を含むようにチップ上の配置が行なわれてもよい。
図36は、図35に示す演算処理装置のアクセスシーケンスの一例を示す図である。この図36においても、各サイクルは、演算処理回路402へ与えられるクロック信号(図示せず)に従って規定される。
不揮発性RAM404におけるメモリ領域410の構成は、先の実施の形態1から4および7のいずれの構成が用いられてもよい。
サイクル♯1において、ROM領域410aの情報のアクセス(読出)が行なわれる。この場合、演算処理回路402は、ポート指定信号PSSにより、ポート411aを指定する。これにより、ポート切換回路406が、ポートPRTをポート411aに結合し、ROM領域410aのデータが読出される。
サイクル♯2において、RAM領域410へのアクセスが指定される。この場合、ポート指定信号PSSにより、ポート切換回路406が、ポートPRTをRAMポート411bに結合する。RAM領域410bに対してデータの書込/読出が実行される。
サイクル♯3において、再び、ROM領域410aへのアクセスがポート指定信号PSにより指定される。これにより、ポートPRTが、ROMポート411aに結合され、ROM領域410aの情報が読出される。
サイクル♯4においては、処理は実行されない(NOP状態)。
サイクル♯5および♯6において、ポート指定信号PSSによりRAM領域410bが指定され、各サイクルにおいて、必要なデータのアクセス(リードまたはライト)が実行される。
ポート指定信号PSSは、先の実施の形態3におけるポート属性指定信号ROM/RAM♯と同様の信号であり、処理内容に従って、命令またはデータをアクセスするとき、演算処理回路402が、内部のアドレステーブルを参照して、アクセス要求アドレスの領域または命令/データを特定するアクセス要求対象の属性を示すフラグをモニタして、ポート設定信号を設定する。
図35に示すように、シングルポートの演算処理回路402が、ROMポート411aおよび411bを有する不揮発性RAM404へ、切換回路406によりポートを設定して逐次アクセスすることにより、演算処理回路402におけるバス構成を簡略化することができ、応じて演算処理回路402に対するバスのレイアウト面積を低減することができ、応じて演算処理装置400のチップ面積を低減することができる。
なお、この演算処理装置400は、同一の半導体チップではなく、プリント基板上に配置されてもよい。
[実施の形態9]
図37は、この発明の実施の形態9に従う演算処理装置の全体の構成を概略的に示す図である。図37において、演算処理装置450は、2ポートPRT1およびPRT2を有する演算処理回路460と、シングルポート471を有する不揮発性RAM470と、演算処理回路460および不揮発性RAMの間の接続ポートの切換を行なうポート切換回路475を含む。
不揮発性RAM470は、メモリ領域410が、ROM領域410aおよびRAM領域410bを含む。これらのROM領域410aおよびRAM領域410bのサイズが変更可能とされるのは、先の実施の形態1から4および7において説明した構成と同じである。
ポート切換回路475は、演算処理回路460からのポート指定信号に従って、演算処理回路のポートPRT1およびPRT2を択一的ににメモリポート471に結合する。このポート設定信号PSSは、単に、ポートPRT1およびPRT2を指定する信号である。
図38は、この図37に示す演算処理装置におけるアクセスシーケンスの一例を示す図である。この図38においても、各サイクルは、演算処理回路460の動作サイクルを規定するクロック信号により規定される。
サイクル♯1において、ポートPRT1からのリードアクセスが行なわれ、また、このサイクル内でポートPRT2がRAMアクセスを要求する。ポート切換回路475は、クロック信号の前半および後半に分けて、接続経路を切換え、メモリポート471へのアクセス経路を確定する。
図38に示す処理シーケンスにおいては、サイクルの前半においてポートPRT1が選択され、サイクルの後半においてポートPRT2が選択される状態を一例として示す。したがって、不揮発性RAM450においては、最初のサイクルでROM領域410aへアクセスして、指定されたROM情報の読出を行ない、後半のサイクルにおいて、RAM領域410bへアクセスして、RAMデータの読出または書込を実行する。
サイクル♯2において、ポートPRT1からROMアクセスが指定され、ポートPRT2は、アクセスを要求しない(NOP状態)。ポート切換回路475は、前半においてポートPRT1を選択し、不揮発性RAM70においてROM領域410aへのアクセスが行なわれてROMデータ(情報)の読出が行なわれ、次の後半のサイクルにおいて、不揮発性RAM470へのアクセスは停止される。
サイクル♯3において、ポートPRT1からROM領域へのアクセスが指定され、またポートPRT2からもROM領域410aへのアクセスが指定される。この場合、メモリポート471においては、前半のサイクルおよび後半のサイクルにおいて、連続してROM領域410aへのアクセスが行なわれる。
サイクル♯4において、ポートPRT1は、アクセス要求を発行しない(NOP状態)。一方、ポートPRT2が、RAM領域410bへのアクセスを指定する。したがって、サイクル♯4の前半サイクルにおいては、メモリポート471のアクセスが行なわれず、後半サイクルにおいて、RAM領域410bに対するアクセスが実行される。
サイクル♯5において、ポートPRT1およびPRT2からRAMアクセスが指定される。したがって、サイクル♯5においては、前半および後半サイクルにおいて連続してメモリポート471を介してRAM領域410bへのアクセスが実行される。
サイクル♯6においては、不揮発性RAM470に対する情報/データのアクセスは行なわれない。
ポート設定信号PSSは、この演算処理サイクルを規定するクロック信号の立上がりおよび立下がりに従ってその状態を変更して、ポート切換回路475の接続経路を切換える。不揮発性RAM470は、したがって、演算処理回路460のサイクル時間の1/2倍のサイクル時間で動作する。このポート切換回路475は、1種の並列/直列変換回路(演算処理回路から見て)である。
クロック信号の立上がりおよび立下がりにそれぞれにおいて、ポートPRT1およびPRT2の演算サイクルの開始が規定される場合、パイプライン的に、ポートPRT1およびPRT2の情報/データを用いて演算回路402内部で演算処理を実行することができる。
図39は、図37に示す不揮発性RAM470の構成を概略的に示す図である。図39において、不揮発性RAM470において、メモリ領域410は、複数のメモリマットMAT♯1−MAT♯nと、メモリマットMAT♯1−MAT♯nそれぞれに対して設けられる書込禁止回路PHBT1−PHBTnを含む。書込禁止回路PHBT1−PHBTnは、対応のメモリマットMAT♯1−MAT♯nがROM領域に指定された場合に、対応のメモリマットに対する書込を禁止する。この書込禁止回路PHBT1−PHBTnの構成としては、先の実施の形態1から7において示した構成を利用することができる。
メモリポート471は、ノード471aに結合される入出力回路471bと、メモリマットMAT♯1−MAT♯nに共通に結合される内部バス471cを含む。内部バス471cは、アドレス、制御信号、およびデータをそれぞれ転送するバスを含む。
演算処理装置において、ポート切換回路475と、この不揮発性RAM470とが同一半導体チップ上に集積化されるため、端子471aは、単にチップ上配線で実現される。
図39に示すように、不揮発性RAM470においてはメモリ領域410においてメモリマットMAT♯1−MAT♯nが共通に内部バス471cに結合され、メモリマットの接続するバスを切換える構成は不要となる。したがって、不揮発性RAMがシングルポート構成の場合、内部構成を簡略化することができ、また、このバス接続を切換えるための構成が不要となり、レイアウト面積を低減することができる。
また、シングルポートの不揮発性RAMとマルチポートプロセッサ(演算処理回路)を用い、不揮発性RAMとプロッセサ(演算処理回路)のポートの数が異なる場合においても、ポート切換回路475を利用することにより、メモリのシングルポートをROMポートおよびRAMポートのいずれとしても利用することができ、ポート互換性を維持して、データ/情報の転送を効率的に行うことができ、処理効率を改善することができる。
また、不揮発性RAMが、シングルポート構成であり、内部で、メモリマットのポート切換のための構成が不要となり、回路構成が簡略化され、チップレイアウト面積を低減することができる。
なお、メモリマットMAT♯1−MAT♯nおよび書込禁止回路P1BT1−P1BTnの構成としては、実施の形態1から4および7において説明した構成を利用することができる。
[実施の形態10]
図40は、この発明の実施の形態10に従う演算処理システムの記憶システムの構成を概略的に示す図である。この図40において、不揮発性RAM500は、内部バス503に結合される。この不揮発性RAM500は、命令領域(ROM領域)501と、データ領域(RAM領域)502を含む。これらの命令領域501およびデータ領域502は、これまでの実施の形態1から8と同様、そのサイズが可変であり、メモリマットまたはI/Oブロック毎に、その属性(ROM領域/RAM領域)を設定することができる。
この内部バス503とRAMポート511の間に、ROMキャッシュ510が設けられ、また、ROMキャッシュ510に対し、キャッシュコントローラ512が設けられる。このキャッシュコントローラ512は、図示しない演算処理回路から命令バスを介して与えられるアクセス要求に従って、ROMキャッシュ510に対するアクセスを制御する。一方、内部バス503とデータバスに結合されるRAMポート519の間にRAMキャッシュ515が設けられる。RAMキャッシュ515は、キャッシュコントローラ517により、その動作が制御される。RAMキャッシュコントローラ517は、RAMポート519を介して与えられるアクセス要求に従ってRAMキャッシュに対するアクセスを制御する。
ROMキャッシュ510およびRAMキャッシュ515は、小容量のSRAM(スタティック・ランダム・アクセス・メモリ)または不揮発性RAM(MRAMなど)で構成され、外部の演算処理回路が要求するデータのキャッシュを行なう。不揮発性RAM500は高速アクセスが可能であるものの、さらにROMキャッシュ510およびRAMキャッシュ515を設け、それぞれ別々のポートに結合することにより、ROMポート511およびRAMポート519に対して並行してアクセスを行うことができ、効率的にかつ高速で要求される情報およびデータを転送することができる。
また、これらのROMキャッシュ510およびRAMキャッシュ515は、小容量であり、内部の信号線の負荷などが軽減され、また小容量であるため、アドレスのデコードも簡略化され、より高速でデータを転送することができ、例えばプロセサシステムにおける1次キャッシュおよび2次キャッシュを利用する構成と同様、この記憶システムの高速アクセスを実現する。
図41は、図40に示すキャッシュ510および515およびキャッシュコントローラ512および517の構成を概略的に示す図である。ROMキャッシュ510およびRAMキャッシュ515は、その内部構成は同じであり、図41においては、キャッシュメモリ530をそれらを総称的に示すメモリとして示す。また、キャッシュコントローラ512および517は、ライトミス発生時の処理シーケンスが異なるものの、ブロック構成は同一であるため、これらのキャッシュコントローラ512および517は、キャッシュコントローラ520で代表的に示す。
キャッシュ方式において、キャッシュメモリと主メモリ(命令領域501およびデータ領域502)の間のマッピングとしては、ダイレクトマッピング方式、セットアソシアティブ方式などがあり、図41においては、マッピング方式として、セットアソシアティブ方式が用いられる場合のキャッシュ構成を一例として示す。このセットアソシアティブ方式においては、対応の主メモリ(命令領域501およびデータ領域502)を、複数の列ブロックに分割し、各列ブロック毎に、キャッシュメモリにキャッシュされたデータブロックのアドレスをタグメモリ522に格納する。タグメモリ522においては、キャッシュメモリにおいて複数のセットが設けられ、主メモリの各列ブロックにおいて、複数のセットの領域のデータがキャッシュされる。セットの数およびタグアドレスが指定するデータブロックのサイズ(キャッシュブロックサイズ)は、キャッシュメモリ530の容量に応じて、また、キャッシュのヒット率に応じて定められる。
セットは、キャッシュメモリ530におけるメモリセルアレイのいわゆるワード線アドレスに対応する。主メモリにおけるメモリセルのアドレスは、タグアドレス、セットアドレスおよび列ブロック内アドレスにより構成される。
図41において、キャッシュコントローラ520は、キャッシュメモリ530にキャッシュされたデータのタグアドレスを格納するタグメモリ522と、タグメモリ522からセットアドレスに従って読出されたアドレスを、与えられたタグアドレスと比較する比較回路524と、この比較回路524の一致/不一致結果を示す信号Hitに従ってキャッシュメモリ530のアクセスを制御するメモリアクセス制御回路526を含む。
メモリアクセス制御回路526は、与えられたタグアドレスがタグメモリ522に格納されていない場合には、すなわちアクセス要求されたデータがキャッシュメモリに格納されていない場合には、キャッシュメモリ530へのアクセスを一旦禁止し、対応の不揮発性RAMの領域へアクセスしてアクセス要求されたデータブロックをキャッシュメモリに転送して格納し、かつこの格納と並行してアクセス要求されたデータに対するアクセスを許可する。
比較回路524は、セットアドレスに含まれる列ブロック毎に一致/不一致を示す信号群HTGを生成し、かつこれらのキャッシュヒット信号群HTGのいずれかが一致状態を示しているときにキャッシュヒットを示す信号Hitをアサートする。したがってキャッシュヒット信号Hitは、外部からの演算処理回路が要求するアドレスのデータがキャッシュメモリ530に格納されている場合には、キャッシュヒット信号Hitがアサートされ、このキャッシュメモリ530から対応のデータを読出す(読出アクセスの場合)。
キャッシュメモリ530は、各セットにおいて、列ブロック毎にデータを記憶するデータアレイ532と、セットアドレスをデコードし、データアレイ532内のセットアドレスが指定するセットを選択するデコーダ534と、比較回路524からのキャッシュヒット信号群HTGに従って、ヒットした列ブロックを選択されたセットから選択するマルチプレクサ536と、演算処理回路からの列ブロック内のメモリセル位置を示すブロック内アドレスに従ってマルチプレクサ536により選択された列ブロックからデータを選択するデコーダ538を含む。たとえば、この列ブロックが64ビットのデータブロックの場合、デコーダ538により、8ビットまたは16ビットの演算処理回路が使用するビット幅のデータが選択される。
タグアドレスは、またタグメモリ522へも与えられ、キャッシュミス時においては、タグメモリ522内のタグアドレスが指定する列ブロック内のセットのタグアドレスと書替えられる。このタグアドレスの書替えにおいては、たとえばLRU論理(最も古く用いられたタグアドレスを選択して置換する論理)に従ってタグアドレスの書替えが実行される。
ROMキャッシュ510が命令をキャッシュする場合、通常、命令は、分岐処理などを除いて、プログラムカウンタのカウント値に従ってシーケンシャルに実行される。したがって、この場合、ROMキャッシュ510には、命令が逐次格納されていればよい。キャッシュコントローラ512は、命令領域501の命令をプリフェッチする機能を備えていればよく、特にキャッシュ処理をすることは要求されない。したがって、この命令キャッシュの場合、その構成は後に詳細に説明するが、ROMキャッシュ510に対するキャッシュコントローラ512は、単に、ROMキャッシュ510をFIFOバッファとして利用し、命令ROMキャッシュがフル(満杯)状態となったときに、演算処理回路にデータをアクセス要求に従って逐次転送し、このROMキャッシュのアドレスが所定数歩進し、所定数の命令が使用されたときに、再び、RAM領域501へアクセスして、命令を消費されたアドレス領域に転送する(キャッシュブロックサイズ単位で、キャッシュコントローラ512がデータ転送を行なう)。
しかしながら、この実施の形態10においては、キャッシュコントローラ512および517は、共に、キャッシュヒット/ミス判定を行なう場合を想定し、ROMポートが、シーケンシャルにアクセスされる命令以外のデータの転送ポートとして利用される場合をも想定する。
図42は、図41に示すキャッシュメモリ530およびキャッシュコントローラ520のデータ読出時の動作を示すフロー図である。以下、図42を参照して、この図41に示すキャッシュメモリ530およびキャッシュコントローラ520の動作について説明する。なお、以下の説明において、キャッシュメモリから不揮発性RAMへのデータの返送があり、キャッシュデータの書込が実行されるのは、キャッシュ対象領域がRAM領域の場合であり、キャッシュ対象領域がROM領域の場合には、単に、ROM領域からアクセス要求されたデータを含むキャッシュブロックデータが読出されてキャッシュメモリに書込まれる。
まず、外部からアクセス要求があるかの判定が行なわれる(ステップS30)。これは、図41において、図示しない制御信号(例えばアクセス指示信号EN♯)により判定される。アクセス要求があるまで、このステップS30が繰返され、データ要求発行を待ち受ける。
アクセス要求があると、タグメモリ522は、セットアドレスに従って、対応のセットを選択し、そのセットに含まれる列ブロック毎のタグアドレスを読出す。比較回路524は、タグアドレスとタグメモリ522から読出された列ブロック毎のタグアドレスを並行して比較し、その一致/不一致を各列ブロック毎に判定して、キャッシュヒット信号群HTGおよびキャッシュヒット信号Hitを生成する。
このキャッシュヒット信号Hitに従って、メモリアクセス制御回路526においては、キャッシュヒット/ミスの判定が行なわれる(ステップS31)。
キャッシュヒットの場合、キャッシュメモリ530においては、デコーダ534およびマルチプレクサ536により、セットアドレスおよびキャッシュヒット信号群HTGに従って、与えられたタグアドレスを含む列ブロックのデータを読出す。次いで、デコーダ538がメモリアクセス制御回路526により活性化され、与えられたブロック内アドレスに従って選択された列ブロックからデータを読出し、外部ポート(ROMポートまたはRAMポート)へ転送する(ステップS32)。
一方、ステップS31において、キャッシュミスと判定されると、アクセス制御回路526は、外部へウエイトをかけ、内部バス503(図40参照)が使用されているかの判定を行なう(ステップS33)。内部バスが使用されている場合には、内部バスへのアクセスにウエイトをかけ、内部バスが不使用状態となるまで待ち合わせる。
一方、内部バスが使用されていない場合には、キャッシュコントローラ520が、対象の領域(ROM領域またはRAM領域)へアクセスし、与えられたアドレス(セットアドレスおよびタグアドレス)が指定する列ブロックのメモリセルの記憶情報を読出す(ステップS34)。この場合、対応の領域から、キャッシュブロックサイズのデータが並列に読出され、キャッシュメモリ530への書込が行なわれるとともに、この転送されたブロック内のアクセスデータをブロック内アドレスに従って選択して外部へ出力する(ステップS35)。
このデータ読出モード時、キャッシュメモリ530と対応のROMまたはRAM領域との間のデータ転送時、コピーバック方式のキャッシュシステムにおいては、キャッシュメモリから対応のROM/RAM領域へ、古いキャッシュデータブロックを返送し、その後に、アクセス対象のデータをROM/RAM領域から読出してキャッシュ530へ転送する。
すなわち、コピーバック方式のキャッシュシステムにおいては、たとえばLRU論理(最も古く使用されたタグアドレスのキャッシュデータブロックを選択する)に従ってキャッシュメモリ内で対応の列ブロックのデータを選択して、不揮発性RAMの対応の領域(ROM/RAM領域の選択されたセットアドレスおよびタグアドレスが指定するアドレス領域)へ書き戻した後、与えられたアクセス要求するメモリアドレスに従ってデータの読出が実行される。タグアドレスの値により列ブロックは特定することができる(1つの列ブロック内においてはタグアドレスは、列ブロックの数ずつ増分される)。
このコピーバック方式のキャッシュシステムにおいて、ダーティビットが利用され、キャッシュデータの書込が行なわれたかをモニタし、返送ブロックのダーティビットが、書込を示していないときには、このデータブロックの返送は行なわれず、不揮発性RAMからの対象領域のデータブロックのキャッシュ530への転送が行われてもよい。
一方、ライトスルー方式のキャッシュシステムにおいては、キャッシュメモリの内容が書替えられた場合には、不揮発性RAMの対応の領域の記憶データ/情報も並行して書替えられる。キャッシュのコヒーレンシは常時維持されているため、キャッシュメモリから不揮発性RAMへの置換対象データブロックの転送は行なわれない。タグメモリ522内において例えばLRU論理に従ってタグアドレスの更新を行って新たなタグアドレスを登録するとともに、不揮発性RAMのアクセス対象領域からデータブロックを読出し、該読出データブロックがキャッシュメモリの置換対象ブロックが格納されていた領域に格納される。
キャッシュメモリ530へのキャッシュブロックサイズのデータ書込時においては、演算処理回路から与えられた新たなタグアドレスがタグメモリ522に格納され、比較回路524からのキャッシュヒット信号群HTGの対応のヒット信号がヒット状態となり、マルチプレクサ536が、メモリ(対象領域)から転送されたデータを対応の領域に格納する。このとき、デコーダ534により、転送データキャッシュブロックサイズのデータの選択が行なわれて、キャッシュブロックサイズのうちのアクセス要求されたデータが選択されて読出される。ここで、キャッシュブロックサイズは、通常、一回の転送サイクルで不揮発性RAMとキャッシュの間で転送されるデータブロックのサイズであり、キャッシュと不揮発性RAMとの間の内部データバス503のビット幅により決定される。しかしながら、キャッシュブロックのサイズが、内部データバス503のバス幅の整数倍であり、キャッシュブロックサイズのデータが複数回にわたってキャッシュメモリ530と不揮発性RAMとの間で転送されてもよい。
なお、キャッシュメモリ530が、ROMキャッシュ510の場合には、キャッシュリードミスの場合には、単にROM領域501のアクセス要求されたデータを含むデータブロックが読出されてROMキャッシュへの転送が行なわれ、ROM領域501へのデータの返送(コピーバック方式の場合およびライトスルー方式いずれにおいても)は実行されない。ROMキャッシュ510へのライトアクセスは行なわれないためである。
図43は、図41に示すキャッシュコントローラ520およびキャッシュメモリ530のデータ書込時のコピーバック方式に従う動作を示す図である。以下、図43を参照して、コピーバック方式のデータ書込時のキャッシュ動作について説明する。この説明においても、データ書込を要求するライトアクセスは、ROMキャッシュに対しては行なわれず、RAMキャッシュに対してのみ実行される。以下の説明においては、不揮発性RAMのアクセス対象領域がRAM領域であるとして説明する。
まず、ステップS40において、キャッシュメモリ530に対するアクセス要求(不揮発性RAMへのアクセス)が発行されたかの判定が、制御信号(図示せず)をモニタすることにより行なわれる。
アクセス要求があると、次いで、セットアドレスおよびタグアドレスに従ってキャッシュヒット/ミスの判定が行なわれる(ステップS41)。キャッシュヒットの場合には、キャッシュメモリ530に、アクセス要求されたデータが格納されており、このキャッシュメモリ530の対応の位置へ、与えられた書込データを書込み(ステップS42)、再びステップS40に戻る。
一方、キャッシュミスの場合には、まず、外部に対しウエイトをかけ、内部バス503が使用状態にあるかの判定を行なう(ステップS43)。内部バス503が使用されている場合には、バスが不使用状態となるまで待つ。内部バス503が不使用状態のときには、このキャッシュメモリ530内のたとえばLRU論理に従って選択されたキャッシュブロックサイズのデータが読出され、RAM領域の対応の領域へ書込まれる(ステップS44)。このキャッシュメモリ530からRAM領域への返送時のキャッシュブロックサイズのデータの読出は、内部バスの使用判定ステップS43と並行して行なわれてもよい。
続いて、不揮発性RAM内のRAM領域のアクセス要求されたデータを含むキャッシュブロックサイズのデータが、演算処理回路から与えられたセットアドレスおよびタグアドレスに従って読出され、キャッシュメモリ530へ書込まれるとともに、外部から与えられた書込データが、ブロック内アドレスに従ってキャッシュメモリ530に並行して書込まれる(ステップS45)。書込完了により、外部に対するウエイトが解除され、再び、ステップS40に戻る次のアクセス要求の発行を待つ。
したがって、コピーバック方式の場合には、キャッシュライトミス時においては、リードミスの場合と同様、キャッシュメモリに格納された古いデータを一旦RAM領域へ転送して格納し、次いでアクセス要求されたデータを含むキャッシュブロックサイズのデータをキャッシュメモリ530へ書込むステップが必要とされる。
図44は、図41に示すキャッシュメモリ530およびキャッシュコントローラ520のライトスルー方式に従うデータ書込時の動作を示すフロー図である。以下、図44を参照して、図41に示すキャッシュコントローラおよびキャッシュメモリの動作について説明する。
まず、コピーバック方式と同様、ステップS50においてアクセス要求が発行されたかの判定が行なわれ、次いでステップS51において、アクセス要求があった場合、キャッシュヒットであるかの判定が行なわれる。判定動作は、これまでに説明したキャッシュ動作と同様、図41に示す比較回路524により、タグメモリ522から読出されたタグアドレスとの比較により実行される。
キャッシュヒット時においては、キャッシュヒット信号群HTGおよびブロック内アドレスに従って、図41に示すデコーダ538およびマルチプレクサ536により書込位置が選択されて、キャッシュメモリ530の選択された書込位置にデータの書込が行なわれる(ステップS52)。
このときまた、内部バス503が使用されているかの判定が行なわれ(ステップS53)、内部バスが不使用状態のときに、与えられた書込データをRAM領域の対応の領域へ書込む(ステップS54)。したがって、キャッシュメモリへ書込データを書込むと、並行してRAM領域の対応のアクセス要求されたメモリ位置への書込データの書込が実行される。したがって、常時、キャッシュメモリに格納されるキャッシュメモリ530とRAM領域とは対応のデータが常に一致しており、キャッシュコヒーレンシが確保される。
コピーバック方式においても、データの書替えを示すダーティビットのオン/オフ状態に従って選択的なデキャッシュブロックサイズのデータ返送を行なうことにより、ライトミス時のペナルティを軽減することは可能である(ダーティビットがオンであり、データ書換が示されているときにはデータブロックの返送が行なわれる)。しかしながら、ライトスルー方式により、常時、キャッシュメモリとRAM領域のデータのコヒーレンシを維持することにより、このダーティビットを用いる必要がなく、キャッシュシステムの構成が簡略化され、また常に、RAM領域へのキャッシュブロックデータの返送が行なわれないため、ライトミス時のペナルティを低減することができる(RAM領域への書込データの書込は、キャッシュメモリへのアクセスと並行して実行され、RAM領域への書込がキャッシュアクセスにより隠される)。
ステップS51でキャッシュミスと判定されると、まず、内部バスが使用可能かの判定が行なわれる(ステップS55)。内部バスの空きのときには、RAM領域の対象データを読出し(ステップS56)、読出したデータブロックをキャッシュメモリ530へ転送し、外部から与えられた書込データおよびRAM領域から転送されたデータをともに、キャッシュメモリの対応の位置に書込む(ステップS57)。この書込後外部へのウエイトを解除し、再びステップS50に戻り、アクセス要求の発行を待つ。
したがって、RAM領域およびROM領域両者に対しキャッシュメモリを設けることにより、キャッシュミス時において、内部で不揮発性RAMの対象領域との間でキャッシュブロックサイズのデータの転送が行なわれている間、別のポートにおいてはキャッシュヒットに従ってデータ/情報のアクセスを行なうことができ、キャッシュミス時のペナルティを低減することができる。
また、演算処理システムが、半導体集積回路装置の場合、ROMキャッシュおよびRAMキャッシュの間の内部データバスは、チップ上配線である。したがって、外付けの個別(ディスクリート)キャッシュメモリを用いる場合に比べてピン端子の制約がなく、キャッシュデータ転送バス(内部データバス503)のビット幅を、キャッシュブロックサイズに容易に設定することができ、キャッシュブロックサイズを所望のサイズに設定することができる。したがって、キャッシュミス時のデータ転送に要する時間を低減することができ、高速のキャッシュシステムを実現することができる。
なお、ライトスルー方式の場合、RAM領域への書込データと、キャッシュミス時にRAM領域からキャッシュメモリへ転送されるキャッシュブロックとは、ビット幅が異なる。しかしながら、不揮発性RAMとしてMRAMを用いる場合、書込列選択ゲートおよび読出列選択ゲートは別々に設けられており、この書込時においては、外部のデータビット幅単位での書込を行ない、読出時には、キャッシュブロックサイズのデータを一括して選択して読出す構成は容易に実現することができる(読出時、列アドレスの所定数の下位ビットを縮退状態に設定して、読出データビット幅を書込データビット幅よりも広くする;または書込列選択線と読出列選択線が同時に選択するビット線の数を変更する)。
また、書込列選択ゲートおよび読出列選択ゲートに共通に設けられている構成の場合においても、データ書込時、メモリセルアドレス(タグ、セットおよびブロック内アドレス)をすべて有効とし、データ読出時、キャッシュブロックサイズのデータアドレス(セットおよびタグアドレス)のみを有効とし、メモリセルのブロック内アドレスを縮退状態とすることにより、キャッシュブロックサイズのデータを同時に読出すことができる。
図45は、この発明の実施の形態10におけるROMキャッシュ510およびRAMキャッシュ515とROM領域501およびRAM領域502の間のデータ転送を行なう部分の構成をより具体的に示す図である。
図45において、ROMキャッシュ510と内部バス503の間に、双方向転送バッファ回路540が配置され、またRAMキャッシュ515と内部バス503の間に、双方向転送バッファ回路542が設けられる。
ROM領域501およびRAM領域502は、それぞれ所定数のメモリマットMAT♯を含み、これらのメモリマットMAT♯が共通に内部バス503に結合される。
双方向転送バッファ回路540および542は、内部バス503におけるデータの衝突を防止するために設けられ、双方向転送バッファ回路540は、ROMポート511に結合されるデータバスと内部バス503を分離し、また、双方向転送バッファ回路542は、RAMポート519と内部バス503との間を分離する。これにより、ROMキャッシュ510およびRAMキャッシュ515へのキャッシュヒットまたはミスアクセス時、並行して、ROMキャッシュデータおよびRAMキャッシュデータが、内部データバス503に伝達されるのを防止することができ、正確なキャッシュデータの転送(内部転送および外部転送)を実現することができる。
これらの双方向転送バッファ回路540および542の転送動作制御は、図40に示すキャッシュコントローラ512および517により実行されてもよく、また、このキャッシュコントローラ512および517内に、双方向転送バッファ回路540および542が配置されてもよい。また、これに代えて、ROMキャッシュ510およびRAMキャッシュ515内に双方向転送バッファ回路540および542がそれぞれ配置されてもよい。また、双方向転送バッファ回路540および542が、不揮発性RAM内に配置されて、その転送動作が不揮発性RAM内の制御回路により実行されてもよい。
双方向転送バッファ回路540および542は、転送動作時、内部バス503と同一のビット幅のラッチ回路および転送バッファを含み、キャッシュと不揮発性RAMのメモリマットの間の転送データのラッチおよび転送データのバッファ処理を実行する。キャッシュからRAM領域へのデータ転送時には、キャッシュから読出されたキャッシュブロックデータをラッチし、次いでラッチデータブロックをRAM領域のメモリマットへ転送する。RAM領域またはROM領域からのデータのキャッシュへの転送時には、メモリマットから読出されたデータのラッチおよびラッチデータのROM/RAMキャッシュへの転送を行う。
双方向転送バッファ540は、ROMキャッシュ510に対して設けられ、実使用時の演算処理時には、ROM領域から読出されたデータのラッチおよびROMキャッシュへのラッチデータの転送を実行する。初期情報の書込のために、双方向転送バッファ回路540が設けられ、ROM領域に対する双方向データ転送機能をサポートする。
これらの双方向転送バッファ回路540および542の配置は、このキャッシュシステムを構成する構成要素はすべて同一半導体チップ上に集積化されているため、1つの機能ブロックがいずれの回路に配置されるかはチップ面積の利用好率を考慮して適宜定められる。
[変更例]
図46は、この発明の実施の形態10の変更例のROMキャッシュコントローラ512の構成を概略的に示す図である。図46において、ROMキャッシュコントローラ512は、プログラムカウンタ545と、このプログラムカウンタ545のカウント値に従ってROM領域(501)へのアドレスを生成してROM領域からデータを読出し、ROMキャッシュ510へこの読出データを格納するとともに、ROMポート511から与えられるアクセス要求に従ってROMキャッシュ510の格納情報(命令)を順次出力するメモリアクセス制御回路530を含む。
ROM領域(501)には、プログラム命令およびブート命令が格納される。プログラムまたはブート命令の実行時には、命令はシーケンシャルに実行される。すなわち、割込み発生など以外には、命令は、連続的にプログラムカウンタ545のカウント値に従って順次実行される。したがって、ROM領域(501)が命令を格納する場合には、キャッシュヒット/ミスの判定を行なうことは特に要求されない。したがって、プログラムカウンタ545に設定される、命令シーケンスの初期アドレスに従ってROM領域(501、図40参照)へアクセスしてキャッシュブロックサイズの命令をROMキャッシュ510へ転送する。ROMキャッシュ510においては、格納命令を順次読出して演算処理回路へ転送する。
図47は、図46に示すROMキャッシュコントローラ512の動作を示すフロー図である。以下、図47を参照して、図46に示すROMキャッシュコントローラ512の動作について説明する。
まず、プログラム実行時、ROMポート511を介して演算処理回路から、プログラム初期(先頭)アドレスがアクセス要求とともに与えられる。メモリアクセス制御回路530は、この与えられたプログラム初期アドレスをプログラムカウンタ532に設定する(ステップS60)。次に、このプログラムカウンタ532に設定された初期アドレスに従って、メモリアクセス制御回路530は、内部データバス(503)が不使用のとき、ROM領域(501)へアクセスして、キャッシュブロックサイズの命令を読出し、ROMキャッシュ510へ格納する(ステップS61)。このキャッシュブロックサイズの命令転送後、プログラムカウンタ532のカウント値をキャッシュブロックサイズの命令アドレス分更新する。
ROMキャッシュ510は、実質的に、FIFO(ファーストイン・ファーストアウト)型メモリであり、メモリアクセス制御回路530は、ROM領域からの命令転送後、ROMキャッシュ510の先頭アドレスから順次格納命令を読出して、ROMポート511を介して演算処理回路へ転送する。ROMキャッシュ510が、メモリアクセス制御回路530は、ROM領域(501)へ繰返しアクセスして、このROMキャッシュ510がフル状態となるまで、命令ブロックを転送してROM領域から読出してROMキャッシュ510に格納する(ステップS61)。
このフル状態となるまでのキャッシュ命令ブロックサイズ転送時、ROMポート511を介して、順次外部の演算処理回路が、命令読出して実行する。この命令読出時、メモリアクセス制御回路530は、ROMキャッシュ510の読出アドレスを順次更新し、ROMキャッシュ510からROMポート511へ読出された命令数が所定数(たとえばキャッシュブロックサイズ)実行されたかをROMキャッシュの読出アドレス更新をモニタして判断する(ステップS62)。
メモリアクセス制御回路530は、所定数(キャッシュブロックサイズ)の命令が実行されたと判断すると、新たに、ROM領域(501)へアクセスし、次の命令ブロックを読出し、ROMキャッシュ510の使用済みの命令が格納された領域へ転送命令ブロックを書込む(ステップS63,S64)。
ROMキャッシュ510は、実質的にFIFO型メモリであり、読出アドレスおよび書込アドレスを順次更新する。ROMキャッシュ51が、MRAMで構成される場合、単に、読出アドレスカウンタおよび書込アドレスカウンタを用いてROMキャッシュ510のアドレスを更新する。この場合においても、命令のキャッシュブロックサイズは、ROMポート511を介して演算処理回路へ転送される命令のビット幅よりも大きいため、ROMキャッシュ510への書込時の書込データブロックのサイズは、ROMポート511へ読出される命令ビット幅よりも大きい。この場合においても、ROMキャッシュ510が、MRAMで構成される場合、書込列選択ゲートおよび読出列選択ゲートが別々に存在するため、容易にその書込ブロックサイズおよびキャッシュ命令のビット幅が異なる構成に対応することができる(ライトスルーと同じ)。また、ROMキャッシュ510が、SRAMで構成される場合、単に、通常のFIFOと同様、書込経路および読出経路を別々に設ける2ポート構成を利用することにより、書込データブロックサイズのビット幅および読出命令のビット幅の異なる構成に対応することができる。また、書込列アドレスと読出アドレスの有効ビット数を異ならせることにより、ROMキャッシュ510から読出される命令のビット幅をROMキャッシュ510へ書込まれる命令ブロックのサイズよりも小さくすることはできる(書込列アドレスの所定数の下位ビットを縮退状態に設定する)。
この図46に示す構成の場合、システム立上げ時のブート情報を実行する場合、電源投入検出信号などによりプログラムカウンタ532を、ブート領域の初期(先頭)アドレスに初期設定する。次いで、メモリアクセス制御回路530が、このプログラムカウンタ5322設定されたアドレスに従ってROM領域(501)へアクセスして、必要なブート情報を順次、読出してROMキャッシュ510に格納する。
この図46に示すROMキャッシュ510およびROMキャッシュコントローラ512の構成を利用する場合、たとえば命令実行シーケンスにおいて、分岐命令が実行される場合、分岐発生後に実行される命令ブロックおよび分岐非発生時に実行される命令ブロックをROMキャッシュ510に格納することができる。ROMキャッシュ510において分岐発生/非発生に応じて読出アドレスを設定することにより、分岐命令予測実行方式に基づいて命令が実行される場合において、分岐予測が誤った場合においても、誤予測のペナルティを低減して即座に次の命令をROMポート511へ読出すことができ、分岐予測方式のキャッシュシステムにおいて用いられる分岐予測バッファ(BTB)の構成を簡略化することができる。
以上のように、不揮発性RAMにおいてROM領域およびRAM領域を設け、そのサイズが可変な主メモリの構成に対し、ROM領域およびRAM領域それぞれに対し、小容量のキャッシュを配置しており、高速の演算処理が実現されるとともに、1つのポートでのキャッシュミス発生時においても、別のポートに対しては、必要な命令/データをキャッシュから転送することができ、キャッシュミス時のペナルティを低減することができる。
主記憶として、MRAMを利用する場合、キャッシュライトミス時においては、コピーバック方式でデータの書込を実行する。MRAMの書込回数が低減され、消費電流が低減する。
図48は、コピーバック方式に従うキャッシュシステムにおいて用いられる不揮発性RAMのメモリマットのデータ書込部の構成を概略的に示す図である。図48において、メモリマットMAT♯は、MRAMセルが行列状に配列されるメモリセルアレイ550と、メモリセルアレイ550の選択メモリセルに対してデータを書込む書込回路552を含む。書込回路552は、書込列選択回路および書込ドライブ回路両者を含む。
書込回路552に対し、データレジスタ554が設けられ、内部データバス503aを介して伝達されるデータビットを並列にラッチする。これらのデータレジスタ554のデータラッチ動作および書込回路552の書込動作を制御するために、アクセスコントローラACL内に、書込制御回路555が設けられる。このアクセスコントローラACLは、先の実施の形態1から7において説明したものと同様の機能を実現し、対応のメモリマットMAT♯への書込アクセス時、書込アクセス要求に従って、データ書込の実行を制御する。
図49は、図48に示す書込制御回路555の書込動作制御シーケンスを示すフロー図である。以下、図49を参照して、図48に示す構成のデータ書込時の動作について説明する。
内部データバス503dにおいては、コピーバック方式に従って、キャッシュブロックサイズのデータが返送される。
まず、対応のキャッシュコントローラからアクセス要求が発行され、そのアクセス要求に従ってコピーバックが実行されるかどうかの判定が行なわれる(ステップS70)。このコピーバック動作を実行するかは、コピーバック方式のキャッシュシステムにおいて、アクセス要求としてデータ書込アクセス要求があった場合に判定することができる。
このコピーバックデータ書込要求があった場合、アクセスコントローラACLにおいて、キャッシュコントローラから与えられた転送アドレスに従ってメ対応のモリマットMAT♯が指定されたかを判定する。対応のメモリマットMAT♯に、コピーバックデータを書込む場合、書込制御回路555が、ラッチ制御信号WSELを生成してデータレジスタ554を活性化し、内部データバス503dを介して返送されるコピーバックデータのビットを並列に格納する(ステップS71)。データレジスタ554においてコピーバックデータをラッチした後、書込制御回路555は、図示しない経路を介して対応のキャッシュコントローラに対してデータラッチ完了を示す信号を送信する。
キャッシュコントローラは、この返送された書込完了指示信号により、アクセス要求されたデータを含むデータブロックのアドレス(タグおよびセットアドレス)を転送する。この転送されたアドレスに従ってアクセス対象のメモリマットが選択され、対応のアクセスコントローラにおいて、アドレス指定されたデータブロックを読出して、図示しない内部読出データを介して返送する(ステップS72)。このアクセス要求されたデータを格納するメモリマットは、コピーバックデータを格納するメモリマットまたは別のメモリマットである。いずれの場合においても、コピーバックデータブロックは、データレジスタ555に格納されており、演算処理回路によりアクセス要求されたデータブロックの読出および返送は、何らコピーバックデータの返送の影響を受けることなく実行することができる。
書込制御回路555は、データレジスタ554においてデータをラッチし、また、コピーバックデータのアドレスをラッチした後、対応のメモリマットMAT♯に対し、データ読出要求が与えられていないとき、データレジスタ554から、所定数のビット単位でデータを書込回路552へ転送する。この書込回路552において書込指示信号WEに従って所定数の書込ドライブ回路単位で書込ドライブ回路を順次活性化してデータの書込を実行する(ステップS73)。
この書込動作において、メモリセルアレイ550においては、MRAMの場合、ディジット線が選択され、また書込列選択ゲートを介してビット線が選択される。キャッシュブロックサイズの書込データに対し共通にディジット線が設けられ、かつ選択列のビット線BLが、それぞれ異なるデータビットに対応する場合、ディジット線DLを選択状態に維持した状態で、順次、書込回路552の書込ドライブ回路を所定数単位で活性化する。書込列選択ゲートは、1つの書込列選択線に従ってキャッシュブロックサイズのビット線が並列に、それぞれ異なる内部書込データ線に結合される。キャッシュブロックサイズの書込列選択ゲートが選択状態に維持され、順次対応の書込ドライブ回路を活性化してデータビットの書込のを実行する。
メモリセルアレイ550においてI/Oブロックが配置されている場合には、異なるI/Oブロック(データビット)に対応するビット線が並行して選択されて対応の内部書込データ線に結合される。各内部書込データ線に対応して書込ドライブ回路が配置されており、これらの書込ドライブ回路を順次所定数単位で活性化する。この所定数単位で書込ドライブ回路を活性化する構成は、活性状態の書込指示信号WEを例えばシフトレジスタで順次シフトして所定数の書込ドライブ回路へ与えることにより、容易に実現することができる。
なお、データレジスタ554から所定数のビット単位で、対応の活性化される書込ドライブ回路へ格納データを転送してもよい(制御信号WSELに従って)。
このコピーバックデータブロックをメモリマットMAT♯に書込む際、順次所定ビット数単位でデータを書込むことにより、MRAMが主メモリとして用いられる場合において、書込電流を分散させることができ、書込時のピーク電流を低減することができる。
なお、このコピーバックブロックデータ書込時、RAM領域において複数のメモリマットが並列に選択されてデータの書込が行なわれる場合、各メモリマットを順次活性化し、各メモリマット内において、所定数ビット単位でデータの書込を行なう。1つのメモリマットにおいて、書込制御回路555においてデータ書込時、書込指示信号に基づいて生成される書込ドライブ回路活性化信号を順次活性化し、対応の書込回路552によるデータ書込完了後、隣接メモリマットへ、この書込ドライブ回路活性化信号を転送する。ことにより、複数のメモリマットにわたって順次メモリマットごとにデータを所定数ビット単位で書込む構成を実現することができる。
この所定数ビット単位で返送データブロックのデータの書込を行なう場合、キャッシュブロックのデータをすべて書込むためには複数サイクルが必要とされる。しかしながら、アクセス要求されたキャッシュブロックは、対応のキャッシュに転送されている。キャッシュは、データアクセスの局所性を利用しており、連続的にキャッシュへのアクセスが行なわれる(キャッシュヒットが連続する)可能性が高い。したがって、キャッシュへのアクセスサイクルと並行して不揮発性RAM内でコピーバックデータの書込を逐次実行することにより、RAM領域におけるデータの書込をキャッシュアクセスサイクルで隠すことができ、キャッシュサイクルが長くなるのを抑制することができる。
以上のように、主記憶として、そのサイズが可変なROM領域およびRAM領域を有する不揮発性RAMを設け、これらのROM領域およびRAM領域それぞれに、キャッシュを設けており、このキャッシュそれぞれに並列にアクセスすることができ、1つのポートにおいてキャッシュミス発生時においての別のポートでアクセスすることができ、キャッシュミス時のペナルティを、シングルポートキャッシュの構成に比べて低減することができる。
[変更例1]
図50は、この発明の実施の形態10の変更例1に従うキャッシュシステムの構成を概略的に示す図である。この図50に示すキャッシュシステムは、図40に示すキャッシュシステムと以下の点でその構成が異なる。すなわち、内部バスが、ROMバス503aとRAMバス503bに分離される。不揮発性RAM500においては、命令領域(ROM領域)501が、内部ROMバス503aに結合され、データ領域(RAM領域)502が、内部RAMバス503bに結合される。キャッシュコントローラ512および517は、それぞれ、内部バス503aおよび503bに制御信号を転送する。ROMキャッシュ510は、内部ROMバス503aからのデータを受け、RAMキャッシュ515は、内部RAMバス503bと双方向にデータを転送する。
この図50に示すキャッシュシステムの他の構成は、図40に示すキャッシュシステムの構成と同じであり、対応する部分には同一参照符号を付す。
この図50に示す構成の場合、内部においてROMバス503aおよび内部RAMバス503bが別々に設けられる。したがって、キャッシュコントローラ512および517は、キャッシュミス時において、内部バスが使用されているかを判断する必要がなく、命令領域(ROM領域)501およびデータ領域(RAM領域)502との間で内部バスの空きを待つことなくデータ転送を行なうことができる。したがって、キャッシュミス時のペナルティ(待ち時間)をさらに低減することができる。このキャッシュコントローラ512および517の動作は、先の図42から図44に示す動作フロー図において、内部バス使用状況を判定するステップを除けば、同じである。
したがって、この変更例1の構成に従えば、内部においてROMバスおよびRAMバスを別々に設けており、キャッシュミス時のペナルティをより低減することができ、高速キャッシュシステムを実現することができる。
なお、命令領域およびデータ領域に対しメモリマットを割当てる構成およびバス接続の制御の構成は、先の実施の形態1から4および7に示す構成を利用することができる。
[変更例2]
図51は、この発明の実施の形態10に従うキャッシュシステムの変更例2の構成を示す図である。この図51に示すキャッシュシステムにおいては、図40に示すROMポート511およびRAMポート519が、共通にメモリポート560に結合される。したがって、キャッシュ外部の演算処理回路は、シングルポートプロセッサまたはシングルポートマイクロコントローラである。図51に示すキャッシュシステムの他の構成は、アクセス指示信号としてポート属性指示信号ROM/RAM♯を利用することを除けば、図40に示すキャッシュシステムの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
この図51に示すキャッシュシステムにおいては、ポート560から与えられるポート属性指定信号ROM/RAM♯に従って、キャッシュコントローラ512および517が、自身に対するアクセス要求が発行されたかの判定を行なう。他のキャッシュアクセス時の動作は、図40に示すキャッシュシステムの場合と同じである。従って、シングルポートプロセッサまたはマイクロコントローラで構成される演算処理回路においても、命令およびデータを高速で転送することができる。
なお、ROMキャッシュ510およびRAMキャッシュ515が、外部の演算処理回路の演算サイクルの1/2のサイクルタイムで動作可能な場合には、キャッシュコントローラ512および517が、それぞれ、演算処理回路のサイクルの前半および後半でそれぞれキャッシュ判定を行なう構成が用いられてもよい。この場合、ポート560からは、特にポート特性指定信号ROM/RAM♯を与える必要はなく、キャッシュへのアクセス時にアクセス指示信号ACTまたはEN♯を与える。
このシングルポート演算処理回路に対しても、キャッシュシステム内を2ポート構成とし、命令およびデータそれぞれにキャッシュを設けており、高速で命令/データを転送して、演算処理を実行することができ、システム性能を改善することができる。
[変更例3]
図52は、この発明の実施の形態10の変更例3のキャッシュシステムの構成を概略的に示す図である。この図52に示すキャッシュシステムは、図50に示すキャッシュシステムと、以下の点でその構成が異なる。すなわち、ROMポート511およびRAMポート519が、共通にメモリポート560に結合される。このメモリポート560を介して演算処理回路からポート属性指定信号ROM/RAM♯がキャッシュコントローラ512および517へ与えられる。この図52に示すキャッシュシステムの他の構成は、図50に示すキャッシュシステムの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
この図52に示すキャッシュシステムの構成においても、1つのメモリポート560を介して命令/データの転送が行なわれる場合においても、ROMキャッシュ510およびRAMキャッシュ515は、それぞれ、内部ROMバス503aおよび内部RAMバス503bを介してデータ/命令の転送を行なうことができ、キャッシュミス時のペナルティを低減することができる。
ポート属性指定信号ROM/RAM♯を利用することにより、演算処理回路の1サイクル内において連続的に、データ領域(RAM領域)502へアクセスする場合、または、連続的に命令領域(ROM領域)501へアクセスする場合において、NOP状態のキャッシュコントローラを確実に、NOP状態に設定することができ、消費電力を低減することができる。
なお、この図52に示すキャッシュシステムの構成においても、ROMキャッシュ510およびRAMキャッシュ515の動作サイクルタイムが、外部の演算処理回路の動作サイクルタイムの1/2倍以下の場合には、特に、ポート属性指定信号ROM/RAM♯を与える必要はなく、各演算サイクルの前半および後半でROMキャッシュ510およびRAMキャッシュ515へアクセスする構成が用いられてもよい。
以上のように、この発明の実施の形態10に従えば、サイズ可変な命令領域(ROM領域)およびデータ領域(RAM領域)を有する不揮発性RAMに対し、それぞれキャッシュメモリを設けており、キャッシュミス時のペナルティを低減することができ、キャッシュミスペナルティの少ないキャッシュシステムを実現することができる。
なお、先の内部バスがROMキャッシュおよびRAMキャッシュで共通に用いられるシングルメモリポート構成の場合(図51)においても、キャッシュミス時、ROMキャッシュがウエイトをかけている間に、RAMキャッシュへアクセスして、RAMキャッシュがヒット状態であれば、必要RAMデータをウエイトすることなくデータを転送することができ、データ転送効率を改善することができる。
[実施の形態11]
図53は、この発明の実施の形態11に従うキャッシュシステムの構成を概略的に示す図である。図53において、キャッシュシステムは、主メモリ600と、主メモリの格納データ/情報をキャッシュするキャッシュメモリ610を含む。
主メモリ600は、書換が禁止される命令を格納する命令メモリ601と書換可能なデータを格納するデータメモリ602とを含む。命令メモリ601は、フラッシュメモリまたはMRAMまたはFeRAMなどの不揮発性メモリで実現され、一方、データメモリ602は、DRAM、SRAM、フラッシュメモリ、およびMRAMなどのシステム構成/性能に応じたランダムアクセスが可能なメモリが用いられる。命令メモリ601は、内部バス605に結合され、データメモリ602が内部バス606に結合される。
キャッシュメモリ610は、命令キャッシュ611とデータキャッシュ612を含む。キャッシュメモリ610は、これまでに説明した実施の形態1から10における構成と同様、不揮発性RAMで構成され、かつ命令キャッシュ611およびデータキャッシュ612のサイズは変更可能であり、それぞれシステム構成に応じた数のメモリマットで実現される。
この命令キャッシュ611およびデータキャッシュ612と内部バス605および606の接続の構成としては、先の実施の形態1から4,7および10において説明した構成と同様の構成が用いられる。ただし、命令キャッシュ611においては、命令メモリ601からのデータを転送して格納する必要があり、その領域は、書換可能とされる。不揮発性の命令メモリ601において、データの書換が禁止される。
図54は、図53に示すキャッシュシステムの構成をより具体的に示す図である。図54において、ROMポート615に、内部RAMバス605が結合される。内部ROMバス605は、データバス605dと、アドレスバス605aと、コントロールバス605cを含む。これらのアドレスバス605a、データバス600dおよびコントロールバス605cが、命令キャッシュ611に結合され、また、命令メモリ601に結合される。この命令メモリ601は、一例として、フラッシュメモリ601aで構成される。
内部ROMバス605に対し、さらに、命令キャッシュコントローラ620が結合され、命令キャッシュ611に対するアクセスを制御する。命令キャッシュコントローラ620は、アドレスバス605aおよびコントロールバス605cに結合される。
一方、RAMポート616に結合される内部バス606は、コントロールバス606c、アドレスバス606aおよびデータバス606dを含む。データキャッシュ612は、これらのコントロールバス606c、アドレスバス606aおよびデータバス606dに結合される。
データメモリ602は、一例として、DRAM(ダイナミック・ランダム・アクセス・メモリ)602aで構成される。このDRAM602aは、コントロールバス606c、アドレスバス606aおよびデータバス606dに結合される。データキャッシュ612に対するアクセスを制御するために、データキャッシュコントローラ625が設けられる。図54において、データキャッシュコントローラ625においては、タグアドレスを格納するタグメモリ625aと、タグアドレスとタグメモリ625aのアドレスとを比較する比較回路625bとを、その構成要素として代表的に示す。
比較回路625bからの比較結果は、コントロールバス606c上に伝達され、データキャッシュ612に対するアクセス制御が行なわれる。タグメモリ625aに格納されるタグアドレスの数は、データキャッシュ612のサイズに応じて変更される(キャッシュのセットの数が変更されるため)。したがって、タグメモリ625aにおいては、このデータキャッシュ612として、最大利用可能なセット数に対応する容量のタグメモリ625が設けられる(セットアソシアティブ方式のキャッシュシステムを構成する場合)。データキャッシュ612の最大許容容量よりも容量の少ないデータキャッシュ612が用いられる場合、タグメモリ625aにおいて、最大セット数から削減されたセットを格納する領域は不使用とされる(実使用のデータキャッシュ612の容量に対応するセットのみが利用され、それ以外のセット領域は不使用とされる)。これにより、タグメモリ625aの構成を変更することなく、データキャッシュ612のサイズ変更に対応する。
一方、命令キャッシュコントローラ620については、命令キャッシュ611は、いわゆる命令バッファとして機能するため、先の図46に示すキャッシュコントローラ512と同様の構成を利用する。命令キャッシュコントローラ620内に含まれるメモリアクセス制御回路(図46の回路530)において、キャッシュメモリ610の命令キャッシュとして利用する領域のアドレスの先頭値および最終値を格納する。図46に示すプログラムカウンタ532は、そのビット数は変更する必要はなく、外部の演算処理回路から与えられる命令アドレスに従って、プログラムカウンタのカウント値が設定される。命令アクセス時には、命令キャッシュ611の設定されたアドレス領域内でサイクリックに命令の読出および格納をアドレスを順次更新して行なう。
図46に示すキャッシュコントローラ512と同様の構成を命令キャッシュコントローラ620に設けることにより、命令キャッシュ611に対するキャッシュアクセスを、命令キャッシュ611の容量が変更されアドレス領域が変更されても、そのキャッシュコントローラの内部回路構成を変更することなく対応することができる。この構成においては、命令キャッシュコントローラ620の命令キャッシュ611へのアクセス制御の動作は、図47に示す制御シーケンスと同じである。命令キャッシュ611へのアクセスを行なう場合には、命令キャッシュコントローラ620は、この命令キャッシュ611へ、コントローラバス605cを介してデータ読出を、その読出アドレスとともに指定し、命令キャッシュ611からデータバス605dにキャッシュデータ(I)を読出す。キャッシュミスは、命令キャッシュ611においては発生しないと想定しており、命令キャッシュ611から命令メモリ601(フラッシュメモリ601a)への命令の返送は行なわれない。
命令キャッシュ611において所定数の命令が読出されたとき、命令キャッシュコントローラ620は、アドレスバス605aおよびコントロールバス605cを介してフラッシュメモリ601aにアクセスし、フラッシュメモリ601aから対応の命令をデータバス605d上に読出し、命令キャッシュ611の対応の領域(消費された命令が格納された領域)に書込む。命令キャッシュ611を、FIFO型メモリとして、命令の読出および格納を実行する。
データキャッシュ612へのアクセス時において、データキャッシュコントローラ625により、アクセスが制御される。このデータキャッシュコントローラ625は、データキャッシュ612のデータのアクセス時には、比較回路825bからのヒット信号をコントロールバス606cへ与え、データキャッシュ612からデータを読出す(アドレスバス606a上のブロック内アドレスおよびキャッシュヒット信号群を利用して)。
一方、キャッシュミス時においては、データキャッシュ612への外部アクセスを停止し、データキャッシュコントローラ625は、コントロールバス606c、アドレスバス606aおよびデータバス606dを介してDRAM602aにアクセスし、必要なデータを含むデータブロックを、データキャッシュ612へ転送する。このDRAM602aからのデータブロックのデータキャッシュ612への転送時には、データキャッシュ612からDRAMへのデータ返送が、コピーバック方式およびライトスルー方式に応じて、先の実施の形態10において説明したのと同様の態様で、実行される。
図54に示す、命令キャッシュコントローラ620およびデータキャッシュコントローラ625を利用する場合、内部のデータバス605および606dを転送されるデータのビット幅が、キャッシュのブロックサイズを決定する。したがって、ポート615および616を介してキャッシュ外部へ命令/データを出力する場合、これらのポート615および616内において、キャッシュアドレスのブロック内アドレスに従って必要なデータを選択して転送する。RAMポート616から書込データが内部へ転送される場合、RAMデータバス606dのブロック内ドレスが指定するビット位置のデータバス線に書込データを転送する。
データのビット幅を、演算処理回路の要求するデータのビット幅とキャッシュブロックサイズの命令/データのビット幅の間で変換する回路の構成の一例を図55に示す。
図55においては、命令ポート(RAMポート)615の構成を示し、ポート616の構成要素は括弧内の番号で示す。
図55において、ROMポート(命令ポート)615(または616)は、ブロック内アドレスをデコードするデコーダ631と、1つのポートバス632を介して転送される命令I(またはデータD)をデコーダ631の出力信号に従って選択するセレクタ630を含む。このセレクタ630により、1つのキャッシュブロックサイズの命令ブロック(またはデータブロック)が内部データバス605e(または606d)を介して転送される場合においても、その外部からの命令I(またはデータD)を、正確に、命令ブロック(またはデータブロック)内の対応のアドレス位置を選択して、外部ポートバス632と内部データバス605d(または606d)との間で転送することができる。
したがって、内部データバス605dおよび606dは、キャッシュブロックサイズをできるだけ大きくして、キャッシュミス時のペナルティを低減する場合においても、確実に、ポート615および616において、さらにバス幅変換を実現することにより、確実に、アクセス要求されるデータまたは命令を、キャッシュ611および612と演算処理回路との間で転送することができる。
[変更例]
データメモリ602として、DRAM602aが利用される場合、DRAM602aにおいては、所定の周期で、記憶データをリフレッシュする必要がある。
このDRAMのリフレッシュ動作が、キャッシュシステムに影響を及ぼさないように、データキャッシュコントローラにおいてDRAM602aのリフレッシュを制御する。
図56は、この発明の実施の形態11の変更例におけるDRAMリフレッシュ制御シーケンスの一例を示すフロー図である。以下、図54および56を参照して、この発明の実施の形態11の変更例におけるDRAMのリフレッシュ時のデータキャッシュコントローラの制御動作について説明する。
まず、データキャッシュコントローラ625は、アクセス要求がデータポート616を介して与えられたかの判定を行なう(ステップS80)。アクセス要求がポート616を介して与えられない場合、アクセススタンバイの状態が所定時間経過したかの判定が行なわれる(ステップS81)。所定時間が経過すると、データキャッシュコントローラ625は、DRAM602aをセルフリフレッシュモードに設定する(ステップS82)。このセルフリフレッシュモード時においては、DRAMは、所定の時間ごとに内部で記憶データの再書き込みを行うリフレッシュを実行する(DRAM内においてリフレッシュを実行する構成は従来から設けられており、このリフレッシュ実行制御の構成を利用する)。
一方、ステップS80において、アクセス要求があったと判定されると、ステップS82においてDRAM602aがセルフリフレッシュモードに設定されている場合には、このセルフリフレッシュモードを解除する(ステップS83)。
このアクセス要求があるとき、データキャッシュコントローラは、また、与えられたタグアドレスおよびセットアドレスに従って、ヒット/ミスの判定を行なう(ステップS84)。キャッシュヒットの場合には、データキャッシュ612のアクセス対象のデータにアクセスする。キャッシュヒット時においては、DRAMに対しセルフリフレッシュが解除されている状態であり、リフレッシュ要求を発行する。DRAM602aが、このリフレッシュ要求に従って内部でリフレッシュを実行する。このリフレッシュは、CBRリフレッシュとして知られているリフレッシュであり、リフレッシュ要求に従って、内部でリフレッシュアドレスを生成して、一回リフレッシュが実行される。
一方、ステップS84において、キャッシュミスと判定されると、DRAM602aがリフレッシュ動作中であるかの判定が行なわれる(ステップS86)。セルフリフレッシュモード解除時において、DRAMがセルフリフレッシュモード解除動作途中である場合または、ステップS85においてリフレッシュ要求が発行されてリフレッシュが行なわれている期間中である場合があり、この期間は、リフレッシュデータの破壊を防止するため、DRAMへはアクセスすることが禁止される。
DRAM602aがリフレッシュ期間中(セルフリフレッシュ解除期間を含む)であると判定されると、このリフレッシュが完全に完了し、DRAM602aのアクセスが許可されるまで待機する(ステップS87)。このDRAM602aがリフレッシュ中でなくなり、アクセススタンバイ状態に復帰すると、データキャッシュコントローラ625が、DRAM602aへアクセスし、アクセス要求されたデータをDRAM602aから読出してデータキャッシュ612へ転送し、また外部にアクセス許可を発行する。
このデータキャッシュへのDRAMからのデータの転送においては、データの読出を行なうリードアクセスおよびデータの書込を行なうライトアクセスのいずれのアクセス要求に対しても同様の動作が行なわれる。
DRAMのリフレッシュは、DRAMへのアクセスが行なわれないときに実行される。従ってキャッシュミス時にリフレッシュを一旦DRAMにおいて停止しても、充分に所定のリフレッシュ集きないでDRAMメモリセル記憶データのリフレッシュを実行することができ、DRAMデータの信頼性は維持される。
データのデータキャッシュからDRAMへのデータブロックの返送については、ライトスルー方式およびコピーバック方式で異なる。コピーバック方式においては、ステップS88において、コピーバック動作が行なわれDRAMへ、例えばLRU論理に従って選択された古いデータブロックが返送された後、アクセス要求されたデータがDRAMからデータキャッシュへ転送される。一方、ライトスルー方式においては、キャッシュデータを書込む時、キャッシュライトヒット時には、書込アクセス要求に従って、DRAM602aでは、リフレッシュ動作は完了しており、外部からの書込データがデータキャッシュ612へ書込まれるとともに、DRAMの対応の位置へ書込まれる。キャッシュミスにおいては、書込および読出要求のいずれにおいても、アクセス要求によりリフレッシュが完了しており、DRAM602からアクセス要求されたデータブロックがデータキャッシュへ転送される。
このライトスルー方式でDRAM602aのデータ転送を制御する場合、キャッシュブロックサイズとデータビットのビット幅は異なる。この場合、DRAM602aにおいて、書込アドレスおよび読出アドレスの有効ビット幅を変更し、DRAMへのデータ書込時においては、全アドレスビットを有効としてアドレス指定を行い、キャッシュミス時のデータキャッシュブロックサイズのデータ転送時においては、このキャッシュブロックサイズのデータに対するアドレス信号を有効とする。単に、キャッシュブロックサイズに応じて、アドレス信号の所定数の下位ビットをデータ読出時、縮退状態(アドレスビットAiおよび/Aiがともに選択状態の“1”)に設定することにより実現することができる。
以上のように、DRAM602aをデータ主メモリとして利用しても、DRAMのリフレッシュ動作は、データキャッシュへのアクセス時に並行して実行されるため、DRAMリフレッシュ動作はデータポート616を介してのアクセスに影響を何ら及ぼさず、キャッシュシステムを有効に利用して、効率的にデータ転送を行なうことができる。
また、フラッシュメモリ601aに対して命令キャッシュ611を設けることにより、高速で、データ(命令)アクセス(読出)を行なうことができる。
また、命令キャッシュ611として、MRAMを用いても、このMRAMの書換回数は、フラッシュメモリの書換可能回数よりも大幅に大きく、キャッシュデータに不良が生じる可能性を低減することができる。また、フラッシュメモリ601aに、ブートプログラムまたはブート情報を格納し、命令キャッシュ611に転送することにより、ブート動作を高速化することができる。
また、通常のデータ処理システムにおいては、ハードディスクに格納された基本ソフト(OS)などのプログラムの命令が、データメモリへ転送され、システムの立上げが行なわれ、また、アプリケーションプログラムハードディスクにインストールされ、処理実行時にRAM領域に転送される。このハードディスクに格納されたプログラム命令をデータメモリすべてに書込む場合、データキャッシュ612に一部を転送することにより、高速で、システム立上げを行なうことができ、また、アプリケーションプログラムを高速で実行することができる。
特に、処理システムにおいて、処理完了後指示により、システムの動作を完了させる場合、メモリ601aおよびDRAM602aから、所定の初期情報および初期データを、命令キャッシュ611およびデータキャッシュ612に転送することにより、電源投入と同時に、システムを立上げて、必要な処理を実行することができる(必要なハードディスクのデータがすべてデータメモリに転送されるのを待ち合わせる必要はなく、インスタントオンコンピュータを実現することができる。
なお、この命令メモリ601に格納される命令としては、ブートプログラムも併せて格納する。このブート情報に従って、演算処理回路、命令キャッシュコントローラ620、およびデータキャッシュコントローラ625の初期化およびメモリ610の初期化(電源システム終了時、初期データおよび初期プログラムが転送されない場合)、およびデータメモリの初期化が行なわれればよい。
以上のように、この発明の実施の形態11に従えば、命令メモリとして、フラッシュメモリまたはMRAMを用い、データメモリとしてDRAMなどの個別メモリを用い、それぞれに対し、キャッシュをMRAMで構成し、そのサイズの可変としており、システム構成に応じた最適なキャッシュサイズを有するキャッシュシステムを構築することができる。また、高速のMRAMをキャッシュメモリとして利用しており、高速のアクセスを実現することができる。
なお、これまでの説明において、不揮発性RAMのポート数が2の場合、およびキャッシュシステムのポート数が2の場合について説明している。これらのポートの数が2に限定されず、3以上設けられてもよい。各ポートに対して、2ポート構成の各ポートに対して設けられる構成が設けられる。これによりポート数の増大に対しても容易に対応することができる。
また、不揮発性RAMとしては、MRAMおよびFeRAMに限定されず、フラッシュメモリおよびDRAMよりも高速の不揮発性メモリであれば適用可能である。
1 半導体集積回路装置、2 演算処理回路、3 不揮発性RAM、20 ROM領域、30 RAM領域、8 ROMポート、9 RAMポート、MAT1−MAT6 メモリマット、ACL1−ACL6,ACLi アクセスコントローラ、50 メモリセルアレイ、51 ワード線ドライバ、52 ディジット線ドライバ、53 書込列選択回路、54 読出列選択回路、55 センスアンプ、56 ライトドライバ、60 ポート指定データ保持回路、61 アクセス制御回路、62 接続設定回路、ACLn アクセスコントローラ、SWG1−SWG3 接続スイッチングゲート、23 ワード線ドライブ回路、94 ディジット線ドライブ回路、90,91 書込列選択ゲート、92 読出列選択ゲート、100 ライトドライバ、MATi,MATj メモリマット(バンク)、ACLij アクセスコントローラ、IL 内部書込データ線、LIO ローカルデータ線、IOK 入出力回路、OK 出力回路、ACL0−ACLk+1 アクセスコントローラ、LRW1−LRWk ローカルセンス/ライト回路、YDC1 ポート1列デコーダ、YDC2 ポート2列デコーダ、DDK ディジット線ドライバ、WDKM ワード線ドライバ、I/O11−I/O1n−I/OM1−I/OMn I/Oブロック、MAP1−MAPM メモリマット、LRWK1−LRWKL ローカル読出/書込回路、ACL1−ACLM アクセスコントローラ、220 アドレステーブル、250a ROM領域アドレスレジスタ、250b RAM領域アドレスレジスタ、240 書込禁止回路、244 ROMアドレスレジスタ、242 RAMアドレス情報格納領域、BTBS ブートバス、310 ブート情報格納領域、311 命令領域、312 データ領域、303 不揮発性RAM、305 バスI/F、315 命令メモリ、MAT♯B ブートメモリブロック、MAT♯I 命令メモリマット、MAT♯D データメモリマット、406,475 ポート接続切換回路、470 不揮発性RAM、410 メモリ回路、510 ROMキャッシュ、512 キャッシュコントローラ、515 RAMキャッシュ、517 キャッシュコントローラ、500 不揮発性RAM、501 命令領域(ROM領域)、502 データ領域(RAM領域)、503 内部バス、503a ROMバス、503b RAMバス、610 不揮発性キャッシュメモリ、611 命令キャッシュ、612 データキャッシュ、600 主メモリ、601 命令メモリ、602 データメモリ、601a フラッシュメモリ、602a DRAM。