(57)【要約】      （修正有）【課題】ＬＳＩ等の機能回路が内蔵するメモリの容量が増加した場合でも、プロセッサ間通信の引数を増加させることなく、メモリ内のデータを通常レジスタの読み出しと同等の速度で読み出しことを可能にする。【解決手段】第１のプロセッサ（ＤＧＰ５０１）と、この第１のプロセッサに接続されるメモリ内蔵の機能回路（ＬＳＩ５０２）からデータを読み出す第２のプロセッサ（ＳＶＰ５００）とからなるデータ転送装置であって、第２のプロセッサから発行されるライト指令に基づきメモリの選択を行い、続いて発行されるリード指令に基づきアドレスを確定してメモリのデータを読み出し、第２のプロセッサへ転送する制御手段（データリード回路）、を有する。【選択図】図５
2011086162.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサと、この第１のプロセッサに接続されるメモリ内蔵の機能回路からデータを読み出す第２のプロセッサとからなるデータ転送装置であって、
前記第２のプロセッサから発行されるライト指令に基づき前記メモリの選択を行い、続いて発行されるリード指令に基づきアドレスを確定して前記メモリのデータを読み出し、前記第２のプロセッサへ転送する制御手段、
を備えたことを特徴とするデータ転送装置。 
【請求項２】
前記制御手段は、 
前記ライト指令を受け取ると、前記メモリの選択回路にライトストローブを供給してライト指令が示すアドレス位置にデータを書き込み、
続いて読み出し指令を受け取ると、 
前記ライト指令で第１のタイプのデータ書き込みが指示されていた場合、前記メモリの選択回路にライトストローブを供給してアドレスの書き込みを行ってからリードストローブを供給して第１のタイプに基づくデータリードを行ない、リード指令が示すサイズ分のリードテータが揃ったタイミングで前記第２のプロセッサへ転送し、
前記ライト指令で第２のタイプのデータ書き込みが指示されていた場合、前記メモリにリードストローブを供給して第２のタイプに基づくデータリードを行い、前記読み出し指令が示すサイズ分のリードデータが揃ったタイミングで前記第２のプロセッサへ転送することを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記制御手段は、 
前記ライト指令を受け取ると、前記メモリの選択回路にライトストローブを供給してライト指令が示すアドレス位置にデータを書き込み、
続いて読み出し指令を受け取ると、 
前記ライト指令で第１のタイプのデータ書き込みが指示されていた場合、前記メモリに供給されるリードストローブが初回か否かを判定し、初回であれば前記メモリの選択回路にライトストローブを供給してアドレスの書き込みを行い、初回以降であればリードストローブを供給して前記メモリから第１のタイプに基づくデータリードを行ない、リード指令が示すサイズ分のテータが揃ったタイミングで前記第２のプロセッサへ転送し、
前記ライト指令で第２のタイプのデータ書き込みが指示されていた場合、前記メモリにリードストローブを供給して第２のタイプに基づくデータリードを行い、前記読み出し指令が示すサイズ分のリードデータが揃ったタイミングで前記第２のプロセッサへ転送することを特徴とする請求項１記載のデータ転送装置。
【請求項４】
第１のプロセッサと、この第１のプロセッサに接続されるメモリ内蔵の機能回路からデータを読み出す第２のプロセッサとからなるプロセッサ間通信によるデータ転送方法であって、
前記第２のプロセッサから発行されるライト指令に基づき前記メモリの選択を行う第１のステップと、
続いて発行されるリート指令に基づきアドレスを確定して前記メモリのデータを読み出し、前記第２のブロセッサへ転送する第２のステップと、
を有することを特徴とするデータ転送方法。 
【請求項５】
前記第１のステップは、 
前記ライト指令を受け取ると、前記メモリの選択回路にライトストローブを供給してライト指令が示すアドレス位置にデータを書き込むサブステップを有し、
前記第２のステップは、 
続いて読み出し指令を受け取ると、前記ライト指令で第１のタイプのデータ書き込みが指示されていた場合、前記メモリの選択回路にライトストローブを供給してアドレスの書き込みを行ってからリードストローブを供給して前記メモリから第１のタイプに基づくデータリードを行ない、リード指令が示すサイズ分のリードテータが揃ったタイミングで前記第２のプロセッサへ転送し、
前記ライト指令で第２のタイプのデータ書き込みが指示されていた場合、前記メモリにリードストローブを供給して第２のタイプに基づくデータリードを行い、前記読み出し指令が示すサイズ分のリードデータが揃ったタイミングで前記第２のプロセッサへ転送するサブステップを有することを特徴とする請求項４記載のデータ転送方法。
【請求項６】
前記第１のステップは、 
前記ライト指令を受け取ると、前記メモリにライトストローブを供給してライト指令が示すアドレス位置にデータを書き込むサブステップを有し、
前記第２のステップは、 
続いて読み出し指令を受け取ると、前記ライト指令で第１のタイプのデータ書き込みが指示されていた場合、前記メモリに供給されるリードストローブが初回か否かを判定し、初回であれば前記メモリの選択回路にライトストローブを供給してアドレスの書き込みを行い、初回以降であればリードストローブを供給して前記メモリから第１のタイプに基づくデータリードを行ない、リード指令が示すサイズ分のテータが揃ったタイミングで前記第２のプロセッサへ転送し、
前記ライト指令で第２のタイプのデータ書き込みが指示されていた場合、前記メモリにリードストローブを供給して第２のタイプに基づくデータリードを行い、前記読み出し指令が示すサイズ分のリードデータが揃ったタイミングで前記第２のプロセッサへ転送するサブステップを有することを特徴とする請求項４記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置および方法に関し、特に、ＳＲＡＭを内蔵するＬＳＩが接続された第１のプロセッサから第２のプロセッサがデータを参照する用途に用いて好適な、データ転送装置および方法に関する。
【背景技術】
【０００２】
半導体技術の進歩に伴いメモリの大容量化および高速化が進む中、そのメモリを使用する側にあっても、例えば、特許文献１に示されるように、アドレスを用いてデータを選択する方法、また、特許文献２に示されるように、アクセスが競合したときにリード動作を待たせる方法といった、高集積化や高速化を目的とした提案が多数なされている。
【０００３】
一方、高速アクセス可能なＦＩＦＯ（First-In
First-Out）バッファやＳＲＡＭ（Static Random Access Memory）を内蔵したＬＳＩ（Large Scale
Integration）が多数、市場に出現するようになり、例えば、診断システムにおいて、診断プロセッサ（以下、ＤＧＰという）にそのＬＳＩが接続され、ＤＧＰに接続されたサービスプロセッサ（以下、ＳＶＰという）がプロセッサ間通信よりＬＳＩ内部のデータ（ＳＡＭデータ）を参照して障害監視を行う等のアプリケーションがある。
【０００４】
上述した診断システムにおいて、ＳＶＰからＤＧＰにアクセスコマンドを発行してＤＧＰに接続されるＬＳＩ内部のデータ（ＳＲＡＭデータ）を読み出す仕組みについて、図５、図６、図７を参照して説明する。図５は、上述した診断システムの構成を示すブロック図、図６は、ＬＳＩ内のデータ読み出し動作を示すフローチャート、図７は、ＬＳＩにおけるＳＲＡＭのデータ読み出し回路の構成例を示す図である。
【０００５】
図５を参照すると、ＳＶＰ５００から信号ライン５１０を介してＤＧＰ５０１に対してライト指令を出力すると、ＤＧＰ５０１は信号ライン５１１を介してＬＳＩ５０２にライト指令を出力する。ＬＳＩ５０２は、ライト指令を取り込むとＬＳＩ５０２内の通常レジスタに書き込みを実施する。ＤＧＰ５０１は、ＬＳＩ５０２が内蔵するＳＲＡＭ５０３〜５０５の内部データを読み出したい場合は、この書き込み指令でＳＲＡＭ５０３〜５０５のアドレスとＳＲＡＭを読み出すことを示すフラグを点灯させておく。
【０００６】
次に、ＳＶＰ５００から信号ライン５１０を介してＤＧＰ５０１に対してリード指令を出力すると、ＤＧＰ５０１は、信号ライン５１１を介してＬＳＩ５０２にリード指令を出力する。ＬＳＩ５０２は、ＳＲＡＭ５０３〜５０５のデータを、信号ライン５１２を介してＤＧＰ５０１に報告すると、ＤＧＰ５０１は、信号ライン５１３を介してＳＶＰ５００にＬＳＩ５０２内のＳＲＡＭ５０３〜５０５の１ワード分のリードデータを引き渡す。この一連の動作を複数回実施することで、ＬＳＩ５０２内のＳＲＡＭ５０３〜５０５の全てのデータを読み出し、ＤＧＰ５０１経由でＳＶＰ５００へ転送することができる。
【０００７】
図６を参照すると、まず、ＳＶＰ５００が発行するライト指令をＤＧＰ５０１が受け取る（ステップＳ３００、Ｓ３０１）。続いて、ＤＧＰ５０１からＬＳＩ５０２にライト指令が報告されると、ＬＳＩ５０２は、ライトストローブを生成し（ステップＳ３０２）、ライト指令が示すアドレスの該当場所にライトデータの値を書き込む（ステップＳ３０３“Ｙｅｓ”、Ｓ３０４）。次に、ＳＶＰ５００は、リード指令をＤＧＰ５０１に報告し、ＤＧＰ５０１からＬＳＩ５０２にリード指令が報告されると（ステップＳ３０３“Ｎｏ”）、ＬＳＩ５０２はリードストローブを生成し、リード指令で指定されるアドレスが示す場所のデータ読出しを行う（ステップＳ３０５）。
【０００８】
上述したリードデータの読出しを行うときに、先に行ったライト指令でＴＹＰＥ２フラグが”１”に設定されていた場合は、ＴＹＰＥ２のデータ読出し（ＳＲＡＭデータ読み出し）を行い、ＴＹＰＥ２フラグが”０”であった場合はＴＹＰＥ１のデータを読み出し（通常レジスタ読み出し）、ＤＧＰ５０１にリードデータの転送を行う（ステップＳ３０６）。一方、ＴＹＰＥ１のデータ読出しであった場合は、複数ワードの読出しの可能性があるため、サイズ判定を行い（ステップＳ３０７）、最終リードでなかった場合は（ステップＳ３０７“Ｎｏ”）、ステップＳ３０２のストローブ生成処理に戻る。最終リードであった場合は（ステップＳ３０７“Ｙｅｓ”）、揃ったリードデータを要求元のＳＶＰ５００に転送する（ステップＳ３０８）。また、ＴＹＰＳ２のデータ読出しの場合は、ライト指令でアドレスを確定させる必要があるために１ワードずつの読出ししか実施できず、このため、ＳＲＡＭ５０３〜５０５内のデータを全て読み出すためには、この一連の動作を必要回数実施する必要がある。
【０００９】
図７を参照してより詳細に説明すると、ＬＳＩ５０２のデータ読み出し回路８００は、リードフラグ７００と、リードストローブ生成カウンタ７０１と、リードフラグリセット比較器７０２と、リードストローブ生成タイミング用レジスタ７０３、７０４と、アドレス生成カウンタ７０５と、ＴＹＰＥ２レジスタ７０６〜７０９と、ＴＹＰＥ２アクセス制御部７１０と、リードデータレジスタ７１１と、により構成される。ゲート群等、他の構成は省略する。
【００１０】
図７によれば、まず、ＳＶＰ５００からＤＧＰ５０１に対してライト指令が発行され、アドレス７２０、ライトストローブ７２２、ライトデータ７２３がＤＧＰ５０１からＬＳＩ５０２に引き渡される。これを受けてＬＳＩ５０２のデータ読み出し回路８００は、アドレス７２０がＴＹＰＥ２レジスタに対応する値であった場合に、ＴＹＰＥ２レジスタ７０６〜７０９内のＳＲＡＭ選択７０６、ＳＲＡＭアドレス７０７、バイトセレクト７０８、コマンド７０９に対してライトデータ７２３の値を書き込む。ＴＹＰＥ２アクセス制御部７１０は、コマンド７０９に書き込まれた値により、ＳＲＡＭ５０３〜５０５のイネーブルをコントロールし、ＳＲＡＭ５０２〜５０５を読出し可能な状態に設定する。
【００１１】
次に、ＳＶＰ５００からＤＧＰ５０１に対してリード指令が発行された場合、そのことがＤＧＰ５０１からＬＳＩ４０２にリードストローブ７２１によって報告される。これをうけてリードデータ読み出し回路８００は、リードフラグ７００をＯＮさせ、リードストローブ生成カウンタ７０１の値を＋１更新する。リードストローブを発行させたい間隔によって位置は異なるが、リードストローブ生成カウンタ７０１の上位ビットが”０→１”もしくは“１→０”と変化するのを、リードストローブ生成タイミング用レジスタ７０３、７０４を用いて検出し、リードストローブ７２５を発行する。リードストローブ７２５によりアドレス生成カウンタ７０５を更新し、アドレスの下位ビット（バイト位置）を生成し、信号７２６（アドレス７２０の下位ビットとする）として出力する。
【００１２】
上述したデータ読み出し回路８００では、合計８回（１ワード分）のリードストローブ生成を行ったことをリードフラグリセット用比較器７０２が検出したら、信号７２４によってリードフラグ７００をリセットしてリードストローブ７２５の生成処理が終了する。コマンド７０９内に設定されるＴＹＰＥ２フラグ（Ｔｙｐｅ２＿２）がＯＮしていた場合は、リードストローブ７２５によって、ＳＲＡＭ選択７０６がセレクトしたリードデータをリードレジスタ７１３に書き込む。ここで書き込まれたリードデータは、ＤＧＰ５０１に報告される。このＳＲＡＭ５０３〜５０５からの読出し動作を８回（１ワード分）実行することで、ＤＧＰ５０１には１ワード（８バイト）分のリードデータが揃う。データ読み出し回路８００は、上述した一連のライト指令とリード指令の動作を複数回実施することで、ＳＲＡＭ５０３〜５０５内のデータを読み出し、ＤＧＰ５０１経由で要求元のＳＶＰ５００へ転送していた。
【００１３】
一方、ＳＶＰ５００とＤＧＰ５０１のプロセッサ間通信の引数を増加させることで、ＴＹＰＥ１とＴＹＰＥ２の切り分けが可能になり、ＳＶＰ５００から複数ワードのリード指令を発行することができる。しかしながら、ＬＳＩ５０２内部の通常レジスタやＳＲＡＭの容量が増加する毎にプロセッサ間通信の引数を増やす必要がある。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００３−３１７４０１号公報
【特許文献２】特開２００３−１５７６７６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
上述したように、ＳＶＰ５００からＤＧＰ５０１にアクセスコマンドを発行してＬＳＩ５０２内部のデータを読み出す場合に、プロセッサ間通信でアドレス等の引数を増加させられない場合、これまで、ＳＶＰ５００からＤＧＰ５０１に対し、通常レジスタ群に書き込み指令（ＴＹＰＥ１ライト）を渡し、ＴＹＰＥ１とＴＹＰＥ２の切り分けのためにＴＹＰＥ２のフラグをＯＮさせ、ＳＲＡＭ５０３〜５０５のアドレスを確定させてから、ＳＶＰ５００からＤＧＰ５０１に対してリード指令を発行してＴＹＰＥ２リードを行うことにより、ＬＳＩ５０２内部のデータを読み出していた。または、プロセッサ間通信の引数にＴＹＰＥ１かＴＹＰＥ２のフラグを設け、このフラグを制御することにより、レジスタかメモリかいずれのデータを読み出したいかの指令を発行することによって、ＬＳＩ内部のデータを読み出していた。
【００１６】
このように、ＴＹＰＥ２リードを行うにあたり、前者のＳＲＡＭ５０３〜５０５のアドレスを確定させてから、リードを行う動作を繰り返し行う方法によれば、ＴＹＰＥ１リードと同等の時間で読出しを行うことができず、ＴＹＰＥ２リードを行うと１回のライトを指令／リード指令で１ワード（リード指令１回で１ワードのアクセスとした場合）のデータしか採取することができないため、リードデータを取得するために無視できないほど大きな時間を要していた。また、近年、ＬＳＩ５０２に内蔵するレジスタやＳＲＡＭの容量が増加している中で、ＬＳＩの全てのデータを読み出すためには、プロセッサ間通信の引数を増加させる必要があり、この場合、ＬＳＩの外にあるプロセッサ（ＳＶＰ５００）との接続のための仕様の変更も伴うという課題がある。
【００１７】
（発明の目的） 
本発明の目的は、ＬＳＩ等の機能回路が内蔵するメモリ（通常レジスタやＳＲＡＭ）の容量が増加した場合でも、プロセッサ間通信の引数を増加させることなく、かつ、メモリ内のデータを通常レジスタの読み出しと同等の速度で読み出し可能な、データ転送装置および方法を提供することにある。
【課題を解決するための手段】
【００１８】
本発明の第１のデータ転送装置は、第１のプロセッサと、この第１のプロセッサに接続されるメモリ内蔵の機能回路からデータを読み出す第２のプロセッサとからなるデータ転送装置であって、第２のプロセッサから発行されるライト指令に基づきメモリの選択を行い、続いて発行されるリード指令に基づきアドレスを確定してメモリのデータを読み出し、第２のプロセッサへ転送する制御手段、を備えたことを特徴とする。
【００１９】
本発明の第１のデータ転送方法は、第１のプロセッサと、この第１のプロセッサに接続されるメモリ内蔵の機能回路からデータを読み出す第２のプロセッサとからなるプロセッサ間通信によるデータ転送方法であって、第２のプロセッサから発行される書き込み指令に基づきメモリの選択を行う第１のステップと、続いて発行される読み出し指令に基づきアドレスを確定してメモリのデータを読み出し、第２のブロセッサへ転送する第２のステップと、を有することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、ＬＳＩ等の機能回路が内蔵するメモリ（通常レジスタやＳＲＡＭ）の容量が増加した場合でも、プロセッサ間通信の引数を増加させることなく、かつ、メモリ内のデータを通常レジスタの読み出しと同等の速度で読み出し可能な、データ転送装置および方法を提供することができる。
【００２１】
その理由は、制御手段が、第２のプロセッサからのライト指令に対してメモリに対するライトを行わずにメモリ選択を行い、リード指令に対してメモリのアドレスを確定してデータの読み出しを行うことで、アドレス更新時にライト指令の発行が不要になり、複数ワードのリードが可能になるからである。
【図面の簡単な説明】
【００２２】
【図１】本発明の第１の実施の形態によるデータ転送装置の動作を示すフローチャートである。
【図２】本発明の第１の実施の形態によるデータ転送装置の回路構成を示す図である。
【図３】本発明の第２の実施の形態によるデータ転送装置の動作を示すフローチャートである。
【図４】本発明の第２の実施の形態によるデータ転送装置の回路構成を示す図である。
【図５】プロセッサ間通信により障害監視を行う診断システムの構成例を示す図である。
【図６】これまでのデータ転送装置の動作を示すフローチャートである。
【図７】これまでのデータ転送装置の回路構成を示す図である。
【発明を実施するための形態】
【００２３】
次に、本発明の実施の形態について図面を参照して詳細に説明する。 
【００２４】
（第１の実施の形態の構成） 
図１は、本発明の第１の実施の形態によるデータ転送装置の動作を示すフローチャートである。以下に説明する第１の実施形態では、図５に示した、ＳＶＰ５００と、ＳＲＡＭ内蔵のＬＳＩ５０２が接続されたＤＧＰ５０１とのプロセッサ間通信による診断システムの構成を利用して説明する。
【００２５】
（第１の実施の形態の動作） 
図１を参照すると、まず、ＳＶＰ５００が発行するライト指令がＤＧＰ５０１に報告される（ステップＳ１００、Ｓ１０１）。ＤＧＰ５０１からＬＳＩ５０２にライト指令が報告されると、ＬＳＩ５０２は、ライトストローブを生成し（ステップＳ１０２）、ライト指令が示すアドレス位置にライトデータの値を書き込む（ステップＳ１０３“Ｙｅｓ”、Ｓ１０４）。
【００２６】
次に、ＳＶＰ５００はリード指令をＤＧＰ５０１に発行し、ＤＧＰ５０１からＬＳＩ５０２（データ読み出し回路１００）にそのリード指令が報告されると、ＬＳＩ５０２は、リードストローブを生成し、ＳＲＡＭ５０３〜５０５にリード指令を発行する。ここで、ライト指令でＴＹＰＥ２フラグがＯＮ設定されていた場合（ステップＳ１０５“Ｙｅｓ”）、データ読み出し回路１００は、ライトストローブを供給してＴＹＰＥ２レジスタ７０７〜７０８に対するアドレスの書き込みを行ってから（ステップＳ１０６）、リードストローブを供給してＳＲＡＭ５０３〜５０５のＴＹＰＥ２のデータ読出しを行ない（ステップＳ１０７）、ＤＧＰ５０１にリードデータの転送を行う（ステップＳ１０８）。
【００２７】
一方、ＴＹＰＥ２フラグがＯＦＦになっていた場合（ステップＳ１０５“Ｎｏ”）、ＬＳＩ５０２は、リードデータレジスタ７１１にリードストローブを供給することで、リード指令が示すＴＹＰＥ１のアドレス位置にあるデータ読み出しを実施し（ステップＳ１０７）、ＤＧＰ５０１にリードデータの転送を行う（ステップＳ１０８）。なお、ＴＹＰＥ１、ＴＹＰＥ２のいずれの読出しであっても、複数ワードの読出しの可能性があるため、データ読み出し回路１００は、サイズ判定によりＳＶＰ５００からのリード指令のワード数との一致を確認し（ステップＳ１０９）、最終ワードのリードが終わっていなかった場合は（ステップＳ１０９“Ｎｏ”）、ステップＳ１０２のストローブ生成処理へ戻る。ＳＶＰ５００からのリード指令で与えられたワード数と一致した場合（ステップＳ１０９“Ｙｅｓ”）、データ読み出し回路１００は、リードデータをＳＶＰ５００に転送する（ステップＳ１１０）。
【００２８】
このように、本実施の形態によるデータ転送装置において、ＴＹＰＥ２リードはＴＹＰＥ１リードに比べてライト指令が１回追加されるが、ＳＲＡＭ５０３〜５０５に対するアドレス指定をリード指令で行うため、ＴＹＰＥ１リードと同等の時間でＴＹＰＥ２の複数ワード読出しが可能になる。
【００２９】
以下、図２を参照して本発明の第１の実施の形態によるデータ転送装置におけるデータ読み出し回路１００の構成動作について詳細な説明を行う。以下に説明する第１の実施の形態においても、基本的には図７に示したデータ読み出し回路８００の回路構成を利用して説明する。図２において、ＴＹＰＥ２リードフラグ７３０と、リードストローブ生成用カウンタ７３１とが付加されていること以外は、図７に示す回路構成と同様である。ここでは、データ読み出し回路１００は、第２のプロセッサ（ＳＶＰ５００）から発行されるライト指令に基づきメモリ（ＳＲＡＭ５０３〜５０５）の選択を行い、続いて発行されるリード指令に基づきアドレスを確定してメモリのデータを読み出し、第２のプロセッサへ転送する制御手段として動作する。なお、以下の説明では、ＳＶＰ５００からＤＧＰ５０１への指令は１ワード単位で行うが、ＬＳＩ５０２内部では配線数等の削減を行うこととして、１バイト×８回（＝１ワード）の制御へ変換し、ＤＧＰ５０１からＳＶＰ５００へのデータへはワード単位に逆変換して転送するものとして説明する。
【００３０】
図２を参照すると、ＳＶＰ５００からＤＧＰ５０１に対してライト指令が発行された場合は、アドレス７２０とライトストローブ７２２とライトデータ７２３がＤＧＰ５０１からＬＳＩ５０２に発行される。アドレス７２０がＴＹＰＥ２レジスタ（ＳＲＡＭアドレス７０７）に対応する値であった場合は、ＴＹＰＥ２レジスタ７０６〜７０９内のＳＲＡＭ選択７０６、コマンド７０９に対してライトデータ７２３の値を書き込む。そして、コマンド７０９に書き込まれた値によってＴＹＰＥ２アクセス制御部７１０は、ＳＲＡＭ５０３〜５０５のイネーブルをコントロールし、ＳＲＡＭ５０３〜５０５を読出し可能な状態に設定する。
【００３１】
次に、ＳＶＰ５００からＤＧＰ５０１に対してリード指令が発行された場合は、リードストローブ７２１によって報告され、リードフラグ７００をＯＮさせてリードストローブ生成カウンタ７０１を＋１更新する。リードストローブを発行させたい間隔によって位置は異なるが、カウンタの上位ビットが”０→１”もしくは”１→０”と変化するのを、リードストローブ生成タイミング用カウンタ７０３、７０４を用いて検出し、アドレスの下位ビット（バイト位置）を生成して信号７２６（アドレス７２０の下位ビットとする）として発行する。合計８回（１ワード分）のリードストローブ生成を行ったことをリードフラグリセット用比較器７０２が検出したら、信号７２４によってリードフラグ７００をリセットしてリードストローブ７２５の生成処理が終了する。
【００３２】
リードストローブ７２５を受け取って、コマンド７０９内にあるＴＹＰＥ２＿１フラグが点灯していた場合、データ読み出し回路１００は、リードストローブ７２５によってＴＹＰＥ２レジスタであるＳＲＡＭアドレス７０７、バイトセレクト７０８にアドレス７２６の値を書き込む。また、リードストローブ７２５によりＴＹＰＥ２リードフラグ７３０をＯＮさせたリードストローブ用カウンタ７３１を＋１更新させてから一定時間が経過したら、ＴＹＰＥ２リードフラグ７３０をＯＦＦさせると同時に、ＳＲＡＭ選択７０６とＳＲＡＭアドレス７０７の上位ビットを用いてＳＲＡＭ選択制御部７１２がセレクトしたリードデータをリードデータレジスタ７１１に書き込む。ここで書き込まれたリードデータはＤＧＰ５０１に報告される。このＳＲＡＭ５０３〜５０５からの読出し動作を８回（１ワード分）実行することで、ＤＧＰ５０１には１ワード（８バイト）分のリードデータが揃う。ＳＶＰ５００からＤＧＰ６０１に対して複数ワードの読出し指令であった場合は、このリード動作を指令回数分繰り返す。
【００３３】
（第１の実施の形態による効果） 
本実施の形態によるデータ転送装置では、ＳＶＰ５００からＳＲＡＭ選択、ＴＹＰＥ２指令のライトを実施したあと、ライト指令ではなくリード指令によってＳＲＡＭ５０３〜５０５に対するアドレスの確定を行ってからデータをリードすることで、アドレス更新時にライト指令の発行が不要になるため、複数ワードのリードが可能となり、必要最小限の動作でデータを読み出しているＴＹＰＥ１と同等の時間でＴＹＰＥ２リードを実行することが可能となる。このため、データ読み出し回路１００は、ＳＶＰ５００からＤＧＰ５０１経由でライト指令を受け取ると、ライトストローブを供給してライト指令が示すアドレス位置にデータを書き込み、続いて読み出し指令を受け取ると、先のライト指令でＴＹＰＥ２が指示されていた場合、ＴＹＰＥ２レジスタ７０７〜７０８にライトストローブを供給してアドレスの書き込みを行ってからリードストローブを供給してＳＲＡＭ５０３〜５０５からＴＹＰＥ２リードを行ない、リード指令が示すサズ分のテータが揃ったタイミングで要求元のＳＶＰ５００へ転送する。
【００３４】
したがって、本実施の形態によるデータ転送装置では、ＳＶＰ５００とＤＧＰ５０１によるプロセッサ間通信の引数を増加させることなく、通常レジスタと同等の速度でＳＲＡＭ５０３〜５０５のデータ読出しを行うことが可能となり、したがって、障害時や検査等でＳＲＡＭ５０３〜５０５内のデータを高速読み出しすることで解析データの退避や障害処理の高速化がはかれる。
【００３５】
（第２の実施の形態の構成） 
図３は、本発明の第２の実施の形態によるデータ転送装置の動作を示すフローチャートである。以下に説明する第２の実施形態においても、図５に示したＳＶＰ５００と、ＳＲＡＭ内蔵のＬＳＩ５０２が接続されたＤＧＰ５０１とのプロセッサ間通信による診断システムの構成を利用して説明する。
【００３６】
（第２の実施の形態の動作） 
図３を参照すると、まず、ＳＶＰ５００が発行するライト指令がＤＧＰ５０１に報告され（ステップＳ２００、Ｓ２０１）、ＤＧＰ５０１からＬＳＩ５０２にライト指令が報告される。これをうけたＬＳＩ５０２は、ライトストローブを生成し（ステップＳ２０２）、ライト指令が示すアドレスの該当箇所にライトデータの値を書き込む（ステップＳ２０３“Ｙｅｓ”、Ｓ２０４）。
【００３７】
次に、ＳＶＰ５００は、リード指令を発行する。そして、ＤＧＰ５０１経由でＬＳＩ５０２にリード指令が報告されると、ＬＳＩ５０２は、リードストローブを生成してＳＲＡＭ５０３〜５０５にリード指令を発行する。このとき、ライト指令でＴＹＰＥ２フラグがＯＮ設定されていた場合は（ステップＳ２０５“Ｙｅｓ”）、データ読み出し回路２００にリードストローブが送られるが、そのリードストローブが初回のリードストローブと判定された場合は（ステップＳ２０６“Ｙｅｓ”）、ライトストローブを供給し、ＴＹＰＥ２レジスタ７０７〜７０８に対するアドレスの書き込みを行う（ステップＳ２０７）。
【００３８】
データ読み出し回路２００は、初回リードストローブ以降、リードストローブが送られて来た場合は（ステップＳ２０６“Ｎｏ”）、そのリードストローブによりＴＹＰＥ２のデータ読み出しを行なう（ステップＳ２０８）。また、ＴＹＰＥ２フラグがＯＦＦされていた場合は（ステップＳ２０５“Ｎｏ”）、リードデータレジスタ７１１にリードストローブを供給し、ＴＹＰＥ１によるリードデータをＤＧＰ５０１にデータ転送して引き渡す（ステップＳ２０８、Ｓ２０９）。
【００３９】
なお、ＴＹＰＥ１／ＴＹＰＥ２のいずれの読出しであっても、複数ワードの読出しの可能性があるため、データ読み出し回路２００はサイズ判定によりＳＶＰ５００からのリード指令のワード数との一致を確認し（ステップＳ２１０）、最終ワードのリードが終わっていなかった場合は（ステップＳ２１０“Ｎｏ”）、ステップＳ２０２のストローブ生成処理へ戻る。ＳＶＰ５００からのリード指令で与えられたワード数と一致した場合は（ステップＳ２１０“Ｙｅｓ”）、データ読み出し回路２００は、リードデータをＳＶＰ５００に転送する（ステップＳ２１１）。このように、本実施の形態によるデータ転送装置では、ＴＹＰＥ１リードに比べライト指令が１回追加されるが、ＳＲＡＭ５０３〜５０５に対するアドレス指定をリード指令で行うため、ＴＹＰＥ１リードと同等の時間でＴＹＰＥ２の複数ワードの読出しが可能となる。
【００４０】
以下、図４を参照して本発明の第２の実施の形態によるデータ転送装置におけるデータ読み出し回路２００の構成動作について詳細な説明を行う。以下に説明する第２の実施の形態においても、基本的には図７に示したデータ読み出し回路８００の回路構成を利用するものとして説明する。図４において、ライトストローブ２生成用比較器７４０が付加されていること以外は、図７に示す回路構成と同様である。ここでは、データ読み出し回路２００は、第２のプロセッサ（ＳＶＰ５００）から発行されるライト指令に基づきメモリ（ＳＲＡＭ５０３〜５０５）の選択を行い、続いて発行されるリード指令に基づきアドレスを確定してメモリのデータを読み出し、第２のプロセッサへ転送する制御手段として動作する。なお、以下の説明では、第１の実施の形態同様、ＳＶＰ５００からＤＧＰ５０１への指令は１ワード単位で行うが、ＬＳＩ５０２内部は配線数等の削減を行うこととして、１バイト×８回（＝１ワード）の制御へ変換し、ＤＧＰ５０１からＳＶＰ５００へのデータへはワード単位に逆変換して転送するものとして説明する。
【００４１】
図４を参照すると、ＳＶＰ５００からＤＧＰ５０１に対してライト指令が発行された場合は、アドレス７２０とライトストローブ７２２とライトデータ７２３とがＤＧＰ５０１からＬＳＩ５０２に出力される。データ読み出し回路２００はこれを受け、アドレス７２０がＴＹＰＥ２レジスタに対応する値であった場合は、ＴＹＰＥ２レジスタ７０６〜７０９内のＳＲＡＭ選択７０６とコマンド７０９に対してライトデータ７２３の値を書き込む。
【００４２】
ＴＹＰＥ２アクセス制御部７１０は、コマンド７０９に書き込まれた値によってＳＲＡＭ５０３〜５０５のイネーブルをコントロールし、ＳＲＡＭ５０３〜５０５を読出し可能な状態に設定する。次に、ＳＶＰ５００からＤＧＰ５０１に対してリード指令が発行された場合は、それがリードストローブ７２４によって報告され、リードフラグ７００をＯＮさせてリードストローブ生成カウンタ７０１を＋１更新する。リードストローブを発行させたい間隔によりその位置は異なるが、リードストローブ生成カウンタ７０１の上位ビットが”０→１”もしくは“１→０”と変化するのを、リードストローブ生成タイミング用レジスタ７０３、７０４を用いて検出してストローブを発行する。但し、ストローブの発行は、８回ではなく９回であり、初回時、リードストローブではなくライトストローブ２（７２５）を発行し、２回目以降、リードストローブ７２６を発行する。なお、初回か否かは、リードストローブ生成カウンタ７０１の値を参照してライトストローブ２生成用比較器７４０が判定する。
【００４３】
続いて、データ読み出し回路２００は、リードストローブ７２６によりアドレス生成カウンタ７０５の値を更新して、アドレスの下位ビット（バイト位置）を生成し、信号７２７として発行する。合計９回（ライトストローブ１回と１ワード分のリードストローブ）、ストローブの生成を行ったことをリードフラグリセット用比較器７０３が検出したら、信号７２４によってリードフラグ７００をリセットしてリードストローブ７２６の生成処理が終了する。
【００４４】
データ読み出し回路２００は、ライトストローブ２（７２５）を受けとったときに、コマンド７１０内にあるＴＹＰＥ２＿２フラグがＯＮしていた場合、ライトストローブ２（７２５）によって、ＴＹＰＥ２レジスタ７０６〜７０９のＳＲＡＭアドレス７０７とバイトセレクト７０８にアドレス７２０の値を書き込む。そして、次に発行されたリードストローブ７２６によって、ＳＲＡＭ選択７０６とＳＲＡＭアドレス７０７の上位ビットを用いてＳＲＡＭ選択制御部７１２がセレクトし、アドレス７２７（アドレス生成カウンタ７０５で生成した下位３ビット）によってバイトセレクトを行ったリードデータをリードレジスタ７１１に書き込む。ここに書き込まれたリードデータは、ＤＧＰ５０１に転送される。
【００４５】
本実施の形態によるデータ転送装置では、上述したＳＲＡＭ５０３〜５０５からの読出し動作を８回（１ワード分）実行することで、ＤＧＰ５０１には１ワード分（８バイト）分のリードデータが揃う。ＳＶＰ５００からＤＧＰ５０１に対して複数ワードの読出し指令であった場合は、このリード動作を指令回数分繰り返す。
【００４６】
（第２の実施の形態による効果） 
本実施の形態によるデータ転送装置では、ＳＶＰ５００からＳＲＡＭ選択、ＴＹＰＥ２指令のライトを実施したあと、ライト指令ではなくリード指令によってＳＲＡＭ５０３〜５０５に対するアドレスの確定を行ってからデータをリードすることで、アドレス更新時にライト指令の発行が不要になるため、複数ワードのリードが可能となり、必要最小限の動作でデータを読み出しているＴＹＰＥ１と同等の時間でＴＹＰＥ２リードを実行することが可能になる。このため、データ読み出し回路２００は、ＳＶＰ５００からＤＧＰ５０１経由でライト指令を受け取ると、ライトストローブを供給してライト指令が示すアドレス位置にライトデータを書き込み、続いてリード指令を受け取ると先のライト指令でＴＹＰＥ２が指示されていた場合、ＳＲＡＭ５０３〜５０５に供給されるリードストローブが初回か否かを判定し、初回であればＴＹＰＥ２レジスタ７０７〜７０８にライトストローブを供給してアドレスの書き込みを行い、２回以降であればリードストローブを供給してＳＲＡＭ５０３〜５０５からＴＹＰＥ２リードを行ない、リード指令が示すサイズ分のテータが揃ったタイミングで要求元のＳＶＰ５００へ転送する。
【００４７】
したがって、ＳＶＰ５００とＤＧＰ５０１によるプロセッサ間通信の引数を増加させることなく、通常レジスタと同等の速度でＳＲＡＭ５０３〜５０５のデータ読出しを行うことが可能となり、したがって、障害時や検査等でＳＲＡＭ５０３〜５０５内のデータを高速読み出しすることで解析データの退避や障害処理の高速化がはかれる。
【００４８】
以上好ましい実施の形態と実施例をあげて本発明を説明したが、本発明は必ずしも、上述実施の形態及び実施例に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【符号の説明】
【００４９】
１００、２００：データ読み出し回路 
５００：第２のプロセッサ（サービスプロセッサＳＶＰ） 
５０１：第１のプロセッサ（診断プロセッサＤＧＰ） 
５０２：ＳＲＡＭ内蔵ＬＳＩ 
５０３〜５０５：メモリ（ＳＲＡＭ） 
７０１：リードストローブ生成カウンタ 
７０２：リードフラグリセット比較器 
７０３、７０４：リードストローブ生成タイミング用レジスタ 
７０５：アドレス生成カウンタ 
７０６〜７０９：ＴＹＰＥ２レジスタ 
７１０：ＴＹＰＥ２アクセス制御部 
７１１：リードデータレジスタ 
７３０：ＴＹＰＥ２リードフラグ 
７３１：リードストローブ生成用カウンタ 
７４０：ライトストローブ２生成用比較器
【図１】
2011086162.tif 000003
【図２】
2011086162.tif 000004
【図３】
2011086162.tif 000005
【図４】
2011086162.tif 000006
【図５】
2011086162.tif 000007
【図６】
2011086162.tif 000008
【図７】
2011086162.tif 000009