(57)【要約】【課題】外部デバイスにアクセスするバスが空いているときにデータの先読みが実行できるようにすること。【解決手段】バスマスタＡ１０１は、データリード要求を発行する際にデータ先読み指示１２０を行う機能を有する。外部デバイス制御部１１１は、バスマスタＡ１０１が発行するデータ先読み指示１２０を伴うデータリード要求を受けて、外部アドレス生成部１１２に今回の通常読み出しを行うアドレスと次回の先読みを行うアドレスとを連続して生成させ、今回の通常読み出しが終了したときに他のバスマスタＢ１０２がデータリード要求を発行していないことを条件に次回の先読みアドレスによる読み出しを実行する。今回の通常読み出しアドレスによって読み出された通常データはデータ保持部１０８に保持され、次回の先読みアドレスによって読み出された先読みデータは先読みデータ記憶部１０９に記憶される。【選択図】      図１
2004318252.tif 000002
【特許請求の範囲】
【請求項１】
システムＬＳＩにおける複数のバスマスタが共通に１つの外部デバイスをアクセスする場合のデータ転送を制御するデータ転送制御回路であって、
前記複数のバスマスタのうちに少なくとも１つのバスマスタは、データリード要求を発行する際にデータ先読み指示を行う機能を有し、
アドレス生成指示を受けて、前記バスマスタが発行するアドレス信号に基づき前記外部デバイスのアドレス信号を生成する外部アドレス生成手段と、
前記データ先読み指示を行う機能を有するバスマスタが発行する当該データ先読み指示を伴うデータリード要求を受けて、前記アドレス生成指示を発生して前記外部アドレス生成手段に今回の通常読み出しを行うアドレスと次回の先読みを行うアドレスとを連続して生成させ、今回の通常読み出しが終了したときに当該データリード要求を発行したバスマスタ以外の他のバスマスタがデータリード要求を発行していないことを条件に前記次回の先読みアドレスによる読み出しを実行する外部デバイス制御手段と、
前記今回の通常読み出しアドレスによって読み出された通常データを保持するデータ保持手段と、
前記次回の先読みアドレスによって読み出された先読みデータを記憶する先読みデータ記憶手段と、
を備えたことを特徴とするシステムＬＳＩにおけるデータ転送制御回路。
【請求項２】
前記複数のバスマスタのうちに少なくとも１つのバスマスタは、データリード要求を発行する際に複数のデータ保持領域に対するデータ先読み指示をそれぞれ行う機能を有し、
前記先読みデータ記憶手段を前記データ先読み指示の数分設け、
前記外部デバイス制御手段は、前記データ先読み指示を行う機能を有するバスマスタが発行する当該データ先読み指示を伴うデータリード要求を受けて、前記次回の読み出しアドレスによって読み出された先読みデータを当該データ先読み指示に対応する前記先読みデータ記憶手段に保持させる、
ことを特徴とする請求項１に記載のシステムＬＳＩにおけるデータ転送制御回路。
【請求項３】
前記データ先読み指示機能を有するバスマスタは、先読みするデータのアドレス計算方法を指示する機能を有し、
前記外部デバイス制御手段は、前記バスマスタから指示された計算方法に従って前記外部アドレス生成手段に先読みデータのアドレスを生成させる、
ことを特徴とする請求項１または２に記載のシステムＬＳＩにおけるデータ転送制御回路。
【請求項４】
システムＬＳＩにおける複数のバスマスタが共通に１つの外部デバイスをアクセスする場合のデータ転送を制御するデータ転送制御回路であって、
前記バスマスタが発行するアドレス信号に先読みすると定めたアドレスが含まれるときデータ先読み指示信号を発生する指示信号発生手段と、
アドレス生成指示を受けて、前記バスマスタが発行するアドレス信号に基づき前記外部デバイスのアドレス信号を生成する外部アドレス生成手段と、
前記バスマスタが発行するデータリード要求が前記データ先読み指示信号の発生を伴うとき、前記アドレス生成指示を発生して前記外部アドレス生成手段に今回の通常読み出しを行うアドレスと次回の先読みを行うアドレスとを連続して生成させ、今回の通常読み出しが終了したときに当該データリード要求を発行したバスマスタ以外の他のバスマスタがデータリード要求を発行していないことを条件に前記次回の先読みアドレスによる読み出しを実行する外部デバイス制御手段と、
前記今回の通常読み出しアドレスによって読み出された通常データを保持するデータ保持手段と、
前記次回の先読みアドレスによって読み出された先読みデータを記憶する先読みデータ記憶手段と、
を備えたことを特徴とするシステムＬＳＩにおけるデータ転送制御回路。
【請求項５】
前記データ保持手段と前記先読みデータ記憶手段は、共通する同じ記憶手段であることを特徴とする請求項１または４に記載のシステムＬＳＩにおけるデータ転送制御回路。
【請求項６】
システムＬＳＩにおける複数のバスマスタが共通に１つの外部デバイスをアクセスする場合のデータ転送を制御するデータ転送制御回路であって、
アドレス生成指示を受けて、前記バスマスタが発行するアドレス信号に基づき前記外部デバイスのアドレス信号を生成する外部アドレス生成手段と、
前記バスマスタが発行するデータリード要求を受けて、データの先読みを実行すると判断したとき、前記アドレス生成指示を発生して前記外部アドレス生成手段に通常の読み出しを行うアドレスの他に先読みを行う複数のアドレスを順次生成させ、当該データリード要求を発行したバスマスタ以外の他のバスマスタがデータリード要求を発行していないことを条件に前記複数の先読みアドレスによる読み出しを順次実行し、通常読み出し指示を受けて前記通常読み出しアドレスによる読み出しを実行する外部デバイス制御手段と、
前記複数の先読みアドレスによって読み出された複数の先読みデータをアドレス識別子によって識別可能に登録し、前記複数のアドレス識別子の中に前記バスマスタが発行するデータリード要求に伴うアドレス信号が示すアドレスと一致するものがあるか否かを判断し、一致するものがあるときは、前記登録済みの該当する先読みデータを今回の読み出しデータとして前記バスマスタに向けて送出し、一致するものがないときは、前記通常読み出し指示を発生し読み出された通常データを今回の読み出しデータとして前記バスマスタに向けて送出する先読みデータ登録手段と、
を備えたことを特徴とするシステムＬＳＩにおけるデータ転送制御回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、システムＬＳＩにおけるデータ転送制御回路に関するものである。
【０００２】
【従来の技術】
システムＬＳＩにおけるデータ転送制御回路としては、例えば特許文献１に開示されたものが知られている。以下、データ転送バスの構成を明示した図１０を参照して、その概要を説明する。なお、図１０は、従来のシステムＬＳＩにおけるデータ転送制御回路の構成例を示すブロック図である。
【０００３】
図１０では、２つのバスマスタ（バスマスタＡ９０１，バスマスタＢ９０２）が例示されている。バスマスタＡ９０１は、マスタバスＡ９０３ａを制御し、バスマスタＢ９０２は、マスタバスＢ９０３ｂを制御し、それぞれ、マスタバスＡ９０３ａ，マスタバスＢ９０３ｂに接続される図示しないＣＰＵ等や、ＬＳＩ外部のデバイスである外部デバイス９１１に対してアクセスすることを行う。
【０００４】
マスタバスＡ９０３ａとマスタバスＢ９０３ｂは、同様の構成であって、マスタバスＡ９０３ａに示すように、アドレス信号ＭＡＤＤＲが送出されるアドレス信号バス９３１と、制御信号が送出される制御信号バス９３２と、バスマスタが書き込むデータ（以降「ライトデータ」という）ＭＤＷが送出されるライトデータ信号バス９３３と、バスマスタが外部デバイス９１１等から読み出されたデータ（以降「リードデータ」という）ＭＤＲ＿Ｅが送出されるリードデータ信号バス９３４とで構成されている。
【０００５】
マスタバスＡ９０３ａとマスタバスＢ９０３ｂとには、バスインタフェース部９０４が接続されている。バスインタフェース部９０４は、バスマスタＡ９０１，バスマスタＢ９０２が外部デバイス９１１をアクセスする際に制御するマスタバスＡ９０３ａ、マスタバスＢ９０３ｂのプロトコルと外部デバイス９１１が使用する別のプロトコルとの変換を行う機能を有する。
【０００６】
バスインタフェース部９０４と外部デバイス９１１との間には、データ保持部９０６，９０８とデータバッファ９０７と外部デバイス制御部９０９と外部アドレス生成部９１０とが設けられている。外部アドレス生成部９１０は、バスインタフェース部９０４にアドレス信号バス９５１を介して接続され、また、外部デバイス９１１にアドレス信号バス９６１を介して接続されている。外部デバイス制御部９０９は、バスインタフェース部９０４に制御信号バス９５２を介して接続され、また、外部デバイス９１１に制御信号バス９６２を介して接続されている。
【０００７】
データ保持部９０８のリードデータ出力端は、バスインタフェース部９０４にリードデータ信号バス９５３を介して接続され、リードデータ入力端は、データバッファ９０７のリードデータ出力端に接続されている。データ保持部９０６のライトデータ入力端は、バスインタフェース部９０４にライトデータ信号バス９５４を介して接続され、ライトデータ出力端は、データバッファ９０７のライトデータ入力端に接続されている。データバッファ９０７のリード・ライトのデータ入出力端は、外部デバイス９１１にデータ信号バス９６３を介して接続されている。
【０００８】
外部デバイス９１１は、例えばＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）である。外部アドレス生成部９１０は、外部デバイス制御部９０９の制御下に、外部デバイス９１１のアドレス信号を生成する。データバッファ９０７は、外部デバイス制御部９０９の制御下に、データ保持部９０６が保持するライトデータ信号を取り込み外部デバイス９１１に出力し、また外部デバイス９１１が出力するリードデータ信号を取り込みデータ保持部９０８に保持させることを行う。
【０００９】
次に、動作について説明する。この発明では、上記のように構成されるシステムＬＳＩにおけるデータ転送制御回路において、バスマスタが外部デバイスからデータを読み出すデータリード動作を問題にしているので、ここでは、バスマスタＡ９０１による外部デバイス９１１からのデータリード動作について説明する。外部デバイスにデータを書き込むデータライト動作の説明は省略する。
【００１０】
なお、アドレス信号ＥＡＤＤＲが送出されるアドレス信号バス９５１と、制御信号が送出される制御信号バス９５２と、リードデータ信号ＥＤＲが送出されるリードデータ信号バス９５３と、ライトデータ信号ＥＤＷが送出されるライトデータ信号バス９５４との全体は、Ｅバス９０５と称する。そして、各バスに送出される信号を、Ｅバスアドレス信号、Ｅバス制御信号、Ｅバスリードデータ信号なる呼称を用いて指定することとする。
【００１１】
また、外部アドレス生成部９１０と外部デバイス９１１との間のアドレス信号バス９６１と、外部デバイス制御部９０９と外部デバイス９１１との間の制御信号バス９６２と、データバッファ９０７と外部デバイス９１１との間のデータ信号バス９６３との全体は、外部バスと称する。そして、各バスに送出される信号を、外部バスアドレス信号、外部バス制御信号、外部バスリードデータ信号なる呼称を用いて指定することとする。
【００１２】
バスマスタＡ９０１は、制御信号バス９３２にデータリードを行うために必要な制御信号を出力する。同時に、リードする外部デバイス９１１のアドレス信号ＭＡＤＤＲをアドレス信号バス９３１に出力する。
【００１３】
バスインタフェース部９０４は、データリードのための制御信号が制御信号バス９３２に出力されると、アドレス信号バス９３１上のアドレス信号ＭＡＤＤＲが外部デバイス９１１へのアドレス信号であるか否かを確認する。今の例では、アドレス信号バス９３１上のアドレス信号ＭＡＤＤＲは、外部デバイス９１１へのアドレス信号であるので、バスインタフェース部９０４は、Ｅバス９０５に対して外部デバイス９１１のリード動作を行う。
【００１４】
すなわち、バスインタフェース部９０４は、制御信号バス９５２に、外部デバイス９１１をリードするために必要なＥバス制御信号を出力する。同時に、外部デバイス９１１をアクセスするためのＥバスアドレス信号ＥＡＤＤＲをアドレス信号バス９５１に出力する。
【００１５】
外部デバイス制御部９０９は、制御信号バス９５２からＥバス制御信号を受け取り、外部デバイス９１１のアクセスに必要な外部バス制御信号を生成し、外部デバイス９１１に対して出力する。同時に、外部アドレス生成部９１０に対してアドレス生成を指示する。また、データバッファ９０７に対して外部バスリードデータ信号の取り込みを指示する。
【００１６】
外部アドレス生成部９１０は、外部デバイス制御部９０９の指示に従ってバスインタフェース部９０４からＥバスアドレス信号ＥＡＤＤＲを受け取ると、外部デバイス９１１のアクセスに必要な外部バスアドレス信号を生成し、外部デバイス９１１に対して出力する。
【００１７】
その結果、外部デバイス９１１では、外部バス制御信号と外部バスアドレス信号とによってデータリードが行われる。外部デバイス９１１が出力する外部バスリードデータ信号は、データバッファ９０７を通してデータ保持部９０８に入力され、一時保持された後、Ｅバスリードデータ信号ＥＤＲとしてＥバス９０４のリードデータ信号バス９５３、バスインタフェース部９０４を通してマスタバスＡ９０３ａ内のリードデータ信号バス９３４にリードデータ信号ＭＤＲ＿Ｅとして送出され、バスマスタＡ９０１に取り込まれる。
【００１８】
次に、図１１を参照して、データリード動作時のタイミング関係を説明する。なお、図１１は、図１０に示すシステムＬＳＩにおけるデータ転送制御回路において実施されるデータリード動作時におけるタイミング関係を説明するタイムチャートである。外部デバイス９１１は、上記のようにＳＤＲＡＭであるとしている。
【００１９】
図１１では、信号線の項が、マスタバス側とＥバス側と外部バス側とに分けて示されている。マスタバス側の信号としては、ＲＥＱ、ＡＣＫ、ＥＮＤ、ＲＷ、ＭＡＤＤＲ、ＭＤＲ＿ＥおよびＭＤＷが示されている。ＲＥＱ、ＡＣＫ、ＥＮＤ、ＲＷは、図１０に示す制御信号バス９３２上に送出される制御信号である。ＲＥＱはバスアクセス要求信号を示し、ＡＣＫはバスアクセス許可信号を示し、ＥＮＤはバスアクセス終了信号を示し、ＲＷはリード／ライト信号を示している。その他の信号ＭＡＤＤＲ、ＭＤＲ＿ＥおよびＭＤＷは前述した通りである。
【００２０】
また、Ｅバス側の信号としては、ＥＲＥＱ、ＥＥＮＤ、ＥＲＷ、ＥＡＤＤＲ、ＥＤＲおよびＥＤＷが示されている。ＥＲＥＱ、ＥＥＮＤ、ＥＲＷは、図１０に示す制御信号バス９５２に送出されるＥバス制御信号である。ＥＲＥＱはＥバスアクセス要求信号を示し、ＥＥＮＤはＥバスアクセス終了信号を示し、ＥＲＷはＥバスリード／ライト信号を示している。その他の信号ＥＡＤＤＲ、ＥＤＲおよびＥＤＷは前述した通りである。
【００２１】
そして、外部バス側の信号としては、前述した制御信号とアドレス信号とデータ信号とが示されている。なお、外部バス制御信号には、行活性コマンドＡＣ、ＮＯＰコマンドＮＰ、リードコマンドＲＤ、バンク非活性コマンドＰＲなどがあり、ＳＤＲＡＭコマンドはそれらの組み合わせによって定義される。
【００２２】
さて、図１１において、クロックサイクル“１”にてバスマスタＡ９０１は、マスタバスＡ９０３ａに、バスアクセス要求信号ＲＥＱ“Ｒ０”を出力し、バスアクセス許可信号ＡＣＫ“Ｒ０”を確認してリード／ライト信号ＲＷ、アドレス信号ＭＡＤＤＲ“Ｒ０”を出力する。リード／ライト信号ＲＷには、バスアクセスがリードアクセスであることを示す値“ｒｅａｄ”が出力されている。
【００２３】
バスインタフェース部９０４は、バスアクセス要求信号ＲＥＱ“Ｒ０”が出力されると、アドレス信号ＭＡＤＤＲ“Ｒ０”を見て、外部デバイス９１１に対するアドレスであると判断してマスタバスＡ９０３ａにバスアクセス許可信号ＡＣＫ“Ｒ０”を出力する。
【００２４】
同時に、バスインタフェース部９０４は、Ｅバス９０５に、Ｅバスアクセス要求信号ＥＲＥＱ“Ｒ１”、Ｅバスリード／ライトＥＲＷ信号、Ｅバスアドレス信号ＥＡＤＤＲ“Ｒ０”を出力する。Ｅバスリード／ライト信号ＥＲＷには、Ｅバスアクセスがリードアクセスであることを示す値“ｒｅａｄ”が出力されている。
【００２５】
外部デバイス制御部９０９は、バスインタフェース部９０４からＥバスアクセス要求信号ＥＲＥＱ“Ｒ１”を受け取り、外部デバイス９１１に対し、クロックサイクル“１”〜“５”の各クロックに同期して、ＳＤＲＡＭアクセスに必要な外部バス制御信号である行活性コマンドＡＣ、ＮＯＰコマンドＮＰ、リードコマンドＲＤ、ＮＯＰコマンドＮＰ、バンク非活性コマンドＰＲをこの順に出力する。
【００２６】
外部アドレス生成部９１０は、バスインタフェース部９０４からＥバスアドレス信号ＥＡＤＤＲ“Ｒ０”を受け取り、外部デバイス９１１に対し、ＳＤＲＡＭアクセスに必要な外部バスアドレス信号を出力する。この場合、アドレスを行アドレス“Ｒ０”と列アドレス“Ｃ０”とに時分割して出力する。具体的には、外部アドレス生成部９１０は、外部デバイス制御部９０９からの外部アドレス生成指示を受けてＥバスアドレス信号ＥＡＤＤＲから行アドレス“Ｒ０”と列アドレス“Ｃ０”を生成する。そして、クロックサイクル“１”にて行アドレス“Ｒ０”を出力し、クロックサイクル“３”にて列アドレス“Ｃ０”を出力する。
【００２７】
その結果、ここでは、ＳＤＲＡＭのＣＡＳレイテンシは２クロックであるとしているので、クロックサイクル“５”にてＳＤＲＡＭから読み出されたリードデータ信号“Ｒ０”がデータバッファ９０７に入力される。データバッファ９０７に入力されたリードデータ信号“Ｒ０”は、外部デバイス９０９の制御下にデータ保持部９０８に取り込まれて一時保持され、クロックサイクル“６”にてＥバスリードデータ信号ＥＤＲ“Ｒ０”としてＥバス９０５のリードデータ信号バス９５３に出力される。Ｅバスリードデータ信号ＥＤＲ“Ｒ０”は、バスインタフェース部９０４を通して同じクロックサイクル“６”にてリードデータ信号ＭＤＲ＿Ｅ“Ｒ０”としてマスタバスＡ９０３ａのリードデータ信号バス９３４に出力される。
【００２８】
このとき、バスインタフェース部９０４は、同じクロックサイクル“６”にてバスアクセス終了信号ＥＮＤ“Ｒ０”をマスタバスＡ９０３ａの制御信号バス９３２に出力する。バスマスタＡ９０１は、このバスアクセス終了信号ＥＮＤ信号“Ｒ０”を見て、マスタバスＡ９０３ａのリードデータ信号バス９３４からリードデータ信号ＭＤＲ＿Ｅ“Ｒ０”を取り込む。なお、バスインタフェース部９０４は、同じクロックサイクル“６”にてＥバスアクセス終了信号ＥＥＮＤ“Ｒ１”を外部デバイス制御部９０９に対して出力する。
【００２９】
次いで、２回目のバスアクセスでは、外部デバイス制御部９０９は、バスインタフェース部９０４からＥバスアクセス要求信号ＥＲＥＱ“Ｒ１”を受け取り、外部デバイス９１１に対し、クロックサイクル“８”〜“１２”の各クロックに同期して、同様に外部バス制御信号である行活性コマンドＡＣ、ＮＯＰコマンドＮＰ、リードコマンドＲＤ、ＮＯＰコマンドＮＰ、バンク非活性コマンドＰＲをこの順に出力する。そして、クロックサイクル“１３”にて終了処理を行う。
【００３０】
このように、従来のデータ転送制御回路では、１回目のバスアクセス（ＳＤＲＡＭアクセス）が６クロックサイクル（クロックサイクル“１”〜“６”）を要して行われる。２回目のバスアクセスも同様の手順で６クロックサイクル（クロックサイクル“８”〜“１３”）を要して行われている。
【００３１】
【特許文献１】
特開２００１−２２９０７４号公報（００１９〜００２３、図１）
【００３２】
【発明が解決しようとする課題】
しかしながら、従来のシステムＬＳＩにおけるデータ転送制御回路では、外部デバイス、例えばＳＤＲＡＭにアクセスするとき、断続的に連続した領域にアクセスする場合でも、一時ＳＤＲＡＭを非活性化しなければならずバス使用効率が悪いという問題がある。
【００３３】
また、バスマスタからの要求がある度にＳＤＲＡＭをアクセスするので、アクセスが集中すると、バスバンド幅が足りなくなり、データ転送効率が低下するという問題もある。
【００３４】
この発明は、上記に鑑みてなされたもので、外部デバイスにアクセスするバスが空いているときにデータの先読みを実行する手段を備えたシステムＬＳＩにおけるデータ転送制御回路を得ることを目的とする。
【００３５】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかるシステムＬＳＩにおけるデータ転送制御回路は、システムＬＳＩにおける複数のバスマスタが共通に１つの外部デバイスをアクセスする場合のデータ転送を制御するデータ転送制御回路であって、前記複数のバスマスタのうちに少なくとも１つのバスマスタは、データリード要求を発行する際にデータ先読み指示を行う機能を有し、アドレス生成指示を受けて、前記バスマスタが発行するアドレス信号に基づき前記外部デバイスのアドレス信号を生成する外部アドレス生成手段と、前記データ先読み指示を行う機能を有するバスマスタが発行する当該データ先読み指示を伴うデータリード要求を受けて、前記アドレス生成指示を発生して前記外部アドレス生成手段に今回の通常読み出しを行うアドレスと次回の先読みを行うアドレスとを連続して生成させ、今回の通常読み出しが終了したときに当該データリード要求を発行したバスマスタ以外の他のバスマスタがデータリード要求を発行していないことを条件に前記次回の先読みアドレスによる読み出しを実行する外部デバイス制御手段と、前記今回の通常読み出しアドレスによって読み出された通常データを保持するデータ保持手段と、前記次回の先読みアドレスによって読み出された先読みデータを記憶する先読みデータ記憶手段とを備えている。
【００３６】
この発明によれば、データリード要求を発行する際にデータ先読み指示を行う機能を有するバスマスタは、外部デバイスである例えばＳＤＲＡＭの連続したアドレスを断続的にアクセスする場合に、あるアドレスをアクセスした後、バスが空いていれば次のデータを先読みして保持しておき、その後、適宜なときにその保持データを取り込むことができる。
【００３７】
つまり、後にアクセスすることが予想されるデータや後で必要となることが予想されるデータをバスが空いているときに先読みすることができるので、外部デバイスであるＳＤＲＡＭアクセスのオーバーヘッドを解消することができ、またＳＤＲＡＭアクセスの集中を避けることができる。
【００３８】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかるシステムＬＳＩにおけるデータ転送制御回路の好適な実施の形態を詳細に説明する。
【００３９】
実施の形態１．
図１は、この発明の実施の形態１であるシステムＬＳＩにおけるデータ転送制御回路の構成を示すブロック図である。図１では、２つのバスマスタ（バスマスタＡ１０１，バスマスタＢ１０２）が例示されている。
【００４０】
バスマスタＡ１０１は、マスタバスＡ１０３ａを制御し、マスタバスＡ１０３ａに接続される図示しないＣＰＵ等や、ＬＳＩ外部のデバイスである外部デバイス１１３に対してアクセスする従前のバスアクセス機能の他、データ先読み指示信号１２０を発生する機能を備えている。
【００４１】
一方、バスマスタＢ１０２は、マスタバスＢ１０３ｂを制御し、マスタバスＢ１０３ｂに接続される図示しないＣＰＵ等や、ＬＳＩ外部のデバイスである外部デバイス１１３に対してアクセスする従前のバスアクセス機能を備えたものである。
【００４２】
マスタバスＡ１０３ａとマスタバスＢ１０３ｂは、同様の構成であって、マスタバスＡ１０３ａに示すように、アドレス信号ＭＡＤＤＲが送出されるアドレス信号バス１３１と、制御信号が送出される制御信号バス１３２と、バスマスタが書き込むデータ（以降「ライトデータ」という）ＭＤＷが送出されるライトデータ信号バス１３３と、バスマスタが外部デバイス１１３等から読み出されたデータ（以降「リードデータ」という）ＭＤＲ＿Ｅが送出されるリードデータ信号バス１３４とで構成されている。
【００４３】
マスタバスＡ１０３ａとマスタバスＢ１０３ｂとには、バスインタフェース部１０４が接続されている。バスインタフェース部１０４は、バスマスタＡ１０１，バスマスタＢ１０２が外部デバイス１１３をアクセスする際に制御するマスタバスＡ１０３ａ、マスタバスＢ１０３ｂのプロトコルと外部デバイス１１３が使用する別のプロトコルとの変換を行う機能を有する。
【００４４】
バスインタフェース部１０４と外部デバイス１１３との間には、データ保持部１０６，１０８とデータバッファ１０７と先読みデータ記憶部１０９とデータ選択部１１０と外部デバイス制御部１１１と外部アドレス生成部１１２とが設けられている。
【００４５】
外部アドレス生成部１１２は、バスインタフェース部１０４にアドレス信号バス１５１を介して接続され、また、外部デバイス１１３にアドレス信号バス１３０を介して接続されている。外部デバイス制御部１１１は、バスインタフェース部１０４に制御信号バス１５２を介して接続され、また、外部デバイス１１３に制御信号バス１３１を介して接続されている。外部デバイス制御部１１１には、バスマスタＡ１０１からデータ先読み指示信号１２０が入力され、またアドレス信号バス１５１上のアドレス信号ＥＡＤＤＲが入力されている。
【００４６】
データ保持部１０６のライトデータ入力端は、バスインタフェース部１０４にライトデータ信号バス１５４を介して接続され、ライトデータ出力端は、データバッファ１０７のライトデータ入力端に接続されている。データバッファ１０７のリード・ライトのデータ入出力端は、外部デバイス１１３にデータ信号バス１３２を介して接続され、リードデータ出力端には、データ保持部１０８と先読みデータ記憶部１０９とのリードデータ入力端がそれぞれ接続されている。
【００４７】
データバッファ１０７は、外部デバイス制御部１１１の制御下に、データ保持部１０６が保持するライトデータ信号を取り込み外部デバイス１１３に出力し、また外部デバイス１１３が出力するリードデータ信号を取り込みデータ保持部１０８と先読みデータ記憶部１０９とに保持させることを行う。先読みデータ記憶部１０９は、データバッファ１０７が出力するリードデータ信号を外部デバイス制御部１１１からの先読みデータ記憶制御信号１２１に従って取り込むようになっている。
【００４８】
データ保持部１０８と先読みデータ記憶部１０９とのリードデータ出力端は、それぞれデータ選択部１１０のデータ入力端に接続されている。データ選択部１１０のデータ出力端は、バスインタフェース部１０４にリードデータ信号バス１５３を介して接続されている。データ選択部１１０は、外部デバイス制御部１１１からのデータ選択制御信号１２２に従ってデータ保持部１０８と先読みデータ記憶部１０９の一方からリードデータを取り出しリードデータ信号バス１５３に送出するようになっている。
【００４９】
外部デバイス１１３は、例えばＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）である。外部アドレス生成部１１２は、外部デバイス制御部１１１の制御下に、外部デバイス１１３のアドレス信号を生成する。
【００５０】
次に、以上のように構成されるシステムＬＳＩにおけるデータ転送制御回路において実施される外部デバイスからデータを読み出すデータリード動作について説明する。外部デバイスにデータを書き込むデータライト動作については説明を省略する。
【００５１】
なお、アドレス信号ＥＡＤＤＲが送出されるアドレス信号バス１５１と、制御信号が送出される制御信号バス１５２と、リードデータ信号ＥＤＲが送出されるリードデータ信号バス１５３と、ライトデータ信号ＥＤＷが送出されるライトデータ信号バス１５４との全体は、Ｅバス１０５と称する。そして、各バスに送出される信号を、Ｅバスアドレス信号、Ｅバス制御信号、Ｅバスリードデータ信号なる呼称を用いて指定することとする。
【００５２】
また、外部アドレス生成部１１２と外部デバイス１１３との間のアドレス信号バス１３０と、外部デバイス制御部１１１と外部デバイス１１３との間の制御信号バス１３１と、データバッファ１０７と外部デバイス１１３との間のデータ信号バス１３２との全体は、外部バスと称する。そして、各バスに送出される信号を、外部バスアドレス信号、外部バス制御信号、外部バスリードデータ信号なる呼称を用いて指定することとする。
【００５３】
バスマスタＡ１０１が外部デバイス１１３であるＳＤＲＡＭからデータを読み出すデータリード動作では、バスマスタＡ１０１は、制御信号バス１３２にデータリードを行うために必要な制御信号を出力する。同時に、リードする外部デバイス１１３のアドレス信号をアドレス信号バス１３１に出力する。また、バスマスタＡ１０１は、必要に応じてデータ先読み指示信号１２０を外部デバイス制御部１１１に与えるようになっている。例えば、ＳＤＲＡＭの連続した領域を断続的にアクセスする場合に、後にアクセスすることが予想されるデータがあるとき、あるいは、後に必要となることが予想されるデータがあるときなどにデータ先読み指示信号１２０を発生する。
【００５４】
バスインタフェース部１０４は、データリードのための制御信号が制御信号バス１３２に出力されると、アドレス信号バス１３１上のアドレス信号ＭＡＤＤＲが外部デバイス１１３へのアドレス信号であるか否かを確認する。今の例では、アドレス信号バス１３１上のアドレス信号ＭＡＤＤＲは、外部デバイス１１３へのアドレス信号であるので、バスインタフェース部１０４は、Ｅバス１０５に対して外部デバイス１１３からデータを読み出すリード動作を行う。
【００５５】
すなわち、バスインタフェース部１０４は、制御信号バス１５２に、外部デバイス１１３をリードするために必要なＥバス制御信号を出力する。同時に、外部デバイス１１３をアクセスするためのＥバスアドレス信号ＥＡＤＤＲをアドレス信号バス１５１に出力する。
【００５６】
外部デバイス制御部１１１は、制御信号バス１５２からＥバス制御信号を受け取り、外部デバイス１１３のアクセスに必要な外部バス制御信号を生成し、外部デバイス１１３に対して出力する。同時に、外部アドレス生成部１１２に対してアドレス生成を指示する。また、データバッファ１０７に対して外部バスリードデータ信号の取り込みを指示する。
【００５７】
このとき、外部デバイス制御部１１１は、制御信号バス１５２からＥバス制御信号を受け取ると、バスマスタＡ１０１からデータ先読み指示信号１２０が入力しているか否かを確認する。そして、バスマスタＡ１０１がデータ先読み指示信号１２０を伴うリードアクセスを要求しているが、同時にバスマスタＢ１０２もリードアクセスを要求している場合は、まずバスマスタＢ１０２のリードアクセスを優先して実行し、その後、バスマスタＡ１０１のリードアクセス（データの先読み）を実行するようになっている。
【００５８】
そして、外部デバイス制御部１１１は、データの先読みを実行するときは、アドレス信号バス１５１上のアドレス信号ＥＡＤＤＲに基づきアクセスするアドレスを監視し、外部アドレス生成部１１２に対し、１回目のリードアクセスで使用したアドレスをインクリメントまたはディクリメントして２回目のリードアクセスで使用するアドレスを生成させる指示を出す。また、外部デバイス制御部１１１は、先読みデータ記憶部１０９に対し先読みデータ記憶制御信号１２１を出力する。同時に、データ選択部１１０に対し、先読みデータ記憶部１０９の出力を選択させるデータ選択制御信号１２２を出力することを行う。
【００５９】
外部アドレス生成部１１２は、外部デバイス制御部１１１の指示に従ってバスインタフェース部１０４からＥバスアドレス信号ＥＡＤＤＲを受け取ると、外部デバイス１１３のアクセスに必要な外部バスアドレス信号を生成し、外部デバイス１１３に対して出力する。
【００６０】
その結果、外部デバイス１１３では、外部バス制御信号と外部バスアドレス信号とによってデータリードが行われる。外部デバイス１１３が出力する外部バスリードデータ信号は、１回目のリードアクセスでは、データバッファ１０７を通してデータ保持部１０８に入力され、保持される。２回目のリードアクセスでは、外部デバイス制御部１１１が先読みデータ記憶制御信号１２１を発生しているので、外部デバイス１１３が出力する外部バスリードデータ信号は、データバッファ１０７を通して先読みデータ記憶部１０９に入力され、保持される。
【００６１】
外部デバイス制御部１１１は、このデータ先読み動作を先読みデータ記憶部１０９に余裕がある場合でもバスマスタＡ１０１から次のアクセス要求が入力されない場合は終了する。また、外部デバイス制御部１１１は、このデータ先読み動作を先読みデータ記憶部１０９が例えば１データ分の容量で一杯になると終了する。
【００６２】
そして、まずデータ保持部１０８に保持された外部バスリードデータ信号がデータ選択部１１０を通してＥバスリードデータ信号ＥＤＲとしてリードデータ信号バス１５４に送出され、その後、先読みデータ記憶部１０９に保持された外部バスリードデータ信号がデータ選択部１１０を通してＥバスリードデータ信号ＥＤＲとしてリードデータ信号バス１５４に送出される。これらの外部バスリードデータ信号は、バスインタフェース部１０４を通してマスタバスＡ１０３ａ内のリードデータ信号バス１３４にリードデータ信号ＭＤＲ＿Ｅとして送出され、バスマスタＡ１０１に取り込まれる。
【００６３】
次に、図２を参照して、データリード動作時のタイミング関係を説明する。なお、図２は、図１に示すシステムＬＳＩにおけるデータ転送制御回路において実施されるデータリード動作時におけるタイミング関係を説明するタイムチャートである。外部デバイス１１３は、上記のようにＳＤＲＡＭを想定している。
【００６４】
図２では、信号線の項が、マスタバス側とＥバス側と外部バス側とに分けて示されている。マスタバス側の信号としては、ＲＥＱ、ＡＣＫ、ＥＮＤ、ＲＷ、ＭＡＤＤＲ、ＭＤＲ＿ＥおよびＭＤＷが示されている。ＲＥＱ、ＡＣＫ、ＥＮＤ、ＲＷは、図１に示す制御信号バス１３２上に送出される制御信号である。ＲＥＱはバスアクセス要求信号を示し、ＡＣＫはバスアクセス許可信号を示し、ＥＮＤはバスアクセス終了信号を示し、ＲＷはリード／ライト信号を示している。その他の信号ＭＡＤＤＲ、ＭＤＲ＿ＥおよびＭＤＷは前述した通りである。
【００６５】
また、Ｅバス側の信号としては、ＥＲＥＱ、ＥＥＮＤ、ＥＲＷ、データ先読み指示、ＥＡＤＤＲ、ＥＤＲおよびＥＤＷが示されている。ＥＲＥＱ、ＥＥＮＤ、ＥＲＷは、図１に示す制御信号バス１５２に送出されるＥバス制御信号である。ＥＲＥＱはＥバスアクセス要求信号を示し、ＥＥＮＤはＥバスアクセス終了信号を示し、ＥＲＷはリード／ライト信号を示している。その他の信号であるデータ先読み指示、ＥＡＤＤＲ、ＥＤＲおよびＥＤＷは前述した通りである。
【００６６】
「リードデータスイッチ」は、データ選択選択信号１２２によって切替制御されるデータ選択部１１０を示し、「先読みバッファ」は先読みデータ記憶制御信号１２１によって制御される先読みデータ記憶部１０９を示している。そして、外部バス側の信号としては、前述した制御信号とアドレス信号とデータ信号とが示されている。なお、データ先読み動作時の外部バス制御信号には、行活性コマンドＡＣ、ＮＯＰコマンドＮＰ、リードコマンドＲＤがあり、ＳＤＲＡＭコマンドはそれらの組み合わせによって定義される。図１１に示したバンク非活性コマンドＰＲは、不使用となっている。
【００６７】
さて、図２において、クロックサイクル“１”にてバスマスタＡ１０１は、マスタバス１０３ａに、バスアクセス要求信号ＲＥＱ“Ｒ０”、リード／ライト信号ＲＷ、アドレス信号ＭＡＤＤＲ“Ｒ０”を出力する。リード／ライト信号ＲＷには、バスアクセスがリードアクセスであることを示す値“ｒｅａｄ”が出力されている。
【００６８】
バスインタフェース部１０４は、バスアクセス要求信号ＲＥＱ“Ｒ０”が出力されると、アドレス信号ＭＡＤＤＲ“Ｒ０”を見て、外部デバイス１１３に対するアドレスであると判断してマスタバス１０３ａにバスアクセス許可信号ＡＣＫ“Ｒ０”を出力する。
【００６９】
同時に、バスインタフェース部１０４は、Ｅバス１０５に、Ｅバスアクセス要求信号ＥＲＥＱ“Ｒ１”、Ｅバスリード／ライトＥＲＷ信号、Ｅバスアドレス信号ＥＡＤＤＲ“Ｒ０”を出力する。Ｅバスリード／ライト信号ＥＲＷには、Ｅバスアクセスがリードアクセスであることを示す値“ｒｅａｄ”が出力されている。
【００７０】
外部デバイス制御部１１１は、バスインタフェース部１０４からＥバスアクセス要求信号ＥＲＥＱ“Ｒ１”を受け取るとともに、同じクロックサイクル“１”にてバスマスタＡ１０１から“先読み指示”を受け取るので、外部デバイス１１３に対し、クロックサイクル“１”〜“４”の各クロックに同期して、ＳＤＲＡＭアクセスに必要な外部バス制御信号である行活性コマンドＡＣ、ＮＯＰコマンドＮＰ、リードコマンドＲＤ、リードコマンドＲＤをこの順に出力する。その後のクロックサイクル“５”〜“７”では、ＮＯＰコマンドＮＰを順々に出力する。
【００７１】
なお、外部デバイス制御部１１１は、先読み動作を実行する初回であるので、先読みデータ記憶部１０９には先読みデータ記憶制御信号１２１を出力するが、データ選択部１１０には、データ保持部１０８を選択させるデータ選択信号１２２を出力する。また、クロックサイクル“１”における行活性コマンドＡＣによって活性化されたＳＤＲＡＭのバンク・行は、その後、活性化された状態を維持するようになっている。そして、外部デバイス制御部１１１は、活性化されているＳＤＲＡＭのバンクと行を記憶しており、活性化されているバンクの行と違うアクセスが発生したときは、活性化されているバンクの行を非活性化し、新たにアクセスするバンクの行を活性化する機能を有している。
【００７２】
外部アドレス生成部１１２は、バスインタフェース部１０４からＥバスアドレス信号ＥＡＤＤＲ“Ｒ０”を受け取り、外部デバイス１１３に対し、ＳＤＲＡＭアクセスに必要なアドレス信号を出力する。この場合、アドレスを行アドレス“Ｒ０”と列アドレス“Ｃ０”とに時分割して出力する。具体的には、外部アドレス生成部１１２は、外部デバイス制御部１１１からの外部アドレス生成指示を受けてＥバスアドレス信号ＥＡＤＤＲから行アドレス“Ｒ０”と列アドレス“Ｃ０”を生成する。そして、クロックサイクル“１”にて行アドレス“Ｒ０”を出力し、クロックサイクル“３”にて列アドレス“Ｃ０”を出力する。そして、次のクロックサイクル“４”にて次回のアクセス要求時に用いる列アドレス“Ｃ１”を出力する。
【００７３】
その結果、ここでは、ＳＤＲＡＭのＣＡＳレイテンシは２クロックであるとしているので、クロックサイクル“５”では最初のリードコマンドＲＤによってＳＤＲＡＭから読み出されたリードデータ信号“Ｒ０”がデータバッファ１０７に出力され、クロックサイクル“６”にて２つ目のリードコマンドＲＤによってＳＤＲＡＭから読み出されたリードデータ信号“Ｒ１”がデータバッファ１０７に出力される。
【００７４】
そして、クロックサイクル“５”にて読み出されたリードデータ信号“Ｒ０”は、クロックサイクル“６”にてデータバッファ１０７を通してデータ保持部１０８に入力して一時保持され、データ選択部１１０からＥバスリードデータ信号ＥＤＲ“Ｒ０”としてリードデータ信号バス１５３に出力される。Ｅバスリードデータ信号ＥＤＲ“Ｒ０”は、同じクロックサイクル“６”にてバスインタフェース部１０４を通してリードデータ信号ＭＤＲ＿Ｅ“Ｒ０”としてリードデータ信号バス１３４に出力される。
【００７５】
このとき、バスインタフェース部１０４は、同じクロックサイクル“６”にてバスアクセス終了信号ＥＮＤ“Ｒ０”を制御信号バス１３２に出力する。バスマスタＡ１０１は、このバスアクセス終了信号ＥＮＤ信号“Ｒ０”を見て、リードデータ信号バス１３４からリードデータ信号ＭＤＲ＿Ｅ“Ｒ０”を取り込む。なお、バスインタフェース部１０４は、同じクロックサイクル“６”にてＥバスアクセス終了信号ＥＥＮＤ“Ｒ１”を外部デバイス制御部１１１に対して出力する。
【００７６】
一方、クロックサイクル“６”にて読み出されたリードデータ信号“Ｒ１”は、クロックサイクル“７”にてデータバッファ１０７を通して先読みデータ記憶部１０９に入力して一時保持される。
【００７７】
次に、バスマスタＡ１０１は、クロックサイクル“８”にて、マスタバス１０３ａにバスアクセス要求信号ＲＥＱ“Ｒ１”、リード／ライト信号ＲＷ、アドレス信号ＭＡＤＤＲ“Ｒ１”を出力する。リード／ライト信号ＲＷには、バスアクセスがリードアクセスであることを示す値“ｒｅａｄ”が出力されている。
【００７８】
バスインタフェース部１０４は、バスアクセス要求信号ＲＥＱ“Ｒ１”が出力されると、アドレス信号ＭＡＤＤＲ“Ｒ１”を見て、外部デバイス１１３に対するアドレスであると判断して制御信号バス１３２にバスアクセス許可信号ＡＣＫ“Ｒ１”を出力する。
【００７９】
同時に、バスインタフェース部１０４は、Ｅバス１０５に、Ｅバスアクセス要求信号ＥＲＥＱ“Ｒ１”、Ｅバスリード／ライトＥＲＷ信号、Ｅバスアドレス信号ＥＡＤＤＲ“Ｒ１”を出力する。Ｅバスリード／ライト信号ＥＲＷには、Ｅバスアクセスがリードアクセスであることを示す値“ｒｅａｄ”が出力されている。
【００８０】
外部デバイス制御部１１１は、バスインタフェース部１０４からＥバスアクセス要求信号ＥＲＥＱ“Ｒ１”を受け取るとともに、同じクロックサイクル“８”にてバスマスタＡ１０１から“先読み指示”を受け取るので、クロックサイクル“９”にてデータ選択部１１０に先読みデータ記憶部１０９を選択させる（リードデータスイッチ）。また、先読みデータ記憶部１０９に対し、先読みデータ記憶制御信号１２１を出力する。
【００８１】
その結果、先読みデータ記憶部１０９に保持されていたリードデータ信号“Ｒ１”は、クロックサイクル“９”にて、データ選択部１１０からＥバスリードデータ信号ＥＤＲ“Ｒ１”としてリードデータ信号バス１５３に出力される。Ｅバスリードデータ信号ＥＤＲ“Ｒ１”は、同じクロックサイクル“９”にてバスインタフェース部１０４を通してリードデータ信号ＭＤＲ＿Ｅ“Ｒ１”としてマスタバスＡ１０３ａのリードデータ信号バス１３４に出力される。
【００８２】
このとき、バスインタフェース部１０４は、同じクロックサイクル“９”にてバスアクセス終了信号ＥＮＤ“Ｒ１”をマスタバスＡ１０３ａの制御信号バス１３２に出力する。バスマスタＡ１０１は、このバスアクセス終了信号ＥＮＤ信号“Ｒ１”を見て、マスタバスＡ１０３ａのリードデータ信号バス１３４からリードデータ信号ＭＤＲ＿Ｅ“Ｒ１”を取り込む。なお、バスインタフェース部１０４は、同じクロックサイクル“９”にてＥバスアクセス終了信号ＥＥＮＤ“Ｒ１”を外部デバイス制御部１１１に対して出力する。
【００８３】
一方、外部デバイス制御部１１１は、クロックサイクル“８”にて、バスインタフェース部１０４からＥバスアクセス要求信号ＥＲＥＱ“Ｒ１”を受け取ると、同じクロックサイクル“８”にて、外部デバイス１１３に対し、リードコマンドＲＤを出力する。その後のクロックサイクル“９”〜“１５”では、ＮＯＰコマンドＮＰを順々に出力している。
【００８４】
このクロックサイクル“８”にて発行されたリードコマンドＲＤによってＳＤＲＡＭから読み出されたデータは、クロックサイクル“１０”にてリードデータ“Ｒ２”としてデータバッファ１０７に出力される。そして、クロックサイクル“１１”にて、先読みデータ記憶部１０８に入力され、保持される。
【００８５】
このように、実施の形態１によれば、データの先読みを実行できるようにしたので、以上説明したように、従来例と同じ２回のバスアクセスを行う場合に、１回目では、６クロックサイクル（クロックサイクル“１”〜“６”）を要し従来例と同じであるが、２回目では、２クロックサイクル（クロックサイクル“８”〜“９”）で済み、従来例よりも大幅にアクセスサイクルを節約することができる。
【００８６】
以上は、バスマスタが１つのデータアクセスを行う場合であるが、バスマスタが複数データの連続アクセス（例えば、４データのバーストアクセス）を行った場合でも同様の効果が得られる。
【００８７】
また、ＳＤＲＡＭのように、同じ行であれば最初のアクセスのみ時間がかかるデバイスでは、行を一時活性化すると、その行のデータをいくつか読み込んでおくことができるので、同様にアクセスサイクルを節約することができる。
【００８８】
そして、図１の例で言えば、バスマスタＡ１０１が要求するデータ先読み動作は、データ先読み指示信号の出力を行わないバスマスタＢ１０２からのアクセス要求が発生していない場合に行うようにしたので、バスマスタＡ１０１が連続したアドレスのアクセスを断続的に行う場合に、バスマスタＡ１０１があるアドレスをアクセスした後、バスが混雑していなければ、次のアドレスのデータを先読みして保持しておくことができる。一時保持したデータは、短いクロック数でバスマスタＡ１０１からアクセスすることができるので、バスが混雑したときにアクセスする場合、バスの混雑を緩和することができるという効果がある。
【００８９】
実施の形態２．
図３は、この発明の実施の形態２であるシステムＬＳＩにおけるデータ転送制御回路の構成を示すブロック図である。なお、図３では、図１に示した構成と同一ないしは同等である構成要素には、同一の符号が付されている。ここでは、この実施の形態２に関わる部分を中心に説明する。
【００９０】
図３に示すシステムＬＳＩにおけるデータ転送制御回路では、図１に示した構成において、バスマスタＡ１０１に代えてバスマスタＡ３０１が設けられ、外部デバイス制御部１１１に代えて外部デバイス制御部３０２が設けられ、先読みデータ記憶部１０９に代えて先読みデータ記憶部３０３，３０４が設けられ、データ選択部１１０に代えてデータ選択部３０５が設けられている。
【００９１】
バスマスタＡ３０１は、データ先読み指示信号３１０，３１１を外部デバイス制御部３０２に出力する。先読みデータ記憶部３０３，３０４は、それぞれＳＤＲＡＭのバンク０とバンク１に対応している。すなわち、この実施の形態２は、ＳＤＲＡＭが２バンク構成である場合、つまり２つの異なるアドレス領域がある場合の構成例であるということができる。
【００９２】
外部デバイス制御部３０２には、Ｅバスアドレス信号バス１５１の中のＳＤＲＡＭバンクアドレスを示すアドレス信号（ここでは、「ＳＤＲＡＭバンクアドレス信号」という）３１３が入力されている。外部デバイス制御部３０２は、先読みデータ記憶部３０３，３０４を制御する先読みデータ記憶制御信号３１２を発生するようになっている。
【００９３】
データ選択部３０５は、外部デバイス制御部３０２からデータ選択信号１２２を受けて、データ保持部１０８と先読みデータ記憶部３０３，３０４のいずれか１つの出力を選択してＥバスリードデータバス１５３に送出する。
【００９４】
次に、以上のように構成されるシステムＬＳＩにおけるデータ転送制御回路において、バスマスタＡ３０１が外部デバイス１１３からデータを読み出すデータリード動作について説明する。
【００９５】
バスマスタＡ３０１は、制御信号バス１３２にデータリードを行うために必要な制御信号を出力し、リードする外部デバイス１１３のアドレスをアドレス信号バス１３１に出力する。同時に、バスマスタＡ３０１は、データ先読み指示信号３１０を外部デバイス制御部３０２に対して出力する。
【００９６】
バスインタフェース部１０４およびＥバス１０５では実施の形態１にて説明した動作が行われ、外部デバイス１１３から読み出したデータがバスマスタＡ３０１に取り込まれる。
【００９７】
外部デバイス制御部３０２は、このリードアクセスを行った後、実施の形態１と同様に、次のアクセス要求が来ていなければ、ＳＤＲＡＭバンクアドレス信号３１３に基づき外部アドレス生成部１１２に指示を出し、１回目のアクセスで使用したアドレスをインクリメントまたはデクリメントして次のアドレスを生成させる。外部デバイス制御部３０２は、このアドレスによって外部デバイス１１３のリードアクセスを制御する。読み出されたデータは、先読みデータ記憶部３０３に保持される。
【００９８】
なお、外部デバイス制御部３０２は、実施の形態１にて説明したように、このデータ先読み動作を先読みデータ記憶部３０３に余裕がある場合でもバスマスタＡ３０１から次のアクセス要求が入力されない場合は終了する。また、外部デバイス制御部３０２は、このデータ先読み動作を先読みデータ記憶部３０３が例えば１データ分の容量で一杯になると終了する。
【００９９】
次に、バスマスタＡ３０１からデータ先読み信号３１１の出力を伴うリードアクセスが発生したときも前記と同様の動作を行う。すなわち、外部デバイス１１３からのデータリード、次のアドレス計算、計算したアドレスを用いて外部デバイス１１３の読み出しを行う。このとき、計算したアドレス（次アドレス）で読み出したデータは、データ先読み記憶部３０４に保持される。
【０１００】
次に、バスマスタＡ３０１からデータ先読み指示信号３１０の出力を伴うリードアクセスが発生した場合は、外部デバイス制御部３０２は、データ選択信号１２２を用いてデータ選択部２２３が先読みデータ記憶部３０３の出力を選択するようにする。これによって、外部デバイス１１３から前もって読み出されて先読みデータ記憶部３０３に保持されていたデータがデータ選択部３０５にて選択されてバスマスタＡ３０１に取り込まれる。
【０１０１】
同様に、バスマスタＡ３０１からデータ先読み信号３１１の出力を伴うリードアクセスが発生した場合は、外部デバイス制御部３０２はデータ選択信号１２２により、データ選択部３０５が先読みデータ記憶部３０４の出力を選択するようにする。これによって、外部デバイス１１３から前もって読み出されて先読みデータ記憶部３０４に保持されていたデータがデータ選択部３０５で選択されてバスマスタＡ３０１に取り込まれる。
【０１０２】
このように、実施の形態２よれば、実施の形態１と同様に、外部デバイスをアクセスするバスが空いているときに次のデータを読み込むので、バス使用効率およびデータリードレスポンスの向上が図れる。併せて、バスマスタから外部デバイスの異なるアドレス領域に交互にアクセスするような場合でも、先読みが実施できるので、さらにバスの使用効率を向上させることが可能となる。
【０１０３】
実施の形態３．
図４は、この発明の実施の形態３であるシステムＬＳＩにおけるデータ転送制御回路の構成を示すブロック図である。なお、図４では、図３に示した構成と同一ないしは同等である構成要素には、同一の符号が付されている。ここでは、この実施の形態３に関わる部分を中心に説明する。
【０１０４】
図４に示すシステムＬＳＩにおけるデータ転送制御回路では、図３に示した構成において、バスマスタＡ３０１に代えてバスマスタＡ４０１が設けられ、外部デバイス制御部３０２に代えて外部デバイス制御部４０２が設けられている。
【０１０５】
バスマスタＡ４０１は、データ先読み指示信号３１０，３１１に加えて、アドレス方向指示信号４１２を外部デバイス制御部４０２に出力するようになっている。
【０１０６】
外部デバイス制御部４０２は、データ先読み指示信号３１０またはデータ先読み指示信号３１１が出力されたときに、アドレス方向指示信号４１２が増加方向を指示をしているときは、外部アドレス生成部１１２に対し、次アドレスをバスマスタＡ４０１が出力したアドレスからインクリメント（増加）して生成させる指示を出す。
【０１０７】
逆に、データ先読み指示信号３１０またはデータ先読み指示信号３１１が出力されたときに、アドレス方向指示信号４１２が減少方向を指示しているときは、外部アドレス生成部１１２に対し、次アドレスをバスマスタＡ４０１が出力したアドレスからデクリメント（減少）して生成させる指示を出すようになっている。
【０１０８】
実施の形態３では、バスマスタＡ４０１が外部デバイス１１３に対して行う通常のデータリード動作と次アドレスデータの先読み動作とは、実施の形態２と同様に行われる。したがって、実施の形態２と同様の効果が得られる。
【０１０９】
加えて、実施の形態３によれば、バスマスタから外部デバイスの異なるアドレス領域に交互にアクセスすることができる場合にそれぞれのアドレス領域において、アドレスの増加方向にデータ先読みを行うことも、減少方向にデータ先読みを行うこともできるので、外部デバイスアクセスの先読み動作を柔軟に行うことができるという効果がある。
【０１１０】
実施の形態４．
図５は、この発明の実施の形態４であるシステムＬＳＩにおけるデータ転送制御回路の構成を示すブロック図である。なお、図５では、図１に示した構成と同一ないしは同等である構成要素には、同一の符号が付されている。ここでは、この実施の形態４に関わる部分を中心に説明する。
【０１１１】
図５に示すシステムＬＳＩにおけるデータ転送制御回路では、図１に示した構成において、外部デバイス制御部１１１に代えて外部デバイス制御部５０１が設けられ、データ保持部１０８および先読みデータ記憶部１０９に代えてデータ記憶部５０２が設けられ、データ選択部１１０は削除されている。
【０１１２】
実施の形態４では、バスマスタ１０１が外部デバイス１１３に対して行う通常のデータリード動作と次アドレスデータの先読み動作とは、実施の形態１と同様に行われる。このとき、通常のリードデータと先読みするデータは、図２に示したように、クロックサイクル“５”と“６”とで行われ、同時に読み込まれることはない。
【０１１３】
そこで、実施の形態４では、図１に示したデータ保持部１０８と先読みデータ記憶部１０９とを１つのデータ記憶部５０２で兼用することにし、外部デバイス制御部５０１が、Ｅバスアドレス信号バス１５１上のアドレス信号ＥＡＤＤＲに基づき、データ記憶部５０２に対し、通常のリードデータと先読みのリードデータとを保持させる保持制御信号５１１を出力することにしている。
【０１１４】
そして、データ選択部１１０を不要とし、外部デバイス制御部５０１が、バスマスタＡ１０１からのリード要求に応じて、データ記憶部５０２に対して保持制御信号５１１を出力し、その保持データをＥバスリードデータバス１５３に送出させる制御を行うようになっている。
【０１１５】
この実施の形態４によれば、実施の形態１と同じ効果を有するとともに、ハードウェア量・電力消費量を削減することができる。
【０１１６】
実施の形態５．
図６は、この発明の実施の形態５であるシステムＬＳＩにおけるデータ転送制御回路の構成を示すブロック図である。なお、図６では、図１に示した構成と同一ないしは同等である構成要素には、同一の符号が付されている。ここでは、この実施の形態５に関わる部分を中心に説明する。
【０１１７】
図６に示すシステムＬＳＩにおけるデータ転送制御回路では、図１に示した構成において、バスマスタＡ１０１に代えてバスマスタＡ６０１が設けられ、アドレス比較部６０２が追加されている。
【０１１８】
バスマスタＡ６０１は、バスマスタＢ１０２と同様に、従前のバスアクセス機能のみを備えたものである。アドレス比較部６０２は、例えば図７に示す構成によって、Ｅバスアドレス信号バス１５１上のアドレス信号ＥＡＤＤＲから図１に示したデータ先読み指示信号１２０と同等の機能を有するデータ先読み指示信号６１１を生成し、外部デバイス制御部１１１に与えるようになっている。
【０１１９】
その結果、実施の形態５では、外部デバイス１１３に対する通常のデータリード動作と次アドレスデータの先読み動作とを実施の形態１と同様に行うことができる。したがって、ここでは、アドレス比較部６０２にて行われるデータ先読み指示信号６１１の生成動作について説明する。
【０１２０】
図７は、図６に示すアドレス比較部６０２の構成例を示すブロック図である。図７において、アドレス比較部６０２は、比較アドレス保持部７０１と比較器７０２とを備えている。
【０１２１】
比較アドレス保持部７０１には、バスマスタＡ６０１による外部デバイス１１３へのデータリード動作に先立って、アドレス値が書き込まれるようになっている。比較器７０２は、比較アドレス保持部７０１に書き込まれたアドレス値とＥバスアドレス信号バス１５１上のＥバスアドレス信号ＥＡＤＤＲとを比較し、一致しているときにデータ先読み指示信号６１１を発生する。
【０１２２】
外部デバイス制御部１１１は、バスマスタＡ６０１がデータリード動作を行ったとき、このデータ先読み指示信号６１１が入力されていれば、実施の形態１にて説明したように、通常のリード動作を行った後、データの先読み動作を行うことになる。
【０１２３】
このように、実施の形態５によれば、実施の形態１で用いた特別なバスマスタでなくても、ユーザが意図したアドレス領域のみのデータ先読み動作を行うことができるので、実施の形態１と同じ効果が得られるのに加えて、新しいＬＳＩを設計する際に既存回路が再利用できるという効果が得られる。
【０１２４】
実施の形態６．
図８は、この発明の実施の形態６であるシステムＬＳＩにおけるデータ転送制御回路の構成を示すブロック図である。なお、図８では、図１に示した構成と同一ないしは同等である構成要素には、同一の符号が付されている。ここでは、この実施の形態６に関わる部分を中心に説明する。
【０１２５】
図８に示すシステムＬＳＩにおけるデータ転送制御回路では、図１に示した構成において、バスマスタＡ１０１に代えてバスマスタＡ６０１が設けられ、外部デバイス制御部１１１に代えて外部デバイス制御部８０２が設けられ、データ保持部１０８および先読みデータ記憶部１０９に代えて先読みデータ登録部８０１が設けられ、データ選択部１１０は削除されている。
【０１２６】
バスマスタＡ６０１は、実施の形態５にて説明したように、バスマスタＢ１０２と同様に従前のバスアクセス機能のみを備えたものである。先読みデータ登録部８０１は、例えば図９に示すように複数の先読みデータが登録できるように構成されているが、Ｅバスアドレス信号バス１５１上のＥバスアドレス信号（ＥＡＤＤＲ）８１２と外部アドレス生成部１１２が生成した外部バスアドレス信号８１１と外部デバイス制御部８０２が発生する指示信号８１３とが入力され、有効データ判定信号８１４を外部デバイス制御部８０２に対し出力している。
【０１２７】
この実施の形態６では、実施の形態４と同様に図１に示したデータ保持部１０８と先読みデータ記憶部１０９とを１つの先読みデータ登録部８０１で兼用しているが、外部デバイス制御部８０２は、Ｅバスアドレス信号バス１５１上のＥバスアドレス信号ＥＡＤＤＲが入力されていない。また、実施の形態４とは異なり、バスマスタＡ６０１は、データ先読み信号を発生する機能を有していない。
【０１２８】
したがって、実施の形態６では、外部デバイス制御部８０２は、データ先読み動作を行うか否かは、内部のレジスタに書かれた値に従って行うようになっている。そして、バスマスタＡ６０１からのデータリード要求があった場合に、データ先読み動作を行うと判断したときは、アドレス生成指示を発生して外部アドレス生成部１１２に先読みを行う複数のアドレスを順次生成させ、当該データリード要求を発行したバスマスタＡ６０１以外の他のバスマスタＢ１０２がデータリード要求を発行していないことを条件に、前記複数の先読みアドレスによる読み出しを順次実行し、先読みデータ登録部８０１に保持させる制御を行う。
【０１２９】
その後、外部デバイス制御部８０２は、バスマスタＡ６０１からのデータリード要求があった場合に、指示信号８１３を発生して先読みデータ登録部８０１に登録有無の問い合わせを行い、先読みデータ登録部８０１からの有効データ判定信号８１４が「登録あり」を示すときは先読みデータ登録部８０１の保持データをＥバスリードデータバス１５３に送出させる。一方、有効データ判定信号８１４が「登録あり」を示すときは外部アドレス生成部１１２に通常の読み出しを行うアドレス生成させて新たなデータを読み出し、その通常読み出しデータを先読みデータ登録部８０１を通してＥバスリードデータバス１５３に送出させる制御を行うようになっている。
【０１３０】
先読みデータ登録部８０１の詳細は、後述することとし、Ｅバスリードデータバス１５３へのデータ送出動作について図８を参照して説明する。すなわち、外部デバイス制御部８０２は、先読みされたデータを先読みデータ登録部８０１に保持させるとき、指示信号８１３を用いて、その先読みデータのアドレスの一部を識別子として先読みデータ登録部８０１に登録させることを行う。その後、バスマスタＡ６０１からデータリード要求があった場合、外部デバイス制御部８０２は、指示信号８１３を用いて、先読みデータ登録部８０１に上記登録有無の問い合わせである比較指示を出す。
【０１３１】
先読みデータ登録部８０１は、比較指示を受けて、バスマスタＡ６０１からのアドレスの一部（Ｅバスアドレス信号８１２）と先読みデータ登録部８０１に登録されている複数のアドレスの全部または一部とを比較し、一致するものがあるか否かを示す比較結果を有効データ判定信号８１４を用いて外部デバイス制御部８０２に通知する。
【０１３２】
外部デバイス制御部８０２は、有効データ判定信号８１４が「一致するものがある」を示すときは、指示信号８１３を用いて、先読みデータ登録部８０１に保持されているデータをＥバスリードデータバスＥバスリードデータバス１５３に出力させる。一方、外部デバイス制御部８０２は、有効データ判定信号８１４が「一致するものがない」を示すときは、新たに外部デバイス１１３からデータを読み出し、先読みデータ登録部８０１を経由してＥバスリードデータバスＥバスリードデータバス１５３に出力するようになっている。
【０１３３】
次に、図９を参照して先読みデータ登録部８０１について説明する。なお、図９（ａ）は、図８に示す先読みデータ登録部８０１の構成例を示すブロック図、図９（ｂ）は図９（ａ）に示す選択アドレス信号のアドレス構成を説明する図である。
【０１３４】
図９（ａ）において、アドレス選択部８５０は、Ｅバスアドレス信号バス１５１上のＥバスアドレス信号８１２と外部アドレス生成部１１２とが生成した外部アドレスバス１３１上の外部バスアドレス信号８１１との一方を選択し、選択アドレス信号８５１を出力する。選択アドレス信号８５１は、エントリアドレス８５２と識別アドレス８５３と構成されている。例えば図９（ｂ）に示すように、Ｅバスアドレス信号バス１５１が３２ビット（ｂ０〜ｂ３１）構成である場合、エントリアドレス８５２が２ビット（ｂ２８〜ｂ２９）、識別アドレス８５３が２８ビット（ｂ０〜ｂ２７）となっている。
【０１３５】
エントリアドレス８５２は、エントリデコード部８５４に与えられる。エントリデコード部８５４の出力側には、４つのエントリ（エントリ０〜３）毎に、識別アドレス８５３を登録する識別アドレス登録部８５５と、データバッファ１０７から入力する読み取りデータ（先読みしたリードデータ）を登録する先読みデータ登録部８５６と、エントリに有効なデータおよび識別アドレスが登録されているか否かを示す有効ビットを登録する有効ビット登録部８５７とが設けられている。
【０１３６】
エントリデコード部８５４は、エントリアドレス８５２に基づき、４つのエントリ０〜３の中から有効なエントリを決定する。有効データ判定部８６１には、識別アドレス８５３の他、識別アドレス登録部８５５において決定されたエントリの識別アドレス８６２と有効ビット登録部８５７において決定されたエントリの有効ビット８６３とが入力されている。有効データ判定部は、これらに基づき先読みデータ登録部８５６に有効なデータが登録されているか否かを決定する。決定結果が有効データ判定信号８１４として外部デバイス制御部８０２に出力される。
【０１３７】
また、先読みデータ登録部８５６において決定されたエントリの先読みデータ信号８５８は、データ選択部８５９の一方の入力となる。また、データバッファ１０７から入力する読み取りデータのうち、先読みデータ登録部８５６を通さない場合のデータは、データ保持部８６０にて一時保持された後、データ選択部８５９の他方の入力となる。データ選択部８５９にて選択されたデータは、Ｅバスリードデータバス１５３上にＥバスリードデータ信号ＥＤＲとして送出されるようになっている。
【０１３８】
この先読みデータ登録部８０１は、外部デバイス制御部８０２からの指示信号８１３を制御信号として受けて、先読みしたデータの登録動作と登録したデータの読み出し動作とを行うようになっている。
【０１３９】
まず、この先読みデータ登録部８０１では、先読みしたデータをエントリ０〜エントリ３に４つまで登録することができる。このとき、先読みしたデータをどのエントリに登録するかは、アドレスの一部であるエントリアドレス８５２をそのデータの識別子として用いて決定する。以下、この先読みしたデータの先読みデータ登録部８０１への登録動作を具体的に説明する。
【０１４０】
すなわち、外部デバイス１１３からデータの先読みが行われ、読み出されたデータが外部データバス１３３を通してデータバッファ１０７に出力されているとき、外部デバイス１１３に与えた外部バスアドレス信号８１１がアドレス選択部８５０に入力されるので、アドレス選択部８５０はこのときの外部バスアドレス信号８１１を選択し、選択アドレス信号８５１として出力する。
【０１４１】
エントリアドレスデコード部８５４は、選択アドレス信号８５１のエントリアドレス８５２を使用してエントリを決定する。ここでは、エントリ１が選択されたとする。そして、識別アドレス登録部８５５と先読みデータ登録部８５６のエントリ１に、それそれ識別アドレス８５３上の信号値、外部データバス１３３上の信号値を登録する。また、有効ビット登録部８５７のエントリ１に有効ビット“１”をセットする。これらの動作は、外部デバイス制御部８０２からの指示信号８１３に基づいて行われる。
【０１４２】
次に、先読みデータ登録部８０１に登録されたデータを読み出す動作について説明する。バスマスタＡ６０１からデータリード動作が行われると、そのアドレス信号ＥＡＤＤＲがＥバスアドレス信号バス１５１上に出力されるので、アドレス選択部８５０は、Ｅバスアドレス信号ＥＡＤＤＲであるアドレス信号８１２を選択して選択アドレス信号８５１として出力する。
【０１４３】
エントリアドレスデコード部８５４は、選択アドレス信号８５１のエントリアドレス８５２を使用してエントリを決定する。ここでは、エントリ１が選択されたとする。そして、識別アドレス登録部８５５のエントリ１に登録されている識別アドレス８６２と有効ビット登録部８５７のエントリ１に登録されている有効ビット８６３とを有効データ判定部８６１に与える。
【０１４４】
有効データ判定部８６１は、エントリ１の有効ヒット８６３が“１”で、かつエントリ１に登録された識別アドレス８６２と今読み出そうとしているアドレスの識別アドレス８５３とが一致した場合に、有効データ判定信号８１４を使用して、有効データが先読みデータ登録部８０１に登録されていることを外部デバイス制御部８０２に通知する。
【０１４５】
これを受けて、外部デバイス制御部８０２は、指示信号８１３を用いて、先読みデータ登録部８５６のエントリ１に登録されている先読みデータ信号８５８をデータ選択部８５９に出力させる。データ選択部８５９は、先読みデータ信号８５８を選択してＥバスリードデータバス１５３に出力する。
【０１４６】
一方、有効データ判定部８６１は、エントリ１の有効ヒット８６３が“０”で、またはエントリ１に登録された識別アドレス８６２と今読み出そうとしているアドレスの識別アドレス８５３が一致しない場合は、先読みデータ登録部８０１に有効なデータが登録されていないので、有効データ判定信号８１４を使用して外部デバイス制御部８０２にその旨を伝える。
【０１４７】
これを受けて、外部デバイス制御部８０２は、外部デバイス１１３から新たな通常データを読み出し、その通常データをデータ保持部８６０に保持させる。そして、データ選択部８５９にデータ保持部８６０を選択させてその保持データをＥバスリードデータバス１５３に出力させる。
【０１４８】
斯くして、実施の形態６によれば、バスアクセス機能のみを有するバスマスタＡは、単に、データリード要求を出すだけで、実施の形態５と同様に、先読みされたデータを取得することができる。したがって、実施の形態５と同様に、新しいＬＳＩを設計する際に既存回路の再利用ができるようになる。
【０１４９】
なお、実施の形態１にて説明したように、この発明で言うデータの先読みは、バスが空いているときに実行され、バスが空いていないときは読み込まないという点でいわゆるキャッシュとは異なっている。
【０１５０】
【発明の効果】
以上説明したように、この発明によれば、バスマスタは、外部デバイスである例えばＳＤＲＡＭの連続したアドレスを断続的にアクセスする場合に、あるアドレスをアクセスした後、バスが空いていれば次のデータを先読みして保持しておき、その後、適宜なときにその保持データを取り込むことができるので、後にアクセスすることが予想されるデータや後で必要となることが予想されるデータをバスが空いているときに先読みすることができる。したがって、外部デバイスであるＳＤＲＡＭアクセスのオーバーヘッドを解消することができ、またＳＤＲＡＭアクセスの集中を避けることができる。
【図面の簡単な説明】
【図１】この発明の実施の形態１であるシステムＬＳＩにおけるデータ転送制御回路の構成を示すブロック図である。
【図２】図１に示すシステムＬＳＩにおけるデータ転送制御回路において実施されるデータリード動作時におけるタイミング関係を説明するタイムチャートである。
【図３】この発明の実施の形態２であるシステムＬＳＩにおけるデータ転送制御回路の構成を示すブロック図である。
【図４】この発明の実施の形態３であるシステムＬＳＩにおけるデータ転送制御回路の構成を示すブロック図である。
【図５】この発明の実施の形態４であるシステムＬＳＩにおけるデータ転送制御回路の構成を示すブロック図である。
【図６】この発明の実施の形態５であるシステムＬＳＩにおけるデータ転送制御回路の構成を示すブロック図である。
【図７】図６に示すアドレス比較部の構成例を示すブロック図である。
【図８】この発明の実施の形態６であるシステムＬＳＩにおけるデータ転送制御回路の構成を示すブロック図である。
【図９】図８に示す先読みデータ登録部の構成例およびアドレス構成を説明する図である。
【図１０】従来のシステムＬＳＩにおけるデータ転送制御回路の構成例を示すブロック図である。
【図１１】図１０に示すシステムＬＳＩにおけるデータ転送制御回路において実施されるデータリード動作時におけるタイミング関係を説明するタイムチャートである。
【符号の説明】
１０１，３０１，４０１，６０１  バスマスタＡ、１０２  バスマスタＢ、１０３ａ  マスタバスＡ、１３１  アドレス信号バス、１３２  制御信号バス、１３３  ライトデータバス、１３４  リードデータバス、１０３ｂ  マスタバスＢ、１０４  バスインタフェース部、１０５  Ｅバス、１０６，１０８  データ保持部、１０７  データバッファ、１０９，３０３，３０４  先読みデータ記憶部、５０２  データ記憶部、１１０，３０５  データ選択部、１１１，３０２，４０２，５０１，８０２  外部デバイス制御部、１１２  外部アドレス生成部、１１３  外部デバイス、６０１  アドレス比較部、７０１  アドレス保持部、７０２  比較器、８０２  先読みデータ登録部、８５０  アドレス選択部、８５４  エントリデコード部、８５５  識別アドレス登録部、８５６  先読みデータ登録部、８５７  有効ビット登録部、８５９  データ選択部、８６０  データ保持部、８６１  有効データ判定部。
【図１】
2004318252.tif 000003
【図２】
2004318252.tif 000004
【図３】
2004318252.tif 000005
【図４】
2004318252.tif 000006
【図５】
2004318252.tif 000007
【図６】
2004318252.tif 000008
【図７】
2004318252.tif 000009
【図８】
2004318252.tif 000010
【図９】
2004318252.tif 000011
【図１０】
2004318252.tif 000012
【図１１】
2004318252.tif 000013