(57)【要約】【課題】共有バスに接続する複数のＤＭＡチャネルがあって、ＳＤＲＡＭ等のメモリにアクセスする際に、あらかじめ決められた優先順位を守りながら、高効率にメモリアクセスする調停手段を提供する。【解決手段】マスターデバイスからのデータ転送要求を一定量保持する要求保持部と、保持されたデータ転送要求を優先順位及び予め定められた回数だけ連続するように並び替える要求並び替え部とを備え、前記データ転送要求を前記要求並び替え部が並び替えた順で発行することで、優先順位に応じて複数チャネルを並び替えるとともに同格の優先順位を持つ複数チャネルを平均的に連続させることができる。【選択図】図１
2011175621.tif 000002
【特許請求の範囲】
【請求項１】
複数のＤＭＡチャネルの何れかを選択してメモリとの間でデータ転送を行うデータ転送制御装置であって、
前記ＤＭＡチャネルごとのデータ転送要求を一定量保持する要求保持部と、
保持された前記データ転送要求の基本転送順位を、前記ＤＭＡチャネルごとに予め定められた連続転送回数だけ連続するように選択して並び替える要求並び替え部とを備えることを特徴とするデータ転送制御装置。
【請求項２】
前記要求保持部は、
前記データ転送要求が前記基本転送順位の順に格納されるレジスタを備え、
前記要求並び替え部は、
現転送タイミングで選択される前記データ転送要求が格納されている前記レジスタを指示する第１ポインタと、
次転送タイミングで選択される前記データ転送要求が格納されている前記レジスタを指示する第２ポインタとを備えることを特徴とする請求項１に記載のデータ転送制御装置。
【請求項３】
前記要求並び替え部は、
前記連続転送回数を計数するカウンタを備え、
前記カウンタが前記連続転送回数を計数することに応じて、前記第２ポインタは、最上位の前記基本転送順位の前記レジスタを指示することを特徴とする請求項１または２に記載のデータ転送制御装置。
【請求項４】
前記レジスタは前記基本転送順位の高い順にアドレス値が割り振られ、転送ごとに前記データ転送要求が前記基本転送順位の高いアドレス値を有する前記レジスタに繰り上がり、
前記第２ポインタは繰り上がり後のアドレスを指示することを特徴とする請求項１乃至３の少なくとも何れか１項に記載のデータ転送制御装置。
【請求項５】
前記データ転送要求は、転送間の連続性を要求する場合に有効とされる連続転送フラグを備え、
前記連続転送回数は、有効な前記連続転送フラグに応じて設定されることを特徴とする請求項１乃至４の少なくとも何れか１項に記載のデータ転送制御装置。
【請求項６】
前記要求並び替え部において、
前記データ転送要求に係る優先順位が高いＤＭＡチャネルほど前記連続転送回数を多く設定することを特徴とする請求項１乃至５の少なくとも何れか１項に記載のデータ転送制御装置。
【請求項７】
前記複数のＤＭＡチャネルの一部は第１優先レベルを有する第１チャネル群に属し、他の一部は前記第１優先レベルよりも優先度が低い第２優先レベルを有する第２チャネル群に属しており、
前記要求保持部は、
前記第１チャネル群に属する前記ＤＭＡチャネルのデータ転送要求を保持する第１要求保持部と、
前記第２チャネル群に属する前記ＤＭＡチャネルのデータ転送要求を保持する第２要求保持部とを備え、
前記要求並び替え部は、
前記第１要求保持部に保持された前記データ転送要求の基本転送順位を、前記ＤＭＡチャネルごとに予め定められた第１連続転送回数だけ連続するように選択して並び替える第１要求並び替え部と、
前記第２要求保持部に保持された前記データ転送要求の基本転送順位を、前記ＤＭＡチャネルごとに予め定められた第２連続転送回数だけ連続するように選択して並び替える第２要求並び替え部と、
前記第１要求並び替え部による前記第１連続転送回数の連続選択を１セットとして第１セット数の連続選択を有効にするごとに、前記第２要求並び替え部による前記第２連続転送回数の連続選択を１セットとして第２セット数の連続選択を有効にする優先レベル調停部とを備えることを特徴とする請求項１乃至６の何れか１項に記載のデータ転送制御装置。
【請求項８】
前記第１チャネル群に属するＤＭＡチャネルのデータ転送要求が前記第１要求保持部に保持されていない状態から新たに保持されるまでの所定期間、前記第２要求保持部に保持されている前記データ転送要求が前記第２要求並べ替え部により選択されることをマスクする第１マスク部を備えることを特徴とする請求項７に記載のデータ転送制御装置。
【請求項９】
前記第２要求並び替え部による前記第２セット数より大きな第３セット数の連続選択が有効にされることに応じて、前記第２要求保持部に保持されている前記データ転送要求が前記第２要求並べ替え部により選択されることをマスクする第２マスク部を備えることを特徴とする請求項７に記載のデータ転送制御装置。
【請求項１０】
前記複数のＤＭＡチャネルの一部は第１優先レベルを有する第１チャネル群に属し、他の一部は前記第１優先レベルよりも優先度が低い第２優先レベルを有する第２チャネル群に属しており、
前記要求保持部は、
前記第１チャネル群に属する前記データ転送要求が入力されるごとに１を加算し出力されるごとに１を減算するポインタであって、入力される該データ転送要求の前記レジスタにおける格納位置を指示する第１要求保持ポインタと、
前記第１チャネル群に属する前記データ転送要求が入力される回数をカウントし、所定回数のカウントにより初期化される第１カウンタと、
前記第１および第２チャネル群に属する前記データ転送要求が入力されるごとに１を加算し出力されるごとに１を減算するポインタであって、前記レジスタにおける最下位格納位置であって入力される該データ転送要求の格納位置を指示する第２要求保持ポインタと、
前記第１要求保持ポインタは、前記第１カウンタの初期化に応じて、前記第１要求保持ポインタの値が前記第２要求保持ポインタの値より小さい場合に、前記第１要求ポインタに前記１よりも大きな規定数を加算するポインタ制御部とを備えることを特徴とする請求項２乃至６の何れか１項に記載のデータ転送制御装置。
【請求項１１】
前記第２チャネル群に属する前記データ転送要求が入力されるごとにカウントアップし出力されるごとにカウントダウンする第２カウンタと、
前記第２カウンタのカウント値が規定カウント値である場合に、前記第２チャネル群に属する前記データ転送要求の入力をマスクする入力マスク部とを備えることを特徴とする請求項１０に記載のデータ転送制御装置。
【請求項１２】
複数のＤＭＡチャネルの何れかを選択してメモリとの間でデータ転送を行うデータ転送制御方法であって、
前記ＤＭＡチャネルごとのデータ転送要求を一定量保持する行程と、
保持された前記データ転送要求の基本転送順位を、前記ＤＭＡチャネルごとに予め定められた連続転送回数だけ連続するように選択して並び替える行程とを有することを特徴とするデータ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
複数の機能がＤｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ（ＤＭＡ）チャネルを通じて共有バスに接続される際のデータ転送に関する。
【背景技術】
【０００２】
メモリアクセスの高効率化について複数の技術が知られている。例えば、メモリアクセスにおけるオーバーヘッドを隠蔽して高転送効率を図るメモリアクセス装置として、メモリアクセス要求の単位で発行順を入れ替えるのではなく、バンク単位のコマンドの発行順を入れ替える技術が知られている。また、転送効率の改善と高速化アクセスを図るデータ処理装置として、一つのバッファに格納されたアドレスと該バッファに連接するバッファに格納されたアドレスとを比較し、連続転送可能であることを示す場合、転送先デバイスに対し連続してアドレスとデータを送出する技術が知られている。また、利用環境に応じたバス調停を行うバス調停方法として、ＤＭＡ要求信号を優先順位と関連付けられた固有の識別番号に従って並び替え、最も優先順位の高いＤＭＡ要求信号を選択する技術が知られている（特許文献１〜３）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２６０４７２
【特許文献２】特開２００２−３０４３６５
【特許文献３】特開２００５−７１１８６
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、前記メモリアクセス装置では、バンク等の転送アドレスで並び替えをすると優先順位制御が意味をなくしてしまう。
また、デジタルスチルカメラからの画像データの転送などに例示されるように、メモリアクセス要求の少ない期間と多い期間とが混在してデータ転送量に粗密があるＤＭＡチャネルがある場合、他のＤＭＡチャネルによるデータ転送との関係により当該ＤＭＡチャネルにおけるデータ転送が滞りシステム破綻を招来するおそれがある。
【課題を解決するための手段】
【０００５】
複数のＤＭＡチャネルの何れかを選択してメモリとの間でデータ転送を行うデータ転送制御装置であって、前記ＤＭＡチャネルごとのデータ転送要求を一定量保持する要求保持部と、保持された前記データ転送要求の基本転送順位を、前記ＤＭＡチャネルごとに予め定められた連続転送回数だけ連続するように選択して並び替える要求並び替え部とを備えることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、不連続に受け付けられたデータ転送要求を、ＤＭＡチャネルごとに連続させることができ、また、複数のＤＭＡチャネルのデータ転送を平均的に連続させることができる。これにより、効率の高いデータ転送が可能となる。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態におけるブロック図
【図２】要求並び替え部ＳＣ１の動作時のフロー
【図３】要求保持部Ｋ１の動作時のフロー
【図４】要求並び替え部ＳＣ１および要求保持部Ｋ１の動作の具体例
【図５】第２実施形態におけるブロック図
【図６】第３実施形態におけるブロック図
【図７】第３実施形態の要求保持・並べ替え部のブロック図
【図８】レベル間調停部の動作説明図
【図９】チャネル確定部の動作説明図
【図１０】優先フラグ生成部のブロック図
【図１１】優先フラグ生成部の動作を説明するためのフロー
【図１２】第３実施形態による要求発行の例を示す図
【図１３】レベル１要求の発行を制御する第１変形例のブロック図（要部）
【図１４】レベル１要求の発行を制御する第２変形例のブロック図（要部）
【図１５】レベル１要求の発行を制御する第１および第２変形例により制御されたデータ転送の様子を示す模式図
【図１６】第４実施形態におけるブロック図（要部）
【図１７】第４実施形態の動作を説明する図
【発明を実施するための形態】
【０００８】
図１として第１実施形態におけるブロック図を示す。メモリアクセス制御部１は調停部Ａ１、第１転送パラメータ選択部ＴＳ１、要求保持部Ｋ１、要求並び替え部ＳＣ１、第２転送パラメータ選択部ＴＳ２、共有バスＩ／Ｆ部Ｉ１を備える。
【０００９】
外部装置からメモリへのＤＭＡアクセス要求に伴い、調停部Ａ１には、複数のＤＭＡチャネル信号ＤＭＡ１ないしＤＭＡｎが入力される。ＤＭＡチャネル信号ＤＭＡ１ないしＤＭＡｎはＤＭＡアクセス要求が行われたＤＭＡチャネルの番号を示す信号である。また、第１転送パラメータ選択部ＴＳ１には、ＤＭＡチャネル信号ＤＭＡ１ないしＤＭＡｎに対応する複数の転送パラメータ信号ＴＰ１ないしＴＰｎが外部から入力される。転送パラメータＴＰ１ないしＴＰｎは、ＤＭＡアクセスを行うメモリのアドレスの指定、リードライト等のアクセス方法の指定、および後述する連続転送フラグを含む信号である。
調停部Ａ１は同時に受け付けられた複数のＤＭＡチャネル信号ＤＭＡ１ないしＤＭＡｎについて予め定められたチャネルの優先順位に従って調停を行う。そして、調停部Ａ１は、ＤＭＡチャネル信号の調停後、ＤＭＡチャネル信号を要求保持部Ｋ１および第１転送パラメータ選択部ＴＳ１へと出力する。そして、第１転送パラメータ選択部ＴＳ１は、調停部Ａ１から入力されたＤＭＡチャネル信号に対応する転送パラメータ信号を要求保持部Ｋ１へと出力する。
【００１０】
要求保持部Ｋ１はＤＭＡチャネル要求保持部Ｋ１１、転送パラメータ保持部Ｋ１３、および要求保持ポインタＫ１５を備える。ＤＭＡチャネル要求保持部Ｋ１１には、調停部Ａ１から、調停部Ａ１によって調停されたＤＭＡチャネル信号が入力される。転送パラメータ保持部Ｋ１３は第１転送パラメータ選択部ＴＳ１に接続され、第１転送パラメータ選択部ＴＳ１から出力される、調停されたＤＭＡチャネル信号に対応する転送パラメータ信号が入力される。
【００１１】
ＤＭＡチャネル要求保持部Ｋ１１および転送パラメータ保持部Ｋ１３は、ともにアドレス０からアドレスｍまでのｍ＋１個のレジスタを備える。ＤＭＡチャネル要求保持部Ｋ１１および転送パラメータ保持部Ｋ１３の備えるレジスタは、ともに要求保持ポインタＫ１５によって指示される。ＤＭＡチャネル要求保持部Ｋ１１には、アドレス０〜ｍの各レジスタに、外部からの伝送要求に対して調停部Ａ１で調停されるＤＭＡチャネル信号がアドレスの若い順に格納された上で保持される。転送パラメータ保持部Ｋ１３には、アドレス０〜ｍの各レジスタに、ＤＭＡチャネル要求保持部Ｋ１１の各レジスタに保持されているＤＭＡチャネル信号に対応する転送パラメータ信号がアドレスの若い順に格納された上で保持される。
【００１２】
要求保持ポインタＫ１５は、ＤＭＡチャネル要求保持部Ｋ１１のレジスタのうちＤＭＡチャネル信号が保持されているレジスタのアドレスの最大値、および転送パラメータ保持部Ｋ１３のレジスタのうち転送パラメータ信号が保持されているレジスタのアドレスの最大値を示す。すなわち、要求保持ポインタＫ１５は、ＤＭＡチャネル要求保持部Ｋ１１に保持されている伝送要求のなされたＤＭＡチャネル信号の個数から１を減算した値、および転送パラメータ保持部Ｋ１３に保持されている転送パラメータ信号の個数から１を減算した値を示す。
【００１３】
要求保持部Ｋ１から出力されるＤＭＡチャネル信号は要求並び替え部ＳＣ１に入力される。また、要求保持部Ｋ１から出力される転送パラメータ信号は要求並び替え部ＳＣ１および第２転送パラメータ選択部ＴＳ２に入力される。
【００１４】
要求並び替え部ＳＣ１は、連続アクセス制御部ＳＣ１１と、カレントポインタＳＣ１３３と、ネクストポインタ１３５と、ポインタ制御部ＳＣ１３１と、シフト制御部ＳＣ１５とを備える。要求並び替え部ＳＣ１は、要求保持部Ｋ１からＤＭＡチャネル信号が入力される。
連続アクセス制御部ＳＣ１１は連続カウンタＳＣ１１１を備える。連続アクセス制御部ＳＣ１１には、調停部Ａ１および外部のＣＰＵから、同一のＤＭＡチャネルからメモリへの連続アクセスのディセーブル／イネーブルを制御する信号が入力される。また、要求保持部Ｋ１から転送パラメータが入力される。転送パラメータには連続転送フラグが含まれており、連続転送フラグによっても同一のＤＭＡチャネルからメモリへの連続アクセスのディセーブル／イネーブルが制御される。
【００１５】
例えば、画像データ転送の場合、各チャネルがアクセスするメモリのアドレスは連続しているため、各チャネルはメモリ上の同一ページ内へ連続してアクセスする場合が多い。メモリコントローラＭ１は、同一ページ内への連続アクセスの場合、プリチャージ動作を行わないでデータ転送行うことができる。よって、チャネル番号ごとにまとめて並び替えて連続した要求を発行することで高効率な転送を行うことが可能となる。
【００１６】
アクセス要求を連続させる判定のための情報は、あらかじめＤＭＡチャネルに対応させてＣＰＵから指示、あるいは、調停部Ａ１から優先順位の高いチャネルについて動的に指示する。
【００１７】
画像データ転送の場合、水平画素折り返しや１フレーム内の局所アクセスでは、アドレスが不連続になる可能性がある。そこで、連続アクセスではないことを、チャネルの要求と同時に連続転送フラグをディセーブルにして指示し変更可能とする。この連続転送フラグは転送パラメータに埋め込まれ、マスターデバイスから転送される。
【００１８】
例えば、撮像時におけるＣＭＯＳセンサのデータ保持可能期間などの外部装置の時間的制約等に起因するシステム破綻を回避するためにまとまったデータ転送が必要とされる時には、連続転送フラグをイネーブルとすることで連続転送を可能とする。
【００１９】
さらに同格のチャネルは平均的に連続となるように、あるいは特定チャネルばかりが連続しないように、連続アクセスを許可する回数をチャネルごとに指示し、連続カウンタＳＣ１１１によって制御し、アプリケーションに応じた調停と高効率アクセスが調整できるようにする。
【００２０】
ポインタ制御部ＳＣ１３１は、連続アクセス制御部ＳＣ１１からの制御信号に基づき、カレントポインタＳＣ１３３、ネクストポインタＳＣ１３５、シフト制御部ＳＣ１５を制御する。
カレントポインタＳＣ１３３はＤＭＡチャネル要求保持部Ｋ１１および転送パラメータ保持部Ｋ１３のレジスタを指示するポインタである。カレントポインタＳＣ１３３に指されたレジスタに格納されているＤＭＡチャネル信号と転送パラメータ信号が第２転送パラメータ選択部ＴＳ２に選択される。
【００２１】
ネクストポインタＳＣ１３５は、カレントポインタＳＣ１３３と同様に、ＤＭＡチャネル要求保持部Ｋ１１および転送パラメータ保持部Ｋ１３のレジスタを指示するポインタである。ネクストポインタＳＣ１３５は、カレントポインタＳＣ１３３が指示するレジスタに格納されたＤＭＡチャネル番号と同一のＤＭＡチャネル番号が要求保持部Ｋ１１のレジスタに存在している場合は、そのレジスタのアドレスのから１を引いたアドレスを示す。または、ネクストポインタＳＣ１３５は、カレントポインタＳＣ１３３が指示するレジスタに格納されたＤＭＡチャネル番号と同一のＤＭＡチャネル番号がＤＭＡチャネル要求保持部Ｋ１１のレジスタ中に存在しない場合は０を示す。
【００２２】
カレントポインタＳＣ１３３の指示するアドレスに格納されているＤＭＡチャネル信号および転送パラメータ信号が第２転送パラメータ選択部ＴＳ２へと出力される。その後、ポインタ制御部ＳＣ１３１は、シフト制御部ＳＣ１５を制御し、ＤＭＡチャネル要求保持部Ｋ１１および転送パラメータ保持部Ｋ１３のレジスタの内容を１アドレス若いレジスタにシフトする。
その後、ポインタ制御部ＳＣ１３１は、ネクストポインタＳＣ１３５に保持された値をカレントポインタＳＣ１３３に上書きする。これらポインタ制御部ＳＣ１３１の制御により同一のＤＭＡチャネルからのＤＭＡアクセス要求を連続させることができる。動作の詳細については後述する。
【００２３】
第２転送パラメータ選択部ＴＳ２は、要求保持部Ｋ１から転送パラメータが入力される。また、要求並び替え部ＳＣ１からカレントポインタＳＣ１３３の値が入力される。入力されたカレントポインタＳＣ１３３の値に基づき、共有バスＩ／Ｆ部Ｉ１へと出力する転送パラメータを決定し、出力する。
【００２４】
共有バスＩ／Ｆ部Ｉ１は、外部に存在するメモリコントローラＭ１と接続され、入力された転送パラメータに基づき、メモリコントローラＭ１へＤＭＡアクセス要求を出力する。メモリコントローラＭ１について、バスプロトコルの要求受付シーケンスとデータ転送シーケンスは分離されており、データ転送シーケンスの実行状態に関わらず要求受付シーケンスが実行される。
【００２５】
要求並び替え部ＳＣ１のフローチャートを図２に示す。また、要求保持部Ｋ１のフローチャートを図３に示す。また、図４には、図２、図３のフローを具体的に示す。要求並び替え部ＳＣ１が動作を開始する（Ｓ０）。カレントポインタＳＣ１３３、ネクストポインタ１３５、連続カウンタＳＣ１１１を初期化し０とする（Ｓ２）。
【００２６】
カレントポインタＳＣ１３３により選択されるＤＭＡ要求保持部Ｋ１１に保持されたＤＭＡチャネル信号により指示されるチャネルが有効なチャネルである場合（Ｓ４：ＹＥＳ）、カレントポインタＳＣ１３３により選択されたＤＭＡチャネル信号により示されるＤＭＡチャネル（以下、選択チャネルと呼ぶ）の連続転送フラグをチェックする（Ｓ６）。選択チャネルが有効なチャネルでなかった場合（Ｓ４：ＮＯ）、再度選択チャネルについての有効性をチェックする（Ｓ４）。連続転送フラグが有効であれば（Ｓ６：ＹＥＳ）、選択チャネルと同一のチャネルがＤＭＡチャネル要求保持部Ｋ１１にスタックされているＤＭＡチャネル中にあるかどうかサーチする（Ｓ８）。連続転送フラグが無効であった場合、後に記載のステップＳＣ１４を実行する（Ｓ６：ＮＯ）。選択チャネルがあった場合（Ｓ１０：ＹＥＳ）、一致したアドレスの値から１を引いた値をネクストポインタ１３５に格納して更新する（Ｓ１２）。ＤＭＡ要求保持部Ｋ１１にスタックされている要求チャネル中に選択チャネルがなかった場合は（Ｓ１０：ＮＯ）、ネクストポインタ１３５に０を代入する（Ｓ１４）。
【００２７】
メモリアクセス制御部１は、メモリコントローラＭ１に対して、カレントポインタＳＣ１３３により指示されている要求保持部Ｋ１のＤＭＡ要求保持部Ｋ１１に格納されているＤＭＡチャネル信号についての要求を第２転送パラメータ選択部ＴＳ２へ発行する（Ｓ１６）。そして、要求保持部Ｋ１のカレントポインタＳＣ１３３が保持するアドレスより大きなアドレス値を持つレジスタについて、その内容を"１"アドレス若いレジスタにシフトする操作を行う。また、ネクストポインタ１３５の値をカレントポインタＳＣ１３３に代入する。また、選択チャネルについて要求発行を完了したため要求保持部Ｋ１の要求保持ポインタＫ１５の値を１引く（Ｓ１８）。
【００２８】
次に、カレントポインタＳＣ１３３が指示している転送パラメータ保持部Ｋ１３に格納されている連続パラメータに含まれる連続転送フラグがイネーブルにされているかどうかチェックを行う（Ｓ２０）。連続転送フラグがイネーブルにされていた場合（Ｓ２０：ＹＥＳ）、連続カウンタＳＣ１１１に１を加算する（Ｓ２２）。連続転送フラグがイネーブルにされていない場合には（Ｓ２０：ＮＯ）、後述する処理（Ｓ２６）に移る。
【００２９】
ステップＳ２２の後、連続カウンタＳＣ１１１の値が設定値未満かどうかチェックを行う（Ｓ２４）。連続カウンタＳＣ１１１の値が設定値と等しいときは（Ｓ２４：ＹＥＳ）、カレントポインタＳＣ１３３、ネクストポインタ１３５、連続カウンタＳＣ１１１を全て０に初期化する（Ｓ２６）。連続カウンタＳＣ１１１の値が設定値に満たない場合は（Ｓ２４：ＮＯ）、後述する処理（Ｓ２８）に移る。
最後に、全部の処理が終了しているか否かをチェックする（Ｓ２８）。要求保持部Ｋ１に保持されているリクエストが無い、すなわち、要求保持ポインタＫ１５の値が０である場合、全部の処理が終了していると判断される（Ｓ２８：ＹＥＳ）。そして、処理を終了する（Ｓ３０）。全部の処理が終了していなかった場合（Ｓ２８：ＮＯ）は、ステップＳ４に戻る。
【００３０】
要求保持部Ｋ１のフローチャートを図３に示す。なお、要求並び替え部ＳＣ１と要求保持部Ｋ１において要求保持ポインタＫ１５は共通である。
【００３１】
要求保持部Ｋ１が動作を開始すると（Ｔ０）、要求保持ポインタＫ１５の内容を初期化し、値として０を代入する（Ｔ２）。要求保持部Ｋ１がシフト中ではない場合（Ｔ４：ＮＯ）、調停部Ａ１から要求保持部Ｋ１にデータ転送を要求するＤＭＡチャネル信号を取り込み、要求保持ポインタＫ１５の値を１加算する（Ｔ６）。要求保持部Ｋ１がシフト中の場合（Ｔ４：ＹＥＳ）、シフト動作が完了するまで待機する。調停部Ａ１からデータ転送を要求するＤＭＡチャネル番号が引き続き入力されている場合は（Ｔ８：ＮＯ）、ステップＴ４に戻る。調停部Ａ１からデータ転送を要求するＤＭＡチャネル信号の入力がない場合は全処理が終了したと判断され（Ｔ８：ＹＥＳ）、処理を終了する（Ｔ１０）。
【００３２】
以上説明した図２、図３に係るフローを図４に示す具体例により説明する。
【００３３】
図４において、ＤＭＡ要求保持部Ｋ１１のレジスタの個数を８個とし、ＤＭＡ要求保持部Ｋ１１には、調停部Ａ１からの調停結果に応じてレジスタのアドレス０〜７にＤＭＡチャネル信号が保持されている。具体的には、アドレス０〜７のそれぞれのレジスタに、ＤＭＡチャネル１、２、１、３、２、１、４、２を示すＤＭＡチャネル信号が保持されている。これに応じて要求保持ポインタＫ１５には"７"が保持されている。カレントポインタＳＣ１３３、ネクストポインタＳＣ１３５には、それぞれ、"０"、"１"（＝２−１）が保持されている状態である。
【００３４】
ステップＳ４により、カレントポインタＳＣ１３３に保持されている"０"のアドレスを有するＤＭＡ要求保持部Ｋ１１のレジスタに保持されているＤＭＡチャネル信号（ＤＭＡチャネル１を指示）は有効なチャネルであるか否かが判断される。
【００３５】
カレントポインタＳＣ１３３に選択されたＤＭＡチャネル信号であるＤＭＡチャネル１の連続転送が有効であったとする（図２、Ｓ６：ＹＥＳ）。この場合、ステップＳ８により、ポインタ制御部ＳＣ１３１はＤＭＡチャネル要求保持部Ｋ１１のアドレス１以上のレジスタについて、ＤＭＡチャネル１を示すＤＭＡチャネル信号が保持されているか否かをサーチする。サーチした結果、アドレス２のレジスタにＤＭＡチャネル１を示すＤＭＡチャネル信号が保持されていることが検出される（図２、Ｓ１０：ＹＥＳ）。よって、ステップＳ１２により、ポインタ制御部ＳＣ１３１は、アドレスの値２から１を減算した値１をネクストポインタＳＣ１３５に格納する。
【００３６】
そして、ステップＳ１６により、ＤＭＡチャネル要求保持部Ｋ１１のアドレス０のレジスタに格納されたＤＭＡチャネル１を示すＤＭＡチャネル信号が、第２転送パラメータ選択部ＴＳ２へと出力される。
出力された結果、ＤＭＡチャネル要求保持部Ｋ１１のアドレス０のレジスタがクリアされる。ステップＳ１８（１）により、シフト制御部ＳＣ１５によりＤＭＡチャネル要求保持部Ｋ１１は、アドレス１から７に格納されたＤＭＡチャネル信号を１ずつ若いアドレスのレジスタへ移動し、空になったアドレス０のレジスタをつめるシフト動作を行う。
【００３７】
ステップＳ１８（２）により、ネクストポインタＳＣ１３５の値をカレントポインタＳＣ１３３に上書きする。そして、カレントポインタＳＣ１３３は、アドレス１のレジスタを指示する。この時、アドレス１のレジスタにはＤＭＡチャネル１を示すＤＭＡチャネル信号が格納されている。よって、次にＤＭＡチャネル要求保持部Ｋ１１から第２転送パラメータ選択部ＴＳ２へ転送されるＤＭＡチャネル信号は、再びＤＭＡチャネル１を示すＤＭＡチャネル信号となる。結果、ＤＭＡチャネル１についてのアクセスが連続して実行される。
【００３８】
ＤＭＡチャネル要求保持部Ｋ１１に格納されたＤＭＡチャネル信号が第２転送パラメータ選択部ＴＳ２に転送された後、シフト動作が行われる。結果、ＤＭＡチャネル要求保持部Ｋ１１のレジスタのうちＤＭＡチャネル信号が保持されているレジスタのアドレスの最大値が７から１減少して６になり、要求保持ポインタＫ１５の値も６へと変更される。
ステップＴ６において、調停部Ａ１に新たなＤＭＡチャネル信号が入力されると、調停部Ａ１から新たに調停されたＤＭＡチャネル信号が出力され、ＤＭＡチャネル要求保持部Ｋ１１に入力される。この場合、ＤＭＡチャネル要求保持部Ｋ１１の空きレジスタのうち一番若いアドレスのレジスタへ当該ＤＭＡチャネル信号は格納され、要求保持ポインタＫ１５の値は１加算される。
【００３９】
以下に第１実施例の効果を述べる。例えば、画像データ転送におけるバースト転送によるメモリアクセスでは、同じチャネルの連続アクセスは同じページ内の可能性が高いという特徴がある。また、優先順位の高いチャネルは、必要とするデータサイズに対して、当該データサイズより小さいバーストサイズで転送を行う場合がある。この場合、バーストサイズ単位で分割された要求が発行される。分割された要求が不連続に受け付けられると、メモリへのアクセス効率が低下する虞がある。
【００４０】
このことから、要求保持部Ｋ１においてアクセスごとに異なるチャネル番号の要求を、要求並び替え部ＳＣ１において、チャネル番号ごとにまとめて並び替えて連続した要求とする。これにより、不連続に受け付けられた優先順位の高いチャネルの要求をまとめて発行することができ、高効率なデータ転送が可能となる。
【００４１】
また、カレントポインタＳＣ１３３及びネクストポインタＳＣ１３５は、ポインタ制御部ＳＣ１３１により制御される。カレントポインタＳＣ１３３は、ＤＭＡチャネル要求保持部Ｋ１１及び転送パラメータ保持部Ｋ１３が備えるレジスタのうち、現在転送が行われているＤＭＡチャネル信号及び転送パラメータの格納されているレジスタのアドレスを指示する。ネクストポインタＳ１３５は、ＤＭＡチャネル要求保持部Ｋ１１及び転送パラメータ保持部Ｋ１３が備えるレジスタのうち、次の転送タイミングで転送を行うＤＭＡチャネル信号及び転送パラメータの格納されているレジスタのアドレスを指示する。この、カレントポインタＳ１３３及びネクストポインタＳ１３５の制御により、要求並び替え部ＳＣ１は速やかに選択チャネルの要求を発行することができる。
【００４２】
また、ＤＭＡチャネル要求保持部Ｋ１１及び転送パラメータ保持部Ｋ１３は、調停部Ａ１が調停したＤＭＡチャネル信号及び転送パラメータ信号を、アドレスの若い順番でレジスタに保持する。また、ＤＭＡチャネル要求保持部Ｋ１１及び転送パラメータ保持部Ｋ１３は、ＤＭＡチャネル信号及び転送パラメータ信号を第２転送パラメータ選択部に発行した後、シフト動作を行い、信号の発行に伴ない空となったレジスタをつめる。メモリアクセス制御部１が連続して同じＤＭＡチャネルのデータ転送要求を発行する場合、ネクストポインタＳ１３５は、前記シフト動作によるアドレスのくり上がりを考慮したアドレス値を保持する。メモリアクセス制御部１がデータ転送要求発行をした後、ネクストポインタＳ１３５の保持するアドレス値をカレントポインタＳ１３３のアドレス値として上書きすることで、速やかに次のデータ転送要求を発行することが出来る。
【００４３】
チャネルを連続させる回数をチャネルごとにあらかじめ設定し、処理を行う度連続カウンタＳＣ１１１を１加算し、連続カウンタＳＣ１１１の値と設定値を比較する。そして、連続カウンタＳＣ１１１の値が設定値と等しくなったとき、次の優先順位のチャネルに遷移させる。これにより、同格のチャネルが平均的に連続となるように、あるいは特定チャネルだけが連続しないようにすることが実現出来る。
【００４４】
チャネル番号とセットで保持される連続パラメータに含まれる連続転送フラグを参照しながらチャネル番号をサーチし、同じチャネル番号がＤＭＡチャネル要求保持部Ｋ１１にあっても連続転送フラグがイネーブルでなければ、次の優先順位のチャネルに移行する。
例えば、画像データの転送時に画像右端からの折り返しでデータアドレスが不連続となる場合、ＤＭＡチャネルが連続転送フラグをディセーブルにすることで、次の優先順位のＤＭＡチャネルに移行し、転送効率の低下を抑止できる。
【００４５】
特定のＤＭＡチャネルがまとまった転送を必要とする場合、そのＤＭＡチャネルは調停部Ａ１において優先順位が高くなるように設定されているので、要求保持部Ｋ１における出現率は高い。さらに、当該まとまった転送を必要とするＤＭＡチャネルの送信する転送パラメータが含む連続転送フラグをイネーブルに設定する。さらに、当該ＤＭＡチャネルについて、連続カウンタＳＣ１１１の値を、まとまった転送を必要としないＤＭＡチャネルに比して大きく設定する。この連続転送フラグ及び連続カウンタＳＣ１１１の設定により、まとまった転送を必要とするＤＭＡチャネルについてのデータ転送を連続させることが可能となり、転送効率を上げることができる。また、まとまったデータ転送を必要とする特定のＤＭＡチャネルにおいて、連続してデータ転送要求が発行できない条件が発生した場合であっても、次の優先順位のＤＭＡチャネルの転送を続けることができるので、転送効率を下げることはない。
【００４６】
特定のＤＭＡチャネルについての連続アクセスの制御は、調停部Ａ１が優先順位の高いＤＭＡチャネルについては、連続転送フラグを設定することで実現できる。また、ＤＭＡチャネル自身が連続転送フラグをＤＭＡチャネル毎の転送状況に応じて動的に設定することでも、連続アクセスの制御を実現できる。また、外部のＣＰＵから連続アクセス制御部ＳＣ１１を設定することで、システム全体の転送状況等に応じて動的に連続アクセスを制御することも可能である。
【００４７】
第２実施形態を図５に示す。第２の実施例の回路はリードアクセス制御部１Ａと、ライトアクセス制御部１Ｂと、リード／ライトアクセス調停部ＲＷＡとを有する。リードアクセス制御部１Ａとライトアクセス制御部１Ｂは第１実施形態のメモリアクセス制御部１である。リードアクセス制御部１Ａの共有バスＩ／Ｆ部Ｉ１及びライトアクセス制御部１Ｂの共有バスＩ／Ｆ部Ｉ１は、リード／ライトアクセス調停部ＲＷＡと接続される。
また、リード／ライトアクセス調停部ＲＷＡはメモリコントローラＭ１とリードバスおよびライトバスを介して接続される。
また、リード／ライトアクセス調停部ＲＷＡは、ＣＰＵまたはリードアクセス制御部１Ａおよびライトアクセス制御部１Ｂの要求保持部Ｋ１または要求並び替え部ＳＣ１と接続される。
【００４８】
第２実施形態において、メモリコントローラＭ１は、リードアクセスする経路とライトアクセスする経路が分離されたバス構成に接続される。当該接続形態において、リードアクセスあるいはライトアクセスどちらか一方が一定数以上連続するように転送を行うと、リードアクセスおよびライトアクセスを交互に行うのに比して、高効率な転送を行うことができる。
ＣＰＵからの指示あるいは、リードアクセス制御部１Ａおよびライトアクセス制御部１Ｂの要求保持部Ｋ１または要求並び替え部ＳＣ１の情報によりリード／ライトアクセス調停部ＲＷＡは制御される。
リードあるいはライトの一方のアクセスが連続している期間、他方をディセーブルするなどの手段により、メモリコントローラＭ１の実行レベルでリードアクセスあるいはライトアクセスが連続となるようにする。
【００４９】
第２実施形態における制御の一例を示す。画像データの転送では画像の拡大・縮小処理などアプリケーションの種類に応じてリードアクセスするデータ量とライトアクセスするデータ量の比が変わることがある。この場合、アプリケーションに応じたデータ量の比に基づき、リードアクセスまたはライトアクセスどちらか一方を他方に優先して連続して転送するようにリード／ライトアクセス調停部ＲＷＡを制御する。
【００５０】
あるいは要求保持部Ｋ１に保持されたアクセス要求数の比に基づき、リードアクセスまたはライトアクセスどちらか一方を他方に優先して連続して転送するようにリード／ライトアクセス調停部ＲＷＡを制御する。これらの制御により、高効率な転送を行うことができる。
【００５１】
図６は第３実施形態におけるブロック図である。メモリアクセス制御部１Ｃは、要求保持・並び替え部１１Ａ、１１Ｂ、レベル間調停部１３、チャネル確定部１５、優先フラグ生成部１７、アンド論理回路ＡＮＤ１、ＡＮＤ２、共有バスＩ／Ｆ部Ｉ１を備える。
【００５２】
要求保持・並び替え部１１Ａ、１１Ｂは、各々、第１実施形態（図１）における、調停部Ａ１、第１転送パラメータ選択部ＴＳ１、要求保持部Ｋ１、要求並び替え部ＳＣ１、第２転送パラメータ選択部ＴＳ２を備える。ここで、転送パラメータＴＰ１ないしＴＰｎに関する処理は第１実施形態と同様であるので、第３実施形態では説明を省略し、ＤＭＡチャネル信号を例にとり説明する。この場合、ＤＭＡチャネル信号ＤＭＡ１ないしＤＭＡ５を例示して説明する。
【００５３】
メモリアクセス制御部１Ｃは、要求保持・並び替え部１１Ａ、１１Ｂを備える。ＤＭＡチャネルに設定されている優先度ごとに備えるものである。要求保持・並び替え部１１Ａは優先度が高い（レベル０）のＤＭＡチャネル信号ＤＭＡ１、ＤＭＡ２が入力される。要求保持・並び替え部１１Ｂは優先度がレベル０より低い（レベル１）のＤＭＡチャネル信号ＤＭＡ３ないしＤＭＡ５が入力される。
【００５４】
要求保持・並び替え部１１Ａ、１１Ｂからは、各々、要求並び替え部ＳＣ１により選択されたＤＭＡチャネル信号である選択ＤＭＡチャネル信号ＳＮＬ０、ＳＮＬ１、要求並び替え部ＳＣ１による連続転送のうち最後の転送であることを示す連続転送終了信号ＳＬＬ０、ＳＬＬ１、および出力される選択ＤＭＡチャネル信号ＳＮＬ０、ＳＮＬ１の有無を示す有効信号ＳＥＬ０、ＳＥＬ１が出力される。
【００５５】
要求保持・並び替え部１１Ａ、１１Ｂのブロック図を図７に示す。選択ＤＭＡチャネル信号ＳＮＬ０、ＳＮＬ１、連続転送終了信号ＳＬＬ０、ＳＬＬ１、および有効信号ＳＥＬ０、ＳＥＬ１が出力される他は第１実施形態（図１）のメモリアクセス制御部１と同様な回路要素を備える。
【００５６】
要求保持・並び替え部１１Ａ、１１Ｂでは、選択ＤＭＡチャネル信号ＳＮＬ０、ＳＮＬ１は第２転送パラメータ選択部ＴＳ２から出力される。要求並び替え部ＳＣ１から入力されるカレントポインタＳＣ１３３の値に基づきＤＭＡチャネル信号が決定され、選択ＤＭＡチャネル信号ＳＮＬ０、ＳＮＬ１として出力される。連続転送終了信号ＳＬＬ０、ＳＬＬ１は連続アクセス制御部ＳＣ１１から出力される。チャネルを連続させる回数をチャネルごとにあらかじめ設定し、処理を行うたびに連続カウンタＳＣ１１１を１加算する。連続カウンタＳＣ１１１の値が連続転送における最後の転送を示す値になったとき連続転送終了信号ＳＬＬ０、ＳＬＬ１が出力される。有効信号ＳＥＬ０、ＳＥＬ１はポインタ制御部ＳＣ１３１から出力される。カレントポインタＳＣ１３３にあるアドレスに保持されているＤＭＡ要求保持部Ｋ１１のレジスタに保持されているＤＭＡチャネル信号が有効なチャネルであるか否かが判断され、有効であると判断される場合に有効信号ＳＥＬ０、ＳＥＬ１が出力される。
【００５７】
引き続き図６の説明を続ける。レベル間調停部１３は、有効信号ＳＥＬ０、ＳＥＬ１のうちの何れか一方に有効な要求があることを示す場合、その有効な要求があることを示す有効信号をレベル間調停信号ＳＡＬ０として出力する。有効信号ＳＥＬ０、ＳＥＬ１がともに有効な要求であることを示す場合、つまり有効信号ＳＥＬ０、ＳＥＬ１が競合している場合には、優先フラグ生成部１７から出力される優先フラグＳＰＬ０（後述）に従って何れか一方の有効信号を選択し、レベル間調停信号ＳＡＬ０として出力する。つまり、レベル間調停部１３は、優先フラグＳＰＬ０に従って、レベル０を優先する場合には有効信号ＳＥＬ０を選択し、レベル１を優先する場合には有効信号ＳＥＬ１を選択する。
【００５８】
図８は、レベル間調停部１３の動作説明図である。「０」の優先フラグＳＰＬ０はレベル０を優先することを示し、「１」の優先フラグＳＰＬ０はレベル１を優先することを示す。「１」の有効信号ＳＥＬ０、ＳＥＬ１は、選択ＤＭＡチャネル信号ＳＮＬ０、ＳＮＬ１が出力されＤＭＡチャネルからの要求があることを示し、「０」は要求がないことを示す。
【００５９】
従って、有効信号ＳＥＬ、ＳＥＬ１がともに「１」の場合は、レベル０、１間において要求が競合していることを示す。この場合、レベル間調停部１３は、選択結果に示すように、「０」の優先フラグＳＰＬ０に従って有効信号ＳＥＬ０を選択し、「１」の優先フラグＳＰＬ０に従って有効信号ＳＥＬ１を選択する。
【００６０】
チャネル確定部１５は、レベル間調停信号ＳＡＬ０と有効信号ＳＥＬ１に応じて、選択ＤＭＡチャネル信号ＳＮＬ０、ＳＮＬ１に対してバス使用権を確定したか否かを示すイネーブル信号ＥＮＬ０１、ＥＮＬ０２を生成する。選択されたＤＭＡチャネル信号は確定ＤＭＡチャネル信号ＳＤとして出力され、共有バスＩ／Ｆ部Ｉ１に入力される。
【００６１】
図９は、チャネル確定部１５の動作説明図である。「１」のレベル間調停信号ＳＡＬ０はレベル０の優先度を有する選択ＤＭＡチャネル信号ＳＮＬ０が有効、即ち要求があることを示す。これにより、選択ＤＭＡチャネル信号ＳＮＬ０が確定ＤＭＡチャネル信号ＳＤとして出力されバスの使用権が確定する。「０」のレベル間調停信号ＳＡＬ０および有効信号ＳＥＬ１が「１」の場合はレベル１の優先度を有する選択ＤＭＡチャネル信号ＳＮＬ１が有効、即ち要求があることを示す。これにより、選択ＤＭＡチャネル信号ＳＮＬ１が確定ＤＭＡチャネル信号ＳＤとして出力されバスの使用権が確定する。
【００６２】
イネーブル信号ＥＮＬ０１、ＥＮＬ０２は、各々、アンド論理回路ＡＮＤ１、ＡＮＤ２に入力される。アンド論理回路ＡＮＤ１、ＡＮＤ２の他方の入力には、各々、連続転送終了信号ＳＬＬ０、ＳＬＬ１が入力される。アンド論理回路ＡＮＤ１、ＡＮＤ２では、各々、イネーブル信号ＥＮＬ０１、ＥＮＬ０２と連続転送終了信号ＳＬＬ０、ＳＬＬ１との間で論理積演算が行われる。その結果、第１イネーブル信号ＥＮＬＬ０１、第２イネーブル信号ＥＮＬＬ０２が出力される。第１イネーブル信号ＥＮＬＬ０１、第２イネーブル信号ＥＮＬＬ０２は、各々、要求保持・並び替え部１１Ａ、１１Ｂにおいて連続転送するように選択されチャネル確定部１５でバス使用権が確立したＤＭＡチャネル信号について、連続転送の最後の転送時に出力される。
【００６３】
優先フラグ生成部１７は、要求保持・並び替え部１１Ａ、１１Ｂの各々で選択され出力される選択ＤＭＡチャネル信号ＳＮＬ０、ＳＮＬ１が競合する場合に、何れの選択ＤＭＡチャネル信号ＳＮＬ０、ＳＮＬ１を優先するかを示す優先フラグＳＰＬ０を生成する。従って、選択ＤＭＡチャネル信号ＳＮＬ０、ＳＮＬ１の何れか一方が出力されない場合には、出力される選択ＤＭＡチャネル信号が選択される。
【００６４】
優先フラグ生成部１７には、第１イネーブル信号ＥＮＬＬ０１および第２イネーブル信号ＥＮＬＬ０２が入力される。第１イネーブル信号ＥＮＬＬ０１は、レベル０の優先度を有するＤＭＡチャネル信号の連続転送が継続し最後の転送についてバス使用権が確定した際に出力される。第２イネーブル信号ＥＮＬＬ０２は、レベル１の優先度を有するＤＭＡチャネル信号の連続転送が継続し最後の転送についてバス使用権が確定した際に出力される。優先フラグ生成部１７は、カウント機能を有し、各々、バス使用権が確定した回数をカウントする。そして、優先フラグ生成部１７は、各々のカウント値に基づいて、優先フラグＳＰＬ０を生成する。
【００６５】
優先フラグＳＰＬ０は、例えば２値の信号であり、第１の値（例えば「０」）の場合に、レベル０の優先度を有するＤＭＡチャネル信号が優先であることを示し、第２の値（例えば「１」）の場合に、レベル１の優先度を有するＤＭＡチャネル信号が優先であることを示す。
【００６６】
図１０は優先フラグ生成部１７のブロック図である。カウンタ制御部１７１、選択部１７２、カウンタ１７３、フラグ制御部１７４を有する。カウンタ１７３は、第１カウンタ１７３ａと第２カウンタ１７３ｂとを有する。両カウンタ１７３ａ、１７３ｂは例えばアップカウンタである。両カウンタ１７３ａ、１７３ｂには、それぞれ設定値としてカウントアップ値が、例えばＣＰＵなどにより設定される。第１カウンタ１７３ａと第２カウンタ１７３ｂとの各々に設定されるカウントアップ値は、第１イネーブル信号ＥＮＬＬ０１のカウント回数と、第２イネーブル信号ＥＮＬＬ０２のカウント回数とに応じた値である。それぞれのカウントアップ値は、例えば、「４」、「３」である。両カウンタ１７３ａ、１７３ｂは、カウンタ制御部１７１から出力されるカウントアップ信号に応答してカウントアップ（＋１）動作を行う。そして、各カウンタ１７３ａ、１７３ｂは、各々のカウント値が設定されているカウントアップ値と一致すると、一致信号をカウンタ制御部１７１に出力するとともに、カウント値をクリア（＝０）する。
【００６７】
カウンタ制御部１７１には、第１イネーブル信号ＥＮＬＬ０１と第２イネーブル信号ＥＮＬＬ０２とが入力される。カウンタ制御部１７１は、第１イネーブル信号ＥＮＬＬ０１に応答して第１カウンタ１７３ａにカウントアップ信号を出力し、第２イネーブル信号ＥＮＬＬ０２に応答して第２カウンタ１７３ｂにカウントアップ信号を出力する。第１カウンタ１７３ａのカウント値は、レベル０の優先度を有する確定ＤＭＡチャネル信号ＳＤが、要求並べ替え部ＳＣ１により選択される連続転送回数を１セットとして、繰り返されるセット数を示す。また、第２カウンタ１７３ｂのカウント値は、レベル１の優先度を有する確定ＤＭＡチャネル信号ＳＤが、要求並べ替え部ＳＣ１により選択される連続転送回数を１セットとして、繰り返されるセット数を示す。
【００６８】
カウンタ制御部１７１は、両カウンタ１７３ａ、１７３ｂから出力される一致信号に基づいてフラグ制御信号をフラグ制御部１７４に出力する。フラグ制御部１７４は、フラグ制御信号に応答して優先フラグＳＰＬ０を生成する。詳述すると、カウンタ制御部１７１は、第１イネーブル信号ＥＮＬＬ０１に応答して第１カウンタ１７３ａをカウントアップさせている間、フラグ制御信号によりフラグ制御部１７４からレベル０の優先度を有する優先フラグＳＰＬ０（例えば値「０」）を出力させる。このとき、レベル間調停部１３は、有効信号ＳＥＬ０、ＳＥＬ１が共に出力されると、「０」の優先フラグＳＰＬ０に応答して、レベル０の優先度を有する有効信号ＳＥＬ０を選択する。そして、レベル間調停部１３は、有効信号ＳＥＬ０、ＳＥＬ１の優先度のレベル間で調停したことを示すレベル間調停信号ＳＡＬ０を出力する。
【００６９】
カウンタ制御部１７１は、第１カウンタ１７３ａが一致信号を出力すると、フラグ制御信号によりフラグ制御部１７４からレベル１の優先度を有する優先フラグＳＰＬ０（例えば値「１」）を出力させる。このとき、レベル間調停部１３は、有効信号ＳＥＬ０、ＳＥＬ１が共に出力されると、「１」の優先フラグＳＰＬ０に応答して、レベル１の優先度を有する有効信号ＳＥＬ１を選択する。そして、レベル間調停部１３は、有効信号ＳＥＬ０、ＳＥＬ１の優先度のレベル間で調停したことを示すレベル間調停信号ＳＡＬ０を出力する。
【００７０】
レベル間調停部１３は、優先フラグ生成部１７の第１カウンタ１７３ａと第２カウンタ１７３ｂに各々に設定されたカウント値の回数だけ、レベル０の要求の連続転送を１セットとして、またレベル１の要求の連続転送を１セットとして、所定セット回数の要求を出力する。即ち、レベル間調停部１３は、第１及び第２カウンタ１７３ａ、１７３ｂに設定したカウント値の比に応じて、レベル０とレベル１との間で要求の連続転送を許容する。
【００７１】
図１１は、優先フラグ生成部１７が実行する処理の流れを示すフローチャートである。先ず、優先フラグ初期値、優先比率（カウント値）が設定される（Ｕ２）。次に、優先フラグ側、即ちその時に優先しているレベル（レベル０またはレベル１）について要求受付があるか否かを判断し（Ｕ４）、要求受付がある場合に要求が競合しているか否かを判断する（Ｕ６）。競合している場合に、優先フラグ側のカウント値をダウンカウントする（Ｕ８）。次に、カウント値がゼロ（「０」）か否か、即ち設定された数の要求を受け付けたか否かを判断し（Ｕ１０）、カウント値が「０」の場合に優先フラグ側の優先比率、即ちカウント値を再設定する（Ｕ１２）。次に、優先フラグを反転する、即ち優先するレベルを切り換えるように優先フラグを変更する（Ｕ１４）。そして、１回のサービスについての全ての処理が終了したか否かを判断し（Ｕ１６）、終了していなければ処理（Ｕ４）から繰り返す。
【００７２】
図１２は、第３実施形態によりＤＭＡチャネル信号の転送を行った場合の要求発行の例を模式的に示したものである。要求保持・並び替え部１１Ａの要求並べ替え部によりＤＭＡチャネル信号ごとの連続転送回数が＜ＣＮ０＞に設定され、要求保持・並び替え部１１Ｂの要求並べ替え部によりＤＭＡチャネル信号ごとの連続転送回数が＜ＣＮ１＞に設定されているものとする。また、優先フラグ生成部１７の第１カウンタ１７３ａに設定されているカウント値が＜ＵＮ０>であり、優先フラグ生成部１７の第２カウンタ１７３ｂに設定されているカウント値が＜ＵＮ１>であるものとする。レベル０の優先度を有するＤＭＡチャネル信号の連続転送を＜ＵＮ０＞セット継続し、レベル１の優先度を有するＤＭＡチャネル信号の連続転送を＜ＵＮ１＞セット継続するものとする。
【００７３】
図１２では、レベル０の優先度を有するＤＭＡチャネル信号の転送から開始するものとする。最初にＤＭＡチャネル信号ＤＭＡ１が選択され、＜ＣＮ０＞回の連続転送が行われる。次に、ＤＭＡチャネル信号ＤＭＡ２が選択され、＜ＣＮ０＞回の連続転送が行われる。各々の連続転送を１セットとして、これが＜ＵＮ０＞セット継続される。その後、転送はレベル１の優先度を有するＤＭＡチャネル信号に移行する。先ず、ＤＭＡチャネル信号ＤＭＡ４が選択され、＜ＣＮ１＞回の連続転送が行われる。この連続転送を１セットとして、これが＜ＵＮ１＞セット継続される。ここで、個々のＤＭＡチャネル信号の選択順は、第１実施形態において説明したように、要求保持部に格納されている基本転送順位で選択される。
【００７４】
第３実施例によれば、ＤＭＡチャネル信号に応じて２レベルの優先度に分類される場合、各々の優先度に属する個々のＤＭＡチャネル信号は、要求並び替え部ＳＣ１により、チャネルごとに連続転送回数が設定され、連続して選択されて転送が行われる。更に、異なる優先度のレベルの間では、連続転送回数のセット数が設定され、所定セット数の転送ごとに転送される優先度が切り替わる。具体的には、チャネルごとの連続転送回数を１セットとして、あらかじめ定められる所定セット回数の連続転送が行われると、転送対象となるＤＭＡチャネル信号の属する優先度を切り替える。
【００７５】
これにより、デジタルスチルカメラからの画像データの転送などに例示されるように、メモリアクセス要求の少ない期間と多い期間とが混在してデータ転送量に粗密があるＤＭＡチャネル信号がある場合、他のＤＭＡチャネル信号によるデータ転送との関係により当該ＤＭＡチャネル信号におけるデータ転送が滞りシステム破綻を招来することを防止することができる。
【００７６】
すなわち、画像データに係るＤＭＡチャネル信号をレベル０の優先度とし、他のＤＭＡチャネル信号に係るＤＭＡチャネル信号をレベル０より低い優先度のレベル１を有するものとして設定する。この場合、レベル０の画像データの転送を優先しながら、所定の比率でレベル１の他のＤＭＡチャネル信号に係るデータ転送を行うことができる。画像データの転送のデータ転送における滞りを避けながら他のデータ転送も行うことができる。
【００７７】
図１３乃至図１５は、第３実施形態の変形例である。レベル１の優先度を有する要求の発行を制御するものである。第３実施形態では、レベル０の優先度を有するＤＭＡチャネル信号に係るデータ転送に転送の粗密がある場合、転送が粗の期間にレベル１の優先度を有する他のＤＭＡチャネル信号に係るデータ転送を受け付ける。この場合、レベル０の優先度を有するＤＭＡチャネル信号に係るデータ転送が再び密になる場合に、レベル１の優先度を有する他のＤＭＡチャネル信号に係るデータ転送がレベル０のデータ転送の障害にならないようにするものである。
【００７８】
図１３は、第１変形例のブロック図である。図６のメモリアクセス制御部１Ｃにおいて、要求保持・並び替え部１１Ｂから出力される有効信号ＳＥＬ１とレベル間調停部１３との間にアンド論理回路ＡＮＤ３が介在するものである。
【００７９】
アンド論理回路ＡＮＤ３には、有効信号ＳＥＬ１とレベル１の優先度を有するＤＭＡチャネル信号の転送を強制的に抑止するマスク信号ＭＳＫが入力される。
【００８０】
マスク信号ＭＳＫは、レベル０の優先度を有するＤＭＡチャネル信号に係るデータ転送が再開される際にデータ転送に先立って出力される信号である。例えば、レベル０の優先度を有するＤＭＡチャネル信号に係るデータが画像データである場合には、画像描画の際の水平同期信号に応じて出力される信号である。マスク信号ＭＳＫが出力されることに応じて、アンド論理回路ＡＮＤ３において有効信号ＳＥＬ１がマスクされる。
【００８１】
これにより、レベル１の優先度を有する他のＤＭＡチャネル信号に係るデータ転送が抑止され、その後に要求が入力されるレベル０の優先度を有するＤＭＡチャネル信号がバス使用権を獲得することができる。レベル０の優先度を有するＤＭＡチャネル信号に係るデータ転送が滞ることはない。ここで、マスク信号ＭＳＫの出力期間は、レベル０の優先度を有するＤＭＡチャネル信号の要求が入力されるまでで良い。その後は、レベル０の優先度を有するＤＭＡチャネル信号の要求が優先されるからである。
【００８２】
図１４は、第２変形例のブロック図である。第１変形例（図１３）に加えて、レベル１要求発行数判定部１９を備え、その出力信号が、マスク信号ＭＳＫに代えてアンド論理回路ＡＮＤ３に入力される。
【００８３】
レベル１要求発行数判定部１９には、マスク信号ＭＳＫと第２イネーブル信号ＥＮＬＬ０２とが入力される。レベル１要求発行数判定部１９では、チャネル確定部１５で確定されるレベル１の優先度を有するＤＭＡチャネル信号の出力が、ＣＰＵ等によりあらかじめ設定される連続転送回数のセット回数に達するか否かが検出される。設定されたセット回数が検出されると、マスク信号ＭＳＫをアンド論理回路ＡＮＤ３に出力することにより、レベル１の優先度を有する他のＤＭＡチャネル信号に係るデータ転送を抑止する。
【００８４】
これにより、レベル１の優先度を有する他のＤＭＡチャネル信号を設定されているセット回数出力した後は、データ転送が抑止され、その後に要求が入力されるレベル０の優先度を有するＤＭＡチャネル信号がバス使用権を獲得することができる。レベル０の優先度を有するＤＭＡチャネル信号に係るデータ転送が再開される際に、データ転送の要求が入力されるまではレベル１の優先度を有するＤＭＡチャネル信号の転送を許可し、レベル０の優先度を有するＤＭＡチャネル信号に係るデータ転送が開始されるタイミングでレベル１の転送を抑止するものである。
【００８５】
図１５には、第１および第２変形例でのデータ転送の様子を模式的に示す。第１変形例においては、マスク信号ＭＳＫが出力される期間のレベル１のＤＭＡチャネル信号は抑止される。図１５のＤ１およびＤ２が抑止される。第２変形例においては、マスク信号ＭＳＫが出力される期間のうち、図１５のＤ２で示されるレベル１のＤＭＡチャネル信号が抑止される。
【００８６】
第１および第２変形例は何れも、レベル１の優先度を有するＤＭＡチャネル信号に係るデータ転送を確保しながら、レベル０の優先度を有するＤＭＡチャネル信号に係るデータ転送が滞ることなく行なうことができる。これにより、例えば、データ転送に粗密があるレベル０の優先度を有するＤＭＡチャネル信号に係るデータ転送について、データ転送が滞ることがなくシステム破綻等を防止することができる。
【００８７】
図１６は第４実施形態におけるブロック図である。メモリアクセス制御部１Ｄは、調停部Ａ１０、Ａ１１、セレクタＳＥＬ、要求保持部Ｋ１０、レベル０ポインタ制御部Ｃ１、セレクタ制御部Ｃ２、要求並び替え部ＳＣ１、第２転送パラメータ選択部ＴＳ２、および共有バスＩ／Ｆ部Ｉ１を備える。
【００８８】
ここで、第１ないし第３実施形態と同じ回路要素については同じ符号を付し、以下での説明は省略する。また、第３実施形態の場合と同様に、転送パラメータＴＰ１ないしＴＰｎに関しては、第１実施形態と同様であるので、図１６において記載を省略すると共に以下での説明を省略する。また、第３実施形態の場合と同様に、ＤＭＡチャネル信号ＤＭＡ１ないしＤＭＡ５を例示して説明する。このうち、ＤＭＡチャネル信号ＤＭＡ１、ＤＭＡ２がレベル０の優先度を有するＤＭＡチャネル信号であり、ＤＭＡチャネル信号ＤＭＡ３ないしＤＭＡ５がレベル１の優先度を有するＤＭＡチャネル信号である。
【００８９】
調停部Ａ１０、Ａ１１は、ＤＭＡチャネル信号の優先度に応じて備えられる。調停部Ａ１０はレベル０の優先度を有するＤＭＡチャネル信号ＤＭＡ１、ＤＭＡ２を調停する。調停部Ａ１１はレベル１の優先度を有するＤＭＡチャネル信号ＤＭＡ３ないしＤＭＡ５を調停する。基本的機能は第１実施形態の調停部Ａ１（図１）と同様である。
【００９０】
セレクタＳＥＬは、調停部Ａ１０、Ａ１１の各々で調停され出力されるＤＭＡチャネル信号の何れか一方を選択する。何れを選択するかは後述するセレクタ制御部Ｃ２により制御される。具体的には、セレクタ制御部Ｃ２による制御に応じて、調停部Ａ１１から出力されるレベル１の優先度を有するＤＭＡチャネル信号の入力を抑止して、調停部Ａ１０から出力されるレベル０の優先度を有するＤＭＡチャネル信号の入力を優先する。
【００９１】
要求保持部Ｋ１０は、第１実施形態の要求保持部Ｋ１の回路要素に加えて、レベル０要求保持ポインタＫ１４、レベル０カウンタＫ１７、およびレベル１カウンタＫ１９を備える。
【００９２】
レベル０要求保持ポインタＫ１４は、ＤＭＡチャネル要求保持部Ｋ１１のレジスタにおいて、レベル０のＤＭＡチャネル信号が保持されているレジスタのアドレスのうち最下位のアドレスを示す。要求保持ポインタＫ１５は、レベル０およびレベル１の両者のＤＭＡチャネル信号が保持されているレジスタのアドレスのうち最下位のアドレスを示す。レベル０の優先度を有するＤＭＡチャネル信号はレベル０要求保持ポインタＫ１４に基づいてＤＭＡチャネル要求保持部Ｋ１１に格納され、レベル１の優先度を有するＤＭＡチャネル信号は要求保持ポインタＫ１５に基づいてＤＭＡチャネル要求保持部Ｋ１１に格納される。これにより、レベル０の優先度を有するＤＭＡチャネル信号は、ＤＭＡチャネル要求保持部Ｋ１１のレジスタの上位のアドレスに集中して格納される。
【００９３】
レベル０カウンタＫ１７およびレベル１カウンタＫ１９は、各々、レベル０の優先度を有するＤＭＡチャネル信号およびレベル１の優先度を有するＤＭＡチャネル信号が、ＤＭＡチャネル要求保持部Ｋ１１に入力される回数をカウントする。
【００９４】
第４実施形態のメモリアクセス制御部１Ｄは、基本的に、第１実施形態のメモリアクセス制御部１と同様に、要求並べ替え部ＳＣ１により、ＤＭＡチャネル要求保持部Ｋ１１に格納されているＤＭＡチャネル信号の出力順序を並べ替えるように選択する。この場合、以下の２つの特徴が追加されるものである。
【００９５】
第１の特徴は、レベル０の優先度を有するＤＭＡチャネル信号のＤＭＡチャネル要求保持部Ｋ１１のレジスタへの格納アドレスを制御するものである。レベル０の優先度を有するＤＭＡチャネル信号は、レベル０要求保持ポインタＫ１４によりＤＭＡチャネル要求保持部Ｋ１１のレジスタにおける上位アドレスに連続して格納される。これは、レベル０の優先度であることより優先的に選択され出力するためである。しかしながら、格納されるＤＭＡチャネル信号の数によっては、下位アドレスに格納されているレベル１の優先度を有するＤＭＡチャネル信号の出力ができない状態が継続してしまうおそれがある。そこで、ＤＭＡチャネル要求保持部Ｋ１１のレジスタでの格納アドレスを制御することにより、所定の比率でレベル１の優先度を有するＤＭＡチャネル信号を出力できるようにする。
【００９６】
第１の特徴は、レベル０ポインタ制御部Ｃ１により奏する。レベル０ポインタ制御部Ｃ１は、レベル０の優先度を有するＤＭＡチャネル信号が入力されるごとに、レベル０カウンタＫ１７のカウント値を、ＣＰＵ等によりあらかじめ設定された値と比較する。カウント値が設定値と一致することに応じて、レベル０要求保持ポインタＫ１４の値と要求保持ポインタＫ１５の値とを比較して一致していなければ、レベル０要求保持ポインタＫ１４の値を通常の＋１に更に＋１を加えて＋２加算する。合わせて、レベル０カウンタＫ１７を「０」に初期化する。これにより、次回入力されるレベル０の優先度を有するＤＭＡチャネル信号は、ＤＭＡチャネル要求保持部Ｋ１１のレジスタに格納されているレベル１の優先度を有するＤＭＡチャネル信号の下位アドレスに格納することができる。
【００９７】
図１６に例示されているように、レベル０要求保持ポインタＫ１４の値がｋであり、要求保持ポインタＫ１５の値がｍであるとする。また、レベル０カウンタＫ１７のカウント値に対する設定値がｋであるとする。この場合、ｋ回目のレベル０の優先度を有するＤＭＡチャネル信号の入力に応じて、レベル０要求保持ポインタＫ１４の値は＋２加算されｋ＋２になる。この結果、次回のレベル０の優先度を有するＤＭＡチャネル信号は、アドレスｋ＋２に格納され、アドレスｋ＋１に格納されているレベル１の優先度を有するＤＭＡチャネル信号ＤＭＡ３が上位のアドレスに格納される状態とすることができる。これにより、ＤＭＡチャネル信号ＤＭＡ３の転送を確実に行なうことができる。
【００９８】
第１の特徴では、要求保持ポインタＫ１５に加えて、レベル０要求保持ポインタＫ１４、レベル０カウンタＫ１７を備えることにより、ＤＭＡチャネル要求保持部Ｋ１１でのＤＭＡチャネル信号の格納順序を、レベル０の優先度を有するＤＭＡチャネル信号を優先して上位アドレスに格納しながら、レベル０カウンタＫ１７のカウント値と比較する設定値に応じた割合でレベル１の優先度を有するＤＭＡチャネル信号を格納することができる。レベル０の優先度を有するＤＭＡチャネル信号を優先しながらレベル１の優先度を有するＤＭＡチャネル信号を混在させて転送することができる。
【００９９】
第２の特徴は、有限の格納数を有するＤＭＡチャネル要求保持部Ｋ１１のレジスタがレベル１の優先度を有するＤＭＡチャネル信号で占められてしまい、レベル０の優先度を有するＤＭＡチャネル信号の格納ができなくなってしまうことを防止するものである。レベル０の優先度を有するＤＭＡチャネル信号の転送要求に粗密がある場合、要求が粗の状態ではレベル１の優先度を有するＤＭＡチャネル信号の入力が受け付けられるが、このときの受付数を制限することにより、次回のレベル０の優先度を有するＤＭＡチャネル信号の密の転送要求に対応できるようにする。
【０１００】
第２の特徴は、セレクタ制御部Ｃ２により奏する。セレクタ制御部Ｃ２は、レベル１の優先度を有するＤＭＡチャネル信号が入力されるごとに、レベル１カウンタＫ１９のカウント値を、ＣＰＵ等によりあらかじめ設定された値と比較する。カウント値が設定値と一致することに応じて、セレクタＳＥＬを制御して調的部Ａ１１からのＤＭＡチャネル信号の選択を抑止する（制御（ａ）の場合）。あるいは、調的部Ａ１１へのレベル１の優先度を有するＤＭＡチャネル信号ＤＭＡ３ないしＤＭＡ５の入力を抑止する（制御（ｂ））。レベル１カウンタＫ１９のカウントの最大値がＣＰＵ等によりあらかじめ設定された値に設定されることとなる。
【０１０１】
これにより、レベル１の優先度を有するＤＭＡチャネル信号の入力が抑止される。レベル０の優先度を有するＤＭＡチャネル信号の転送要求に粗密がある場合にも、レベル１の優先度を有するＤＭＡチャネル信号の入力をあらかじめ定められた数に制限することができ、ＤＭＡチャネル要求保持部Ｋ１１のレジスタ領域を確保しておくことができる。レベル０の優先度を有するＤＭＡチャネル信号の密なる要求が再開された際も、ＤＭＡチャネル要求保持部Ｋ１１のレジスタにＤＭＡチャネル信号を格納することができ、システム破綻を防止することができる。
【０１０２】
第４実施形態での動作の例示を図１７にて説明する。状態（１）を初期状態とする。ＤＭＡチャネル要求保持部Ｋ１１のレジスタには上位アドレスからＤＭＡチャネル信号ＤＭＡ１、ＤＭＡ２、ＤＭＡ３が格納されている。また、レベル０要求保持ポインタＫ１４の値は「２」、要求保持ポインタＫ１５の値は「３」、レベル０カウンタＫ１７の値は「２」、レベル１カウンタＫ１９の値は「１」である。ここで、レベル０カウンタＫ１７は、ＣＰＵ等により、初期値「０」から最大値「３」までをカウントし、その後「０」に初期化されるカウント動作を行なうとして設定されているものとする。また、レベル１カウンタＫ１９は、ＣＰＵ等により、最大値が「２」に設定されているものとする。初期値「０」から最大値「２」までの間をカウントする。
【０１０３】
状態（１）においてＤＭＡチャネル信号ＤＭＡ１が入力されると、レベル０要求保持ポインタＫ１４の値が「２」であるため、ＤＭＡチャネル要求保持部Ｋ１１のアドレス２に格納される。レベル０要求保持ポインタＫ１４の値は「３」に、要求保持ポインタＫ１５の値は「４」に、レベル０カウンタＫ１７の値は「３」に加算される（状態（２））。
【０１０４】
状態（２）においてＤＭＡチャネル信号ＤＭＡ４が入力されると、要求保持ポインタＫ１５の値が「４」であるため、ＤＭＡチャネル要求保持部Ｋ１１のアドレス４に格納される。要求保持ポインタＫ１５の値は「５」に、レベル１カウンタＫ１９の値は「２」に加算される。レベル１カウンタＫ１９の値が設定値と一致するため、以後の動作ではレベル１の優先度を有するＤＭＡチャネル信号は入力されない（状態（３））。
【０１０５】
状態（３）においてＤＭＡチャネル信号ＤＭＡ２が入力されると、レベル０要求保持ポインタＫ１４の値が「３」であるため、ＤＭＡチャネル要求保持部Ｋ１１のアドレス３に格納される。このとき、レベル０カウンタＫ１７の値が「３」であり設定値と一致しているため、レベル０要求保持ポインタＫ１４の値は＋２加算され「４」ではなく「５」に加算される。要求保持ポインタＫ１５の値は「６」に、レベル０カウンタＫ１７の値は「０」に初期化される。（状態（４））。
【０１０６】
状態（４）においてＤＭＡチャネル信号ＤＭＡ１が入力されると、レベル０要求保持ポインタＫ１４の値が「５」であるため、ＤＭＡチャネル要求保持部Ｋ１１のアドレス５に格納される。レベル０要求保持ポインタＫ１４の値は「６」に、要求保持ポインタＫ１５の値は「７」に、レベル０カウンタＫ１７の値は「１」に加算される（状態（５））。
【０１０７】
状態（５）においてＤＭＡチャネル信号ＤＭＡ２が入力されると、ＤＭＡチャネル要求保持部Ｋ１１のアドレス６に格納される。また、上位アドレスに格納されているＤＭＡチャネル信号ＤＭＡ１が並び替えにより転送され、更にＤＭＡチャネル信号ＤＭＡ２が転送される。レベル０要求保持ポインタＫ１４の値は、入力１および転送３であるので「４」に、要求保持ポインタＫ１５の値は同様に「５」に、レベル０カウンタＫ１７の値は「２」に加算される（状態（６））。
【０１０８】
状態（６）において上位アドレスに格納されているＤＭＡチャネル信号ＤＭＡ２が転送される。レベル０要求保持ポインタＫ１４の値は転送１であるので「３」に、要求保持ポインタＫ１５の値は同様に「４」になる（状態（７））。
【０１０９】
状態（７）において上位アドレスに格納されているＤＭＡチャネル信号ＤＭＡ３が転送される。要求保持ポインタＫ１５の値は転送１であるので「３」に、レベル１カウンタＫ１９の値は「１」に減算される。これにより、以後の動作ではレベル１の優先度を有するＤＭＡチャネル信号が受け付け可能とされる（状態（８））。
【０１１０】
状態（８）においてＤＭＡチャネル信号ＤＭＡ５が入力されると、要求保持ポインタＫ１５の値が「３」であるため、ＤＭＡチャネル要求保持部Ｋ１１のアドレス３に格納される。要求保持ポインタＫ１５の値は「４」に、レベル１カウンタＫ１９の値は「２」に加算される（状態（９））。
【０１１１】
なお、調停部Ａ１は、予め定められたＤＭＡチャネル毎の優先順位及びデータ転送要求が受け付けられた順番に従い、要求保持部Ｋ１にデータ転送要求を出力する。当該調停部Ａ１が出力する信号の順番は、基本転送順位の一例である。
また、ＤＭＡチャネル信号及び転送パラメータ信号はデータ転送要求の一例である。
また、カレントポインタＳＣ１３３は第１ポインタの一例であり、ネクストポインタ１３５は第２ポインタの一例である。ＤＭＡチャネル要求保持部Ｋ１１のレジスタ、および転送パラメータ保持部Ｋ１３のレジスタはレジスタの一例である。
また、レベル０の優先度が第１優先レベルの一例であり、レベル１の優先度が第２優先レベルの一例である。レベル０の優先度を有するＤＭＡチャネル信号（ＤＭＡチャネル信号ＤＭＡ１、ＤＭＡ２）は第１チャネル群の一例であり、レベル１の優先度を有するＤＭＡチャネル信号（ＤＭＡチャネル信号ＤＭＡ３ないしＤＭＡ５）は第２チャネル群の一例である。要求保持・並び替え部１１Ａに備えられる要求保持部Ｋ１および要求並び替え部ＳＣ１は第１要求保持部および第１要求並び替え部の一例であり、要求保持・並び替え部１１Ｂに備えられる要求保持部Ｋ１および要求並び替え部ＳＣ１は第２要求保持部および第２要求並び替え部の一例である。レベル間調停部１３、チャネル確定部１５、優先フラグ生成部１７、およびアンド論理回路ＡＮＤ１、ＡＮＤ２は優先レベル調停部の一例である。アンド論理回路ＡＮＤ３は第１マスク部の一例であり、レベル１要求発行数判定部１９およびアンド論理回路ＡＮＤ１は第２マスク部の一例である。
また、レベル０要求保持ポインタＫ１４は第１要求保持ポインタの一例であり、レベル０カウンタＫ１７は第１カウンタの一例であり、要求保持ポインタＫ１５は第２要求保持ポインタの一例であり、レベル１カウンタＫ１９は第２カウンタの一例であり、レベル０ポインタ制御部Ｃ１はポインタ制御部の一例であり、セレクタ制御部Ｃ２は入力マスク部の一例である。
【０１１２】
上述の実施形態によれば、複数のＤＭＡチャネルの何れかを動的に選択してメモリとの間でデータ転送を行う際、ＤＭＡチャネルごとに予め定められた回数だけデータ転送要求を連続することにより、効率の高いデータ転送を可能となる。
【０１１３】
尚、本願は上記した第１ないし第４実施形態に限定されるものではない。上記の実施形態では、優先度がレベル０とレベル１との２段階であるとして説明したが、本願はこれに限定されるものではない。３段階以上の優先度を有するものについても、優先度ごとに前段階で調停などを行なうことにより上記の実施形態を適用することは可能である。
また、第４実施形態では、レベル０の優先度を有するＤＭＡチャネル信号を、条件に応じてレベル１の優先度を有するＤＭＡチャネル信号が格納されているレジスタから１アドレス下位のアドレスに格納するとして説明したが。本実施形態はこれに限定されるものではない。２以上下位のアドレスに格納することもできる。これにより、レベル０に先立って転送するレベル１の優先度を有するＤＭＡチャネル信号の数は適宜に調整することができる。
【符号の説明】
【０１１４】
１、１Ａ、１Ｂ，１Ｃ、１Ｄ  メモリアクセス制御部
１Ａ  リードアクセス制御部
１Ｂ  ライトアクセス制御部
１１Ａ、１１Ｂ  要求保持・並び替え部
１３  レベル間調停部
１５  チャネル確定部
１７  優先フラグ生成部
１９  レベル１要求発行数判定部
Ａ１、Ａ１０、Ａ１１  調停部
ＡＮＤ１、ＡＮＤ２、ＡＮＤ３  アンド論理回路
Ｃ１  レベル０ポインタ制御部
Ｃ２  セレクタ制御部
ＴＳ１  第１転送パラメータ選択部
ＴＳ２  第２転送パラメータ選択部
Ｋ１、Ｋ１０  要求保持部
Ｋ１１  ＤＭＡチャネル要求保持部
Ｋ１３  転送パラメータ保持部
Ｋ１４  レベル０要求保持ポインタ
Ｋ１７  レベル０カウンタ
Ｋ１９  レベル１カウンタ
ＳＣ１  要求並び替え部
ＳＣ１１  連続アクセス制御部
ＳＣ１１１  連続カウンタ
ＳＣ１３１  ポインタ制御部
ＳＣ１３３  カレントポインタ
ＳＣ１３５  ネクストポインタ
ＳＣ１５  シフト制御部
ＳＥＬ  セレクタ
Ｉ１  共有バスＩ／Ｆ部
Ｍ１  メモリコントローラ
ＲＷＡ  リード／ライトアクセス調停部
ＤＭＡ１ないしＤＭＡｎ  ＤＭＡチャネル信号
ＭＳＫ  マスク信号
ＳＡＬ０  レベル間調停信号
ＳＥＬ０、ＳＥＬ１  有効信号
ＳＬＬ０、ＳＬＬ１  連続転送終了信号
ＳＮＬ０、ＳＮＬ１  選択ＤＭＡチャネル信号
ＳＰＬ０  優先フラグ
【図１】
2011175621.tif 000003
【図２】
2011175621.tif 000004
【図３】
2011175621.tif 000005
【図４】
2011175621.tif 000006
【図５】
2011175621.tif 000007
【図６】
2011175621.tif 000008
【図７】
2011175621.tif 000009
【図８】
2011175621.tif 000010
【図９】
2011175621.tif 000011
【図１０】
2011175621.tif 000012
【図１１】
2011175621.tif 000013
【図１２】
2011175621.tif 000014
【図１３】
2011175621.tif 000015
【図１４】
2011175621.tif 000016
【図１５】
2011175621.tif 000017
【図１６】
2011175621.tif 000018
【図１７】
2011175621.tif 000019