(57)【特許請求の範囲】
【請求項１】
メモリを共用する複数のバスマスタのいずれかに対し選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置であって、
複数のバスマスタそれぞれについて、当該バスマスタがメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定めるリクエスト周期とを示す転送レート情報を保持する保持手段と、
各バスマスタに対応する前記リクエスト周期のうち最も小さいもの以下の時間をリクエスト検出周期として定めるリクエスト検出周期算定手段と、
各バスマスタについて、対応する転送レートによって前記リクエスト検出周期において転送できるデータ量をＶとした場合にメモリバスのバスバンド幅に基づいてＶの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、
時間経過を周期的に前記リクエスト検出周期で区分して得られる複数のリクエスト検出周期帯それぞれにおいて、各バスマスタに対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備える
ことを特徴とするメモリ制御装置。
【請求項２】
前記メモリ制御装置は、各バスマスタからのバスリクエストを検出する検出手段を備え、
前記使用権付与手段は、前記検出手段により、前記各リクエスト検出周期帯の始期以前にバスリクエストが検出されたところの各バスマスタに対して、当該リクエスト検出周期帯において前記使用権を付与する
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記バスマスタは、メモリとの間でデータを転送する際に一定の転送レートが保たれることを要する定期型バスマスタと、その他の不定期型バスマスタとに分類でき、
前記保持手段は、複数の定期型バスマスタそれぞれについて前記転送レート情報を保持するものであり、前記バス使用許可時間算定手段は、各定期型バスマスタについて前記バス使用許可時間を求め、
前記使用権付与手段は、前記各リクエスト検出周期帯において、当該リクエスト検出周期帯の始期以前にバスリクエストが検出されたところの各定期型バスマスタに、対応するバス使用許可時間だけメモリバスの使用権を付与し、前記検出手段により前記バスリクエストが検出されたところの各定期型バスマスタに対応するバス使用許可時間の総和を、前記リクエスト検出周期から減じた残りの時間を上限として不定期型のバスマスタにメモリバスのバス使用権を付与する
ことを特徴とする請求項２記載のメモリ制御装置。
【請求項４】
前記使用権付与手段は、前記各リクエスト検出周期帯において、前記検出手段により定期型バスマスタにバス使用権を付与している間に不定期型バスマスタからのバスリクエストが検出された場合には当該定期型バスマスタへのバス使用権の付与が終了し次第、当該不定期型バスマスタにバス使用権を付与する
ことを特徴とする請求項３記載のメモリ制御装置。
【請求項５】
前記保持手段は、前記転送レート情報を前記メモリ制御装置の外部から取得して保持する
ことを特徴とする請求項４記載のメモリ制御装置。
【請求項６】
前記保持手段は前記転送レート情報を、前記メモリ制御装置の外部の装置により書き替え可能な領域に保持する
ことを特徴とする請求項４記載のメモリ制御装置。
【請求項７】
前記メモリ制御装置は、前記各バスマスタとバス使用許可用の各信号線で接続されており、
前記使用権付与手段は、バスマスタへのバス使用許可時間だけのバス使用権の付与を、当該バスマスタと接続されている前記信号線をバス使用許可時間だけアクティブにすることにより行う
ことを特徴とする請求項４記載のメモリ制御装置。
【請求項８】
前記リクエスト検出周期算定手段は、各バスマスタに対応する前記リクエスト周期のうち最も小さいものの時間をリクエスト検出周期として定める
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項９】
前記保持手段は、前記転送レート情報を前記メモリ制御装置の外部から取得して保持する
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項１０】
１つのメモリ中の互いに独立したメモリ領域にアクセスする複数のバスマスタに対し、選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置であって、
複数のバスマスタそれぞれについて、当該バスマスタがメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定めるリクエスト周期とを示す転送レート情報を保持する保持手段と、
各バスマスタに対応する前記リクエスト周期のうち最も小さいもの以下の時間をリクエスト検出周期として定めるリクエスト検出周期算定手段と、
各バスマスタについて、対応する転送レートによって前記リクエスト検出周期において転送できるデータ量をＶとした場合にメモリバスのバスバンド幅に基づいてＶの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、
時間経過を周期的に前記リクエスト検出周期で区分して得られる複数のリクエスト検出周期帯それぞれにおいて、各バスマスタに対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備える
ことを特徴とするメモリ制御装置。
【請求項１１】
前記メモリ制御装置は、各バスマスタからのバスリクエストを検出する検出手段を備え、
前記使用権付与手段は、前記検出手段により、前記各リクエスト検出周期帯の始期以前にバスリクエストが検出されたところの各バスマスタに対して、当該リクエスト検出周期帯において前記使用権を付与する
ことを特徴とする請求項１０記載のメモリ制御装置。
【請求項１２】
前記バスマスタは、メモリとの間でデータを転送する際に一定の転送レートが保たれることを要する定期型バスマスタと、その他の不定期型バスマスタとに分類でき、
前記保持手段は、複数の定期型バスマスタそれぞれについて前記転送レート情報を保持するものであり、
前記バス使用許可時間算定手段は、各定期型バスマスタについて前記バス使用許可時間を求め、
前記使用権付与手段は、前記各リクエスト検出周期帯において、当該リクエスト検出周期帯の始期以前にバスリクエストが検出されたところの各定期型バスマスタに、対応するバス使用許可時間だけメモリバスの使用権を付与し、前記検出手段により前記バスリクエストが検出されたところの各定期型バスマスタに対応するバス使用許可時間の総和を、前記リクエスト検出周期から減じた残りの時間を上限として不定期型のバスマスタにメモリバスのバス使用権を付与する
ことを特徴とする請求項１１記載のメモリ制御装置。
【請求項１３】
前記使用権付与手段は、前記各リクエスト検出周期帯において、前記検出手段により定期型バスマスタにバス使用権を付与している間に不定期型バスマスタからのバスリクエストが検出された場合には当該定期型バスマスタへのバス使用権の付与が終了し次第、当該不定期型バスマスタにバス使用権を付与する
ことを特徴とする請求項１２記載のメモリ制御装置。
【請求項１４】
メモリを共用する複数の回路と、当該複数の回路のいずれかに対し選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置とを含むＬＳＩであって、
前記各回路は、メモリとの間で一定の転送レートでデータを転送することを要する回路であり、
前記メモリ制御装置は、前記各回路について、当該回路がメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定めるリクエスト周期とを示す転送レート情報を保持する保持手段と、
各回路に対応する前記リクエスト周期のうち最も小さいもの以下の時間をリクエスト検出周期として定めるリクエスト検出周期算定手段と、
各回路について、対応する転送レートによって前記リクエスト検出周期に転送できるデータ量をＶとした場合にメモリバスのバスバンド幅に基づいてＶの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、
時間経過を周期的に前記リクエスト検出周期で区分して得られる複数のリクエスト検出周期帯それぞれにおいて、各回路に対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備える
ことを特徴とするＬＳＩ。
【請求項１５】
前記各回路は、前記メモリ中の互いに独立したメモリ領域との間でデータの転送を行う回路である
ことを特徴とする請求項１４記載のＬＳＩ。
【請求項１６】
前記メモリ制御装置は、前記各回路からのバスリクエストを検出する検出手段を備え、
前記使用権付与手段は、前記検出手段により、前記各リクエスト検出周期帯の始期以前にバスリクエストが検出されたところの各回路に対して、当該リクエスト検出周期帯において前記使用権を付与する
ことを特徴とする請求項１４記載のＬＳＩ。
【請求項１７】
前記回路は、メモリとの間でデータを転送する際に一定の転送レートが保たれることを要する定期型バスマスタと、その他の不定期型バスマスタとに分類でき、
前記保持手段は、複数の定期型バスマスタそれぞれについて前記転送レート情報を保持するものであり、
前記バス使用許可時間算定手段は、各定期型バスマスタについて前記バス使用許可時間を求め、
前記使用権付与手段は、前記各リクエスト検出周期帯において、当該リクエスト検出周期帯の始期以前にバスリクエストが検出されたところの各定期型バスマスタに、対応するバス使用許可時間だけメモリバスの使用権を付与し、前記検出手段により前記バスリクエストが検出されたところの各定期型バスマスタに対応するバス使用許可時間の総和を、前記リクエスト検出周期から減じた残りの時間を上限として不定期型のバスマスタにメモリバスのバス使用権を付与する
ことを特徴とする請求項１６記載のＬＳＩ。
【請求項１８】
前記使用権付与手段は、前記各リクエスト検出周期帯において、前記検出手段により定期型バスマスタにバス使用権を付与している間に不定期型バスマスタからのバスリクエストが検出された場合には当該定期型バスマスタへのバス使用権の付与が終了し次第、当該不定期型バスマスタにバス使用権を付与する
ことを特徴とする請求項１７記載のＬＳＩ。
【請求項１９】
前記保持手段は、前記転送レート情報を前記ＬＳＩの外部から取得して保持する
ことを特徴とする請求項１４記載のＬＳＩ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリアクセスを制御するメモリ制御装置に関し、特にＬＳＩ（ｌａｒｇｅ  ｓｃａｌｅ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）内部に含まれるメモリ制御装置であって、ＬＳＩ内部の複数の回路によるＬＳＩの外部に接続されたメモリへのアクセスを制御するメモリ制御装置に関する。
【０００２】
【従来の技術】
近年、情報のマルチメディア化等を背景として、高速に映像、音声等を処理するために１又は複数のＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＭＰＵ（Ｍｉｃｒｏｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を包含するＬＳＩが開発されるようになってきている。
【０００３】
また、ＭＰＵの他にグラフィックス用のプロセッサ、ＡＶ（Ａｕｄｉｏ  Ｖｉｓｕａｌ）デコーダ、ハードディスクコントローラ等の独立した回路を搭載した複合的で高機能なＬＳＩも開発されるようになってきている。
このような複合的なＬＳＩにおける内部の各回路は独立したローカルメモリを用いてそれぞれの機能を実現するための演算処理等を行うことができる独立した回路であるが、各回路が同一のメモリを共用してそれぞれの機能を実現するための演算処理等を行うようにＬＳＩを構成すれば部品コスト削減等を図ることができる。
【０００４】
このためには、同一メモリへの各回路によるメモリアクセスの競合を調停するためのメモリ制御装置をＬＳＩ内部に備える必要がある。
メモリ制御装置は、ＤＳＰ、ＭＰＵ等の複数の回路（以下、「バスマスタ」という。）からのメモリへのアクセス要求、つまりメモリバスについてのバスリクエストを調停し、ある時刻においては、１つのバスマスタだけのアクセスを許可する。即ち、メモリ制御装置は、ある時刻においては、１つのバスマスタだけにメモリバスのバス使用権を付与する。
【０００５】
これに対して、各バスマスタは、メモリアクセスが必要になった時にメモリ制御装置にバスリクエストを発し、バス使用権を取得するとメモリバスを利用してメモリとの間でデータ転送を行う。
ところで、バスマスタには、例えば映像、音声のリアルタイム再生等の実現のために、連続的に処理すべきデータがある場合において一定の転送レートでデータ転送が行われることを要するものがある。
【０００６】
一定の転送レートでデータ転送が行われることを必要とするバスマスタは、内部の入出力用バッファのサイズやデータの処理方式その他の要因により、転送レートが保たれるべき範囲となる時間間隔について固有の要求をもっている。例えば、２ミリ秒（ｍｓ）間を通して見た場合において５００キロバイト／ミリ秒（ＫＢ／ｍｓ）の転送レートが保たれていれば足りるバスマスタもあれば、これに対して転送レートの確保に関する時間的余裕がなく、１ｍｓ間において５００ＫＢ／ｍｓの転送レートが保たれていなければならないバスマスタもある。
【０００７】
仮にメモリを独占できるとした場合には、基本的にはバスマスタは、その転送レートを保つべき範囲となる時間間隔をあけて繰り返しバスリクエストを発する。以下、転送レートを保つべき範囲となる時間間隔を、バスリクエスト周期という。
一定の転送レートでのデータ転送を要求する複数のバスマスタとメモリ制御装置とを内包するＬＳＩを設計する場合においては、各バスマスタの要求する転送レートやバスリクエスト周期を考慮してメモリ制御装置の調停機構を構築しなければならない。
【０００８】
調停が適切である場合には各バスマスタは要求する転送レートでデータ転送を行うことができるが、調停が適切でなければ、いずれかのバスマスタがバスリクエスト周期内においては要求する転送レートでデータ転送を行うことができないという問題が生じる。
従来のメモリ制御装置として一般的なものには、調停機構としてバス使用権の先取り優先方式を用いたものや、各バスマスタについて定めた優先度に基づき調停する方式を用いたものがある。
【０００９】
【発明が解決しようとする課題】
以下、このような従来のメモリ制御装置の問題点について説明する。
メモリバスのバスバンド幅は約８００ＫＢ／ｍｓであるとして、連続的に処理すべきデータがある場合において、バスリクエスト周期が２ｍｓでありその２ｍｓ間に１０００ＫＢのデータを転送することを要求するバスマスタＡと、バスマスタＡの半分しか時間的余裕がなくバスリクエスト周期が１ｍｓでありその１ｍｓ間に１００ＫＢのデータを転送することを要求するバスマスタＢとの２つのバスマスタがＬＳＩに含まれている場合を想定する。さらに、先取り優先方式であるならばバスマスタＡが先にバスリクエストを出した場合を想定し、優先度に基づき調停する方式であるならばバスマスタＡが優先度が高い場合を想定する。
【００１０】
この場合において、従来のメモリ制御装置にバスマスタＡからのバスリクエストがあると、メモリ制御装置はバスマスタＡにバス使用権を与えてデータの転送を許可する。これを受けてバスマスタＡが１０００ＫＢのデータを転送するとその転送に１ｍｓ以上かかるため、メモリ制御装置はバスマスタＢからの１ｍｓ毎のバスリクエストに即座に応じることができなくなる。
【００１１】
このため、バスマスタＢにとってはメモリアクセスの待ち時間が１ｍｓより大きくなってしまい、バスマスタＢとメモリとの間でのデータ転送量は１ｍｓ単位の各周期においては１００ＫＢに統一されず、転送にむらが生じてしまう。即ちバスマスタＢが必要とする転送レートがバスリクエスト周期内において保たれなくなる。
【００１２】
このようにバス使用権の先取り優先方式或いは優先度に基づき調停する方式を用いた調停機構をもつ従来のメモリ制御装置は、長期的には各バスマスタが必要とする転送レートを保証することができるかもしれないが、短期間においてその転送レートの保証ができないという問題を有する。
この問題を解決するためには、各バスマスタが必要とする転送レートや、転送レートが保証されるべき範囲となる時間間隔等を予め考慮してメモリ制御装置を設計しておく必要がある。
【００１３】
しかしながら、ＬＳＩがどのような装置中に実装されるかによって、各バスマスタに要求される処理の内容が変化し、これにより各バスマスタの要求する転送レートやバスリクエスト周期が変化するため、各バスマスタの具体的な処理内容を予め考慮してメモリ制御装置を設計しておくことは困難である。
また、年々ＬＳＩは高機能化しており、将来的にＬＳＩに新たな回路を盛り込む場合の開発コスト抑制の見地からは、ＬＳＩに包含する各回路が何であろうとその各回路についてのデータ転送レートの保証が行えるような汎用性の高いメモリ制御装置の設計開発が要請される。メモリ制御装置の汎用性が高ければ、その設計資産の長期的活用が図れるからである。
【００１４】
そこで、本発明はかかる要請に鑑みてなされたものであり、各バスマスタに対して、要求された転送レートを必要な時間的精度で保証してメモリアクセスの競合を調停する汎用的なメモリ制御装置を提供することを目的とする。また、そのメモリ制御装置及びバスマスタを含むＬＳＩを提供することを目的とする。
【００１５】
【課題を解決するための手段】
上記目的を達成するために、本発明に係るメモリ制御装置は、メモリを共用する複数のバスマスタのいずれかに対し選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置であって、複数のバスマスタそれぞれについて、当該バスマスタがメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定める時間間隔とを示す転送レート情報を保持する保持手段と、各バスマスタに対応する前記時間間隔のうち最も小さいもの以下の時間を単位時間として定める単位時間算定手段と、各バスマスタについて、対応する転送レートによって前記単位時間において転送できるデータ量をＶとした場合にメモリバスのバスバンド幅に基づいてＶの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、時間経過を周期的に前記単位時間で区分して得られる複数の単位時間帯それぞれにおいて、各バスマスタに対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備えることを特徴とする。
【００１６】
また、本発明に係るメモリ制御装置は、１つのメモリ中の互いに独立したメモリ領域にアクセスする複数のバスマスタに対し、選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置であって、複数のバスマスタそれぞれについて、当該バスマスタがメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定める時間間隔とを示す転送レート情報を保持する保持手段と、各バスマスタに対応する前記時間間隔のうち最も小さいもの以下の時間を単位時間として定める単位時間算定手段と、各バスマスタについて、対応する転送レートによって前記単位時間において転送できるデータ量をＶとした場合にメモリバスのバスバンド幅に基づいてＶの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、時間経過を周期的に前記単位時間で区分して得られる複数の単位時間帯それぞれにおいて、各バスマスタに対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備えることを特徴とする。
【００１７】
上記構成により、各バスマスタが要求する転送レートに関する条件に、何ら統一がない場合であっても、転送待ちの余裕が最小であるバスマスタの転送レートに関する条件が満足できるように転送レートの調整を行うこととなるため、各バスマスタが必要な時間的精度で転送レートを一定に保ってデータ転送を行うことができるようになる。
【００１８】
また、このメモリ制御装置を用いれば、各バスマスタの転送レートに関する条件を変更する必要があるときにも、記憶されている転送レート情報を書き替えるのみで、各バスマスタの要求に応じた転送レートで各バスマスタにメモリとの間でデータ転送を行わせることができるようになる。このことから、アクセス競合制御の対象となるバスマスタを取り替えても、このメモリ制御装置を活用することができるといえる。
【００１９】
また、本発明に係るＬＳＩは、メモリを共用する複数の回路と、当該複数の回路のいずれかに対し選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置とを含むＬＳＩであって、前記各回路は、メモリとの間で一定の転送レートでデータを転送することを要する回路であり、前記メモリ制御装置は、前記各回路について、当該回路がメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定める時間間隔とを示す転送レート情報を保持する保持手段と、各回路に対応する前記時間間隔のうち最も小さいもの以下の時間を単位時間として定める単位時間算定手段と、各回路について、対応する転送レートによって前記単位時間に転送できるデータ量をＶとした場合にメモリバスのバスバンド幅に基づいてＶの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、時間経過を周期的に前記単位時間で区分して得られる複数の単位時間帯それぞれにおいて、各回路に対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備えることを特徴とする。
【００２０】
上記構成により、ＬＳＩの複数の内部回路それぞれが、互いに共用するメモリとの間で、必要な時間的精度で必要とする転送レートを保ってデータ転送を行うことができるようになる。
【００２１】
【発明の実施の形態】
以下、本発明に係るメモリ制御装置の実施の形態であるメモリ制御部と複数のバスマスタを含むＬＳＩについて説明する。
＜実施の形態１＞
＜構成＞
図１は、本発明の実施の形態１に係るメモリ制御部を含むＬＳＩ１００の構成図である。なお、図１には、ＬＳＩ１００の他にユニファイドメモリ２００を示している。
【００２２】
ＬＳＩ１００は、情報家電機器やその他の機器に搭載されるＬＳＩであり、メモリ制御部１１０、バスマスタＡ１２１、バスマスタＢ１２２、バスマスタＣ１２３及びクロックジェネレータ１９０を備え、ユニファイドメモリ２００に接続されている。なお、図１には示していないが、ＬＳＩ１００は、他の外部装置にも接続されている。
【００２３】
ここで、クロックジェネレータ１９０は、クロック信号をメモリ制御部１１０、バスマスタＡ〜Ｃ及びユニファイドメモリ２００に供給する回路である。
バスマスタＡ１２１、Ｂ１２２及びＣ１２３は、例えば、ユニファイドメモリ２００を主記憶として用いるＭＰＵやユニファイドメモリ２００に画像データ等を格納するＤＳＰ等であり、互いに独立してユニファイドメモリ２００にアクセスしデータ転送を行う。即ち、バスマスタＡ〜Ｃそれぞれは、データ転送の必要がある場合にメモリ制御部１１０に対してＲＥＱ信号線を通じてバスリクエストを発し、メモリ制御部１１０からＧＮＴ信号線を通じてバス使用権を得て、バス使用権を得ている間においてクロックジェネレータ１９０からのクロック信号に基づくタイミングでメモリ制御部１１０の調停部１１４と同期してデータの転送を行う。
【００２４】
図１においては、各バスマスタからのバスリクエストをそれぞれＲＥＱ−Ａ、ＲＥＱ−Ｂ、ＲＥＱ−Ｃで表し、各バスマスタへのバス使用権の付与をそれぞれＧＮＴ−Ａ、ＧＮＴ−Ｂ、ＧＮＴ−Ｃで表している。
なお、データの転送は、メモリアドレスの指定と、ユニファイドメモリへのデータの書き込み或いはユニファイドメモリからのデータの読み出しによってなされ、これによりアドレスとデータとがメモリバス上を伝送される。各バスマスタがユニファイドメモリ２００との間で転送するデータは、例えば外部装置から入力されたデータに基づいてバスマスタが生成した、ディスプレイ装置に出力するための映像データである。
【００２５】
各バスマスタは、それぞれ独立してデータ転送の処理を行うものであり、例えばディスプレイ装置に出力する映像が途切れないようにする等のため、一定の転送レートでユニファイドメモリとの間でデータを転送しなければならないものである。但し、バスマスタが常に連続してユニファイドメモリとの間でデータ転送を行うとは限らない。例えば外部装置からデータが連続して入力されている等により、送出すべきデータが生成され蓄積されている期間においてはバスマスタは連続的にユニファイドメモリへのデータ転送を行うが、外部装置からデータが入力されない等によって、送出すべきデータが蓄積されていない期間においてはバスマスタはユニファイドメモリへのデータ転送を行わない。
【００２６】
また、メモリ制御部１１０は、外部装置から伝えられる転送レート情報に基づいて、各バスマスタのユニファイドメモリ２００へのアクセスを調停するものであり、転送レート情報記憶部１１１、タイミング情報生成部１１２、タイミング情報格納部１１３及び調停部１１４を有する。
ここで、転送レート情報記憶部１１１は、外部装置から伝えられる転送レート情報を記憶するためのメモリ領域である。なお、転送レート情報については、後に詳しく説明する。
【００２７】
タイミング情報生成部１１２は、転送レート情報記憶部１１１に記憶されている転送レート情報を参照してタイミング情報を生成しタイミング情報格納部１１３に格納する機能を有するものである。なお、タイミング情報については後に詳しく説明する。
タイミング情報格納部１１３は、タイミング情報を格納するためのメモリ領域である。
【００２８】
調停部１１４は、タイミング情報格納部１１３に格納されているタイミング情報を参照し、クロックジェネレータ１９０からのクロック信号に基づき所定のタイミングで、各バスマスタからのバスリクエストの有無を検査し、バスリクエストを発しているバスマスタに順次選択的にバス使用権を与える機能を有する。各バスマスタはＲＥＱ信号線をアクティブにすることにより調停部１１４にバスリクエストを発し、調停部１１４はいずれかのバスマスタへのＧＮＴ信号線をアクティブにすることによりそのバスマスタにバス使用権を付与する。なお、バスマスタはデータ転送の必要がある限りにおいてＲＥＱ信号線をアクティブにし続ける。
【００２９】
＜データ＞
図２は、転送レート情報記憶部１１１が外部装置から伝えられて記憶している転送レート情報のデータ構成及び内容例を示す図である。
同図に示すように、転送レート情報３００は、バスマスタＡ〜Ｃについて、リクエスト周期３０２と１回のデータ転送量３０３との組を対応付けた情報である。転送レート情報は、例えば、ＬＳＩの外部に配置されメモリ及びＣＰＵを備えておりＬＳＩ１００を制御する外部装置等によって、ＬＳＩ内の各バスマスタがユニファイドメモリ２００にアクセスしてデータ転送を伴う処理を開始するより前に設定されるものである。
【００３０】
ここで、リクエスト周期３０２は、連続的に処理すべきデータがある場合において各バスマスタが必要とする転送レートが、保たれるべき範囲となる時間間隔である。なお、連続的に処理すべきデータがある場合において、各バスマスタは基本的にそのリクエスト周期３０２以下の周期でバスリクエストを発する。
また、１回のデータ転送量３０３は、対応するリクエスト周期３０２において各バスマスタが転送する必要のあるデータの量である。
【００３１】
同図の例では、連続的にデータ転送を行う必要がある場合において、バスマスタＡは、２０００マイクロ秒（μｓ）毎に１０００キロバイト（ＫＢ）のデータ転送を行わなければならず、バスマスタＢは、１０００μｓ毎に１００ＫＢのデータ転送を行わなければならず、バスマスタＣは、４０００μｓ毎に４００ＫＢのデータ転送を行わなければならないことを示している。
【００３２】
即ち、バスマスタＡは２０００μｓの範囲において５００ＫＢ／ｍｓの転送レートを保って転送を行う必要のあるバスマスタであり、バスマスタＢは１０００μｓの範囲において１００ＫＢ／ｍｓの転送レートを保って転送を行う必要があるバスマスタであり、バスマスタＣは４０００μｓの範囲において１００ＫＢ／ｍｓの転送レートを保って転送を行う必要があるバスマスタであることを同図の転送レート情報３００は示している。バスマスタＡ〜Ｃにおいては、バスマスタＢが転送レートの確保に関する時間的余裕の最も小さいものであり、バスマスタＣが転送レートの確保に関する時間的余裕が最も大きいものである。
【００３３】
なお、ＣＰＵ等を備えた外部装置は、各バスマスタの仕様に合わせて、転送レート情報３００を定めてメモリ制御部１１０に入力すればよく、このようにメモリ制御部１１０の制御内容を定める転送レート情報３００を外部入力可能な構成としていることにより、メモリ制御部１１０は汎用的なものとなっている。
図３は、タイミング情報生成部１１２に生成されタイミング情報格納部１１３に格納されるタイミング情報のデータ構成及び内容例を示す図である。
【００３４】
同図に示すように、タイミング情報４００は、リクエスト検出周期４０１と、各バスマスタについての周期内バス使用許可時間４０２から構成される。
ここで、リクエスト検出周期４０１は、調停部１１４がバスマスタＡ〜Ｃからのバスリクエストを検出する間隔としてタイミング情報生成部１１２により定められる時間を示す情報である。
【００３５】
また、周期内バス使用許可時間４０２は、リクエスト検出周期４０１において各バスマスタが必要なデータの転送を行うことができるように、各バスマスタに対してメモリバスの使用を許可すべき時間、即ちバス使用権を付与すべき時間を示す情報である。なお、ユニファイドメモリ２００のメモリバスのバスバンド幅は８００ＫＢ／ｍｓであるものとしている。
【００３６】
なお、タイミング情報における各時間は、実際には例えばクロックジェネレータ１９０が発するクロック信号のカウント数で表されている。
＜動作＞
以下、上述の構成を備えるメモリ制御部１１０の動作について説明する。
外部装置から伝えられた転送レート情報を転送レート情報記憶部１１１が記憶している状態において、タイミング情報生成部１１２は、図４に示す動作を行う。
【００３７】
図４は、タイミング情報生成部１１２の動作を示すフローチャートである。
タイミング情報生成部１１２は、転送レート情報に含まれている各バスマスタについてのリクエスト周期を参照し、最も短いリクエスト周期を、タイミング情報中のリクエスト検出周期として定める（ステップＳ１１）。
続いて、タイミング情報生成部１１２は、転送レート情報とステップＳ１１において定めたリクエスト検出周期とを用いて、各バスマスタについて、リクエスト検出周期あたりのデータ転送量を求め（ステップＳ１２）、その求めたデータ転送量をメモリバスのバスバンド幅で割ることによって、タイミング情報中の周期内バス使用許可時間を求める（ステップＳ１３）。なお、タイミング情報生成部１１２は、メモリバスのバスバンド幅をＬＳＩ内部のメモリ等に記憶しており、それを活用してステップＳ１３の演算を行う。
【００３８】
こうして、求められたタイミング情報は、タイミング情報生成部１１２によってタイミング情報格納部１１３に格納される。このようなタイミング情報生成部１１２の動作は、例えばＬＳＩに電流が供給され始めてから短期間のうちに行われることが想定される。
なお、例えば、図２に例示する内容の転送レート情報３００に基づいてタイミング情報生成部１１２により生成されるタイミング情報は、図３に例示する内容のものとなる。
【００３９】
次に、タイミング情報が生成された後に、調停部１１４が行う調停処理について説明する。
図５は、調停部１１４が行う調停処理を示すフローチャートである。
調停部１１４は、タイミング情報と、クロックジェネレータ１９０から一定間隔で供給されるクロック信号とに基づいて、リクエスト検出周期毎に到来する時刻（以下、「リクエスト検出タイミング」という。）を待ち、リクエスト検出タイミングにおいて各バスマスタからバスリクエストが発されているか否かを検査する（ステップＳ２１）。
【００４０】
調停部１１４は、ステップＳ２１の検査時において、いずれかのバスマスタからのバスリクエストが検出されていたか否かを判定し（ステップＳ２２）、いずれのバスマスタからもバスリクエストが検出されていなければ、ステップＳ２１に戻り次のリクエスト検出タイミングの到来を待つ。
ステップＳ２２において、バスリクエストが検出されていたと判定されると、調停部１１４は、バスリクエストを発していたバスマスタの１つにバス使用権を付与する（ステップＳ２３）。
【００４１】
調停部１１４は、あるバスマスタにバス使用権を付与した後、クロック信号をカウントすることによりそのバスマスタについての周期内バス使用許可時間が経過するのを待って、経過時にバス使用権の付与を中止する（ステップＳ２４）。即ち、ステップＳ２３、Ｓ２４により、あるバスマスタへのＧＮＴ信号線を、周期内バス使用許可時間だけアクティブにしその後にはインアクティブにする。
【００４２】
ステップＳ２４の後、調停部１１４は、直前のステップＳ２１の検査時において、その検査後に既にバス使用権を与えたバスマスタと異なるバスマスタからのバスリクエストが検出されていたか否かを判定し（ステップＳ２５）、検出されていなければステップＳ２１に戻り次のリクエスト検出タイミングの到来を待つ。
【００４３】
ステップＳ２５において、検査後に既にバス使用権を与えたバスマスタと異なるバスマスタからのバスリクエストが検出されていたと判定すると、調停部１１４はステップＳ２３の処理に戻る。
従って、時間の経過をリクエスト検出周期の連続と表現すると、調停部１１４は、各リクエスト検出周期において、その周期前にバスリクエストを発している各バスマスタに対し、該当する周期内バス使用許可時間分だけバス使用権を与えることになる。
【００４４】
図６は、バスマスタＡ〜Ｃからのバスリクエストとメモリ制御部１１０によるバス使用権の付与との時間的変化を示すタイミングチャートである。
これは、図２に例示した転送レート情報３００に基づいてメモリ制御部１１０が各バスマスタによるメモリアクセスの競合を調停した結果を示している。
同図から明らかなように、リクエスト検出周期は、バスリクエスト周期の最も短いバスマスタＢに合わせて１０００μｓとなっており、リクエスト検出周期毎にバスリクエストを発していたバスマスタＡ、Ｂ、Ｃに順にそれぞれ６２５μｓ、１２５μｓ、１２５μｓずつバス使用権が付与されている。メモリバスのバスバンド幅が８００ＫＢ／ｍｓであるため、リクエスト検出周期内においてバスマスタＡは５００ＫＢ、バスマスタＢは１００ＫＢ、バスマスタＣは１００ＫＢのデータの転送を行っていることになる。
【００４５】
従って、バスマスタＡは２０００ｍｓにおいて１０００ＫＢのデータの転送を行い、バスマスタＢは１０００ｍｓにおいて１００ＫＢのデータの転送を行い、バスマスタＣは４０００ｍｓにおいて４００ＫＢのデータの転送を行っており、各バスマスタは、要求する転送レートを要求する精度で確保してデータ転送を行えている。
＜実施の形態２＞
以下、本発明の実施の形態２に係るメモリ制御部について説明する。実施の形態１で示したメモリ制御部１１０は、一定の転送レートでメモリとの間でデータ転送を行う必要のあるバスマスタＡ〜Ｃ間でのメモリアクセスの競合を調停する機能を有するものであったが、実施の形態２に係るメモリ制御部は、さらに一定の転送レートを保つ必要がなく不定期にメモリとの間でデータ転送を行うバスマスタＤを加えたバスマスタＡ〜Ｄ間でのメモリアクセスの競合を調停する機能を有するものである。
【００４６】
＜構成＞
図７は、本発明の実施の形態２に係るメモリ制御部を含むＬＳＩ５００の構成図である。なお、図７には、ＬＳＩ５００の他にユニファイドメモリ２００を示している。
ＬＳＩ５００は、メモリ制御部５１０、バスマスタＡ１２１、バスマスタＢ１２２、バスマスタＣ１２３、バスマスタＤ１２４及びクロックジェネレータ１９０を備え、ユニファイドメモリ２００に接続されている。図７には示していないが、ＬＳＩ５００は、他の外部装置にも接続されている。
【００４７】
なお、ＬＳＩ５００の構成要素のうち実施の形態１で示したＬＳＩ１００の構成要素と基本的に同様のものについては、図７において図１と同一の符号を付しており、ここでは詳しい説明は省略する。
ここで、クロックジェネレータ１９０は、クロック信号をメモリ制御部５１０、バスマスタＡ〜Ｄ及びユニファイドメモリ２００に供給する回路である。
【００４８】
バスマスタＤ１２４は、バスマスタＡ〜Ｃとは独立してユニファイドメモリ２００にアクセスしデータ転送を行う。即ち、バスマスタＤは、データ転送の必要がある場合にメモリ制御部５１０に対してバスリクエストを発し、メモリ制御部５１０からバス使用権を得て、バス使用権を得ている間においてクロックジェネレータ１９０からのクロック信号に基づくタイミングでメモリ制御部５１０の調停部５１４と同期してデータの転送を行う。
【００４９】
なお、バスマスタＤ１２４は、一定の転送レートを保ってデータ転送を行う必要があるタイプつまり定期的にバスリクエストを発するタイプ（以下、「定期型」という。）のバスマスタＡ〜Ｃと異なり、不定期にバスリクエストを発するタイプ（以下、「不定期型」という。）のバスマスタであり、例えば、ＬＳＩが搭載された装置のユーザからの入力に応じて外部から割込みを受けて処理を行うＭＰＵ等である。
【００５０】
図７においては、各バスマスタからのバスリクエストをそれぞれＲＥＱ−Ａ、ＲＥＱ−Ｂ、ＲＥＱ−Ｃ、ＲＥＱ−Ｄで表し、各バスマスタへのバス使用権の付与をそれぞれＧＮＴ−Ａ、ＧＮＴ−Ｂ、ＧＮＴ−Ｃ、ＧＮＴ−Ｄで表している。また、メモリ制御部５１０は、外部装置から伝えられる転送レート情報に基づいて、バスマスタＡ〜Ｄのユニファイドメモリ２００へのアクセスを調停するものであり、転送レート情報記憶部１１１、タイミング情報生成部１１２、タイミング情報格納部１１３、調停部５１４及び不定期マスタ情報記憶部５１５を有する。
【００５１】
不定期マスタ情報記憶部５１５は、不定期型のバスマスタを示す不定期マスタ情報を予め記憶しているメモリ領域である。不定期マスタ情報は調停部５１４が不定期型のバスマスタがどれであるかを認識するために必要な情報である。
調停部５１４は、不定期マスタ情報記憶部５１５に記憶されている不定期マスタ情報とタイミング情報格納部１１３に格納されているタイミング情報とを参照し、クロックジェネレータ１９０からのクロック信号に基づき所定のタイミングで、不定期型のバスマスタ以外のバスマスタ、即ち定期型のバスマスタＡ〜Ｃからのバスリクエストの有無を検査してバスリクエストを発しているバスマスタに順次選択的にバス使用権を与え、さらにリクエスト検出周期内でバスマスタＡ〜Ｃのいずれにもバス使用権を与えない時間が残っているときには不定期型のバスマスタからバスリクエストが発されている限りにおいてその不定期型のバスマスタにバス使用権を与える。
【００５２】
＜動作＞
以下、上述の構成を備えるメモリ制御部５１０の動作について説明する。
タイミング情報生成部１１２は、実施の形態１で示した動作と同様の動作を行う（図４参照）。
図８は、調停部５１４が行う調停処理を示すフローチャートである。
【００５３】
調停部５１４は、タイミング情報と、クロックジェネレータ１９０から一定間隔で供給されるクロック信号とに基づいて、リクエスト検出タイミングが到来するのを待ち、リクエスト検出タイミングにおいて不定期型のバスマスタ以外の各バスマスタ、つまり定期型の各バスマスタからバスリクエストが発されているか否かを検査する（ステップＳ３１）。
【００５４】
調停部５１４は、ステップＳ３１の検査時において、定期型のいずれかのバスマスタからのバスリクエストが検出されていたか否かを判定する（ステップＳ３２）。
ステップＳ３２において、バスリクエストが検出されていたと判定されると、調停部５１４は、バスリクエストを発していた定期型のバスマスタの１つにバス使用権を付与し（ステップＳ３３）、クロック信号をカウントすることによりそのバスマスタについての周期内バス使用許可時間が経過するのを待って、経過時にバス使用権の付与を中止する（ステップＳ３４）。即ち、ステップＳ３３、Ｓ３４により、定期型の１つのバスマスタへのＧＮＴ信号線を、周期内バス使用許可時間だけアクティブにしその後にはインアクティブにする。
【００５５】
ステップＳ３４の後、調停部５１４は、直前のステップＳ３１の検査時において、その検査後に既にバス使用権を与えたバスマスタと異なる定期型のバスマスタからのバスリクエストが検出されていたか否かを判定する（ステップＳ３５）。
ステップＳ３５において、検査後に既にバス使用権を与えたバスマスタと異なる定期型のバスマスタからのバスリクエストが、ステップＳ３１の検査時において検出されていたと判定すると調停部５１４はステップＳ３３の処理に戻り、その他の場合には調停部５１４は次のリクエスト検出タイミングが到来しているか否かを判定し（ステップＳ３６）、次のリクエスト検出タイミングが到来していると判定した場合にはステップＳ３１の処理を行う。
【００５６】
また、ステップＳ３２において、いずれのバスマスタからもバスリクエストが検出されていない場合には、調停部５１４は、ステップＳ３３〜Ｓ３５の処理をスキップし、ステップＳ３６の判定処理を行う。
ステップＳ３６において、次のリクエスト検出タイミングが到来していないと判定した場合には、調停部５１４は、不定期型のバスマスタからバスリクエストが発されているか否かを検査し（ステップＳ３７）、バスリクエストが検出された場合には、その不定期型のバスマスタにバス使用権を付与し（ステップＳ３８）、その不定期型のバスマスタからのバスリクエストが中止されたか或いは次のリクエスト検出タイミングが到来した時点でバス使用権の付与を中止し（ステップＳ３９）、ステップＳ３６の判定処理に戻る。
【００５７】
なお、ステップＳ３７において、不定期型のバスマスタからのバスリクエストが検出されない場合にも、調停部５１４はステップＳ３６の判定処理に戻る。
従って、時間の経過をリクエスト検出周期の連続と表現すると、調停部５１４は、各リクエスト検出周期において、その周期前にバスリクエストを発している定期型の各バスマスタに対し、該当する周期内バス使用許可時間分だけバス使用権を与え、その周期内の残りの時間において不定期型のバスマスタからバスリクエストが発されていればその不定期型のバスマスタに対してバス使用権を与える。
【００５８】
図９は、バスマスタＡ〜Ｄからのバスリクエストとメモリ制御部５１０によるバス使用権の付与との時間的変化を示すタイミングチャートである。
同図に示すように、調停部５１４は、各リクエスト検出周期において、定期型のバスマスタＡ〜Ｃにバス使用権を付与した時間の残り分において、不定期型のバスマスタＤからバスリクエストが発されるとバスマスタＤにバス使用権を付与している。
【００５９】
なお、あるリクエスト検出タイミングから始まるリクエスト検出周期内においてバス使用権が付与されたバスマスタＤがそのリクエスト検出周期内においてバスリクエストの発行を中止せずに次のリクエスト検出タイミングが到来した場合には、そのバスマスタＤへのバス使用権の付与は中止される。また、定期型のバスマスタのうちでリクエスト検出タイミングにおいてバスリクエストを発していなかったものがあれば、その分だけリクエスト検出周期内での、不定期型のバスマスタにバス使用権を付与し得る時間が長くなる。
【００６０】
＜調停処理の変形例＞
以下、上述した調停部５１４による調停処理を、不定期型のバスマスタに対して、より早くバス使用権を与えるように変形した例について説明する。
図１０は、調停部５１４が行う調停処理の変形例を示すフローチャートである。
【００６１】
まず、調停部５１４は、リクエスト検出タイミングが到来した時において定期型のバスマスタの各バスマスタからバスリクエストが発されているか否かを検査し、バスリクエストが検出されていた全てのバスマスタについての周期内バス使用許可時間の総和を求め、リクエスト検出周期からその総和を減算して得られる時間を、余剰時間として定める（ステップＳ５１）。ここで、余剰時間は、リクエスト検出周期内においてバス使用権をある不定期型のバスマスタに付与しうる時間を意味する。
【００６２】
続いて調停部５１４は、ステップＳ３１の検査時において、定期型のいずれかのバスマスタからのバスリクエストが検出されていたか否かを判定する（ステップＳ５２）。
ステップＳ５２において、バスリクエストが検出されていたと判定した場合には、調停部５１４は、バスリクエストを発していた定期型のバスマスタの１つにバス使用権を付与し（ステップＳ５３）、クロック信号をカウントすることによりそのバスマスタについての周期内バス使用許可時間が経過するのを待って、経過時にバス使用権の付与を中止する（ステップＳ５４）。即ち、ステップＳ５３、Ｓ５４により、定期型の１つのバスマスタへのＧＮＴ信号線を、周期内バス使用許可時間だけアクティブにしその後にはインアクティブにする。
【００６３】
また、ステップＳ５２において、バスリクエストが検出されていなかったと判定した場合には、調停部５１４はステップＳ５３及びＳ５４の処理をスキップしステップＳ５５の判定処理を行う。
ステップＳ５４の後、調停部５１４は、次のリクエスト検出タイミングが到来しているかを判定し（ステップＳ５５）、到来していればステップＳ５１の処理に戻り、到来していなければ余剰時間が０でないかを判定する（ステップＳ５６）。
【００６４】
ステップＳ５６において調停部５１４は余剰時間が０でないと判定した場合、即ち余剰時間があると判定した場合には、不定期型のバスマスタからバスリクエストが発されているか否かを検査して（ステップＳ５７）、バスリクエストを検出したときにはその不定期型のバスマスタに対してバス使用権を付与し、バス使用権を付与している時間の経過に合わせて余剰時間をカウントダウンし（ステップＳ５８）、その不定期型のバスマスタからのバスリクエストが中止された時、或いは余剰時間が０になった時にバス使用権の付与を中止し（ステップＳ５９）、再びステップＳ５６の判定処理に戻る。
【００６５】
なお、ステップＳ５１によって定められた余剰時間は、ステップＳ５８で不定期型のバスマスタにバス使用権を付与した時間分だけカウントダウンされる。但し、余剰時間のカウントダウンは余剰時間が０になった時点で停止する。
ステップＳ５６において余剰時間が０であると判定した場合、或いはステップＳ５７において不定期型のバスマスタからのバスリクエストを検出した場合には、調停部５１４は既にバス使用権を付与したバスマスタ以外の定期型のバスマスタからのバスリクエストがステップＳ５１において検出されていたか否かを判定し（ステップＳ６０）、検出されていなければステップＳ５５の処理に戻り、検出されていればステップＳ５３の処理に戻る。
【００６６】
また、ステップＳ５５において調停部５１４は、次のリクエスト検出タイミングが到来していると判定した場合には、次のリクエスト検出タイミングにおいて定期型の各バスマスタからのバスリクエストを検査するステップＳ５１の処理に戻る。
このような変形した調停処理により調停部５１４は、不定期型のバスマスタがバスリクエストを発していた時点でデータ転送を行っている定期型のバスマスタに対し、周期内バス使用許可時間分のバス使用権を付与し終え次第、その不定期型のバスマスタにバス使用権を付与するため、不定期型のバスマスタは、データ転送の必要が生じると迅速にデータ転送を開始することができるようになる。即ち、調停部はこのような変形した調停処理を行うことで、不定期型のバスマスタによるメモリアクセスについてのアクセスレイテンシを抑えることができるようになる。
【００６７】
図１１は、バスマスタＡ〜Ｄからのバスリクエストと、調停部５１４の行う調停処理を変形した場合におけるメモリ制御部５１０によるバス使用権の付与との時間的変化を示すタイミングチャートである。
同図に示すように、調停部５１４は、定期型のバスマスタＡにバス使用権を付与している間に不定期型のバスマスタＤからバスリクエストが発されると、バスマスタＡの次にバスマスタＤにバス使用権を与え、続いて定期型のバスマスタＢ及びＣに順次バス使用権を付与し、次のリクエスト検出周期において定期型のバスマスタＡ及びＢに順次バス使用権を付与し、バスマスタＢにバス使用権を付与している間に不定期型のバスマスタＤからバスリクエストが発されると、バスマスタＢの次にバスマスタＤにバス使用権を与え、続いて定期型のバスマスタＣにバス使用権を付与している。
＜補足＞
以上、本発明に係るメモリ制御装置について実施の形態１、２に基づいて説明したが、本発明はこれらの実施の形態に限られないことは勿論である。即ち、
（１）両実施の形態で示したバスマスタは、複数であればいくつであっても差し支えない。但し、定期型の全てのバスマスタについて、転送レートと、転送レートを保つべき範囲になる時間間隔とを示す転送レート情報をＬＳＩに入力する必要があり、不定期型のバスマスタが存在する場合には全ての不定期型のバスマスタを特定するための不定期マスタ情報が不定期マスタ情報記憶部５１５に記憶されている必要がある。
【００６８】
なお、ＬＳＩにユニファイドメモリが複数接続されていてもよく、この場合には、メモリ制御部は、ユニファイドメモリ毎に、実施の形態１或いは２で示したようにそのユニファイドメモリにアクセスする全てのバスマスタ間でのアクセス競合を調停するものであればよい。
（２）実施の形態１で示したメモリ制御部１１０及び実施の形態２で示したメモリ制御部５１０は、全てハードウェア回路として構築されていてもよいし、ＭＰＵとメモリからなりそのメモリ中のプログラムをＭＰＵが実行することにより調停機能を実現するように構築されていてもよい。
（３）両実施の形態では、転送レート情報は各バスマスタについてのリクエスト周期と１回のデータ転送量とからなる情報であることとしたが、転送レート情報は転送レートと、転送レートが保証されるべき最小時間間隔とを示す情報であれば、どのような情報の組合わせであってもよい。
（４）両実施の形態で示した転送レート情報は、外部装置から入力されるものとしたが、初期値を予め記憶しておいてもよい。
【００６９】
また、転送レート情報は随時入力可能であることとし、転送レート情報の入力がなされる毎にタイミング情報生成部１１２はその転送レート情報に基づいてタイミング情報を生成してタイミング情報格納部１１３に格納することとしてもよい。調停部１１４及び調停部５１４はタイミング情報に基づいて各バスマスタへのバス使用権の付与の時間を決定するものであるため、動的な調停制御が実現されるようになる。
【００７０】
なお、実施の形態２ではバスマスタを定期型と不定期型とに分類したが、これは転送レートの保証が必要なデータ転送を行うか否かによる分類であって、ＬＳＩに外部から入力される転送レート情報の内容に応じて、同じバスマスタであっても、定期型となる場合や不定期型になる場合があり得る。
（５）両実施の形態において示したタイミング情報生成部１１２が参照するメモリバスのバスバンド幅は、ＬＳＩの外部から入力可能であることとしてもよい。
（６）実施の形態１で示したメモリ制御部１１０及び実施の形態２で示したメモリ制御部５１０は、リクエスト検出周期等のリクエスト検出タイミングを特定するための情報を各バスマスタに伝えることとし、これを受けて各バスマスタはリクエスト検出タイミングに合わせてバスリクエストを発行することとしてもよい。
（７）両実施の形態では、バスマスタに対するバス使用権の付与は、ＧＮＴ信号線をアクティブにすることにより実現し、バス使用権の付与の中止は、ＧＮＴ信号線をインアクティブにすることにより実現することとしたが、本発明はこれらの実現方式に限定されることはなく、バスマスタにバス使用の許可及び禁止を伝えることのできる方式であれば、どのような方式によって実現してもよい。
【００７１】
例えば、バス使用権の付与をある信号線を瞬間的にアクティブにすることによりバスマスタに通知し、バス使用権の付与の中止を別の信号線を瞬間的にアクティブにすることによりバスマスタに通知することとしてもよい。
また、実施の形態で示した定期型のバスマスタは、データ転送の必要がある限りにおいてＲＥＱ信号線をアクティブにし続けるものとしたが、バスリクエストを発する方式はこれに限定されることはない。例えば、メモリ制御部１１０及びメモリ制御部５１０は、転送レート情報に基づいて各バスマスタに対してリクエスト検出周期内で転送可能なデータ量を通知することとしてもよく、各バスマスタはその通知されたデータ量の送信が必要となれば瞬間的にＲＥＱ信号線をアクティブにすることとしてもよい。
（８）両実施の形態で示したユニファイドメモリ２００は、特定のメモリアーキテクチャを有するメモリに限定されることはなく、いかなるメモリでも差し支えない。
【００７２】
また、両実施の形態で示したバスマスタとユニファイドメモリと間を結ぶメモリバスは、アドレスバスとデータバスとの別々の信号線で構成されるものとしても、共通の信号線で構成されるものとしてもよい。共通の信号線で構成される場合には、バスマスタとユニファイドメモリとの間でアドレス情報とデータとが時分割で伝送されることになる。また、バスマスタとユニファイドメモリとの間のバスはメモリ制御部内のインタフェース部を介して接続されていることとしてインタフェース部においてアドレスデコード等の処理を行うこととしてもよい。
（９）各実施の形態で示したＬＳＩにおいては、基本的には各バスマスタは、１つのユニファイドメモリ中の互いに独立したメモリ領域にアクセスすることが想定されているが、各バスマスタは、重複したメモリ領域にアクセスするものであっても差し支えない。
（１０）実施の形態２では、タイミング情報生成部１１２が転送レート情報に示される定期型のバスマスタのリクエスト周期のうち最も短いリクエスト周期をリクエスト検出周期とし、そのリクエスト検出周期毎にバスリクエストを発している定期型の各バスマスタへのバス使用権の付与を行うこととしたが、リクエスト検出周期は、定期型のバスマスタのリクエスト周期のうち最も短いもの以下であればよい。
【００７３】
例えば定期型のバスマスタのリクエスト周期のうち最も短いものの半分をリクエスト検出周期と定めることとしてもよく、リクエスト検出周期を短くすると、不定期型のバスマスタからのバスリクエストを受けてからバス使用権の付与までに要する時間を短くすることができるようになる。
なお、定期型のバスマスタのリクエスト周期のうち最も短いものに対して、どの程度の割合の時間を、リクエスト検出周期とするかを示す情報をＬＳＩの外部から入力できるようにし、その情報に基づいてリクエスト検出周期を決定することとしてもよい。
【００７４】
【発明の効果】
以上説明したように本発明に係るメモリ制御装置は、メモリを共用する複数のバスマスタのいずれかに対し選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置であって、複数のバスマスタそれぞれについて、当該バスマスタがメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定める時間間隔とを示す転送レート情報を保持する保持手段と、各バスマスタに対応する前記時間間隔のうち最も小さいもの以下の時間を単位時間として定める単位時間算定手段と、各バスマスタについて、対応する転送レートによって前記単位時間において転送できるデータ量をＶとした場合にメモリバスのバスバンド幅に基づいてＶの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、時間経過を周期的に前記単位時間で区分して得られる複数の単位時間帯それぞれにおいて、各バスマスタに対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備えることを特徴とする。
【００７５】
また、本発明に係るメモリ制御装置は、１つのメモリ中の互いに独立したメモリ領域にアクセスする複数のバスマスタに対し、選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置であって、複数のバスマスタそれぞれについて、当該バスマスタがメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定める時間間隔とを示す転送レート情報を保持する保持手段と、各バスマスタに対応する前記時間間隔のうち最も小さいもの以下の時間を単位時間として定める単位時間算定手段と、各バスマスタについて、対応する転送レートによって前記単位時間において転送できるデータ量をＶとした場合にメモリバスのバスバンド幅に基づいてＶの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、時間経過を周期的に前記単位時間で区分して得られる複数の単位時間帯それぞれにおいて、各バスマスタに対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備えることを特徴とする。
【００７６】
これらにより、各バスマスタが要求する転送レートに関する条件に、何ら統一がない場合であっても、転送待ちの余裕が最小であるバスマスタの転送レートに関する条件が満足できるように転送レートの調整を行うこととなるため、各バスマスタが必要な時間的精度で転送レートを一定に保ってデータ転送を行うことができるようになる。
【００７７】
また、このメモリ制御装置を用いれば、各バスマスタの転送レートに関する条件を変更する必要があるときにも、記憶されている転送レート情報を書き替えるのみで、各バスマスタの要求に応じた転送レートで各バスマスタにメモリとの間でデータ転送を行わせることができるようになる。このことから、アクセス競合制御の対象となるバスマスタを取り替えても、このメモリ制御装置を活用することができるといえる。
【００７８】
ここで、前記メモリ制御装置は、各バスマスタからのバスリクエストを検出する検出手段を備え、前記使用権付与手段は、前記検出手段により、前記各単位時間帯の始期以前にバスリクエストが検出されたところの各バスマスタに対して、当該単位時間帯において前記使用権を付与することとしてもよい。
これにより、メモリを共用するバスマスタは、転送すべきデータがある場合にバスリクエストを発せばバス使用権を得て必要とする転送レートを保ってデータ転送を行うことができるようになる。なお、これによりメモリ制御装置の回路構成が、ある単位時間内においてバスリクエストを検知するとそのバスリクエストを発したバスマスタにその単位時間内にバス使用権を付与する方式を採用する場合に比べると簡易なものとなり得る。
【００７９】
また、前記バスマスタは、メモリとの間でデータを転送する際に一定の転送レートが保たれることを要する定期型バスマスタと、その他の不定期型バスマスタとに分類でき、前記保持手段は、複数の定期型バスマスタそれぞれについて前記転送レート情報を保持するものであり、前記バス使用許可時間算定手段は、各定期型バスマスタについて前記バス使用許可時間を求め、前記使用権付与手段は、前記各単位時間帯において、当該単位時間帯の始期以前にバスリクエストが検出されたところの各定期型バスマスタに、対応するバス使用許可時間だけメモリバスの使用権を付与し、前記検出手段により前記バスリクエストが検出されたところの各定期型バスマスタに対応するバス使用許可時間の総和を、前記単位時間から減じた残りの時間を上限として不定期型のバスマスタにメモリバスのバス使用権を付与することとしてもよい。
【００８０】
これにより、一定の転送レートを保ってデータ転送を行う必要がある定期型バスマスタと、その他の不定期型バスマスタとがメモリを共用する場合においても、定期型バスマスタは必要な時間的精度で転送レートを一定に保ってデータを行うことができるようになる。
また、前記使用権付与手段は、前記各単位時間帯において、前記検出手段により定期型バスマスタにバス使用権を付与している間に不定期型バスマスタからのバスリクエストが検出された場合には当該定期型バスマスタへのバス使用権の付与が終了し次第、当該不定期型バスマスタにバス使用権を付与することとしてもよい。
【００８１】
これにより、不定期型のバスマスタはデータ転送の必要が生じてから迅速にデータ転送を行うことができるようになる。
また、前記保持手段は、前記転送レート情報を前記メモリ制御装置の外部から取得して保持することとしてもよい。
これにより、各バスマスタの機能変更等によって転送レートを変更する必要がある場合においても、外部から適切な転送レート情報を与えることができ、その結果としてバスマスタ間でのメモリアクセスの競合は適切に調停されるようになる。
【００８２】
また、前記保持手段は前記転送レート情報を、前記メモリ制御装置の外部の装置により書き替え可能な領域に保持することとしてもよい。
これにより、各バスマスタの転送レート等を変更する必要がある場合においても、外部から転送レート情報を随時書き替えることにより、バスマスタ間でのメモリアクセスの競合は適切に調停されるようになる。
【００８３】
また、前記メモリ制御装置は、前記各バスマスタとバス使用許可用の各信号線で接続されており、前記使用権付与手段は、バスマスタへのバス使用許可時間だけのバス使用権の付与を、当該バスマスタと接続されている前記信号線をバス使用許可時間だけアクティブにすることにより行うこととしてもよい。
これにより、時間を制限したバス使用権の付与を１本の信号線で簡易に実現することが可能になる。
【００８４】
また、前記単位時間算定手段は、各バスマスタに対応する前記時間間隔のうち最も小さいものの時間を単位時間として定めることとしてもよい。
これにより、転送待ちの余裕が最小であるバスマスタを基準とすることで、比較的簡単に各バスマスタの転送レートの調整を行うことができるようになる。
また、本発明に係るＬＳＩは、メモリを共用する複数の回路と、当該複数の回路のいずれかに対し選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置とを含むＬＳＩであって、前記各回路は、メモリとの間で一定の転送レートでデータを転送することを要する回路であり、前記メモリ制御装置は、前記各回路について、当該回路がメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定める時間間隔とを示す転送レート情報を保持する保持手段と、各回路に対応する前記時間間隔のうち最も小さいもの以下の時間を単位時間として定める単位時間算定手段と、各回路について、対応する転送レートによって前記単位時間に転送できるデータ量をＶとした場合にメモリバスのバスバンド幅に基づいてＶの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、時間経過を周期的に前記単位時間で区分して得られる複数の単位時間帯それぞれにおいて、各回路に対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備えることを特徴とする。
【００８５】
これにより、ＬＳＩの複数の内部回路それぞれが、互いに共用するメモリとの間で、必要な時間的精度で必要とする転送レートを保ってデータ転送を行うことができるようになる。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係るメモリ制御部を含むＬＳＩ１００の構成図である。
【図２】転送レート情報記憶部１１１が外部装置から伝えられて記憶している転送レート情報のデータ構成及び内容例を示す図である。
【図３】タイミング情報生成部１１２に生成されタイミング情報格納部１１３に格納されるタイミング情報のデータ構成及び内容例を示す図である。
【図４】タイミング情報生成部１１２の動作を示すフローチャートである。
【図５】調停部１１４が行う調停処理を示すフローチャートである。
【図６】バスマスタＡ〜Ｃからのバスリクエストとメモリ制御部１１０によるバス使用権の付与との時間的変化を示すタイミングチャートである。
【図７】本発明の実施の形態２に係るメモリ制御部を含むＬＳＩ５００の構成図である。
【図８】調停部５１４が行う調停処理を示すフローチャートである。
【図９】バスマスタＡ〜Ｄからのバスリクエストとメモリ制御部５１０によるバス使用権の付与との時間的変化を示すタイミングチャートである。
【図１０】調停部５１４が行う調停処理の変形例を示すフローチャートである。
【図１１】バスマスタＡ〜Ｄからのバスリクエストと、調停部５１４の行う調停処理を変形した場合におけるメモリ制御部５１０によるバス使用権の付与との時間的変化を示すタイミングチャートである。
【符号の説明】
１００、５００  ＬＳＩ
１１０、５１０  メモリ制御部
１１１          転送レート情報記憶部
１１２          タイミング情報生成部
１１３          タイミング情報格納部
１１４、５１４  調停部
１２１〜１２４  バスマスタ
１９０          クロックジェネレータ
２００          ユニファイドメモリ
５１５          不定期マスタ情報記憶部
【図１】
0003987750.tif 000002
【図２】
0003987750.tif 000003
【図３】
0003987750.tif 000004
【図４】
0003987750.tif 000005
【図５】
0003987750.tif 000006
【図６】
0003987750.tif 000007
【図７】
0003987750.tif 000008
【図８】
0003987750.tif 000009
【図９】
0003987750.tif 000010
【図１０】
0003987750.tif 000011
【図１１】
0003987750.tif 000012