(57)【要約】【課題】  ＰＣＩバスのようなバスプロトコルにおいて、特にスレーブデバイスからマスタデバイスへのデータのリード転送を最適化し、システム全体のデータ転送効率を向上させることができるデータ処理システム及びデータ転送装置を提供する。【解決手段】  スレーブデバイス１０のプリフェッチ語数設定部１４には、マスタデバイス５０によってプリフェッチ語数が予め設定される。このプリフェッチ語数は、マスタデバイス５０がスレーブデバイス１０から一度に連続して受信可能なデータの数である。マスタデバイス５０からリード転送要求を受信すると、プリフェッチ制御部１３が、設定されたプリフェッチ語数分のデータをメモリ１５から読み出してデータバッファ１２に書き込む。バスインタフェース１１は、データバッファ１２に格納されたデータをマスタデバイス５０へ送信する。【選択図】  図１ 
2005258719.tif 000002
【特許請求の範囲】
【請求項１】
システムバスで接続されたデバイス間でデータの要求及び送信を行うデータ処理システムであって、
データの送信を要求する少なくとも１つのマスタデバイスと、
前記マスタデバイスからの要求に応答してデータの送信を行う少なくとも１つのスレーブデバイスとで構成され、
前記スレーブデバイスは、
前記マスタデバイスへの送信に備えて先読み出しされるデータを一時的に格納するデータバッファと、
前記マスタデバイスが一度に連続して受信可能なデータ語数を設定するプリフェッチ語数設定部と、
前記マスタデバイスからの要求に応じて、前記プリフェッチ語数設定部に設定されているデータ語数分のデータを、所定のメモリから読み出して前記データバッファに格納するプリフェッチ制御部とを備える、データ処理システム。
【請求項２】
前記プリフェッチ語数設定部は、
前記データ語数を、前記メモリのアドレスに対応させて複数設定する語数設定テーブルと、
前記マスタデバイスからの要求に含まれるアドレスに応じたデータ語数を、前記語数設定テーブルから検索して前記プリフェッチ制御部へ出力するアドレス検索部とを備えることを特徴とする、請求項１に記載のデータ処理システム。
【請求項３】
前記スレーブデバイスは、実際に前記マスタデバイスへ送信したデータ語数に基づいて、前記プリフェッチ語数設定部に設定されているデータ語数の更新を行うプリフェッチ語数更新部をさらに備えることを特徴とする、請求項１に記載のデータ処理システム。
【請求項４】
前記スレーブデバイスは、実際に前記マスタデバイスへ送信したデータ語数及びその格納アドレスに基づいて、前記語数設定テーブルに設定されているデータ語数の更新を行うプリフェッチ語数更新部をさらに備えることを特徴とする、請求項２に記載のデータ処理システム。
【請求項５】
前記語数設定テーブルは、データ種別毎にそれぞれ前記データ語数を設定していることを特徴とする、請求項２又は４に記載のデータ処理システム。
【請求項６】
前記語数設定テーブルは、前記マスタデバイス毎にそれぞれ前記データ語数を設定していることを特徴とする、請求項２又は４に記載のデータ処理システム。
【請求項７】
前記マスタデバイスが一度に連続して受信可能なデータ語数は、前記マスタデバイスによって予め前記プリフェッチ語数設定部に設定されることを特徴とする、請求項１〜６のいずれかに記載のデータ処理システム。
【請求項８】
システムバスで接続されたマスタデバイスからの要求に応答して、データの送信を行うスレーブデバイスであって、
前記マスタデバイスへの送信に備えて先読み出しされるデータを一時的に格納するデータバッファと、
前記マスタデバイスが一度に連続して受信可能なデータ語数を設定するプリフェッチ語数設定部と、
前記マスタデバイスからの要求に応じて、前記プリフェッチ語数設定部に設定されているデータ語数分のデータを、所定のメモリから読み出して前記データバッファに格納するプリフェッチ制御部とを備える、スレーブデバイス。
【請求項９】
前記プリフェッチ語数設定部は、
前記データ語数を、前記メモリのアドレスに対応させて複数設定する語数設定テーブルと、
前記マスタデバイスからの要求に含まれるアドレスに応じたデータ語数を、前記語数設定テーブルから検索して前記プリフェッチ制御部へ出力するアドレス検索部とを備えることを特徴とする、請求項８に記載のスレーブデバイス。
【請求項１０】
実際に前記マスタデバイスへ送信したデータ語数に基づいて、前記プリフェッチ語数設定部に設定されているデータ語数の更新を行うプリフェッチ語数更新部をさらに備えることを特徴とする、請求項８に記載のスレーブデバイス。
【請求項１１】
実際に前記マスタデバイスへ送信したデータ語数及びその格納アドレスに基づいて、前記語数設定テーブルに設定されているデータ語数の更新を行うプリフェッチ語数更新部をさらに備えることを特徴とする、請求項９に記載のスレーブデバイス。
【請求項１２】
前記語数設定テーブルは、データ種別毎にそれぞれ前記データ語数を設定していることを特徴とする、請求項９又は１１に記載のデータ処理システム。
【請求項１３】
前記語数設定テーブルは、前記マスタデバイス毎にそれぞれ前記データ語数を設定していることを特徴とする、請求項９又は１１に記載のデータ処理システム。
【請求項１４】
前記マスタデバイスが一度に連続して受信可能なデータ語数は、前記マスタデバイスによって予め前記プリフェッチ語数設定部に設定されることを特徴とする、請求項８〜１３のいずれかに記載のスレーブデバイス。
【請求項１５】
システムバスで接続されたマスタデバイスからの要求に応答して、データの送信を行うスレーブデバイスの集積回路であって、
前記マスタデバイスへの送信に備えて先読み出しされるデータを一時的に格納するデータバッファと、
前記マスタデバイスが一度に連続して受信可能なデータ語数を設定するプリフェッチ語数設定部と、
前記マスタデバイスからの要求に応じて、前記プリフェッチ語数設定部に設定されているデータ語数分のデータを、所定のメモリから読み出して前記データバッファに格納するプリフェッチ制御とを集積した、集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システム及びスレーブデバイスに関し、より特定的には、データの送信を要求するマスタデバイスと、この要求に応答してデータの送信を行うスレーブデバイスとが、システムバスで接続されたデータ処理システム、及びそのスレーブデバイスに関する。
【背景技術】
【０００２】
マスタデバイスとスレーブデバイスとの間でデータの要求及び送信を行う従来のデータ処理システムは、一般的には図１２のような構成で実現される。図１２において、従来のデータ処理システムは、マスタデバイス５００とスレーブデバイス１００とが、システムバス６００で接続された構成である。スレーブデバイス１００は、バスインタフェース１０１と、データバッファ１０２と、プリフェッチ制御部１０３と、メモリ１０５とを備える。
【０００３】
マスタデバイス５００は、スレーブデバイス１００が保持しているデータが必要になった場合、このスレーブデバイス１００に対してデータのリード転送要求を送信する。マスタデバイス５００からリード転送要求を受信したスレーブデバイス１００は、以後のバースト転送に備えて、メモリ１０５の該当アドレスから連続したデータをデータバッファ１０２に一時格納する。
【０００４】
通常のＤＭＡ転送の場合は、マスタデバイス５００が、スレーブデバイス１００に転送語数等の情報を予め設定しておく。これにより、スレーブデバイス１００は、必要な語数だけメモリ１０５からデータを読み出して、データバッファ１０２に一時格納することができる。しかし、ＰＣＩバスのようなバスプロトコルでは、スレーブデバイス１００は、マスタデバイス５００から最初に要求を受信した時点でデータのプリフェッチ処理を開始し、このデータのプリフェッチ処理が完了した後で受信する要求に応える。この際、マスタデバイス５００がスレーブデバイス１００に対して要求するリード転送語数が１語であったとしても、スレーブデバイス１００は、この要求されたリード転送語数を知り得ないため、データバッファ１０２の段数分のデータをメモリ１０５から読み出して一時格納してしまう。よって、バースト転送が発生しないシステムや、スレーブデバイス１００が備えるデータバッファ１０２の段数よりも少ないバースト転送しか発生しないようなシステムにおいては、スレーブデバイス１００内で不必要なデータ転送が生じてしまい、システム全体のデータ転送が非効率となる課題がある。図１３は、プリフェッチ語数が「８」、マスタデバイス５００が要求しているデータ数が「１」の場合の、データ処理を説明する図である。
【０００５】
上述した課題を解決する手法としては、スレーブデバイス１００の最大バッファサイズに応じてデータ転送量を最適化し、システムバスの使用効率を向上させる技術も提案されている（特許文献１を参照）。
【特許文献１】特開２０００−３３０９２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術のスレーブデバイスでは、マスタデバイスからスレーブデバイスへのデータライト転送については考慮されているが、スレーブデバイスからマスタデバイスへのデータリード転送については考慮されていない。
【０００７】
それ故に、本発明の目的は、ＰＣＩバスのようなバスプロトコルにおいて、特にスレーブデバイスからマスタデバイスへのデータのリード転送を最適化し、システム全体のデータ転送効率を向上させることができるデータ処理システム及びデータ転送装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、システムバスで接続されたデバイス間でデータの要求及び送信を行うデータ処理システムに向けられている。そして、上記目的を達成させるために、本発明のデータ処理システムは、データの送信を要求する少なくとも１つのマスタデバイスと、マスタデバイスからの要求に応答してデータの送信を行う少なくとも１つのスレーブデバイスとで構成され、スレーブデバイスに、データバッファ、プリフェッチ語数設定部及びプリフェッチ制御部を備えさせる。
【０００９】
データバッファは、マスタデバイスへの送信に備えて先読み出しされるデータを一時的に格納する。プリフェッチ語数設定部は、マスタデバイスが一度に連続して受信可能なデータ語数を設定する。プリフェッチ制御部は、マスタデバイスからの要求に応じて、プリフェッチ語数設定部に設定されているデータ語数分のデータを、所定のメモリから読み出してデータバッファに格納する。
【００１０】
プリフェッチ語数設定部は、データ語数を、メモリのアドレスに対応させて複数設定する語数設定テーブルと、マスタデバイスからの要求に含まれるアドレスに応じたデータ語数を、語数設定テーブルから検索してプリフェッチ制御部へ出力するアドレス検索部とで構成してもよい。
また、実際にマスタデバイスへ送信したデータ語数に基づいて又はデータ語数とその格納アドレスに基づいて、プリフェッチ語数設定部に設定されているデータ語数の更新を行うプリフェッチ語数更新部をさらに備えてもよい。
【００１１】
ここで、語数設定テーブルの各データ語数は、データ種別毎にそれぞれ設定されているか、マスタデバイス毎にそれぞれ設定されていることが好ましい。なお、マスタデバイスが一度に連続して受信可能なデータ語数は、マスタデバイスによって予めプリフェッチ語数設定部に設定されればよい。
【発明の効果】
【００１２】
上記のように、本発明によれば、マスタデバイスに最適なプリフェッチ語数を、予め１つ又はメモリの複数のアドレスに対応させて複数スレーブデバイスに設定する。これにより、マスタデバイスが行うデータ送信の要求に対してスレーブデバイス内で行われる不要なデータ転送処理が少なくなり、システム全体のデータ処理効率が向上する。また、複数設定する場合には、データ種別によって異なるプリフェッチ語数を扱う場合や、複数のマスタデバイスが同一のシステムバス上に接続されてシングル転送とバースト転送とが混在する場合にも、柔軟に対応することが可能になる。
また、本発明によれば、マスタデバイスへのデータ送信が発生する度に、スレーブデバイスが、１つ又はアドレスに対応した複数のプリフェッチ語数を再設定する。これにより、ユーザが意識することなく、システムに応じた最適なプリフェッチ語数を自動的に設定することができる。
【発明を実施するための最良の形態】
【００１３】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るデータ処理システムの構成を示す図である。図１において、第１の実施形態に係るデータ処理システムは、マスタデバイス５０とスレーブデバイス１０とが、システムバス６０で接続された構成である。スレーブデバイス１０は、バスインタフェース１１と、データバッファ１２と、プリフェッチ制御部１３と、プリフェッチ語数設定部１４と、メモリ１５とを備える。なお、以下の第１の実施形態では、システムバス６０に接続されているスレーブデバイス１０が１つである場合を説明するが、スレーブデバイス１０は複数であっても構わない。
【００１４】
バスインタフェース１１は、システムバス６０を介してマスタデバイス５０とスレーブデバイス１０とを接続し、マスタデバイス５０からの各種要求の受信及びマスタデバイス５０へのデータ送信等を実行する。データバッファ１２は、メモリ１５から先読み出しで転送（プリフェッチ）されるデータを格納する。このデータバッファ１２には、例えばＦＩＦＯが用いられる。プリフェッチ語数設定部１４は、１回のプリフェッチ処理によってメモリ１５から読み出されるデータの数となるプリフェッチ語数を設定する。このプリフェッチ語数設定部１４には、例えばレジスタが用いられる。プリフェッチ制御部１３は、プリフェッチ語数設定部１４に設定されているプリフェッチ語数に従って、メモリ１５からのデータ読み出し及びデータバッファ１２へのデータ書き込みを制御する。メモリ１５は、様々なデータを格納している。
【００１５】
図２をさらに参照して、上記構成によるスレーブデバイス１０が行うデータ送信処理を説明する。図２は、スレーブデバイス１０が行うデータ送信処理の手順を示すフローチャートである。
【００１６】
実際のデータの要求及び送信に先立って、まず、マスタデバイス５０が、スレーブデバイス１０のプリフェッチ語数設定部１４にプリフェッチ語数の設定を行う。このプリフェッチ語数は、マスタデバイス５０がスレーブデバイス１０から一度に連続して受信可能なデータ語数であり、マスタデバイス５０の処理能力等に基づいて決定される。マスタデバイス５０の受信可能なデータ語数の最大値が好ましい。マスタデバイス５０は、プリフェッチ語数を設定すべき所定のタイミング（システム起動時やリード要求発生時等）になると、そのプリフェッチ語数及び書き込み先がプリフェッチ語数設定部１４であることを示すアドレスを含むプリフェッチ語数書き込み要求（ライト転送要求）を、スレーブデバイス１０に送信する。
【００１７】
スレーブデバイス１０において、マスタデバイス５０から送信されるライト転送要求は、バスインタフェース１１によって受信される。バスインタフェース１１は、ライト転送要求に含まれるアドレスをデコードしてプリフェッチ語数設定部１４宛の要求であることを判断し、要求に含まれるプリフェッチ語数をプリフェッチ語数設定部１４に設定する。
【００１８】
マスタデバイス５０は、プリフェッチ語数の設定が完了した後にスレーブデバイス１０が保持しているデータが必要になった場合、スレーブデバイス１０に対してデータの送信要求（リード転送要求）を送信する。このリード転送要求には、スレーブデバイス１０のメモリ１５内におけるデータ格納位置を示すアドレスが含まれる。
【００１９】
スレーブデバイス１０において、マスタデバイス５０から送信されるリード転送要求は、バスインタフェース１１によって受信される（ステップＳ２０１、Ｙｅｓ）。そして、バスインタフェース１１は、このリード転送要求に含まれるアドレスをデコードしてメモリ１５宛の要求であることを判断し、アドレスの値をプリフェッチ制御部１３へ出力する。ここで、スレーブデバイス１０は、マスタデバイス５０のリード転送要求に即座に応答することができない。このため、システムバス６０がＰＣＩバスのようなプロトコルである場合には、バスインタフェース１１は、マスタデバイス５０に対してリトライ要求を応答する（ステップＳ２０２）。プリフェッチ制御部１３は、バスインタフェース１１から与えられるアドレスを開始アドレスとして、この開始アドレスに格納されているデータからプリフェッチ語数設定部１４に設定されているプリフェッチ語数分のデータまでを、メモリ１５から読み出してデータバッファ１２に書き込む（ステップＳ２０３）。すなわち、メモリ１５からデータバッファ１２へのデータ転送が行われる。そして、メモリ１５からデータバッファ１２へのデータ転送後に、マスタデバイス５０から再び同一のアドレスに対するデータのリード転送要求を受信した場合（ステップＳ２０４、Ｙｅｓ）、バスインタフェース１１は、データバッファ１２に格納されたデータをマスタデバイス５０へ送信する（ステップＳ２０５）。
【００２０】
以上のように、本発明の第１の実施形態に係るデータ処理システムによれば、マスタデバイスに最適なプリフェッチ語数を予めスレーブデバイスに設定する。これにより、マスタデバイスが行うデータの送信要求（リード転送要求）に対してスレーブデバイス内で行われる不要なデータ転送処理が少なくなり、システム全体のデータ処理効率が向上する。
【００２１】
（第２の実施形態）
図３は、本発明の第２の実施形態に係るデータ処理システムの構成を示す図である。図３において、第２の実施形態に係るデータ処理システムは、マスタデバイス５０とスレーブデバイス２０とが、システムバス６０で接続された構成である。スレーブデバイス２０は、バスインタフェース１１と、データバッファ１２と、プリフェッチ制御部１３と、プリフェッチ語数設定部２４と、メモリ１５とを備える。プリフェッチ語数設定部２４は、アドレス検索部２１及び語数設定テーブル２２を含む。なお、以下の第２の実施形態では、システムバス６０に接続されているスレーブデバイス２０が１つである場合を説明するが、スレーブデバイス２０は複数であっても構わないし、上記スレーブデバイス１０が混在していてもよい。また、マスタデバイス５０も、システムバス６０に複数接続されていてもよい。
【００２２】
図３でわかるように、第２の実施形態のスレーブデバイス２０は、上記第１の実施形態のスレーブデバイス１０のプリフェッチ語数設定部１４を、アドレス検索部２１及びアド語数設定テーブル２２からなるプリフェッチ語数設定部２４に代えた構成である。以下、この異なる構成部分を中心に第２の実施形態を説明する。
【００２３】
語数設定テーブル２２は、１回のプリフェッチ処理によってメモリ１５から読み出されるプリフェッチ語数を動的に変更するための情報を記憶する。具体的には、メモリ１５のデータ格納領域をアドレスに従って複数の領域に区分して、この区分した複数の領域にそれぞれプリフェッチ語数を対応付けた情報である（図４（ａ））。好ましい区分の例としては、次のようなものが考えられる。予めメモリ１５内においてデータ種別毎に連続的な格納領域を決めておき、この格納領域のアドレスを用いてデータ種別毎に区分してプリフェッチ語数を設定することが考えられる（図４（ｂ））。このようにすれば、データ種別に応じてデータの転送量を変更することが容易となる。また、システムバス６０上に複数のマスタデバイス５０が接続されている場合には、予めメモリ１５内においてマスタデバイス毎に連続的な格納領域を決めておき、この格納領域のアドレスを用いてマスタデバイス毎に区分してプリフェッチ語数を設定することが考えられる（図４（ｃ））。
【００２４】
図５をさらに参照して、上記構成によるスレーブデバイス２０が行うデータ送信処理を説明する。図５は、スレーブデバイス２０が行うデータ送信処理の手順を示すフローチャートである。なお、図５において図２で説明した処理と同じ処理を行う手順には、同一のステップ番号を付している。
【００２５】
実際のデータの要求及び送信に先立って、まず、マスタデバイス５０が、スレーブデバイス２０の語数設定テーブル２２にプリフェッチ語数の設定を行う。この設定は、上述した例のように、メモリ１５のアドレスに対応させて行われる。マスタデバイス５０は、プリフェッチ語数を設定すべき所定のタイミングになると、そのプリフェッチ語数及び書き込み先が語数設定テーブル２２であることを示すアドレスを含むライト転送要求を、スレーブデバイス２０に送信する。
【００２６】
スレーブデバイス２０において、マスタデバイス５０から送信されるライト転送要求は、バスインタフェース１１によって受信される。バスインタフェース１１は、ライト転送要求に含まれるアドレスをデコードして語数設定テーブル２２宛の要求であることを判断し、要求に含まれるプリフェッチ語数を語数設定テーブル２２に設定する。
【００２７】
マスタデバイス５０は、プリフェッチ語数の設定が完了した後にスレーブデバイス２０が保持しているデータが必要になった場合、スレーブデバイス２０に対してデータのリード転送要求を送信する。このリード転送要求には、スレーブデバイス２０のメモリ１５内におけるデータ格納位置を示すアドレスが含まれる。
【００２８】
スレーブデバイス２０において、マスタデバイス５０から送信されるリード転送要求は、バスインタフェース１１によって受信される（ステップＳ２０１、Ｙｅｓ）。そして、バスインタフェース１１は、このリード転送要求に含まれるアドレスをデコードしてメモリ１５宛の要求であることを判断し、アドレスの値をプリフェッチ制御部１３及びアドレス検索部２１へ出力する。またこのとき、バスインタフェース１１は、マスタデバイス５０に対してリトライ要求を応答する（ステップＳ２０２）。アドレス検索部２１は、バスインタフェース１１から与えられるアドレスをキーとして語数設定テーブル２２を検索し、このアドレスに対応するプリフェッチ語数を取得する（ステップＳ５０１）。プリフェッチ制御部１３は、バスインタフェース１１から与えられるアドレスを開始アドレスとして、この開始アドレスに格納されているデータからアドレス検索部２１で取得されたプリフェッチ語数分のデータまでを、メモリ１５から読み出してデータバッファ１２に書き込む（ステップＳ２０３）。そして、メモリ１５からデータバッファ１２へのデータ転送後に、マスタデバイス５０から再び同一のアドレスに対するデータのリード転送要求を受信した場合（ステップＳ２０４、Ｙｅｓ）、バスインタフェース１１は、データバッファ１２に格納されたデータをマスタデバイス５０へ送信する（ステップＳ２０５）。
【００２９】
以上のように、本発明の第２の実施形態に係るデータ処理システムによれば、マスタデバイスに最適な複数のプリフェッチ語数を、メモリの複数のアドレスに対応させて予めスレーブデバイスに設定する。これにより、マスタデバイスが行うデータのリード転送要求に対してスレーブデバイス内で行われる不要なデータ転送処理が少なくなり、システム全体のデータ処理効率が向上する。また、データ種別によって異なるプリフェッチ語数を扱う場合や、複数のマスタデバイスが同一のシステムバス上に接続されてシングル転送とバースト転送とが混在する場合にも、柔軟に対応することが可能になる。
【００３０】
（第３の実施形態）
上記第１及び第２の実施形態では、最適なプリフェッチ語数が、マスタデバイスによってスレーブデバイス内に予め設定される場合を説明した。以下の第３及び第４の実施形態では、マスタデバイス５０によって設定されるのではなく、スレーブデバイス自身が、実際に行われたデータ送受信の状態に基づいて、最適なプリフェッチ語数を自動的に設定する場合を説明する。
【００３１】
図６は、本発明の第３の実施形態に係るデータ処理システムの構成を示す図である。図６において、第３の実施形態に係るデータ処理システムは、マスタデバイス５０とスレーブデバイス３０とが、システムバス６０で接続された構成である。スレーブデバイス３０は、バスインタフェース１１と、データバッファ１２と、プリフェッチ制御部１３と、プリフェッチ語数更新部３１と、プリフェッチ語数設定部３４と、メモリ１５とを備える。なお、この第３の実施形態においても、システムバス６０に接続されているスレーブデバイス３０が複数であっても構わない。
【００３２】
図６でわかるように、第３の実施形態のスレーブデバイス３０は、上記第１の実施形態のスレーブデバイス１０のプリフェッチ語数設定部１４を、プリフェッチ語数更新部３１とプリフェッチ語数設定部３４とに代えた構成である。このプリフェッチ語数更新部３１は、バスインタフェース１１からマスタデバイス５０へ送信されたデータ語数に基づいて、プリフェッチ語数設定部３４に設定されているプリフェッチ語数の更新を行う。
【００３３】
以下、この異なる構成部分を中心に第３の実施形態のスレーブデバイス３０が行うデータ送信処理を説明する。図７は、スレーブデバイス３０が行うデータ送信処理の手順を示すフローチャートである。なお、図７において図２で説明した処理と同じ処理を行う手順には、同一のステップ番号を付している。
【００３４】
第３の実施形態では、システム起動直後等の初期値として、プリフェッチ語数設定部３４に任意のプリフェッチ語数が設定される。この初期値としては、例えば「１」やデータバッファ１２の段数値等が考えられる。マスタデバイス５０は、スレーブデバイス３０が保持しているデータが必要になった場合、スレーブデバイス３０に対してデータのリード転送要求を送信する。マスタデバイス５０から送信されるリード転送要求を、バスインタフェース１１が受信してから、バスインタフェース１１がデータバッファ１２に格納されたデータをマスタデバイス５０へ送信するまでの処理は、図２で説明したとおりである（ステップＳ２０１〜Ｓ２０５）。
【００３５】
プリフェッチ語数更新部３１は、マスタデバイス５０から受けたリード転送要求に対する応答として、バスインタフェース１１から適切なデータ数が送信されたかを判断する（ステップＳ７０１）。具体的には、データバッファ１２に先読み出しで格納されたプリフェッチ語数分のデータ数に対して、マスタデバイス５０が要求しているデータ数が多いか少ないかを判断する。ここで、マスタデバイス５０がデータバッファ１２に格納されたデータ数以上のデータ数の送信を要求していることは、例えばシステムバス６０がＰＣＩバスのようなプロトコルであった場合には、中断応答（ディスコネクト応答）を行ったか否かによって容易に判断可能である。逆に、マスタデバイス５０がデータバッファ１２に格納されたデータ数以下のデータ数の送信を要求していることは、データバッファ１２で破棄されるデータがあるか否かで容易に判断可能である。
【００３６】
上記判断の結果、マスタデバイス５０がデータバッファ１２に格納されたデータ数以上のデータ数の送信を要求している場合には、プリフェッチ語数更新部３１は、プリフェッチ語数設定部３４に設定されるプリフェッチ語数を、今よりも大きい値に再設定する（ステップＳ７０２）。一方、マスタデバイス５０がデータバッファ１２に格納されたデータ数以下のデータ数の送信を要求している場合には、プリフェッチ語数更新部３１は、プリフェッチ語数設定部３４に設定されるプリフェッチ語数を、今よりも小さい値に再設定する（ステップＳ７０３）。なお、再設定する値は、自由に決めることができる。
【００３７】
図８は、プリフェッチ語数設定部３４に設定されるプリフェッチ語数の初期値が「１」、マスタデバイス５０が要求しているデータ数が「３」の場合の、データ処理を説明する図である。図９は、プリフェッチ語数設定部３４に設定されるプリフェッチ語数の初期値が「３」、マスタデバイス５０が要求しているデータ数が「１」の場合の、データ処理を説明する図である。
【００３８】
以上のように、本発明の第３の実施形態に係るデータ処理システムによれば、マスタデバイスへのデータ送信が発生する度に、スレーブデバイスが、プリフェッチ語数を再設定する。これにより、ユーザが意識することなく、システムに応じた最適なプリフェッチ語数を自動的に設定することができる。従って、マスタデバイスが行うデータのリード転送要求に対してスレーブデバイス内で行われる不要なデータ転送処理が少なくなり、システム全体のデータ処理効率が向上する。
【００３９】
（第４の実施形態）
図１０は、本発明の第４の実施形態に係るデータ処理システムの構成を示す図である。図１０において、第４の実施形態に係るデータ処理システムは、マスタデバイス５０とスレーブデバイス４０とが、システムバス６０で接続された構成である。スレーブデバイス４０は、バスインタフェース１１と、データバッファ１２と、プリフェッチ制御部１３と、プリフェッチ語数設定部４４と、プリフェッチ語数更新部４１と、メモリ１５とを備える。プリフェッチ語数設定部４４は、アドレス検索部２１及び語数設定テーブル４２を含む。なお、この第４の実施形態においても、システムバス６０に接続されているスレーブデバイス４０やマスタデバイス５０が複数であっても構わない。
【００４０】
図１０でわかるように、第４の実施形態のスレーブデバイス４０は、上記第２の実施形態のスレーブデバイス２０の語数設定テーブル２２を、プリフェッチ語数更新部４１と語数設定テーブル４２とに代えた構成である。このプリフェッチ語数更新部４１は、バスインタフェース１１からマスタデバイス５０へ送信されたデータ語数に基づいて、語数設定テーブル４２に設定されているプリフェッチ語数の更新を行う。
【００４１】
以下、この異なる構成部分を中心に第４の実施形態のスレーブデバイス４０が行うデータ送信処理を説明する。図１１は、スレーブデバイス４０が行うデータ送信処理の手順を示すフローチャートである。なお、図１１において図２及び図５で説明した処理と同じ処理を行う手順には、同一のステップ番号を付している。
【００４２】
第４の実施形態では、システム起動直後等の初期値として、語数設定テーブル４２に任意のプリフェッチ語数が設定される。この初期値としては、例えば「１」やデータバッファ１２の段数値等が考えられる。マスタデバイス５０は、スレーブデバイス４０が保持しているデータが必要になった場合、スレーブデバイス４０に対してデータのリード転送要求を送信する。マスタデバイス５０から送信されるリード転送要求を、バスインタフェース１１が受信してから、バスインタフェース１１がデータバッファ１２に格納されたデータをマスタデバイス５０へ送信するまでの処理は、図２及び図５で説明したとおりである（ステップＳ２０１〜Ｓ２０５、Ｓ５０１）。
【００４３】
プリフェッチ語数更新部４１は、マスタデバイス５０から受けたリード転送要求に対する応答として、バスインタフェース１１から適切なデータ数が送信されたかを判断する（ステップＳ７０１）。具体的には、データバッファ１２に先読み出しで格納されたプリフェッチ語数分のデータ数に対して、マスタデバイス５０が要求しているデータ数が多いか少ないかを判断する。ここで、マスタデバイス５０がデータバッファ１２に格納されたデータ数以上のデータ数の送信を要求していることは、例えばシステムバス６０がＰＣＩバスのようなプロトコルであった場合には、中断応答（ディスコネクト応答）を行ったか否かによって容易に判断可能である。逆に、マスタデバイス５０がデータバッファ１２に格納されたデータ数以下のデータ数の送信を要求していることは、データバッファ１２で破棄されるデータがあるか否かで容易に判断可能である。
【００４４】
上記判断の結果、マスタデバイス５０がデータバッファ１２に格納されたデータ数以上のデータ数の送信を要求している場合には、プリフェッチ語数更新部４１は、語数設定テーブル４２の対応するアドレスに設定されるプリフェッチ語数を、今よりも大きい値に再設定する（ステップＳ１１０１）。一方、マスタデバイス５０がデータバッファ１２に格納されたデータ数以下のデータ数の送信を要求している場合には、プリフェッチ語数更新部４１は、語数設定テーブル４２の対応するアドレスに設定されるプリフェッチ語数を、今よりも小さい値に再設定する（ステップＳ１１０２）。なお、再設定する値は、自由に決めることができる。
【００４５】
以上のように、本発明の第４の実施形態に係るデータ処理システムによれば、マスタデバイスへのデータ送信が発生する度に、スレーブデバイスが、アドレスに対応した複数のプリフェッチ語数を再設定する。これにより、ユーザが意識することなく、システムに応じた最適なプリフェッチ語数を自動的に設定することができる。従って、マスタデバイスが行うデータのリード転送要求に対してスレーブデバイス内で行われる不要なデータ転送処理が少なくなり、システム全体のデータ処理効率が向上する。また、データ種別によって異なるプリフェッチ語数を扱う場合や、複数のマスタデバイスが同一のシステムバス上に接続されてシングル転送とバースト転送とが混在する場合にも、柔軟に対応することが可能になる。
【００４６】
なお、本発明のデータ送信処理装置を構成するバスインタフェース、データバッファ、プリフェッチ制御部、プリフェッチ語数設定部、アドレス検索部、語数設定テーブル、及びプリフェッチ語数更新部の各機能ブロックは、典型的には集積回路であるＬＳＩ（集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、又はウルトラＬＳＩ等と称される）として実現される。これらは、個別に１チップ化されてもよいし、一部又は全部を含むように１チップ化されてもよい。
また、集積回路化の手法は、ＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。また、ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩又は派生する別の技術により、ＬＳＩに置き換わる集積回路化の技術が登場すれば、当然その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてあり得る。
【産業上の利用可能性】
【００４７】
本発明は、データの転送を要求するマスタデバイスと、この要求に応答してデータの転送を行うスレーブデバイスとが、システムバスで接続されたデータ処理システム等に利用可能であり、特にスレーブデバイス内におけるデータ転送の回数を低減させる場合等に有用である。
【図面の簡単な説明】
【００４８】
【図１】本発明の第１の実施形態に係るデータ処理システムの構成を示す図
【図２】図１のスレーブデバイス１０が行うデータ送信処理の手順を示すフローチャート
【図３】本発明の第２の実施形態に係るデータ処理システムの構成を示す図
【図４】図３の語数設定テーブル２２に記憶される情報の一例を説明する図
【図５】図３のスレーブデバイス２０が行うデータ送信処理の手順を示すフローチャート
【図６】本発明の第３の実施形態に係るデータ処理システムの構成を示す図
【図７】図６のスレーブデバイス３０が行うデータ送信処理の手順を示すフローチャート
【図８】図７のデータ送信処理手順に基づいて行われるデータ処理例を説明する図
【図９】図７のデータ送信処理手順に基づいて行われる他のデータ処理例を説明する図
【図１０】本発明の第４の実施形態に係るデータ処理システムの構成を示す図
【図１１】図１０のスレーブデバイス４０が行うデータ送信処理の手順を示すフローチャート
【図１２】従来のデータ処理システムの構成を示す図
【図１３】従来のデータ処理システムにおける課題を説明する図
【符号の説明】
【００４９】
１０、２０、３０、４０、１００  スレーブデバイス
１１、１０１  バスインタフェース
１２、１０２  データバッファ
１３、１０３  プリフェッチ制御部
１４、２４、３４、４４  プリフェッチ語数設定部
１５、１０５  メモリ
２１  アドレス検索部
２２、４２  語数設定テーブル
３１、４１  プリフェッチ語数更新部
５０、５００  マスタデバイス
６０、６００  システムバス
【図１】
2005258719.tif 000003
【図２】
2005258719.tif 000004
【図３】
2005258719.tif 000005
【図４】
2005258719.tif 000006
【図５】
2005258719.tif 000007
【図６】
2005258719.tif 000008
【図７】
2005258719.tif 000009
【図８】
2005258719.tif 000010
【図９】
2005258719.tif 000011
【図１０】
2005258719.tif 000012
【図１１】
2005258719.tif 000013
【図１２】
2005258719.tif 000014
【図１３】
2005258719.tif 000015