(57)【要約】第１バス（ＡＰ、ＤＩＰ、ＤＯＰ、ＲＷＰ）を介して第１メモリ空間（４）と、第２バス（ＡＤ、ＤＩＤ、ＤＯＤ、ＲＷＤ）を介して第２メモリ空間（５）と、に接続されたマイクロプロセッサにおいて、プログラムバス（ＰＣ、ＩＮＳ）とデータバス（Ａ、ＤＢＯ、ＤＢＩ、ＲＷ）を備えた処理装置（２）と、一方の側をプログラムバス（ＰＣ、ＩＮＳ）とデータバス（Ａ、ＤＢＯ、ＤＢＩ、ＲＷ）に、他方の側を第１バス（ＡＰ、ＤＩＰ、ＤＯＰ、ＲＷＰ）と第２バス（ＡＤ、ＤＩＤ、ＤＯＤ、ＲＷＤ）とに接続されたバスインタフェース装置（３）と、を有し、バスインタフェース装置（３）が、処理装置（２）より送られるそれぞれプログラムまたはデータアクセス要求（ＮＰＲ、ＮＤＲ）に応じてプログラムバスを第１バスまたは第２バスのいずれかに接続するスイッチ手段（２３、２５、２６）を備えている。【選択図】図１
2004528633.tif 000002
【特許請求の範囲】
【請求項１】
実行可能プログラム命令アクセスバス（ＰＣ、ＩＮＳ）とデータアクセスバス（Ａ、ＤＢＯ、ＤＢＩ、ＲＷ）を備えた処理装置（２）を備え、第１バス（ＡＰ、ＤＩＰ、ＤＯＰ、ＲＷＰ）を介して第１メモリ空間（４）と、第２バス（ＡＤ、ＤＩＤ、ＤＯＤ、ＲＷＤ）を介して第２メモリ空間（５）と、に接続されたマイクロプロセッサにおいて、
一方の側を前記プログラム命令アクセスバス（ＰＣ、ＩＮＳ）と前記データアクセスバス（Ａ、ＤＢＯ、ＤＢＩ、ＲＷ）に、他方の側を前記第１バス（ＡＰ、ＤＩＰ、ＤＯＰ、ＲＷＰ）と前記第２バス（ＡＤ、ＤＩＤ、ＤＯＤ、ＲＷＤ）と、に接続されたバスインタフェース装置（３）を有し、
前記バスインタフェース装置（３）が、
前記処理装置（２）より送られるプログラムアクセス要求（ＮＰＲ）に応じて前記プログラムアクセスバスを前記第１バスまたは前記第２バスのいずれかに接続する第１スイッチ手段（２３、２５、２６）と、
前記処理装置より送られるデータアクセス要求（ＮＤＲ）に応じて前記データアクセスバスを前記第１バスまたは前記第２バスのいずれかに接続する第２スイッチ手段（２５、２６、２７）と、を備えたことを特徴とするマイクロプロセッサ。
【請求項２】
前記第１スイッチ手段（２３、２５、２６）が前記第２スイッチ手段（２５、２６、２７）と独立しており、前記インタフェース（３）がさらに、前記処理装置（２）が同一のメモリ空間（３、４）に対するデータアクセス要求とプログラム命令アクセス要求を同時に送信すると発生するアクセス競合を仲裁するアクセス制御手段（１２、１３）を備えたことを特徴とする請求項１記載のマイクロプロセッサ。
【請求項３】
前記アクセス制御手段（１２、１３）が、メモリ空間（３、４）に対するアクセスの競合が発生した時、データアクセス要求に優先度を生成するように設計されていることを特徴とする請求項２記載のマイクロプロセッサ。
【請求項４】
前記アクセス制御手段（１２、１３）が、２つのメモリ空間（３、４）のうちの１つのメモリ空間内部のプログラム命令と前記２つのメモリ空間（３、４）のうちの他の１つのメモリ空間内部のデータ要素に対して同時アクセスを認めるように設計されていることを特徴とする請求項２または３記載のマイクロプロセッサ。
【請求項５】
前記アクセス制御手段（１２、１３）が、前記処理装置（２）に対して、前記同一のメモリ空間（３、４）内の命令とデータ要素にアクセスする要求を同時に送信することによる前記処理装置のプログラム命令へのアクセスを防止する手段（４５から４８）を備えたことを特徴とする請求項２から４のいずれかに記載のマイクロプロセッサ。
【請求項６】
前記アクセス制御手段（１２、１３）が、前記処理装置のメモリ空間（３、４）へのアクセスを前記メモリ空間がアクセスを許可した期間だけ許可する手段（４９、５０、６１、６２）を備えたことを特徴とする請求項２から５のいずれかに記載のマイクロプロセッサ。
【請求項７】
プログラム（ＰＣ、ＩＮＳ）およびデータ（Ａ、ＤＢＯ、ＤＢＩ、ＲＷ）アクセスバスに存在するアドレスに応じて、および前記処理装置（２）により送信されたアクセス要求（ＮＰＲ、ＮＴＲ）に応じて選択信号（ＮＰＰＳＥＬ、ＮＰＤＳＥＬ、ＮＤＰＳＥＬ、ＮＤＤＳＥＬ）を生成するように設計されたプログラム命令アドレスデコーダ（６）とデータアクセスデコーダ（７）に接続し、前記選択信号は前記インタフェース装置（３）に入力され、さらに、前記第１メモリ空間（４）および前記第２メモリ空間（５）それぞれのプログラム命令へのアクセス要求を示す２つの選択信号（ＮＰＰＳＥＬ、ＮＰＰＳＥＬ）と、前記第１メモリ空間（４）および前記第２メモリ空間（５）それぞれのデータ要素へのアクセス要求を示す２つの選択信号（ＮＤＤＳＥＬ、ＮＤＰＳＥＬ）と、を有することを特徴とする請求項２から６のいずれかに記載のマイクロプロセッサ。
【請求項８】
前記選択信号（ＮＰＰＳＥＬ、ＮＰＤＳＥＬ、ＮＤＰＳＥＬ、ＮＤＤＳＥＬ）がそれぞれのメモリ空間（４、５）のプログラム命令にアクセスする要求を示し、データ要素に対する同時アクセス要求がない場合に、前記第１スイッチ手段（２３、２５、２６）を制御して前記プログラムアクセスバス（ＰＣ、ＩＮＳ）を前記第１または第２バスに接続する制御手段を備えたことを特徴とする請求項７記載のマイクロプロセッサ。
【請求項９】
前記選択信号（ＮＰＰＳＥＬ、ＮＰＤＳＥＬ、ＮＤＰＳＥＬ、ＮＤＤＳＥＬ）が対応するメモリ空間（４、５）のデータ要素にアクセスする要求を示す場合に、前記第２スイッチ手段（２４から２７）を制御してデータアクセスバス（Ａ、ＤＢＯ、ＤＢＩ、ＲＷ）を前記第１または第２バスに接続する制御手段を備えたことを特徴とする請求項７または８に記載のマイクロプロセッサ。
【請求項１０】
前記第１メモリ空間（４）が不揮発性メモリで、前記第２メモリ空間（５）が揮発性メモリから構成されることを特徴とする請求項１から９のいずれかに記載のマイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的にはマイクロプロセッサに関し、より詳細には、実行可能プログラムの命令を記憶した不揮発性メモリを使用したマイクロプロセッサ、および前記メモリを使用したデータを保存する揮発性メモリに関する。
【背景技術】
【０００２】
現在、マイクロプロセッサは２つのメモリ接続アーキテクチャの中の１つを使用することができる。第１のアーキテクチャは、フォンノイマンアーキテクチャと呼ばれるもので、マイクロプロセッサは、全体として１つのアドレスとデータバスを介して複数のメモリに接続している。このため、マイクロプロセッサは、随時、１つのデータ要素か、あるいは１つの命令コードにしかアクセスすることはできない。そこでプログラム実行速度を向上するため、マイクロプロセッサは、別々のメモリに保存されている命令コードとデータ要素に同時にアクセスすることができる、ハーバードアーキテクチャと呼ばれる第２のアーキテクチャが開発された。このアーキテクチャは、１つはプログラムへのアクセス専用で、プログラムを保存したメモリに接続し、もう１つはデータへのアクセス専用で、データメモリに接続した、２つの異なるバスを有したマイクロプロセッサを備えることを必要とする。この方法では、マイクロプロセッサは、プログラムメモリから命令を読込み、同じクロックサイクルでデータメモリからの読込み動作またはデータメモリへの書き込み動作を実行することができる。
【０００３】
この結果、ハーバードアーキテクチャのマイクロプロセッサは同じプログラムを、フォンノイマンアーキテクチャのマイクロプロセッサより少ないクロックサイクルで実行することができる。
【０００４】
しかしながら、ハーバードアーキテクチャには、特に、マイクロプロセッサに接続したメモリを使用する際の柔軟性に欠点がある。
【０００５】
より詳細には、このアーキテクチャは、それぞれ個別のメモリ領域内に、不揮発性に保存する必要のある所定のパラメータまたは動作パラメータを含むプログラム命令および修正不可能なデータを保存する必要がある。マイクロプロセッサが１つの不揮発性メモリと１つの揮発性メモリのみに接続している場合、このアーキテクチャを使用することはできない。さらに、例えばテストの目的などのため、プログラムメモリを揮発性メモリ内に保存することができない。また、実行可能命令コードをデータとしてメモリに書き込むことによりプログラム自体を修正することもできない。
【０００６】
本発明の目的は、フォンノイマンアーキテクチャの手法により得られる、マイクロプロセッサによりアドレス指定可能な空間の線形性に影響を与えることなく、二重バスアーキテクチャを提供することにより上記の欠点を解消することにある。
【０００７】
（課題を解決するための手段）
この目的は、第１バスを介して第１メモリ空間に接続され、第２バスを介して第２メモリ空間に接続されたマイクロプロセッサを提供することにより達成され、実行可能プログラム命令アクセスバスと、データアクセスバスと、を備えた処理装置から構成され、一方の側をプログラム命令アクセスバスとデータアクセスバスに、他方の側を第１および第２バスに接続されたバスインタフェース装置を備え、インタフェースは、処理装置より送られるプログラムアクセス要求に応じてプログラムアクセスバスを第１バスまたは第２バスのいずれかに接続する第１スイッチ手段と、処理装置より送られるデータアクセス要求に応じてデータアクセスバスを第１バスまたは第２バスのいずれかに接続する第２スイッチ手段と、を備えたことを特徴とするマイクロプロセッサを提供することにより達成される。
【０００８】
第１スイッチ手段が第２スイッチ手段と独立しており、インタフェースがさらに、処理装置が同一のメモリ空間に対するデータアクセス要求とプログラム命令アクセス要求を同時に生成すると発生する可能性のあるアクセス競合を仲裁するアクセス制御手段を備えると有利である。
【０００９】
本発明の特徴によると、アクセス制御手段が、メモリ空間に対するアクセスの競合が発生した時、データアクセス要求に優先度を生成するように設計されている。
【００１０】
アクセス制御手段が、２つのメモリ空間のうちの１つのメモリ空間内部のプログラム命令と前記２つのメモリ空間のうちの他の１つのメモリ空間内部のデータ要素に対して同時アクセスを認めるように設計されていることが好ましい。
【００１１】
さらに、アクセス制御手段が、同一のメモリ空間内の命令とデータ要素にアクセスする要求を同時に生成した後に処理装置を拒否する手段を備えることが好ましい。
【００１２】
アクセス制御手段が、処理装置のメモリ空間へのアクセスをメモリ空間がアクセスを許可した期間だけ許可する手段を備えると有利である。
【００１３】
本発明のもう一つの特徴によると、マイクロプロセッサは、プログラムおよびデータアクセスバスに存在するアドレスに応じて、および処理装置により送信されたアクセス要求に応じて選択信号を生成するように設計されたプログラム命令アドレスデコーダとデータアクセスデコーダに接続し、選択信号はインタフェース装置に入力され、さらに、第１メモリ空間および第２メモリ空間それぞれのプログラム命令へのアクセス要求を示す２つの選択信号と、第１メモリ空間および第２メモリ空間それぞれのデータへのアクセス要求を示す２つの選択信号と、を有する。
【００１４】
マイクロプロセッサは、選択信号がそれぞれのメモリ空間のプログラム命令にアクセスする要求を示し、データ要素に対する同時アクセス要求がない場合に、第１スイッチ手段を制御してプログラムアクセスバスを第１または第２バスに接続する制御手段を備えることが好ましい。
【００１５】
マイクロプロセッサは、選択信号が対応するメモリ空間のデータにアクセスする要求を示す場合に、第２スイッチ手段を制御してデータアクセスバスを第１または第２バスに接続する制御手段を備えることが有利である。
【００１６】
本発明のさらにもう一つの特徴によると、第１メモリ空間が不揮発性メモリで、第２メモリ空間が揮発性メモリから構成される。
【００１７】
（発明の実施の形態）
本発明の上述の目的、機能、および長所などについて、添付の図面を参照し以下のマイクロプロセッサの非限定的な記載に基づいてより詳細に説明する。
【００１８】
図１に示されたマイクロプロセッサ１はハーバードアーキテクチャを有している。このため、マイクロプロセッサ１は従来の方法でプログラムアクセスインタフェースとデータアクセスインタフェースを備えた処理装置２を備えている。プログラムアクセスインタフェースは、
―  実行する命令のアドレスを提供するプログラムカウンタ出力ポートＰＣと、
―  命令バス入力ポートＩＮＳと、
―  命令または命令オペランドを読込む必要のある時、クロックサイクル内で使用可能となるプログラム命令要求出力ＮＰＲと、
―  命令またはオペランドをメモリから読込む時に生成される必要のある、対応するプログラム命令受取入力ＮＰＡと、を有している。データアクセスインタフェースは、
―  アクセスするデータ要素のメモリアドレスを提供するアドレス出力ポートＡと、
―  データ入力ポートＤＢＩと、
―  データ出力ポートＤＢＯと、
―  ポートＡにより提供されるアドレスが、読込みによりアクセスされるのかまたは書込みによりアクセスされるのかを示す読込みまたは書込みアクセスモード出力ＲＷと、
―  読込みまたは書込み動作を実行する必要のある時、１クロックサイクル内で使用可能となるデータ要求出力ＮＤＲと、
―  メモリによりデータアクセス動作が実行されている時に、使用可能となる必要のある、対応するデータ受取入力ＮＤＡと、を有している。
【００１９】
ハーバードアーキテクチャによると、マイクロプロセッサ１は、一方の側でプログラムメモリ４とプログラムメモリアドレスデコーダ６に接続し、他方の側でデータメモリ５とデータメモリアドレスデコーダ７に接続している。
【００２０】
プログラムメモリ４は、例えばＲＯＭ、ＥＥＰＲＯＭまたはフラッシュメモリなどの不揮発性であり、データメモリ５は、例えばＲＡＭなどの揮発性である。
【００２１】
処理装置２のＰＣポートとＮＰＲ出力は、アドレスデコーダ６に接続しており、処理装置２のアドレスポートＡと出力ＮＤＲは、アドレスデコーダ７に接続している。
【００２２】
本発明によると、マイクロプロセッサ１は、一方の側を処理装置２に、他方の側をメモリ４、５に接続したインタフェース装置３を備えており、このインタフェース装置は、マイクロプロセッサ１によるアドレス指定可能メモリ空間への線形アクセスを確実にするように設計されている。さらに、アドレスデコーダ６、７は、プログラムおよびデータメモリ４、５への各種のアクセスモード選択信号を提供するように設計されている。
【００２３】
特に、プログラムメモリのアドレスデコーダ６は、プログラムメモリ４の命令またはオペランドにアクセスする要求を示す選択信号ＮＰＰＳＥＬ、およびデータメモリ５の命令またはオペランドにアクセスする要求を示す選択信号ＮＰＤＳＥＬを提供する。データメモリ５用のアドレスデコーダ７は、データメモリ５のデータの１つへのアクセスを示す選択信号ＮＤＤＳＥＬ、およびプログラムメモリ４のデータアクセスを示す選択信号ＮＤＰＳＥＬを供給する。これらの選択信号は、メモリ４または５のアドレスに対応するバスＡのアドレスかまたはバスＰＣのアドレスかに応じてのみ、アドレスデコーダ６、７により生成される。さらに、信号ＮＰＲとＮＤＲは使用可能な時のみ、それぞれデコーダ６、７を使用可能にする。
【００２４】
図１には、処理装置２の入力ＮＰＡに接続したプログラムアクセス制御装置１２と、入力ＮＤＡに接続したデータアクセス制御装置１３と、処理装置２とメモリ４、５の間に接続されたバス多重装置１１とを備えたインタフェース装置３が示されている。この他に、処理装置２のデータ出力ポートＤＢＯは、インタフェース装置３のそれぞれの出力ＤＯＰとＤＯＤを介してメモリ４と５のデータ入力ポートＤＩに同時に接続されている。
【００２５】
より詳細には、バス多重装置１１は処理装置のポートＰＣ、Ａ、ＤＢＩ、ＩＮＳ、および出力ＲＷに接続されている。それは、それぞれメモリ４、５に接続する同一の２つの接続インタフェースを有している。上述のインタフェースはそれぞれ、メモリ４、５のアドレス入力ポートＡＤに接続される出力ポートＡＰ、ＡＤと、メモリ４、５のデータ出力ポートＤＯに接続されるデータ入力ポートＤＩＰ、ＤＩＤと、メモリの対応する入力ＲＷに接続されるアクセスモード出力ＲＷＰ、ＲＷＤと、メモリ４、５の対応する入力ＣＤＮに接続されるコンポーネント選択出力ＲＷと、を有している。
【００２６】
さらに、４つの選択信号、ＮＰＰＳＥＬ、ＮＰＤＳＥＬ、ＮＤＤＳＥＬ、およびＮＤＰＳＥＬは、バス多重装置１１とプログラムアクセス制御装置１２に入力され、データメモリ５のアクセスに関係するデータメモリ信号ＮＤＤＳＥＬとＤＤＰＳＥＬのみがデータアクセス制御装置１３に入力される。さらに、アクセス制御装置１２、１３にはそれぞれ信号ＮＰＲとＮＤＲが処理装置２から供給される。
【００２７】
上述の信号が、例えば、低レベル（０論理レベル）時にすべて使用可能の場合について説明する。
【００２８】
図２に示されるように、多重装置１１は、４つの選択信号ＮＰＰＳＥＬ、ＮＰＤＳＥＬ、ＮＤＤＳＥＬ、およびＮＤＰＳＥＬを受け取り、２つのコンポーネント選択信号ＮＣＳＰ、ＮＣＳＤと、２つの制御信号ＣＭＤ２５、ＣＭＤ２６を２つの入力０および１と１つの出力を有する２つの多重装置２５、２６に出力するバス制御装置２１を備えている。これらの多重装置２５、２６は両方とも、処理装置２のポートＰＣとＡからアドレスを受け取り、それぞれの制御信号ＣＭＤ２５、ＣＭＤ２６の値に応じて、バス多重装置１１のアドレス出力ポートＡＰ、ＡＤにポートＰＣまたはポートＡからアドレスを与える。
【００２９】
プログラムメモリ内のデータ要素またはデータメモリ内の命令を示す選択信号ＮＰＤＳＥＬおよびＮＤＰＳＥＬは、制御信号としてそれぞれ、多重装置１１の入力ポートＤＩＰおよびＤＩＤからメモリ４、５で読込まれたデータが与えられる２つの多重装置２３、２４に送られる。これらの多重装置の出力はそれぞれ、バス多重装置１１の出力ポートＩＮＳおよびＤＢＯに接続されており、プログラムメモリ４またはデータメモリ５から入力されたデータをこれらのポートに導くようになっている。このようにして、プログラムメモリ内のメモリにアクセスする場合（ＮＤＰＳＥＬ＝０）、プログラムメモリのデータ出力ＤＯに接続されたポートＤＩＰは、多重装置１１のデータ出力ポートＤＢＯに接続される。他のアクセスタイプとして、多重装置１１のデータ出力ポートＤＢＯに接続されたポートＤＩＤがある。同様に、データメモリ４の命令にアクセスする場合（ＮＰＤＳＥＬ＝０）、多重装置１１のポートＤＩＤはその命令出力ポートＩＮＳに接続される。この反対の場合は、出力ポートＩＮＳに結合された多重装置１１のポートＤＩＰがそれとなる。
【００３０】
さらに、バス多重装置１１は、プログラムメモリまたはデータメモリ内のデータアクセスに関連する選択信号ＮＤＰＳＥＬおよびＮＤＤＳＥＬに応じて、出力ＲＷＰを介して処理装置２からの信号ＲＷをプログラムメモリ４へ、または出力ＲＷＤを介してデータメモリ５へ導く信号多重分離装置２７を備えている。
【００３１】
図３に示されるように、バス制御装置２１は、例えば３つのＡＮＤゲート３１、３２、３３を備えている。ゲート３１は、選択信号ＮＰＰＳＥＬとＮＤＰＳＥＬを受け取り、信号ＮＣＳＰを出力する。同様に、ゲート３２は、選択信号ＮＰＤＳＥＬとＮＤＤＳＥＬを受け取り、信号ＮＣＳＤを出力する。このようにして、信号ＮＣＳＰとＮＣＳＤは、選択信号に以下の関係式により関係付けられることになる。
ＮＣＳＤ  ＝  ＮＰＤＳＥＬ  ＡＮＤ  ＮＤＤＳＥＬ  および
ＮＣＳＰ  ＝  ＮＰＰＳＥＬ  ＡＮＤ  ＮＤＰＳＥＬ  （１）
第３ＡＮＤゲート３３は、選択信号ＮＰＤＳＥＬが与えられる反転入力と、選択信号ＮＤＤＳＥＬが与えられる順方向入力を有し、図２に示される多重装置２６に制御信号ＣＭＤ２６を出力する。これにより、選択信号ＮＤＤＳＥＬとＮＰＤＳＥＬが以下の条件を満たした場合、多重装置２６の入力１、すなわちバスＰＣが選択され、データメモリ５にアクセスするアドレスが定義される。
【００３２】
ＮＰＤＳＥＬ  ＝  ０  ＡＮＤ  ＮＤＤＳＥＬ  ＝  １
この反対の場合は、バスＡがデータメモリ５のアドレスポートＡＤに接続される。
【００３３】
また、回路２１は、多重装置２５へ制御信号ＣＭＤ２５を提供する。この制御信号は信号ＮＤＰＳＥＬに対応し、信号ＮＤＰＳＥＬ  ＝  １の場合はデータメモリ５のアドレスポートＡＤをアドレスバスＡに接続し、そうでない場合はバスＰＣに接続する。
【００３４】
図４に、一つの実施の形態の信号多重回路２７を示す。この回路は、２つの入力０、１を有する２つの多重装置３６と３７を備え、入力０は、処理装置２から信号ＲＷを受け取り、入力１はそれぞれ、選択信号ＮＤＰＳＥＬおよびＮＤＤＳＥＬを受け取る。それぞれの多重装置３６、３７の制御入力はさらに入力１にフィードバックされる。このため、信号ＮＤＰＳＥＬ  ＝  ０の場合、信号ＲＷは入力としてインタフェース１１の出力ＴＷＰ、すなわちプログラムメモリの入力ＲＷへ送られ、信号ＮＤＤＳＥＬ  ＝  ０の場合、インタフェース１１の出力ＲＷＰ、すなわちデータメモリ５の入力ＲＷへ送られる。この反対の場合は出力ＲＷＰおよびＲＷＤは強制的に１となる。
【００３５】
図５ａは、第１の実施の形態のプログラムアクセス制御装置１２を示している。この図で、アクセス制御装置１２は、反転入力を有した２つのＡＮＤゲート４５、４６を備えている。第１ゲート４５には選択信号ＮＤＤＳＥＬとＮＰＤＳＥＬが送られ、第２ゲート４６には選択信号ＮＤＰＳＥＬとＮＰＰＳＥＬが送られる。この２つのゲートは、その出力側が２つの入力０、１を有した多重装置４８の制御入力と入力１に接続したＯＲゲート４５に接続しており、多重装置の出力側は、処理装置２に入力される信号ＮＰＡを送り出し、多重装置の入力０は処理装置から信号ＮＰＲを受け取る。このため、以下の条件が満たされた場合（処理装置のプログラムへのアクセスが不可の場合）、信号ＮＰＡは１に設定される。そうでない場合は信号ＮＰＲと等しくなる。
【００３６】
（ＮＤＰＳＥＬ  ＝  ０  ＡＮＤ  ＮＰＰＳＥＬ  ＝  ０）  または
（ＮＤＰＳＥＬ  ＝  ０  ＡＮＤ  ＮＰＤＳＥＬ  ＝  ０）  （３）
図５ｂは、プログラムメモリ４がアクセス要求肯定信号ＮＰＭＡを与えるＡＣＫＮを出力した場合に使用することができる第２の実施の形態のアクセス制御装置１２を示している。それがｈｉｇｈ状態の場合、この信号はメモリアクセスがなされていないことを示す。
【００３７】
肯定信号ＮＰＭＡが存在する場合、アクセス制御装置１２に入力される。この図に示される回路は、多重装置４８の入力０と信号ＮＰＲの入力の間に２つの入力０、１を有した第２多重装置４９を備えた点を除いて、図５ａに示された回路に対応しており、信号ＮＰＲはその入力０に印加されている。さらに、多重装置４９は選択信号ＮＰＰＳＥＬにより制御される。
【００３８】
このようにして、（３）の条件が満たされない場合、選択信号ＮＰＰＳＥＬが０ならばアクセス制御装置１２は信号ＮＰＭＡを出力し、そうでなければ信号ＮＰＲを出力する。
【００３９】
図５ｃは、データメモリ５だけが肯定信号ＮＤＭＡに関する出力ＡＣＫＮを有した場合に使用することができる第３の実施の形態のアクセス制御装置１２を示している。この場合、肯定信号はアクセス制御装置１２に入力される。この図に示される回路は、信号ＮＰＭＡではなく信号ＮＤＭＡが多重装置４９の入力０に印加され、多重装置４９が信号ＮＰＰＳＥＬではなく選択信号ＮＰＤＳＥＬにより制御される点を除いて、図５ｂに示された回路に対応している。
【００４０】
このようにして、（３）の条件が満たされない場合には、選択信号ＮＰＤＳＥＬが０ならばアクセス制御装置１２は信号ＮＤＭＡを出力し、そうでなければ信号ＮＰＲを出力する。
【００４１】
図５ｄは、メモリ４、５が両方ともそれぞれ肯定信号ＮＤＭＡ、ＮＰＭＡに関する出力ＡＣＫＮを有した場合に使用することができる第４の実施の形態のアクセス制御装置１２を示している。この場合、アクセス制御装置１２に２つの肯定信号が入力される。この図に示される回路は、多重装置４９の入力１と信号ＮＰＲの入力の間に２つの入力０、１を有した第３多重装置５０を備え、信号ＮＰＲは第３多重装置５０の入力１に接続し、第３多重装置５０の入力０には信号ＮＰＭＡが、制御入力には信号ＮＰＰＳＥＬが送られる点を除いて、図５ｃに示された回路に対応している。
【００４２】
このようにして、（３）の条件が満たされない場合には、アクセス制御装置１２は、選択信号ＮＰＰＳＥＬが０ならば信号ＮＰＭＡを出力し、選択信号ＮＰＤＳＥＬが０ならば信号ＮＤＭＡを出力し、そうでなければ信号ＮＰＲを出力する。
【００４３】
メモリ４および５が信号ＮＰＭＡおよびＮＤＭＡを送信しない場合、制御装置１３は処理装置２の入力ＮＤＡに信号ＮＤＲを後者から送出する。
【００４４】
プログラムメモリ４だけが信号ＮＰＭＡを送出する場合、選択信号ＮＤＤＳＥＬ＝０ならば、入力ＮＤＡは信号ＮＰＭＡを受け取り、そうでなければ信号ＮＤＲを受け取る。この機能は、その入力０に信号ＮＰＭＡを、その入力１に信号ＮＤＲを、その制御信号に信号ＮＤＤＳＥＬを与えた信号分離装置により実行することができる。
【００４５】
同様に、データメモリ５が信号ＮＤＭＡを送出する場合、選択信号ＮＤＰＳＥＬ  ＝  ０ならば、入力ＮＤＡには信号ＮＤＭＡが与えられ、そうでない場合は信号ＮＤＲが与えられる。
【００４６】
信号ＮＰＭＡとＮＤＭＡが両方とも使用可能な場合は、図６に示す方法でアクセス制御装置１３を実行することができる。この図では、制御装置１３は、２つの入力０、１を有した２つの多重装置６１と６２を備えている。多重装置６１はその入力０で信号ＮＰＭＡを、その入力１で信号ＮＤＲを、その制御入力で信号ＮＤＤＳＥＬを受け取る。多重装置６１の出力は第２多重装置６２の入力１に接続しており、第２多重装置６２の入力０には信号ＮＤＭＡが、制御信号入力には信号ＮＤＰＳＥＬが与えられ、その出力は信号ＮＤＡを送出し、処理装置２に入力される。
【００４７】
このようにして、信号ＮＤＡは、ＮＤＤＳＥＬ＝０の場合はＮＤＭＡと等価となり、ＮＤＰＳＥＬ＝０の場合はＮＰＭＡと等価となり、そうでない場合はＮＤＲとなる。
【００４８】
図７は、マイクロプロセッサ１からのクロック信号ＣＫに応じて同期して上記の各種の信号に対するインタフェース装置３の動作をタイミング図により示している。これらの信号は論理レベルが０の時に実行可能状態となる。
【００４９】
この図で示されるフェーズ７１は、データメモリ４への拡張アクセスに対応する。このアクセスは、待機サイクルＷで表される２つのクロックサイクルの間の実行可能ステートで処理装置２が信号ＮＤＲを送出することにより発生する。この場合、アドレスデコーダにより生成される信号ＮＤＤＳＥＬは信号ＮＤＲに対応し、メモリ５により生成される信号ＮＤＭＡは、信号ＮＤＲが実行可能な第２サイクルの間のみ実行可能となる。この結果、フェーズ７１の間、信号ＮＤＡは、メモリ５へのアクセスが発生する第２クロックサイクルの間のみ実行可能となる。
【００５０】
フェーズ７２は、メモリ４、５への標準的な同時アクセスの場合を示す。ここで、データメモリ５のデータ要素にアクセスされ、命令またはオペランドはプログラムメモリ４から読み取られるものとする。この場合、処理装置はアクセス要求を両方のメモリに送信する（ＮＰＲおよびＮＤＲは実行可能）。これに応答し、アドレスデコーダ６、７が、アクセスするメモリアドレスに基づいて、選択信号ＮＰＰＳＥＬとＮＤＤＳＥＬを実行可能にする。この結果、バスコントローラ２１は、信号ＮＣＳＰとＮＣＳＤにより、メモリ４、５を使用可能にする。信号ＮＤＭＡとＮＰＭＡは実行可能となり、アクセス制御装置１２が信号ＮＰＭＡを処理装置２の入力ＮＰＡに送信すると、処理装置２はプログラムメモリ４から命令またはオペランドを読込めるようになる。この間、アクセス制御装置１３は信号ＮＰＭＡを処理装置２の入力ＮＤＡに送信し、処理装置２はプログラムメモリ４のデータへのアクセスを許可される。
【００５１】
このフェーズは、プログラムメモリ４から命令を、データメモリ５からデータ要素を読み出す１つのクロックサイクルの間、処理装置２がメモリ４と５に同時にアクセスすることが可能であることを示している。
【００５２】
フェーズ７３の間、処理装置２は、プログラムメモリ４にアクセスをしてデータにアクセスする。このため、出力ＮＤＲを実行可能にする。これに応答して、アクセスするメモリアドレスにより、アドレスデコーダ７は、選択信号ＮＤＰＳＥＬを実行可能にする。この結果、バスコントローラ２１は、信号ＮＣＳＰによりメモリ４を使用可能にする。次に、信号ＮＰＭＡは実行可能になり、アクセス制御装置１２は信号ＮＤＭＡを処理装置２の入力ＮＰＡに送出し、処理装置２はプログラムメモリ４のデータへのアクセスを許可される。
【００５３】
フェーズ７４の間、処理装置２はデータメモリ５にアクセスをしてプログラム命令またはオペランドを読込む。このため、出力ＮＰＲを実行可能にする。これに応答して、アクセスするメモリアドレスにより、アドレスデコーダ６は、選択信号ＮＰＤＳＥＬを実行可能にする。この結果、バスコントローラ２１は信号ＮＣＳＤによりメモリ５を使用可能にする。次に、信号ＮＤＭＡは実行可能になり、アクセス制御装置２は信号ＮＤＭＡを処理装置２の入力ＮＰＡに送出し、処理装置２はデータメモリ５から命令を読込むことを許可される。
【００５４】
前の２つのフェーズでは、メモリアクセスの競合が発生しなかったため、処理装置は１つのクロックサイクル内でアクセスを実行することができる。この結果、従来のハーバードアーキテクチャとは反対に、処理サイクルを追加する必要なく、マイクロプロセッサによりアドレス指定可能なメモリ空間全体から、データとプログラムをアクセス可能となる。
【００５５】
フェーズ７５は、フェーズ７２とは反対に、処理装置がプログラムメモリ４へのデータアクセス要求と、データメモリ５からの命令またはオペランド読込要求を同時に行った場合を示している。信号ＮＰＲとＮＤＲは同時に実行可能となる。この場合、アクセスデコーダ６、７は信号ＮＤＰＳＥＬとＮＰＤＳＥＬを実行可能にする。この結果、バスコントローラ２１はメモリ４、５を信号ＮＣＳＰとＮＣＳＤにより使用可能にする。次に、信号ＮＤＭＡとＮＰＭＡも実行可能となり、アクセス書魚装置１２は信号ＮＤＭＡを処理装置２の入力ＮＰＡに送出し、処理装置２はデータメモリ５から命令またはオペランドを読込めるようになる。この間、アクセス制御装置１３は信号ＮＰＭＡを処理装置２の入力ＮＤＡに送信し、処理装置２はプログラムメモリ４のデータへのアクセスを許可される。
【００５６】
このフェーズは、この場合でも、１つのクロックサイクル（信号ＮＰＡとＮＤＡが同時に実行可能）内で、メモリ４、５両方への同時アクセスが、競合せずに実行可能であることを示している。これは、以前のアーキテクチャではなかったケースである。
【００５７】
フェーズ７６の間、処理装置２は、命令またはオペランド、とデータ要素の両方を読込むために、プログラムメモリ４へのアクセスを試行している。したがって、信号ＮＰＲとＮＤＲは同時に実行可能となる。この結果、信号ＮＤＰＳＥＬとＮＰＰＳＥＬも同時に実行可能となり、バスコントローラ２１からの信号ＮＣＳＰも
も、従ってプログラムメモリ４からの信号ＮＰＭＡも同様となる。信号ＮＤＲとＮＰＲが実行可能となる第１クロックサイクルの間、入力ＮＤＡには信号ＮＰＭＡが入力され（ＮＤＰＳＥＬ＝０）、信号ＮＰＡは強制的に１となる（実行不可）。この結果、プログラムメモリ内のデータへのアクセスが実行され、命令の読み出しは拒否され、その結果、命令の読み出しは待機サイクルＷになる。データアクセスサイクルが終了すると、信号ＮＤＲは再び実行不可となり、信号ＮＤＰＳＥＬとＮＤＡも再び実行不可となる。この場合、信号ＮＤＲは制御装置１３により入力ＮＤＡに送られる。この結果、第２クロックサイクルの間、信号ＮＰＡは実行可能（＝ＮＰＭＡ）となり、プログラムメモリ４で実行する要求された命令読み出し動作は許可される。
【００５８】
フェーズ７７は、データ要素のアクセスと命令読込みのためのデータメモリ５へのアクセスが同時に発生した場合を示している。ここでも、信号ＮＰＲとＮＤＲは処理装置２により同時に実行可能となる。この結果、信号ＮＤＤＳＥＬとＮＰＤＳＥＬもまた、同時に実行可能となり、バスコントローラ２１からの信号ＮＣＳＤも、従ってデータメモリ５からの信号ＮＤＭＡも同様となる。信号ＮＤＲとＮＰＲが実行可能となる第１クロックサイクルの間、入力ＮＤＡには信号ＮＰＭＡが入力され（ＮＤＰＳＥＬ＝０）、信号ＮＰＡは強制的に１となる（実行不可）。この結果、プログラムメモリ内のデータへのアクセスが実行され、命令の読み出しは拒否され、待機サイクルＷが開始する。データアクセスサイクルが終了すると、信号ＮＤＲは再び実行不可となり、信号ＮＤＰＳＥＬとＮＤＡも再び実行不可となる。第２クロックサイクルの間、信号ＮＰＡは実行可能（＝ＮＰＭＡ）となり、データメモリ５で実行する要求された命令読み出し動作は許可される。
【００５９】
したがって、プログラムメモリまたはデータメモリのいずれかの同じメモリに対する２つの同時要求は、２つのクロックサイクルの間に実行される。前回に読込まれた命令を実行したデータへのアクセス結果による、マイクロプロセッサの動作モードに応じて、データアクセスが最初に行われることに注意する必要がある。このため、次の命令を読み出す前に、前回の命令の実行を完了しておくことが好ましい。
【００６０】
比較的簡単な論理回路により使用可能なインタフェース装置により、本発明は、プログラムとデータのどちらへのアクセスも可能にし、後者は、処理装置によりそれぞれ２つのバスを介して同時にアクセス可能な２つのメモリ空間を任意の方法で分配することができる。
【図面の簡単な説明】
【００６１】
【図１】プログラムメモリとデータメモリに接続された、本発明に係るマイクロプロセッサのアーキテクチャを示す概略図である。
【図２】図１に示されたアーキテクチャを有した部品の回路図である。
【図３】図２に示された回路の１部の図である。
【図４】図２に示された回路の１部の図である。
【図５ａ】図１に示されたアーキテクチャを有した別の実施の形態の部品の回路を示す図である。
【図５ｂ】図１に示されたアーキテクチャを有した別の実施の形態の部品の回路を示す図である。
【図５ｃ】図１に示されたアーキテクチャを有した別の実施の形態の部品の回路を示す図である。
【図５ｄ】図１に示されたアーキテクチャを有した別の実施の形態の部品の回路を示す図である。
【図６】図１に示されたアーキテクチャを有した部品の回路図である。
【図７】図１に示されたアーキテクチャで使用される各種信号をタイミング図で示す図である。
【国際公開パンフレット】
2004528633.tif 000003
2004528633.tif 000004
2004528633.tif 000005
2004528633.tif 000006
2004528633.tif 000007
2004528633.tif 000008
2004528633.tif 000009
2004528633.tif 000010
2004528633.tif 000011
2004528633.tif 000012
2004528633.tif 000013
2004528633.tif 000014
2004528633.tif 000015
2004528633.tif 000016
2004528633.tif 000017
2004528633.tif 000018
2004528633.tif 000019
2004528633.tif 000020
2004528633.tif 000021
2004528633.tif 000022
2004528633.tif 000023
2004528633.tif 000024
2004528633.tif 000025
2004528633.tif 000026
2004528633.tif 000027
【国際調査報告】
2004528633.tif 000028
2004528633.tif 000029
2004528633.tif 000030
2004528633.tif 000031