(57)【特許請求の範囲】
【請求項１】
アクセス要求を出力する演算処理装置と、
データを記憶する記憶装置と、
前記演算処理装置から前記記憶装置が記憶するデータへの前記アクセス要求を受け付け、受け付けた前記アクセス要求を前記記憶装置に転送し、前記アクセス要求に対する前記記憶装置からの応答を取得する記憶制御装置と、
前記演算処理装置から前記記憶装置へのアクセス要求に代わって、前記記憶装置へのアクセス要求を前記記憶制御装置に送出させるとともに前記記憶制御装置を介して前記記憶装置からの応答を取得する診断制御装置と、
前記記憶制御装置からのアクセス要求と前記診断制御装置からのアクセス要求とのいずれか一方を選択して前記記憶装置に引き渡す第１選択部と、を備え、
前記診断制御装置は、前記第１選択部による選択を制御する第１選択制御部と、
前記第１選択部を通じて前記記憶装置に引き渡されるアクセス要求を保持する第１要求保持部と、を有する情報処理装置。
【請求項２】
アクセス要求を出力する演算処理装置と、
データを記憶する記憶装置と、
前記演算処理装置から前記記憶装置が記憶するデータへの前記アクセス要求を受け付け、受け付けた前記アクセス要求を前記記憶装置に転送し、前記アクセス要求に対する前記記憶装置からの応答を取得する記憶制御装置と、
前記演算処理装置から前記記憶装置へのアクセス要求に代わって、前記記憶装置へのアクセス要求を前記記憶制御装置に送出させるとともに前記記憶制御装置を介して前記記憶装置からの応答を取得する診断制御装置と、
前記演算処理装置からのアクセス要求と前記診断制御装置からのアクセス要求のうちいずれか一方を選択して前記記憶制御装置に引き渡す第２選択部と、を備え、
前記診断制御装置は、前記第２選択部による選択を制御する第２選択制御部と、
前記第２選択部を通じて前記記憶制御装置に引き渡されるアクセス要求を保持する第２要求保持部と、を有する情報処理装置。
【請求項３】
前記演算処理装置からのアクセス要求と前記診断制御装置からのアクセス要求のうちいずれか一方を選択して前記記憶制御装置に引き渡す第２選択部をさらに備え、
前記診断制御装置は、前記第２選択部による選択を制御する第２選択制御部と、
前記第２選択部を通じて前記記憶制御装置に引き渡されるアクセス要求を保持する第２要求保持部と、を有する請求項１に記載の情報処理装置。
【請求項４】
前記記憶制御装置は、複数のアクセス要求を所定の優先順に保持するリクエストキューと、前記リクエストキューに保持されたアクセス要求を前記優先順に前記記憶装置に引き渡すとともに前記リクエストキューの先頭に戻す分岐経路とを備える請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記記憶制御装置は、複数のアクセス要求を所定の優先順に保持するリクエストキューと、
前記リクエストキューから前記記憶装置に引き渡すキューの読み出し位置を指定するリードポインタと、を有し、
前記診断制御装置は、前記リードポインタを更新するインターフェースを有する請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記診断制御装置は、前記リードポインタをループさせて更新することによって、前記リクエストキューを通じて所定個数のアクセス要求を前記記憶装置に引き渡すとともに、前記所定個数のアクセス要求の引き渡し後、前記所定個数のアクセス要求とは異なるアクセス要求をさらに前記記憶装置に引き渡す請求項５に記載の情報処理装置。
【請求項７】
演算処理装置と、データを記憶する記憶装置と、第１選択部と、を有する情報処理装置の制御方法において、
前記演算処理装置がアクセス要求を出力し、
前記情報処理装置が有する記憶制御装置が、前記演算処理装置から前記記憶装置が記憶するデータへの前記アクセス要求を受け付け、
前記記憶制御装置が、受け付けた前記アクセス要求を前記記憶部に転送し、
前記記憶制御装置が、前記アクセス要求に対する前記記憶装置からの応答を取得し、
診断制御装置が、前記演算処理装置から前記記憶装置へのアクセス要求に代わって、前記記憶装置へのアクセス要求を前記記憶制御装置に送出させるとともに前記記憶制御装置を介して前記記憶装置からの応答を取得し、
前記第１選択部が、前記記憶制御装置からのアクセス要求と前記診断制御装置からのアクセス要求とのいずれか一方を選択して前記記憶装置に引き渡し、
前記診断制御装置が、前記第１選択部による選択を制御し、前記第１選択部を通じて前記記憶装置に引き渡されるアクセス要求を保持する情報処理装置の制御方法。
【請求項８】
演算処理装置と、データを記憶する記憶装置と、第２選択部と、を有する情報処理装置の制御方法において、
前記演算処理装置がアクセス要求を出力し、
前記情報処理装置が有する記憶制御装置が、前記演算処理装置から前記記憶装置が記憶するデータへの前記アクセス要求を受け付け、
前記記憶制御装置が、受け付けた前記アクセス要求を前記記憶部に転送し、
前記記憶制御装置が、前記アクセス要求に対する前記記憶装置からの応答を取得し、
診断制御装置が、前記演算処理装置から前記記憶装置へのアクセス要求に代わって、前記記憶装置へのアクセス要求を前記記憶制御装置に送出させるとともに前記記憶制御装置を介して前記記憶装置からの応答を取得し、
第２選択制御部が、前記演算処理装置からのアクセス要求と前記診断制御装置からのアクセス要求のうちいずれか一方を選択して前記記憶制御装置に引き渡し、
前記診断制御装置は、前記第２選択部による選択を制御し、前記第２選択部を通じて前記記憶制御装置に引き渡されるアクセス要求を保持する情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置を有する情報処理装置および情報処理装置の制御方法に関する。
【背景技術】
【０００２】
従来、メモリを有するＬＳＩ（Large Scale Integration）等の情報処理装置における
、メモリの試験方法としては、情報処理装置のプロセッサが試験プログラムの実行によって試験を行う方法がある。また、例えば、試験を起動するコントローラがプロセッサ内の命令キューに指令を設定し、試験を実行する方法もある。命令キューによる場合、情報処理装置上のプロセッサが命令キューを介してメモリにアクセスすることで、試験が実行される。図１に、メモリを有する情報処理装置の構成を例示する。
【０００３】
図１の情報処理装置は、プロセッサ３０１と、メモリ３０３と、コントローラ３０４とを備える。また、プロセッサ３０１は、コア３１０と、メモリ３にアクセスするメモリ制御装置３２０を有する。コア３１０は、複数のエントリを有する命令キュー３１１を備える。図１では、各エントリは、「キュー」という文字列で例示されている。命令キュー３１１には、プロセッサ３０１外部のコントローラ３０４からデータの設定と読み取りとが可能となっている。コントローラ３０４は、メモリ３０３を試験するための指令を命令キュー３１１に設定し、試験を起動する。
【０００４】
メモリ制御装置３２０は、複数のエントリを有するリクエストキュー３２１と、アクセス制御部３２２と、受信データ制御部３２３とを有する。メモリ制御装置３２０は、コア３１０内で命令キュー３１１を制御する制御回路からメモリアクセスのための指令あるいはデータを取得し、リクエストキュー３２１を介して、アクセス制御部３２２に指令あるいはデータを引き渡す。アクセス制御部３２２は、リクエストキュー３２１を介して指令あるいはデータを取得し、メモリ３０３にアクセスする。アクセス制御部３２２が、何らかの処理を実行中は、アクセス制御部３２２は、ビジー信号Ａ１をリクエストキュー３２１の制御回路に返す。
【０００５】
ビジー信号Ａ１がオンに設定されている間、リクエストキュー３２１の制御回路は、次の指令あるいはデータのアクセス制御部３２２への引き渡しを停止する。そして、例えば、メモリ３０３から受信データ制御部３２３にデータが引き渡されると、受信データ制御部３２３からの応答信号Ａ２にしたがい、アクセス制御部３２２は、ビジー信号Ａ１をオフに設定する。そして、ビジー信号Ａ１がオフになると、リクエストキュー３２１の制御回路は、次の指令あるいはデータを含むリクエストをアクセス制御部３２２に引き渡し、アクセス制御部３２２は、次のリクエストを受けてメモリ３０３に次の処理を実行する。以上のように、従来は、例えば、コントローラ３０４からプロセッサ３１０内の命令キュー３１１に指令あるいはデータを設定することで、情報処理装置に含まれるメモリ３０３の試験が行われている。
【０００６】
以上のようなメモリを有する情報処理装置の試験として、例えば、負荷試験（ランニング試験ともいう）、ディスターブ試験等と呼ばれるものが実施される。ところが、近年の情報処理装置では、複数のコアの搭載、キャッシュの多様化、複数のプロセッサ間のインターコネクトの機能の多様化等により、プロセッサの挙動が複雑化している。そして、プロセッサの挙動の複雑化のため、プロセッサで実行されるプログラム、あるいは、プロセッサ内に備える命令キューの制御では、ディスターブ試験や負荷試験等が容易に実装できないことが想定される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２００２／０７３４１１号
【特許文献２】特開２０１３−３０９０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
そのため、例えば、情報処理装置内にメモリ試験用の回路を実装することが考えられる。しかしながら、プロセッサ開発においては、省電力、実装面積の増大抑制、演算性能向上等が求められるため、データが疎通するメインバスに不要な回路を付与することは望ましいものではない。したがって、例えば、省電力や実装面積を考慮した上で、メモリおよびプロセッサの試験を適正に行うことは容易ではない。具体的には、上記のように、挙動が複雑化したプロセッサにおいて、例えば、長時間に渡る負荷試験の網羅性を高めること、あるいは、メモリおよびプロセッサの機能の限界を診断することは技術的に容易ではない。ここで、網羅性とは、例えば、メモリのアドレス、制御回路、アクセスタイミング等の観点でのメモリの試験がカバーした程度ということができる。
【０００９】
また、ＳＤＲＡＭのような汎用メモリであればプロセッサと独立した試験環境を準備することもできる。しかし、新規に提案された規格のメモリ、あるいは非汎用メモリに対しては試験環境を作成することは容易ではなく、コストが増加する。例えば、近年ではＨＭＣ（Hybrid Memory Cub）あるいはＨＢＭ（High Bandwidth Memory）等、新しいインターフェースを持つメモリが開発されている。今後、メモリを有するＬＳＩ、情報処理装置等の開発のため、メモリを簡易かつ効率的に診断できるようにすることが望ましい。そこで、開示の実施形態の１つの側面は、プロセッサ等の演算処理装置とメモリ等の記憶装置とを含む情報処理装置において、演算処理装置の構成、記憶装置の構成、あるいは演算処理装置と記憶装置とのインターフェースが複雑化した場合等においても、簡易かつ効率的に記憶装置の試験を実施できるようにする。
【課題を解決するための手段】
【００１０】
開示の技術の一側面は、情報処理装置によって例示される。本情報処理装置は、アクセス要求を出力する演算処理装置と、データを記憶する記憶装置と、演算処理装置から記憶装置が記憶するデータへのアクセス要求を受け付け、受け付けたアクセス要求を記憶装置に転送し、アクセス要求に対する記憶装置からの応答を取得する記憶制御装置と、演算処理装置から記憶装置へのアクセス要求に代わって、記憶装置へのアクセス要求を記憶制御装置に送出させるとともに記憶制御装置を介して記憶装置からの応答を取得する診断制御装置と、を備える。
【発明の効果】
【００１１】
本情報処理装置によれば、演算処理装置と記憶装置とを含む情報処理装置において、演算処理装置の構成、記憶装置の構成、あるいは演算処理装置と記憶装置とのインターフェースが複雑化した場合等においても、簡易かつ効率的に記憶装置の試験を実施できる。
【図面の簡単な説明】
【００１２】
【図１】メモリを有する情報処理装置の構成を例示する図である。
【図２】実施例１に係る情報処理装置の構成を例示する図である。
【図３】診断制御部の詳細構成を例示する図である。
【図４】実施例２に係る情報処理装置の構成を例示する図である。
【図５】実施例３に係る情報処理装置の構成を例示する図である。
【図６】実施例４に係る情報処理装置の構成を例示する図である。
【図７】リードポインタとデバッグキューポインタの切り替えを制御する回路を例示する図である。
【図８】診断実行時のアクセス要求送出手順を例示するフローチャートである。
【図９】リードアクセス時の受信処理を例示するフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、一実施形態に係る情報処理装置について説明する。以下の実施形態の構成は例示であり、本情報処理装置は実施形態の構成には限定されない。本実施形態は、以下の実施例１から実施例４を含む。実施例１から実施例４に含まれるそれぞれの構成は、他の実施例に含まれる構成と組み合わせ、本情報処理装置の変形例とすることができる。
【００１４】
［実施例１］
図２に、実施例１に係る情報処理装置の構成を例示する。図２の情報処理装置は、プロセッサ１と、メモリ３と、コントローラ４とを有する。また、図２では、プロセッサ１内には、コア・キャッシュ１１と、メモリ３にアクセスするメモリ制御装置２０が例示されている。メモリ制御装置２０は、リクエストキュー２１と、アクセス制御部２２と、受信データ制御部２３と、診断制御部２４と、セレクタ２５、２６とを有する。コア・キャッシュ１１とメモリ制御装置２０とメモリ３の間はメインバスで接続される。メインバスは、プロセッサ１がメモリ３にアクセスするためのアドレスを指定するアドレスバスと、プロセッサ１とメモリ３との間で書き込みデータ、および読み出しデータを授受するためのデータバスを含む。メモリ制御装置２０は、記憶制御装置の一例である。また、診断制御部２４は、診断制御装置の一例である。
【００１５】
プロセッサ１は、コア・キャッシュ１１を通じて、メモリ３との間で、データの書き込み、およびデータの読み出しを行う。コア・キャッシュ１１からメモリ３へのアクセス要求は、メインバスを通じてメモリ制御装置２０に送信され、メモリ制御装置２０は、コア・キャッシュ１１から受け付けたアクセス要求を処理する。アクセス要求は単にリクエストとも呼ばれる。アクセス要求には、メモリ３へのデータ書き込み処理の要求またはメモリ３からのデータ読み出し処理の要求が含まれる。通常の動作では、プロセッサ１は、コア・キャッシュ１１を介してアクセス要求をリクエストキュー２１に送出し、メモリ３との間のデータ書き込み処理またはデータ読み出し処理を実行する。プロセッサ１が演算処理装置の一例である。また、メモリ３は記憶装置の一例である。
【００１６】
データの書き込み処理および読み出し処理においては、コア・キャッシュ１１からメインバスを通じて、メモリ３へのアクセス要求がリクエストキュー２１に登録される。アクセス要求のうち、データ書き込み要求は、書き込み対象データとメモリ３上の書き込みアドレスとを含む。また、データの読み出し要求は、メモリ３上の読み出しアドレスを含む。リクエストキュー２１の制御回路は、所定の優先順でリクエストキュー２１に登録された書き込み要求または読み出し要求をセレクタ２５に送出する。例えば、メモリ３へのアクセスの効率化のため、リクエストキュー２１のエントリに登録された複数のアクセス要求に対して、所定の手順にしたがい、複数のアクセス要求間で調停が行われる。そこで、リクエストキュー２１のエントリ数は、調停による性能向上が図れること等の条件により、設計段階で十分と見込まれる数ｒｑｎ設けられる。
【００１７】
セレクタ２５は、リクエストキュー２１を通じたアクセス要求と、診断制御部２４からの診断用のアクセス要求とを診断制御部２４からの制御信号（伝送路Ｂ１）にしたがって選択し、アクセス制御部２２に引き渡す。セレクタ２５は、第１選択部の一例である。以下、診断制御部２４から送出される診断用のアクセス要求は、診断用データとも呼ばれる。
【００１８】
アクセス制御部２２は、メモリ３にアドレスバス上のアドレス信号、データバス上のデータ信号、メモリアクセスのタイミングを指定するストローブ信号等を供給し、メモリ３にアクセスする。受信データ制御部２３は、アクセス制御部２２からのメモリ３へのアクセスに伴うメモリ３からの応答信号を受信する。例えば、受信データ制御部２３は、メインバスを通じてメモリ３から読み出されたデータを取得する。
【００１９】
（診断制御部２４）
実施例１では、コア・キャッシュ１１以外からメモリ制御装置２０内のリクエストキュー２１に診断用のアクセス要求を設定する回路として、診断制御部２４が設けられる。すなわち、診断制御部２４は、メモリ制御装置２０内のリクエストキュー２１を制御する回路であり、デバッグモードで情報処理装置を動作させ、リクエストキュー２１を操作できる。デバッグモードでは、リクエストキュー２１を利用して診断用のアクセス要求を投入するように、診断制御部２４がメモリ制御部２０の制御を行う。
【００２０】
例えば、診断制御部２４は、メモリ３に対する負荷試験とディスターブ試験を行う。負荷試験とは、メモリ３への所定回数以上のアクセスによってメモリ３に負荷が加わるように行う試験である。また、ディスターブ試験は、負荷試験とはアクセスの仕方を変更し、アクセス回数増加による負荷をかけるのではなく、アクセスの仕方に特徴を持たせてメモリ３の動作を確認する試験である。診断制御部２４は、例えば、負荷試験のためにリクエストキュー２１に診断用のアクセス要求を設定するループ処理後に、負荷試験とは異なる特殊な診断用のアクセス要求をアクセス制御部２２に送出する機能を持つ。
【００２１】
図２の例では、診断制御部２４は、メインバスと同等のバスである代替バスを通じてセレクタ２６を介してリクエストキュー２１に接続される。セレクタ２６は、診断制御部２４からの制御信号にしたがい、コア・キャッシュ１１からのメインバスを通じたアクセス要求と、診断制御部２４からの代替バスを通じた診断用のアクセス要求とを選択し、リクエストキュー２１に引き渡す。したがって、診断制御部２４は、セレクタ２６への制御信号により、コア・キャッシュ１１からのメインバスを通じたアクセス要求を遮断し、診断制御部２４自身による診断用のアクセス要求をリクエストキュー２１に設定することが可能である。なお、図２の例では、「代替バス」と付された伝送路は、セレクタ２６による選択を制御するための制御信号伝送路とリクエストキュー２１に設定されるアクセス要求を伝送するデータ伝送路とを含む。セレクタ２６は、第２選択部の一例である。
【００２２】
また、セレクタ２６に代えて、ＯＲゲートを用いて、メインバスからの信号と代替バスからの信号をリクエストキュー２１に接続してもよい。例えば、診断制御部２４が、制御信号の１つとして、コア・キャッシュ１１にビジー信号を供給すればよい。そして、コア・キャッシュ１１は、診断制御部２４からのビジー信号がアサートされているときには、メインバスを通じたリクエストキュー２１へのアクセス要求の送出を停止するようにすればよい。診断制御部２４は、コア・キャッシュ１１へのビジー信号をアサートした状態で、代替バスのデータ伝送路およびＯＲゲートを通じた診断用のアクセス要求をリクエストキュー２１に送出すればよい。
【００２３】
すなわち、本実施例では、診断制御部２４は、メインバスと同等のバスである代替バスを通じて、コア・キャッシュ１１に代わって、リクエストキュー２１に診断用のアクセス要求を登録可能となっている。したがって、セレクタ２６、あるいは、セレクタ２６に代わるＯＲゲートは、メインバスと、メインバスと同等のバスである代替バスとをリクエストキュー２１に接続するインターフェースとなっている。
【００２４】
また、診断制御部２４は、診断用データリクエスト制御信号の接続線でリクエストキュー２１の制御回路と接続されている。診断用データリクエスト制御信号の接続線は、代替
バスの一部であってもよいし、代替バスとは異なる伝送路でもよい。図２では、代替バスと分離して、診断用データリクエスト制御信号の接続線が例示されている。
【００２５】
診断用データリクエスト制御信号は、代替バスを通じてリクエストキュー２１のエントリに、コア・キャッシュ１１からメモリ３へのアクセス要求に代わる、診断制御部２４からメモリ３への診断用のアクセス要求（診断用データ）を登録するための信号である。診断用データリクエスト制御信号は、例えば、（１）診断用のアクセス要求を書き込むことを示す制御信号、（２）診断用のアクセス要求を伝えるデータ信号（バス）、（３）診断用のアクセス要求を書き込むエントリの選択信号である。ただし、（１）の制御信号および（３）の選択信号は、同一の信号で兼用されうる。また、診断用のアクセス要求を伝えるデータ信号は、代替バスからセレクタ２６を通じて、リクエストキュー２１にアクセスする信号であってもよい。
【００２６】
さらにまた、診断制御部２４は、セレクタ２５を介してアクセス制御部２２に接続される。セレクタ２５は、診断制御部２４からの制御信号（伝送路Ｂ１）にしたがい、リクエストキュー２１からの診断用のアクセス要求（伝送路Ｂ２）と、診断制御部２４からの診断用のアクセス要求（伝送路Ｂ３）とを選択し、アクセス制御部２２に引き渡す。したがって、診断制御部２４は、セレクタ２５への制御信号により、リクエストキュー２１からのアクセス要求を遮断し、診断制御部２４自身によるアクセス要求をアクセス制御部２２に出力することが可能である。リクエストキュー２１からのアクセス要求に代わる診断制御部２４自身によるアクセス要求は、例えば、ディスターブ試験に用いられる。
【００２７】
診断制御部２４は、所定の制御処理を実行する制御部と、制御部による処理時のデータを保持する複数のレジスタを有している。また、診断制御部２４は、情報処理装置をデバッグモードに設定するモードレジスタを有している。モードレジスタがデバッグモードに設定されると、診断制御部２４は、メモリ３の試験を実行する。メモリ３の試験では、上述のように、診断制御部２４は、例えば、セレクタ２６の制御信号により、コア・キャッシュ２６からのメインバスを通じたアクセス要求を遮断し、診断制御部２４自身による診断用のアクセス要求をリクエストキュー２１に設定するようになる。また、例えば、診断制御部２４は、所定のタイミングで、セレクタ２５への制御信号により、リクエストキュー２１からのアクセス要求を遮断し、診断制御部２４自身による診断用のアクセス要求をアクセス制御部２２に出力する。
【００２８】
図３に、診断制御部２４の詳細構成を例示する。図３のように、診断制御部２４は、制御部２４０と、データ制御系２４８とを有する。また、制御部２４０は、診断要求受信部２４１と、診断状態部２４２と、診断制御カウンタ２４３と、診断制御命令レジスタ２４４と、診断判定部２４５と、期待値保持部２４６とを有する。
【００２９】
制御部２４０は、診断要求受診部２４１に設定されたコマンドに応じた処理を実行する。制御部２４０のコマンドに応じた処理は、診断制御部２４内のハードウェア回路、例えば、組み合わせ論理回路、順序論理回路、シーケンス制御回路等で実行してもよい。また、制御部２４０のコマンドに応じた処理は、制御部２４０内に設けたプロセッサとプロセッサに命令を供給するファームウェアの命令列によって実行してもよい。
【００３０】
診断要求受診部２４１は、コントローラ４から、制御部２４０へのコマンドのビットパターンを受け付けて保持し、制御部２４０に所定の処理を起動させる。診断状態部２４２は、複数のレジスタ、たとえば、モードレジスタ（図３のラベル「モード」のブロック）、診断結果レジスタ（図３のラベル「診断結果」のブロック）を有する。診断要求受診部２４１は試験実行のコマンドを受け付けると、モードレジスタをデバッグモードに設定する。
【００３１】
診断状態部２４２内のモードレジスタがデバッグモードに設定されると、診断制御部２４は、デバッグモードで動作する。デバッグモードでは、制御部２４０は、診断要求受診部２４１に設定されたコマンドに対応する処理として、例えば、負荷試験の起動、ディスターブ試験の起動、および試験結果の確認を行う。例えば、制御部２４０は、データ制御系２４８を介して、代替バスおよびセレクタ２６（図２）を通じた負荷試験用のアクセス要求をリクエストキュー２１へ送信し、負荷試験を実行する。また、制御部２４０は、セレクタ２５（図２）を通じて負荷試験後のディスターブ試験用のアクセス要求を送信し、ディスターブ試験を実行する。データ制御系２４８が第２要求保持部の一例である。
【００３２】
さらに、制御部２４０は、診断判定部２４５により、コントローラ４から送信され期待値保持部２４６に保持された期待値とメモリ３からの応答である受信データとを比較する。制御部２４０は、比較結果を診断状態部２４２の診断結果レジスタに登録し、負荷試験およびディスターブ試験の終了後に診断結果レジスタの内容をコントローラ４に返す制御を実行する。
【００３３】
診断状態部２４２は、例えば、アクセスしたメモリ３のアドレスに対応づけて診断結果レジスタの複数のエントリに、対応するアドレスの診断結果を格納すればよい。したがって、コントローラ４は、メモリ３のアドレスに対応付けた診断状態部２４３から診断結果を読み出せばよい。ただし、制御部２４０は、複数アドレスの診断結果を、例えば、ＯＲ演算等によって集約してもよい。
【００３４】
診断制御カウンタ２４３は、データ制御系２４８からリクエストキュー２１に設定するアクセス要求の数を計数する。例えば、診断制御カウンタ２４３は、負荷試験においてリクエストキュー２１からアクセス制御部２２（図２）に送出されるアクセス要求の数が所定値に達するまで計数する。診断制御カウンタ２４３が計数したアクセス要求の数が所定値に達すると、制御部２４０は、診断制御命令レジスタ２４４にディスターブ試験実行のための診断制御命令を設定する。ただし、制御部２４０は、診断制御カウンタ２４３による計数値を最小値（０）から最大値の範囲で複数回ループして計数させ、リクエストキュー２１へのアクセス要求を複数回繰り返して送出してもよい。
【００３５】
診断制御命令レジスタ２４４は、ディスターブ試験を実行するため、セレクタ２５を診断制御部２４からのアクセス要求に切換える制御信号（図３の伝送路Ｂ１に送出されるデータ）、およびディスターブ試験においてセレクタ２５を介してアクセス制御部２２に送出されるアクセス要求（図３の伝送路Ｂ３に送出されるデータ）を保持する。本実施例では、診断制御命令レジスタ２４４に保持され、伝送路Ｂ１、Ｂ３を送出される信号を診断制御命令と呼ぶ。伝送路Ｂ１を通じて制御信号を送出する診断制御命令レジスタ２４４のエントリは、第１選択制御部の一例である。伝送路Ｂ３を通じてアクセス要求となるデータを送出する診断制御命令レジスタ２４４のエントリは、第１要求保持部の一例である。
【００３６】
診断判定部２４５は、受信データ制御部２３（図２）を介してメモリ３からの応答である受信データを取得する。そして、診断判定部２４５は、期待値保持部２４６に保持された期待値とメモリ３からの受信データを比較し、比較結果を診断状態部２４２の試験結果レジスタに格納する。期待値保持部２４６は、コントローラ４から送出された期待値を保持する。
【００３７】
データ制御系２４８は、コントローラ４から送出されるリクエストキュー２１への診断用のアクセス要求（診断用データ）を初期値として保持し、診断制御カウンタ２４３のカウント値にしたがい、診断用のアクセス要求をリクエストキュー２１に設定する。そして、リクエストキュー２１の制御回路は、所定の優先順にしたがって、リクエストキュー２
１のエントリを選択し、選択したエントリに格納された診断用のアクセス要求をアクセス制御部２２（図２）に送出する。
【００３８】
コントローラ４は、診断制御部２４により、情報処理装置をデバッグモードで操作する。コントローラ４は、診断制御部２４の各部と、ＪＴＡＧ（Joint Test Action Group）
、あるいは、Ｉ２Ｃ等の通信規格にしたがった伝送路で接続されている。例えば、診断制御部２４がＪＴＡＧに対応したデバイス（回路ブロック）の場合、内部に、所定の機能に対応した制御レジスタと、ＴＡＰ（Test Access Port）コントローラ、およびリクエストキュー２１への信号線に値を設定するためのデータレジスタ等を有する。診断制御部２４のインターフェースとしてＪＴＡＧが採用される場合には、例えば、ＴＡＰコントローラが図３の制御部２４０の一例となる。
【００３９】
そして、コントローラ４と診断制御部２４とが例えば、ＪＴＡＧで接続される場合、コントローラ４は、バウンダリスキャンにより、診断制御部２４の各部の制御レジスタ、およびデータレジスタに値を設定し、制御レジスタに対応する処理を診断制御部２４内の制御部２４０（例えば、ＴＡＰコントローラ）に実行させればよい。なお、コントローラ４と診断制御部２４とがＩ２Ｃで接続される場合も、診断制御部２４内の各部への値の設定手順は、ＪＴＡＧの場合と同様である。したがって、実施例１以下の各実施例において、コントローラ４と診断制御部２４等とがどのような通信規格で接続されるか、について特に限定がある訳ではない。
【００４０】
いずれにしても、コントローラ４は、ＪＴＡＧのバウンダリスキャン、Ｉ２Ｃシリアル通信等により、代替バスに接続されるデータレジスタ、および、診断用データリクエスト制御信号の接続線に接続されるデータレジスタ等に値を設定する。また、コントローラ４は、試験結果の期待値を診断制御部２４の期待値保持部２４６に設定する。そして、試験実行時、コントローラ４は、診断要求信号（例えば、情報処理装置のベンダ独自のプライベート命令）を診断制御部２４の診断要求受診部２４１に設定する。なお、試験結果の期待値は、ＪＴＡＧのバウンダリスキャン、Ｉ２Ｃ等によってコントローラ４から期待値保持部２４６に設定される。
【００４１】
診断制御部２４は、診断要求信号を受け付けると、例えば、メモリ３へのアクセス要求を生成し、データ制御系２４８から代替バスを通じてリクエストキュー２１に、生成したアクセス要求を送出する。このとき、リクエストキュー２１は、コア・キャッシュ１１からメインバスを通じたアクセスを受け付ける場合と同様の手順で、代替バスを通じた診断制御部２４のアクセス要求を受け付け、キューのエントリに登録すればよい。
【００４２】
診断制御部２４は、例えば、診断制御カウンタ２４３等で、処理を繰り返すループ数をカウントし、メモリ３の負荷試験時にリクエストキュー２１に投入されるアクセス要求を生成する。また、診断制御部２４は、負荷試験のためのアクセス要求の生成の他、さらに、ディスターブ試験のためのアクセス要求をディスターブ試験の回数分生成する。
【００４３】
リクエストキュー２１に登録された診断制御部２４からのメモリ３への負荷試験用のアクセス要求は、セレクタ２５およびアクセス制御部２２を通じて、メモリ３に転送される。また、診断制御部２４が送出するディスターブ試験用のアクセス要求は伝送路Ｂ３、セレクタ２５およびアクセス制御部２２を通じて、メモリ３に転送される。
【００４４】
メモリ３は、負荷試験用およびディスターブ試験用のアクセス要求に対する応答信号を受信データ制御部２３に返す。受信データ制御部２３は、応答信号に基づく受信データをアクセス制御部２２および診断制御部２４に送出する。
【００４５】
（処理例）
図２、図３の構成において、診断要求信号の設定により、制御部２４０は、以下を実行する。
Ａ．試験処理
（処理１）セレクタ２６が診断制御部２４からの代替バスを通じたデータ信号を選択するように、制御部２４０は、データ制御系２４８を通じて制御信号（図３の診断用データリクエスト制御信号）をセレクタ２６に設定する。
（処理２）セレクタ２５がリクエストキュー２１からのアクセス要求を選択するように、制御部２４０は、制御信号をセレクタ２５に設定する。
（処理３）制御部２４０は、代替バスを通じて、リクエストキュー２１にメモリ３へのアクセス要求を送出する。
（処理４）制御部２４０は、処理３を負荷試験の仕様として規定された回数実行する。
（処理５）制御部２４０は、負荷試験の終了後、セレクタ２５が診断制御部２４からのアクセス要求を選択するように、診断制御命令レジスタ２４３による制御信号（図３の伝送路Ｂ１）をセレクタ２５に設定する。
（処理６）制御部２４０は、セレクタ２５を通じて、診断制御命令レジスタ２４３に保持されたディスターブ試験の仕様で規定されたアクセス要求（図３の伝送路Ｂ３）をアクセス制御部２２に引き渡す。
（処理７）制御部２４０は、処理６をディスターブ試験の仕様として規定された回数実行する。
（処理８）受信データ制御部２３がメインバスを通じて取得したメモリ３からの応答信号の実測値（例えば、メモリ３から読み出したデータ）を取得する。
（処理９）制御部２４０は、期待値保持部２４６に設定された期待値と処理８で取得した実測値とを比較して、診断状態部２４２の診断結果レジスタに比較結果を保存する。
（処理９）制御部２４０は、例えば、バウンダリスキャンにより、診断状態部２４２の診断結果レジスタに保持された比較結果をコントローラ４に出力する。
Ｂ．再設定処理
制御部２４０は、試験実行のコマンドに対応する処理を完了すると、セレクタ２６がメインバスからの信号を選択するように、セレクタ２６への制御信号を設定する。また、制御部２４０は、セレクタ２５がリクエストキュー２１からのアクセス要求を選択するように、制御信号をセレクタ２５に設定する。
【００４６】
以上の構成によれば、本情報処理装置では、診断制御部２４が、コア・キャッシュ１１からメモリ３にアクセスするメインバスに代わって、代替バスおよび診断用データリクエスト制御信号の伝送路によりリクエストキュー２１の各エントリへの設定を行う。その結果、診断制御部２４は、メモリ３へのアクセス要求をリクエストキュー２１に投入できる。診断制御部２４は、プロセッサ１の命令、プロセッサ１のキャッシュの構成等の複雑さに依存せず、メインバスと同等の代替バスからリクエストキュー２１に、メモリ３へのアクセス要求を送出できる。
【００４７】
また、診断制御部２４内にループ処理の回数を計数する診断制御カウンタ２４３を設けることによって、診断制御部２４は、メモリ３へのアクセス要求を繰り返し生成し、負荷試験で実行される数のアクセス要求を生成できる。さらに、診断制御部２４は、負荷試験で実行される数のアクセス要求に加えて、ディスターブ試験のためのアクセス要求をディスターブ試験の回数分生成し、セレクタ２５を通じてアクセス制御部２２に送出することで、ディスターブ試験を実行できる。
【００４８】
試験手順実行のため、本情報処理装置には、コントローラ４からの診断要求信号に対応して、望ましい試験を実行する制御シーケンス、制御回路等を診断制御部２４に組み込んでおけばよい。さらに、実施例１の診断制御部２４は、セレクタ２６あるいはセレクタ２
６に代わるＯＲ回路等の論理ゲートを用いて、コア・キャッシュ１１からのアクセスと、診断制御部２４からのアクセスを診断制御部２４からの制御信号によって簡易に切り分けることができる。また、実施例１の診断制御部２４は、セレクタ２６を用いて、コア・キャッシュ１１からのアクセスを簡易に遮断できる。
【００４９】
また、実施例１の診断制御部２４は、セレクタ２５を用いて、リクエストキュー２１からのアクセス要求と診断制御部２４からのアクセス要求を切換えることができる。したがって、例えば、診断制御部２４は、リクエストキュー２１を介して負荷試験を実行し、一方、特殊なアクセスを含むディスターブ試験を診断制御部２４から実行できる。その結果、多様な試験のパターンを作成し、メモリ３に適用でき、試験の網羅性を向上できる可能性が高まる。
【００５０】
以上のように、実施例１の情報処理装置は、プロセッサ１のアーキテクスチャの複雑さ、あるいは、メモリ３のインターフェースの複雑さによらず、負荷試験やディスターブ試験に類するメモリ診断を効率よく行い、試験対象を検証できる。実施例１の情報処理装置は、図３のような診断制御部２４を採用することにより、実装時に面積を過剰に用いない回路を実装する。診断制御部２４は、セレクタ２６、あるいはセレクタ２６に代わるＯＲ回路等のインターフェースによって、メインバスに代わる代替バスによってリクエストキュー２１にアクセスする。したがって、試験が行われない通常状態では、コア・キャッシュ１１からリクエストキュー２１にアクセスする伝送路への診断制御部２４の影響が抑制される。
【００５１】
［実施例２］
図４に、実施例２に係る情報処理装置の構成を例示する。図４の情報処理装置は、実施例１と同様、プロセッサ１と、メモリ３と、コントローラ４とを有する。また、図４では、プロセッサ１内には、コア・キャッシュ１１と、メモリ３にアクセスするメモリ制御装置２０が例示されている。メモリ制御装置２０は、リクエストキュー２１と、アクセス制御部２２と、受信データ制御部２３と、診断制御部２４Ａとを有する。また、診断制御部２４Ａは、制御部２４０Ａと、デバッグキュー２４９と、を有する。
【００５２】
実施例２の情報処理装置において、制御部２４０Ａは、実施例１の図３と同様の構成である。ただし、実施例２の図４では、制御部２４０Ａには、診断状態部２４２と、診断制御カウンタ２４３と、診断制御命令レジスタ２４４と、診断判定部２４５が例示され、診断要求受信部２４１は省略されている。また、図４において、コア・キャッシュ１１とメモリ３との間の構成要素は、図２と同様であるので、その説明を省略する。
【００５３】
上記実施例１では、診断制御部２４がコア・キャッシュ１１に代わって代替バスからリクエストキュー２１にアクセス要求を登録し、負荷試験を実行する情報処理装置を説明した。また、実施例１では、診断制御部２４がセレクタ２５を介してディスターブ試験のアクセス要求をアクセス制御部２２に送出する情報処理装置を説明した。一方、実施例２では、診断制御部２４Ａにおいて、負荷試験用のアクセス要求とディスターブ試験用のアクセス要求を生成するためのデバッグキュー２４９が設けられる。したがって、実施例２の情報処理装置は、実施例１のようなセレクタ２５は省略可能である。実施例２の他の構成要素は、実施例１と同様である。そこで、実施例２の構成要素のうち、実施例１と同一の構成要素については、実施例１と同一の符号を付してその説明を省略する。
【００５４】
上述のように、実施例２の情報処理装置では、診断制御部２４Ａは、デバッグキュー２４９を有する。デバッグ２４９は、リクエストキュー２１を通じてメモリ３に送出される負荷試験用のアクセス要求とディスターブ試験用のアクセス要求を保持する。デバッグキュー２４９は第１要求保持部の一例である。
【００５５】
デバッグキュー２４９のエントリ数ｄｑｎは負荷試験実行のためのリクエストの数よりも多くあればよい。デバッグキュー２４９が負荷試験とディスターブ試験とに対応する場合には、負荷試験実行のためのリクエストの数に加えて、ディスターブ試験用のリクエストを保持するキューの数の分だけ、デバッグキュー２４９のエントリ数ｄｑｎが追加されればよい。そこで、実施例２の情報処理装置では、デバッグキュー２４９のエントリ数ｄｑｎ、負荷試験実行のためのアクセス要求数ｃｎ、およびディスターブ試験のためのアクセス要求数ｓｃｎとすると、例えば、ｄｑｎ＞ｃｎ＋ｓｃｎを満足するように、デバッグキュー２４９が設けられる。実施例２の情報処理装置では、コントローラ４は、例えば、診断制御部２４Ａのデバッグキュー２４９に診断用のアクセス要求（診断用データ）を設定し、制御部２４０Ａに診断要求信号を送出する。すると、制御部２４０Ａは、代替バスを通じてデバッグキュー２４９のデータをリクエストキュー２１に書き込み、メモリアクセスが行われ、診断が実行される。
【００５６】
なお、アトミック演算などの複雑な命令が加わることによって、リクエストキュー２１の調停方法は複雑となり、リクエストキュー２１の段数が上記ｃｎ＋ｓｃｎよりもさらに多くなることがある。ここで、アトミック演算としては、例えば、メモリ３に対するコンペア＆スワップのように、一連の操作を１つの命令で実行するものが例示できる。
【００５７】
デバッグキュー２４９とリクエストキュー２１との間は、実施例１の情報処理装置と同様に、メインバスに代わる代替バスで接続される。また、メインバスと代替バスとは、実施例１の情報処理装置と同様、診断制御部２４Ａの制御部２４０Ａからの制御信号で制御されるセレクタ等のインターフェースで切り替えて、リクエストキュー２１に接続すればよい。また、メインバスと代替バスとは、ＯＲ接続でリクエストキュー２１に接続してもよい。そして、例えば、診断制御部２４Ａの制御部２４０Ａは、コア・キャッシュ１１およびメインバスに対してビジー信号を送出し、コア・キャッシュ１１からメインバスを通じたリクエストキュー２１へのアクセスを遮断すればよい。例えば、実施例１と同様、コントローラ４による診断要求信号設定後、診断制御部２４Ａはデバッグモードに設定され、リクエストキュー２１には、診断制御部２４からデバッグキュー２４９に登録されたアクセス要求が送出されるようにすればよい。
【００５８】
診断状態部２４２は、実施例１と同様に、モードレジスタと診断結果レジスタを有する。診断制御部２４Ａは、モードレジスタにしたがい、例えば、上記セレクタあるいはＯＲ接続等のインターフェースを制御する制御信号を送出する。すなわち、診断制御部２４Ａは、モードレジスタにしたがい、コア・キャッシュ１１からメインバスを通じたリクエストキュー２１へのアクセスを遮断し、デバッグキュー２４９からのアクセス要求がリクエストキュー２１に送出されるように制御すればよい。
【００５９】
コントローラ４は、実施例１と同様、診断制御部２４の各部、すなわち、デバッグキュー２４９、診断状態部２４２、診断判定部２４５等に対して、ＪＴＡＧ（Joint Test Action Group）、あるいは、Ｉ２Ｃ等の通信規格にしたがった伝送路で接続されている。例
えば、コントローラ４は、メモリ３を試験するためのアクセス要求をデバッグキュー２４９に設定する。そして、コントローラ４は、診断判定部２４５に試験結果の期待値を設定するとともに、制御レジスタ（図４では省略、実施例１の図３の診断要求受診部２４１等）に診断要求信号、例えば、情報処理装置のベンダ独自のプライベート命令を設定し、試験を起動する。
【００６０】
診断制御制御カウンタ２４３は、デバッグキュー２４９からリクエストキュー２１に送出するキューの数をカウントする。デバッグキュー２４９の制御回路は、診断制御制御カウンタ２４３のカウント値にしたがって、デバッグキュー２４９から所定の優先順でメモ
リ３への試験用のアクセス要求をリクエストキュー２１に書き込む。このとき、リクエストキュー２１は、コア・キャッシュ１１からメインバスを通じたアクセスを受け付ける場合と同様の手順で、代替バスを通じてデバッグキュー２４９に保持されたアクセス要求を受け付け、リクエストキュー２１内のエントリに登録すればよい。したがって、診断制御制御カウンタ２４３は、例えば、最小値（０）から最大値の範囲でカウント値を計数する。カウント値が最大値を超えると、診断制御カウンタ２４３のカウント値は０に戻ってループして計数すればよい。デバッグキュー２４９の制御回路は、診断制御制御カウンタ２４２のカウント値にしたがって、デバッグキュー２４９のエントリをループさせてリクエストキュー２１に書き込むことで、デバッグキュー２４９の長さｄｑｎよりも大きな数のアクセス要求の発行も可能となる。
【００６１】
診断判定部２４５（図４では省略した、実施例１の図３の期待値保持部２４６等）には、実施例１と同様、コントローラ４から期待値が設定されている。診断判定部２４５は、受信データ制御部２３から送出された応答である受信データと期待値とを比較し、診断結果を診断状態部２４２に格納する。
【００６２】
このようにリクエストキュー２１に対して、デバッグキュー２４９を用意することで、メモリに対する複雑な操作を行う命令を含む試験であっても、診断制御部２４Ａによって実装することができる。実施例２においても、実施例１と同様、診断制御部２４Ａが、コア・キャッシュ１１からメモリ３にアクセスするメインバスに代わってリクエストキュー２１の各エントリへの設定を行う。その結果、診断制御部２４Ａは、メモリ３へのアクセス要求をリクエストキュー２１に投入できる。診断制御部２４Ａは、プロセッサ１の命令、プロセッサ１のキャッシュの構成等の複雑さに依存せず、メインバスと同等の代替バスからリクエストキュー２１に、メモリ３へのアクセス要求を送出できる。
【００６３】
また、デバッグキュー２４９をループする機能により、メモリ３へのアクセス要求の発行も、デバッグキュー２４９のエントリ数を超えて可能となり、負荷試験を行うことができる。また、負荷試験のためのデバッグキュー２４９のエントリの他に、さらに、ディスターブ試験用の特殊なアクセスをデバッグキュー２４９に埋め込むことで、診断制御部２４Ａは、負荷試験ととともに、ディスターブ試験を行うことができる。
【００６４】
なお、命令列を長く複雑に実行する回路を実装する場合には、それだけのデバッグキューの数dqnを確保することになる。したがって、実施例２の情報処理装置では、デバッグ
キューの数dqnとともに実装面積が増加するという問題がある。
【００６５】
［実施例３］
図５に実施例３に係る情報処理装置を例示する。図５の情報処理装置は、実施例１、２と同様、プロセッサ１と、メモリ３と、コントローラ４とを有する。また、実施例１、２と同様、プロセッサ１が有するメモリ制御装置２０は、リクエストキュー２１と、アクセス制御部２２と、受信データ制御２３と、診断制御部２４Ｂとを有する。さらに、診断制御部２４Ｂの構成は、実施例２の診断制御部２４Ａと同様、デバッグキュー２４９Ｂと、診断状態部２４２と、診断制御カウンタ２４３と、診断制御命令レジスタ２４４と、診断判定部２４５と、とを有する。
【００６６】
ところで、実施例２においては、デバッグキュー２４９のエントリ数ｄｑｎは以下の通りであった。すなわち、負荷試験実行のためのアクセス要求数ｃｎ、およびディスターブ試験のためのアクセス要求数ｓｃｎとすると、例えば、ｄｑｎ＞ｃｎ＋ｓｃｎを満足するように、デバッグキュー２４９が設けられた。一方、実施例３においては、デバッグキュー２４９ｂのエントリ数ｄｑｎは、ディスターブ試験のためのアクセス要求数ｓｃｎと同程度の数、またはｓｃｎよりも少ない数設けられる。したがって、実施例３においては、
物理的構成としては、デバッグキュー２４９Ｂは、負荷試験のための十分な数のアクセス要求を保持できない。実施例３のデバッグキュー２４９Ｂは、第１要求保持部の一例である。
【００６７】
一方、実施例３においては、リクエストキュー２１からの出力信号は、分岐経路Ｔ１においてアクセス制御部２２への信号線とは分岐して、リクエストキュー２１の入力側のインターフェースに戻される。ここでは、リクエストキュー２１の入力側のインターフェースは、例えば、実施例１の図３のセレクタ２６あるいは、セレクタ２６に代わるＯＲ回路等である。リクエストキュー２１の入力側のインターフェースは、メインバスを通じたコア・キャッシュ１１からのアクセス要求と、リクエストキュー２１の出力信号から分岐した分岐経路Ｔ１からのアクセス要求とを診断制御部２４Ｂの診断状態部２４２からのループ制御信号にしたがって選択する。図５の構成において、リクエストキュー２１自体が、第２要求保持部の一例である。また、分岐経路Ｔ１は分岐経路の一例である。
【００６８】
実施例３において、診断状態部２４２は、実施例１、２と同様、モードレジスタと診断結果レジスタを有する。モードレジスタは、セレクタ等の入力側のインターフェースに送出されるループ制御信号の信号値を保持する。すなわち、診断状態部２４２のモードレジスタは、リクエストキュー２１の入力側のインターフェース（図２のセレクタ２６等）が、メインバスに代えて、リクエストキュー２１の出力信号から分岐した信号を選択するように制御する。このときのモードレジスタの値は、デバッグモードを示す値ということができる。なお、診断状態部２４２の診断結果レジスタは、実施例１、２と同様、期待値とメモリ３からの応答信号の比較結果である、試験結果データを格納する。
【００６９】
以上のようにデバッグモードにおいては、リクエストキュー２１からの出力信号は、セレクタ２５への信号線と分岐して、リクエストキュー２１の入力側のセレクタ２６に戻される。さらに、診断状態部２４２のモードレジスタには、セレクタ２６がリクエストキュー２１の出力側から分岐経路Ｔ１を通じて分岐した分岐した信号を選択する制御信号が設定される。その結果、リクエストキュー２１から送出されるメモリ３へのアクセス要求が分岐経路Ｔ１およびセレクタ２６を通じて、リクエストキュー２１に再登録される。したがって、リクエストキュー２１のエントリの数が、負荷試験実行のためのアクセス要求数ｃｎより少ない場合であっても、図５のメモリ制御装置２０は、実効的に、負荷試験実行のためのアクセス要求数ｃｎを超えるアクセス要求をメモリ３に送出できる。
【００７０】
一方、リクエストキュー２１の出力側のセレクタ２５は、リクエストキュー２１からのアクセス要求と、デバッグキュー２４９Ｂからのアクセス要求とを診断制御命令レジスタ２４４からの制御信号にしたがって選択して、アクセス制御部２３に引き渡す。診断制御命令レジスタ２４４は、診断制御カウンタ２４３の計数値が、負荷試験でのループ回数を超えると、セレクタ２５がデバッグキュー２４９Ｂからのアクセス要求を選択するように、選択信号を出力する。実施例３の構成要素のうち、他の構成要素は、実施例２の構成要素と同様であるので、その説明を省略する。
【００７１】
図５のように、コントローラ４は、リクエストキュー２１に負荷試験用のアクセス要求（診断用データ）を設定する。また、コントローラ４は、デバッグキュー２４９Ｂにディスターブ試験用のアクセス要求（診断用データ）を設定する。コントローラ４と、リクエストキュー２１および診断制御部２４Ｂの各部との接続は、例えば、ＪＴＡＧあるいはＩ２Ｃ等のシリアル通信による。コントローラ４は、ＪＴＡＧ、あるいはＩ２Ｃ等のシリアル通信により、リクエストキュー２１、デバッグキュー２４９Ｂ、診断状態部２４２、状態判定部２４５（具体的には図３の期待値保持部２４６）に診断用データ、期待値等を設定すればよい。
【００７２】
診断制御カウンタ２４３は、リクエストキュー２１からのアクセス要求のセレクタ２５への送出とともに、値をインクリメントし、カウンタ動作を行う。そして、診断制御カウンタ２４３が負荷試験実行のためのアクセス要求数ｃｎを超える値までカウントすると、診断制御命令レジスタ２４４からセレクタ２５に制御信号（伝送路Ｂ１）が送出される。セレクタ２５は、診断制御命令レジスタ２４４からの制御信号（伝送路Ｂ１）により、デバッグキュー２４９Ｂに登録されたアクセス要求（伝送路Ｂ３）を選択して取得し、アクセス制御部２２に引き渡す。デバッグキュー２４９Ｂには、ディスターブ試験のためのアクセス要求が登録されている。したがって、診断制御カウンタ２４３が負荷試験実行のためのアクセス要求数ｃｎを超える値までカウントすると、情報処理装置は、ディスターブ試験を実行する。
【００７３】
以上述べたように、実施例３では、メモリ制御装置２０が、分岐経路Ｔ１を介して、リクエストキュー２１からメモリ３に送出されるアクセス要求を繰り返してリクエストキュー２１に再登録する。その結果、メモリ制御装置２０は、負荷試験のためのアクセス要求数ｃｎを超えるアクセス要求をメモリ３に送出できる。また、診断制御カウンタ２４３が負荷試験実行のためのアクセス要求数ｃｎを超える値までカウントすると、セレクタ２５は、デバッグキュー２４９Ｂに登録されたアクセス要求を選択して取得し、アクセス制御部２２に引き渡し、ディスターブ試験が実行される。したがって、実施例３の情報処理装置では、リクエストキュー２１のループ処理によるアクセス要求の再登録により、負荷試験の実行のためのアクセス要求をデバッグキュー２４９Ｂに保持しなくてもよい。その結果、デバッグキュー２４９Ｂのエントリが削減される。すなわち、実施例３の情報処理装置では、実施例２の場合よりも、少ない実装面積で、負荷試験およびディスターブ試験を実行する診断制御部２４Ｂを実装できる。
【００７４】
また、実施例３の場合も、コア・キャッシュ１１およびメインバスからのアクセス要求とは独立して、診断制御部２４Ｂの初期設定およびリクエストキュー２１への負荷試験のためのアクセス要求の登録が実行される。したがって、例えば、複数のコアの搭載、キャッシュの多様化、複数のプロセッサ間のインターコネクトの機能の多様化等により、プロセッサ、あるいはキャッシュの挙動が複雑化したとしても、プロセッサ、あるいはキャッシュの動作の影響を低減して、ディスターブ試験や負荷試験等を実行する回路を情報処理装置内に実装できる。
【００７５】
［実施例４］
図６から図９に実施例４に係る情報処理装置を例示する。図６の情報処理装置は、実施例１から３と同様、プロセッサ１と、メモリ３と、コントローラ４とを有する。また、図６において、プロセッサ１が有するメモリ制御装置２０の診断制御部２４Ｃは、デバッグキューポインタ２４７と、制御部２４０Ｃを有する。制御部２４０Ｃの構成は、実施例１の制御部２４０、実施例２の制御部２４０Ａ、実施例３の制御部２４０Ｂと同様であり、診断状態部２４２と、診断制御カウンタ２４３と、診断判定部２４５とを有する。また、実施例４においては、リクエストキュー２１の書き込み位置がライトポインタ２１１によって指定され、リクエストキュー２１の読み出し位置がリードポインタ２１２によって指定される。
【００７６】
診断制御部２４Ｃは、診断制御カウンタ２４３の計数にしたがって、リードポインタ２１２に値を設定する。そのため、診断制御部２４Ｃは、例えば、リードポインタ２１２にアクセス可能なインターフェースＩＦ１を有する（図７参照）。インターフェースＩＦ１は、リードポインタを更新するインターフェースの一例である。また、診断制御部２４Ｃは、デバッグキューポインタ２４７の計数値にしたがって、リクエストキュー２１の該当エントリのアクセス要求をアクセス制御部２２に送出させる制御インターフェースＩＦ４を有する（図７参照）。
【００７７】
また、実施例４では、実施例１のようなセレクタ２５、２６は設けられていない。実施例４の他の構成要素は、実施例１から３と同様である。そこで、実施例１から３と同一の構成要素については、同一の符号を付して、その説明を省略する。
【００７８】
今、リクエストキュー２１内の調停方法はＦＩＦＯ（First In First Out）であるとする。したがって、実施例４では、リクエストキュー２１内のアクセス要求は、ライトポインタ２１１にしたがってシーケンシャルに書き込まれ、リードポインタ２１２に従って、シーケンシャルに読み出される。コア・キャッシュ１１は、メインバスの制御信号を通じて、ライトポインタ２１１の更新とリクエストキュー２１へのアクセス要求の登録が可能である。
【００７９】
コントローラ４は、例えば、ＪＴＡＧあるいはＩ２Ｃの通信規格により、ライトポインタ２１１を更新するためのインターフェースＩＦ２と、リクエストキュー２１へのアクセス要求を登録するためのインターフェースＩＦ３を有する。試験実行前、コントローラ４は、インターフェースＩＦ２を通じてライトポインタ２１１を制御して、インターフェースＩＦ３を通じて、リクエストキュー２１に試験時のアクセス要求の初期値を設定する。また、コントローラ４は、リードポインタ２１２およびデバッキューグポインタ２４７に初期値を設定する。
【００８０】
試験実行時には、実施例１と同様、診断制御部２４Ｃが、コア・キャッシュ１１に、ビジー信号を送出することで、コア・キャッシュ１１からのメインバスを通じたリクエストキュー２１へのアクセス要求が遮断される。上述のように、試験開始前、コントローラ４は、ライトポインタ２１１を更新するとともにリクエストキュー２１に診断用データを設定する。そして、コントローラ４が、診断要求受診部２４１（実施例１の図３参照）に診断要求信号を送出し、診断状態部２４３のモードレジスタをデバッグモードに設定すると、診断制御部２４Ｃは、試験を開始する。すなわち、リクエストキュー２１は、診断制御部２４Ｃの制御部２４０Ｃによるリードポインタ２１２の更新にしたがって、該当位置のエントリからアクセス要求をメモリ３に発行する。
【００８１】
実施例４では、ディスターブ試験用のアクセス要求は、リクエストキュー２１内に保持される。また、診断制御部２４Ｃ内にデバッグキューポインタ２４７が用意される。そして、診断制御部２４Ｃの診断制御カウンタ２４３が所定の負荷試験分の計数を完了すると、制御部２４０Ｃは、デバッグキューポインタ２４７による制御を有効とし、ディスターブ試験を実行する。ディスターブ試験では、デバッグキューポインタ２４７で指定されるリクエストキュー２１のエントリから、アクセス要求がアクセス制御部２２を通じて，メモリ３に発行される。この方法であれば、情報処理装置は、ディスターブ試験のためのデバッグキューのエントリのすべてをリクエストキュー２１で持つことができる。
【００８２】
図７に、リードポインタ２１２とデバッグキューポインタ２４７との切り替えを制御する回路を例示する。図７では、診断制御カウンタ２４３からの制御信号がインターフェースＩＦ１を通じてリードポインタ２１２に接続される。また、リードポインタ２１２の出力信号と、インターフェースＩＦ４を通じたデバッグキューポインタ２４７の出力信号は、セレクタ２１３によってリクエストキュー２１２のエントリを選択する。インターフェースＩＦ１、ＩＦ４に特に限定がある訳ではない。インターフェースＩＦ１、ＩＦ４は、診断制御部２４Ｃと、リクエストキュー２１とを接続できればよい。
【００８３】
さらに、セレクタ２１３は、比較器２４１０によって、リードポインタ２１２の出力信号と、デバッグキューポインタ２４７の出力信号のいずれかを選択する。さらに、比較器２４１０は、診断制御カウンタ２４３のカウント値と、基準値レジスタ２４１１に設定さ
れ基準値とを比較する。基準値レジスタ２４１１には、負荷試験完了までの診断制御カウンタ２４３のカウント値が制御部２４０Ｃ、あるいは図６のコントローラ４によって設定される。
【００８４】
図７の構成によって、診断制御カウンタ２４３が基準値レジスタ２４１１に設定された負荷試験完了までのカウント値までの値をカウントする間、セレクタ２１３は、リードポインタ２１２にしたがって、リクエストキュー２１２のエントリを選択する。一方、診断制御カウンタ２４３のカウント値が基準値レジスタ２４１１に設定された負荷試験完了までのカウント値に達すると、セレクタ２１３は、デバッグキューポインタ２４７にしたがって、リクエストキューのエントリを選択する。
【００８５】
なお、図７の例では、診断制御カウンタ２４３のカウント値がそのままリードポインタ２１２に入力されるが、診断制御カウンタ２４３のカウント値は所定の変換式で変換する回路を通して、リードポインタ２１２に入力されるようにしてもよい。所定の変換式とは、値のシフト（加減算）、整数による値の乗除算等である。また、図７の回路では、比較器２４１０と、基準値レジスタ２４１１が、リクエストキュー２１の外部に設けられている。例えば、比較器２４１０と、基準値レジスタ２４１１は、診断制御部２４Ｃに設けられる。ただし、リクエストキュー２１および診断制御部２４Ｃの構成が図７に限定される訳ではない。例えば、比較器２４１０と、基準値レジスタ２４１１がリクエストキュー２１に設けられてもよい。基準値レジスタ２４１１がリクエストキュー２１に設けられる場合、試験実行前に、制御部２４０Ｃが所定の伝送路を通じて基準値レジスタ２４１１に負荷試験のためのカウント値を設定するようにすればよい。
【００８６】
デバッグキューのエントリ数dqnが不足している場合には、ループ時に特定の処理を加
えればよい。例えば、アドレスについて全領域をアクセスするためには、もともとカウンタとして全領域のアドレスについて命令可能にした回路が必要となる。しかし、本回路の場合には、図６の構成において、ループ時に特定の値をキューに加算するようにすればよい。例えば、リードポインタ２１２あるいはデバッグキューポインタ２４７が０から最大値の間でリクエストキュー２１のエントリ計数する制御を想定する。このような制御において、リードポインタ２１２あるいはデバッグキューポインタ２４７が計数されるごとに、ポインタにしたがって読み出されるメモリ３へのアクセス要求のアクセスアドレスをメモリ３の特定のアドレス間隔だけシフトさせればよい。例えば、メモリ３の全アドレスがアクセスされるようにアドレスを加算する加算回路がメモリ制御装置２０のリクエストキュー２１内に設けられればよい。
【００８７】
また、メモリ試験としては、データパターンとして保持素子ごとに1の状態と0の状態を交互に持つチェッカーボードのパターンなどがある。このようなデータパターンも、上記リクエストキュー２１内にアドレスについてのインクリメント回路、あるいは加算回路を用意することで、容易に実装できる。また、アドレスパターンについても同様である。さらには、メモリ３そのものの実装方法次第では、試験のためのアクセス要求として、アドレススクランブルやデータスクランブル等が考えられる。リクエストキュー２１内にアドレスについてのインクリメント回路、あるいは加算回路を用意する手法であればデータパターンを任意に生成できるため、容易に様々なデータパターン、様々なアクセスパターンの試験を実装できる。例えば、試験データのビットが入れ替る試験の場合も、アドレスの変更によってデータパターンを入れ替えればよい。
【００８８】
コア・キャッシュ１１からのリクエストによっては、以上のような機能の実装は容易ではない。理由は、コア・キャッシュ１１自身は命令を持つわけではないため、命令の分だけバッファを用意することになるからである。コアの命令キューに様々なデータパターン、アドレスパターンのアクセスを格納することは、十分な領域があれば可能である。しか
し、近年のプロセッサは複数のコアを持つので、領域がさらに増加する。そのため、通常のコア・キャッシュ１１からメモリ３へのアクセス時に、アドレスのインクリメント回路、あるいは、加算回路を使わないのであれば、通常の演算処理時には不要となる。また、仮に、通常の演算処理時に利用するならば、それぞれのコアによるアドレスのインクリメント回路、あるいは、加算回路の試験が要求され、試験は複雑となる。すなわち、コア・キャッシュ１１からのリクエストによる、本実施形態の機能の実装は、効率が悪く、設計が複雑なものとなり得る。
【００８９】
図８、図９に、診断制御部２４Ｃの制御手順を示す。図８は、メモリ３の診断実行時のアクセス要求送出手順を例示するフローチャートである。図８の処理は、コントローラ４が、診断要求信号を診断要求受診部２４１（図３参照）に送出し、診断状態部２４２のモードレジスタをデバッグモードに設定することで開始する。
【００９０】
図８の処理では、まず、リクエストキュー２１の制御回路は、現在のリードポインタの位置から負荷試験のためのメモリ３へのアクセス要求をアクセス制御部２２に送出する。これによって負荷試験メモリアクセスが実行される（Ｓ１）。すなわち、診断制御部２４Ｃは、リードポインタ２１２の示す位置のリクエストキュー２１のエントリからメモリ３へのアクセス要求を発生させる。
【００９１】
次に、診断制御部２４Ｃは、診断制御ポインタ２４３をカウントアップする（Ｓ２）。次に、診断制御部２４Ｃは、ディスターブ試験のアクセスを行うか否かを判定する（Ｓ３）。例えば、診断制御カウンタ２４３の値が所定の値（負荷試験終了値）に達するまでの間、診断制御部２４Ｃは、負荷試験を継続し、ディスターブ試験を行わない（Ｓ３でＮＯの場合）。そこで、診断制御部２４Ｃは、リードポインタを次の位置に更新し（Ｓ４）、Ｓ１の処理に制御を戻す。Ｓ１−Ｓ４の処理は、リクエストキューを通じて所定個数の要求をメモリに引き渡すことの一例である。
【００９２】
一方、診断制御カウンタ２４３の値が所定の値（負荷試験終了値）に達した場合、診断制御部２４Ｃは、ディスターブ試験のためのメモリ３へのアクセス要求を起動する（Ｓ５）。すなわち、診断制御部２４Ｃは、デバッグキューポインタ２４７の示す位置のリクエストキュー２１のエントリからメモリ３へのアクセス要求を発生させる。
【００９３】
次に、診断制御部２４は、診断制御ポインタ２４３をカウントアップする（Ｓ６）。そして、診断制御部２４は、試験終了か否かを判定する（Ｓ７）。診断制御カウンタ２４３の値が所定の値（試験終了値）に達しない場合、診断制御部２４は、リードポインタを更新し（Ｓ８）、Ｓ５の処理に制御を戻す。ここで、試験終了値は、例えば、負荷試験終了値よりも大きな値である。Ｓ５−Ｓ８の処理は、所定個数の要求とは異なる要求をさらにメモリに引き渡すことの一例である。Ｓ１−Ｓ４の処理およびＳ５−Ｓ８の処理は、演算処理装置から記憶装置へのアクセス要求に代わって、記憶装置へのアクセス要求を記憶制御装置に送出させることの一例でもある。
【００９４】
一方、Ｓ８の判定でディスターブ試験終了の場合、診断制御部２４は、診断完了まで待つ（Ｓ９）。診断完了とは、例えば、次の図８の処理により、メモリ３からの受信データの確認完了をいう。
【００９５】
図８は、メモリ３へのリードアクセス時の受信処理を例示するフローチャートである。図８の処理では、診断制御部２４Ｃは、メモリ３へのリードアクセス時の読み出しデータを受信データ制御部２３から受信する（Ｓ２１）。次に、診断制御部２４は、受信データとコントローラ４から取得済みの期待値とを比較する。なお、コントローラ４から取得済みの期待値は、例えば、メモリ３のアドレスに対応する期待値保持部２４６（図３）のエ
ントリに格納されている。
【００９６】
そして、診断制御部２４は、すべてのメモリ３へのアクセス要求の応答が受信されたか否かを判定する（Ｓ２３）。そして、未受信の応答が残っている場合には、診断制御部２４Ｃは、Ｓ２１の処理に制御を戻す。Ｓ２１−Ｓ２３の処理は、記憶制御装置を介して記憶装置からの応答を取得することの一例である。
【００９７】
一方、Ｓ２３の判定ですべてのメモリ３へのアクセス要求の応答が受信された場合、診断制御部２４Ｃは、診断完了処理を実施する（Ｓ２４）。診断完了処理では、診断制御部２４Ｃは、例えば、スキャンシフトによって診断結果をコントローラ４に戻すとともに、モードレジスタをデバッグモードから通常モードに戻す。また、診断制御部２４Ｃは、コア・キャッシュ１１へのビジー信号をネゲートする。Ｓ２４の処理によって、情報処理装置は、コア・キャッシュ１１からのメモリ３へのアクセス要求がリクエストキュー２１に登録されるようになる。
【００９８】
以上述べたように、実施例４では、リードポインタ２１２の更新によってリクエストキュー２１のエントリからのアクセス要求の発生をループさせ、リクエストキュー２１の容量を低減して、負荷試験を実行できる。同様に、デバッグキューポインタ２４７を設けることによって、リクエストキュー２１のエントリを流用して、ディスターブ試験用のアクセス要求を発生させることができる。
【００９９】
さらに、実施例４の診断制御部２４Ｃは、リードポインタ２１２、あるいはデバッグキューポインタ２４７の計数を最小値（０）から最大値の範囲で複数回繰り返すことができる。その結果、実施例４の診断制御部２４Ｃは、リクエストキュー２１に設定された診断用データの数よりも多くのを用いて負荷試験、あるいは、ディスターブ試験を実行できる。
【０１００】
実施例４の構成は、コア・キャッシュ１１から独立して診断制御部２４Ｃがリクエストキュー２１にアクセスし、負荷試験用およびディスターブ試験用のメモリ３へのアクセス要求を発生する点は、実施例１から３と同様である。したがって、実施例４の診断制御部２４Ｃは、実施例１から３と同様に、複数のコアの搭載、キャッシュの多様化、複数のプロセッサ間のインターコネクトの機能の多様化等により、プロセッサ、あるいはキャッシュの挙動が複雑化したとしても、プロセッサ、あるいはキャッシュの動作の影響を低減して、ディスターブ試験や負荷試験等を実行する回路を情報処理装置内に実装できる。
【０１０１】
さらに、実施例４では、診断制御部２４Ｃは、リードポインタ２１２を制御することにより、実施例１から３よりも簡易な構成で、メモリ３の負荷試験を実行できる。また、実施例４では、診断制御部２４Ｃは、診断制御カウンタ２４３で負荷試験に相当するメモリ３へのアクセス要求の送出回数を計数後、セレクタ２１３によって、デバッグキューポインタ２４７で計数したカウント値でリクエストキュー２１のエントリを選択する。このような構成と処理によって、診断制御部２４Ｃは、リクエストキュー２１のエントリを用いてディスターブ試験を実行できる。
【０１０２】
［その他の変形例］
上記実施例１から４では、診断制御部２４、２４Ａ、２４Ｂ、２４Ｃはいずれもメモリ制御２０内に設けられた。しかし、本情報処理装置の構成は、実施例１から４からの構成に限定される訳ではない。例えば、診断制御部２４、２４Ａ、２４Ｂ、２４Ｃをメモリ制御装置２０の外部に設けてもよい。診断制御部２４、２４Ａ、２４Ｂ、２４Ｃをメモリ制御装置２０の外部に設ける場合には、診断制御部２４、２４Ａ、２４Ｂ、２４Ｃから、リクエストキュー２１にアクセスする伝送路を診断制御部２４、２４Ａ、２４Ｂ、２４Ｃと
リクエストキュー２１の間に形成すればよい。例えば、実施例１の図２において、セレクタ２５、２６への伝送路、および診断用リクエスト制御信号の伝送路が診断制御部２４からリクエストキュー２１に形成できればよい。また、例えば、実施例４の図７において、診断制御カウンタ２４３、デバッグキューポインタ２４７、比較器２４１０の出力信号の伝送路が、診断制御部２４Ｃからリクエストキュー２１に形成されればよい。
【符号の説明】
【０１０３】
１    プロセッサ
３    メモリ
４    コントローラ
１１    コア・キャッシュ
２０    メモリ制御装置
２１    リクエストキュー
２２    アクセス制御部
２３    受信制御部
２４、２４Ａ、２４Ｂ、２４Ｃ  診断制御部
２１１    ライトポインタ
２１２    リードポインタ
２４０、２４０Ａ、２４０Ｂ、２４０Ｃ  制御部
２４１    診断要求受信部
２４２    診断状態部
２４３    診断制御カウンタ
２４４    診断制御命令レジスタ
２４５    診断判定部
２４６    期待値保持部
２４７    デバッグキューポインタ
２４８    データ制御系
２４１０    比較器
２４１１    基準値レジスタ
【図１】
0006372297.tif 000002
【図２】
0006372297.tif 000003
【図３】
0006372297.tif 000004
【図４】
0006372297.tif 000005
【図５】
0006372297.tif 000006
【図６】
0006372297.tif 000007
【図７】
0006372297.tif 000008
【図８】
0006372297.tif 000009
【図９】
0006372297.tif 000010