(57)【要約】【課題】複数のＣＰＵによるアクセスを調停する調停回路の機能テストをより簡単に行なうことができる調停回路のテスト装置を提供する。【解決手段】調停制御回路９のテスト装置３１によれば、アクセステストレジスタ２２は、ＣＰＵ２，３がＲＯＭ５，６に対して夫々アクセスを行う場合に、先読み機構制御回路７により調停制御回路９に対して出力されるアクセスタイプＩＮＳＴ［２：０］を夫々擬似的に出力する。そして、マルチプレクサ１２，１３は、テストモード設定レジスタ２１より出力される制御信号ＴＥＳＴに応じて、擬似的なアクセス制御信号と対応するＣＰＵが実際にアクセスを行うことで先読み機構制御回路７により出力されるアクセス制御信号とを、調停制御回路９に対して選択的に出力する。【選択図】  図１
2004287526.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵが共通のバスに接続されているリソースに対して行なうアクセスを調停する調停回路の機能をテストするためのテスト装置であって、
前記複数のＣＰＵが夫々アクセスを行う場合に前記調停回路に対して出力されるアクセス制御信号を擬似的に出力するための擬似制御信号出力回路と、
この擬似制御信号出力回路によって夫々出力される擬似的なアクセス制御信号と、対応するＣＰＵが実際にアクセスを行う場合に夫々出力されるアクセス制御信号とを、前記調停回路に対して選択的に出力するための選択回路と、
この選択回路に何れの信号を選択的に出力させるかを制御する切替え制御信号を出力するための切替え制御信号出力回路とを備えて構成されることを特徴とする調停回路のテスト装置。
【請求項２】
前記擬似制御信号出力回路及び切替え制御信号出力回路は、前記複数のＣＰＵの何れかによって書込みが行なわれるデータレジスタを備え、このデータレジスタに書き込まれたデータ値に応じて夫々の信号を出力するように構成されることを特徴とする請求項１記載の調停回路のテスト装置。
【請求項３】
前記調停回路によって調停動作が行なわれた結果として出力される調停制御信号が格納される調停結果出力レジスタを備え、
前記調停結果出力レジスタの内容は、前記複数のＣＰＵの何れかによって読み出し可能であることを特徴とする請求項１又は２記載の調停回路のテスト装置。
【請求項４】
前記リソースの少なくとも１つはＲＯＭであり、
前記調停回路は、前記複数のＣＰＵと、これらのＣＰＵよりも広いデータバス幅を構成する１つ以上のＲＯＭとの間に接続され、前記ＣＰＵの何れかが前記ＲＯＭよりデータを読み出そうとする場合にその読み出しを制御するメモリインターフェイス回路装置に内蔵されており、
前記メモリインターフェイス回路装置は、
アドレス値を保持する命令用アドレス保持手段と、
このアドレス保持手段に保持されたアドレスと、前記調停回路の調停結果によりバス権を得たＣＰＵが前記ＲＯＭに対する命令読み出しサイクルを実行するために出力したアドレスとを比較し、両者が一致した場合は、前記アドレス保持手段に保持されたアドレス値を、前記ＲＯＭのバス幅が前記ＣＰＵのバス幅を超えている分だけ増加させて、前記ＲＯＭよりデータを読み出すデータ読み出し手段と、
前記データ読み出し手段が読み出したデータを、前記ＲＯＭのバス幅が前記ＣＰＵのバス幅を超えている分だけ格納する命令用バッファと、
前記ＣＰＵが、次回に連続するアドレスで前記ＲＯＭに対する命令読み出しサイクルを実行すると、前記命令用バッファが保持しているデータを前記ＣＰＵのデータバスに出力させるように制御する読出し制御手段とを備えて構成されることを特徴とする請求項１乃至３の何れかに記載の調停回路のテスト装置。
【請求項５】
前記メモリインターフェイス回路装置は、
前記調停回路の調停結果によりバス権を得たＣＰＵが前記ＲＯＭに対するデータ読み出しサイクルを実行した場合に、前記データ読み出し手段が前記ＲＯＭより読み出したデータを、前記ＲＯＭのバス幅が前記ＣＰＵのバス幅を超えている分だけ格納するデータ用バッファと、
前記アドレスを格納するためのアドレス格納手段とを備え、
前記読出し制御手段は、前記アドレス格納手段に格納されているアドレスに基づいて、前記ＣＰＵが次回に前記ＲＯＭに対するデータ読み出しサイクルを実行した場合に、その読み出しアドレスに対応するデータが前記データ用バッファに格納されていると判断すると、前記データを前記ＣＰＵのデータバスに出力させるように制御することを特徴とする請求項４記載の調停回路のテスト装置。
【請求項６】
複数のＣＰＵが共通のバスに接続されているリソースに対して行なうアクセスを調停する調停回路の機能をテストするためのテスト方法であって、
前記複数のＣＰＵが夫々アクセスを行う場合、前記調停回路に対して出力されるアクセス制御信号を擬似的に出力可能とし、
前記擬似的なアクセス制御信号と、対応するＣＰＵが実際にアクセスを行う場合に夫々出力されるアクセス制御信号とを、前記調停回路に対して選択的に出力可能とし、
前記擬似的なアクセス制御信号が２組以上出力された場合における前記調停回路の調停結果を評価することを特徴とする調停回路のテスト方法。
【請求項７】
前記複数のＣＰＵの何れかによってデータレジスタに書き込まれたデータ値に応じて、前記擬似制御信号を出力することを特徴とする請求項６記載の調停回路のテスト方法。
【請求項８】
前記調停回路によって調停動作が行なわれた結果として出力される調停制御信号を調停結果出力レジスタに格納し、
前記調停結果出力レジスタの内容を、前記複数のＣＰＵの何れかによって読み出すことを特徴とする請求項６又は７記載の調停回路のテスト方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のＣＰＵが共通のリソースに対して行なうアクセスを調停する調停回路の機能をテストするためのテスト装置及びテスト方法に関する。
【０００２】
【従来の技術】
近年、半導体製造技術において回路や配線等の微細化が進むと共に回路機能の複雑化も進んでいる。従って、不良品が市場に流出することを防止するため、半導体製品の検査工程においてはバーンイン・スクリーニング（バーンイン試験）によって製品の機能確認を行ない、初期不良品を除去するようにしている。バーンイン試験は、半導体製品を高温環境下で電源投入して動作させ、各機能が仕様通りに実現されるか否かをチェックするものである。
【０００３】
例えば、シングルチップマイクロコンピュータのような半導体製品は、ＣＰＵを中心としてＲＯＭ，ＲＡＭ，ＤＭＡＣ，Ａ／Ｄ変換器、通信用ＩＣなど多数の周辺回路で構成されている。従って、バーンイン試験においては、ＣＰＵにテストプログラムを実行させて各周辺回路にアクセスを行わせデータを書込ませるなどして、各回路部のデータレベルを初期状態から変更する活性化を行なうようにしている。
【０００４】
ところで、シングルチップマイクロコンピュータにおいては、ＣＰＵが２つ以上搭載されている構成のものがある。斯様な構成においては、複数のＣＰＵが共通のバス上にある周辺回路（リソース）に対して同時にアクセスを行おうとすると、バス使用権の競合が発生する。そこで、バス使用権が競合した場合に調停を行なうため、調停回路が用意される。例えば、特許文献１には、そのような調停回路を備えて構成されるコンピュータシステムが開示されている。
【０００５】
【特許文献１】
特開２００１−３２５１４８号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、調停回路の機能を、テストプログラムの実行によってテストすることは極めて困難である。先ず、バス使用権の競合は、２つ以上のＣＰＵが共通のバスに同時にアクセスしなければ発生しない。そして、複数のＣＰＵ間でそのような競合が発生するように、テストプログラムの実行タイミングやアクセスアドレスを制御することが困難である。
【０００７】
また、上記のような調停回路の機能テストは、関連するその他の周辺回路の機能が正常であると共に、テストプログラム自体にもバグが無いことが前提となる。ところが、初期不良の有無を確認するためのバーンイン試験の段階においては、例え、テストプログラム側に問題が無いとしても、ハードウエアの各部の機能は補償されていない状態にある。従って、テストプログラムを実行した結果異常が発生したとしても、その異常が一体何に起因しているのかを突き止めることが難しい。
【０００８】
本発明は上記事情に鑑みてなされたものであり、その目的は、複数のＣＰＵによるアクセスを調停する調停回路の機能テストをより簡単に行なうことができる調停回路のテスト装置及び調停回路のテスト方法を提供することにある。
【０００９】
【課題を解決するための手段】
請求項１記載の調停回路のテスト装置によれば、擬似制御信号出力回路は、複数のＣＰＵが夫々アクセスを行う場合、調停回路に対して出力されるアクセス制御信号を擬似的に出力する。そして、選択回路は、切替え制御信号出力回路より出力される制御信号に応じて、擬似的なアクセス制御信号と対応するＣＰＵが実際にアクセスを行うことで夫々出力されるアクセス制御信号とを、調停回路に対して選択的に出力する。
【００１０】
即ち、調停回路の機能をテストする場合には、２つ以上のＣＰＵに対応する擬似的なアクセス制御信号を、選択回路を介して調停回路に出力すれば、調停回路は、その擬似的なアクセス制御信号に基づいて発生した擬似的な競合状態を調停し、調停した結果を出力するようになる。従って、テストプログラムを複数のＣＰＵに同時に実行させることでそれらのアクセスを実際に競合させなくても、調停回路の機能を簡単にテストすることができる。
【００１１】
請求項２記載の調停回路のテスト装置によれば、擬似制御信号出力回路及び切替え制御信号出力回路は、複数のＣＰＵの何れかによってデータレジスタに書き込まれたデータ値に応じて夫々の信号を出力する。従って、何れか１つのＣＰＵにテストプログラムを実行させ、前記データレジスタに書込みを行なわせるようにすれば、擬似的な競合状態を発生させることができる。
【００１２】
請求項３記載の調停回路のテスト装置によれば、調停結果出力レジスタに格納された調停動作結果の内容は、複数のＣＰＵの何れかによって読み出し可能であるから、ＣＰＵが読み出したデータを直接モニタしたり、或いは読み出したデータをＣＰＵが評価した結果をモニタすれば、調停回路のテスト結果がどのようになったかを容易に確認することができる。
【００１３】
請求項４記載の調停回路のテスト装置によれば、リソースの少なくとも１つはＲＯＭであり、調停回路は、複数のＣＰＵと、これらのＣＰＵよりも広いデータバス幅を構成する１つ以上のＲＯＭとの間に接続され、ＣＰＵの何れかがＲＯＭよりデータを読み出そうとする場合に、その読み出しを制御するメモリインターフェイス回路装置に内蔵される。
【００１４】
そのメモリインターフェイス回路装置によれば、ＲＯＭの読み出し速度が遅い場合でも、調停回路による調停動作の結果バス権を獲得したＣＰＵが連続するアドレスで命令読出しを行う場合は、ＣＰＵが次回以降に読み出そうとする命令は今回の読出しで同時に読み出されて命令用バッファに保持され、次回の読出しでは命令用バッファより命令が読み出される。従って、ＣＰＵがＲＯＭからの読み出しを行うために従来必要であったウエイトサイクルを削減することができ、処理効率を向上させることができる。
そして、斯様に構成される場合、複数のＣＰＵがメモリインターフェイス回路装置を介してＲＯＭにアクセスしようとすると、調停回路における調停動作は非常に複雑になる。従って、本発明のテスト装置を適用することは極めて有効である。
【００１５】
請求項５記載の調停回路のテスト装置によれば、メモリインターフェイス回路装置は、調停回路による調停動作の結果バス権を獲得したＣＰＵがデータ読み出しサイクルを実行した場合にＲＯＭより読み出されたデータを、ＲＯＭのバス幅がＣＰＵのバス幅を超えている分だけデータ用バッファに格納する。また、この時、前記読出しアドレスはアドレス格納手段に格納される。そして、読出し制御手段は、ＣＰＵが次回にデータ読み出しサイクルを実行した場合に、その読み出しアドレスに対応するデータがデータ用バッファに格納されていると判断すると、そのデータをＣＰＵのデータバスに出力させる。
【００１６】
即ち、データ用バッファは所謂データキャッシュとして作用するので、データの読出しアドレスがデータ用バッファにヒットした場合、ＣＰＵはそのデータを高速に読み出すことができる。従って、データの読出し効率を向上させることが可能となる。そして、斯様な構成においても、請求項４と同様に調停回路における調停動作は非常に複雑になるので、本発明のテスト装置を極めて有効に適用することができる。
【００１７】
【発明の実施の形態】
（第１実施例）
以下、本発明の第１実施例について図１乃至図６を参照して説明する。本発明の要旨にかかる部分のシングルチップマイクロコンピュータ（マイコン）の構成を機能ブロックで示す図１において、マイコン１には２つのＣＰＵ２，３が搭載されている。これら２つのＣＰＵ２，３は、ＲＯＭバスコントロール回路（メモリインターフェイス回路装置）４を介してＲＯＭ（リソース）５，６にアクセスするように構成されている。
【００１８】
尚、ＣＰＵ２，３は１６ビットであり、ＲＯＭ５，６のデータバス幅も１６ビットである。そして、各ＣＰＵ２，３がＲＯＭ５，６に対してアクセスするアドレス空間は相違しているため、同一のアドレスについて競合が発生することは無い。また、以下において、説明の都合上、図１に示すようにＣＰＵ２をＣＰＵ（０），ＣＰＵ３をＣＰＵ（１）と表す場合がある。
【００１９】
ＲＯＭバスコントロール回路４は、ＣＰＵ２，３の何れかがＲＯＭ５，６に対してアクセスを行う場合、ＣＰＵ２，３が要求したアクセスタイプに応じて、ＲＯＭ５，６に対するアクセスパターンを決定する。例えば、何れか一方のＣＰＵがＲＯＭ５，６の何れか一方にアクセスする場合や、ＣＰＵ２，３が夫々ＲＯＭ５，６に１６ビットアクセスを行う場合がある。
【００２０】
また、ＲＯＭバスコントロール回路４は、何れか一方のＣＰＵがアクセスする場合に、ＲＯＭ５，６より一括して３２ビットデータを読み出し、ＣＰＵが実際にアクセスしたアドレスに対応するデータ（例えば上位１６ビット）はＣＰＵ側に渡し、残りのデータ（例えば下位１６ビット）は内部でバッファリングすることも可能に構成されている。そして、引き続き行われるアクセスがバッファリングしているデータのアドレスであった場合は、ＲＯＭ５，６に対するアクセスは行わず、バッファリングしているデータをＣＰＵ側に渡すようになっている。
【００２１】
ＲＯＭバスコントロール回路４は、先読み機構制御回路７、アドレス制御信号切替え回路８、調停制御回路（調停回路）９、優先権設定レジスタ３０、データパス回路１０及び１１などで構成されている。
【００２２】
先読み機構制御回路７は、ＣＰＵ２，３によって夫々出力される読出し制御信号やアドレスに基づいて（アクセス制御信号）を生成し、マルチプレクサ（ＭＰＸ，選択回路）１２，１３を介して調停制御回路９に出力する。以下に、アクセスタイプＩＮＳＴ［２：０］の生成について説明する。
【００２３】
尚、ＣＰＵ２，３は、データバス幅は１６ビットであるが、内部レジスタのビット数が３２ビットであり、アクセス制御信号としてＬＯＮＧ，ＬＯＮＧ＿ＬＷを出力する場合がある。これらの制御信号は、１６ビットの読出しサイクルを２回連続して行なうことで、内部の３２ビットレジスタの上位側、下位側にデータを格納するために行う（図４（ａ），（ｂ）参照）。
【００２４】
即ち、１回目の読出しサイクルでは制御信号ＬＯＮＧがアクティブとなり、２回目の読出しサイクルでは制御信号ＬＯＮＧ＿ＬＷがアクティブとなる。そして、これらが何れもインアクティブの場合の読出しサイクルは、単発の１６ビットの読出しサイクルとなる。従って、アクセスタイプの生成は、例えば以下のように行なわれる。
2004287526.tif 000003
また、ＣＰＵ２，３が出力するアドレスがＲＯＭ５，６に対するアクセスを示さない場合は、先読み機構制御回路７のアドレスデコーダがその判別を行うが、そのアクセスタイプを「ＮＯＰ（アクセス無し）」と定義する。
【００２５】
そして、アクセスタイプは、例えば以下のようにコード化されている。
2004287526.tif 000004
【００２６】
調停制御回路９は、ＣＰＵ２，３がＲＯＭ５，６に対して同時にアクセスを行おうとする場合に調停を行い、調停した結果として出力される制御信号を、デマルチプレクサ（ＤＰＸ）１４を介して先読み機構制御回路７、アドレス制御信号切替え回路８に与えるものである。また、調停制御回路９に対しては、ＣＰＵ２より書き込み設定が行われる優先権設定レジスタ３０より優先権モード信号ＳＥＬ［１：０］が与えられており、この信号も調停動作に利用される。
【００２７】
アドレス制御信号切替え回路８は、調停結果を受けてＲＯＭ５，６に対する（ＣＰＵ２又は３が出力した）アクセスアドレスを出力したり、データパス回路１０，１１におけるデータパスの切替えを行なうようになっている。
【００２８】
データパス回路１０，１１は、夫々ＣＰＵ２，３に対応して設けられており、内部に３２ビットのデータバッファ（命令用バッファ，データ用バッファ）３２，３３を備えている。ＲＯＭ５，６より読み出される３２ビットデータは、デマルチプレクサ１５を介してデータパス回路１０，１１の何れか一方に与えられ、データバッファ３２，３３に格納される。そして、ＣＰＵ２，３は、夫々データパス回路１０，１１のデータバッファ３２，３３から１６ビットデータを読み出すようになっている。
【００２９】
図２は、調停制御回路９の内部構成を示す機能ブロック図である。調停制御回路９は、優先モードデコード回路１６、ＷＡＩＴ時間判定回路１７及びアクセスタイプ調停回路１９によって構成されている。優先モードデコード回路１６は、ＣＰＵ２により書込みが行われ、優先権設定レジスタ３０によって出力される優先権モード信号ＳＥＬ［１：０］をデコードしてアクセスタイプ調停回路１９に出力する。優先権モード信号ＳＥＬ［１：０］は、実動作上ではユーザプログラムによって例えば以下のように設定される。
ＳＥＬ      優先モード
０  ０      交互
０  １      交互
１  ０      ＣＰＵ（０）優先
１  １      ＣＰＵ（１）優先
【００３０】
ＷＡＩＴ時間判定回路１７は、アクセスが競合した結果として何れかのＣＰＵによるアクセスの実行を待機させる必要が生じた場合に、アクセスタイプ調停回路１９よりトリガ信号が与えられると計時を開始する待機時間（ＷＡＩＴ時間）の経過を判定するもので、その判定結果はアクセスタイプ調停回路１９に与えられる。そして、アクセスタイプ調停回路１９は、先読み機構制御回路７によって出力される各ＣＰＵのアクセスタイプＩＮＳＴ［２：０］を受けて内部ロジックで調停動作を行なうと、その結果を出力する。
【００３１】
マルチプレクサ１２、１３並びにデマルチプレクサ１４の切替えは、テストレジスタ２０によって出力される制御信号によって行われる。また、テストレジスタ２０は、テスト時において各ＣＰＵの制御信号アクセスタイプＩＮＳＴ［２：０］を擬似的に生成して出力するようになっており、それらはマルチプレクサ１２、１３を介して調停制御回路９に与えられる。
【００３２】
また、調停制御回路９より出力される調停結果は、テスト時にはデマルチプレクサ１４を介してテストレジスタ２０側に出力される。尚、テストレジスタ２０に対する書込みや読出しは、例えばＣＰＵ２によって行なわれる。
【００３３】
ここで、調停結果とは、例えば以下のようにＲＯＭ＿Ａ，ＣＰＵ０＿Ｌ，ＣＰＵ１＿Ｌ，優先権変更（ＰＲＩ）で構成される１１ビットデータである。また、単にＲＯＭと記述する場合はＲＯＭ５，６を区別せず、３２ビットデータを一括読み出し可能な１つのＲＯＭとして捉えている。
2004287526.tif 000005
尚、優先権変更：ＰＲＩは、調停動作中に優先権の変更が生じた場合に調停制御回路９によってセットされるビットである。
【００３４】
図３は、テストレジスタ２０の詳細を示すものである。テストレジスタ２０は、（ａ）テストモード設定レジスタ（切替え制御信号出力回路、データレジスタ）２１、（ｂ）アクセステストレジスタ２２、（ｃ）調停結果読出しレジスタ（調停結果出力レジスタ、データレジスタ）２３の、３つの１６ビットレジスタの総称である。
【００３５】
テストモード設定レジスタ２１は、第０ビットにデータ「１／０」を書き込むことで制御信号ＴＥＳＴをアクティブ／インアクティブにするように構成されている。
アクセステストレジスタ（擬似制御信号出力回路、データレジスタ）２２は、第０〜第２ビットにＣＰＵ２のアクセスタイプを書き込むようになっており、第４〜第６ビットにＣＰＵ３のアクセスタイプを書き込むようになっている。そして、アクセステストレジスタ２２に書き込まれたアクセスタイプがマルチプレクサ１２，１３に出力される。
【００３６】
調停結果読出しレジスタ２３は、調停制御回路９より出力される調停結果が格納されるレジスタであり、各ビットは、以下のように対応する。
2004287526.tif 000006
尚、以上において、マルチプレクサ１２，１３及びデマルチプレクサ１４，テストレジスタ２０は、テスト装置３１を構成している。
【００３７】
図５は、ＲＯＭバスコントロール回路４の構成を詳細に示すものである。尚、ＲＯＭバスコントロール回路４の基本的な構成は特願２００２−３８０００２に記載されているので、ここでは概略的に説明する。
尚、本実施例におけるＲＯＭバスコントロール回路４は、以下のＲＯＭコントローラ１３４を２つのＣＰＵ２，３に対応して２セット備えるもので、それらの間における調停を調停制御回路９が行なうようになっている。
【００３８】
ＲＯＭコントローラ１３４は、制御部（データ読出し手段，読出し制御手段）１３５、アドレスパス部１３６、データパス部（読出し制御手段）１３７によって構成されている。制御部１３５は、アドレスパス制御部１３７、データパス制御部１３８、アドレスヒット検出部１３９、ＲＯＭ制御部１４０及びＣＰＵ制御部１４１を備えている。
【００３９】
アドレスパス制御部１３７，データパス制御部１３８は、夫々アドレスパス部１３６，データパス部１３７の制御を行う。アドレスヒット検出部１３９は、アドレスパス部１３６が保持しているアドレスと、ＣＰＵによって出力されたアドレスとの一致（ヒット）を検出するものである。ＣＰＵ制御部１４１は、ＣＰＵに対して読み出し制御信号（アクノリッジ信号ＡＣＫＮ）を出力する。尚、読み出し制御信号ＡＣＫＮは、ＣＰＵに対してＲＯＭデータ読出しをウエイトさせる場合にハイレベルとなり、ロウレベルではアクノリッジがアクティブであることを示している。そして、ＲＯＭ制御部１４０は、これらを統括的に制御するようになっている。
【００４０】
アドレスパス部１３６は、ＲＯＭ１３３に対してマルチプレクサ（ＭＵＸ）１４２を介してアドレスを出力するようになっている。そのＭＵＸ１４２の一方の入力側には、ＣＰＵ側のアドレスバスに直結されるスルーパス１４３が接続されており、他方の入力側にはカウンタ側パス１４４が接続されている。
【００４１】
スルーパス１４３には、バッファ（ラッチ）１４５の入力側も接続されており、バッファ（アドレス格納手段）１４５の出力側は、アドレスヒット検出部１３９に接続されている。バッファ１４５は、ＣＰＵがデータ読み出しサイクルを実行した場合に出力されたアドレスが格納される。
【００４２】
また、ビット出力部１４６は、ＲＯＭ１３３のデータ読出し対象アドレスと、そのアドレスに応じたデータがバッファ１４５、及び後述するデータ用バッファ１５４に格納されている場合に、ＲＯＭ読出しイネーブルを示すビット（バリッドビット）がセットされるように構成されており、その出力側もアドレスヒット検出部１３９に接続されている。尚、ビット出力部１４６のリセットは、ハードウエアによって行われる。
【００４３】
一方、カウンタ側パス１４４側には、ＭＵＸ１４７、カウンタバッファ（アドレス保持手段）１４８及びカウンタ（＋４）１４９が配置されている。ＭＵＸ１４７の一方の入力側にはスルーパス１４３が接続されており、他方の入力側には、カウンタ１４９の出力側が接続されている。そして、ＭＵＸ１４７の出力端子は、カウンタバッファ１４８を介してカウンタ１４９の入力側及びカウンタ側パス１４４に接続されている。
【００４４】
また、カウンタ側パス１４４には、スルーパス１４３側と同様にバッファ１５０の入力側も接続されており、バッファ１５０の出力側は、アドレスヒット検出部１３９に接続されている。また、ビット出力部１５１の出力側もアドレスヒット検出部１３９に接続されている。
【００４５】
ビット出力部１５１は、ビット出力部１４６と同様に、ＲＯＭ１３３の命令読出し対象アドレスと、そのアドレスに応じた命令がバッファ１４８、及び後述する命令用バッファ１５３に格納されている場合に、ＲＯＭ読出しイネーブルを示すビットがセットされるように構成されている。そして、ＣＰＵによる命令読出しが連続したアドレスで行われている場合には、ＲＯＭコントローラ１５３，ＲＯＭ１３３との間における１サイクル毎に、ビット出力部１５１及び１５３とＣＰＵ側のアドレスＡからヒット、ミスヒットを交互に検出することになる。
【００４６】
データパス部１３７は、ＭＵＸ１５２，命令用バッファ１５３、データ用バッファ１５４及びＭＵＸ１５５で構成されている。ＭＵＸ１５２の入力側には、３２ビットのＲＯＭ＿Ｄの内、上位１６ビット［３１：１６］，下位１６ビット［１５：０］が夫々接続されている。命令用バッファ１５３は、ＣＰＵがＲＯＭ１３３に対して命令読出し（インストラクションフェッチ）サイクルを実行した場合に、下位１６ビットデータが格納される。
【００４７】
データ用バッファ１５４は、ＣＰＵがＲＯＭ１３３に対してデータ読出し（データロード）サイクルを実行した場合に、３２ビットデータが格納される。そして、ＭＵＸ１５５は、ＭＵＸ１５２，命令用バッファ１５３、データ用バッファ１５４の上位側，下位側の何れかを選択してＣＰＵ側のデータバスに出力するようになっている。
【００４８】
動作概要を説明すると、ＣＰＵは、命令読出しを１６ビット（２バイト）単位で行う。その場合、ＲＯＭコントローラ１３４は、自身がバッファ１４８に保持しているアドレスを、ＲＯＭ１３３のデータバス幅３２ビットに合わせて「４」ずつ増加させ、命令を３２ビット（４バイト）単位で読み出すようになっている。
【００４９】
そして、ＲＯＭコントローラ１３４は、同時に読み出した３２ビットの命令の内、上位１６ビットは読出しと同時にＣＰＵ側のデータバスに出力し、下位１６ビットは一旦バッファ１５３に格納する。そして、ＣＰＵが次の読み出しサイクルを実行した場合に、バッファ１５３に格納した命令を前記データバスに出力する。
【００５０】
また、制御部１３５は、ＣＰＵアドレスＡと、カウンタバッファ１４８が保持しているアドレスとが一致すると、その次のサイクルにおいてアドレスを「４」増加させるためのカウントアップ信号を出力する。同時に、カウンタバッファ１４８が保持しているアドレスをバッファ１５０に、また、ＲＯＭ１３３より読み出されたデータをバッファ１５３にロードするためのロード信号を出力する。
【００５１】
尚、上記の制御部１３５の構成と、図１に示す先読み機構制御回路７，アドレス制御信号切替え回路８とは、ブロック表現による機能の切り分けが異なっているが、行なう動作は基本的に同様である。先読み機構制御回路７が担う機能は、以下の内容である。
・ＣＰＵの出力信号に基づくアクセスタイプの生成
・先読みアドレスとＣＰＵアドレスとの比較
・先読みアドレスのインクリメント処理
・先読み制御による新たなアクセスタイプの生成
・ＣＰＵ側に返すＡＣＫ信号の生成
【００５２】
また、アドレス制御信号切替え回路８が担う機能は、以下の内容である。
・ＲＯＭ側に出力するアドレスの切り替え
・制御信号の切り替え
・ＲＯＭに対するチップセレクト信号ＣＳの生成出力
【００５３】
また、特願２００２−３８０００２に開示されている構成は、ＣＰＵが１つであることを前提としているため、ＲＯＭ側に対するアクセスは常に３２ビットであるが、本実施例では、２つのＣＰＵが存在しているため、ＲＯＭ５，６の夫々に対して１６ビットアクセスを行うことも可能に構成されている点は相違している。
【００５４】
そして、本実施例におけるデータパス回路１０，１１は、基本的にデータパス部１３７と同様に構成されるものであるが、以下では説明の都合上、夫々が備えているデータバッファ３２，３３は、命令用バッファ１５３、データ用バッファ１５４を共通化したものとして区別せずに説明する。
【００５５】
次に、本実施例の作用について図６も参照して説明する。先ず、調停制御回路９における調停動作の一覧を表１に示す。
【００５６】
【表１】
2004287526.tif 000007
この表について説明する。
【００５７】
（１）＜ＣＰＵ２：アクセス無し＞
この場合、ＣＰＵ３側との競合は発生せず、ＷＡＩＴも発生しない。従って、ＣＰＵ２のアクセスタイプがＷｏｒｄＨ，Ｌである場合は、ＣＰＵ３が出力したアクセスアドレスでＲＯＭ５（上位），ＲＯＭ６（下位）に夫々１６ビットアクセスを行う。そして、読み出された１６ビットデータは、そのままＣＰＵ３側にロードされる。
【００５８】
また、ＣＰＵ３のアクセスタイプがＬｏｎｇ０である場合は、ＣＰＵ２が出力したアクセスアドレスでＲＯＭ５，６に３２ビットアクセスを行う。そして、読み出された３２ビットデータの内、上位１６ビットはＣＰＵ３側にロードされ、下位１６ビットはデータパス回路１１のデータバッファ３２にロードされる。続いて、ＣＰＵ３のアクセスタイプがＬｏｎｇ１になると、ＲＯＭ５，６に対するアクセスは行わず、前回のアクセスでデータパス回路１１のバッファ３２にロードされた下位１６ビットデータがＣＰＵ３側にロードされる。
【００５９】
（２）＜ＣＰＵ２：ＷｏｒｄＨ＞
（ａ）この場合、ＣＰＵ３側のアクセスタイプもＷｏｒｄＨであればＲＯＭ５側に対して競合が生じるが、優先モードにより優先権がＣＰＵ２，３の何れか一方に設定される。ＣＰＵ２が優先であれば、ＣＰＵ２側によってＲＯＭ５に１６ビットアクセスをすれば良いが、「優先権変更」が「有り（想定される、ということ）」であるから、ＲＯＭ５，６に対して３２ビットアクセスを行い、下位１６ビットはデータパス回路１０のデータバッファ３２にロードしておく。この時、ＣＰＵ３側のアクセスはＷＡＩＴされる。
【００６０】
即ち、次のアクセスにおいて優先権がＣＰＵ３側に変更されると同時に、ＣＰＵ２が同一アドレスの下位側１６ビットにＷｏｒｄＬアクセスを行った場合は、データパス回路１０のバッファにヒットさせることができるからである。
一方、ＣＰＵ３が優先であれば、上記と同様のプロセスをＣＰＵ３側について実行する。
【００６１】
（ｂ）また、ＣＰＵ３側のアクセスタイプがＷｏｒｄＬであれば、
ＣＰＵ２→ＲＯＭ５
ＣＰＵ３→ＲＯＭ６
に対して夫々異なるアドレスで１６ビットアクセスとなるので競合は発生しない。そして、読み出されたデータは、ＣＰＵ２，３に夫々ロードされる。
【００６２】
（ｃ）また、ＣＰＵ３側のアクセスタイプがＬｏｎｇ０であれば、やはり、ＲＯＭ５側に対して競合が生じるが、この場合も優先権がＣＰＵ２，３の何れか一方に設定され、夫々（ａ）と同様のアクセス，ロードパターンとなる。
【００６３】
（ｄ）そして、ＣＰＵ３側のアクセスタイプがＬｏｎｇ１であれば、競合は生じない。この時、
ＣＰＵ２→ＲＯＭ５
ＣＰＵ３→データパス回路１１のバッファ
より夫々データを読み出す。
【００６４】
（３）＜ＣＰＵ２：ＷｏｒｄＬ＞
（ａ）ＣＰＵ３側のアクセスタイプがＷｏｒｄＨであれば、基本的に（２）（ｂ）のケースと同様であり、夫々のアクセスアドレスの上位，下位が入れ替わるだけである。
（ｂ）また、ＣＰＵ３側のアクセスタイプがＷｏｒｄＬである場合も、基本的に（２）（ａ）のケースと同様で、夫々のアクセスアドレスが上位から下位に入れ替わるだけである。但し、データパス回路１０のデータバッファ３２にロードされる上位１６ビットデータのアドレスは、アクセスドレスの下位１６ビットに「２」を加えたアドレスである（即ち、ロングワード境界を跨ぐ）。
【００６５】
（ｃ）また、ＣＰＵ３側のアクセスタイプがＬｏｎｇ０である場合、Ｌｏｎｇ０の後にはアクセスＬｏｎｇ１が行われるため、ＲＯＭ５，６に対しては必ず３２ビットアクセスを行う必要がある。従って、何れか一方に優先権を設定し、優先権に応じて夫々がＲＯＭ５，６に３２ビットアクセスを行い、他方をＷＡＩＴさせるようになっている。
【００６６】
（ｄ）そして、ＣＰＵ３側のアクセスタイプがＬｏｎｇ１である場合、競合は生じない。この時、
ＣＰＵ２→ＲＯＭ６
ＣＰＵ３→データパス回路１１のバッファ
より夫々データを読み出す。
【００６７】
（４）＜ＣＰＵ２：Ｌｏｎｇ０＞
（ａ）ＣＰＵ３側のアクセスタイプがＷｏｒｄＨであれば、（２）（ｃ）のケースについてＣＰＵ２，３を入れ替えたものと同様である。
（ｂ）ＣＰＵ３側のアクセスタイプがＷｏｒｄＬであれば、（３）（ｃ）のケースについてＣＰＵ２，３を入れ替えたものと同様である。
（ｃ）ＣＰＵ３側のアクセスタイプがＬｏｎｇ０であれば、競合するので、夫々の優先権設定に応じて排他制御を行う。
（ｄ）そして、ＣＰＵ３側のアクセスタイプがＬｏｎｇ１であれば、競合は生じない。（２）（ｄ）のケースと同様である。
【００６８】
（５）＜ＣＰＵ２：Ｌｏｎｇ１＞
この場合、ＣＰＵ２は、ＣＰＵ３のアクセスタイプにかかわらず常にデータパス回路１１のバッファ３３よりデータを読み出す。従って、競合は発生せず、ＲＯＭ５，６に対するアクセスは、ＣＰＵ３のアクセスタイプに応じて実行される。即ち、ＣＰＵ３側は（１）のパターンと同じであり、ＣＰＵ２側が、データパス回路１０から「ロードしない」→「バッファ１６ビットロード」に変わるだけである。
【００６９】
そして、本実施例では、調停制御回路９の機能をテストするために、ＣＰＵ２，３夫々のアクセスタイプを、テストレジスタ２０に対して書込みを行なうことで擬似的に発生させてその調停結果を参照することで行なう。図６は、例えばＣＰＵ２に実行させるプログラムによるテスト手順を示すフローチャートである。先ず、ＣＰＵ２は、テストモード設定レジスタ２１のビット０に「１」を書き込んでテストモードを設定すると（ステップＳ１）、優先権設定レジスタ３０に書き込みを行うことで優先権を設定する（ステップＳ２）。
【００７０】
次に、ＣＰＵ２は、アクセステストレジスタ２２に書込みを行うことで、ＣＰＵ２，３夫々のアクセスタイプを擬似的に設定する（ステップＳ３）。すると、調停制御回路９の機能が正常であれば、表１に従って調停動作が行なわれる。そして、調停結果は調停制御回路９によりエンコードされ、１１ビットの調停結果データとして調停結果読出しレジスタ２３にセットされる。
【００７１】
続いて、ＣＰＵ２は、調停結果読出しレジスタ２３の内容を読み出して（ステップＳ４）、期待値と比較を行なう（ステップＳ５）。それから、その比較結果を図示しないワークＲＡＭに書き込む（ステップＳ６）。そして、全てのアクセスタイプについてテストを行なうまで（ステップＳ７，「ＮＯ」）ステップＳ２に戻ってテストを繰り返す。
【００７２】
全てのアクセスタイプについてテストを行なうと（ステップＳ７，「ＹＥＳ」）、ワークＲＡＭに書き込んだ比較結果を読み出す（ステップＳ８）。そして、テストモード設定レジスタ２１のビット０に「０」を書き込んでテストモードを解除すると（ステップＳ９）、テスト動作を終了する。
【００７３】
尚、ステップＳ８で読み出されたデータは、例えば、テスト用にシリアルインターフェイスを介してマイコン１に接続されるパーソナルコンピュータなどに転送され、その内容がディスプレイに表示されることで作業者によりテスト結果の確認が行なわれる。即ち、テスト結果が表１の通りになっていれば、調停制御回路９の機能は正常であると判断される。
【００７４】
以上のように本実施例によれば、調停制御回路９のテスト装置３１において、アクセステストレジスタ２２は、ＣＰＵ２，３がＲＯＭ５，６に対して夫々アクセスを行う場合に、先読み機構制御回路７により調停制御回路９に対して出力されるアクセスタイプＩＮＳＴ［２：０］を夫々擬似的に出力する。そして、マルチプレクサ１２，１３は、テストモード設定レジスタ２１より出力される制御信号ＴＥＳＴに応じて、擬似的なアクセス制御信号と対応するＣＰＵが実際にアクセスを行うことで先読み機構制御回路７により出力されるアクセス制御信号とを、調停制御回路９に対して選択的に出力する。従って、テストプログラムを各ＣＰＵ２，３に同時に実行させることでそれらのアクセスを実際に競合させなくても、調停制御回路９の機能を簡単にテストすることができて、活性化率を向上させることが可能となる。
【００７５】
そして、テストモード設定レジスタ２１，アクセステストレジスタ２２は、ＣＰＵ２によって書き込まれたデータ値に応じて夫々の信号を出力するので、ＣＰＵ２にテストプログラムを実行させてレジスタ２１，２２に書込みを行なわせることで、擬似的な競合状態を発生させてテストすることができる。
【００７６】
また、調停結果読出しレジスタ２３に格納された調停動作結果の内容は、ＣＰＵ２（又は３）によって読み出し可能であるから、読み出したデータをＣＰＵ２が評価した結果をモニタすることで、調停制御回路９のテスト結果がどのようになったかを容易に確認することができる。また、この場合、デマルチプレクサ１４によって調停結果データを調停結果読出しレジスタ２３に対してのみ出力するので、テスト時においてＲＯＭ５，６に不要なアクセスが行われることがなく、電力消費を抑制することができる。
【００７７】
更に、調停制御回路９を、２つのＣＰＵ２，３と、これらのＣＰＵ２，３よりも広いデータバス幅を構成する２つのＲＯＭ５，６との間に接続され、ＣＰＵ２，３の何れかがＲＯＭ５，６よりデータを読み出そうとする場合に、その読み出しを制御するＲＯＭバスコントロール回路４に内蔵した。
【００７８】
即ち、ＲＯＭバスコントロール回路４によれば、ＲＯＭ５，６の読み出し速度が遅い場合でも、調停制御回路９による調停動作の結果バス権を獲得したＣＰＵが連続するアドレスで命令読出しを行う場合は、そのＣＰＵが次回以降に読み出そうとする命令は今回の読出しで同時に読み出されてデータバッファ３２，３３の何れかに保持され、次回の読出しではデータバッファ３２，３３の何れかより命令が読み出される。従って、ＣＰＵ２，３がＲＯＭ５，６からの読み出しを行うために従来必要であったウエイトサイクルを削減することができ、処理効率を向上させることができる。
【００７９】
また、データバッファ３２，３３は所謂データキャッシュとしても作用するので、データの読出しアドレスがバッファ３２，３３にヒットした場合、ＣＰＵ２，３はそのデータを高速に読み出すことができる。従って、データの読出し効率を向上させることが可能となる。
【００８０】
そして、斯様に構成される場合、ＣＰＵ２，３がＲＯＭバスコントロール回路４を介してＲＯＭ５，６にアクセスしようとすると、調停制御回路９における調停動作は非常に複雑になる。従って、テスト装置３１を適用することは極めて有効である。
【００８１】
（第２実施例）
図７は本発明の第２実施例を示すものであり、第１実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。第２実施例では、テスト装置３１の構成は基本的に第１実施例と同様であり、テストの実行手順が若干異なっている。即ち、ＣＰＵ２に実行させるプログラムによるテスト手順を示す図７において、ＣＰＵ２は、ステップＳ１〜Ｓ４を第１実施例と同様に実行すると、ステップＳ４で読み出した調停結果をそのままワークＲＡＭに書き込む（ステップＳ１１）。それから、ステップＳ７に移行する。
【００８２】
そして、全てのアクセスタイプについてテストを行なうと（ステップＳ７，「ＹＥＳ」）、ワークＲＡＭに書き込んだ調停結果を読み出し（ステップＳ１２）、ステップＳ５と同様の処理を行なった後（ステップＳ１３）、ステップＳ９を実行してテスト動作を終了する。
【００８３】
即ち、第２実施例によれば、ＣＰＵ２は、調停結果読出しレジスタ２３より読み出した調停結果をそのままワークＲＡＭに書き込み、全てのテストパターンを実行した後に期待値との比較を行うので、第１実施例と同様の効果を得ることができる。
【００８４】
本発明は上記し且つ図面に記載した実施例にのみ限定されるものではなく、以下のような変形または拡張が可能である。
ＣＰＵ３にテストプログラムを実行させても良い。この場合、優先権設定レジスタ３０もＣＰＵ３が書き込むようにする。
ＣＰＵは、３つ以上あっても良い。
ＣＰＵは、ＣＰＵ２，３のようにデータバス幅１６ビットに対して３２ビットの内部レジスタを備える必要はない。また、バイトアクセスを行っても良い。
データバス幅が８ビット以下又は３２ビット以上のＣＰＵに適用しても良い。
優先権モードは、必ずしもＣＰＵがレジスタに書込みを行なうことでダイナミックに設定する必要はなく、調停回路側においてＣＰＵの優先順位が固定的に設定されていても良い。
【００８５】
テスト結果は、必ずしも調停結果読出しレジスタ２３に格納する必要はない。例えば、調停制御回路９より出力される調停結果をロジックアナライザやオシロスコープを用いて観測するようにしても良い。
データパス回路１０，１１は、命令用バッファだけを備えていても良い。
ＲＯＭバスコントローラ４は、必要に応じて設ければ良く、例えば、複数のＣＰＵに対して同一ビット幅のＲＯＭが１個のみ存在し、それらによるアクセスを調停する調停回路に本発明のテスト装置を適用しても良い。
第２実施例においてステップＳ１３を削除し、作業者は、ワークＲＡＭに書き込まれた調停結果データをそのままダンプしてテスト結果を判定するようにしても良い。
ＣＰＵがアクセスするリソースはＲＯＭに限らず、ＲＡＭやその他の周辺回路であっても良い。
【図面の簡単な説明】
【図１】本発明の第１実施例であり、本発明の要旨にかかる部分のシングルチップマイクロコンピュータの構成を示す機能ブロック図
【図２】調停制御回路の内部構成を示す機能ブロック図
【図３】テストレジスタの詳細を示すもので、（ａ）テストモード設定レジスタ、（ｂ）アクセステストレジスタ（ｃ）調停結果読出しレジスタを夫々示す図
【図４】ＣＰＵの内部レジスタに、ＣＰＵによる（ａ）ＬＯＮＧアクセス，（ｂ）ＬＯＮＧ＿ＬＷアクセスにより格納されるデータを説明する図
【図５】ＲＯＭバスコントロール回路の構成を詳細に示す図
【図６】ＣＰＵに実行させるプログラムによるテスト手順を示すフローチャート
【図７】本発明の第２実施例を示す図６相当図
【符号の説明】
１はシングルチップマイクロコンピュータ、２，３はＣＰＵ、４はＲＯＭバスコントロール回路（メモリインターフェイス回路装置）、５，６はＲＯＭ（リソース）、７は先読み機構制御回路、９は調停制御回路（調停回路）、１０，１１はデータパス回路、２１はテストモード設定レジスタ（切替え制御信号出力回路、データレジスタ）、２２はアクセステストレジスタ（擬似制御信号出力回路）、２３は調停結果読出しレジスタ（調停結果出力レジスタ、データレジスタ）、３１はテスト装置、３２，３３はデータバッファ（命令用バッファ，データ用バッファ）、１３５は制御部（データ読出し手段，読出し制御手段）、１４５はバッファ（アドレス格納手段）を示す。
【図１】
2004287526.tif 000008
【図２】
2004287526.tif 000009
【図３】
2004287526.tif 000010
【図４】
2004287526.tif 000011
【図５】
2004287526.tif 000012
【図６】
2004287526.tif 000013
【図７】
2004287526.tif 000014