(57)【要約】【課題】効率的にデータ転送を高速で行なうことのできるメモリシステムを実現する。【解決手段】薄膜磁性体メモリ（ＭＲＡＭ）において、そのサイズが変更可能なＲＯＭ領域（２０）とＲＡＭ領域（３０）を設け、それぞれ異なるポート（８，９）に結合し、ポート並列にアクセス可能とする。【選択図】図１
2007109008.tif 000002
【特許請求の範囲】
【請求項１】
各々が不揮発的に情報を記憶する複数のメモリセルを有し、互いに属性の異なる情報を格納する複数のメモリ領域、
互いに別々に前記複数のメモリ領域に対して配置された複数のバス、および
前記複数のメモリ領域に対応して配置され、各々が対応のメモリ領域と前記複数のバスとを選択的に結合する複数のポート接続制御回路を備える、半導体記憶装置。
【請求項２】
前記複数のバスは、互いに異なるポートに結合され、各前記ポートは前記半導体記憶装置の外部装置との間での情報転送のインターフェイスを構成する、請求項１記載の半導体記憶装置。
【請求項３】
前記属性の異なる情報は、該記憶装置外部の演算装置において利用される命令およびデータを含む、請求項１記載の半導体記憶装置。
【請求項４】
前記命令を格納するメモリ領域に対応して配置されるポート接続制御回路は、対応のメモリ領域に対する情報の書込を禁止するサブ回路を含む、請求項３記載の半導体記憶装置。
【請求項５】
前記属性の異なる情報各々を格納するメモリ領域のサイズを各属性ごとに前記半導体記憶装置の記憶容量内で変更可能に設定する領域設定回路をさらに備える、請求項１記載の半導体記憶装置。
【請求項６】
前記複数のメモリ領域は複数のメモリマットで構成され、前記複数のポート接続制御回路は、各前記メモリマットに対応して配置され、対応のメモリマットを前記複数のバスのいずれかに結合するアクセス制御回路を含み、対応のメモリマットを共通のバスに結合するアクセス制御回路により、１つのポート接続制御回路が構成される、請求項１記載の半導体記憶装置。
【請求項７】
前記アクセス制御回路は、アクセス属性指定信号およびアドレス信号に少なくとも従って対応のメモリマットへの書込アクセスを選択的に禁止または許可する、請求項６記載の半導体記憶装置。
【請求項８】
前記複数のメモリ領域は複数のメモリマットを含み、
各前記メモリマットは、各々が１つの情報の異なるビットを格納する複数のＩ／Ｏブロックを含み、
前記ポート接続制御回路は、各前記Ｉ／Ｏブロックに対して設けられ、格納情報指定信号に従って対応のＩ／Ｏブロックを前記複数のバスのいずれかに接続するサブ接続制御回路を備える、請求項１記載の半導体記憶装置。
【請求項９】
前記複数のバスが、互いに異なるポートに結合され、
各前記メモリ領域は、所定数の各々が複数のメモリセルを有するメモリマットを含み、
前記ポート接続制御回路は、ポート属性指定信号に従って前記複数のバスに前記ポート属性指定信号が指定する属性の情報を格納するメモリマットを前記複数のバスに結合する、サブ接続制御回路を含む、請求項１記載の半導体記憶装置。
【請求項１０】
前記複数のバスは、前記属性の異なる情報それぞれに対して設けられ、対応の属性の情報を転送し、
前記複数のバスは、それぞれ異なるポートに結合され、記憶装置外部との間で情報を転送する、請求項１記載の半導体記憶装置。
【請求項１１】
前記ポート接続制御回路は、アクセス指示に従って前記複数のバスと前記複数のメモリ領域との間の接続をダイナミックに確立する、請求項１記載の半導体記憶装置。
【請求項１２】
各前記メモリ領域は、隣接して配置されるメモリマットと、前記隣接して配置されるメモリマットにより共有されるデータ書込回路を含み、
前記ポート接続制御回路は、前記隣接して配置されるメモリマットを特定するマット選択信号および格納情報属性特定信号に従って前記書込回路を前記複数のバスの特定された属性に対応するバスに結合するサブ回路を備える、請求項１記載の半導体記憶装置。
【請求項１３】
請求項１から１２のいずれかに記載の半導体記憶装置と、
前記半導体記憶装置の外部に配置され、前記複数のバスと情報を転送する演算装置とを備える、演算処理装置。
【請求項１４】
前記複数のバスは、前記半導体記憶装置の異なるポートに結合され、
前記演算装置は、単一ポートを有し、
前記演算処理装置は、前記単一ポートを前記異なるポートに切換可能に接続するポート切換回路をさらに備える、請求項１３記載の演算処理装置。
【請求項１５】
前記複数のバスは互いに異なるポートに結合され、
前記演算処理装置は、
前記異なるポートそれぞれに対応して配置され、対応のポートの情報をキャッシュするキャッシュメモリをさらに備える、請求項１３記載の演算処理装置。
【請求項１６】
第１のメモリ、
前記第１のメモリと別に配置され、前記第１のメモリの記憶情報と属性の異なる情報を格納する第２のメモリ、および
各々がしきい値電圧以外の特性を利用して情報を不揮発的に記憶する複数のメモリセルを各々が有し、前記第１および第２のメモリに対応して配置され、各々が対応のメモリの記憶情報をキャッシュする第１および第２のメモリ領域を含む第３のメモリを備え、前記第１および第２のメモリ領域は、前記第３のメモリの記憶容量内でそれぞれの記憶容量が変更可能であり、さらに、
前記第１および第２のメモリと前記第１および第２のメモリ領域の間でのデータ転送を制御する転送制御回路とを備える、記憶システム。
【請求項１７】
前記第１のメモリは、記憶データの電気的な書込および一括消去が可能なフラッシュメモリを備える、請求項１６記載の記憶システム。
【請求項１８】
前記第１のメモリは、処理装置の初期化、前記第１のメモリの初期化および前記第２のメモリの初期化を行なう処理情報を含むブート情報の少なくとも一部を格納する領域を有する、請求項１７記載の記憶システム。
【請求項１９】
前記第２のメモリは、記憶情報の定期的なリストアを行うリフレッシュ動作が必要なダイナミック型ランダムアクセスメモリであり、
前記転送制御回路は、前記第２のメモリへのアクセス不在時、前記ダイナミック型ランダムアクセスメモリにリフレッシュ動作を実行させる、請求項１７記載の記憶システム。
【請求項２０】
請求項１６記載の記憶システムと、
前記記憶システムの格納情報を利用して処理を実行する演算処理回路を備える、演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体記憶装置、演算処理装置および記憶システムに関し、特に、高速動作する演算処理システムを実現することのできる記憶装置および記憶システムに関する。より特定的には、この発明は、ＴＭＲ（トンネル磁気抵抗）素子または磁気トンネル接合（ＭＴＪ）素子などの磁気抵抗効果を利用する素子を記憶素子として利用する磁性体メモリ（ＭＲＡＭ：マグネティック・ランダム・アクセス・メモリ）を用いた記憶装置、演算処理システムおよび記憶システムに関する。
【背景技術】
【０００２】
マイクロプロセッサまたはマイクロコントローラなどの処理装置を用いる演算処理システムにおいては、外部記憶装置として、ＲＯＭ（読出専用メモリ）およびＲＡＭ（ランダム・アクセス・メモリ）が設けられる。ＲＯＭは、制御データおよび処理／制御プログラムなどの固定情報を記憶するために用いられる。ＲＡＭは、処理装置の作業領域などとして用いられ、アプリケーションプログラムおよびアプリケーションデータおよび処理前および処理後のデータを一時的に記憶するために用いられる。
【０００３】
ＲＯＭに、固定情報を記憶することにより、破壊されるとシステムが正常に機能しなくなる恐れのあるシステム立上げ用のブートプログラム、ＯＳ（オペレーティングシステム）およびアプリケーションプログラムと周辺機器との結合を制御するＢＩＯＳ（基本入出力システム）などの基本ソフト、および識別情報などの基本制御データを格納する。
【０００４】
ＲＡＭにおいては、処理用途に応じてその記憶容量を設定し、比較的大量の情報を記憶する。ディスク装置などに比べてＲＡＭの高速アクセス性を利用して、データ転送を高速に実行する。
【０００５】
これらのＲＯＭおよびＲＡＭに対し、異なるタイプのメモリを用いる場合、たとえば、ＲＯＭをマスクＲＯＭまたは電気的に書込および一括消去可能な不揮発性半導体記憶装置（フラッシュメモリ）を用いる場合、システム設計時、個々の用途に応じてそれらのメモリの記憶容量を最適化した場合、各処理用途ごとに記憶装置システムを設計する必要があり、設計、開発、生産および流通の上でコスト増大を招く。
【０００６】
このようなシステム構成の問題を解決することを図るために、強誘電体メモリ（ＦｅＲＡＭ）または磁気半導体メモリ（ＭＲＡＭ：マグネティック・ランダム・アクセス・メモリ）を外部記憶装置として用いた構成が、特許文献１（特開２００３−１０４１３７号公報）および特許文献２（特開２００２−２５２４６号公報）において示されている。
【０００７】
特許文献１に示される構成においては、複数のＭＲＡＭチップを並列に設け、これらのＭＲＡＭの記憶領域を、ＲＡＭ領域およびＲＯＭ領域に区分し、ＲＯＭ領域に対する書込を禁止する。
【０００８】
特許文献１は、ＭＲＡＭを、ＲＯＭまたはＲＡＭとして利用することにより、用途に応じてＲＡＭ領域およびＲＯＭ領域の容量（アドレス空間）を柔軟に設定し、メモリ構成およびメモリ制御回路を簡略化し、コスト低減および実装スペースの削減を図る。
【０００９】
特許文献２に示される構成においては、マルチバンクＦｅＲＡＭまたはＭＲＡＭを用いて、各バンクをＲＯＭ領域またはＲＡＭ領域に割当てる。ＲＯＭ領域として用いられるバンクには、書込禁止ビットがセットされ、このセットされた書込禁止ビットにより、対応のバンクへの書込アクセスが禁止される。
【００１０】
特許文献２においても、ＦｅＲＡＭまたはＭＲＡＭをＲＯＭおよびＲＡＭとして利用することにより、メモリシステムの簡略化および高速アクセスのメモリシステムを実現することを図る。
【特許文献１】特開２００３−１０４１３７号公報
【特許文献２】特開２００２−２５２４６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
これらの特許文献１および２に示される構成においては、ＦｅＲＡＭまたはＭＲＡＭをＲＯＭまたはＲＡＭとして利用する。ＦｅＲＡＭおよびＭＲＡＭは、フラッシュメモリに比べて書込に要する時間が短く、またデータ保持時間が長く、さらに書換可能回数も大幅に大きいという特徴を有する。
【００１２】
しかしながら、これらの特許文献１および２においては、データおよびプログラム命令は共通のデータバスを介して記憶装置外部との間で転送される。すなわち、ＲＯＭ領域およびＲＡＭ領域に格納される情報（データおよびプログラム命令両者を含めて参照する場合には、情報という語を用いる）は、共通のバスを介してまたは共通の入出力回路を介して転送される。
【００１３】
したがって、この記憶装置へアクセスする演算処理装置は、ＲＯＭ領域およびＲＡＭ領域へ並列にアクセスすることができず、処理データ転送時、同一サイクルで命令フェッチを行なうことができず、この命令フェッチは、データアクセス完了まで待ち合わせる必要が生じ、外部の演算処理装置においてウエイトサイクルが生じ、命令実行速度が低下するという問題が生じる。
【００１４】
これらの特許文献１および２においては、種類および動作速度が異なるＲＯＭおよびＲＡＭを、１種類のＦｅＲＡＭまたはＭＲＡＭで置換することにより、記憶システムの構成を簡略化することを意図しているものの、外部の演算処理装置のウエイトサイクルを低減して処理システム全体の処理効率を改善することについては、何ら考慮も検討もしてはいない。
【００１５】
それゆえ、この発明の目的は、高速で効率的に演算処理を行なうことのできるシステムを実現することのできる半導体記憶装置、ならびにこれを用いた演算処理装置および記憶システムを提供することである。
【課題を解決するための手段】
【００１６】
この発明に従う半導体記憶装置は、各々が不揮発的に情報を記憶する複数のメモリセルを有し、互いに属性の異なる情報を格納する複数のメモリ領域と、互いに別々にこれらの複数のサブアレイ領域に対応して配置される複数のバスと、各々が複数のメモリ領域に対応して配置され、各々が対応のメモリ領域と複数のバスとを選択的に結合する複数のポート接続制御回路を備える。
【００１７】
この発明に従う記憶システムは、互いに属性の異なる情報を格納する第１および第２のメモリと、第１およびだい２のメモリに対応して配置される第１および第２のメモリ領域を含み、これらの記憶容量が変更可能である第３のメモリと、第１および第２のメモリと第１および第２のメモリ領域の間での情報転送を制御する転送制御回路とを含む。第１および第２のメモリ領域は、それぞれ、第１および第２のメモリの情報をキャッシュする。
【００１８】
この発明に係る第１の演算処理装置は、この発明に従う半導体記憶装置と、この発明に従う半導体記憶装置の外部に配置され、複数のバスと情報を転送する演算装置を含む。
【００１９】
この発明に係る第２の演算処理装置は、この発明に従う記憶システムと、この記憶システムの記憶情報を利用して処理を実行する演算処理回路とを含む。
【発明の効果】
【００２０】
この発明に従う半導体記憶装置においては、各々が属性の異なる情報が複数のメモリ領域に格納され、選択的に結合されるバスを介して情報を転送する。したがって、外部の演算処理装置は、これらのたとえば処理データと演算命令の互いに属性の異なる情報を並行してアクセスすることができ、これらの属性の異なる情報を並行して処理することができ、外部の処理装置の処理効率が改善される。
【００２１】
また、バスを異なるポートに固定的に結合し、メモリ領域とバスの接続をポート特定情報に従って行なうことにより、各ポートから同一属性の情報を並行して転送することができ、演算処理システムの処理効率を改善することができる。
【００２２】
また、この発明に従う記憶システムにおいては、第１および第２のメモリに対してそのサイズ（記憶容量）が変更可能な第１および第２のメモリ領域をキャッシュメモリとして利用しており、第１および第２のメモリが低速のメモリであっても高速の記憶システムを実現することができる。
【００２３】
また、第１および第２のメモリ領域のサイズが変更可能とされており、第１および第２のメモリの容量に応じてこれらの第１および第２のメモリ領域の容量を最適化することができ、種々の用途に対して同一構成で対応することのできるキャッシュシステムを構築することができ、システムの設計効率が改善されまた製造コストも低減することができる。
【００２４】
また、この発明に従う第１の演算処理装置においては、この複数のデータバスと外部の演算装置との間で情報を転送しており、異なるバスへ並行してアクセスして属性の異なる情報を転送することができ、命令のウエイトサイクルを低減でき、高速処理する演算処理システムを実現することができる。
【００２５】
また、この発明の第２の演算処理装置においては、記憶システムの第１および第２のメモリ領域の記憶情報を利用して処理を実行しており、高速で処理を実行することのできる演算処理装置を実現することができる。
【００２６】
また、第１および第２のメモリ領域の容量を用途に応じて容易に変更することができ、異なる用途に対しても柔軟に対応することのできる演算処理装置を実現することができる。
【発明を実施するための最良の形態】
【００２７】
［実施の形態１］
図１は、この発明の実施の形態１に従う演算処理システムの全体の構成を概略的に示す図である。
【００２８】
図１において、この発明の実施の形態１に従う演算処理システム１は、与えられたプログラムに従って演算／制御処理を実行する演算処理回路２と、この演算処理回路２に対するプログラム命令および処理データを記憶する半導体記憶装置３を含む。
【００２９】
この半導体記憶装置３は、ＭＲＡＭ等の不揮発性ＲＡＭで構成され、記憶情報の書換が禁止されるＲＯＭ領域２０と、記憶情報の書換が可能なＲＡＭ領域３０を含む。これらのＲＯＭ領域２０およびＲＡＭ領域３０の境界領域（境界アドレス）１５は、変更可能であり、ＲＯＭ領域２０のサイズおよびアドレス空間上での位置は、不揮発性ＲＡＭ３のアドレス空間内で変更可能であり、また物理的な位置および記憶容量も不揮発性ＲＡＭ３内において変更可能である。
【００３０】
ＲＯＭ領域２０には、演算処理回路２において実行される処理を指定するプログラム命令、この半導体集積回路装置１における初期化時のシステム立上げおよび初期化用のブートプログラム、ＢＩＯＳ命令、および制御データなどの固定情報が格納される。一方、ＲＡＭ領域３０には、書換が許容される情報、すなわち処理データ、アプリケーションプログラムおよび演算処理回路２の中間処理データ等を格納する。
【００３１】
この不揮発性ＲＡＭ３は、ＦｅＲＡＭまたはＭＲＡＭであり、データ保持時間は１０年以上であり、データ書換可能回数が１０15以上であり、また、データの読出および書込時間が１０ｎｓという特性を有する。ＦｅＲＡＭまたはＭＲＡＭは、それぞれ、強誘電体の分極方向および強磁性体層の磁化方向に応じてデータを記憶し、不揮発的に情報を記憶することができる。従って、この不揮発性ＲＡＭは、マスクＲＯＭなどの不揮発的にデータを記憶する不揮発性ＲＯＭと、高速にランダムアクセスを行なうことができるものの、データ保持には電源を供給する必要のあるＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）などの揮発性ＲＡＭの特長を併せ持つ。
【００３２】
不揮発性ＲＡＭ３を用いて、内部メモリ領域を、ＲＯＭ領域２０およびＲＡＭ３０に区分してそれぞれ属性の異なる情報（すなわち書換を拒否すべき情報と書換が許容される情報）を記憶することにより、１種類のメモリを用いて処理システムを構築することができ、製造コストを低減することができる。また、ＲＡＭ領域２０およびＲＡＭ領域３０は、そのアドレス位置および記憶容量を用途に応じて適宜設定することができ、記憶システムの構成が簡略化され、設計コストおよび製造コストを低減することができる。
【００３３】
演算処理システム１は、さらに、命令Ｉを転送する命令バス４と、データＤを転送するデータバス５と、このデータバス５と集積回路装置１の外部周辺機器とのインターフェイスを取るバスインターフェイス１０を含む。このバスインターフェイス１０は、外部Ｉ／Ｏ端子１１に結合される。
【００３４】
不揮発性ＲＡＭ３は、ＲＯＭポート８を介して命令バス４に格納情報を転送し、またＲＡＭポート９を介してデータバス５と双方向で情報を転送する。
【００３５】
演算処理回路２は、命令バス４に結合される命令ポート６と、データバス５に結合されるデータポート７を含む。演算処理回路２は、また不揮発性ＲＡＭ３に対する制御信号ＣＴＬおよびアドレス信号ＡＤをそれぞれ伝達する制御バス１３およびアドレスバス１４に結合される。これらの制御バス１３およびアドレスバス１４は、不揮発性ＲＡＭに結合されるが、図１においては、この接続経路は、図面を簡略化するために示していない。これらの制御バス１３およびアドレスバス１４の組は、ＲＯＭポート８およびＲＡＭポート９それぞれに対して設けられる。
【００３６】
なお、以下の説明において、「ポート」は、周辺装置と情報の転送を行なう機能を有する入出力機能ブロックおよび情報の転送経路を含む。したがって、バスインターフェイス１０は、外部Ｉ／Ｏ端子１１を介して各々が異なる周辺機器と結合されるように、複数のポートを有することが可能である。
【００３７】
この不揮発性ＲＡＭ３を、たとえば複数のＭＲＡＭチップを有するモジュールで構成し、そのＭＲＡＭモジュール内で、ＭＲＡＭチップまたはアレイが、ＲＯＭ領域２０および３０に割当てられる。また、不揮発性ＲＡＭ３が、１つの半導体チップ上に形成される場合、不揮発性ＲＡＭ３内においてメモリアレイが、ＲＯＭ領域２０およびＲＡＭ領域３０に選択的に分割される。この不揮発性ＲＡＭ３の記憶容量の範囲内で、ＲＯＭ領域２０およびＲＡＭ領域３０の容量を変更でき、種々の容量の組合せを実現することができ、複数の用途に対してこの不揮発性ＲＡＭ３により対応することができる。従って、用途に応じて記憶容量が固定されたＲＯＭおよびＲＡＭを設ける必要がなく、各種用途に対して一種類の不揮発性ＲＡＭで対応することができ、生産性を向上することができ、また、製品管理が容易となり、流通コストを低減することができる。
【００３８】
また、ＲＯＭ領域２０は、ＲＯＭポート８を介して命令バス４に結合し、また、ＲＡＭ領域３０は、ＲＡＭポート９を介してデータバス５に結合する。これにより、演算処理回路２においては、命令ポート６およびデータポート７を介してＲＯＭ領域２０およびＲＡＭ領域３０に対して並行してアクセスすることができ、データ転送のために、命令フェッチを待つ必要がなく、演算処理回路２のウエイトサイクルを低減でき、処理効率を改善することができる。
【００３９】
また、この演算処理回路２および不揮発性ＲＡＭ３は、半導体集積回路装置内に設けられ、同一チップ上に形成されてもよく、また、演算処理回路２および不揮発性ＲＡＭ３は、共通のボード上に配置される個別装置であってもよい。演算処理システム１の構成に応じて、不揮発性ＲＡＭ３が、そのアドアレス領域がＲＯＭ領域２０およびＲＡＭ領域３０に容量可変に区分される構成であればよい。
【００４０】
図２は、図１に示す不揮発性ＲＡＭの構成の一例を概略的に示す図である。図２において、不揮発性ＲＡＭ３は、各々が複数の不揮発性メモリセルを含むメモリマットＭＡＴ１−ＭＡＴ６と、メモリマットＭＡＴ１−ＭＡＴ６に共通に設けられるアドレスバスＡＢ１およびＡＢ２と、これらのメモリマットＭＡＴ１およびＭＡＴ６に共通に設けられるデータバスＤＢ１およびＤＢ２を含む。
【００４１】
データバスＤＢ１およびアドレスバスＡＢ１がポートＰ１の一部を構成し、このポートＰ１が、ＲＯＭポート８に結合される。アドレスバスＡＢ２およびデータバスＤＢ２が、ポートＰ２の一部を構成し、ポートＰ２が、ＲＡＭポート９に結合される。したがって、データバスＤＢ１へは、読出情報（命令）が転送され、一方、データバスＤＢ２には、読出データおよび書込データの両者が転送される。ポート１およびＰ２は、それぞれ、入出力（バッファ）回路を含むが、図２においては、図面を簡略化するために示していない。
【００４２】
メモリマットＭＡＴ１−ＭＡＴ６それぞれに対応して、対応のメモリマットのバスへの接続を設定しかつ書込／読出を制御するアクセスコントローラＡＣＬ１−ＡＣＬ６が設けられる。図２に示す配置においては、アクセスコントローラＡＣＬ１−ＡＣＬ４が対応のメモリマットＭＡＴ１−ＭＡＴ４をアドレスバスＡＢ１およびデータバスＤＢ１に結合し、アクセスコントローラＡＣＬ５およびＡＣＬ６が、対応のメモリマットＭＡＴ５およびＭＡＴ６をデータバスＤＢ２に結合する。したがって、メモリマットＭＡＴ１−ＭＡＴ４が、ＲＯＭ領域として用いられ、メモリマットＭＡＴ５およびＭＡＴ６が、ＲＡＭ領域として用いられる。アクセスコントローラＡＣＬ１−ＡＣＬ４が、１つのサブアレイ接続制御回路ＣＣＫ１を構成し、アクセスコントローラＡＣＬ５およびＡＣＬ６が、サブアレイ接続制御回路ＣＣＫ２を構成する。これらのメモリマットＭＡＴ１−ＭＡＴ６の接続経路を切換えることにより、ＲＯＭ領域およびＲＡＭ領域を、その記憶容量を変更することができ、応じて、サブアレイ接続制御回路の構成も変更される。
【００４３】
メモリマットＭＡＴ１−ＭＡＴ６は、不揮発性ＲＡＭ３がメモリモジュールの構成の場合、個々のチップで構成され、メモリマットＭＡＴｉおよび対応のアクセスコントローラＡＣＬｉが、１つの半導体チップで構成される個別素子（ディスクリート素子）に対応する。不揮発性ＲＡＭ３が、１つの半導体チップで構成される個別素子に対応する場合には（演算処理システムが、半導体集積回路装置の場合には）、メモリマットＭＡＴ１−ＭＡＴ６は、メモリアレイ、１つのメモリアレイ内のアレイブロック、またはバンクで構成される。以下の説明においては、メモリマットは、アドレス空間（メモリ空間）内においてある空間を占有するメモリ領域を参照するものとして、この用語を利用する。従って、メモリマットは、１つの個別素子、個別素子内のメモリバンク、１つのメモリアレイ内の分割アレイブロックのいずれで実現されてもよい。
【００４４】
図３は、図２に示すメモリマットおよび対応のアクセスコントローラの構成を概略的に示す図である。図３においては、メモリマットＭＡＴｉとアクセスコントローラＡＣＬｉが、１つの半導体チップ上に配置され、メモリマットＭＡＴｉが、１つのバンクで構成される場合を一例として示す。
【００４５】
図３において、メモリマットＭＡＴｉは、メモリセルＭＣが行列状に配列されるメモリセルアレイ５０を含む。メモリセルＭＣは、たとえば磁気トンネル抵抗素子（ＴＭＲ素子）で構成される可変抵抗素子ＶＲと、ワード線ＷＬ上の信号に従って選択的に可変抵抗素子ＶＲをソース線ＳＬに結合するアクセストランジスタＡＴを含む。この可変抵抗素子ＶＲは、強誘電体キャパシタで構成されてもよい。
【００４６】
メモリセルアレイ５０においては、ワード線ＷＬと平行にディジット線ＤＬがメモリセル行に対応して配置され、またメモリセルＭＣの各列に対応してビット線ＢＬが配置される。このビット線ＢＬには、対応の列のメモリセルの可変抵抗素子ＶＲが接続される。ディジット線ＤＬと可変抵抗素子ＶＲとは、電気的に分離される。可変抵抗素子ＶＲは、磁化方向が固定される固定層と磁化方向が記憶データに応じて設定される自由層とがトンネルバリア層を介して積層される構造を有する。ディジット線を流れる電流が誘起する磁界とビット線ＢＬを流れる電流が誘起する磁界の合成磁界により、可変抵抗素子ＶＲの自由層の磁化方向を固定層の磁化方向に対して平行および反平行のいずれかに設定して、この可変抵抗素子ＶＲを構成するＴＭＲ素子の磁気抵抗効果により、可変抵抗素子を高抵抗状態および低抵抗状態のいずれかに設定して、その抵抗値の大小によりデータを記憶する。
【００４７】
メモリマットＭＡＴｉは、さらに、アドレス信号ＡＤに含まれる行アドレス信号ＲＡと読出指示信号ＲＥｉとに従って、データ読出時、アドレス指定された行に対応するワード線ＷＬを選択状態へ駆動するワード線ドライバ５１と、行アドレス信号ＲＡと書込指示信号ＷＥｉとに従って、データ書込時、アドレス指定された行に対応するディジット線ＤＬに電流を流すディジット線ドライバ５２と、書込指示信号ＷＥｉと列アドレス信号ＣＡとに従って、データ書込時、アドレス指定された列に対応するビット線ＢＬを選択する書込列選択回路５３と、読出指示信号ＲＥｉと列アドレス信号ＣＡとに従って、データ読出時、アドレス指定された列のビット線ＢＬを選択する読出列選択回路５４と、センスアンプ活性化信号ＳＡＥｉに従って読出列選択回路５４により選択されたビット線を流れる電流を検出して、選択メモリセルのデータを内部読出するセンスアンプ５５と、書込指示信号ＷＥｉに従ってデータ書込時、書込データに従って書込列選択回路５３により選択されたビット線ＢＬに電流を流すライトドライバ５６を含む。
【００４８】
書込指示信号ＷＥｉおよび読出指示信号ＲＥｉとセンスアンプ活性化信号ＳＥＡｉは、書込モードおよび読出モードそれぞれにおいてメモリマットＭＡＴｉが選択されたときに活性化される。
【００４９】
可変抵抗素子が磁気抵抗効果素子の場合、データ書込時には、書込データに応じてビット線に双方向に書込電流を流し、またデータ読出時には、内部読出データ線に定電流を供給して選択メモリセルを流れる電流をセンスアンプ５５で検出する。したがって、通常、この内部のデータ書込線および内部読出データ線は別々に設けられる。
【００５０】
アクセスコントローラＡＣＬｉは、対応のメモリセルマットＭＡＴｉの結合するポートを指定するポート指定データを保持するポート指定データ保持回路６０と、ポート指定データ保持回路６０に保持されるデータとマット選択信号ＭＡＳｉとメモリセル選択動作活性化信号（アクセス指示信号）ＡＣＴとに従って、書込指示信号ＷＥｉ、センスアンプ活性化信号ＳＡＥｉおよびポート接続制御信号ＭＰ１／２を生成するアクセス制御回路６１と、アクセス制御回路６１からのポート選択信号ＭＰ１／２に従ってセンスアンプ５５およびライトドライバ５６に対する内部データバスの接続経路を設定する接続設定回路６２と、ポート選択信号ＭＰ１／２に従ってアドレスバスＡＢ１およびＡＢ２の一方を選択して内部アドレスＡＤを生成するアドレスバス選択回路６３を含む。
【００５１】
ポート指定データ保持回路６０には、このメモリマットＭＡＴｉがＲＯＭポートおよびＲＡＭポートのいずれに接続するか、すなわち、メモリマットＭＡＴｉがＲＯＭ領域およびＲＡＭ領域のいずれに割当てられるかを指定するデータを格納する。アクセス制御回路６１は、アクセス指示信号ＡＣＴの活性化時、マット選択信号ＭＡＳｉが活性状態にあれば、接続制御信号ＭＰ１／２、および外部からの動作モード指示信号に従って書込指示信号ＷＥｉまたは読出指示信号ＲＥｉおよびセンスアンプ活性化信号ＳＥＡＥｉを活性化する。
【００５２】
接続設定回路６２は、アクセス制御回路６１からの接続制御信号ＭＰ１／２に従って、センスアンプ５５およびライトドライバ５６の接続経路を設定する。図３においては、ポートＰ１に対して、読出データバスＲＤＢ１が配置され、ポートＰ２に対して、読出データバスＲＤＢ２および書込データバスＷＤＢ２が配置される。ポートＰ１は、書込データバスを含まず、書込データはポートＰ１においては転送されない。
【００５３】
アドレス選択回路６３は、このアクセス制御回路６１からの接続制御信号ＭＰ１／２に従って、アドレスバスＡＢ１およびＡＢ２の一方の行アドレス信号および列アドレス信号を取込み、内部アドレス信号ＡＤ（行アドレス信号ＲＡおよび列アドレス信号ＣＡ）を生成する。
【００５４】
図４は、図３に示すメモリマット選択信号ＭＡＳｉを発生する部分の構成の一例を概略的に示す図である。図４において、メモリマット選択信号発生部は、アドレスバスＡＢ１上のマットアドレス信号をデコードして第１のマットアドレスデコード信号ＭＤ１を生成するマットアドレスデコーダ６５と、アドレスバスＡＢ２上のマットアドレス信号をデコードして、第２のマットデコード信号ＭＤ２を生成するマットアドレスデコーダ６６と、これらのマットアドレスデコーダ６５および６６上のマットアドレスデコード信号ＭＤ１およびＭＤ２の論理和を取って、メモリマットごとのマット選択信号ＭＡＳ１−ＭＡＳｎを生成するＯＲ回路６７を含む。ＯＲ回路６７からのマット選択信号ＭＡＳ１−ＭＡＳｎが、メモリマットそれぞれに対応して設けられるアクセスコントローラＡＣＬ１−ＡＣＬｎへ与えられる。ここで、メモリマットの数は、ｎとしている。
【００５５】
マットアドレス信号は１つのメモリマットを指定する。従って、アクセス時、アドレスバスＡＢ１およびＡＢ２に与えられるマットアドレス信号各々により、１つのメモリマットが指定され、従って、各ポートにおいて１つのメモリマットを指定してアクセスを行う（メモリセルの選択およびデータ／情報の内部読出または内部書込を行う）。
【００５６】
アクセスコントローラＡＣＬ１−ＡＣＬｎは、制御バス７０からのアクセス活性化信号ＡＣＴ（またはチップ選択信号ＣＳ）と対応のメモリマット選択信号ＭＡＳｉ（ｉ＝１〜ｎ）に従って対応のメモリセルマットが選択されたかを判定し、対応のメモリマット選択時、メモリセル選択およびデータ／情報の書込または読出の動作を制御するとともに対応のメモリマットを対応のポートのバスに結合する。
【００５７】
制御バス７０ａおよび７０ｂは、ポートＰ１およびポートＰ２それぞれ別々に設けられる。制御バス７０ａおよび７０ｂを介してポートＰ１およびポートＰ２（ＲＯＭポートおよびＲＡＭポート）からのアクセス要求信号ＡＣＴ１およびＡＣＴ２をＯＲ回路６８により論理和を取って、メインのアクセス指示信号ＡＣＴを生成する。このメインのアクセス指示信号ＡＣＴは、メモリマットＭＡＴ１−ＭＡＴｎに共通に与えられ、アクセス要求時のアドレスの取り込み及び内部回路の活性化およびバス接続のタイミングを設定する。メインのアクセス活性化信号ＡＣＴは、半導体チップ単体で構成される半導体記憶装置のチップセレクト信号ＣＳに対応する。
【００５８】
マットアドレスデコーダ６５および６６は、スタティックにデコード動作を行なってマットアドレス信号に従って、マットデコード信号ＭＤ１およびＭＤ２を生成する。
【００５９】
これにより、１つのチップ上に複数のメモリマットが共通に配置される場合においても、各メモリマットに対して個々にアクセス経路の設定を行なうことができる。図５は、図４に示すメモリマット選択信号発生部の動作を示すタイミング図である。以下、図５を参照して、簡単に、図４に示すマット選択信号発生部の動作について簡単に説明する。
【００６０】
マットアドレスデコーダ６５および６６は、システムクロックなどの、演算処理回路の動作サイクルを規定するクロック信号ＣＬＫと非同期でスタティックに動作する。アドレスバスＡＢ１およびＡＢ２には、演算処理回路から対応のポートを介してアドレス信号が与えられる。アドレス信号は、演算サイクルを規定するクロック信号ＣＬＫの立上がりに対してセットアップ時間を有し、クロック信号ＣＬＫの立上がりより早いタイミングで、アドレスバスＡＢ１およびＡＢ２のアドレス信号が確定状態となる。したがって、マットアドレスデコーダ６５および６６は、このクロック信号ＣＬＫの立上がりより早いタイミングで、デコード信号ＭＤ１およびＭＤ２がそれぞれ活性状態となる。
【００６１】
ＯＲ回路６７は、これらのデコード信号ＭＤ１およびＭＤ２に従って、選択メモリマットに対するメモリマット選択信号ＭＡＳｉを活性状態へ駆動する。
【００６２】
クロック信号ＣＬＫが立上がると、演算処理回路からのコントローラバス７０ａおよび７０ｂを介して与えられるアクセス指示信号ＡＣＴ１および／またはＡＣＴ２が活性化されて、応じてアクセス指示信号ＡＣＴが活性化され、各メモリマットに対してアクセス要求を報知する。アクセスコントローラＡＣＬ１−ＡＣＬｎにおいて、アクセスが指示されたメモリマット（マット選択信号に指定されたメモリセルマット）に対して配置されるアクセスコントローラが動作し、メモリマットのデータ／情報転送経路が設定され、また選択メモリマットの周辺回路が活性化されてデータアクセスが行なわれる。
【００６３】
したがって、図４に示す構成を利用することにより、アクセス指示信号ＡＣＴの活性化時、メモリマット選択信号ＭＡＴｉが確定状態にあり、アクセス指示信号ＡＣＴの活性化に従って、図３に示すアドレス選択回路６３に対するアクセス要求アドレスの選択経路を、即座に設定することができる。
【００６４】
図６は、図３に示すポート指定データ保持回路６０の構成の一例を示す図である。図６において、ポート指定データ保持回路６０は、データバスＤＢ１の特定のデータ線に結合され、初期化動作指示信号ＢＯＯＴに従って選択的に導通するトランスファーゲート７１と、トランスファーゲート７１から与えられたデータを反転するインバータ７２と、インバータ７２と反並行に接続されるインバータ７３と、インバータ７３の入力部と接地ノードの間に接合され。リセット信号ＲＳＴに従って選択的に導通するリセット用ＮＭＯＳトランジスタ７４と、インバータ７２の出力信号と初期プログラム書込指示信ＯＴＷＲとに従ってポート２選択信号Ｐ２Ｓを生成するＯＲ回路７５と、ＯＲ回路７５の出力信号を反転してポート１選択信号Ｐ１Ｓを生成するインバータ７６を含む。
【００６５】
これらのポート選択信号Ｐ２ＳおよびＰ１Ｓが、ポートＰ２およびＰ１を指定する信号として用いられる。インバータ７２および７３がラッチ回路を構成する。
【００６６】
リセット信号ＲＳＴは、電源投入時にワンショットのパルスの形態で生成されるパルス信号であり、ＭＯＳトランジスタ７４の導通時にインバータ７２の出力信号をＬレベルに設定する。
【００６７】
図７は、図６に示すポート指示データ保持回路６０のポート指定データ保持動作を示すフロー図である。以下、図７を参照して、図６に示すポート指定データ保持回路の動作について説明する。
【００６８】
この不揮発性ＲＡＭのＲＯＭ領域固定前において、この不揮発性ＲＡＭの初期情報が特定のＲＯＭ領域に格納される。この初期情報書込時においては、まず、初期情報書込指示信号ＢＯＴＷＲを活性状態（Ｈレベル）に設定し、ポート指定信号Ｐ２Ｓを活性状態として、すべてのメモリマットをＲＡＭ領域に設定する（ステップＳ１）。
【００６９】
これにより、不揮発性ＲＡＭにおけるメモリマットにおいて任意のメモリマットをＲＯＭ領域として指定することが可能となり、特定のメモリマットに、ブート用プログラム、ＢＩＯＳなどの基本ソフトウェア、初期化用制御データなどの初期化動作に必要な情報、および固定情報を書込む（ステップＳ２）。この初期情報書込時において、初期化制御データとして、メモリマットそれぞれについて、ＲＯＭ領域およびＲＡＭ領域のいずれに設定するかの情報も併せて制御データとして書込む。
【００７０】
この初期化情報の書込が完了すると、初期化情報書込指示信号ＢＯＴＷＲが非活性状態（Ｌレベル）に設定される。この初期化情報を書込んだ後においては、ポート指示データ保持回路６０においては、インバータ７２および７３によるラッチ回路により、リセットＭＯＳトランジスタ７４により設定されたＬレベルを保持し、ポートＰ１（ＲＯＭポート）を指定するポート選択信号Ｐ１Ｓが活性状態に維持される（電源電圧供給時）。したがって、初期情報の書込完了後、電源投入後デフォルト状態としては、すべてのメモリマットはＲＯＭ領域に設定され、情報の書込が禁止される（ステップＳ３）。
【００７１】
この初期情報を書込んだ後、記憶装置または演算処理システムが出荷される。システムに組み込まれた実使用状態において、システムの立上げが行なわれる。この場合、まず電源投入に従って、リセットＭＯＳトランジスタ７４が、リセット信号ＲＳＴに従って導通し、インバータ７２の出力信号をＬレベルに設定し、全メモリマットは、ＲＯＭ領域に設定される。次いで、演算処理回路がブート用プログラムを読出し不揮発性ＲＡＭを初期化する。この初期化時においては、初期化動作指示信号ＢＯＯＴが活性状態とされる。各ポート指定データ保持回路６０は、データバスＤＢ１の対応のデータ線に結合され、初期化データ（ポート指定データ）を格納するメモリマットからデータバスＤＢ１に読出されたデータが、インバータ７２および７３および各メモリマットに格納される（ステップＳ４）。これにより、各メモリマットの接続ポートの設定を行ない、実使用時の初期化が完了する（ステップＳ５）。
【００７２】
この初期化用のブートプログラムおよび制御データを格納するメモリセルマットは、ＲＯＭ領域として利用されるため、ポートＰ１に接続される。したがって、このブートプログラムを格納するメモリセルマットにおいては常にポート指定信号Ｐ１Ｓが活性状態となる。残りのメモリマットにおいて、ポート指定データに従って、接続ポートがＲＯＭ領域またはＲＡＭ領域に設定される。これらの残りのメモリマットにおいては、単に内部ノードの電位の初期化などの初期化動作が行なわれるだけであり、データアクセスは行なわれないため、誤動作が生じるのを防止される。１つのメモリマットから各メモリマットそれぞれのポート指定データを並列に読出し、ポートＰ１のバスを介して転送することにより、並行して各メモリマットにおいてポート指定データを書込むことができ、バスＤＢ１のバス幅以下の数のメモリマットに対して並列にポート指定データを設定することができ、高速で、各メモリマットの接続ポートの設定を行なうことができる。
【００７３】
図８は、図３に示すアクセスコントローラＡＣＬｉに含まれるアクセス制御回路６１の構成の一例を示す図である。図８において、アクセス制御回路６１は、アクセス指示信号ＡＣＴとマット選択信号ＭＡＳｉを受け、マット活性化信号ＭＴＡＣＴを生成するＡＮＤ回路８０と、ＡＮＤ回路８０の出力信号とポート指定信号Ｐ１Ｓとを受けて接続制御信号ＭＰ１を生成するＡＮＤ回路８２ａと、マット活性化信号ＭＴＡＣＴとポート指定信号Ｐ２Ｓとを受けて接続制御信号ＭＰ２を生成するＡＮＤ回路８２ｂと、マット活性化信号ＭＴＡＣＴと読出モード指示信号ＲＥＡＤとを受けてセンスアンプ活性化信号ＳＡＥｉおよび読出指示信号ＲＥｉを生成するＡＮＤ回路８２ｃと、マット活性化信号ＭＴＡＣＴと書込モード指示信号ＷＲＩＴＥとを受けて書込指示信号ＷＥｉを生成するＡＮＤ回路８２ｄを含む。接続制御信号ＭＰ１およびＭＰ２が、図３に示す接続制御信号ＭＰ１／２に対応する。
【００７４】
書込モード指示信号ＷＲＩＴＥは、ポート１書込モード指示信号ＷＲＩＴＥ１とポート指定信号Ｐ１Ｓとを受けるゲート回路８１ａと、ポート指定信号Ｐ２Ｓとポート２書込モード指示信号ＷＲＩＴＥ２とを受けるＡＮＤ回路８１ｂと、ゲート回路８１ａの出力信号とＡＮＤ回路８１ｂの出力信号を受けるＯＲ回路８１ｅとにより生成される。
【００７５】
ゲート回路８１ａは、ポート指定信号Ｐ１ＳがＬレベルであリポート１書込モード指示信号ＷＲＩＴＥ１がＨレベルのときにＨレベルの信号を出力する。従って、ポート１に対して書込が指示され、対応のメモリマットがＲＯＭ領域に設定されているときには、ゲート回路８１ａの出力信号はＬレベルとなる。
【００７６】
ＡＮＤ回路８１ｂは、ポート指定信号Ｐ１ＳがＨレベルであり、かつポート２書込モード指示信号ＷＲＩＴＥ２がＨレベルのときにＨレベルの信号を出力する。ＯＲ回路８１ｅは、これらのゲート回路８１ａおよびＡＮＤ回路８１ｂの出力信号の少なくとも一方がＨレベルのときに書込モード指示信号ＷＲＩＴＥをＨレベルに設定し、対応のメモリマットを書込状態に指定する。
【００７７】
ポート指定信号Ｐ１ＳがＨレベルであり、対応のメモリマットがＲＯＭ領域に指定されている場合には、ゲート回路８１ａの出力信号はＬレベルであり、ポート１書込モード指示信号ＷＲＩＴＥ１は、無視される。従って、ＲＯＭ領域に指定されたメモリマットに対しての書込は確実に禁止される。ポート指定信号Ｐ１ＳがＬレベルのときにポート１書込モード指示信号ＷＲＩＴＥ１がＨレベルとなると、書込モード指示信号ＷＲＩＴＥがＨレベルとなる。この状態では対応のメモリマットはＲＡＭ領域に設定されており、書込が行なわれるのは許容される。ポートＰ１に対してデータバスが配置されていれば、ポートＰ１を介してＲＡＭ領域のメモリマットに書込アクセスを行うことができる。
【００７８】
読出モード指示信号ＲＥＡＤを発生する系統は、ポート指定信号Ｐ１Ｓおよびポート１読出モード指示信号ＲＥＡＤ１とを受けるＡＮＤ回路８１ｃと、ポート２指定信号Ｐ２Ｓおよびポート２読出モード指定信号ＲＥＡＤ２を受けるＡＮＤ回路８１ｄと、これらのＡＮＤ回路８１ｃおよび８１ｄの出力信号を受けるＯＲ回路８１ｆとを含む。ＯＲ回路８１ｆから読出モード指示信号ＲＥＡＤが出力される。
【００７９】
データ／情報の読出は、ＲＯＭ領域およびＲＡＭ領域いずれにおいても許可される。従って、ポート指定信号ＰｉＳが指定するポートＰｉから読出モード指示信号ＲＥＡＤｉが与えられると、ＯＲ回路８１ｆからの読出モード指示信号ＲＥＡＤが活性化され、読出アクセス要求したポートからの読出モード指示信号に従ってデータ／情報のアクセスが行われる。
【００８０】
ポートの接続制御および内部動作の活性化は、すべてマット活性化信号ＭＴＡＣＴの活性化に従って行なわれる。したがって２つのポートにおいてデータおよび命令が並行して転送されている動作時においても、ＲＯＭ領域のメモリマットおよびＲＡＭ領域のメモリマットにおいて確実に、対応のデータバス上のデータの読出を行なうことができ、誤動作を防止することができる。また、ポート接続制御信号ＭＰ１およびＭＰ２をこのマット活性化信号ＭＴＡＣＴに従って活性化することにより、各ポートのバスに対し非選択メモリマットが、ハイインピーダンス状態で接続させることができ、誤動作を防止することができる。
【００８１】
書込モード指示信号ＷＲＩＴＥおよび読出モード指示信号ＲＥＡＤを生成する部分（回路８１ａから８１ｆ）は、アクセスコントローラ内部に配置され、各メモリマット単位で対応のポート指定信号Ｐ１ＳおよびＰ２Ｓに従って読出モードおよび書込モード判定を行なっている。従って、メモリマットがＲＯＭ領域およびＲＡＭ領域のいずれに設定されても、各メモリマットに対して正確に動作モードを設定してアクセスを行うことができ、また、ＲＯＭ領域に指定されたメモリマットに対しての書込アクセスを確実に禁止することができ、ＲＯＭ領域の情報の書換を防止することができる。
【００８２】
図９は、図３に示す接続設定回路６２の構成の一例を概略的に示す図である。図９において、ポート１に結合されて情報を転送するデータバスＤＢ１は、読出データを転送する読出データバスＲＢ１を含み、ポート２に結合されてデータを転送するデータバスＤＢ２は、読出データを転送する読出データバスＲＢ２と、書込データを転送する書込データバスＷＢ２を含む。ここで、バスについては、名称を簡略化するために、命令などの情報を転送するバスについても単にデータバスとして参照する。後の実施例において、ポートＰ１がＲＡＭ領域のデータを転送するポートとして利用される構成との整合性を維持するためである。
【００８３】
接続設定回路６２は、ポート接続制御信号ＭＰ１に従ってセンスアンプ５５の出力信号を読出データバスＲＢ１に結合するスイッチング回路ＳＷＧ１と、接続制御信号ＭＰ２に従ってセンスアンプ５５の出力信号を読出データバスＲＢ２に伝達するスイッチング回路ＳＷＧ２と、接続制御信号ＭＰ２に従ってライトドライバ５６と書込データバスＷＢ２を結合するスイッチング回路ＳＷＧ３を含む。これらのスイッチング回路ＳＷＧ１からＳＷＧ３は、各々、一例として、ＮＭＯＳトランジスタのトランスファーゲートで構成される。これらのスイッチング回路ＳＷＧ１からＳＷＧ３は、各々、ＣＭＯＳトランスミッションゲートで構成されてもよい。接続制御信号ＭＰ１およびＭＰ２に応答して、導通／非導通とされる構成であれば、これらのスイッチング回路ＳＷＧ１からＳＷＧ３としては、任意の構成を利用することができる。
【００８４】
センスアンプ５５およびライトドライバ５６がそれぞれ、相補データ（信号）を出力および入力する場合、これらのスイッチング回路ＳＷＧ１−ＳＷＧ３は、相補データをそれぞれ転送する転送ゲートで構成される。この場合、データバスＲＢ１、ＲＢ２およびＷＢ２も、各々相補データ（信号）を転送する相補バス線構造を有する。
【００８５】
対応のメモリマットがＲＯＭ領域として利用される場合には、アクセスサイクル時、接続制御信号ＭＰ１が活性化され、接続制御信号ＭＰ２は非活性状態に維持される。この場合、センスアンプ５５の出力信号が読出データバスＲＢ１に転送され、ポートＰ１（ＲＯＭポート）の出力部に転送される。一方、ライトドライバ５６に対しては、この場合、スイッチング回路ＳＷＧ３は非導通状態であり、書込データは転送されず、記憶データの誤書換は禁止される。
【００８６】
図９においては、ポートＰ１に対する書込データバスは配置されないように示される。これは、ポートＰ１に対しては書込が実行されないため、書込データ／情報を転送する必要がないためである。ポートＰ１に対しても、書込データバスが配置される場合には、対応のスイッチング回路が、ポート指定信号Ｐ１Ｓに従って常時非導通状態に設定される。
【００８７】
一方、このメモリマットが、ＲＡＭ領域として利用される場合には、アクセスサイクル時、制御信号ＭＰ２が活性化され、スイッチング回路ＳＷＧ２およびＳＷＧ３が導通し、一方、スイッチング回路ＳＷＧ１は非導通状態を維持する。したがって、読出データバスＲＢ２および書込データバスＷＢ２を介して、データの読出および書込を行なうことができ、ＲＡＭポート（ポートＰ２）を介して双方向でデータの転送を行なうことができる。
【００８８】
図１０は、図３に示すメモリセルアレイ５０の周辺回路のワード線ドライバ５１、ディジット線ドライバ５２、書込列選択回路５３および読出列選択回路５４の構成の一例を示す図である。図１０においては、ライトドライバおよびセンスアンプ５５の構成も併せて示す。メモリセルアレイ５０に対しては、内部書込データ線ＩＬＬおよびＩＬＲがビット線ＢＬの両側に配設され、また、ビット線の一方側に内部読出データ線ＯＬが配設される。
【００８９】
ワード線ドライバ５１は、ワード線ＷＬそれぞれに対応して設けられるワード線ドライブ回路９３を含む。このワード線ドライブ回路９３は、行アドレス信号ＲＡと読出指示信号ＲＥｉに従って対応のワード線ＷＬを選択状態（Ｈレベル）を駆動する単位デコード／ドライブ回路９３ａを含む。
【００９０】
ディジット線ドライバ５２は、各デジット線に対応して配置される単位でジット線ドライブ回路９４を含む。この単位デジット線ドライブ回路９４は、行アドレス信号ＲＡと書込指示信号ＷＥｉとに従ってディジット線選択信号を生成するＡＮＤ型デコード回路９４ａと、このＡＮＤ型デコード回路９４ａの出力信号に従ってディジット線ＤＬを接地ノードに結合するドライブトランジスタ９４ｂを含む。ドライブトランジスタ９４ｂは、一例としてＮＭＯＳトランジスタで構成される。
【００９１】
デジット線ＤＬの他方端は、電源ノードに結合される。したがって、ディジット線ＤＬの選択時、電源ノードから接地ノードに向かって電流が流れる。
【００９２】
書込列選択回路５３は、ビット線ＢＬに対応して設けられ、書込指示信号ＷＥｉと列アドレス信号ＣＡに従って書込列選択信号ＷＣＳＬを生成する単位列デコード回路８８と、書込列選択信号ＷＣＳＬに従って対応のビット線ＢＬを内部書込データ線ＩＬＬおよびＩＬＲに結合する書込列選択ゲート９０および９１を含む。
【００９３】
書込列選択デコード回路８８は、書込指示信号ＷＥｉおよび列アドレス信号ＣＡを受けるＡＮＤ型デコード回路８８ａを含む。データ書込時、列アドレス信号ＣＡが対応の列を指定しているときに、単位列デコード回路８８ａは書込列選択信号ＷＣＳＬを選択状態へ駆動する。
【００９４】
読出列選択回路５４は、各ビット線に対しても受けられ、読出指示信号ＲＥｉと列アドレス信号ＣＡとを受けて読出列選択信号ＲＣＳＬを生成する読出列デコード回路８９と、読出列デコード回路８９からの読出列選択信号ＲＣＳＬに従って対応のビット線ＢＬを内部読出データ線ＯＬに結合する読出列選択ゲート９２を含む。読出列デコード回路８９は、読出指示信号ＲＥｉと列アドレス信号ＣＡとを受けるＡＮＤ型デコード回路８９ａを含む。
【００９５】
この図１０においては、列アドレス信号ＣＡおよび行アドレス信号ＲＡは多ビットアドレス信号であり、これらそれぞれ所定の組合せのときに対応のデコード回路が選択状態とされる。また、１つの書込列選択信号ＷＣＳＬおよび読出列選択信号ＲＣＳＬに従って、１つのビット線が選択される。しかしながら、これらの列選択信号ＷＣＳＬおよびＲＣＳＬは、各々複数のビット線を同時に指定して複数のビット線に対して、並行してデータの書込／読出が行われても良い。図１０においては、１ビットのデータ／情報の書込および読出を行う部分の構成を代表的に示す。
【００９６】
ライトドライバ５６は、書込指示信号ＷＥｉと内部書込データ（情報）Ｄに従って内部書込データ線ＩＬＬを駆動するドライブ回路５６ｌと、書込指示信号ＷＥｉと補の内部書込データ（情報）／Ｄに従って内部書込データ線ＩＬＲを駆動するドライブ回路５６ｒを含む。ドライブ回路５６ｌおよび５６ｒは、それぞれ、ＮＡＮＤ回路で構成され、非選択時、内部書込データ線ＩＬＬおよびＩＬＲを、電源電圧レベルに維持する。
【００９７】
なお、書込／読出されるデータは、ＲＡＭ領域のデータまたはＲＯＭ領域の情報であるが、以下の説明においては、説明を簡単にするために、書込／読出対象はデータであるとする。しかしながら、ＲＯＭポートに対する書込／読出部の構成を排除するものではない。
【００９８】
センスアンプ５５は、データ読出時、内部読出データ線ＯＬに定電流を供給する定電流源５５ａと、内部読出データ線ＯＬの流れる電流を検出して内部読出データを生成するセンス回路５５ｂを含む。これらの定電流源５５ａおよびセンス回路５５ｂは、図１０において明確に示していないが、センスアンプ活性化信号ＳＡＥｉに従って活性化される。
【００９９】
データ読出時、対応のメモリマットが指定されたときには、読出指示信号ＲＥｉが活性化され、読出列選択回路５４が活性化される。応じて、読出列選択回路５４のデコード回路８９がデコード動作を行ない、列アドレス信号ＣＡに従って、選択列に対する読出列選択信号ＲＣＳＬを選択状態へ駆動し、ビット線ＢＬを読出データ線ＯＬに結合する。このとき、また、ワード線ドライバ５１においても、ワード線ドライブ回路９３が、読出指示信号ＲＥｉと行アドレス信号ＲＡに従って、選択行のワード線ＷＬを選択状態へ駆動する。応じて、メモリセルＭＣにおいてアクセストランジスタが導通し、可変抵抗素子がビット線とソース線との間に接続される。
【０１００】
メモリセルＭＣの可変抵抗素子の抵抗値に応じて、センスアンプ５５の定電流源５５ａから内部読出データ線ＯＬ、読出列選択ゲート９２を介して供給される電流がソース線（接地ノード）へ放電される電流量が異なる。センス回路５５ｂが、内部読出データ線ＯＬの放電電流のセンス動作を行なって、内部読出データを生成する。
【０１０１】
データ読出時においては、書込指示信号ＷＥｉは非活性状態であり、書込列選択ゲート９０および９１は非導通状態であり、また単位ディジット線ドライブ回路９４のドライブトランジスタ９４ｂも非導通状態である。したがって、データ読出時、選択メモリマットにおいて、選択メモリセルＭＣを介して流れる電流量の大小をセンスアンプ５５が検出して内部読出データの読出を行ない、センスアンプ生成５５により生成された内部読出データが図９に示す、データバスＲＢ１またはＲＢ２に伝達される。
【０１０２】
データ書込モード時において、対応のメモリマットが選択されたときには、書込指示信号ＷＥｉが選択状態へ駆動され、一方、読出指示信号ＲＥｉおよびセンスアンプ活性化信号（ＳＡＥｉ）は非活性状態にある。この状態において、列アドレス信号ＣＡに従って書込列選択信号ＷＣＳＬが選択状態へ駆動され、対応の書込列選択ゲート９０および９１が導通し、ビット線ＢＬが内部書込データ線ＩＬＬおよびＩＬＲに結合される。
【０１０３】
書込ドライブ回路５６ｌおよび５６ｒが、相補内部書込データＤおよび／Ｄに従って、これらの内部書込データ線ＩＬＬおよびＩＬＲを駆動する。今、データＤがＨレベルのときには、補の書込データ／ＤはＬレベルであり、書込ドライブ回路５６ｌが内部書込データ線ＩＬＬを接地電圧レベルに駆動し、一方、書込ドライブ回路５６ｒが、書込データ線ＩＬＲを電源電圧レベルに駆動する。したがって、この場合には、ビット線ＢＬには、書込データ線ＩＬＲから書込データ線ＩＬＬに向かって電流が流れる。
【０１０４】
また、ディジット線ドライバ５２においても、ディジット線単位デコード回路９４においてディジット線ドライブトランジスタ９４ｂが導通し、ディジット線ＤＬを接地ノードに結合し、ディジット線ＤＬに電流が流れる。これらのビット線ＢＬおよびディジット線ＤＬを流れる電流が誘起する磁界により、メモリセルＭＣの可変抵抗素子（磁気抵抗素子）の強磁性体自由層の磁化方向が設定され、可変抵抗素子が、高抵抗状態または低抵抗状態に設定される。
【０１０５】
一方、書込データＤがＬレベルのときには、書込ドライブ回路５６ｌの出力信号が電源電圧レベルとなり、一方、書込ドライブ回路５６ｒの出力信号が接地電圧レベルとなる。この状態においては、ビット線ＢＬには、内部書込データ線ＩＬＬから内部書込データ線ＩＬＲに向かって電流が流れる。デジット線ＤＬには、書込データＤがＨレベルのときと同一方向に電流が流れる。ビット線ＢＬには、書込データＤがＨレベルのときと反対の方向に電流が流れ、メモリセルＭＣの可変抵抗素子が、書込データＤがＨレベルと逆の状態に設定される。
【０１０６】
上述のように、書込データＤの論理レベルに従ってビット線ＢＬを流れる電流の方向が異なり、応じて、ビット線電流により生成される磁界の向きが異なる。メモリセルＭＣの可変抵抗素子は、ＭＲＡＭセルの磁気抵抗素子であり、各々強磁性体層で構成される固定層および自由層を含む。この自由層の磁化方向が、ビット線ＢＬの誘起する磁界の向きに応じて設定される。固定層の磁化方向はビット線電流およびディジット線電流の方向にかかわらず一定である。したがって、可変抵抗素子（磁気抵抗素子）において自由層および固定層の磁化方向を平行方向または反平行方向にビット線ＢＬを流れる電流の方向に従って設定する。、応じて、可変抵抗素子の抵抗値を、高抵抗状態または低抵抗状態に設定してデータの書込および記憶を行なうことができる。
【０１０７】
書込指示信号ＷＥｉおよび読出指示信号ＲＥｉおよびセンスアンプ活性化信号（ＳＡＥｉ）を、対応のメモリマットが接続されるポートを指定するポート指定信号に基づいて生成することにより、正確に、ＲＯＭ領域のメモリマットに対するデータの書込を禁止しつつ、選択メモリマットに対してデータの書込／読出を行なうことができる。
【０１０８】
書込ドライブ回路５６ｌおよび５６ｒのデータ書込タイミングまたはセンスアンプ回路５５におけるデータ読出タイミングに応じて、図９に示す接続設定回路６２がバス接続を実施することにより、対応のメモリマットの内部動作（書込または読出動作）に応じてデータバスにセンスアンプ／ライトドライバを結合することができ、正確にデータの書込／読出を行なうことができ、別のメモリマットに対するデータの書込または別のメモリマットの読出データとの競合などの問題を防止することができる。
【０１０９】
なお、上述の構成においては、メモリマットＭＡＴｉは、１つの活性動作制御単位であり、バンクとして示される。しかしながら、メモリマットＭＡＴｉが、それぞれ個々に、周辺回路（メモリセル選択回路および書込／読出回路）を有する構成であれば、これまでに説明した構成を適用することができる。また、メモリマットＭＡＴｉが、１つのメモリチップの構成に対応する場合には、メモリマット単位で、チップ選択信号に対応する活性化制御信号ＡＣＴに従って、アクセスコントローラで接続経路の設定および内部動作制御を行なうことができる。この構成（モジュール構成）の場合には、データバスＲＢ１、ＲＢ２およびＷＢ２が、チップ外部のモジュール内配線で構成され、アクセスコントローラが、メモリ内部動作を制御する回路で実現される。
【０１１０】
また、１つのメモリセルアレイに配置される複数のメモリブロック個々がメモリマットに対応する場合であっても、各メモリブロックに個々に、ローカルデータバスが設けられる場合、このローカルデータバスと内部の複数のメモリブロックに共通に設けられるグローバルデータバスとの間の接続経路を、接続制御信号に従って設定することにより、同様、１つのメモリアレイ内の各メモリブロックをＲＯＭ領域またはＲＡＭ領域として利用することができる。
【０１１１】
以上のように、この発明の実施の形態１に従えば、メモリマット（メモリブロック、メモリチップ）を個々に、ＲＯＭ領域またはＲＡＭ領域に設定し、ＲＯＭ領域およびＲＡＭ領域をそれぞれ別々のポートに結合して、外部の演算処理回路のＲＯＭポートおよびＲＡＭポートに結合しており、演算処理回路においては、１つのポートから命令およびデータの属性の異なるデータを受取って内部で再分配する必要がなく、演算処理回路の内部構成が簡略化され、また各ポートにそれぞれ、属性に対応するデータが転送されるため、演算処理回路において、データ情報の処理を早いタイミングで実行することができる。また、メモリマットにおいてＲＯＭポートおよびＲＡＭポートを別々に設けており、これらのＲＯＭポートおよびＲＡＭポートにおいて一方のポートのアクセス完了時点まで待つことなく他方のポートのアクセスを行なうことができ（内部データ線の初期状態へのリカバリ時間を考慮する必要はない）、高速のデータ転送を行なうことができる（アクセスサイクル時間を短縮することができるため）。
【０１１２】
また、ＲＯＭ領域およびＲＡＭ領域を不揮発性ＲＡＭ内において、サイズを変更可能としている。従って、ＲＯＭおよびＲＡＭを同一の高速のメモリで構成することができかつ記憶容量を各用途に応じて最適値に設定することができ、高速アクセス可能でかつ寿命の長いメモリシステムを、１種類のメモリを用いて実現することができる。応じて、設計および製造および流通のコストを低減することができる。
【０１１３】
［実施の形態２］
図１１は、この発明の実施の形態２に従う不揮発性ＲＡＭの要部の構成を概略的に示す図である。この図１１においては、メモリマットＭＡＴｉおよびＭＡＴｊが、隣接して配置されるバンクで構成される。すなわち、メモリマットＭＡＴｉおよびＭＡＴｊが、同一の半導体チップ上に形成され、互いに独立にメモリ選択動作が可能である。これらのメモリマットＭＡＴｉおよびＭＡＴｊに対し、それぞれ、センスアンプ５５ｉおよび５５ｊが設けられる。センスアンプ５５ｉは、内部読出データ線ＯＬｉを介してメモリマットＭＡＴｉから読出されたデータを増幅し、センスアンプ５５ｊは、内部読出データ線ＯＬｊを介してメモリマットＭＡＴｊから読出されるデータを増幅する。
【０１１４】
これらのメモリマットＭＡＴｉおよびＭＡＴｊに対し共通にライトドライバ１００（５６）が設けられる。このライトドライバ１００（５６）は、内部書込データ線ＩＬを介してメモリマットＭＡＴｉおよびＭＡＴｊに対し選択的にデータの書込を行なう。したがって、ライトドライバ１００からの書込データ（書込電流）を供給する内部書込データ線ＩＬは、メモリマットＭＡＴｉおよびＭＡＴｊに共通に設けられる。
【０１１５】
メモリマットＭＡＴｉおよびＭＡＴｊのアクセスを制御するために、共通にアクセスコントローラＡＣＬｉｊが設けられる。このアクセスコントローラＡＣＬｉｊは、メモリマットＭＡＴｉに対し、読出指示信号ＦＥｉ、書込指示信号ＷＥｉおよびセンスアンプ活性化信号ＳＡＥｉを生成し、また、メモリマットＭＡＴｊに対し、読出指示信号ＲＥｊ、書込指示信号ＷＥｊおよびセンスアンプ活性化信号ＳＡＥｊを生成する。また、アクセスコントローラＡＣＬｉｊは、ライトドライバ１００に対して、書込指示信号ＷＥｉｊを生成して与える。
【０１１６】
アクセスコントローラＡＣＬｉｊには、読出モード指示信号ＲＥＡＤ１およびＲＥＡＤ２と書込モード指示信号ＷＲＩＴＥ２が与えられる。読出モード指示信号ＲＥＡＤ１は、ポートＰ１から与えられ、読出モード指示信号ＲＥＡＤ２および書込モード指示信号ＷＲＩＴＥ２は、ポートＰ２から与えられる。アクセスコントローラＡＣＬｉｊは、メモリマットＭＡＴｉおよびＭＡＴｊへのアクセスを制御するとともに、読出データバスＲＢ１およびＲＢ２ならびに書込データバスＷＢ２の接続を制御する。読出データバスＲＢ１はポートＰ１（ＲＯＭポート）に結合され、命令および制御データなどの情報を転送し、読出データバスＲＢ２および書込データバスＷＢ２は、ポートＰ２（ＲＡＭポート）に結合され、書換可能なデータを転送する。
【０１１７】
図１１に示すように、半導体チップ上において隣接して配置されるメモリマットＭＡＴｉおよびＭＡＴｊに対し、ライトドライバ１００を共通に設ける。ライトドライバ１００は、ＭＲＡＭの場合、電流供給によりデータの書込を行なう回路であり、供給電流により磁界を生成する必要があり、電流駆動力が大きく、その占有面積は比較的大きい。したがって、ライトドライバ１００を隣接するバンクで構成されるメモリマットＭＡＴｉおよびＭＡＴｊで共有することにより、チップのレイアウト面積を低減することができる。
【０１１８】
また、メモリマットＭＡＴｉおよびＭＡＴｊが同一のポートに接続される場合および異なるポートに接続される場合いずれの場合においても、両者に同時に書込が行なわれることはない（ＲＯＭポートは書込禁止であり、書込アクセスは行なわれない）。したがって、ライトドライバをメモリマットで共有してもデータの誤書込は生じることはない。
【０１１９】
図１２は、図１１に示すアクセスコントローラＡＣＬｉｊのうちの制御信号を生成するアクセス制御回路の部分の構成を概略的に示す図である。図１２において、アクセスコントローラＡＣＬｉｊは、メモリマットＭＡＴｉに対するアクセスを制御するマットｉアクセス制御回路６１ｉと、メモリマットＭＡＴｊに対するアクセスを制御するマットｊアクセス制御回路６１ｊと、マットｉアクセス制御回路６１ｉおよびマットｊアクセス制御回路６１ｊからの書込指示信号ＷＥｉおよびＷＥｊの論理和に従って書込活性化信号ＷＥｉｊを生成するＯＲ回路１０１を含む。
【０１２０】
マットｉアクセス制御回路６１ｉおよびマットｊアクセス制御回路６１ｊは、図８に示すアクセス制御回路と同様の構成を備え、それぞれ対応のポート指定データ保持回路からのポート指定信号に従ってまたアクセス指示信号ＡＣＴおよびマット選択信号（ＭＡＳ）に従って各対応のアクセス制御信号を生成する。すなわち、メモリマットＭＡＴｉおよびＭＡＴｊそれぞれに対応してポート指定データ保持回路が設けられており（図６参照）、対応のポート指定データ保持回路からのポート指定信号Ｐ１Ｓｉ，Ｐ２Ｓｉ、Ｐ１ＳｊおよびＰ２Ｓｊに従って、選択的に書込指示信号などのアクセス制御信号を生成する。
【０１２１】
ＯＲ回路１０１を利用することにより、メモリマットＭＡＴｉおよびＭＡＴｊにおいて内部書込データ線ＩＬが共有されまたライトドライバ１００が共有される場合においても、一方のメモリマットの選択時に、正確に、書込モード時にライトドライバを活性化してデータの書込は行なうことはできる（書込列選択ゲートは、各マットに対する書込指示信号ＷＥｉおよびＷＥｊにより、選択メモリマットにおいて選択状態とされる）。
【０１２２】
図１３は、ライトドライバの配置の一例を示す図である。図１３においては、メモリマットＭＡＴｉは、メモリセルが行列状に配列されるメモリセルアレイ１０５ｉと、このメモリセルアレイ１０５ｉのビット線ＢＬの両側にそれぞれ配置される書込列選択ゲート群１０７ｌｉおよび１０７ｒｉを含む。書込列選択ゲート群１０７ｌｉおよび１０７ｒｉは、メモリマットＭＡＴｉに対する書込指示信号ＷＥｉと列アドレス信号ＣＡに従って生成された書込列選択信号群ＷＣＳＬ（ｉ）に従って選択列のビット線ＢＬを書込データ線ＩＬｉおよびＩＬにそれぞれ結合する。
【０１２３】
図１３においては、書込列選択信号群ＷＣＳＬ（ｉ）は、書込指示信号ＷＥｉと列アドレス信号ＣＡの論理積に従って生成されるように示す。これは、書込指示信号ＷＥｉが活性化されると列アドレス信号が有効とされて列選択動作（デコード動作）が行われて、書込列選択信号群が生成されることを示す。
【０１２４】
メモリマットＭＡＴｊは、メモリマットＭＡＴｉと同様、メモリセルアレイ１０５ｊと、メモリセルアレイ１０５ｊのビット線ＢＬの両側に配置される書込列選択ゲート群１０７ｌｊおよび１０７ｒｊを含む。このメモリマットＭＡＴｊに対しては、書込指示信号ＷＥｊと列アドレス信号ＣＡに従って書込列選択信号群ＷＣＳＬ（ｊ）が生成されて、選択列のビット線ＢＬが、内部書込データ線ＩＬおよびＩＬｊにそれぞれ結合される。
【０１２５】
ライトドライバ１００が、メモリマットＭＡＴｉおよびＭＡＴｊにより共通に用いられる。内部書込データ線ＩＬｉおよびＩＬｊに、ライトドライブ回路１１０ｉおよび１１０ｊが設けられ、それぞれ、メモリマットＭＡＴｉおよびＭＡＴｊの選択時に、ライトドライバ１００と協働して選択列のビット線に書込電流を供給する。
【０１２６】
図１４は、図１３に示すライトドライバの配置に対するアクセスコントローラＡＣＬｉｊにおける書込データバスとの接続を行なう接続制御回路の構成を示す図である。書込データバスＷＢ２は、相補データ信号Ｄおよび／Ｄをそれぞれ伝達する書込データバス線ＷＢ２Ｌおよび／ＷＢ２Ｌを含む。
【０１２７】
アクセスコントローラＡＣＬｉｊは、ポート接続制御信号ＭＰ２ｉに従ってライトドライブ回路１１０ｉおよびライトドライバ１００をそれぞれ書込データバス線ＷＢ２Ｌおよび／ＷＢ２Ｌに結合するスイッチングゲートＴＧｉおよびＴＧｉｊと、ポート接続制御信号ＮＰ２ｊに従ってライトドライバ１００およびライトドライブ回路１１０ｊをそれぞれ書込データバス線ＷＢ２Ｌおよび／ＷＢ２Ｌに結合するスイッチングゲートＴＧｊｉおよびＴＧｊを含む。
【０１２８】
ポート接続制御信号ＭＰ２ｉが活性化されると、ライトドライブ回路１１０ｉおよびライトドライバ１００が、それぞれ、書込データバス線ＷＢ２Ｌおよび／ＷＢ２Ｌに結合され、これらのバス線ＷＢ２Ｌおよび／ＷＢ２Ｌ上を介して伝達される相補データＤおよび／Ｄに従って選択ビット線に対し電流を供給する。ライトドライブ回路１１０ｉ、ライトドライブ１００およびライトドライブ回路１１０ｊの構成は、先の図１０に示すライトドライブ回路５６ｌおよび５６ｒの構成と同じであり、書込データＤおよび／Ｄに従ってメモリマットＭＡＴｉの選択ビット線に書込電流を供給する。
【０１２９】
一方、メモリマットＭＡＴｊの選択時、ポート接続制御信号ＭＰ２ｊが活性化されると、スイッチングゲートＴＧｊｉおよびＴＧｊが導通し、ライトドライバ１００およびライトドライブ回路１１０ｊに、それぞれ書込データＤおよび／Ｄが伝達される。ライトドライバ１００およびライトドライブ回路１１０ｊが、それぞれ、書込指示信号ＷＥｉｊおよびＷＥｊに従って活性化されて、内部書込データ線ＩＬおよびＩＬｊに電流を供給する。
【０１３０】
このアクセスコントローラＡＣＬｉｊにおいて、ライトドライブ回路１１０ｉおよび１１０ｊとライトドライバ１００の接続先を、選択メモリマットに応じて切換ることにより、メモリマットＭＡＴｉおよびＭＡＴｊにおいて、ビット線ＢＬに、書込データの論理値が同じとき、同じ方向に電流を流すことができ、各メモリマットにおいてメモリセルの可変抵抗素子（磁気抵抗素子）の抵抗値と書込データの論理値を一致させることができる。
【０１３１】
［ライトドライバの配置の変更例］
図１５は、この発明の実施の形態２に従う不揮発性ＲＡＭのライトドライバの配置の変更例を示す図である。図１５において、メモリマットＭＡＴｉおよびＭＡＴｊの間に、ライトドライバ１１０が配設され、これらのメモリマットＭＡＴｉおよびＭＡＴｊのビット線ＢＬ方向の両側に、メモリマットＭＡＴｉおよびＭＡＴｊに共通に内部書込データ線ＩＬａおよびＩＬｂが配設される。メモリマットＭＡＴｉのビット線ＢＬはデータ書込時、書込列選択ゲートＷＳＧｉを介して内部書込データ線ＩＬａおよびＩＬｂに接続される。書込列選択ゲートＷＳＧｉは、列アドレス信号ＣＡ（のデコード信号）と書込指示信号ＷＥｉの組合せ（論理積）により生成される書込列選択信号に従って選択的に導通する。
【０１３２】
一方、メモリマットＭＡＴｊにおいては、データ書込時、ビット線ＢＬは、書込指示信号ＷＥｊと列アドレス信号ＣＡの組合せ（論理積）に従って導通する書込列選択ゲートＷＳＧｊにより、内部書込データ線ＩＬａおよびＩＬｂに結合される。
【０１３３】
ライトドライバ１１０は、アクセスコントローラに含まれる接続制御ゲートＳＧを介して与えられる内部書込データＤと書込指示信号ＷＥｉｊとを受けて内部書込データ線ＩＬａを駆動するＮＡＮＤ型ドライブ回路１１０ａと、内部書込データＤを反転するインバータ１１０ｂと、インバータ１１０ｂの出力信号と書込指示信号ＷＥｉｊに従って内部書込データ線ＩＬｂを駆動するＮＡＮＤ型ドライブ回路１１０ｃを含む。
【０１３４】
接続制御ゲートＳＧは、ポート接続制御信号ＭＰ２ｉおよびＭＰ２ｊに従って、メモリマットＭＡＴｉおよびＭＡＴｊの一方の選択時に書込データバスＷＢ２をライトドライバ１１０に結合する。書込データバスＷＢ２が、図１４に示すように相補データを転送する場合には、インバータ１１０ｂは設けられず、書込データバスの相補データＤおよび／ＤをＮＡＮＤ型ドライブ回路１１０ａおよび１１０ｃにそれぞれ転送する。
【０１３５】
データ書込時、メモリマットＭＡＴｉおよびＭＡＴｊにおいて書込列選択ゲートＷＳＧｉおよびＷＳＧｊの一方が導通状態となる。図１５においては、メモリマットＭＡＴｊに対して設けられる書込列選択ゲートＷＳＧｊが導通状態とされる状態を一例として示す。内部書込データＤは、接続制御信号ＭＰ２ｉまたはＭＰ２ｊに従ってスイッチングゲートＳＧを介して内部書込データバスＷＢ２から与えられる。このスイッチングゲートＳＧは、メモリマットＭＡＴｉおよびＭＡＴｊにおいてビット線ＢＬの配設方向がライトドライバ１１０に関して同じであり、選択メモリマットの位置に応じて書込データＤの論理を切換える必要はない。したがって、選択スイッチングゲートＳＧは、ポート接続制御信号ＭＰ２ｉおよびＭＰ２ｊの一方の活性化時、図１４に示す書込データバスＷＢ２の書込データ線ＷＢ２Ｌにライトドライバ１１０を接続する（図１４の構成において、スイッチングゲートＴＧｉｊおよびＴＧｊｉがともに書込データバス線ＷＢ２Ｌに接続される）。
【０１３６】
今、書込データＤがＬレベルのときには、ＮＡＮＤ型ドライブ回路１１０ａの出力信号がＨレベル、ＮＡＮＤ型ドライブ回路１１０ｃの出力信号がＬレベルであり、ビット線ＢＬの電流Ｉｂｌは、内部書込データ線ＩＬａから内部書込データ線ＩＬｂに向かって流れる。書込データＤがＨレベルのときには、逆に、ビット線ＢＬに対して、内部書込データ線ＩＬｂから内部書込データ線ＩＬａに向かってビット線電流Ｉｂｌが流れる。
【０１３７】
内部書込データ線ＩＬａおよびＩＬｂが、メモリマットＭＡＴｉおよびＭＡＴｊに共通に設けられる。しかしながら、ビット線の書込電流は、この内部書込データ線ＩＬａおよびＩＬｂの中間部から供給されるため、等価的に、ビット線書込電流が流れる経路は、１つのメモリマットに対して設けられる内部書込データ線の部分である。従って、内部書込データ線が２つのメモリマットにわたって配置される場合においても、その配線抵抗の影響は抑制することができ、安定にビット線へ書込電流を供給することができる。
【０１３８】
［実施の形態２の変更例］
図１６は、この発明の実施の形態２に従う不揮発性ＲＡＭの変更例の構成を概略的に示す図である。図１６において、メモリセルアレイが、各々がメモリマットに対応する複数のメモリサブアレイＭＢ０−ＭＢｋに分割される。これらのメモリサブアレイＭＢ０−ＭＢｋの間の境界領域に、ローカルデータ線ＬＩＯが配設される。メモリサブアレイの境界領域に対応して、ローカルセンス／ライト回路ＬＲＷ１−ＬＲＷｋが設けられ、また、メモリサブアレイＭＢ０に対しては、さらに、ローカルセンス／ライト回路ＬＷＲ１と対向する位置に書込ドライブ回路ＷＤ０が設けられ、また、メモリサブアレイＭＢｋにおいても、ローカルセンス／ライト回路ＬＲＷｋと対向するようにライトドライブ回路ＷＤｋが設けられる。
【０１３９】
これらのローカルセンス／ライト回路ＬＲＷ１−ＬＲＷｋの各々は、対応のメモリサブアレイそれぞれに対して設けられるセンスアンプＳＡと、対応の２つの隣接メモリサブアレイに共通に設けられる書込ドライブ回路ＷＤを含む。
【０１４０】
ローカルセンス／ライト回路ＬＲＷ１−ＬＲＷｋに対応してアクセスコントローラＡＣＬ１−ＡＣＬｋが設けられ、また、書込ドライブ回路ＷＤ０およびＷＤｋに対しても、アクセスコントローラＡＣＬ０およびＡＣＬｋ＋１がそれぞれ設けられる。これらのアクセスコントローラＡＣＬ０−ＡＣＬｋ＋１は、これまでに説明した実施の形態における構成と同様、指定されたポートに従って、内部読出バスＲＢ１およびＲＢ２ならびに書込バスＷＢ２への接続を選択的に確立する。
【０１４１】
読出データバスＲＢ１は出力回路ＯＫに結合され、書込データバスＷＢ２および読出データバスＲＢ２が、入出力回路ＩＯＫに接続される。この出力回路ＯＫは、ＲＯＭポートの一部を構成し、また入出力回路ＩＯＫがＲＡＭポートの一部を構成する。各ポートは、また、アドレス信号および制御信号の入力部を含む。
【０１４２】
メモリサブアレイＭＢ０−ＭＢｋそれぞれに対して行選択用のＸデコーダＸＤ０−ＸＤｋが設けられ、また、メモリサブアレイＭＢ０−ＭＢｋに共通に、ポートＰ１からの列アドレス信号ＣＡ１をデコードするポート１列デコーダＹＤＣ１と、ポートＰ２からの列アドレス信号ＣＡ２をデコードするポート２列デコーダＹＤＣ２が設けられる。
【０１４３】
ポート１列デコーダＹＤＣ１からの列選択信号ＣＳＬ１が、メモリサブアレイＭＢ０−ＭＢｋに共通に与えられ、また、ポート２列デコーダＹＤＣ２からの列選択信号ＣＳＬ２が、メモリサブアレイＭＢ０−ＭＢｋに共通に与えられる。
【０１４４】
ＸデコーダＸＤ０−ＸＤｋは、それぞれメモリサブアレイＭＢ０−ＭＢｋを指定するマット選択信号ＭＡＴ０−ＭＡＴｋに従って活性化される。この図１６に示す構成においては、マット選択信号ＭＡＴ０−ＭＡＴｋが、それぞれ、サブメモリブロック選択信号として用いられる。
【０１４５】
この図１６に示す構成において、センスアンプＳＡはメモリサブアレイＭＢ０−ＭＢｋそれぞれに対応して設けられ、一方、書込ドライブ回路ＷＤが２つの隣接メモリサブアレイに共有されるように設けられる。書込ドライブ回路ＷＤの接続制御のために、図１４に示すライトドライバ１００に対する接続制御を行う部分と同様の構成が用いられ、共有するメモリサブアレイに対するポート接続制御信号ＭＰ２に従ってライトドライブ回路ＷＤが書込データバスＷＢ２へ選択的に接続される。
【０１４６】
この図１６に示す構成においては、書込ドライブ回路ＷＤは、隣接する２つのメモリサブアレイにおいて共有されるため、書込ドライブ回路の占有面積を低減することができる。
【０１４７】
メモリサブアレイＭＢ０−ＭＢｋに対するアクセス動作は、先の実施の形態１および実施の形態２においてこれまで説明したバンク構成のメモリマットに対するアクセスと同様であり、列選択ゲートの構成および列選択制御を除いて、同様の制御が行なわれる。
【０１４８】
図１７は、図１６に示すメモリサブアレイ境界部に配置されるローカルデータ線ＬＩＯに関連する部分の構成の一例を示す図である。図１７においては、２つのメモリサブアレイＭＢｉおよびＭＢｊの間に配置されるローカルデータ線ＬＩＯに関連する部分の構成を示す。
【０１４９】
ローカルデータ線ＬＩＯは、メモリサブアレイＭＢｉに対する内部読出データ線ＯＬｉと、メモリサブアレイＭＢｊに対する内部読出データ線ＯＬｊと、これらのメモリサブアレイＭＢｉおよびＭＢｊに共通に設けられる内部書込データ線ＩＬｉを含む。
【０１５０】
メモリサブアレイＭＢｉにおいて、ビット線ＢＬに対し、ポート１読出列選択ゲートＴＲｉ１と、ポート２読出列選択ゲートＴＲｉ２と、ポート２書込列選択ゲートＴＷｉ２が設けられる。ポート１読出列選択ゲートＴＲｉ１は、ポート１接続制御信号ＭＰ１ｉとポート１の列選択信号ＣＳＬ１を受けるＡＮＤゲートＡＧｉ１の出力信号に従って選択的に導通し、ポート２読出列選択ゲートＴＲｉ２は、ポート２からの列選択信号ＣＳＬ２とポート２接続制御信号ＭＰ２ｉを受けるＡＮＤ回路ＡＧｉ２の出力信号に従って選択的に導通する。ポート２書込列選択ゲートＴＷｉ２は、同様、ＡＮＤ回路ＡＧｉ２の出力信号に従って導通する。
【０１５１】
読出列選択ゲートＴＲｉ１およびＴＲｉ２は、導通時、ビット線ＢＬを内部読出データ線ＯＬｉに結合し、書込列選択ゲートＴＷｉ２は、導通時、ビット線ＢＬを内部書込データ線ＩＬｉに結合する。
【０１５２】
メモリサブアレイＭＢｊにおいても、ポート１読出列選択ゲートＴＲｊ１、ポート２読出列選択ゲートＴＲｊ２およびポート２書込列選択ゲートＴＷｊ２が設けられる。ポート１読出列選択ゲートＴＲｊ１は、ポート１の列選択信号ＣＳＬ１とポート１接続制御信号ＭＰ１ｊを受けるＡＮＤ回路の出力信号に従って選択的に導通する。ポート２読出列選択ゲートＴＲｊ２は、ポート２用列選択信号ＣＳＬ２とメモリサブアレイＭＢｊに対するポート２接続制御信号ＭＰ２ｊの出力信号を受けるＡＮＤ回路ＡＧｊ２の出力信号に従って選択的に導通する。ポート２書込列選択ゲートＴＷｊ２も、ＡＮＤ回路ＡＧｊ２の出力信号に従って選択的に導通する。読出列選択ゲートＴＲｊ１およびＴＲｊ２は、導通時、ビット線ＢＬを、内部読出データ線ＯＬｊに結合し、書込列選択ゲートＴＷｊ２は、導通時、ビット線ＢＬを内部書込データ線ＩＬｉに結合する。
【０１５３】
メモリサブアレイＭＢｉおよびＭＢｊに共通に設けられるローカルセンス／ライト回路は、内部読出データ線ＯＬｉおよびＯＬｊそれぞれに対して設けられるセンスアンプＳＡｉおよびＳＡｊと、内部書込データ線ＩＬｉに対して設けられる書込ドライブ回路ＷＤを含む。
【０１５４】
この図１７に示す構成において、メモリサブアレイＭＢｉに対しポートＰ１を介してアクセスが行なわれる場合、ポート１接続制御信号ＭＰ１ｉが活性化される（Ｈレベルとなる）。したがって、メモリサブアレイＭＢｉのビット線ＢＬが、ポート１読出列選択ゲートＴＲｉ１に従って選択されて、内部読出データ線ＯＬｉに結合される。ポートＰ１は書込アクセスは行なわない。したがって、センスアンプＳＡｉによるセンス動作が行なわれてメモリサブアレイＭＢｉの選択メモリセルのデータの読出が行なわれる。図１６に示す対応のアクセスコントローラＡＣＬｉに従ってセンスアンプの出力部の接続経路が設定されて、内部データの読出が行なわれる。
【０１５５】
一方、このポートＰ１からのアクセスと並行してポートＰ２からのアクセスが行なわれた場合、ポート２列選択信号ＣＳＬ２が選択状態へ駆動される。この状態で、ポートＰ１からのアクセスによりメモリサブアレイＭＢｉが選択状態へ駆動された場合、ポートＰ２からのアクセスは、メモリサブアレイＭＢｊに対して実行される。これは、ポート１は、命令などの情報を外部の演算処理装置が格納するためのデータ出力転送のために用いられ、ポート２は、書換可能なアプリケーションデータまたは中間処理データが転送される。ポートＰ１およびＰ２それぞれがアクセス対象とする領域のアドレス（メモリマット）が異なるため、ポートＰ１およびポートＰ２が並行して同じアドレス領域（メモリマット）をアクセスすることはない。
【０１５６】
このため、ポートＰ１からの読出アクセスの場合、メモリサブアレイＭＢｉに対するポート接続制御信号ＭＰ１ｊが活性化され、メモリサブアレイＭＢｉの読出列選択ゲートＴＲｉ１が導通して内部データ読出線ＯＬｉに結合され、センスアンプＳＡｉが、ポート１読出データバスに結合される。ポートＰ２からの読出アクセスがメモリサブアレイＭＢｊに対して実行される場合、メモリサブアレイＭＢｊのビット線ＢＬは、読出列選択ゲートＴＲｊ１を介して内部読出データ線ＯＬｊに接続され、センスアンプＳＡｊによりデータの読出が行なわれる。センスアンプＳＡｊは、ポート２読出データバスに結合される。センスアンプＳＡｉおよびＳＡｊにより、並行してポートＰ１およびポートＰ２にそれぞれの読出データが転送される（アクセスコントローラの制御による）。
【０１５７】
一方、メモリサブアレイＭＢｊに対して、データの書込が行なわれる場合には、書込列選択ゲートＴＷｊ２が導通し、このメモリサブアレイＭＢｊのビット線ＢＬへ書込ドライブ回路ＷＤから内部書込データ線ＩＬｉを介して書込電流が供給されデータの書込が行なわれる。
【０１５８】
ポートＰ１およびポートＰ２から、これらのメモリサブアレイＭＢｉおよびＭＢｊに並行して、データ書込が行なわれることはない。したがって、内部書込データ線を駆動する書込ドライブ回路ＷＤが、メモリサブアレイＭＢｉおよびＭＢｊで共有されていしても、書込データの衝突および読出データと書込データの衝突は生じず、正確な書込および読出を行なうことができる。
【０１５９】
以上のように、この発明の実施の形態２に従えば、実施の発明１の効果に加えて、書込ドライブ回路を、隣接メモリマットまたは隣接メモリサブアレイで共有しており、書込電流を供給するために比較的大きな面積を占有する書込ドライブ回路の数を低減することができ、チップレイアウト面積を低減することができる。
【０１６０】
［実施の形態３］
図１８は、この発明の実施の形態３に従う不揮発性ＲＡＭの全体の構成を概略的に示す図である。図１８において、不揮発性ＲＡＭは、Ｍ個のメモリアレイブロックＭＡＰ１−ＭＡＰＭを含む。これらのメモリアレイブロックＭＡＰ１−ＭＡＰＭは、１つのメモリセルアレイを分割するメモリサブブロックで実現されてもよく、また、個々別々に同一半導体チップ上に配置されるメモリセルマット（入力コードおよびコラムデコーダおよび周辺回路を含む１つのメモリ回路単位）であってもよい。図１８においては、これらメモリアレイブロックＭＡＰ１−ＭＡＰＭが、１つのメモリアレイ内に配置され、デジット線ＤＬを共有する構成を示す。
【０１６１】
メモリアレイブロックＭＡＰ１−ＭＡＰＭは、それぞれ複数のＩ／Ｏブロックに分割される。図１８においては、メモリアレイブロックＭＡＰ１においては、Ｉ／ＯブロックＩ／Ｏ１１−Ｉ／Ｏ１ｎが設けられ、メモリアレイブロックＭＡＰ２においては、Ｉ／ＯブロックＩ／Ｏ２１−Ｉ／Ｏ２ｎが設けられる。
【０１６２】
メモリアレイブロックＭＡＰＭにおいては、Ｉ／ＯブロックＩ／ＯＭ１−Ｉ／ＯＭｎが設けられる。これらのＩ／Ｏブロックは、１つの多ビットデータ（情報）の１ビットのデータ／情報を格納する。Ｉ／Ｏブロック各々において、複数のビット線が配置され、複数のビット線から１つのビット線が選択されて１ビットのデータの読出／書込が行なわれる。１つのメモリアレイブロックにおいて、内部のＩ／Ｏブロックが同時に選択される。
【０１６３】
これらのメモリアレイブロックＭＡＰ１−ＭＡＰＭそれぞれに対応して、ワード線ドライバＷＤＫ１−ＷＤＫＭが設けられ、メモリアレイブロックＭＡＰ１−ＭＡＰＭに共通にデジット線ドライバＤＤＫが設けられる。このデジット線ドライバＤＤＫは、データ書込時に、メモリアレイブロックＭＡＰ１−ＭＡＰＭに対して共通に配置されるデジット線を選択状態に駆動して、デジット線書込電流を流す。
【０１６４】
ワード線ＷＬは、各メモリアレイブロック単位で選択され、一方、ディジット線ＤＬは、上述のように、メモリアレイブロックＭＡＰ１−ＭＡＰＭに対して共通に選択される。ディジット線ＤＬが選択状態へ駆動されるのは、データ書込時であり、一方、ワード線ＷＬが選択されるのはデータ読出時である。１つのポートすなわちＲＡＭポート（ポートＰ２）から書込アクセスが行なわれるとき、ポートＰ１からは単に読出アクセスが行なわれるだけである。したがって、これらのメモリアレイブロックＭＡＰ１−ＭＡＰＭに共通にディジット線ドライバＤＤＫを配置しても、何ら書込データの衝突は生じない。また、ポートＰ２からのデータ書込アクセスと、ポートＰ１からのデータ読出アクセスが並行して行なわれる場合においても、後に詳細に説明するように、このポート制御は、Ｉ／Ｏブロック単位で実行されるため、同一アドレスに対して、ポートＰ２からの書込アクセスおよびポートＰ１からの読出アクセスが実行されても、ポートＰ１の読出データは、ポートＰ２からの書込データの影響を受けることがなく、正確に並列書込／読出を実行することができる。
【０１６５】
これらのメモリアレイブロックＭＡＰ１−ＭＡＰＭそれぞれに対応して、ローカル内部読出／書込回路ＬＲＷＫ１−ＬＲＷＫＭが設けられる。このローカル読出／書込回路ＬＲＷＫ１−ＬＲＷＫＭは、それぞれ、対応のメモリマットにおけるＩ／Ｏブロックに対して設けられるローカルセンス／書込ドライブ回路ＬＳＷＤを含む。図１８においては、メモリマットＭＡＰ１のＩ／ＯブロックＩ／Ｏ１１−Ｉ／Ｏ１ｎそれぞれに対して設けられるローカルセンス／書込ドライブ回路ＬＳＷＤ１−ＬＳＷＤｎを代表的に示す。
【０１６６】
これらのローカル書込／読出回路ＬＲＷＫ１−ＬＲＷＫＭに対し、アクセスコントローラＡＣＬ１−ＡＣＬＭが設けられる。これらのアクセスコントローラＡＣＬ１−ＡＣＬＭは、それぞれ、対応のローカル読出／書込回路におけるローカルセンス／書込ドライブ回路ＬＳＷＤ１−ＬＳＷＤｎにそれぞれ対応して設けられるローカルアクセス制御回路ＬＡＣＫ１−ＬＡＣＫｎを含み、Ｉ／Ｏブロック単位でポート接続制御を実行する。
【０１６７】
これらのアクセスコントローラＡＣＬ１−ＡＣＬＭは、それぞれ、読出データバスＲＢ２、書込データバスＷＢ２および読出データバスＲＢ１の所定のバス線との接続を確立し、かつデータの書込／読出を制御する。
【０１６８】
読出データバスＲＢ２および書込データバスＷＢ２が、ＲＡＭデータ入出力ポート（ＲＡＭポート）９に結合され、読出データバスＲＢ１がＲＯＭ情報出力ポート（ＲＯＭポート）８に結合される。ＲＡＭデータ入出力ポート９は、データの出力回路および入力回路を含み、ＲＯＭ情報出力ポート８は、データ（情報）の出力回路を含む。
【０１６９】
この図１８に示す構成において、列デコーダは、メモリマットＭＡＰ１−ＭＡＰＭに対し、個々に設けられてもよく、またディジット線ドライバＤＤＫと同様、これらのメモリマットＭＡＰ１−ＭＡＰＭに共通に設けられてもよい。
【０１７０】
このローカルセンス／書込ドライブ回路ＬＳＷＤ１−ＬＳＷＤｎそれぞれの構成と対応のローカルアクセス制御回路ＬＡＣＫ１−ＬＡＣＫｎの構成は、先の実施の形態１または２において示す構成と同様であり、対応のメモリマットを１つのＩ／Ｏブロックとして読換えることにより、実施の形態１または２において説明した構成を利用して、Ｉ／Ｏブロック単位でのポート接続制御を実現する構成が得られる。ただし、図３に示すディジット線ドライバは、図１８に示す構成においてはメモリアレイブロックＭＡＰ１−ＭＡＰＭに共通に設けられ、各Ｉ／Ｏブロックには設けられない点が、実施の形態１または２と本実施の形態３と異なる。マット選択信号をＩ／Ｏブロック選択信号として利用する。
【０１７１】
ディジット線ドライバＤＤＫの活性化は、書込モード指示信号ＷＲＩＴＥが与えられたときに活性化される。この書込モード指示信号ＷＲＩＴＥは、ＲＡＭポートから与えられるだけであり、ポートＰ２からの制御信号に含まれる書込モード指示信号ＷＲＩＴＥ２を参照することにより、データ書込時にディジット線ドライバＤＤＫの活性化を行なうことができる。
【０１７２】
メモリアレイブロックＭＡＰ１−ＭＡＰＭにおけるデータの書込／読出の制御は、実施の形態１または２と同様にして実行される。ただし、実施の形態２の構成と異なり、ローカルの書込ドライブ回路は、隣接Ｉ／Ｏブロックで共有されず、個々のＩ／Ｏブロックに対して設けられる（隣接Ｉ／Ｏブロックが同一のポートに割当てられる場合があるため、隣接Ｉ／Ｏブロックで書込ドライブ回路を共有することができない）。
【０１７３】
このメモリアレイブロックそれぞれにおいてＩ／Ｏブロック単位でのポート接続制御を行なうことにより、メモリアドアレス空間（メモリアレイブロックＭＡＰ１−ＭＡＰＭ全体が形成することのできるアドレス領域）において同一アドレスの情報／データを、ＲＯＭデータおよびＲＡＭデータとして別々に利用することができ、演算処理回路のアドレス空間が小さい場合においても、ポート接続制御により、互いに属性の異なる情報、すなわち命令およびアプリケーションデータまたは中間処理データを不揮発性ＲＡＭとの間で送受信することができ、メモリアドレス空間を実質的に拡張することができる。
【０１７４】
図１９は、この発明の実施の形態３における不揮発性ＲＡＭの転送データの構造を概略的に示す図である。演算処理回路から与えられるアドレスにより、１つのメモリアレイブロックにおいて、ビットＩ／Ｏ１−Ｉ／Ｏｎに対応するＩ／Ｏブロックが指定される。ＲＯＭポートに対しては、ビットＩ／Ｏ１−Ｉ／Ｏｉが割当てられ、ＲＡＭポートに対しては、ビットＩ／Ｏｊ−Ｉ／Ｏｎのビットが割当てられる。
【０１７５】
例えば、ＲＡＭポート（ポートＰ２）からのアクセス時においては、選択メモリアレイブロックにおいて、対応のＩ／Ｏブロックにおいて並列にメモリセル選択が実行される。ＲＯＭポートからは、このとき、読出アクセスが行なわれない場合には、ビットＩ／Ｏ１−Ｉ／Ｏｉの読出は行なわれず、ビットＩ／Ｏｊ−Ｉ／ＯｎがポートＰ２を介して読出される。ポートＰ２からのアクセスがない場合、マット選択信号に対応するＩ／Ｏブロック選択信号は非活性状態であり、ビットＩ／Ｏｊ−Ｉ／Ｏｎの読出は禁止される。また、ポートＰ１およびＰ２から並列して、同一アドレスに対し読出アクセスが行なわれた場合、これらのビットＩ／Ｏ１−Ｉ／Ｏｎが並列に読出され、それぞれＲＯＭポートおよびＲＡＭポートを介して転送される。
【０１７６】
一方、ＲＡＭポートからの書込アクセスおよびＲＯＭポートからの読出アクセスが同じアドレスに対して並行して行なわれる場合においても、データの書込は、ビットＩ／Ｏｊ−Ｉ／Ｏｎに対して実行され、ビットＩ／Ｏ１−Ｉ／Ｏｉは、この書込の影響を受けずに、読出が行なわれる（Ｉ／Ｏブロック単位での書込／読出が行なわれるため）。
【０１７７】
なお、異なるアドレスのメモリアレイブロックへ各ポートからアクセスする場合には、各ポートからのアクセス指示に従って対応のメモリアレイブロックにおいてメモリセル選択が実行され、各ポート対応のＩ／Ｏブロックに対するアクセスが実行される。
【０１７８】
したがって、このメモリマットにおいて複数のＩ／Ｏブロックが設けられ、それぞれが異なるビットに対応する場合、各ビットを、ポート指定データに従って、ポートＰ１（ＲＯＭポート）またはポートＰ２（ＲＡＭポート）に結合することができる。これにより、演算処理回路のアドレス空間または不揮発性ＲＡＭのアドレス空間が小さい場合においても、実質的にアドレス空間を拡張して、演算命令の実行／処理を行なうことができる。
【０１７９】
通常の、メモリシステムにおいてバンク切換によりアドレス領域を切換える構成に代えて、Ｉ／Ｏブロック単位でポート接続制御を行なうことにより、容易に、同じアドレス領域をＲＯＭ情報格納領域およびＲＡＭデータ格納領域として利用することができる。また、通常のメモリアドレス空間でのバンク切換時においては、一方のバンクのデータしか利用できない欠点が生じるものの、メモリアレイブロック単位でメモリセル選択を実行し、かつＩ／Ｏブロック単位でのポート接続制御を行なうことにより、これらのＲＯＭポートおよびＲＡＭポートそれぞれに対して割当てられたアドレスのデータ／情報を並行してアクセスすることができ、処理効率が改善される。
【０１８０】
［実施の形態４］
図２０は、この発明の実施の形態４に従うアクセスコントローラＡＣＬｉの構成を概略的に示す図である。このアクセスコントローラＡＣＬｉは、ＲＯＭ領域およびＲＡＭ領域を設定するために、各メモリマットに対応して配置される。本実施の形態４においては、外部のまたは同一チップ上の演算処理回路から、各メモリマットに対してアクセスする際に利用するポートＰ１およびＰ２を、それぞれＲＯＭポートとして利用するかまたはＲＡＭポートとして利用するかを、ポート属性設定信号ＲＯＭ／ＲＡＭ♯１およびＲＯＭ／ＲＡＭ♯２により設定する。このポート属性設定信号ＲＯＭ／ＲＡＭ♯１およびＲＯＭ／ＲＡＭ♯２は、各々、Ｈレベルに設定されると、対応のポートをＲＡＭポートに設定する。したがって、本実施の形態４においては、１つのポートは、ＲＯＭポートまたはＲＡＭポートに固定されず、ＲＯＭポートおよびＲＡＭポートに適宜、処理の進行状況または処理内容に応じて柔軟に設定することができる。
【０１８１】
図２０において、アクセスコントローラＡＣＬｉは、外部の演算回路から与えられるアクセス指示信号ＥＮ♯１（信号ＡＣＴに対応）とマット選択信号ＭＡＳ１ｉとを受けるＡＮＤ回路１２０ａと、ポートＰ２に対するアクセスを要求するアクセス指示信号ＥＮ♯２とマット選択信号ＭＡＳ２ｉとを受けるＡＮＤ回路１２０ｂと、ＡＮＤ回路１２０ａおよび１２０ｂの出力信号を受けてマット活性化信号ＭＴＡＣＴを生成するＯＲ回路１２０ｃを含む。これらのゲート回路１２０ａ−１２０ｃにより、対応のメモリマットがアクセス要求されたかの判定が行なわれる。マット選択信号ＭＡＳ１ｉおよびＭＡＳ２ｉは、それぞれポートＰ１およびポートＰ２に与えられるアドレス信号のうちのマット指示アドレス信号をデコードして生成される信号である（図４参照）。
【０１８２】
アクセスコントローラＡＣＬｉは、さらに、ポートＰ１に対するポート属性指定信号ＲＯＭ／ＲＡＭ♯１とポート１に対する書込モード指示信号ＷＲＩＴＥ♯１とを受けるＡＮＤ回路１２１ａと、ポートＰ２に対するポート属性指定信号ＲＯＭ／ＲＡＭ♯２とポートＰ２からの書込モード指示信号ＷＲＩＴＥ♯２とを受けるＡＮＤ回路１２１ｂと、ＡＮＤ回路１２１ａおよび１２１ｂの出力信号を受けて対応のメモリマットに対する書込指示信号ＷＲＩＴＥを生成するＯＲ回路１２２ａと、ポートＰ１に対するアクセス指示信号ＥＮ♯１とポートＰ１に対する読出モード指示信号ＲＥＡＤ♯１とを受けるＡＮＤ回路１２１ｃと、アクセス指示信号ＥＮ♯２とポートＰ２に対する読出モード指示信号ＲＥＡＤ♯２とを受けるＡＮＤ回路１２１ｄと、ＡＮＤ回路１２１ｃおよび１２１ｄの出力信号を受けて対応のメモリマットに対する読出指示信号ＲＥＡＤを生成するＯＲ回路１２２ｂと、ポートＰ１のデータＤＡＴＡ♯１とポート属性指定信号ＲＯＭ／ＲＡＭ♯１とを受けるＡＮＤ回路１２１ｅと、ポートＰ２のデータＤＡＴＡ♯２とポート２の属性指定信号ＲＯＭ／ＲＡＭ♯２とを受けるＡＮＤ回路１２１ｆとを含む。
【０１８３】
ＡＮＤ回路１２１ｅおよび１２１ｆは、対応のポートＰ１およびポートＰ２が、ＲＯＭポートに指定されたときには、出力信号レベルをＬレベルに固定し、対応のデータＤＡＴＡ♯１およびＤＡＴＡ♯２の内部転送を禁止する。
【０１８４】
アクセスコントローラＡＣＬｉは、さらに、ＯＲ回路１２０ｃからのマット活性化信号ＭＴＡＣＴとポート属性指定信号ＲＯＭ／ＲＡＭ♯１とを受けてポート接続制御信号ＭＰＷ１を生成するＡＮＤ回路１２３ａと、マット活性化信号ＭＴＡＣＴとポート属性指定信号ＲＯＭ／ＲＡＭ♯２とを受けてポート接続制御信号ＭＰＷ２を生成するＡＮＤ回路１２３ｂと、マット活性化信号ＭＴＡＣＴと内部読出モード指示信号ＲＥＡＤとを受けてセンスアンプ活性化信号ＳＡＥｉおよび読出指示信号ＲＥｉを生成するＡＮＤ回路１２３ｃと、内部書込モード指示信号ＷＲＩＴＥとマット活性化信号ＭＴＡＣＴとに従って書込指示信号ＷＥｉを生成するＡＮＤ回路１２３ｄを含む。
【０１８５】
この図２０に示す構成において、ポート属性指定信号ＲＯＭ／ＲＡＭ♯１またはＲＯＭ／ＲＡＭ♯２がＬレベルに設定され、対応のポートがＲＯＭポートに指定されると、書込モード指示信号ＷＲＩＴＥ♯１またはＷＲＩＴＥ♯２は、ＡＮＤ回路１２１ａおよび１２１ｂにより内部への転送が禁止されて、内部書込モード指示信号ＷＲＩＴＥの活性化が停止される。書込データについても、同様、内部への転送は禁止され、ＲＯＭ領域の格納情報の誤書換が生じるのを防止する。
【０１８６】
なお、ポート属性指定信号ＲＯＭ／ＲＡＭ♯１およびＲＯＭ／ＲＡＭ♯２が、ＲＡＭポートを指定するＨレベルに設定された場合には、ＡＮＤ回路１２１ａまたは１２１ｂにより、ポート対応の書込モード指示信号ＷＲＩＴＥ♯１およびＷＲＩＴＥ♯２が伝達され、内部の書込モード指示信号ＷＲＩＴＥが生成される。
【０１８７】
ポート特定読出モード指示信号ＲＥＡＤ♯１およびＲＥＡＤ♯２は、ポート活性化用のアクセス指示信号ＥＮ♯１およびＥＮ♯２の活性化に従ってＡＮＤ回路１２１ｃおよび１２１ｄを介して伝達され、内部の読出モード指示信号ＲＥＡＤが生成される。これにより、選択メモリマットにおいて、センスアンプ活性化信号ＳＡＥｉおよび読出指示信号ＲＥｉが活性化され、内部のデータ読出が行なわれる。
【０１８８】
ポート接続制御信号ＭＰＷ１は、対応のメモリマットが選択されて、かつポート１属性指定信号ＲＯＭ／ＲＡＭ♯１がＨレベルのときにＨレベルに設定される。同様、ポート接続制御信号ＭＰＷ２は、マット活性化信号ＭＴＡＣＴがＨレベルでありかつポート属性指定信号ＲＯＭ／ＲＡＭ♯２がＨレベルのときに、Ｈレベルに設定される。したがって、これらのポート接続制御信号ＭＰＷ１およびＭＰＷ２は、Ｈレベルのときに、対応のライトドライバを、対応のポートのデータバスに結合するようにマルチプレクサ１２５の動作を制御する。このマルチプレクサ１２５は、書込データの内部データの転送を制御するだけであり、読出データは、内部から転送されて対応のポートを介して外部演算処理回路に転送される。
【０１８９】
図２１は、アクセスコントローラＡＣＬｉに含まれるデータバス接続設定回路６２の構成の一例を示す図である。図２１に示すデータバス、ＤＢ１およびＤＢ２は、書込データおよび読出データをともに転送するように示される。これらのデータバスＤＢ１およびＤＢ２は、書込データバスおよび読出データバスが別々に配置される構成であってもよい。
【０１９０】
メモリマットにおいては、センスアンプ５５およびライトドライバ５６が設けられる。マルチプレクサ１２５は、ポート接続制御信号ＭＰＷ１がＨレベルのとき導通し、ライトドライバ５６をポート１データバスＤＢ１に結合するトランスファーゲート１２５ａと、ポート接続制御信号ＭＰＷ２の活性化時導通し、ライトドライバ５６をポート２データバスＤＢ２に接続するトランスミッションゲート１２５ｂを含む。
【０１９１】
ポート属性指定信号ＲＯＭ／ＲＡＭ♯１およびＲＯＭ／ＲＡＭ♯２により、ポートＰ１およびＰ２それぞれに対応するデータバスＤＢ１およびＤＢ２がＲＡＭ領域に設定された場合には、ライトドライバ５６は、対応のデータバスに結合され、データの書込を行なうことができる。
【０１９２】
一方、センスアンプ５５に対して設けられる読出接続設定回路１２７は、マット選択信号ＭＡＳ２ｉに従って導通し、導通時センスアンプ５５をデータバスＤＢ２に接続するトランスファーゲート１２７ａと、メモリマット選択信号ＭＡＳ１ｉに従ってセンスアンプ５５をデータバスＤＢ１に接続するスイッチングゲート１２７ｂを含む。
【０１９３】
このマット選択信号ＭＡＳ１ｉおよびＭＡＳ２ｉは、対応のメモリマットが選択されたときに活性化される。また、ポートＰ１およびＰ２がそれぞれ対応のメモリマットをアクセスするときに、センスアンプ５５の読出データが、対応のポートに接続するデータバスＤＢ１またはＤＢ２に接続される。読出接続設定回路１２７においては、マット選択信号ＭＡＳ１ｉおよびＭＡＳ２ｉを利用しており、対応のメモリマットがＲＯＭ領域およびＲＡＭ領域のいずれかに設定された状態で、ポートＰ１およびＰ２がＲＯＭポートおよびＲＡＭポートのいずれに設定されても、データの読出は行なうことができる。
【０１９４】
したがって、図２０および図２１に示すアクセスコントローラＡＣＬｉの構成を利用することにより、ポートＰ１およびＰ２がＲＯＭポートおよびＲＡＭポートのいずれに設定されても、ＲＯＭ領域に指定されたメモリマットに対する書込をメモリマット単位で禁止することができ、データ破壊を確実に防止することができる。
【０１９５】
［変更例］
図２２は、この発明の実施の形態４に従う書込禁止回路の変更例の構成を示す図である。図２２においては、メモリマットＭＡＴ１−ＭＡＴｎに対し共通にコントロールバスＣＴＢ１およびＣＴＢ２とデータバスＤＢ１およびＤＢ２とアドレスバスＡＤＢ１およびＡＤＢ２が設けられる。ポートＰ１に対してポート１入力回路１３０が設けられ、ポートＰ２に対してポート２入力回路１３２が設けられる。ポート１入力回路１３０は、ポート１読出モード指示信号ＲＥＡＤ♯１をバッファ処理して内部ポート読出モード指示信号ＲＥＡＤ１を生成するバッファ回路１３０ａと、ポート属性指定信号ＲＯＭ／ＲＡＭ♯１とポート１書込モード指示信号ＷＲＩＴＥ♯１とを受けて、内部ポート１書込モード指示信号ＷＲＩＴＥ１を生成するＡＮＤ回路１３０ｂと、ポート属性指定信号ＲＯＭ／ＲＡＭ♯１と書込データＤＡＴＡ♯１とを受けて内部書込データＤＴ１を生成するＡＮＤ回路１３０ｃと、外部からのアドレス信号ＡＤＤ♯１をバッファ処理してポート１内部アドレス信号ＡＤＤ１を生成してアドレスバスＡＤＢ１上に伝達するバッファ回路１３０ｄを含む。
【０１９６】
ポート２入力回路１３２は、ポート２読出モード指示信号ＲＥＡＤ♯２をバッファ処理して内部ポート２読出モード指示信号ＲＥＡＤ２を生成するバッファ回路１３２ａと、ポート属性指定信号ＲＯＭ／ＲＡＭ♯２とポート２書込モード指示信号ＷＲＩＴＥ♯２とを受けて、内部ポート１書込モード指定信号ＷＲＩＴＥ２を生成するＡＮＤ回路１３２ｂと、ポート属性指定信号ＲＯＭ／ＲＡＭ♯２と書込データＤＡＴＡ♯２とを受けて内部書込データＤＴ２を生成するＡＮＤ回路１３２ｃと、アドレス信号ＡＤＤ♯２をバッファ処理して内部アドレス信号ＡＤＤ２を生成するバッファ回路１３２ｄを含む。
【０１９７】
内部ポート１書込モード指示信号ＷＲＩＴＥ１および内部ポート１読出モード指定信号ＲＥＡＤ１は、ポート１のコントロールバスＣＴＢ１上の制御信号線を伝達される。音２の内部読出モード指示信号ＲＥＡＤ２および内部書込モード指示指定信号ＷＲＩＴＥ２は、ポートＰ２のコントロールバスＣＴＢ２の制御信号線上を伝達される。
【０１９８】
この図２２に示す構成の場合、各ポート単位で、内部書込の禁止／許可をポート属性指定信号ＲＯＭ／ＲＡＭ♯１およびＲＯＭ／ＲＡＭ♯２に従って設定しており、各メモリマットに、ＲＯＭ領域情報書換禁止のための構成を設ける必要がなく、回路構成が簡略化される（センスアンプおよびライトドライバのバス接続制御をマット選択信号に従って実行することできる）。
【０１９９】
［変更例２］
図２３は、この発明の実施の形態４の変更例の構成を概略的に示す図である。図２３においては、ポートＰ１およびポートＰ２に対し、モードレジスタ回路１４０ａおよび１４０ｂが設けられる。モードレジスタ回路１４０ａは、ポートＰ１からの書込モード指示信号ＷＲＩＴＥ♯１、アクセス指示信号ＥＮ♯１およびアドレス信号ＡＤＤ♯１の特定のアドレスビットに従って、ポート属性指定信号ＦＲＯＭ／ＲＡＭ♯１を生成する。同様、モードレジスタ回路１４０ｂは、ポートＰ２からの書込モード指示信号ＷＲＩＴＥ♯２とアクセス指示信号ＥＮ♯２とアドレス信号ＡＤＤ♯２とに従って、ポートＰ２の属性指定信号ＦＲＯＭ／ＲＡＭ♯２を生成する。
【０２００】
これらのモードレジスタ回路１４０ａおよび１４０ｂは、制御信号ＷＲＩＴＥ♯１およびＥＮ♯１のタイミング関係およびアドレス信号ＡＤＤ♯１の特定のアドレスビットに従ってポート属性指定信号ＦＲＯＭ／ＲＡＭ♯１を生成しかつラッチする。モードレジスタ回路１４０ｂも、同様、書込モード指示信号ＷＲＩＴＥ♯２およびアクセス指示信号ＥＮ♯２の特定のタイミング関係に従ってアドレス信号ＡＤＤ♯２の特定のビットを取込み、取り込んだアドレス信号ビットの値に応じてポート属性指定信号ＦＲＯＭ／ＲＡＭ♯２を生成しかつラッチする。
【０２０１】
モードレジスタ回路１４０ａおよび１４０ｂが、それぞれメモリマットに対応して配置される場合には、メモリマットをアドレス信号ＡＤＤ♯１およびＡＤＤ♯２により特定することにより、メモリマット個々に、モードレジスタ回路１４０ａおよび１４０ｂにおいて、ポート属性指定信号ＦＲＯＭ／ＲＡＭ♯１およびＦＲＯＭ／ＲＡＭ♯２を生成することができる。
【０２０２】
また、これらのモードレジスタ回路１４０ａおよび１４０ｂは、メモリマットに対して共通に配置されてもよい。例えばバーストモードのように各ポートを連続してＲＡＭポートまたはＲＯＭポートとして利用する場合、連続サイクルの最初にポート属性の設定を行い、設定されたポート属性に従ってデータアクセスを行う。
【０２０３】
この場合、各外部の演算処理回路からはポート属性指定信号は与えられず、不揮発性ＲＡＭ内部で、各ポートの属性を指定する信号ＦＲＯＭ／ＲＡＭ♯１およびＦＲＯＭ／ＲＡＭ♯２に従って、ポート属性の判定が行なわれ、アクセス制御が実行される。
【０２０４】
モードレジスタ回路１４０ａおよび１４０ｂからのポート属性指定信号ＦＲＯＭ／ＲＡＭ♯１およびＦＲＯＭ／ＲＡＭ♯２が、図２０および図２２に示すポート属性指定信号ＲＯＭ／ＲＡＭ♯１およびＲＯＭ／ＲＡＭ♯２に代えて、各メモリマットにおいて用いられる。
【０２０５】
以上のように、この発明の実施の形態４に従えば、ポートをＲＯＭポートおよびＲＡＭポート両者に設定可能とし、ＲＯＭポート指定時において、確実にポートのデータの書込を禁止しており、ポートへのアクセスの自由度が改善される。
【０２０６】
なお、メモリマットの構成としては、先の実施の形態１から３のいずれが用いられてもよい。
【０２０７】
［実施の形態５］
図２４は、この発明の実施の形態５に従う演算処理システムの構成を概略的に示す図である。この演算処理システムにおいては、演算処理回路２００および不揮発性ＲＡＭは、ポートＰ１およびＰ２を介して情報を双方向に転送することができる。ポートＰ１およびＰ２をＲＯＭ領域として利用するかＲＡＭ領域として指定するかは、ポート属性指定信号ＲＯＭ／ＲＡＭ♯１およびＲＯＭ／ＲＡＭ♯２により指定される。したがって、不揮発性ＲＡＭ２０３は、先の実施の形態１から４の構成を有しており、特定のポートＰ１およびＰ２に対し並行にアクセスすることができ、命令および演算処理データを並列に取出すのみならず、ポートＰ１を、ＲＯＭポートに代えてＲＡＭポートとして利用して必要なデータを並行して転送することができる。
【０２０８】
図２５は、この発明の実施の形態５における演算処理システムにおけるデータアクセスシーケンスを示す図である。この演算処理システムは、クロック信号に従ってその動作サイクルが規定され、図２５において各サイクルは、クロック信号により指定されるサイクルを示す。
【０２０９】
サイクル♯１において、ポートＰ１がＲＯＭポートに設定され、また、ポートＰ２がＲＡＭポートにそれぞれ設定される（ポート属性指定信号ＲＯＭ／ＲＡＭ♯１およびＲＯＭ／ＲＡＭ♯２により設定される）。このサイクル♯１において、ポートＰ１においては、不揮発性ＲＡＭ２０３のＲＯＭ領域のデータ／情報の読出が行なわれ、一方、ポートＰ２においては、ＲＡＭ領域のデータの読出または書込が行なわれる。
【０２１０】
サイクル♯２においては、ポートＰ１をＲＯＭ領域に設定してデータ／情報の読出が行なわれる。ポートＰ２に対してはアクセスは行なわれない（ＮＯＰ状態）。したがって、このサイクル♯２においては、不揮発性ＲＡＭ２０３のＲＯＭ領域の命令または制御データが読出されて、演算処理回路２００において処理が実行される。
【０２１１】
クロックサイクル♯３において、ポートＰ１およびＰ２がともにＲＯＭ領域に指定される。この場合、メモリマットにおいては、センスアンプは、ポートＰ１およびＰ２に結合されるデータバスＤＢ１およびＤＢ２（図２１参照）いずれにも接続することができるため、不揮発性ＲＡＭ２０３におけるメモリマットの任意のＲＯＭ領域に設定されたメモリマットからデータの読出を行なうことができる。不揮発性ＲＡＭ２０３のＲＯＭ領域から互いに異なるアドレスの命令／制御データを並列に読出して処理を行なうことができる。
【０２１２】
クロックサイクル♯４においては、ポートＰ１に対してはアクセスは行なわれない（ＮＯＰ状態）。一方、ポートＰ２は、ＲＡＭポートに設定され、データの読出／書込が実行される。
【０２１３】
クロックサイクル♯５においては、ポートＰ１およびＰ２がともにＲＡＭポートに設定され、この不揮発性ＲＡＭ２０３のＲＡＭ領域における異なるアドレスのデータの読出／書込が実行される。メモリマットにおいては、ライトドライバがポートＰ１およびＰ２に対して配置されるデータバスＤＢ１およびＤＢ２に対して接続することができるため（図２１参照）、不揮発性ＲＡＭ２０３内のＲＡＭ領域の異なるメモリマットに対してデータのアクセス（読出／書込）を行うことができる。
【０２１４】
クロックサイクル♯６においては、必要な処理が完了し、または処理の終了を待ち合わせるために、ポートＰ１およびＰ２は、アクセスは行なわれない（ＮＯＰ状態）。
【０２１５】
クロックサイクル♯３および♯５に示すように、ポートＰ１およびＰ２はともにＲＯＭ領域ポートまたはＲＡＭポートに設定して、命令／データのアクセスを行なうことができる。このポートの指定は、演算処理回路２００における実行命令により設定される。したがって、たとえば２項演算時に２つのソースデータを、並行して不揮発性ＲＡＭからポートＰ１およびＰ２から読出すことができ、また、２つの異なる命令をＲＯＭポートから並行して読出すことができる。また、たとえば演算処理時において、命令サイズまたはデータサイズが異なり、倍語長データまたは倍語長命令を処理する場合においても、単位長命令または単位長データの並列読出を行なって倍語長命令の実行倍語長データの転送を行うことができる（ただし、倍語長命令（データ）の上位命令（データ）および下位命令（データ）はそれぞれ異なるメモリマットに格納することが必要となる）。
【０２１６】
したがって、不揮発性ＲＡＭ２０３は、ＲＯＭおよびＲＡＭいずれの用途においても、その性能を損なうことなく使用することができ、ポート並列アクセスにより柔軟なメモリシステムを構築することができ、演算処理回路２００の処理効率を改善することができる。
【０２１７】
なお、ポートの属性を設定する際には、演算処理回路２００の実行命令に応じて、これらのポート属性指定信号ＲＯＭ／ＲＡＭ♯１およびＲＯＭ／ＲＡＭ♯２のレベルが適宜設定されればよい。演算処理回路２００において、マイクロプロセッサの場合、命令デコーダからのデコード命令（マイクロ命令）に基づいて、内部のアクセス制御信号発生部において、このポート属性制御信号を生成することができる。
【０２１８】
［変更例］
図２６は、この発明の実施の形態５に従う演算処理回路２００の構成を概略的に示す図である。この図２６において、演算処理回路２００は、演算処理を実行するプロセッサ（またはマイクロコントローラ）２１０と、不揮発性ＲＡＭにおけるＲＯＭ領域アドレスおよびＲＡＭ領域アドレスを格納するアドレステーブル２２０を含む。このアドレステーブル２２０は、ＲＯＭ領域のアドレスＡ♯０−Ａ♯Ｍを格納するＲＯＭアドレス格納領域２５０ａと、ＲＡＭ領域のアドレスを格納するアドレス格納領域２５０ｂを含む。
【０２１９】
プロセッサ（またはマイクロコントローラ）２１０は、不揮発性ＲＡＭへのアクセス時、アドレスマップ２２０を参照してポートを決定する。すなわち、ポートＰ１およびポートＰ２は、優先的に、それぞれＲＯＭ領域アドレスおよびＲＡＭ領域アドレスに割当てられる。プロセッサ（またはマイクロコントローラ）２１０が、また、アクセス時、ポートＰ１およびＰ２が両者がともに利用されているかをモニタする。ポートＰ１またはＰ２が不使用状態の場合、プロセッサ（またはマイクロコントローラ）２１０は、アドレスマップ２２０を参照して、アドレス領域２５０ａおよび２５０ｂのアドレスを参照して、空きポートおよび対象ポートに対しポート属性指定信号ＲＯＭ／ＲＡＭ♯１およびＲＯＭ／ＲＡＭ♯２を設定して、同一属性のデータ（または命令）をプリフェッチする。
【０２２０】
予め実行命令においてアクセスポートを設定する必要がなく、プログラム設計の負荷が軽減される。また処理状態に応じてダイナミックにアクセスするポートの属性を設定することができ、処理状況に応じて効率的なデータ／情報のアクセスを行なうことができる。
【０２２１】
以上のように、この発明の実施の形態５に従えば、不揮発性ＲＡＭの２つのポートを、ＲＯＭポートおよびＲＡＭポートに各サイクルごとに設定可能とするように構成しており、ＲＯＭ領域およびＲＡＭ領域のデータを効率的にアクセスすることができ、演算処理システムの処理効率を改善することができる。
【０２２２】
［実施の形態６］
図２７は、この発明の実施の形態６に従う演算処理システム２３０の構成を概略的に示す図である。図２３において、この演算処理システム２３０は、１チップのマイクロプロセッサまたはマイクロコントローラであり、ＡＬＵ（算術演算処理回路）またはＣＰＵ（中央演算処理装置）などで実現される演算処理回路２００と実施の形態１から５において説明した内部構造を有する不揮発性ＲＡＭ２０３を含む。
【０２２３】
演算処理回路２００は、（命令）バス２１４を介して不揮発性ＲＡＭのポートＰ１に結合され、また（データ）バス２１６を介して不揮発性ＲＡＭ２０３のポートＰ２に結合される。バス２１６は、バスインターフェイス回路（バスＩ／Ｆ）２０５に結合される。バスＩ／Ｆ２０５は、端子２１２を介して外部の周辺機器（Ｉ／Ｏ装置）２３５に結合される。
【０２２４】
周辺機器２３５は、ＲＯＭライタまたはキーボードなどの入力装置である。Ｉ／Ｏ装置２３５を用いて、不揮発性ＲＡＭ２０３のＲＯＭ領域およびＲＡＭ領域の割当を設定する。ポート設定時において、Ｉ／Ｏ装置２３５は、不揮発性ＲＡＭ２０３のＲＯＭ領域およびＲＡＭ領域の割当てを実行する場合、ポート設定信号ＰＳをアサートする（Ｈレベルに設定する）。このポート設定信号ＰＳのアサートに応答して、演算処理回路２００または外部のＩ／Ｏ装置２３５が、不揮発性ＲＡＭ２０３のポートおよび／またはメモリマットの属性設定処理を実行する。
【０２２５】
図２８は、図２７に示す演算処理システム２３０における不揮発性ＲＡＭのＲＯＭ領域およびＲＡＭ領域割当て時の処理シーケンスを示すフロー図である。以下、図２８を参照して、図２７に示す演算処理システムにおけるメモリマット属性割当て処理シーケンスについて説明する。
【０２２６】
まず、ポート設定モードが指定されたかの判定が行なわれる（ステップＳ１０）。この判定は、ポート設定信号ＰＳがＨレベルにアサートされたかを見ることにより、演算処理回路２００において行なわれる。
【０２２７】
ポート設定信号ＰＳがアサートされると、演算処理回路２００は、ポート設定モードが設定されたとして、ポート設定処理モードに入る（ステップＳ１１）。
【０２２８】
次に、外部のＩ／Ｏ装置２３５が、不揮発性ＲＡＭ２０３におけるＲＯＭ領域の容量およびＲＡＭ領域の容量を特定する情報を入力する（ステップＳ１２）。この特定情報は、たとえば、ＲＯＭ領域を構成するメモリマットの数およびＲＡＭ領域を構成するメモリマットの数をそれぞれ入力してもよい。また、各メモリマットの記憶容量は固定されているため、単に、Ｉ／Ｏ装置２３５が、ＲＯＭ領域の容量値およびＲＡＭ領域の容量値の情報を、処理画面上のウインドウに表示されるダイアログボックスに入力してもよい。
【０２２９】
演算処理回路２００は、ポート設定入力情報に従って、不揮発性ＲＡＭ２０３におけるメモリマットのＲＯＭ領域およびＲＡＭ領域の設定を行なう。このとき、不揮発性ＲＡＭ２０３において、入力されたポート容量特定情報では利用されないメモリマットが存在する場合、その領域は、ＲＯＭ領域およびＲＡＭ領域のいずれにも設定されない。好み割当て領域は、未使用領域として保存されるか、または、外部に配置されるハードディスクまたはマスクＲＯＭなどの低速の記憶装置の記憶情報を格納するシャドウＲＡＭ領域として使用される。シャドウＲＡＭ領域は、通常、ユーザが処理実行時にアドレス指定して利用することはない。
【０２３０】
このステップＳ１３における容量設定の前に、必要なＯＳ（オペレティングシステム；基本ソフト）、システム立ち上げ用のブートプログラム、および固定制御データなどの書込が完了していてもよく、また、このステップＳ１３の後に、ＯＳ、ブートプログラムおよび制御データ等の書込が実行されてもよい。
【０２３１】
ＲＯＭ領域に必要な情報が書込まれた後に、ＲＯＭ領域に設定されるメモリマットへの書込を禁止する処理が行なわれる（ステップＳ１４）。この場合、先の実施の形態１において示される書込禁止ビットの設定が行なわれてもよく、また先の実施の形態４に示すようにレジスタ回路において、ＲＯＭ／ＲＡＭ属性設定情報が格納されてもよい。
【０２３２】
次いで、不揮発性ＲＡＭ内の全メモリマットに対するポート（ＲＯＭ領域／ＲＡＭ領域）の設定が行なわれたかの判定が行なわれ、また、ＲＯＭ領域の全メモリマットに対して書込禁止が設定されたかの判定が行なわれる。（ステップＳ１５）。
【０２３３】
全メモリマットについてのＲＡＭ／ＲＯＭ領域（ポート）の設定およびＲＯＭ領域（ポート）の書込禁止の設定が完了すると、ポート設定モードが終了し、外部のＩ／Ｏ装置２３５または演算処理回路２３５が、ポート設定信号ＰＳをデアサートする（ステップＳ１６）。このポート設定信号ＰＳは、単に演算処理回路２００からの処理完了表示により、Ｉ／Ｏ装置２３５で、表示画面上で完了ボタンをクリックしてデアサートしてもよく、また、ＲＯＭライタなどの書込装置の場合、演算処理回路２００からの完了指示信号に従ってＲＯＭライタがポート設定信号ＰＳをＬレベルに設定してもよい。
【０２３４】
この一連の処理により、演算処理システム２３０において、不揮発性ＲＡＭ２０３のＲＯＭ領域およびＲＡＭ領域の選択的な設定およびＲＯＭ領域のメモリマットの書込禁止を設定することができる。
【０２３５】
図２９は、この不揮発性ＲＡＭ２０３のポート設定モード完了後の内部状態を概略的に示す図である。メモリマットＭＡＴ♯０−ＭＡＴ♯ｎが不揮発性ＲＡＭ内に設けられ、各メモリマットＭＡＴ♯０−ＭＡＴ♯ｎにおいて、ＲＯＭ／ＲＡＭ属性指示ビットＡ／Ｏ♯０−Ａ／Ｏ♯ｎおよび書込禁止ビットＬＫＢ♯１−ＬＫＢ♯ｎがそれぞれ設定される。ＲＯＭ／ＲＡＭ（ポート）属性指定ビット格納領域ＰＲＲおよび書込禁止ビット格納領域ＬＫＲは、先の実施の形態１において示した構成または実施の形態３等において示した構成を利用することができる。これらの領域ＰＲＲおよびＬＫＲに設定されたビットの状態に応じて、メモリマットＭＡＴ♯０−ＭＡＴ♯ｎは、それぞれ、ポートＰ１に対するデータバスＤＢ１とポートＰ２に対するデータバスＤＢ２に選択的に結合される。この場合、データバスＤＢ１はＲＯＭ領域として設定され、一方方向にデータが転送される構成であってもよく、また、先の実施の形態５に示すように、ポートＰ１およびポートＰ２両者を、それぞれ、双方向のデータバスに結合し、これらのデータバスＤＢ１およびＤＢ２が双方向データバスとして利用され、メモリマットＭＡＴ♯０−ＭＡＴ♯ｎが、データバスＤＢ１およびＤＢ２のいずれにも接続される構成が用いられてもよい。
【０２３６】
［変更例］
図３０は、この発明の実施の形態６に従う不揮発性ＲＡＭの変更例の構成を概略的に示す図である。図３０において、不揮発性ＲＡＭ２０３は、ポート設定モード完了後、ＲＯＭ領域２０３ａおよびＲＡＭ領域２０３ｂに割当てられたメモリマットを含む。このＲＯＭ領域２０３ａの特定のアドレス位置に、ＲＯＭアドレス領域を指定するアドレス情報ＲＯＭＡＤ♯が格納される。ＲＯＭ領域２０３ａおよびＲＯＭ領域２０３ｂは共に、ポートバスＰＢＤ１およびＰＢＤ２に結合される。ポートバスＰＢＤ１は、ポートＰ１に対するバスであり、コントロール信号、アドレスおよびデータを転送する。ポートバスＰＢＤ２は、ポートＰ２に対するバスであり、同様、アドレスバス、コントロールバスおよびデータバスを含む。
【０２３７】
ポートバスＰＢＤ１およびＰＢＤ２上のアドレスＡＤ♯１およびＡＤ♯２を、ＲＯＭアドレスレジスタ２４４に格納されたアドレスと比較し、与えられたアドレス信号がＲＯＭ領域２０３ａを指定している場合には、書込禁止信号ＷＬＫＢをアサートし、このＲＯＭ領域２０３ａへの書込を禁止する。
【０２３８】
ＲＯＭアドレスレジスタ２４４においては、システム立上げ時において、ＲＯＭ領域の特定のアドレス領域２４２に格納されるＲＯＭ領域アドレス指定情報ＲＯＭＡＤ♯を読出して格納する。書込禁止回路２４０は、比較回路で構成され、比較結果に従って書込禁止信号ＷＬＫＢを選択的にアサートする。
【０２３９】
この図３０に示す構成の場合、ポートＰ１およびＰ２がいずれもＲＯＭポートおよびＲＡＭポートとして利用されてもよく、この場合でも、メモリマットの属性はＲＯＭ領域またはＲＡＭ領域に設定されており、ＲＯＭ領域２０３ａ全体に対し、書込禁止回路２４０により書込禁止信号ＷＬＫＢを用いることにより、ＲＯＭ領域２０３ａに対する書込を禁止することができる。
【０２４０】
この書込禁止回路２４０は、アドレスＲＯＭアドレスレジスタ２４４に格納されたアドレス情報ＲＯＭＡＤ♯の範囲内のアドレスへのアクセスが指定されているとき、データ読出／書込モードに係らず、書込禁止信号ＷＬＫＢをアサートする。これに代えて、書込モードが指定されたときに書込禁止回路２４０が比較動作および比較結果に基づく禁止信号ＷＬＫＢのアサートを行なう構成が用いられてもよい。
【０２４１】
ＲＯＭ領域２０３ａにおける書込禁止を実現する構成は、先の実施の形態４において示された構成が用いられてもよい。書込禁止信号ＷＬＫＢにより、ＲＯＭ領域２０３ａに含まれるメモリマットを構成するメモリセルアレイの書込に関連する回路を非活性状態に維持する構成が用いられればよい。
【０２４２】
図３０に示す構成においては、ＲＯＭ領域２０３ａ全体に対し書込を禁止することができ、この領域のサイズ（アドレス空間のサイズ）が変更されても、ＲＯＭ領域２０３ａの特定の領域（アドレス）２４２に格納するＲＯＭアドレス指定情報ＲＯＭＡＤ♯を設定ＲＯＭ容量に応じて書替えることにより、このＲＯＭサイズの変更に対して容易に対応することができる。
【０２４３】
以上のように、この発明の実施の形態６に従えば、不揮発性ＲＡＭの初期設定時、各メモリマットについて、ＲＯＭ領域またはＲＡＭ領域の指定を行なうとともに、ＲＯＭ領域に指定された領域には、書込禁止ビットを設定して書込を禁止しており、確実に不揮発性ＲＡＭの必要とされるＲＯＭ領域およびＲＡＭ領域のサイズに応じた初期設定を行なうことができる。
【０２４４】
［実施の形態７］
図３１は、この発明の実施の形態７に従う演算処理システムの構成を概略的に示す図である。図３１において、この演算処理システム（半導体集積回路装置）においては、演算処理回路３００と不揮発性ＲＡＭ３０３の間に、命令を転送するポート１バスＰＤＢ１およびデータを転送するポート２データバスＰＤＢ２に加えて、さらに、ブート情報を転送するためのブートバスＢＴＢＳが設けられる。不揮発性ＲＡＭ３０３は、このブート情報を格納するブート領域３１０と、命令／制御データを格納する命令領域３１１と、データを記憶するデータ領域３１２を含む。ブート領域３１０および命令領域３１１は、ＲＯＭとして用いられ、その記憶内容の書替えが禁止される。データ領域３１２については、格納されるデータは書替え可能である。
【０２４５】
このブート領域３１０と、命令領域３１１およびデータ領域３１２においては、これまでに説明した実施の形態と同様、メモリマットＭＡＴ♯が配置されており、これらの領域３１０、３１１および３１２に含まれるメモリマットＭＡＴ♯の数は、不揮発性ＲＡＭ３０３の記憶容量内で変更可能である。
【０２４６】
演算処理回路３００は、プロセッサまたはマイクロコントローラで構成される。ブート領域３１０は、演算処理回路３００および演算処理システムを起動するためのプログラム、不揮発性ＲＡＭまたは演算処理回路３００などの内部電圧チューニング情報、および不揮発性ＲＡＭのメモリ冗長置換の不良救済情報および、ユーザが起動時に必要とするプログラムなどを記憶する領域である。ブート領域３１０に格納されるブート情報は、このシステム立上げ時のブート動作時に必要とされる情報を示す。命令領域３１１には、ＯＳおよび基本ソフトウェアなどのプログラム命令およびプログラム実行時に必要とされる固定的にその値が設定される制御データなどを含む情報が格納される。
【０２４７】
データ領域３１２には、一時的に利用されるアプリケーションソフト、アプリケーションデータおよび命令実行時の中間データなどが格納される。
【０２４８】
命令領域３１１およびデータ領域３１２は、それぞれ、ポート１データバスＰＤＢ１およびポート２データバスＰＤＢ２に結合される。命令領域３１１およびデータ領域３１２のポート接続構成としては、先の実施の形態４または５に示すように、ポート１データバスＰＤＢ１およびポート２データバスＰＤＢ２が、命令領域３１１およびデータ領域３１２両者により利用される構成が用いられてもよい。
【０２４９】
ブートバスＢＴＢＳは、通常、ブートＲＯＭなどが接続されるバスであり、演算処理回路３００においては、このような低速のブートＲＯＭに接続するポートが一般に設けられる。このブートバスＢＴＢＳを、不揮発性ＲＡＭ３０３のブート領域３１０に結合する。
【０２５０】
図３２は、図３１に示す演算処理装置のブート情報および命令書込シーケンス（初期設定シーケンス）の一例を示すフロー図である。以下、図３２を参照して、図３１に示す演算処理装置の初期情報設定シーケンスについて説明する。
【０２５１】
まず、ポート設定モードを、ポート設定信号ＰＳ（図２７参照）をアサートすることにより設定する（ステップＳ２０）。
【０２５２】
次いで、バスＩ／Ｆ３０５を介してブート、命令、およびデータの各領域３１０、３１１および３１２の容量を指定する情報を入力する（ステップＳ２１）。演算処理回路３００においては、この入力された各領域の容量に従って領域３１０、３１１および３１２それぞれに割当てられるアドレス領域を設定するとともに、メモリマットを各領域３１０、３１１および３１２に割当てる（ステップＳ２２）。各メモリマットの属性の割当てに従って演算処理回路３００が、マット属性情報を各メモリマットＭＡＴ♯に与え、各メモリマットの接続経路を設定する（ステップＳ２２）。これにより、ポート属性が固定される場合には、ブート領域３１１がブートバスＢＴＳＢＳに結合され、命令領域３１１が、ポート１バス（命令バス）ＰＤＢ１に結合され、データ領域３１２が、ポート２バス（データバス）ＰＤＢ２に結合される。
【０２５３】
この状態で、外部から、バスＩ／Ｆ３０５を介してブート情報をブート領域３１０のメモリマットＭＡＴ♯に書込み、また命令領域３１１にプログラム命令を書込む（ステップＳ２３）。このブート情報の書込時において、バスＩ／Ｆ３０５に含まれるブート情報入力ポートにより、バスＩ／Ｆ３０５は、ブートバスＢＴＢＳにブート情報を転送して、このブート領域３１０のメモリマットに対するブート情報の書込が外部回路の制御の下に行なわれてもよい。また、このブート情報の書込時、演算処理回路３００が、ブートバスＢＴＢＳを駆動して、演算処理回路３００の制御の下にブート領域３１０に対するブート情報の書込を行なってもよい。
【０２５４】
また、命令領域３１１の各メモリマットに対し、必要とされる命令の書込が実行される。この場合、ポート属性が固定される場合には、ポートとメモリマットとの接続が設定されており、命令領域３１１が接続されるポート、すなわちポート１バスＰＤＢ１を介して命令の書込が行なわれる。ポート属性が、処理実行時にダイナミックに切替えられる場合においては、ポートＰ１およびポートＰ２のバスのいずれが命令書込に対して用いられてもよいが、好ましくは、ポート固定用途との互換性から、ポート１データバスＰＤＢ１を利用して命令の書込を実行する。
【０２５５】
ステップＳ２４におけるブート情報および命令の書込が完了すると、ブート書込モードが完了し、ブート書込モードイグディットが実行される（ステップＳ２５）。ブート書込モードイグディット後は、ブートバスＢＴＢＳを介してのブート領域３１０へのデータの書込が禁止される。
【０２５６】
次いで、ブート領域３１０および命令領域３１１へのデータの書込を禁止する処理が実行される（ステップＳ２６）。この命令領域３１１へのデータ書込禁止に対しては、先の実施の形態１から４において説明した手法を用いることができる。ブート領域３１０は、ブートバスＢＴＢＳにその接続経路が設定されており、ブート領域３１０の書込禁止は、ブートバスＢＴＢＳを用いて実行される。また、ポートＰ１用のバスＰＤＢ１およびポートＰ２用のバスＰＤＢ２各々について、不揮発性ＲＡＭ３０３においては、内部のデータバスに加えてアドレスバスおよびコントロールバスが、不揮発性ＲＡＭ内のメモリマットＭＡＴ♯すべてに対して共通に配設される。したがって、命令領域３１１のメモリマットの書込禁止ビットの格納は、これらのポートＰ１またはポートＰ２用の内部の制御バスおよびアドレスバスを用いて行なわれてもよい。また、このブート情報および命令の書込を行なうステップＳ２４において、各ブート情報および命令の書込完了後、対応のメモリマットにそれぞれ、書込禁止ビットを書込む構成が用いられてもよい。また、実施の形態６に示すように、命令領域３１１全体に対して書込を禁止する構成が用いられてもよい。
【０２５７】
また、これに代えて、以下の処理により書込禁止が設定されてもよい。ステップＳ２２において、単に演算処理回路３００において、各メモリマットとポートの属性割当てを設定し、ブート情報および命令の書込を、ポートＰ１またはポートＰ２を介して実行する。このブート情報および命令の書込完了後に、各メモリマットとポートの接続経路を設定し、次いで、ブート領域３１０および命令領域３１１への書込を禁止する。この場合、各メモリマットに対し書込を禁止するビットを対応のメモリセルアレイ内に書込み設定することができる（特定のバスを介して）。この後、ステップＳ２７においてポート設定信号をデアサートして一連のポート設定処理を完了する。
【０２５８】
ブートバスＢＴＢＳという特別のアクセスポートを設けておくことにより、ブートＲＯＭを用いた場合において低速バスのローカルブートバスを用いてブート情報のロードおよび実行を行なう構成に比べて、システム時、高速でブートバスＢＴＢＳを介してブート情報を読込んでブート処理を実行することができる。
【０２５９】
図３３は、図３１に示す不揮発性ＲＡＭ３０３の内部構成を概略的に示す図である。不揮発性ＲＡＭ３０３は、メモリマットＭＡＴ♯１−ＭＡＴ♯ｎを含み、これらのメモリマットＭＡＴ♯１−ＭＡＴ♯ｎそれぞれに対応してアクセスコントローラＡＣＬ１−ＡＣＬｎが設けられる。
【０２６０】
アクセスコントローラＡＣＬ１は、ポート接続制御信号ＭＰ１１、ＭＰ２１およびＭＰＢ１を受けるバス接続スイッチＴＧ１０、ＴＧ１１およびＴＧ１２を含む。これらのバス接続スイッチＴＧ１０、ＴＧ１１およびＴＧ１２を介して、メモリマットＭＡＴ♯１が、ポートＰ１に対する内部バスＰＢＤ１、ポートＰ２に対する内部バスＰＢＤ２およびブートバスに対応する内部バスＰＢＢに選択的にそれぞれ結合される。
【０２６１】
アクセスコントローラＡＣＬｎも同様、メモリマットＭＡＴ♯ｎに対するポート接続制御信号ＭＰ１ｎ、ＭＰ２ｎおよびＭＰＢｎに従って選択的に導通するバス接続スイッチＴＧ１１およびＴＧ１２を含む。これらのアクセスコントローラＡＣＬｎのバス接続スイッチＴＧ１０、ＴＧ１１およびＴＧ１２は、導通時、メモリマットＭＡＴ♯ｎを、内部バスＰＢＤ１、ＰＢＤ２およびＰＢＢに結合する。
【０２６２】
これらのバス接続スイッチＴＧ１０，ＴＧ１１およびＴＧ１２は、対応のメモリマットＭＡＴ♯に含まれるセンスアンプおよびライトドライバを、動作モードに応じて指定された内部バスに結合する。内部バスＰＢＤ１、ＰＢＤ２およびＰＢＢは、アドレスバス、コントロールバスおよびデータバスを含む。データバスは、読出データを転送する読出デタバスおよび書込データを転送する書込データバスが別々に設けられていてもよく、また、データバスは、読出データおよび書込データ両者を転送するバスであってもよい。
【０２６３】
［変更例］
図３４は、この発明の実施の形態７の変更例の不揮発性ＲＡＭの構成を概略的に示す図である。図３４においては、不揮発性ＲＡＭ３０３は、命令領域３１５と、データ領域３１２とを含む。命令領域３１５には、ブート情報を格納するブート用メモリマットＭＡＴ♯Ｂと、命令（制御データを含む）を格納するメモリマットＭＡＴ♯Ｉが設けられ、ＲＯＭ領域として利用される。
【０２６４】
データ領域３１２において、データ格納用のメモリマットＭＡＴ♯Ｄが設けられ、このデータ領域３１２は、ＲＡＭ領域として利用される。
【０２６５】
不揮発性ＲＡＭ３０３の内部構成は、これまでに説明した実施の形態１から４に示される構成と同様であり、これらの領域３１５および３１２のサイズは可変であり、また、ブート情報格納メモリマットＭＡＴ♯Ｂの数、命令格納メモリマットＭＡＴ♯Ｉおよびデータ格納用メモリマットＭＡＴ♯Ｄの数も可変である。また、ＲＯＭ領域３１５のメモリ的に対しては書込が禁止される。
【０２６６】
演算処理回路３００と不揮発性ＲＡＭ３０３の間には、ポートＰ１に対するバスＰＤＢ１とポートＰ２に対するバスＰＤＢ２が設けられる。ブートバスは設けられない。したがって、ブート情報は、バスＰＤＢ１を介して演算処理回路３００に転送される。
【０２６７】
この図３４に示す構成の場合、ブート情報格納領域が、命令を格納する領域と同じ領域に配置される。不揮発性ＲＡＭは、例えばＭＲＡＭであり、高速メモリであり、命令メモリおよびブートメモリ両者の速度は同じ高速であり、ブートバスを別に設ける必要がなく、バスの構成が簡略化される。
【０２６８】
なお、図３０に示す構成において、バスインターフェイス回路（Ｉ／Ｆ）３０５および外部端子３０８が設けられ、このバスＩ／Ｆ３０５を介してブート情報および命令の書込を実行する。この場合、書込シーケンスとして、先の実施の形態６における図２８に示す処理シーケンスを用いて、ブート情報の書込を行なうことができる。
【０２６９】
なお、図３４に示す構成においては、バスＰＤＢ１が命令を転送する命令バスとして利用され、バスＰＤＢ２が、ＲＡＭ領域へのアクセスを行なうためのバスとして利用される。しかしながら、これらのバスＰＤＢ１およびＰＤＢ２各々が、ＲＯＭ領域の情報およびＲＡＭ領域のデータ両者を転送するように構成されてもよい。
【０２７０】
以上のように、この発明の実施の形態７に従えば、命令領域において、ブート情報を格納する領域を確保しており、高速でブート情報の転送を行なうことができ、システム立上げを高速化することができる。また、ブート情報を、専用のブートバスを用いて転送する場合、ブートＲＯＭを用いて、ローカルブートバスに接続するプロセッサまたはマイクロコントローラなどに対しても、このポートの構成を変更することなく高速でブート情報を転送するメモリシステムを実現することができる。
【０２７１】
［実施の形態８］
図３５は、この発明の実施の形態８に従う演算処理装置４００の構成を概略的に示す図である。図３５において、演算処理装置４００は、演算処理回路４０２と、この演算処理回路４０２の必要な情報を格納する不揮発性ＲＡＭ４０４を含む。演算処理装置４００は、好ましくは、半導体集積回路装置で実現され、１つの半導体チップ上に集積化される。
【０２７２】
不揮発性ＲＡＭ４０４は、２つのポート４１１ａおよび４１１ｂと、ポート４１１ａおよび４１１ｂそれぞれに対応して設けられるＲＯＭ領域４１０ａおよびＲＡＭ領域４１０ｂを含むメモリ領域４１０とで構成される。ＲＯＭ領域４１０ａおよびＲＡＭ領域４１０ｂは、メモリマットを含み、その数は、変更可能である。ポート４１１ａおよび４１１ｂは、それぞれＲＯＭ情報転送ポートとして用い、ポート４１１ｂは、ＲＯＭ情報を転送するＲＯＭポートとして用いられる。したがってこれらのポート４１１ａおよび４１１ｂは、それぞれ情報／信号を転送する機能を備える。不揮発性ＲＡＭ４０４の内部構成は、実施の形態１から４および７において説明した不揮発性ＲＡＭと同様の構成を備える。
【０２７３】
演算処理回路４０２は、シングルポートプロセッサまたはマイクロコントローラであり、１つのポートＰＲＴを有する。演算処理回路４０２および不揮発性ＲＡＭ４０４の間に、ポート切換回路４０６が設けられる。このポート切換回路４０６は、演算処理回路４０２からのポート設定信号ＰＳＳに従って、演算処理回路のポートＰＲＴを、不揮発性ＲＡＭのポート４１１ａおよび４１１ｂに択一的に接続する。
【０２７４】
演算処理装置４００においては、演算処理回路４０２、不揮発性ＲＡＭ４０４およびポート切換回路４０６は、好ましくは、同じ半導体チップ上に形成される。したがって、不揮発性ＲＡＭ４０４が、ポート切換回路４０６を含むようにチップ上の配置が行なわれてもよい。
【０２７５】
図３６は、図３５に示す演算処理装置のアクセスシーケンスの一例を示す図である。この図３６においても、各サイクルは、演算処理回路４０２へ与えられるクロック信号（図示せず）に従って規定される。
【０２７６】
不揮発性ＲＡＭ４０４におけるメモリ領域４１０の構成は、先の実施の形態１から４および７のいずれの構成が用いられてもよい。
【０２７７】
サイクル♯１において、ＲＯＭ領域４１０ａの情報のアクセス（読出）が行なわれる。この場合、演算処理回路４０２は、ポート指定信号ＰＳＳにより、ポート４１１ａを指定する。これにより、ポート切換回路４０６が、ポートＰＲＴをポート４１１ａに結合し、ＲＯＭ領域４１０ａのデータが読出される。
【０２７８】
サイクル♯２において、ＲＡＭ領域４１０へのアクセスが指定される。この場合、ポート指定信号ＰＳＳにより、ポート切換回路４０６が、ポートＰＲＴをＲＡＭポート４１１ｂに結合する。ＲＡＭ領域４１０ｂに対してデータの書込／読出が実行される。
【０２７９】
サイクル♯３において、再び、ＲＯＭ領域４１０ａへのアクセスがポート指定信号ＰＳにより指定される。これにより、ポートＰＲＴが、ＲＯＭポート４１１ａに結合され、ＲＯＭ領域４１０ａの情報が読出される。
【０２８０】
サイクル♯４においては、処理は実行されない（ＮＯＰ状態）。
サイクル♯５および♯６において、ポート指定信号ＰＳＳによりＲＡＭ領域４１０ｂが指定され、各サイクルにおいて、必要なデータのアクセス（リードまたはライト）が実行される。
【０２８１】
ポート指定信号ＰＳＳは、先の実施の形態３におけるポート属性指定信号ＲＯＭ／ＲＡＭ♯と同様の信号であり、処理内容に従って、命令またはデータをアクセスするとき、演算処理回路４０２が、内部のアドレステーブルを参照して、アクセス要求アドレスの領域または命令／データを特定するアクセス要求対象の属性を示すフラグをモニタして、ポート設定信号を設定する。
【０２８２】
図３５に示すように、シングルポートの演算処理回路４０２が、ＲＯＭポート４１１ａおよび４１１ｂを有する不揮発性ＲＡＭ４０４へ、切換回路４０６によりポートを設定して逐次アクセスすることにより、演算処理回路４０２におけるバス構成を簡略化することができ、応じて演算処理回路４０２に対するバスのレイアウト面積を低減することができ、応じて演算処理装置４００のチップ面積を低減することができる。
【０２８３】
なお、この演算処理装置４００は、同一の半導体チップではなく、プリント基板上に配置されてもよい。
【０２８４】
［実施の形態９］
図３７は、この発明の実施の形態９に従う演算処理装置の全体の構成を概略的に示す図である。図３７において、演算処理装置４５０は、２ポートＰＲＴ１およびＰＲＴ２を有する演算処理回路４６０と、シングルポート４７１を有する不揮発性ＲＡＭ４７０と、演算処理回路４６０および不揮発性ＲＡＭの間の接続ポートの切換を行なうポート切換回路４７５を含む。
【０２８５】
不揮発性ＲＡＭ４７０は、メモリ領域４１０が、ＲＯＭ領域４１０ａおよびＲＡＭ領域４１０ｂを含む。これらのＲＯＭ領域４１０ａおよびＲＡＭ領域４１０ｂのサイズが変更可能とされるのは、先の実施の形態１から４および７において説明した構成と同じである。
【０２８６】
ポート切換回路４７５は、演算処理回路４６０からのポート指定信号に従って、演算処理回路のポートＰＲＴ１およびＰＲＴ２を択一的ににメモリポート４７１に結合する。このポート設定信号ＰＳＳは、単に、ポートＰＲＴ１およびＰＲＴ２を指定する信号である。
【０２８７】
図３８は、この図３７に示す演算処理装置におけるアクセスシーケンスの一例を示す図である。この図３８においても、各サイクルは、演算処理回路４６０の動作サイクルを規定するクロック信号により規定される。
【０２８８】
サイクル♯１において、ポートＰＲＴ１からのリードアクセスが行なわれ、また、このサイクル内でポートＰＲＴ２がＲＡＭアクセスを要求する。ポート切換回路４７５は、クロック信号の前半および後半に分けて、接続経路を切換え、メモリポート４７１へのアクセス経路を確定する。
【０２８９】
図３８に示す処理シーケンスにおいては、サイクルの前半においてポートＰＲＴ１が選択され、サイクルの後半においてポートＰＲＴ２が選択される状態を一例として示す。したがって、不揮発性ＲＡＭ４５０においては、最初のサイクルでＲＯＭ領域４１０ａへアクセスして、指定されたＲＯＭ情報の読出を行ない、後半のサイクルにおいて、ＲＡＭ領域４１０ｂへアクセスして、ＲＡＭデータの読出または書込を実行する。
【０２９０】
サイクル♯２において、ポートＰＲＴ１からＲＯＭアクセスが指定され、ポートＰＲＴ２は、アクセスを要求しない（ＮＯＰ状態）。ポート切換回路４７５は、前半においてポートＰＲＴ１を選択し、不揮発性ＲＡＭ７０においてＲＯＭ領域４１０ａへのアクセスが行なわれてＲＯＭデータ（情報）の読出が行なわれ、次の後半のサイクルにおいて、不揮発性ＲＡＭ４７０へのアクセスは停止される。
【０２９１】
サイクル♯３において、ポートＰＲＴ１からＲＯＭ領域へのアクセスが指定され、またポートＰＲＴ２からもＲＯＭ領域４1０ａへのアクセスが指定される。この場合、メモリポート４７１においては、前半のサイクルおよび後半のサイクルにおいて、連続してＲＯＭ領域４１０ａへのアクセスが行なわれる。
【０２９２】
サイクル♯４において、ポートＰＲＴ１は、アクセス要求を発行しない（ＮＯＰ状態）。一方、ポートＰＲＴ２が、ＲＡＭ領域４１０ｂへのアクセスを指定する。したがって、サイクル♯４の前半サイクルにおいては、メモリポート４７１のアクセスが行なわれず、後半サイクルにおいて、ＲＡＭ領域４１０ｂに対するアクセスが実行される。
【０２９３】
サイクル♯５において、ポートＰＲＴ１およびＰＲＴ２からＲＡＭアクセスが指定される。したがって、サイクル♯５においては、前半および後半サイクルにおいて連続してメモリポート４７１を介してＲＡＭ領域４１０ｂへのアクセスが実行される。
【０２９４】
サイクル♯６においては、不揮発性ＲＡＭ４７０に対する情報／データのアクセスは行なわれない。
【０２９５】
ポート設定信号ＰＳＳは、この演算処理サイクルを規定するクロック信号の立上がりおよび立下がりに従ってその状態を変更して、ポート切換回路４７５の接続経路を切換える。不揮発性ＲＡＭ４７０は、したがって、演算処理回路４６０のサイクル時間の１／２倍のサイクル時間で動作する。このポート切換回路４７５は、１種の並列／直列変換回路（演算処理回路から見て）である。
【０２９６】
クロック信号の立上がりおよび立下がりにそれぞれにおいて、ポートＰＲＴ１およびＰＲＴ２の演算サイクルの開始が規定される場合、パイプライン的に、ポートＰＲＴ１およびＰＲＴ２の情報／データを用いて演算回路４０２内部で演算処理を実行することができる。
【０２９７】
図３９は、図３７に示す不揮発性ＲＡＭ４７０の構成を概略的に示す図である。図３９において、不揮発性ＲＡＭ４７０において、メモリ領域４１０は、複数のメモリマットＭＡＴ♯１−ＭＡＴ♯ｎと、メモリマットＭＡＴ♯１−ＭＡＴ♯ｎそれぞれに対して設けられる書込禁止回路ＰＨＢＴ１−ＰＨＢＴｎを含む。書込禁止回路ＰＨＢＴ１−ＰＨＢＴｎは、対応のメモリマットＭＡＴ♯１−ＭＡＴ♯ｎがＲＯＭ領域に指定された場合に、対応のメモリマットに対する書込を禁止する。この書込禁止回路ＰＨＢＴ１−ＰＨＢＴｎの構成としては、先の実施の形態１から７において示した構成を利用することができる。
【０２９８】
メモリポート４７１は、ノード４７１ａに結合される入出力回路４７１ｂと、メモリマットＭＡＴ♯１−ＭＡＴ♯ｎに共通に結合される内部バス４７１ｃを含む。内部バス４７１ｃは、アドレス、制御信号、およびデータをそれぞれ転送するバスを含む。
【０２９９】
演算処理装置において、ポート切換回路４７５と、この不揮発性ＲＡＭ４７０とが同一半導体チップ上に集積化されるため、端子４７１ａは、単にチップ上配線で実現される。
【０３００】
図３９に示すように、不揮発性ＲＡＭ４７０においてはメモリ領域４１０においてメモリマットＭＡＴ♯１−ＭＡＴ♯ｎが共通に内部バス４７１ｃに結合され、メモリマットの接続するバスを切換える構成は不要となる。したがって、不揮発性ＲＡＭがシングルポート構成の場合、内部構成を簡略化することができ、また、このバス接続を切換えるための構成が不要となり、レイアウト面積を低減することができる。
【０３０１】
また、シングルポートの不揮発性ＲＡＭとマルチポートプロセッサ（演算処理回路）を用い、不揮発性ＲＡＭとプロッセサ（演算処理回路）のポートの数が異なる場合においても、ポート切換回路４７５を利用することにより、メモリのシングルポートをＲＯＭポートおよびＲＡＭポートのいずれとしても利用することができ、ポート互換性を維持して、データ／情報の転送を効率的に行うことができ、処理効率を改善することができる。
【０３０２】
また、不揮発性ＲＡＭが、シングルポート構成であり、内部で、メモリマットのポート切換のための構成が不要となり、回路構成が簡略化され、チップレイアウト面積を低減することができる。
【０３０３】
なお、メモリマットＭＡＴ♯１−ＭＡＴ♯ｎおよび書込禁止回路Ｐ１ＢＴ１−Ｐ１ＢＴｎの構成としては、実施の形態１から４および７において説明した構成を利用することができる。
【０３０４】
［実施の形態１０］
図４０は、この発明の実施の形態１０に従う演算処理システムの記憶システムの構成を概略的に示す図である。この図４０において、不揮発性ＲＡＭ５００は、内部バス５０３に結合される。この不揮発性ＲＡＭ５００は、命令領域（ＲＯＭ領域）５０１と、データ領域（ＲＡＭ領域）５０２を含む。これらの命令領域５０１およびデータ領域５０２は、これまでの実施の形態１から８と同様、そのサイズが可変であり、メモリマットまたはＩ／Ｏブロック毎に、その属性（ＲＯＭ領域／ＲＡＭ領域）を設定することができる。
【０３０５】
この内部バス５０３とＲＡＭポート５１１の間に、ＲＯＭキャッシュ５１０が設けられ、また、ＲＯＭキャッシュ５１０に対し、キャッシュコントローラ５１２が設けられる。このキャッシュコントローラ５１２は、図示しない演算処理回路から命令バスを介して与えられるアクセス要求に従って、ＲＯＭキャッシュ５１０に対するアクセスを制御する。一方、内部バス５０３とデータバスに結合されるＲＡＭポート５１９の間にＲＡＭキャッシュ５１５が設けられる。ＲＡＭキャッシュ５１５は、キャッシュコントローラ５１７により、その動作が制御される。ＲＡＭキャッシュコントローラ５１７は、ＲＡＭポート５１９を介して与えられるアクセス要求に従ってＲＡＭキャッシュに対するアクセスを制御する。
【０３０６】
ＲＯＭキャッシュ５１０およびＲＡＭキャッシュ５１５は、小容量のＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）または不揮発性ＲＡＭ（ＭＲＡＭなど）で構成され、外部の演算処理回路が要求するデータのキャッシュを行なう。不揮発性ＲＡＭ５００は高速アクセスが可能であるものの、さらにＲＯＭキャッシュ５１０およびＲＡＭキャッシュ５１５を設け、それぞれ別々のポートに結合することにより、ＲＯＭポート５１１およびＲＡＭポート５１９に対して並行してアクセスを行うことができ、効率的に勝つ高速で要求される情報およびデータを転送することができる。
【０３０７】
また、これらのＲＯＭキャッシュ５１０およびＲＡＭキャッシュ５１５は、小容量であり、内部の信号線の負荷などが軽減され、また小容量であるため、アドレスのデコードも簡略化され、より高速でデータを転送することができ、例えばプロセサシステムにおける１次キャッシュおよび２次キャッシュを利用する構成と同様、この記憶システムの高速アクセスを実現する。
【０３０８】
図４１は、図４０に示すキャッシュ５１０および５１５およびキャッシュコントローラ５１２および５１７の構成を概略的に示す図である。ＲＯＭキャッシュ５１０およびＲＡＭキャッシュ５１５は、その内部構成は同じであり、図４１においては、キャッシュメモリ５３０をそれらを総称的に示すメモリとして示す。また、キャッシュコントローラ５１２および５１７は、ライトミス発生時の処理シーケンスが異なるものの、ブロック構成は同一であるため、これらのキャッシュコントローラ５１２および５１７は、キャッシュコントローラ５２０で代表的に示す。
【０３０９】
キャッシュ方式において、キャッシュメモリと主メモリ（命令領域５０１およびデータ領域５０２）の間のマッピングとしては、ダイレクトマッピング方式、セットアソシアティブ方式などがあり、図４１においては、マッピング方式として、セットアソシアティブ方式が用いられる場合のキャッシュ構成を一例として示す。このセットアソシアティブ方式においては、対応の主メモリ（命令領域５０１およびデータ領域５０２）を、複数の列ブロックに分割し、各列ブロック毎に、キャッシュメモリにキャッシュされたデータブロックのアドレスをタグメモリ５２２に格納する。タグメモリ５２２においては、キャッシュメモリにおいて複数のセットが設けられ、主メモリの各列ブロックにおいて、複数のセットの領域のデータがキャッシュされる。セットの数およびタグアドレスが指定するデータブロックのサイズ（キャッシュブロックサイズ）は、キャッシュメモリ５３０の容量に応じて、また、キャッシュのヒット率に応じて定められる。
【０３１０】
セットは、キャッシュメモリ５３０におけるメモリセルアレイのいわゆるワード線アドレスに対応する。主メモリにおけるメモリセルのアドレスは、タグアドレス、セットアドレスおよび列ブロック内アドレスにより構成される。
【０３１１】
図４１において、キャッシュコントローラ５２０は、キャッシュメモリ５３０にキャッシュされたデータのタグアドレスを格納するタグメモリ５２２と、タグメモリ５２２からセットアドレスに従って読出されたアドレスを、与えられたタグアドレスと比較する比較回路５２４と、この比較回路５２４の一致／不一致結果を示す信号Ｈｉｔに従ってキャッシュメモリ５３０のアクセスを制御するメモリアクセス制御回路５２６を含む。
【０３１２】
メモリアクセス制御回路５２６は、与えられたタグアドレスがタグメモリ５２２に格納されていない場合には、すなわちアクセス要求されたデータがキャッシュメモリに格納されていない場合には、キャッシュメモリ５３０へのアクセスを一旦禁止し、対応の不揮発性ＲＡＭの領域へアクセスしてアクセス要求されたデータブロックをキャッシュメモリに転送して格納し、かつこの格納と並行してアクセス要求されたデータに対するアクセスを許可する。
【０３１３】
比較回路５２４は、セットアドレスに含まれる列ブロック毎に一致／不一致を示す信号群ＨＴＧを生成し、かつこれらのキャッシュヒット信号群ＨＴＧのいずれかが一致状態を示しているときにキャッシュヒットを示す信号Ｈｉｔをアサートする。したがってキャッシュヒット信号Ｈｉｔは、外部からの演算処理回路が要求するアドレスのデータがキャッシュメモリ５３０に格納されている場合には、キャッシュヒット信号Ｈｉｔがアサートされ、このキャッシュメモリ５３０から対応のデータを読出す（読出アクセスの場合）。
【０３１４】
キャッシュメモリ５３０は、各セットにおいて、列ブロック毎にデータを記憶するデータアレイ５３２と、セットアドレスをデコードし、データアレイ５３２内のセットアドレスが指定するセットを選択するデコーダ５３４と、比較回路５２４からのキャッシュヒット信号群ＨＴＧに従って、ヒットした列ブロックを選択されたセットから選択するマルチプレクサ５３６と、演算処理回路からの列ブロック内のメモリセル位置を示すブロック内アドレスに従ってマルチプレクサ５３６により選択された列ブロックからデータを選択するデコーダ５３８を含む。たとえば、この列ブロックが６４ビットのデータブロックの場合、デコーダ５３８により、８ビットまたは１６ビットの演算処理回路が使用するビット幅のデータが選択される。
【０３１５】
タグアドレスは、またタグメモリ５２２へも与えられ、キャッシュミス時においては、タグメモリ５２２内のタグアドレスが指定する列ブロック内のセットのタグアドレスと書替えられる。このタグアドレスの書替えにおいては、たとえばＬＲＵ論理（最も古く用いられたタグアドレスを選択して置換する論理）に従ってタグアドレスの書替えが実行される。
【０３１６】
ＲＯＭキャッシュ５１０が命令をキャッシュする場合、通常、命令は、分岐処理などを除いて、プログラムカウンタのカウント値に従ってシーケンシャルに実行される。したがって、この場合、ＲＯＭキャッシュ５１０には、命令が逐次格納されていればよい。キャッシュコントローラ５１２は、命令領域５０１の命令をプリフェッチする機能を備えていればよく、特にキャッシュ処理をすることは要求されない。したがって、この命令キャッシュの場合、その構成は後に詳細に説明するが、ＲＯＭキャッシュ５１０に対するキャッシュコントローラ５１２は、単に、ＲＯＭキャッシュ５１０をＦＩＦＯバッファとして利用し、命令ＲＯＭキャッシュがフル（満杯）状態となったときに、演算処理回路にデータをアクセス要求に従って逐次転送し、このＲＯＭキャッシュのアドレスが所定数歩進し、所定数の命令が使用されたときに、再び、ＲＡＭ領域５０１へアクセスして、命令を消費されたアドレス領域に転送する（キャッシュブロックサイズ単位で、キャッシュコントローラ５１２がデータ転送を行なう）。
【０３１７】
しかしながら、この実施の形態１０においては、キャッシュコントローラ５１２および５１７は、共に、キャッシュヒット／ミス判定を行なう場合を想定し、ＲＯＭポートが、シーケンシャルにアクセスされる命令以外のデータの転送ポートとして利用される場合をも想定する。
【０３１８】
図４２は、図４１に示すキャッシュメモリ５３０およびキャッシュコントローラ５２０のデータ読出時の動作を示すフロー図である。以下、図４２を参照して、この図４１に示すキャッシュメモリ５３０およびキャッシュコントローラ５２０の動作について説明する。なお、以下の説明において、キャッシュメモリから不揮発性ＲＡＭへのデータの返送があり、キャッシュデータの書込が実行されるのは、キャッシュ対象領域がＲＡＭ領域の場合であり、キャッシュ対象領域がＲＯＭ領域の場合には、単に、ＲＯＭ領域からアクセス要求されたデータを含むキャッシュブロックデータが読出されてキャッシュメモリに書込まれる。
【０３１９】
まず、外部からアクセス要求があるかの判定が行なわれる（ステップＳ３０）。これは、図４１において、図示しない制御信号（例えばアクセス指示信号ＥＮ♯）により判定される。アクセス要求があるまで、このステップＳ３０が繰返され、データ要求発行を待ち受ける。
【０３２０】
アクセス要求があると、タグメモリ５２２は、セットアドレスに従って、対応のセットを選択し、そのセットに含まれる列ブロック毎のタグアドレスを読出す。比較回路５２４は、タグアドレスとタグメモリ５２２から読出された列ブロック毎のタグアドレスを並行して比較し、その一致／不一致を各列ブロック毎に判定して、キャッシュヒット信号群ＨＴＧおよびキャッシュヒット信号Ｈｉｔを生成する。
【０３２１】
このキャッシュヒット信号Ｈｉｔに従って、メモリアクセス制御回路５２６においては、キャッシュヒット／ミスの判定が行なわれる（ステップＳ３１）。
【０３２２】
キャッシュヒットの場合、キャッシュメモリ５３０においては、デコーダ５３４およびマルチプレクサ５３６により、セットアドレスおよびキャッシュヒット信号群ＨＴＧに従って、与えられたタグアドレスを含む列ブロックのデータを読出す。次いで、デコーダ５３８がメモリアクセス制御回路５２６により活性化され、与えられたブロック内アドレスに従って選択された列ブロックからデータを読出し、外部ポート（ＲＯＭポートまたはＲＡＭポート）へ転送する（ステップＳ３２）。
【０３２３】
一方、ステップＳ３１において、キャッシュミスと判定されると、アクセス制御回路５２６は、外部へウエイトをかけ、内部バス５０３（図４０参照）が使用されているかの判定を行なう（ステップＳ３３）。内部バスが使用されている場合には、内部バスへのアクセスにウエイトをかけ、内部バスが不使用状態となるまで待ち合わせる。
【０３２４】
一方、内部バスが使用されていない場合には、キャッシュコントローラ５２０が、対象の領域（ＲＯＭ領域またはＲＡＭ領域）へアクセスし、与えられたアドレス（セットアドレスおよびタグアドレス）が指定する列ブロックのメモリセルの記憶情報を読出す（ステップＳ３４）。この場合、対応の領域から、キャッシュブロックサイズのデータが並列に読出され、キャッシュメモリ５３０への書込が行なわれるとともに、この転送されたブロック内のアクセスデータをブロック内アドレスに従って選択して外部へ出力する（ステップＳ３５）。
【０３２５】
このデータ読出モード時、キャッシュメモリ５３０と対応のＲＯＭまたはＲＡＭ領域との間のデータ転送時、コピーバック方式のキャッシュシステムにおいては、キャッシュメモリから対応のＲＯＭ／ＲＡＭ領域へ、古いキャッシュデータブロックを返送し、その後に、アクセス対象のデータをＲＯＭ／ＲＡＭ領域から読出してキャッシュ５３０へ転送する。
【０３２６】
すなわち、コピーバック方式のキャッシュシステムにおいては、たとえばＬＲＵ論理（最も古く使用されたタグアドレスのキャッシュデータブロックを選択する）に従ってキャッシュメモリ内で対応の列ブロックのデータを選択して、不揮発性ＲＡＭの対応の領域（ＲＯＭ／ＲＡＭ領域の選択されたセットアドレスおよびタグアドレスが指定するアドレス領域）へ書き戻した後、与えられたアクセス要求するメモリアドレスに従ってデータの読出が実行される。タグアドレスの値により列ブロックは特定することができる（１つの列ブロック内においてはタグアドレスは、列ブロックの数ずつ増分される）。
【０３２７】
このコピーバック方式のキャッシュシステムにおいて、ダーティビットが利用され、キャッシュデータの書込が行なわれたかをモニタし、返送ブロックのダーティビットが、書込を示していないときには、このデータブロックの返送は行なわれず、不揮発性ＲＡＭからの対象領域のデータブロックのキャッシュ５３０への転送が行われてもよい。
【０３２８】
一方、ライトスルー方式のキャッシュシステムにおいては、キャッシュメモリの内容が書替えられた場合には、不揮発性ＲＡＭの対応の領域の記憶データ／情報も並行して書替えられる。キャッシュのコヒーレンシは常時維持されているため、キャッシュメモリから不揮発性ＲＡＭへの置換対象データブロックの転送は行なわれない。タグメモリ５２２内において例えばＬＲＵ論理に従ってタグアドレスの更新を行って新たなタグアドレスを登録するとともに、不揮発性ＲＡＭのアクセス対象領域からデータブロックを読出し、該読出データブロックがキャッシュメモリの置換対象ブロックが格納されていた領域に格納される。
【０３２９】
キャッシュメモリ５３０へのキャッシュブロックサイズのデータ書込時においては、演算処理回路から与えられた新たなタグアドレスがタグメモリ５２２に格納され、比較回路５２４からのキャッシュヒット信号群ＨＴＧの対応のヒット信号がヒット状態となり、マルチプレクサ５３６が、メモリ（対象領域）から転送されたデータを対応の領域に格納する。このとき、デコーダ５３４により、転送データキャッシュブロックサイズのデータの選択が行なわれて、キャッシュブロックサイズのうちのアクセス要求されたデータが選択されて読出される。ここで、キャッシュブロックサイズは、通常、一回の転送サイクルで不揮発性ＲＡＭとキャッシュの間で転送されるデータブロックのサイズであり、キャッシュと不揮発性ＲＡＭとの間の内部データバス５０３のビット幅により決定される。しかしながら、キャッシュブロックのサイズが、内部データバス５０３のバス幅の整数倍であり、キャッシュブロックサイズのデータが複数回にわたってキャッシュメモリ５３０と不揮発性ＲＡＭとの間で転送されてもよい。
【０３３０】
なお、キャッシュメモリ５３０が、ＲＯＭキャッシュ５１０の場合には、キャッシュリードミスの場合には、単にＲＯＭ領域５０１のアクセス要求されたデータを含むデータブロックが読出されてＲＯＭキャッシュへの転送が行なわれ、ＲＯＭ領域５０１へのデータの返送（コピーバック方式の場合およびライトスルー方式いずれにおいても）は実行されない。ＲＯＭキャッシュ５１０へのライトアクセスは行なわれないためである。
【０３３１】
図４３は、図４１に示すキャッシュコントローラ５２０およびキャッシュメモリ５３０のデータ書込時のコピーバック方式に従う動作を示す図である。以下、図４３を参照して、コピーバック方式のデータ書込時のキャッシュ動作について説明する。この説明においても、データ書込を要求するライトアクセスは、ＲＯＭキャッシュに対しては行なわれず、ＲＡＭキャッシュに対してのみ実行される。以下の説明においては、不揮発性ＲＡＭのアクセス対象領域がＲＡＭ領域であるとして説明する。
【０３３２】
まず、ステップＳ４０において、キャッシュメモリ５３０に対するアクセス要求（不揮発性ＲＡＭへのアクセス）が発行されたかの判定が、制御信号（図示せず）をモニタすることにより行なわれる。
【０３３３】
アクセス要求があると、次いで、セットアドレスおよびタグアドレスに従ってキャッシュヒット／ミスの判定が行なわれる（ステップＳ４１）。キャッシュヒットの場合には、キャッシュメモリ５３０に、アクセス要求されたデータが格納されており、このキャッシュメモリ５３０の対応の位置へ、与えられた書込データを書込み（ステップＳ４２）、再びステップＳ４０に戻る。
【０３３４】
一方、キャッシュミスの場合には、まず、外部に対しウエイトをかけ、内部バス５０３が使用状態にあるかの判定を行なう（ステップＳ４３）。内部バス５０３が使用されている場合には、バスが不使用状態となるまで待つ。内部バス５０３が不使用状態のときには、このキャッシュメモリ５３０内のたとえばＬＲＵ論理に従って選択されたキャッシュブロックサイズのデータが読出され、ＲＡＭ領域の対応の領域へ書込まれる（ステップＳ４４）。このキャッシュメモリ５３０からＲＡＭ領域への返送時のキャッシュブロックサイズのデータの読出は、内部バスの使用判定ステップＳ４３と並行して行なわれてもよい。
【０３３５】
続いて、不揮発性ＲＡＭ内のＲＡＭ領域のアクセス要求されたデータを含むキャッシュブロックサイズのデータが、演算処理回路から与えられたセットアドレスおよびタグアドレスに従って読出され、キャッシュメモリ５３０へ書込まれるとともに、外部から与えられた書込データが、ブロック内アドレスに従ってキャッシュメモリ５３０に並行して書込まれる（ステップＳ４５）。書込完了により、外部に対するウエイトが解除され、再び、ステップＳ４０に戻る次のアクセス要求の発行を待つ。
【０３３６】
したがって、コピーバック方式の場合には、キャッシュライトミス時においては、リードミスの場合と同様、キャッシュメモリに格納された古いデータを一旦ＲＡＭ領域へ転送して格納し、次いでアクセス要求されたデータを含むキャッシュブロックサイズのデータをキャッシュメモリ５３０へ書込むステップが必要とされる。
【０３３７】
図４４は、図４１に示すキャッシュメモリ５３０およびキャッシュコントローラ５２０のライトスルー方式に従うデータ書込時の動作を示すフロー図である。以下、図４４を参照して、図４１に示すキャッシュコントローラおよびキャッシュメモリの動作について説明する。
【０３３８】
まず、コピーバック方式と同様、ステップＳ５０においてアクセス要求が発行されたかの判定が行なわれ、次いでステップＳ５１において、アクセス要求があった場合、キャッシュヒットであるかの判定が行なわれる。判定動作は、これまでに説明したキャッシュ動作と同様、図４１に示す比較回路５２４により、タグメモリ５２２から読出されたタグアドレスとの比較により実行される。
【０３３９】
キャッシュヒット時においては、キャッシュヒット信号群ＨＴＧおよびブロック内アドレスに従って、図４１に示すデコーダ５３８およびマルチプレクサ５３６により書込位置が選択されて、キャッシュメモリ５３０の選択された書込位置にデータの書込が行なわれる（ステップＳ５２）。
【０３４０】
このときまた、内部バス５０３が使用されているかの判定が行なわれ（ステップＳ５３）、内部バスが不使用状態のときに、与えられた書込データをＲＡＭ領域の対応の領域へ書込む（ステップＳ５４）。したがって、キャッシュメモリへ書込データを書込むと、並行してＲＡＭ領域の対応のアクセス要求されたメモリ位置への書込データの書込が実行される。したがって、常時、キャッシュメモリに格納されるキャッシュメモリ５３０とＲＡＭ領域とは対応のデータが常に一致しており、キャッシュコヒーレンシが確保される。
【０３４１】
コピーバック方式においても、データの書替えを示すダーティビットのオン／オフ状態に従って選択的なデキャッシュブロックサイズのデータ返送を行なうことにより、ライトミス時のペナルティを軽減することは可能である（ダーティビットがオンであり、データ書換が示されているときにはデータブロックの返送が行なわれる）。しかしながら、ライトスルー方式により、常時、キャッシュメモリとＲＡＭ領域のデータのコヒーレンシを維持することにより、このダーティビットを用いる必要がなく、キャッシュシステムの構成が簡略化され、また常に、ＲＡＭ領域へのキャッシュブロックデータの返送が行なわれないため、ライトミス時のペナルティを低減することができる（ＲＡＭ領域への書込データの書込は、キャッシュメモリへのアクセスと並行して実行され、ＲＡＭ領域への書込がキャッシュアクセスにより隠される）。
【０３４２】
ステップＳ５１でキャッシュミスと判定されると、まず、内部バスが使用可能かの判定が行なわれる（ステップＳ５５）。内部バスの空きのときには、ＲＡＭ領域の対象データを読出し（ステップＳ５６）、読出したデータブロックをキャッシュメモリ５３０へ転送し、外部から与えられた書込データおよびＲＡＭ領域から転送されたデータをともに、キャッシュメモリの対応の位置に書込む（ステップＳ５７）。この書込後外部へのウエイトを解除し、再びステップＳ５０に戻り、アクセス要求の発行を待つ。
【０３４３】
したがって、ＲＡＭ領域およびＲＯＭ領域両者に対しキャッシュメモリを設けることにより、キャッシュミス時において、内部で不揮発性ＲＡＭの対象領域との間でキャッシュブロックサイズのデータの転送が行なわれている間、別のポートにおいてはキャッシュヒットに従ってデータ／情報のアクセスを行なうことができ、キャッシュミス時のペナルティを低減することができる。
【０３４４】
また、演算処理システムが、半導体集積回路装置の場合、ＲＯＭキャッシュおよびＲＡＭキャッシュの間の内部データバスは、チップ上配線である。したがって、外付けの個別（ディスクリート）キャッシュメモリを用いる場合に比べてピン端子の制約がなく、キャッシュデータ転送バス（内部データバス５０３）のビット幅を、キャッシュブロックサイズに容易に設定することができ、キャッシュブロックサイズを所望のサイズに設定することができる。したがって、キャッシュミス時のデータ転送に要する時間を低減することができ、高速のキャッシュシステムを実現することができる。
【０３４５】
なお、ライトスルー方式の場合、ＲＡＭ領域への書込データと、キャッシュミス時にＲＡＭ領域からキャッシュメモリへ転送されるキャッシュブロックとは、ビット幅が異なる。しかしながら、不揮発性ＲＡＭとしてＭＲＡＭを用いる場合、書込列選択ゲートおよび読出列選択ゲートは別々に設けられており、この書込時においては、外部のデータビット幅単位での書込を行ない、読出時には、キャッシュブロックサイズのデータを一括して選択して読出す構成は容易に実現することができる（読出時、列アドレスの所定数の下位ビットを縮退状態に設定して、読出データビット幅を書込データビット幅よりも広くする；または書込列選択線と読出列選択線が同時に選択するビット線の数を変更する）。
【０３４６】
また、書込列選択ゲートおよび読出列選択ゲートに共通に設けられている構成の場合においても、データ書込時、メモリセルアドレス（タグ、セットおよびブロック内アドレス）をすべて有効とし、データ読出時、キャッシュブロックサイズのデータアドレス（セットおよびタグアドレス）のみを有効とし、メモリセルのブロック内アドレスを縮退状態とすることにより、キャッシュブロックサイズのデータを同時に読出すことができる。
【０３４７】
図４５は、この発明の実施の形態１０におけるＲＯＭキャッシュ５１０およびＲＡＭキャッシュ５１５とＲＯＭ領域５０１およびＲＡＭ領域５０２の間のデータ転送を行なう部分の構成をより具体的に示す図である。
【０３４８】
図４５において、ＲＯＭキャッシュ５１０と内部バス５０３の間に、双方向転送バッファ回路５４０が配置され、またＲＡＭキャッシュ５１５と内部バス５０３の間に、双方向転送バッファ回路５４２が設けられる。
【０３４９】
ＲＯＭ領域５０１およびＲＡＭ領域５０２は、それぞれ所定数のメモリマットＭＡＴ♯を含み、これらのメモリマットＭＡＴ♯が共通に内部バス５０３に結合される。
【０３５０】
双方向転送バッファ回路５４０および５４２は、内部バス５０３におけるデータの衝突を防止するために設けられ、双方向転送バッファ回路５４０は、ＲＯＭポート５１１に結合されるデータバスと内部バス５０３を分離し、また、双方向転送バッファ回路５４２は、ＲＡＭポート５１９と内部バス５０３との間を分離する。これにより、ＲＯＭキャッシュ５１０およびＲＡＭキャッシュ５１５へのキャッシュヒットまたはミスアクセス時、並行して、ＲＯＭキャッシュデータおよびＲＡＭキャッシュデータが、内部データバス５０３に伝達されるのを防止することができ、正確なキャッシュデータの転送（内部転送および外部転送）を実現することができる。
【０３５１】
これらの双方向転送バッファ回路５４０および５４２の転送動作制御は、図４０に示すキャッシュコントローラ５１２および５１７により実行されてもよく、また、このキャッシュコントローラ５１２および５１７内に、双方向転送バッファ回路５４０および５４２が配置されてもよい。また、これに代えて、ＲＯＭキャッシュ５１０およびＲＡＭキャッシュ５１５内に双方向転送バッファ回路５４０および５４２がそれぞれ配置されてもよい。また、双方向転送バッファ回路５４０および５４２が、不揮発性ＲＡＭ内に配置されて、その転送動作が不揮発性ＲＡＭ内の制御回路により実行されてもよい。
【０３５２】
双方向転送バッファ回路５４０および５４２は、転送動作時、内部バス５０３と同一のビット幅のラッチ回路および転送バッファを含み、キャッシュと不揮発性ＲＡＭのメモリマットの間の転送データのラッチおよび転送データのバッファ処理を実行する。キャッシュからＲＡＭ領域へのデータ転送時には、キャッシュから読出されたキャッシュブロックデータをラッチし、次いでラッチデータブロックをＲＡＭ領域のメモリマットへ転送する。ＲＡＭ領域またはＲＯＭ領域からのデータのキャッシュへの転送時には、メモリマットから読出されたデータのラッチおよびラッチデータのＲＯＭ／ＲＡＭキャッシュへの転送を行う。
【０３５３】
双方向転送バッファ５４０は、ＲＯＭキャッシュ５１０に対して設けられ、実使用時の演算処理時には、ＲＯＭ領域から読出されたデータのラッチおよびＲＯＭキャッシュへのラッチデータの転送を実行する。初期情報の書込のために、双方向転送バッファ回路５４０が設けられ、ＲＯＭ領域に対する双方向データ転送機能をサポートする。
【０３５４】
これらの双方向転送バッファ回路５４０および５４２の配置は、このキャッシュシステムを構成する構成要素はすべて同一半導体チップ上に集積化されているため、１つの機能ブロックがいずれの回路に配置されるかはチップ面積の利用好率を考慮して適宜定められる。
【０３５５】
［変更例］
図４６は、この発明の実施の形態１０の変更例のＲＯＭキャッシュコントローラ５１２の構成を概略的に示す図である。図４６において、ＲＯＭキャッシュコントローラ５１２は、プログラムカウンタ５４５と、このプログラムカウンタ５４５のカウント値に従ってＲＯＭ領域（５０１）へのアドレスを生成してＲＯＭ領域からデータを読出し、ＲＯＭキャッシュ５１０へこの読出データを格納するとともに、ＲＯＭポート５１１から与えられるアクセス要求に従ってＲＯＭキャッシュ５１０の格納情報（命令）を順次出力するメモリアクセス制御回路５３０を含む。
【０３５６】
ＲＯＭ領域（５０１）には、プログラム命令およびブート命令が格納される。プログラムまたはブート命令の実行時には、命令はシーケンシャルに実行される。すなわち、割込み発生など以外には、命令は、連続的にプログラムカウンタ５４５のカウント値に従って順次実行される。したがって、ＲＯＭ領域（５０１）が命令を格納する場合には、キャッシュヒット／ミスの判定を行なうことは特に要求されない。したがって、プログラムカウンタ５４５に設定される、命令シーケンスの初期アドレスに従ってＲＯＭ領域（５０１、図４０参照）へアクセスしてキャッシュブロックサイズの命令をＲＯＭキャッシュ５１０へ転送する。ＲＯＭキャッシュ５１０においては、格納命令を順次読出して演算処理回路へ転送する。
【０３５７】
図４７は、図４６に示すＲＯＭキャッシュコントローラ５１２の動作を示すフロー図である。以下、図４７を参照して、図４６に示すＲＯＭキャッシュコントローラ５１２の動作について説明する。
【０３５８】
まず、プログラム実行時、ＲＯＭポート５１１を介して演算処理回路から、プログラム初期（先頭）アドレスがアクセス要求とともに与えられる。メモリアクセス制御回路５３０は、この与えられたプログラム初期アドレスをプログラムカウンタ５３２に設定する（ステップＳ６０）。次に、このプログラムカウンタ５３２に設定された初期アドレスに従って、メモリアクセス制御回路５３０は、内部データバス（５０３）が不使用のとき、ＲＯＭ領域（５０１）へアクセスして、キャッシュブロックサイズの命令を読出し、ＲＯＭキャッシュ５１０へ格納する（ステップＳ６１）。このキャッシュブロックサイズの命令転送後、プログラムカウンタ５３２のカウント値をキャッシュブロックサイズの命令アドレス分更新する。
【０３５９】
ＲＯＭキャッシュ５１０は、実質的に、ＦＩＦＯ（ファーストイン・ファーストアウト）型メモリであり、メモリアクセス制御回路５３０は、ＲＯＭ領域からの命令転送後、ＲＯＭキャッシュ５１０の先頭アドレスから順次格納命令を読出して、ＲＯＭポート５１１を介して演算処理回路へ転送する。ＲＯＭキャッシュ５１０が、メモリアクセス制御回路５３０は、ＲＯＭ領域（５０１）へ繰返しアクセスして、このＲＯＭキャッシュ５１０がフル状態となるまで、命令ブロックを転送してＲＯＭ領域から読出してＲＯＭキャッシュ５１０に格納する（ステップＳ６１）。
【０３６０】
このフル状態となるまでのキャッシュ命令ブロックサイズ転送時、ＲＯＭポート５１１を介して、順次外部の演算処理回路が、命令読出して実行する。この命令読出時、メモリアクセス制御回路５３０は、ＲＯＭキャッシュ５１０の読出アドレスを順次更新し、ＲＯＭキャッシュ５１０からＲＯＭポート５１１へ読出された命令数が所定数（たとえばキャッシュブロックサイズ）実行されたかをＲＯＭキャッシュの読出アドレス更新をモニタして判断する（ステップＳ６２）。
【０３６１】
メモリアクセス制御回路５３０は、所定数（キャッシュブロックサイズ）の命令が実行されたと判断すると、新たに、ＲＯＭ領域（５０１）へアクセスし、次の命令ブロックを読出し、ＲＯＭキャッシュ５１０の使用済みの命令が格納された領域へ転送命令ブロックを書込む（ステップＳ６３，Ｓ６４）。
【０３６２】
ＲＯＭキャッシュ５１０は、実質的にＦＩＦＯ型メモリであり、読出アドレスおよび書込アドレスを順次更新する。ＲＯＭキャッシュ５１が、ＭＲＡＭで構成される場合、単に、読出アドレスカウンタおよび書込アドレスカウンタを用いてＲＯＭキャッシュ５１０のアドレスを更新する。この場合においても、命令のキャッシュブロックサイズは、ＲＯＭポート５１１を介して演算処理回路へ転送される命令のビット幅よりも大きいため、ＲＯＭキャッシュ５１０への書込時の書込データブロックのサイズは、ＲＯＭポート５１１へ読出される命令ビット幅よりも大きい。この場合においても、ＲＯＭキャッシュ５１０が、ＭＲＡＭで構成される場合、書込列選択ゲートおよび読出列選択ゲートが別々に存在するため、容易にその書込ブロックサイズおよびキャッシュ命令のビット幅が異なる構成に対応することができる（ライトスルーと同じ）。また、ＲＯＭキャッシュ５１０が、ＳＲＡＭで構成される場合、単に、通常のＦＩＦＯと同様、書込経路および読出経路を別々に設ける２ポート構成を利用することにより、書込データブロックサイズのビット幅および読出命令のビット幅の異なる構成に対応することができる。また、書込列アドレスと読出アドレスの有効ビット数を異ならせることにより、ＲＯＭキャッシュ５１０から読出される命令のビット幅をＲＯＭキャッシュ５１０へ書込まれる命令ブロックのサイズよりも小さくすることはできる（書込列アドレスの所定数の下位ビットを縮退状態に設定する）。
【０３６３】
この図４６に示す構成の場合、システム立上げ時のブート情報を実行する場合、電源投入検出信号などによりプログラムカウンタ５３２を、ブート領域の初期（先頭）アドレスに初期設定する。次いで、メモリアクセス制御回路５３０が、このプログラムカウンタ５３２２設定されたアドレスに従ってＲＯＭ領域（５０１）へアクセスして、必要なブート情報を順次、読出してＲＯＭキャッシュ５１０に格納する。
【０３６４】
この図４６に示すＲＯＭキャッシュ５１０およびＲＯＭキャッシュコントローラ５１２の構成を利用する場合、たとえば命令実行シーケンスにおいて、分岐命令が実行される場合、分岐発生後に実行される命令ブロックおよび分岐非発生時に実行される命令ブロックをＲＯＭキャッシュ５１０に格納することができる。ＲＯＭキャッシュ５１０において分岐発生／非発生に応じて読出アドレスを設定することにより、分岐命令予測実行方式に基づいて命令が実行される場合において、分岐予測が誤った場合においても、誤予測のペナルティを低減して即座に次の命令をＲＯＭポート５１１へ読出すことができ、分岐予測方式のキャッシュシステムにおいて用いられる分岐予測バッファ（ＢＴＢ）の構成を簡略化することができる。
【０３６５】
以上のように、不揮発性ＲＡＭにおいてＲＯＭ領域およびＲＡＭ領域を設け、そのサイズが可変な主メモリの構成に対し、ＲＯＭ領域およびＲＡＭ領域それぞれに対し、小容量のキャッシュを配置しており、高速の演算処理が実現されるとともに、１つのポートでのキャッシュミス発生時においても、別のポートに対しては、必要な命令／データをキャッシュから転送することができ、キャッシュミス時のペナルティを低減することができる。
【０３６６】
主記憶として、ＭＲＡＭを利用する場合、キャッシュライトミス時においては、コピーバック方式でデータの書込を実行する。ＭＲＡＭの書込回数が低減され、消費電流が低減する。
【０３６７】
図４８は、コピーバック方式に従うキャッシュシステムにおいて用いられる不揮発性ＲＡＭのメモリマットのデータ書込部の構成を概略的に示す図である。図４８において、メモリマットＭＡＴ♯は、ＭＲＡＭセルが行列状に配列されるメモリセルアレイ５５０と、メモリセルアレイ５５０の選択メモリセルに対してデータを書込む書込回路５５２を含む。書込回路５５２は、書込列選択回路および書込ドライブ回路両者を含む。
【０３６８】
書込回路５５２に対し、データレジスタ５５４が設けられ、内部データバス５０３ａを介して伝達されるデータビットを並列にラッチする。これらのデータレジスタ５５４のデータラッチ動作および書込回路５５２の書込動作を制御するために、アクセスコントローラＡＣＬ内に、書込制御回路５５５が設けられる。このアクセスコントローラＡＣＬは、先の実施の形態１から７において説明したものと同様の機能を実現し、対応のメモリマットＭＡＴ♯への書込アクセス時、書込アクセス要求に従って、データ書込の実行を制御する。
【０３６９】
図４９は、図４８に示す書込制御回路５５５の書込動作制御シーケンスを示すフロー図である。以下、図４９を参照して、図４８に示す構成のデータ書込時の動作について説明する。
【０３７０】
内部データバス５０３ｄにおいては、コピーバック方式に従って、キャッシュブロックサイズのデータが返送される。
【０３７１】
まず、対応のキャッシュコントローラからアクセス要求が発行され、そのアクセス要求に従ってコピーバックが実行されるかどうかの判定が行なわれる（ステップＳ７０）。このコピーバック動作を実行するかは、コピーバック方式のキャッシュシステムにおいて、アクセス要求としてデータ書込アクセス要求があった場合に判定することができる。
【０３７２】
このコピーバックデータ書込要求があった場合、アクセスコントローラＡＣＬにおいて、キャッシュコントローラから与えられた転送アドレスに従ってメ対応のモリマットＭＡＴ♯が指定されたかを判定する。対応のメモリマットＭＡＴ♯に、コピーバックデータを書込む場合、書込制御回路５５５が、ラッチ制御信号ＷＳＥＬを生成してデータレジスタ５５４を活性化し、内部データバス５０３ｄを介して返送されるコピーバックデータのビットを並列に格納する（ステップＳ７１）。データレジスタ５５４においてコピーバックデータをラッチした後、書込制御回路５５５は、図示しない経路を介して対応のキャッシュコントローラに対してデータラッチ完了を示す信号を送信する。
【０３７３】
キャッシュコントローラは、この返送された書込完了指示信号により、アクセス要求されたデータを含むデータブロックのアドレス（タグおよびセットアドレス）を転送する。、この転送されたアドレスに従ってアクセス対象のメモリマットが選択され、対応のアクセスコントローラにおいて、アドレス指定されたデータブロックを読出して、図示しない内部読出データを介して返送する（ステップＳ７２）。このアクセス要求されたデータを格納するメモリマットは、コピーバックデータを格納するメモリマットまたは別のメモリマットである。いずれの場合においても、コピーバックデータブロックは、データレジスタ５５５に格納されており、演算処理回路によりアクセス要求されたデータブロックの読出および返送は、何らコピーバックデータの返送の影響を受けることなく実行することができる。
【０３７４】
書込制御回路５５５は、データレジスタ５５４においてデータをラッチし、また、コピーバックデータのアドレスをラッチした後、対応のメモリマットＭＡＴ♯に対し、データ読出要求が与えられていないとき、データレジスタ５５４から、所定数のビット単位でデータを書込回路５５２へ転送する。この書込回路５５２において書込指示信号ＷＥに従って所定数の書込ドライブ回路単位で書込ドライブ回路を順次活性化してデータの書込を実行する（ステップＳ７３）。
【０３７５】
この書込動作において、メモリセルアレイ５５０においては、ＭＲＡＭの場合、ディジット線が選択され、また書込列選択ゲートを介してビット線が選択される。キャッシュブロックサイズの書込データに対し共通にディジット線が設けられ、かつ選択列のビット線ＢＬが、それぞれ異なるデータビットに対応する場合、ディジット線ＤＬを選択状態に維持した状態で、順次、書込回路５５２の書込ドライブ回路を所定数単位で活性化する。書込列選択ゲートは、１つの書込列選択線に従ってキャッシュブロックサイズのビット線が並列に、それぞれ異なる内部書込データ線に結合される。キャッシュブロックサイズの書込列選択ゲートが選択状態に維持され、順次対応の書込ドライブ回路を活性化してデータビットの書込のを実行する。
【０３７６】
メモリセルアレイ５５０においてＩ／Ｏブロックが配置されている場合には、異なるＩ／Ｏブロック（データビット）に対応するビット線が並行して選択されて対応の内部書込データ線に結合される。各内部書込データ線に対応して書込ドライブ回路が配置されており、これらの書込ドライブ回路を順次所定数単位で活性化する。この所定数単位で書込ドライブ回路を活性化する構成は、活性状態の書込指示信号ＷＥを例えばシフトレジスタで順次シフトして所定数の書込ドライブ回路へ与えることにより、容易に実現することができる。
【０３７７】
なお、データレジスタ５５４から所定数のビット単位で、対応の活性化される書込ドライブ回路へ格納データを転送してもよい（制御信号ＷＳＥＬに従って）。
【０３７８】
このコピーバックデータブロックをメモリマットＭＡＴ♯に書込む際、順次所定ビット数単位でデータを書込むことにより、ＭＲＡＭが主メモリとして用いられる場合において、書込電流を分散させることができ、書込時のピーク電流を低減することができる。
【０３７９】
なお、このコピーバックブロックデータ書込時、ＲＡＭ領域において複数のメモリマットが並列に選択されてデータの書込が行なわれる場合、各メモリマットを順次活性化し、各メモリマット内において、所定数ビット単位でデータの書込を行なう。１つのメモリマットにおいて、書込制御回路５５５においてデータ書込時、書込指示信号に基づいて生成される書込ドライブ回路活性化信号を順次活性化し、対応の書込回路５５２によるデータ書込完了後、隣接メモリマットへ、この書込ドライブ回路活性化信号を転送する。ことにより、複数のメモリマットにわたって順次メモリマットごとにデータを所定数ビット単位で書込む構成を実現することができる。
【０３８０】
この所定数ビット単位で返送データブロックのデータの書込を行なう場合、キャッシュブロックのデータをすべて書込むためには複数サイクルが必要とされる。しかしながら、アクセス要求されたキャッシュブロックは、対応のキャッシュに転送されている。キャッシュは、データアクセスの局所性を利用しており、連続的にキャッシュへのアクセスが行なわれる（キャッシュヒットが連続する）可能性が高い。したがって、キャッシュへのアクセスサイクルと並行して不揮発性ＲＡＭ内でコピーバックデータの書込を逐次実行することにより、ＲＡＭ領域におけるデータの書込をキャッシュアクセスサイクルで隠すことができ、キャッシュサイクルが長くなるのを抑制することができる。
【０３８１】
以上のように、主記憶として、そのサイズが可変なＲＯＭ領域およびＲＡＭ領域を有する不揮発性ＲＡＭを設け、これらのＲＯＭ領域およびＲＡＭ領域それぞれに、キャッシュを設けており、このキャッシュそれぞれに並列にアクセスすることができ、１つのポートにおいてキャッシュミス発生時においての別のポートでアクセスすることができ、キャッシュミス時のペナルティを、シングルポートキャッシュの構成に比べて低減することができる。
【０３８２】
［変更例１］
図５０は、この発明の実施の形態１０の変更例１に従うキャッシュシステムの構成を概略的に示す図である。この図５０に示すキャッシュシステムは、図４０に示すキャッシュシステムと以下の点でその構成が異なる。すなわち、内部バスが、ＲＯＭバス５０３ａとＲＡＭバス５０３ｂに分離される。不揮発性ＲＡＭ５００においては、命令領域（ＲＯＭ領域）５０１が、内部ＲＯＭバス５０３ａに結合され、データ領域（ＲＡＭ領域）５０２が、内部ＲＡＭバス５０３ｂに結合される。キャッシュコントローラ５１２および５１７は、それぞれ、内部バス５０３ａおよび５０３ｂに制御信号を転送する。ＲＯＭキャッシュ５１０は、内部ＲＯＭバス５０３ａからのデータを受け、ＲＡＭキャッシュ５１５は、内部ＲＡＭバス５０３ｂと双方向にデータを転送する。
【０３８３】
この図５０に示すキャッシュシステムの他の構成は、図４０に示すキャッシュシステムの構成と同じであり、対応する部分には同一参照符号を付す。
【０３８４】
この図５０に示す構成の場合、内部においてＲＯＭバス５０３ａおよび内部ＲＡＭバス５０３ｂが別々に設けられる。したがって、キャッシュコントローラ５１２および５１７は、キャッシュミス時において、内部バスが使用されているかを判断する必要がなく、命令領域（ＲＯＭ領域）５０１およびデータ領域（ＲＡＭ領域）５０２との間で内部バスの空きを待つことなくデータ転送を行なうことができる。したがって、キャッシュミス時のペナルティ（待ち時間）をさらに低減することができる。このキャッシュコントローラ５１２および５１７の動作は、先の図４２から図４４に示す動作フロー図において、内部バス使用状況を判定するステップを除けば、同じである。
【０３８５】
したがって、この変更例１の構成に従えば、内部においてＲＯＭバスおよびＲＡＭバスを別々に設けており、キャッシュミス時のペナルティをより低減することができ、高速キャッシュシステムを実現することができる。
【０３８６】
なお、命令領域およびデータ領域に対しメモリマットを割当てる構成およびバス接続の制御の構成は、先の実施の形態１から４および７に示す構成を利用することができる。
【０３８７】
［変更例２］
図５１は、この発明の実施の形態１０に従うキャッシュシステムの変更例２の構成を示す図である。この図５１に示すキャッシュシステムにおいては、図４０に示すＲＯＭポート５１１およびＲＡＭポート５１９が、共通にメモリポート５６０に結合される。したがって、キャッシュ外部の演算処理回路は、シングルポートプロセッサまたはシングルポートマイクロコントローラである。図５１に示すキャッシュシステムの他の構成は、アクセス指示信号としてポート属性指示信号ＲＯＭ／ＲＡＭ♯を利用することを除けば、図４０に示すキャッシュシステムの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０３８８】
この図５１に示すキャッシュシステムにおいては、ポート５６０から与えられるポート属性指定信号ＲＯＭ／ＲＡＭ♯に従って、キャッシュコントローラ５１２および５１７が、自身に対するアクセス要求が発行されたかの判定を行なう。他のキャッシュアクセス時の動作は、図４０に示すキャッシュシステムの場合と同じである。従って、シングルポートプロセッサまたはマイクロコントローラで構成される演算処理回路においても、命令およびデータを高速で転送することができる。
【０３８９】
なお、ＲＯＭキャッシュ５１０およびＲＡＭキャッシュ５１５が、外部の演算処理回路の演算サイクルの１／２のサイクルタイムで動作可能な場合には、キャッシュコントローラ５１２および５１７が、それぞれ、演算処理回路のサイクルの前半および後半でそれぞれキャッシュ判定を行なう構成が用いられてもよい。この場合、ポート５６０からは、特にポート特性指定信号ＲＯＭ／ＲＡＭ♯を与える必要はなく、キャッシュへのアクセス時にアクセス指示信号ＡＣＴまたはＥＮ♯を与える。
【０３９０】
このシングルポート演算処理回路に対しても、キャッシュシステム内を２ポート構成とし、命令およびデータそれぞれにキャッシュを設けており、高速で命令／データを転送して、演算処理を実行することができ、システム性能を改善することができる。
【０３９１】
［変更例３］
図５２は、この発明の実施の形態１０の変更例３のキャッシュシステムの構成を概略的に示す図である。この図５２に示すキャッシュシステムは、図５０に示すキャッシュシステムと、以下の点でその構成が異なる。すなわち、ＲＯＭポート５１１およびＲＡＭポート５１９が、共通にメモリポート５６０に結合される。このメモリポート５６０を介して演算処理回路からポート属性指定信号ＲＯＭ／ＲＡＭ♯がキャッシュコントローラ５１２および５１７へ与えられる。この図５２に示すキャッシュシステムの他の構成は、図５０に示すキャッシュシステムの構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【０３９２】
この図５２に示すキャッシュシステムの構成においても、１つのメモリポート５６０を介して命令／データの転送が行なわれる場合においても、ＲＯＭキャッシュ５１０およびＲＡＭキャッシュ５１５は、それぞれ、内部ＲＯＭバス５０３ａおよび内部ＲＡＭバス５０３ｂを介してデータ／命令の転送を行なうことができ、キャッシュミス時のペナルティを低減することができる。
【０３９３】
ポート属性指定信号ＲＯＭ／ＲＡＭ♯を利用することにより、演算処理回路の１サイクル内において連続的に、データ領域（ＲＡＭ領域）５０２へアクセスする場合、または、連続的に命令領域（ＲＯＭ領域）５０１へアクセスする場合において、ＮＯＰ状態のキャッシュコントローラを確実に、ＮＯＰ状態に設定することができ、消費電力を低減することができる。
【０３９４】
なお、この図５２に示すキャッシュシステムの構成においても、ＲＯＭキャッシュ５１０およびＲＡＭキャッシュ５１５の動作サイクルタイムが、外部の演算処理回路の動作サイクルタイムの１／２倍以下の場合には、特に、ポート属性指定信号ＲＯＭ／ＲＡＭ♯を与える必要はなく、各演算サイクルの前半および後半でＲＯＭキャッシュ５１０およびＲＡＭキャッシュ５１５へアクセスする構成が用いられてもよい。
【０３９５】
以上のように、この発明の実施の形態１０に従えば、サイズ可変な命令領域（ＲＯＭ領域）およびデータ領域（ＲＡＭ領域）を有する不揮発性ＲＡＭに対し、それぞれキャッシュメモリを設けており、キャッシュミス時のペナルティを低減することができ、キャッシュミスペナルティの少ないキャッシュシステムを実現することができる。
【０３９６】
なお、先の内部バスがＲＯＭキャッシュおよびＲＡＭキャッシュで共通に用いられるシングルメモリポート構成の場合（図５１）においても、キャッシュミス時、ＲＯＭキャッシュがウエイトをかけている間に、ＲＡＭキャッシュへアクセスして、ＲＡＭキャッシュがヒット状態であれば、必要ＲＡＭデータをウエイトすることなくデータを転送することができ、データ転送効率を改善することができる。
【０３９７】
［実施の形態１１］
図５３は、この発明の実施の形態１１に従うキャッシュシステムの構成を概略的に示す図である。図５３において、キャッシュシステムは、主メモリ６００と、主メモリの格納データ／情報をキャッシュするキャッシュメモリ６１０を含む。
【０３９８】
主メモリ６００は、書換が禁止される命令を格納する命令メモリ６０１と書換可能なデータを格納するデータメモリ６０２とを含む。命令メモリ６０１は、フラッシュメモリまたはＭＲＡＭまたはＦｅＲＡＭなどの不揮発性メモリで実現され、一方、データメモリ６０２は、ＤＲＡＭ、ＳＲＡＭ、フラッシュメモリ、およびＭＲＡＭなどのシステム構成／性能に応じたランダムアクセスが可能なメモリが用いられる。命令メモリ６０１は、内部バス６０５に結合され、データメモリ６０２が内部バス６０６に結合される。
【０３９９】
キャッシュメモリ６１０は、命令キャッシュ６１１とデータキャッシュ６１２を含む。キャッシュメモリ６１０は、これまでに説明した実施の形態１から１０における構成と同様、不揮発性ＲＡＭで構成され、かつ命令キャッシュ６１１およびデータキャッシュ６１２のサイズは変更可能であり、それぞれシステム構成に応じた数のメモリマットで実現される。
【０４００】
この命令キャッシュ６１１およびデータキャッシュ６１２と内部バス６０５および６０６の接続の構成としては、先の実施の形態１から４，７および１０において説明した構成と同様の構成が用いられる。ただし、命令キャッシュ６１１においては、命令メモリ６０１からのデータを転送して格納する必要があり、その領域は、書換可能とされる。不揮発性の命令メモリ６０１において、データの書換が禁止される。
【０４０１】
図５４は、図５３に示すキャッシュシステムの構成をより具体的に示す図である。図５４において、ＲＯＭポート６１５に、内部ＲＡＭバス６０５が結合される。内部ＲＯＭバス６０５は、データバス６０５ｄと、アドレスバス６０５ａと、コントロールバス６０５ｃを含む。これらのアドレスバス６０５ａ、データバス６００ｄおよびコントロールバス６０５ｃが、命令キャッシュ６１１に結合され、また、命令メモリ６０１に結合される。この命令メモリ６０１は、一例として、フラッシュメモリ６０１ａで構成される。
【０４０２】
内部ＲＯＭバス６０５に対し、さらに、命令キャッシュコントローラ６２０が結合され、命令キャッシュ６１１に対するアクセスを制御する。命令キャッシュコントローラ６２０は、アドレスバス６０５ａおよびコントロールバス６０５ｃに結合される。
【０４０３】
一方、ＲＡＭポート６１６に結合される内部バス６０６は、コントロールバス６０６ｃ、アドレスバス６０６ａおよびデータバス６０６ｄを含む。データキャッシュ６１２は、これらのコントロールバス６０６ｃ、アドレスバス６０６ａおよびデータバス６０６ｄに結合される。
【０４０４】
データメモリ６０２は、一例として、ＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）６０２ａで構成される。このＤＲＡＭ６０２ａは、コントロールバス６０６ｃ、アドレスバス６０６ａおよびデータバス６０６ｄに結合される。データキャッシュ６１２に対するアクセスを制御するために、データキャッシュコントローラ６２５が設けられる。図５４において、データキャッシュコントローラ６２５においては、タグアドレスを格納するタグメモリ６２５ａと、タグアドレスとタグメモリ６２５ａのアドレスとを比較する比較回路６２５ｂとを、その構成要素として代表的に示す。
【０４０５】
比較回路６２５ｂからの比較結果は、コントロールバス６０６ｃ上に伝達され、データキャッシュ６１２に対するアクセス制御が行なわれる。タグメモリ６２５ａに格納されるタグアドレスの数は、データキャッシュ６１２のサイズに応じて変更される（キャッシュのセットの数が変更されるため）。したがって、タグメモリ６２５ａにおいては、このデータキャッシュ６１２として、最大利用可能なセット数に対応する容量のタグメモリ６２５が設けられる（セットアソシアティブ方式のキャッシュシステムを構成する場合）。データキャッシュ６１２の最大許容容量よりも容量の少ないデータキャッシュ６１２が用いられる場合、タグメモリ６２５ａにおいて、最大セット数から削減されたセットを格納する領域は不使用とされる（実使用のデータキャッシュ６１２の容量に対応するセットのみが利用され、それ以外のセット領域は不使用とされる）。これにより、タグメモリ６２５ａの構成を変更することなく、データキャッシュ６１２のサイズ変更に対応する。
【０４０６】
一方、命令キャッシュコントローラ６２０については、命令キャッシュ６１１は、いわゆる命令バッファとして機能するため、先の図４６に示すキャッシュコントローラ５１２と同様の構成を利用する。命令キャッシュコントローラ６２０内に含まれるメモリアクセス制御回路（図４６の回路５３０）において、キャッシュメモリ６１０の命令キャッシュとして利用する領域のアドレスの先頭値および最終値を格納する。図４６に示すプログラムカウンタ５３２は、そのビット数は変更する必要はなく、外部の演算処理回路から与えられる命令アドレスに従って、プログラムカウンタのカウント値が設定される。命令アクセス時には、命令キャッシュ６１１の設定されたアドレス領域内でサイクリックに命令の読出および格納をアドレスを順次更新して行なう。
【０４０７】
図４６に示すキャッシュコントローラ５１２と同様の構成を命令キャッシュコントローラ６２０に設けることにより、命令キャッシュ６１１に対するキャッシュアクセスを、命令キャッシュ６１１の容量が変更されアドレス領域が変更されても、そのキャッシュコントローラの内部回路構成を変更することなく対応することができる。この構成においては、命令キャッシュコントローラ６２０の命令キャッシュ６１１へのアクセス制御の動作は、図４７に示す制御シーケンスと同じである。命令キャッシュ６１１へのアクセスを行なう場合には、命令キャッシュコントローラ６２０は、この命令キャッシュ６１１へ、コントローラバス６０５ｃを介してデータ読出を、その読出アドレスとともに指定し、命令キャッシュ６１１からデータバス６０５ｄにキャッシュデータ（Ｉ）を読出す。キャッシュミスは、命令キャッシュ６１１においては発生しないと想定しており、命令キャッシュ６１１から命令メモリ６０１（フラッシュメモリ６０１ａ）への命令の返送は行なわれない。
【０４０８】
命令キャッシュ６１１において所定数の命令が読出されたとき、命令キャッシュコントローラ６２０は、アドレスバス６０５ａおよびコントロールバス６０５ｃを介してフラッシュメモリ６０１ａにアクセスし、フラッシュメモリ６０１ａから対応の命令をデータバス６０５ｄ上に読出し、命令キャッシュ６１１の対応の領域（消費された命令が格納された領域）に書込む。命令キャッシュ６１１を、ＦＩＦＯ型メモリとして、命令の読出および格納を実行する。
【０４０９】
データキャッシュ６１２へのアクセス時において、データキャッシュコントローラ６２５により、アクセスが制御される。このデータキャッシュコントローラ６２５は、データキャッシュ６１２のデータのアクセス時には、比較回路８２５ｂからのヒット信号をコントロールバス６０６ｃへ与え、データキャッシュ６１２からデータを読出す（アドレスバス６０６ａ上のブロック内アドレスおよびキャッシュヒット信号群を利用して）。
【０４１０】
一方、キャッシュミス時においては、データキャッシュ６１２への外部アクセスを停止し、データキャッシュコントローラ６２５は、コントロールバス６０６ｃ、アドレスバス６０６ａおよびデータバス６０６ｄを介してＤＲＡＭ６０２ａにアクセスし、必要なデータを含むデータブロックを、データキャッシュ６１２へ転送する。このＤＲＡＭ６０２ａからのデータブロックのデータキャッシュ６１２への転送時には、データキャッシュ６１２からＤＲＡＭへのデータ返送が、コピーバック方式およびライトスルー方式に応じて、先の実施の形態１０において説明したのと同様の態様で、実行される。
【０４１１】
図５４に示す、命令キャッシュコントローラ６２０およびデータキャッシュコントローラ６２５を利用する場合、内部のデータバス６０５および６０６ｄを転送されるデータのビット幅が、キャッシュのブロックサイズを決定する。したがって、ポート６１５および６１６を介してキャッシュ外部へ命令／データを出力する場合、これらのポート６１５および６１６内において、キャッシュアドレスのブロック内アドレスに従って必要なデータを選択して転送する。ＲＡＭポート６１６から書込データが内部へ転送される場合、ＲＡＭデータバス６０６ｄのブロック内ドレスが指定するビット位置のデータバス線に書込データを転送する。
【０４１２】
データのビット幅を、演算処理回路の要求するデータのビット幅とキャッシュブロックサイズの命令／データのビット幅の間で変換する回路の構成の一例を図５５に示す。
【０４１３】
図５５においては、命令ポート（ＲＡＭポート）６１５の構成を示し、ポート６１６の構成要素は括弧内の番号で示す。
【０４１４】
図５５において、ＲＯＭポート（命令ポート）６１５（または６１６）は、ブロック内アドレスをデコードするデコーダ６３１と、１つのポートバス６３２を介して転送される命令Ｉ（またはデータＤ）をデコーダ６３１の出力信号に従って選択するセレクタ６３０を含む。このセレクタ６３０により、１つのキャッシュブロックサイズの命令ブロック（またはデータブロック）が内部データバス６０５ｅ（または６０６ｄ）を介して転送される場合においても、その外部からの命令Ｉ（またはデータＤ）を、正確に、命令ブロック（またはデータブロック）内の対応のアドレス位置を選択して、外部ポートバス６３２と内部データバス６０５ｄ（または６０６ｄ）との間で転送することができる。
【０４１５】
したがって、内部データバス６０５ｄおよび６０６ｄは、キャッシュブロックサイズをできるだけ大きくして、キャッシュミス時のペナルティを低減する場合においても、確実に、ポート６１５および６１６において、さらにバス幅変換を実現することにより、確実に、アクセス要求されるデータまたは命令を、キャッシュ６１１および６１２と演算処理回路との間で転送することができる。
【０４１６】
［変更例］
データメモリ６０２として、ＤＲＡＭ６０２ａが利用される場合、ＤＲＡＭ６０２ａにおいては、所定の周期で、記憶データをリフレッシュする必要がある。
【０４１７】
このＤＲＡＭのリフレッシュ動作が、キャッシュシステムに影響を及ぼさないように、データキャッシュコントローラにおいてＤＲＡＭ６０２ａのリフレッシュを制御する。
【０４１８】
図５６は、この発明の実施の形態１１の変更例におけるＤＲＡＭリフレッシュ制御シーケンスの一例を示すフロー図である。以下、図５４および５６を参照して、この発明の実施の形態１１の変更例におけるＤＲＡＭのリフレッシュ時のデータキャッシュコントローラの制御動作について説明する。
【０４１９】
まず、データキャッシュコントローラ６２５は、アクセス要求がデータポート６１６を介して与えられたかの判定を行なう（ステップＳ８０）。アクセス要求がポート６１６を介して与えられない場合、アクセススタンバイの状態が所定時間経過したかの判定が行なわれる（ステップＳ８１）。所定時間が経過すると、データキャッシュコントローラ６２５は、ＤＲＡＭ６０２ａをセルフリフレッシュモードに設定する（ステップＳ８２）。このセルフリフレッシュモード時においては、ＤＲＡＭは、所定の時間ごとに内部で記憶データの再書き込みを行うリフレッシュを実行する（ＤＲＡＭ内においてリフレッシュを実行する構成は従来から設けられており、このリフレッシュ実行制御の構成を利用する）。
【０４２０】
一方、ステップＳ８０において、アクセス要求があったと判定されると、ステップＳ８２においてＤＲＡＭ６０２ａがセルフリフレッシュモードに設定されている場合には、このセルフリフレッシュモードを解除する（ステップＳ８３）。
【０４２１】
このアクセス要求があるとき、データキャッシュコントローラは、また、与えられたタグアドレスおよびセットアドレスに従って、ヒット／ミスの判定を行なう（ステップＳ８４）。キャッシュヒットの場合には、データキャッシュ６１２のアクセス対象のデータにアクセスする。キャッシュヒット時においては、ＤＲＡＭに対しセルフリフレッシュが解除されている状態であり、リフレッシュ要求を発行する。ＤＲＡＭ６０２ａが、このリフレッシュ要求に従って内部でリフレッシュを実行する。このリフレッシュは、ＣＢＲリフレッシュとして知られているリフレッシュであり、リフレッシュ要求に従って、内部でリフレッシュアドレスを生成して、一回リフレッシュが実行される。
【０４２２】
一方、ステップＳ８４において、キャッシュミスと判定されると、ＤＲＡＭ６０２ａがリフレッシュ動作中であるかの判定が行なわれる（ステップＳ８６）。セルフリフレッシュモード解除時において、ＤＲＡＭがセルフリフレッシュモード解除動作途中である場合または、ステップＳ８５においてリフレッシュ要求が発行されてリフレッシュが行なわれている期間中である場合があり、この期間は、リフレッシュデータの破壊を防止するため、ＤＲＡＭへはアクセスすることが禁止される。
【０４２３】
ＤＲＡＭ６０２ａがリフレッシュ期間中（セルフリフレッシュ解除期間を含む）であると判定されると、このリフレッシュが完全に完了し、ＤＲＡＭ６０２ａのアクセスが許可されるまで待機する（ステップＳ８７）。このＤＲＡＭ６０２ａがリフレッシュ中でなくなり、アクセススタンバイ状態に復帰すると、データキャッシュコントローラ６２５が、ＤＲＡＭ６０２ａへアクセスし、アクセス要求されたデータをＤＲＡＭ６０２ａから読出してデータキャッシュ６１２へ転送し、また外部にアクセス許可を発行する。
【０４２４】
このデータキャッシュへのＤＲＡＭからのデータの転送においては、データの読出を行なうリードアクセスおよびデータの書込を行なうライトアクセスのいずれのアクセス要求に対しても同様の動作が行なわれる。
【０４２５】
ＤＲＡＭのリフレッシュは、ＤＲＡＭへのアクセスが行なわれないときに実行される。従ってキャッシュミス時にリフレッシュを一旦ＤＲＡＭにおいて停止しても、充分に所定のリフレッシュ集きないでＤＲＡＭメモリセル記憶データのリフレッシュを実行することができ、ＤＲＡＭデータの信頼性は維持される。
【０４２６】
データのデータキャッシュからＤＲＡＭへのデータブロックの返送については、ライトスルー方式およびコピーバック方式で異なる。コピーバック方式においては、ステップＳ８８において、コピーバック動作が行なわれＤＲＡＭへ、例えばＬＲＵ論理に従って選択された古いデータブロックが返送された後、アクセス要求されたデータがＤＲＡＭからデータキャッシュへ転送される。一方、ライトスルー方式においては、キャッシュデータを書込む時、キャッシュライトヒット時には、書込アクセス要求に従って、ＤＲＡＭ６０２ａでは、リフレッシュ動作は完了しており、外部からの書込データがデータキャッシュ６１２へ書込まれるとともに、ＤＲＡＭの対応の位置へ書込まれる。キャッシュミスにおいては、書込および読出要求のいずれにおいても、アクセス要求によりリフレッシュが完了しており、ＤＲＡＭ６０２からアクセス要求されたデータブロックがデータキャッシュへ転送される。
【０４２７】
このライトスルー方式でＤＲＡＭ６０２ａのデータ転送を制御する場合、キャッシュブロックサイズとデータビットのビット幅は異なる。この場合、ＤＲＡＭ６０２ａにおいて、書込アドレスおよび読出アドレスの有効ビット幅を変更し、ＤＲＡＭへのデータ書込時においては、全アドレスビットを有効としてアドレス指定を行い、キャッシュミス時のデータキャッシュブロックサイズのデータ転送時においては、このキャッシュブロックサイズのデータに対するアドレス信号を有効とする。単に、キャッシュブロックサイズに応じて、アドレス信号の所定数の下位ビットをデータ読出時、縮退状態（アドレスビットＡｉおよび／Ａｉがともに選択状態の“１”）に設定することにより実現することができる。
【０４２８】
以上のように、ＤＲＡＭ６０２ａをデータ主メモリとして利用しても、ＤＲＡＭのリフレッシュ動作は、データキャッシュへのアクセス時に並行して実行されるため、ＤＲＡＭリフレッシュ動作はデータポート６１６を介してのアクセスに影響を何ら及ぼさず、キャッシュシステムを有効に利用して、効率的にデータ転送を行なうことができる。
【０４２９】
また、フラッシュメモリ６０１ａに対して命令キャッシュ６１１を設けることにより、高速で、データ（命令）アクセス（読出）を行なうことができる。
【０４３０】
また、命令キャッシュ６１１として、ＭＲＡＭを用いても、このＭＲＡＭの書換回数は、フラッシュメモリの書換可能回数よりも大幅に大きく、キャッシュデータに不良が生じる可能性を低減することができる。また、フラッシュメモリ６０１ａに、ブートプログラムまたはブート情報を格納し、命令キャッシュ６１１に転送することにより、ブート動作を高速化することができる。
【０４３１】
また、通常のデータ処理システムにおいては、ハードディスクに格納された基本ソフト（ＯＳ）などのプログラムの命令が、データメモリへ転送され、システムの立上げが行なわれ、また、アプリケーションプログラムハードディスクにインストールされ、処理実行時にＲＡＭ領域に転送される。このハードディスクに格納されたプログラム命令をデータメモリすべてに書込む場合、データキャッシュ６１２に一部を転送することにより、高速で、システム立上げを行なうことができ、また、アプリケーションプログラムを高速で実行することができる。
【０４３２】
特に、処理システムにおいて、処理完了後指示により、システムの動作を完了させる場合、メモリ６０１ａおよびＤＲＡＭ６０２ａから、所定の初期情報および初期データを、命令キャッシュ６１１およびデータキャッシュ６１２に転送することにより、電源投入と同時に、システムを立上げて、必要な処理を実行することができる（必要なハードディスクのデータがすべてデータメモリに転送されるのを待ち合わせる必要はなく、インスタントオンコンピュータを実現することができる。
【０４３３】
なお、この命令メモリ６０１に格納される命令としては、ブートプログラムも併せて格納する。このブート情報に従って、演算処理回路、命令キャッシュコントローラ６２０、およびデータキャッシュコントローラ６２５の初期化およびメモリ６１０の初期化（電源システム終了時、初期データおよび初期プログラムが転送されない場合）、およびデータメモリの初期化が行なわれればよい。
【０４３４】
以上のように、この発明の実施の形態１１に従えば、命令メモリとして、フラッシュメモリまたはＭＲＡＭを用い、データメモリとしてＤＲＡＭなどの個別メモリを用い、それぞれに対し、キャッシュをＭＲＡＭで構成し、そのサイズの可変としており、システム構成に応じた最適なキャッシュサイズを有するキャッシュシステムを構築することができる。また、高速のＭＲＡＭをキャッシュメモリとして利用しており、高速のアクセスを実現することができる。
【０４３５】
なお、これまでの説明において、不揮発性ＲＡＭのポート数が２の場合、およびキャッシュシステムのポート数が２の場合について説明している。これらのポートの数が２に限定されず、３以上設けられてもよい。各ポートに対して、２ポート構成の各ポートに対して設けられる構成が設けられる。これによりポート数の増大に対しても容易に対応することができる。
【０４３６】
また、不揮発性ＲＡＭとしては、ＭＲＡＭおよびＦｅＲＡＭに限定されず、フラッシュメモリおよびＤＲＡＭよりも高速の不揮発性メモリであれば適用可能である。
【産業上の利用可能性】
【０４３７】
この発明に係る半導体集積回路装置は、一般に演算処理回路に対して用いられるメモリとして適用することができ、演算回路と同一チップ上に集積化されるシステムＬＳＩにおいても適用でき、また、ＣＰＵ（中央演算処理装置）と別チップの個別記憶装置としても適用することができる。
【図面の簡単な説明】
【０４３８】
【図１】この発明の実施の形態１に従う半導体集積回路装置の全体の構成を概略的に示す図である。
【図２】図１に示す不揮発性ＲＡＭの構成を概略的に示す図である。
【図３】図２に示すメモリマットの構成およびアクセスコントローラの構成を概略的に示す図である。
【図４】図３に示すメモリマット選択信号を発生する部分の構成の一例を示す図である。
【図５】図４に示す回路の動作を示すタイミング図である。
【図６】図３に示すポート指示データ保持回路の構成の一例を示す図である。
【図７】図６に示すポート指示データ保持回路の動作を示すフロー図である。
【図８】図３に示すアクセス制御回路の構成の一例を示す図である。
【図９】図３に示す接続設定回路の構成の一例を示す図である。
【図１０】図３に示すメモリアレイ周辺回路の構成の一例を示す図である。
【図１１】この発明の実施の形態２に従う不揮発性ＲＡＭの要部の構成を概略的に示す図である。
【図１２】この発明の実施の形態２におけるアクセスコントローラの構成を概略的に示す図である。
【図１３】この発明の実施の形態２の変更例の構成を概略的に示す図である。
【図１４】図１３に示す構成に対する接続設定回路の構成を概略的に示す図である。
【図１５】この発明の実施の形態２の変更例を概略的に示す図である。
【図１６】この発明の実施の形態２の変更例２の構成を概略的に示す図である。
【図１７】図１６に示す構成に対する列選択部の構成の一例を示す図である。
【図１８】この発明の実施の形態３に従う不揮発性ＲＡＭの構成を概略的に示す図である。
【図１９】図１８に示すＩＯ構成の一例を概略的に示す図である。
【図２０】この発明の実施の形態４におけるアクセスコントローラの構成の一例を示す図である。
【図２１】この発明の実施の形態４におけるアクセスコントローラに含まれる接続設定部の構成を概略的に示す図である。
【図２２】この発明の実施の形態４の変更例１におけるデータ書込を禁止するための構成を概略的に示す図である。
【図２３】この発明の実施の形態４の変更例２におけるポート属性設定信号発生部の構成の一例を示す図である。
【図２４】この発明の実施の形態５におけるポート属性指定信号発生部の構成を概略的に示す図である。
【図２５】図２４に示す構成のデータアクセスシーケンスの一例を示す図である。
【図２６】この発明の実施の形態５の変更例のポート属性指定信号発生部の構成を示す図である。
【図２７】この発明の実施の形態６に従う演算処理システムの全体の構成を概略的に示す図である。
【図２８】図２７に示す演算処理システムの動作を示すフロー図である。
【図２９】図２７に示す不揮発性ＲＡＭの構成を概略的に示す図である。
【図３０】この発明の実施の形態６の変更例の構成を概略的に示す図である。
【図３１】この発明の実施の形態７に従う演算処理システムの構成を概略的に示す図である。
【図３２】図３１に示す半導体集積回路装置の動作を示すフロー図である。
【図３３】図３１に示すメモリシステムのメモリマットの接続設定部の構成を概略的に示す図である。
【図３４】この発明の実施の形態７の変更例の構成を概略的に示す図である。
【図３５】この発明の実施の形態８に従う演算処理装置の要部の構成を概略的に示す図である。
【図３６】図３５に示す演算処理装置の動作シーケンスの一例を示す図である。
【図３７】この発明の実施の形態９に従う演算処理装置の構成を概略的に示す図である。
【図３８】図３７に示す演算処理装置の動作シーケンスの一例を示す図である。
【図３９】この発明の実施の形態９の変更例の構成を概略的に示す図である。
【図４０】この発明の実施の形態１０に従うメモリシステムの構成を概略的に示す図である。
【図４１】図４０に示すキャッシュコントローラおよびキャッシュメモリの構成の一例を示す図である。
【図４２】図４１に示すキャッシュメモリおよびキャッシュコントローラの動作を示すフロー図である。
【図４３】図４１に示すキャッシュコントローラのデータ書込時のコピーバック方式に従うデータ書込時の動作を示すフロー図である。
【図４４】図４１に示すキャッシュコントローラのライトスルー方式に従うデータ書込時の動作を示すフロー図である。
【図４５】この発明の実施の形態１０におけるキャッシュ／メモリマット間のデータ転送部の構成を概略的に示す図である。
【図４６】この発明の実施の形態１０の変更例のＲＯＭキャッシュコントローラの構成の一例を示す図である。
【図４７】図４６に示すＲＯＭキャッシュコントローラの動作を示すフロー図である。
【図４８】この発明の実施の形態１０のメモリマットのデータ書込部の構成を概略的に示す図である。
【図４９】図４８に示すメモリマットのデータ書込時の動作を示すフロー図である。
【図５０】この発明の実施の形態１０の変更例のメモリシステムの構成を概略的に示す図である。
【図５１】この発明の実施の形態１０の変更例２のメモリシステムを概略的に示す図である。
【図５２】この発明の実施の形態１０に従うメモリシステムの変更例３の構成を概略的に示す図である。
【図５３】この発明の実施の形態１１に従うメモリシステムの構成を概略的に示す図である。
【図５４】図５３に示すメモリシステムの構成をより具体的に示す図である。
【図５５】図５４に示すポートのデータ選択部の構成の一例を示す図である。
【図５６】図５４に示すメモリシステムの変更例の動作を示すフロー図である。
【符号の説明】
【０４３９】
１  半導体集積回路装置、２  演算処理回路、３  不揮発性ＲＡＭ、２０  ＲＯＭ領域、３０  ＲＡＭ領域、８  ＲＯＭポート、９  ＲＡＭポート、ＭＡＴ１−ＭＡＴ６  メモリマット、ＡＣＬ１−ＡＣＬ６，ＡＣＬｉ  アクセスコントローラ、５０  メモリセルアレイ、５１  ワード線ドライバ、５２  ディジット線ドライバ、５３  書込列選択回路、５４  読出列選択回路、５５  センスアンプ、５６  ライトドライバ、６０  ポート指定データ保持回路、６１  アクセス制御回路、６２  接続設定回路、ＡＣＬｎ  アクセスコントローラ、ＳＷＧ１−ＳＷＧ３  接続スイッチングゲート、２３  ワード線ドライブ回路、９４  ディジット線ドライブ回路、９０，９１  書込列選択ゲート、９２  読出列選択ゲート、１００  ライトドライバ、ＭＡＴｉ，ＭＡＴｊ  メモリマット（バンク）、ＡＣＬｉｊ  アクセスコントローラ、ＩＬ  内部書込データ線、ＬＩＯ  ローカルデータ線、ＩＯＫ  入出力回路、ＯＫ  出力回路、ＡＣＬ０−ＡＣＬｋ＋１  アクセスコントローラ、ＬＲＷ１−ＬＲＷｋ  ローカルセンス／ライト回路、ＹＤＣ１  ポート１列デコーダ、ＹＤＣ２  ポート２列デコーダ、ＤＤＫ  ディジット線ドライバ、ＷＤＫＭ  ワード線ドライバ、Ｉ／Ｏ１１−Ｉ／Ｏ１ｎ−Ｉ／ＯＭ１−Ｉ／ＯＭｎ  Ｉ／Ｏブロック、ＭＡＰ１−ＭＡＰＭ  メモリマット、ＬＲＷＫ１−ＬＲＷＫＬ  ローカル読出／書込回路、ＡＣＬ１−ＡＣＬＭ  アクセスコントローラ、２２０  アドレステーブル、２５０ａ  ＲＯＭ領域アドレスレジスタ、２５０ｂ  ＲＡＭ領域アドレスレジスタ、２４０  書込禁止回路、２４４  ＲＯＭアドレスレジスタ、２４２  ＲＡＭアドレス情報格納領域、ＢＴＢＳ  ブートバス、３１０  ブート情報格納領域、３１１  命令領域、３１２  データ領域、３０３  不揮発性ＲＡＭ、３０５  バスＩ／Ｆ、３１５  命令メモリ、ＭＡＴ♯Ｂ  ブートメモリブロック、ＭＡＴ♯Ｉ  命令メモリマット、ＭＡＴ♯Ｄ  データメモリマット、４０６，４７５  ポート接続切換回路、４７０  不揮発性ＲＡＭ、４１０  メモリ回路、５１０  ＲＯＭキャッシュ、５１２  キャッシュコントローラ、５１５  ＲＡＭキャッシュ、５１７  キャッシュコントローラ、５００  不揮発性ＲＡＭ、５０１  命令領域（ＲＯＭ領域）、５０２  データ領域（ＲＡＭ領域）、５０３  内部バス、５０３ａ  ＲＯＭバス、５０３ｂ  ＲＡＭバス、６１０  不揮発性キャッシュメモリ、６１１  命令キャッシュ、６１２  データキャッシュ、６００  主メモリ、６０１  命令メモリ、６０２  データメモリ、６０１ａ  フラッシュメモリ、６０２ａ  ＤＲＡＭ。
【図１】
2007109008.tif 000003
【図２】
2007109008.tif 000004
【図３】
2007109008.tif 000005
【図４】
2007109008.tif 000006
【図５】
2007109008.tif 000007
【図６】
2007109008.tif 000008
【図７】
2007109008.tif 000009
【図８】
2007109008.tif 000010
【図９】
2007109008.tif 000011
【図１０】
2007109008.tif 000012
【図１１】
2007109008.tif 000013
【図１２】
2007109008.tif 000014
【図１３】
2007109008.tif 000015
【図１４】
2007109008.tif 000016
【図１５】
2007109008.tif 000017
【図１６】
2007109008.tif 000018
【図１７】
2007109008.tif 000019
【図１８】
2007109008.tif 000020
【図１９】
2007109008.tif 000021
【図２０】
2007109008.tif 000022
【図２１】
2007109008.tif 000023
【図２２】
2007109008.tif 000024
【図２３】
2007109008.tif 000025
【図２４】
2007109008.tif 000026
【図２５】
2007109008.tif 000027
【図２６】
2007109008.tif 000028
【図２７】
2007109008.tif 000029
【図２８】
2007109008.tif 000030
【図２９】
2007109008.tif 000031
【図３０】
2007109008.tif 000032
【図３１】
2007109008.tif 000033
【図３２】
2007109008.tif 000034
【図３３】
2007109008.tif 000035
【図３４】
2007109008.tif 000036
【図３５】
2007109008.tif 000037
【図３６】
2007109008.tif 000038
【図３７】
2007109008.tif 000039
【図３８】
2007109008.tif 000040
【図３９】
2007109008.tif 000041
【図４０】
2007109008.tif 000042
【図４１】
2007109008.tif 000043
【図４２】
2007109008.tif 000044
【図４３】
2007109008.tif 000045
【図４４】
2007109008.tif 000046
【図４５】
2007109008.tif 000047
【図４６】
2007109008.tif 000048
【図４７】
2007109008.tif 000049
【図４８】
2007109008.tif 000050
【図４９】
2007109008.tif 000051
【図５０】
2007109008.tif 000052
【図５１】
2007109008.tif 000053
【図５２】
2007109008.tif 000054
【図５３】
2007109008.tif 000055
【図５４】
2007109008.tif 000056
【図５５】
2007109008.tif 000057
【図５６】
2007109008.tif 000058