JP3987750B2 - メモリ制御装置及びlsi - Google Patents
メモリ制御装置及びlsi Download PDFInfo
- Publication number
- JP3987750B2 JP3987750B2 JP2002103027A JP2002103027A JP3987750B2 JP 3987750 B2 JP3987750 B2 JP 3987750B2 JP 2002103027 A JP2002103027 A JP 2002103027A JP 2002103027 A JP2002103027 A JP 2002103027A JP 3987750 B2 JP3987750 B2 JP 3987750B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- memory
- request
- bus master
- transfer rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Bus Control (AREA)
Description
【発明の属する技術分野】
本発明は、メモリアクセスを制御するメモリ制御装置に関し、特にLSI(large scale integrated circuit)内部に含まれるメモリ制御装置であって、LSI内部の複数の回路によるLSIの外部に接続されたメモリへのアクセスを制御するメモリ制御装置に関する。
【0002】
【従来の技術】
近年、情報のマルチメディア化等を背景として、高速に映像、音声等を処理するために1又は複数のDSP(Digital Signal Processor)、MPU(Microprocessing Unit)を包含するLSIが開発されるようになってきている。
【0003】
また、MPUの他にグラフィックス用のプロセッサ、AV(Audio Visual)デコーダ、ハードディスクコントローラ等の独立した回路を搭載した複合的で高機能なLSIも開発されるようになってきている。
このような複合的なLSIにおける内部の各回路は独立したローカルメモリを用いてそれぞれの機能を実現するための演算処理等を行うことができる独立した回路であるが、各回路が同一のメモリを共用してそれぞれの機能を実現するための演算処理等を行うようにLSIを構成すれば部品コスト削減等を図ることができる。
【0004】
このためには、同一メモリへの各回路によるメモリアクセスの競合を調停するためのメモリ制御装置をLSI内部に備える必要がある。
メモリ制御装置は、DSP、MPU等の複数の回路(以下、「バスマスタ」という。)からのメモリへのアクセス要求、つまりメモリバスについてのバスリクエストを調停し、ある時刻においては、1つのバスマスタだけのアクセスを許可する。即ち、メモリ制御装置は、ある時刻においては、1つのバスマスタだけにメモリバスのバス使用権を付与する。
【0005】
これに対して、各バスマスタは、メモリアクセスが必要になった時にメモリ制御装置にバスリクエストを発し、バス使用権を取得するとメモリバスを利用してメモリとの間でデータ転送を行う。
ところで、バスマスタには、例えば映像、音声のリアルタイム再生等の実現のために、連続的に処理すべきデータがある場合において一定の転送レートでデータ転送が行われることを要するものがある。
【0006】
一定の転送レートでデータ転送が行われることを必要とするバスマスタは、内部の入出力用バッファのサイズやデータの処理方式その他の要因により、転送レートが保たれるべき範囲となる時間間隔について固有の要求をもっている。例えば、2ミリ秒(ms)間を通して見た場合において500キロバイト/ミリ秒(KB/ms)の転送レートが保たれていれば足りるバスマスタもあれば、これに対して転送レートの確保に関する時間的余裕がなく、1ms間において500KB/msの転送レートが保たれていなければならないバスマスタもある。
【0007】
仮にメモリを独占できるとした場合には、基本的にはバスマスタは、その転送レートを保つべき範囲となる時間間隔をあけて繰り返しバスリクエストを発する。以下、転送レートを保つべき範囲となる時間間隔を、バスリクエスト周期という。
一定の転送レートでのデータ転送を要求する複数のバスマスタとメモリ制御装置とを内包するLSIを設計する場合においては、各バスマスタの要求する転送レートやバスリクエスト周期を考慮してメモリ制御装置の調停機構を構築しなければならない。
【0008】
調停が適切である場合には各バスマスタは要求する転送レートでデータ転送を行うことができるが、調停が適切でなければ、いずれかのバスマスタがバスリクエスト周期内においては要求する転送レートでデータ転送を行うことができないという問題が生じる。
従来のメモリ制御装置として一般的なものには、調停機構としてバス使用権の先取り優先方式を用いたものや、各バスマスタについて定めた優先度に基づき調停する方式を用いたものがある。
【0009】
【発明が解決しようとする課題】
以下、このような従来のメモリ制御装置の問題点について説明する。
メモリバスのバスバンド幅は約800KB/msであるとして、連続的に処理すべきデータがある場合において、バスリクエスト周期が2msでありその2ms間に1000KBのデータを転送することを要求するバスマスタAと、バスマスタAの半分しか時間的余裕がなくバスリクエスト周期が1msでありその1ms間に100KBのデータを転送することを要求するバスマスタBとの2つのバスマスタがLSIに含まれている場合を想定する。さらに、先取り優先方式であるならばバスマスタAが先にバスリクエストを出した場合を想定し、優先度に基づき調停する方式であるならばバスマスタAが優先度が高い場合を想定する。
【0010】
この場合において、従来のメモリ制御装置にバスマスタAからのバスリクエストがあると、メモリ制御装置はバスマスタAにバス使用権を与えてデータの転送を許可する。これを受けてバスマスタAが1000KBのデータを転送するとその転送に1ms以上かかるため、メモリ制御装置はバスマスタBからの1ms毎のバスリクエストに即座に応じることができなくなる。
【0011】
このため、バスマスタBにとってはメモリアクセスの待ち時間が1msより大きくなってしまい、バスマスタBとメモリとの間でのデータ転送量は1ms単位の各周期においては100KBに統一されず、転送にむらが生じてしまう。即ちバスマスタBが必要とする転送レートがバスリクエスト周期内において保たれなくなる。
【0012】
このようにバス使用権の先取り優先方式或いは優先度に基づき調停する方式を用いた調停機構をもつ従来のメモリ制御装置は、長期的には各バスマスタが必要とする転送レートを保証することができるかもしれないが、短期間においてその転送レートの保証ができないという問題を有する。
この問題を解決するためには、各バスマスタが必要とする転送レートや、転送レートが保証されるべき範囲となる時間間隔等を予め考慮してメモリ制御装置を設計しておく必要がある。
【0013】
しかしながら、LSIがどのような装置中に実装されるかによって、各バスマスタに要求される処理の内容が変化し、これにより各バスマスタの要求する転送レートやバスリクエスト周期が変化するため、各バスマスタの具体的な処理内容を予め考慮してメモリ制御装置を設計しておくことは困難である。
また、年々LSIは高機能化しており、将来的にLSIに新たな回路を盛り込む場合の開発コスト抑制の見地からは、LSIに包含する各回路が何であろうとその各回路についてのデータ転送レートの保証が行えるような汎用性の高いメモリ制御装置の設計開発が要請される。メモリ制御装置の汎用性が高ければ、その設計資産の長期的活用が図れるからである。
【0014】
そこで、本発明はかかる要請に鑑みてなされたものであり、各バスマスタに対して、要求された転送レートを必要な時間的精度で保証してメモリアクセスの競合を調停する汎用的なメモリ制御装置を提供することを目的とする。また、そのメモリ制御装置及びバスマスタを含むLSIを提供することを目的とする。
【0015】
【課題を解決するための手段】
上記目的を達成するために、本発明に係るメモリ制御装置は、メモリを共用する複数のバスマスタのいずれかに対し選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置であって、複数のバスマスタそれぞれについて、当該バスマスタがメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定める時間間隔とを示す転送レート情報を保持する保持手段と、各バスマスタに対応する前記時間間隔のうち最も小さいもの以下の時間を単位時間として定める単位時間算定手段と、各バスマスタについて、対応する転送レートによって前記単位時間において転送できるデータ量をVとした場合にメモリバスのバスバンド幅に基づいてVの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、時間経過を周期的に前記単位時間で区分して得られる複数の単位時間帯それぞれにおいて、各バスマスタに対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備えることを特徴とする。
【0016】
また、本発明に係るメモリ制御装置は、1つのメモリ中の互いに独立したメモリ領域にアクセスする複数のバスマスタに対し、選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置であって、複数のバスマスタそれぞれについて、当該バスマスタがメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定める時間間隔とを示す転送レート情報を保持する保持手段と、各バスマスタに対応する前記時間間隔のうち最も小さいもの以下の時間を単位時間として定める単位時間算定手段と、各バスマスタについて、対応する転送レートによって前記単位時間において転送できるデータ量をVとした場合にメモリバスのバスバンド幅に基づいてVの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、時間経過を周期的に前記単位時間で区分して得られる複数の単位時間帯それぞれにおいて、各バスマスタに対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備えることを特徴とする。
【0017】
上記構成により、各バスマスタが要求する転送レートに関する条件に、何ら統一がない場合であっても、転送待ちの余裕が最小であるバスマスタの転送レートに関する条件が満足できるように転送レートの調整を行うこととなるため、各バスマスタが必要な時間的精度で転送レートを一定に保ってデータ転送を行うことができるようになる。
【0018】
また、このメモリ制御装置を用いれば、各バスマスタの転送レートに関する条件を変更する必要があるときにも、記憶されている転送レート情報を書き替えるのみで、各バスマスタの要求に応じた転送レートで各バスマスタにメモリとの間でデータ転送を行わせることができるようになる。このことから、アクセス競合制御の対象となるバスマスタを取り替えても、このメモリ制御装置を活用することができるといえる。
【0019】
また、本発明に係るLSIは、メモリを共用する複数の回路と、当該複数の回路のいずれかに対し選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置とを含むLSIであって、前記各回路は、メモリとの間で一定の転送レートでデータを転送することを要する回路であり、前記メモリ制御装置は、前記各回路について、当該回路がメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定める時間間隔とを示す転送レート情報を保持する保持手段と、各回路に対応する前記時間間隔のうち最も小さいもの以下の時間を単位時間として定める単位時間算定手段と、各回路について、対応する転送レートによって前記単位時間に転送できるデータ量をVとした場合にメモリバスのバスバンド幅に基づいてVの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、時間経過を周期的に前記単位時間で区分して得られる複数の単位時間帯それぞれにおいて、各回路に対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備えることを特徴とする。
【0020】
上記構成により、LSIの複数の内部回路それぞれが、互いに共用するメモリとの間で、必要な時間的精度で必要とする転送レートを保ってデータ転送を行うことができるようになる。
【0021】
【発明の実施の形態】
以下、本発明に係るメモリ制御装置の実施の形態であるメモリ制御部と複数のバスマスタを含むLSIについて説明する。
<実施の形態1>
<構成>
図1は、本発明の実施の形態1に係るメモリ制御部を含むLSI100の構成図である。なお、図1には、LSI100の他にユニファイドメモリ200を示している。
【0022】
LSI100は、情報家電機器やその他の機器に搭載されるLSIであり、メモリ制御部110、バスマスタA121、バスマスタB122、バスマスタC123及びクロックジェネレータ190を備え、ユニファイドメモリ200に接続されている。なお、図1には示していないが、LSI100は、他の外部装置にも接続されている。
【0023】
ここで、クロックジェネレータ190は、クロック信号をメモリ制御部110、バスマスタA〜C及びユニファイドメモリ200に供給する回路である。
バスマスタA121、B122及びC123は、例えば、ユニファイドメモリ200を主記憶として用いるMPUやユニファイドメモリ200に画像データ等を格納するDSP等であり、互いに独立してユニファイドメモリ200にアクセスしデータ転送を行う。即ち、バスマスタA〜Cそれぞれは、データ転送の必要がある場合にメモリ制御部110に対してREQ信号線を通じてバスリクエストを発し、メモリ制御部110からGNT信号線を通じてバス使用権を得て、バス使用権を得ている間においてクロックジェネレータ190からのクロック信号に基づくタイミングでメモリ制御部110の調停部114と同期してデータの転送を行う。
【0024】
図1においては、各バスマスタからのバスリクエストをそれぞれREQ−A、REQ−B、REQ−Cで表し、各バスマスタへのバス使用権の付与をそれぞれGNT−A、GNT−B、GNT−Cで表している。
なお、データの転送は、メモリアドレスの指定と、ユニファイドメモリへのデータの書き込み或いはユニファイドメモリからのデータの読み出しによってなされ、これによりアドレスとデータとがメモリバス上を伝送される。各バスマスタがユニファイドメモリ200との間で転送するデータは、例えば外部装置から入力されたデータに基づいてバスマスタが生成した、ディスプレイ装置に出力するための映像データである。
【0025】
各バスマスタは、それぞれ独立してデータ転送の処理を行うものであり、例えばディスプレイ装置に出力する映像が途切れないようにする等のため、一定の転送レートでユニファイドメモリとの間でデータを転送しなければならないものである。但し、バスマスタが常に連続してユニファイドメモリとの間でデータ転送を行うとは限らない。例えば外部装置からデータが連続して入力されている等により、送出すべきデータが生成され蓄積されている期間においてはバスマスタは連続的にユニファイドメモリへのデータ転送を行うが、外部装置からデータが入力されない等によって、送出すべきデータが蓄積されていない期間においてはバスマスタはユニファイドメモリへのデータ転送を行わない。
【0026】
また、メモリ制御部110は、外部装置から伝えられる転送レート情報に基づいて、各バスマスタのユニファイドメモリ200へのアクセスを調停するものであり、転送レート情報記憶部111、タイミング情報生成部112、タイミング情報格納部113及び調停部114を有する。
ここで、転送レート情報記憶部111は、外部装置から伝えられる転送レート情報を記憶するためのメモリ領域である。なお、転送レート情報については、後に詳しく説明する。
【0027】
タイミング情報生成部112は、転送レート情報記憶部111に記憶されている転送レート情報を参照してタイミング情報を生成しタイミング情報格納部113に格納する機能を有するものである。なお、タイミング情報については後に詳しく説明する。
タイミング情報格納部113は、タイミング情報を格納するためのメモリ領域である。
【0028】
調停部114は、タイミング情報格納部113に格納されているタイミング情報を参照し、クロックジェネレータ190からのクロック信号に基づき所定のタイミングで、各バスマスタからのバスリクエストの有無を検査し、バスリクエストを発しているバスマスタに順次選択的にバス使用権を与える機能を有する。各バスマスタはREQ信号線をアクティブにすることにより調停部114にバスリクエストを発し、調停部114はいずれかのバスマスタへのGNT信号線をアクティブにすることによりそのバスマスタにバス使用権を付与する。なお、バスマスタはデータ転送の必要がある限りにおいてREQ信号線をアクティブにし続ける。
【0029】
<データ>
図2は、転送レート情報記憶部111が外部装置から伝えられて記憶している転送レート情報のデータ構成及び内容例を示す図である。
同図に示すように、転送レート情報300は、バスマスタA〜Cについて、リクエスト周期302と1回のデータ転送量303との組を対応付けた情報である。転送レート情報は、例えば、LSIの外部に配置されメモリ及びCPUを備えておりLSI100を制御する外部装置等によって、LSI内の各バスマスタがユニファイドメモリ200にアクセスしてデータ転送を伴う処理を開始するより前に設定されるものである。
【0030】
ここで、リクエスト周期302は、連続的に処理すべきデータがある場合において各バスマスタが必要とする転送レートが、保たれるべき範囲となる時間間隔である。なお、連続的に処理すべきデータがある場合において、各バスマスタは基本的にそのリクエスト周期302以下の周期でバスリクエストを発する。
また、1回のデータ転送量303は、対応するリクエスト周期302において各バスマスタが転送する必要のあるデータの量である。
【0031】
同図の例では、連続的にデータ転送を行う必要がある場合において、バスマスタAは、2000マイクロ秒(μs)毎に1000キロバイト(KB)のデータ転送を行わなければならず、バスマスタBは、1000μs毎に100KBのデータ転送を行わなければならず、バスマスタCは、4000μs毎に400KBのデータ転送を行わなければならないことを示している。
【0032】
即ち、バスマスタAは2000μsの範囲において500KB/msの転送レートを保って転送を行う必要のあるバスマスタであり、バスマスタBは1000μsの範囲において100KB/msの転送レートを保って転送を行う必要があるバスマスタであり、バスマスタCは4000μsの範囲において100KB/msの転送レートを保って転送を行う必要があるバスマスタであることを同図の転送レート情報300は示している。バスマスタA〜Cにおいては、バスマスタBが転送レートの確保に関する時間的余裕の最も小さいものであり、バスマスタCが転送レートの確保に関する時間的余裕が最も大きいものである。
【0033】
なお、CPU等を備えた外部装置は、各バスマスタの仕様に合わせて、転送レート情報300を定めてメモリ制御部110に入力すればよく、このようにメモリ制御部110の制御内容を定める転送レート情報300を外部入力可能な構成としていることにより、メモリ制御部110は汎用的なものとなっている。
図3は、タイミング情報生成部112に生成されタイミング情報格納部113に格納されるタイミング情報のデータ構成及び内容例を示す図である。
【0034】
同図に示すように、タイミング情報400は、リクエスト検出周期401と、各バスマスタについての周期内バス使用許可時間402から構成される。
ここで、リクエスト検出周期401は、調停部114がバスマスタA〜Cからのバスリクエストを検出する間隔としてタイミング情報生成部112により定められる時間を示す情報である。
【0035】
また、周期内バス使用許可時間402は、リクエスト検出周期401において各バスマスタが必要なデータの転送を行うことができるように、各バスマスタに対してメモリバスの使用を許可すべき時間、即ちバス使用権を付与すべき時間を示す情報である。なお、ユニファイドメモリ200のメモリバスのバスバンド幅は800KB/msであるものとしている。
【0036】
なお、タイミング情報における各時間は、実際には例えばクロックジェネレータ190が発するクロック信号のカウント数で表されている。
<動作>
以下、上述の構成を備えるメモリ制御部110の動作について説明する。
外部装置から伝えられた転送レート情報を転送レート情報記憶部111が記憶している状態において、タイミング情報生成部112は、図4に示す動作を行う。
【0037】
図4は、タイミング情報生成部112の動作を示すフローチャートである。
タイミング情報生成部112は、転送レート情報に含まれている各バスマスタについてのリクエスト周期を参照し、最も短いリクエスト周期を、タイミング情報中のリクエスト検出周期として定める(ステップS11)。
続いて、タイミング情報生成部112は、転送レート情報とステップS11において定めたリクエスト検出周期とを用いて、各バスマスタについて、リクエスト検出周期あたりのデータ転送量を求め(ステップS12)、その求めたデータ転送量をメモリバスのバスバンド幅で割ることによって、タイミング情報中の周期内バス使用許可時間を求める(ステップS13)。なお、タイミング情報生成部112は、メモリバスのバスバンド幅をLSI内部のメモリ等に記憶しており、それを活用してステップS13の演算を行う。
【0038】
こうして、求められたタイミング情報は、タイミング情報生成部112によってタイミング情報格納部113に格納される。このようなタイミング情報生成部112の動作は、例えばLSIに電流が供給され始めてから短期間のうちに行われることが想定される。
なお、例えば、図2に例示する内容の転送レート情報300に基づいてタイミング情報生成部112により生成されるタイミング情報は、図3に例示する内容のものとなる。
【0039】
次に、タイミング情報が生成された後に、調停部114が行う調停処理について説明する。
図5は、調停部114が行う調停処理を示すフローチャートである。
調停部114は、タイミング情報と、クロックジェネレータ190から一定間隔で供給されるクロック信号とに基づいて、リクエスト検出周期毎に到来する時刻(以下、「リクエスト検出タイミング」という。)を待ち、リクエスト検出タイミングにおいて各バスマスタからバスリクエストが発されているか否かを検査する(ステップS21)。
【0040】
調停部114は、ステップS21の検査時において、いずれかのバスマスタからのバスリクエストが検出されていたか否かを判定し(ステップS22)、いずれのバスマスタからもバスリクエストが検出されていなければ、ステップS21に戻り次のリクエスト検出タイミングの到来を待つ。
ステップS22において、バスリクエストが検出されていたと判定されると、調停部114は、バスリクエストを発していたバスマスタの1つにバス使用権を付与する(ステップS23)。
【0041】
調停部114は、あるバスマスタにバス使用権を付与した後、クロック信号をカウントすることによりそのバスマスタについての周期内バス使用許可時間が経過するのを待って、経過時にバス使用権の付与を中止する(ステップS24)。即ち、ステップS23、S24により、あるバスマスタへのGNT信号線を、周期内バス使用許可時間だけアクティブにしその後にはインアクティブにする。
【0042】
ステップS24の後、調停部114は、直前のステップS21の検査時において、その検査後に既にバス使用権を与えたバスマスタと異なるバスマスタからのバスリクエストが検出されていたか否かを判定し(ステップS25)、検出されていなければステップS21に戻り次のリクエスト検出タイミングの到来を待つ。
【0043】
ステップS25において、検査後に既にバス使用権を与えたバスマスタと異なるバスマスタからのバスリクエストが検出されていたと判定すると、調停部114はステップS23の処理に戻る。
従って、時間の経過をリクエスト検出周期の連続と表現すると、調停部114は、各リクエスト検出周期において、その周期前にバスリクエストを発している各バスマスタに対し、該当する周期内バス使用許可時間分だけバス使用権を与えることになる。
【0044】
図6は、バスマスタA〜Cからのバスリクエストとメモリ制御部110によるバス使用権の付与との時間的変化を示すタイミングチャートである。
これは、図2に例示した転送レート情報300に基づいてメモリ制御部110が各バスマスタによるメモリアクセスの競合を調停した結果を示している。
同図から明らかなように、リクエスト検出周期は、バスリクエスト周期の最も短いバスマスタBに合わせて1000μsとなっており、リクエスト検出周期毎にバスリクエストを発していたバスマスタA、B、Cに順にそれぞれ625μs、125μs、125μsずつバス使用権が付与されている。メモリバスのバスバンド幅が800KB/msであるため、リクエスト検出周期内においてバスマスタAは500KB、バスマスタBは100KB、バスマスタCは100KBのデータの転送を行っていることになる。
【0045】
従って、バスマスタAは2000msにおいて1000KBのデータの転送を行い、バスマスタBは1000msにおいて100KBのデータの転送を行い、バスマスタCは4000msにおいて400KBのデータの転送を行っており、各バスマスタは、要求する転送レートを要求する精度で確保してデータ転送を行えている。
<実施の形態2>
以下、本発明の実施の形態2に係るメモリ制御部について説明する。実施の形態1で示したメモリ制御部110は、一定の転送レートでメモリとの間でデータ転送を行う必要のあるバスマスタA〜C間でのメモリアクセスの競合を調停する機能を有するものであったが、実施の形態2に係るメモリ制御部は、さらに一定の転送レートを保つ必要がなく不定期にメモリとの間でデータ転送を行うバスマスタDを加えたバスマスタA〜D間でのメモリアクセスの競合を調停する機能を有するものである。
【0046】
<構成>
図7は、本発明の実施の形態2に係るメモリ制御部を含むLSI500の構成図である。なお、図7には、LSI500の他にユニファイドメモリ200を示している。
LSI500は、メモリ制御部510、バスマスタA121、バスマスタB122、バスマスタC123、バスマスタD124及びクロックジェネレータ190を備え、ユニファイドメモリ200に接続されている。図7には示していないが、LSI500は、他の外部装置にも接続されている。
【0047】
なお、LSI500の構成要素のうち実施の形態1で示したLSI100の構成要素と基本的に同様のものについては、図7において図1と同一の符号を付しており、ここでは詳しい説明は省略する。
ここで、クロックジェネレータ190は、クロック信号をメモリ制御部510、バスマスタA〜D及びユニファイドメモリ200に供給する回路である。
【0048】
バスマスタD124は、バスマスタA〜Cとは独立してユニファイドメモリ200にアクセスしデータ転送を行う。即ち、バスマスタDは、データ転送の必要がある場合にメモリ制御部510に対してバスリクエストを発し、メモリ制御部510からバス使用権を得て、バス使用権を得ている間においてクロックジェネレータ190からのクロック信号に基づくタイミングでメモリ制御部510の調停部514と同期してデータの転送を行う。
【0049】
なお、バスマスタD124は、一定の転送レートを保ってデータ転送を行う必要があるタイプつまり定期的にバスリクエストを発するタイプ(以下、「定期型」という。)のバスマスタA〜Cと異なり、不定期にバスリクエストを発するタイプ(以下、「不定期型」という。)のバスマスタであり、例えば、LSIが搭載された装置のユーザからの入力に応じて外部から割込みを受けて処理を行うMPU等である。
【0050】
図7においては、各バスマスタからのバスリクエストをそれぞれREQ−A、REQ−B、REQ−C、REQ−Dで表し、各バスマスタへのバス使用権の付与をそれぞれGNT−A、GNT−B、GNT−C、GNT−Dで表している。また、メモリ制御部510は、外部装置から伝えられる転送レート情報に基づいて、バスマスタA〜Dのユニファイドメモリ200へのアクセスを調停するものであり、転送レート情報記憶部111、タイミング情報生成部112、タイミング情報格納部113、調停部514及び不定期マスタ情報記憶部515を有する。
【0051】
不定期マスタ情報記憶部515は、不定期型のバスマスタを示す不定期マスタ情報を予め記憶しているメモリ領域である。不定期マスタ情報は調停部514が不定期型のバスマスタがどれであるかを認識するために必要な情報である。
調停部514は、不定期マスタ情報記憶部515に記憶されている不定期マスタ情報とタイミング情報格納部113に格納されているタイミング情報とを参照し、クロックジェネレータ190からのクロック信号に基づき所定のタイミングで、不定期型のバスマスタ以外のバスマスタ、即ち定期型のバスマスタA〜Cからのバスリクエストの有無を検査してバスリクエストを発しているバスマスタに順次選択的にバス使用権を与え、さらにリクエスト検出周期内でバスマスタA〜Cのいずれにもバス使用権を与えない時間が残っているときには不定期型のバスマスタからバスリクエストが発されている限りにおいてその不定期型のバスマスタにバス使用権を与える。
【0052】
<動作>
以下、上述の構成を備えるメモリ制御部510の動作について説明する。
タイミング情報生成部112は、実施の形態1で示した動作と同様の動作を行う(図4参照)。
図8は、調停部514が行う調停処理を示すフローチャートである。
【0053】
調停部514は、タイミング情報と、クロックジェネレータ190から一定間隔で供給されるクロック信号とに基づいて、リクエスト検出タイミングが到来するのを待ち、リクエスト検出タイミングにおいて不定期型のバスマスタ以外の各バスマスタ、つまり定期型の各バスマスタからバスリクエストが発されているか否かを検査する(ステップS31)。
【0054】
調停部514は、ステップS31の検査時において、定期型のいずれかのバスマスタからのバスリクエストが検出されていたか否かを判定する(ステップS32)。
ステップS32において、バスリクエストが検出されていたと判定されると、調停部514は、バスリクエストを発していた定期型のバスマスタの1つにバス使用権を付与し(ステップS33)、クロック信号をカウントすることによりそのバスマスタについての周期内バス使用許可時間が経過するのを待って、経過時にバス使用権の付与を中止する(ステップS34)。即ち、ステップS33、S34により、定期型の1つのバスマスタへのGNT信号線を、周期内バス使用許可時間だけアクティブにしその後にはインアクティブにする。
【0055】
ステップS34の後、調停部514は、直前のステップS31の検査時において、その検査後に既にバス使用権を与えたバスマスタと異なる定期型のバスマスタからのバスリクエストが検出されていたか否かを判定する(ステップS35)。
ステップS35において、検査後に既にバス使用権を与えたバスマスタと異なる定期型のバスマスタからのバスリクエストが、ステップS31の検査時において検出されていたと判定すると調停部514はステップS33の処理に戻り、その他の場合には調停部514は次のリクエスト検出タイミングが到来しているか否かを判定し(ステップS36)、次のリクエスト検出タイミングが到来していると判定した場合にはステップS31の処理を行う。
【0056】
また、ステップS32において、いずれのバスマスタからもバスリクエストが検出されていない場合には、調停部514は、ステップS33〜S35の処理をスキップし、ステップS36の判定処理を行う。
ステップS36において、次のリクエスト検出タイミングが到来していないと判定した場合には、調停部514は、不定期型のバスマスタからバスリクエストが発されているか否かを検査し(ステップS37)、バスリクエストが検出された場合には、その不定期型のバスマスタにバス使用権を付与し(ステップS38)、その不定期型のバスマスタからのバスリクエストが中止されたか或いは次のリクエスト検出タイミングが到来した時点でバス使用権の付与を中止し(ステップS39)、ステップS36の判定処理に戻る。
【0057】
なお、ステップS37において、不定期型のバスマスタからのバスリクエストが検出されない場合にも、調停部514はステップS36の判定処理に戻る。
従って、時間の経過をリクエスト検出周期の連続と表現すると、調停部514は、各リクエスト検出周期において、その周期前にバスリクエストを発している定期型の各バスマスタに対し、該当する周期内バス使用許可時間分だけバス使用権を与え、その周期内の残りの時間において不定期型のバスマスタからバスリクエストが発されていればその不定期型のバスマスタに対してバス使用権を与える。
【0058】
図9は、バスマスタA〜Dからのバスリクエストとメモリ制御部510によるバス使用権の付与との時間的変化を示すタイミングチャートである。
同図に示すように、調停部514は、各リクエスト検出周期において、定期型のバスマスタA〜Cにバス使用権を付与した時間の残り分において、不定期型のバスマスタDからバスリクエストが発されるとバスマスタDにバス使用権を付与している。
【0059】
なお、あるリクエスト検出タイミングから始まるリクエスト検出周期内においてバス使用権が付与されたバスマスタDがそのリクエスト検出周期内においてバスリクエストの発行を中止せずに次のリクエスト検出タイミングが到来した場合には、そのバスマスタDへのバス使用権の付与は中止される。また、定期型のバスマスタのうちでリクエスト検出タイミングにおいてバスリクエストを発していなかったものがあれば、その分だけリクエスト検出周期内での、不定期型のバスマスタにバス使用権を付与し得る時間が長くなる。
【0060】
<調停処理の変形例>
以下、上述した調停部514による調停処理を、不定期型のバスマスタに対して、より早くバス使用権を与えるように変形した例について説明する。
図10は、調停部514が行う調停処理の変形例を示すフローチャートである。
【0061】
まず、調停部514は、リクエスト検出タイミングが到来した時において定期型のバスマスタの各バスマスタからバスリクエストが発されているか否かを検査し、バスリクエストが検出されていた全てのバスマスタについての周期内バス使用許可時間の総和を求め、リクエスト検出周期からその総和を減算して得られる時間を、余剰時間として定める(ステップS51)。ここで、余剰時間は、リクエスト検出周期内においてバス使用権をある不定期型のバスマスタに付与しうる時間を意味する。
【0062】
続いて調停部514は、ステップS31の検査時において、定期型のいずれかのバスマスタからのバスリクエストが検出されていたか否かを判定する(ステップS52)。
ステップS52において、バスリクエストが検出されていたと判定した場合には、調停部514は、バスリクエストを発していた定期型のバスマスタの1つにバス使用権を付与し(ステップS53)、クロック信号をカウントすることによりそのバスマスタについての周期内バス使用許可時間が経過するのを待って、経過時にバス使用権の付与を中止する(ステップS54)。即ち、ステップS53、S54により、定期型の1つのバスマスタへのGNT信号線を、周期内バス使用許可時間だけアクティブにしその後にはインアクティブにする。
【0063】
また、ステップS52において、バスリクエストが検出されていなかったと判定した場合には、調停部514はステップS53及びS54の処理をスキップしステップS55の判定処理を行う。
ステップS54の後、調停部514は、次のリクエスト検出タイミングが到来しているかを判定し(ステップS55)、到来していればステップS51の処理に戻り、到来していなければ余剰時間が0でないかを判定する(ステップS56)。
【0064】
ステップS56において調停部514は余剰時間が0でないと判定した場合、即ち余剰時間があると判定した場合には、不定期型のバスマスタからバスリクエストが発されているか否かを検査して(ステップS57)、バスリクエストを検出したときにはその不定期型のバスマスタに対してバス使用権を付与し、バス使用権を付与している時間の経過に合わせて余剰時間をカウントダウンし(ステップS58)、その不定期型のバスマスタからのバスリクエストが中止された時、或いは余剰時間が0になった時にバス使用権の付与を中止し(ステップS59)、再びステップS56の判定処理に戻る。
【0065】
なお、ステップS51によって定められた余剰時間は、ステップS58で不定期型のバスマスタにバス使用権を付与した時間分だけカウントダウンされる。但し、余剰時間のカウントダウンは余剰時間が0になった時点で停止する。
ステップS56において余剰時間が0であると判定した場合、或いはステップS57において不定期型のバスマスタからのバスリクエストを検出した場合には、調停部514は既にバス使用権を付与したバスマスタ以外の定期型のバスマスタからのバスリクエストがステップS51において検出されていたか否かを判定し(ステップS60)、検出されていなければステップS55の処理に戻り、検出されていればステップS53の処理に戻る。
【0066】
また、ステップS55において調停部514は、次のリクエスト検出タイミングが到来していると判定した場合には、次のリクエスト検出タイミングにおいて定期型の各バスマスタからのバスリクエストを検査するステップS51の処理に戻る。
このような変形した調停処理により調停部514は、不定期型のバスマスタがバスリクエストを発していた時点でデータ転送を行っている定期型のバスマスタに対し、周期内バス使用許可時間分のバス使用権を付与し終え次第、その不定期型のバスマスタにバス使用権を付与するため、不定期型のバスマスタは、データ転送の必要が生じると迅速にデータ転送を開始することができるようになる。即ち、調停部はこのような変形した調停処理を行うことで、不定期型のバスマスタによるメモリアクセスについてのアクセスレイテンシを抑えることができるようになる。
【0067】
図11は、バスマスタA〜Dからのバスリクエストと、調停部514の行う調停処理を変形した場合におけるメモリ制御部510によるバス使用権の付与との時間的変化を示すタイミングチャートである。
同図に示すように、調停部514は、定期型のバスマスタAにバス使用権を付与している間に不定期型のバスマスタDからバスリクエストが発されると、バスマスタAの次にバスマスタDにバス使用権を与え、続いて定期型のバスマスタB及びCに順次バス使用権を付与し、次のリクエスト検出周期において定期型のバスマスタA及びBに順次バス使用権を付与し、バスマスタBにバス使用権を付与している間に不定期型のバスマスタDからバスリクエストが発されると、バスマスタBの次にバスマスタDにバス使用権を与え、続いて定期型のバスマスタCにバス使用権を付与している。
<補足>
以上、本発明に係るメモリ制御装置について実施の形態1、2に基づいて説明したが、本発明はこれらの実施の形態に限られないことは勿論である。即ち、
(1)両実施の形態で示したバスマスタは、複数であればいくつであっても差し支えない。但し、定期型の全てのバスマスタについて、転送レートと、転送レートを保つべき範囲になる時間間隔とを示す転送レート情報をLSIに入力する必要があり、不定期型のバスマスタが存在する場合には全ての不定期型のバスマスタを特定するための不定期マスタ情報が不定期マスタ情報記憶部515に記憶されている必要がある。
【0068】
なお、LSIにユニファイドメモリが複数接続されていてもよく、この場合には、メモリ制御部は、ユニファイドメモリ毎に、実施の形態1或いは2で示したようにそのユニファイドメモリにアクセスする全てのバスマスタ間でのアクセス競合を調停するものであればよい。
(2)実施の形態1で示したメモリ制御部110及び実施の形態2で示したメモリ制御部510は、全てハードウェア回路として構築されていてもよいし、MPUとメモリからなりそのメモリ中のプログラムをMPUが実行することにより調停機能を実現するように構築されていてもよい。
(3)両実施の形態では、転送レート情報は各バスマスタについてのリクエスト周期と1回のデータ転送量とからなる情報であることとしたが、転送レート情報は転送レートと、転送レートが保証されるべき最小時間間隔とを示す情報であれば、どのような情報の組合わせであってもよい。
(4)両実施の形態で示した転送レート情報は、外部装置から入力されるものとしたが、初期値を予め記憶しておいてもよい。
【0069】
また、転送レート情報は随時入力可能であることとし、転送レート情報の入力がなされる毎にタイミング情報生成部112はその転送レート情報に基づいてタイミング情報を生成してタイミング情報格納部113に格納することとしてもよい。調停部114及び調停部514はタイミング情報に基づいて各バスマスタへのバス使用権の付与の時間を決定するものであるため、動的な調停制御が実現されるようになる。
【0070】
なお、実施の形態2ではバスマスタを定期型と不定期型とに分類したが、これは転送レートの保証が必要なデータ転送を行うか否かによる分類であって、LSIに外部から入力される転送レート情報の内容に応じて、同じバスマスタであっても、定期型となる場合や不定期型になる場合があり得る。
(5)両実施の形態において示したタイミング情報生成部112が参照するメモリバスのバスバンド幅は、LSIの外部から入力可能であることとしてもよい。
(6)実施の形態1で示したメモリ制御部110及び実施の形態2で示したメモリ制御部510は、リクエスト検出周期等のリクエスト検出タイミングを特定するための情報を各バスマスタに伝えることとし、これを受けて各バスマスタはリクエスト検出タイミングに合わせてバスリクエストを発行することとしてもよい。
(7)両実施の形態では、バスマスタに対するバス使用権の付与は、GNT信号線をアクティブにすることにより実現し、バス使用権の付与の中止は、GNT信号線をインアクティブにすることにより実現することとしたが、本発明はこれらの実現方式に限定されることはなく、バスマスタにバス使用の許可及び禁止を伝えることのできる方式であれば、どのような方式によって実現してもよい。
【0071】
例えば、バス使用権の付与をある信号線を瞬間的にアクティブにすることによりバスマスタに通知し、バス使用権の付与の中止を別の信号線を瞬間的にアクティブにすることによりバスマスタに通知することとしてもよい。
また、実施の形態で示した定期型のバスマスタは、データ転送の必要がある限りにおいてREQ信号線をアクティブにし続けるものとしたが、バスリクエストを発する方式はこれに限定されることはない。例えば、メモリ制御部110及びメモリ制御部510は、転送レート情報に基づいて各バスマスタに対してリクエスト検出周期内で転送可能なデータ量を通知することとしてもよく、各バスマスタはその通知されたデータ量の送信が必要となれば瞬間的にREQ信号線をアクティブにすることとしてもよい。
(8)両実施の形態で示したユニファイドメモリ200は、特定のメモリアーキテクチャを有するメモリに限定されることはなく、いかなるメモリでも差し支えない。
【0072】
また、両実施の形態で示したバスマスタとユニファイドメモリと間を結ぶメモリバスは、アドレスバスとデータバスとの別々の信号線で構成されるものとしても、共通の信号線で構成されるものとしてもよい。共通の信号線で構成される場合には、バスマスタとユニファイドメモリとの間でアドレス情報とデータとが時分割で伝送されることになる。また、バスマスタとユニファイドメモリとの間のバスはメモリ制御部内のインタフェース部を介して接続されていることとしてインタフェース部においてアドレスデコード等の処理を行うこととしてもよい。
(9)各実施の形態で示したLSIにおいては、基本的には各バスマスタは、1つのユニファイドメモリ中の互いに独立したメモリ領域にアクセスすることが想定されているが、各バスマスタは、重複したメモリ領域にアクセスするものであっても差し支えない。
(10)実施の形態2では、タイミング情報生成部112が転送レート情報に示される定期型のバスマスタのリクエスト周期のうち最も短いリクエスト周期をリクエスト検出周期とし、そのリクエスト検出周期毎にバスリクエストを発している定期型の各バスマスタへのバス使用権の付与を行うこととしたが、リクエスト検出周期は、定期型のバスマスタのリクエスト周期のうち最も短いもの以下であればよい。
【0073】
例えば定期型のバスマスタのリクエスト周期のうち最も短いものの半分をリクエスト検出周期と定めることとしてもよく、リクエスト検出周期を短くすると、不定期型のバスマスタからのバスリクエストを受けてからバス使用権の付与までに要する時間を短くすることができるようになる。
なお、定期型のバスマスタのリクエスト周期のうち最も短いものに対して、どの程度の割合の時間を、リクエスト検出周期とするかを示す情報をLSIの外部から入力できるようにし、その情報に基づいてリクエスト検出周期を決定することとしてもよい。
【0074】
【発明の効果】
以上説明したように本発明に係るメモリ制御装置は、メモリを共用する複数のバスマスタのいずれかに対し選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置であって、複数のバスマスタそれぞれについて、当該バスマスタがメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定める時間間隔とを示す転送レート情報を保持する保持手段と、各バスマスタに対応する前記時間間隔のうち最も小さいもの以下の時間を単位時間として定める単位時間算定手段と、各バスマスタについて、対応する転送レートによって前記単位時間において転送できるデータ量をVとした場合にメモリバスのバスバンド幅に基づいてVの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、時間経過を周期的に前記単位時間で区分して得られる複数の単位時間帯それぞれにおいて、各バスマスタに対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備えることを特徴とする。
【0075】
また、本発明に係るメモリ制御装置は、1つのメモリ中の互いに独立したメモリ領域にアクセスする複数のバスマスタに対し、選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置であって、複数のバスマスタそれぞれについて、当該バスマスタがメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定める時間間隔とを示す転送レート情報を保持する保持手段と、各バスマスタに対応する前記時間間隔のうち最も小さいもの以下の時間を単位時間として定める単位時間算定手段と、各バスマスタについて、対応する転送レートによって前記単位時間において転送できるデータ量をVとした場合にメモリバスのバスバンド幅に基づいてVの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、時間経過を周期的に前記単位時間で区分して得られる複数の単位時間帯それぞれにおいて、各バスマスタに対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備えることを特徴とする。
【0076】
これらにより、各バスマスタが要求する転送レートに関する条件に、何ら統一がない場合であっても、転送待ちの余裕が最小であるバスマスタの転送レートに関する条件が満足できるように転送レートの調整を行うこととなるため、各バスマスタが必要な時間的精度で転送レートを一定に保ってデータ転送を行うことができるようになる。
【0077】
また、このメモリ制御装置を用いれば、各バスマスタの転送レートに関する条件を変更する必要があるときにも、記憶されている転送レート情報を書き替えるのみで、各バスマスタの要求に応じた転送レートで各バスマスタにメモリとの間でデータ転送を行わせることができるようになる。このことから、アクセス競合制御の対象となるバスマスタを取り替えても、このメモリ制御装置を活用することができるといえる。
【0078】
ここで、前記メモリ制御装置は、各バスマスタからのバスリクエストを検出する検出手段を備え、前記使用権付与手段は、前記検出手段により、前記各単位時間帯の始期以前にバスリクエストが検出されたところの各バスマスタに対して、当該単位時間帯において前記使用権を付与することとしてもよい。
これにより、メモリを共用するバスマスタは、転送すべきデータがある場合にバスリクエストを発せばバス使用権を得て必要とする転送レートを保ってデータ転送を行うことができるようになる。なお、これによりメモリ制御装置の回路構成が、ある単位時間内においてバスリクエストを検知するとそのバスリクエストを発したバスマスタにその単位時間内にバス使用権を付与する方式を採用する場合に比べると簡易なものとなり得る。
【0079】
また、前記バスマスタは、メモリとの間でデータを転送する際に一定の転送レートが保たれることを要する定期型バスマスタと、その他の不定期型バスマスタとに分類でき、前記保持手段は、複数の定期型バスマスタそれぞれについて前記転送レート情報を保持するものであり、前記バス使用許可時間算定手段は、各定期型バスマスタについて前記バス使用許可時間を求め、前記使用権付与手段は、前記各単位時間帯において、当該単位時間帯の始期以前にバスリクエストが検出されたところの各定期型バスマスタに、対応するバス使用許可時間だけメモリバスの使用権を付与し、前記検出手段により前記バスリクエストが検出されたところの各定期型バスマスタに対応するバス使用許可時間の総和を、前記単位時間から減じた残りの時間を上限として不定期型のバスマスタにメモリバスのバス使用権を付与することとしてもよい。
【0080】
これにより、一定の転送レートを保ってデータ転送を行う必要がある定期型バスマスタと、その他の不定期型バスマスタとがメモリを共用する場合においても、定期型バスマスタは必要な時間的精度で転送レートを一定に保ってデータを行うことができるようになる。
また、前記使用権付与手段は、前記各単位時間帯において、前記検出手段により定期型バスマスタにバス使用権を付与している間に不定期型バスマスタからのバスリクエストが検出された場合には当該定期型バスマスタへのバス使用権の付与が終了し次第、当該不定期型バスマスタにバス使用権を付与することとしてもよい。
【0081】
これにより、不定期型のバスマスタはデータ転送の必要が生じてから迅速にデータ転送を行うことができるようになる。
また、前記保持手段は、前記転送レート情報を前記メモリ制御装置の外部から取得して保持することとしてもよい。
これにより、各バスマスタの機能変更等によって転送レートを変更する必要がある場合においても、外部から適切な転送レート情報を与えることができ、その結果としてバスマスタ間でのメモリアクセスの競合は適切に調停されるようになる。
【0082】
また、前記保持手段は前記転送レート情報を、前記メモリ制御装置の外部の装置により書き替え可能な領域に保持することとしてもよい。
これにより、各バスマスタの転送レート等を変更する必要がある場合においても、外部から転送レート情報を随時書き替えることにより、バスマスタ間でのメモリアクセスの競合は適切に調停されるようになる。
【0083】
また、前記メモリ制御装置は、前記各バスマスタとバス使用許可用の各信号線で接続されており、前記使用権付与手段は、バスマスタへのバス使用許可時間だけのバス使用権の付与を、当該バスマスタと接続されている前記信号線をバス使用許可時間だけアクティブにすることにより行うこととしてもよい。
これにより、時間を制限したバス使用権の付与を1本の信号線で簡易に実現することが可能になる。
【0084】
また、前記単位時間算定手段は、各バスマスタに対応する前記時間間隔のうち最も小さいものの時間を単位時間として定めることとしてもよい。
これにより、転送待ちの余裕が最小であるバスマスタを基準とすることで、比較的簡単に各バスマスタの転送レートの調整を行うことができるようになる。
また、本発明に係るLSIは、メモリを共用する複数の回路と、当該複数の回路のいずれかに対し選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置とを含むLSIであって、前記各回路は、メモリとの間で一定の転送レートでデータを転送することを要する回路であり、前記メモリ制御装置は、前記各回路について、当該回路がメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定める時間間隔とを示す転送レート情報を保持する保持手段と、各回路に対応する前記時間間隔のうち最も小さいもの以下の時間を単位時間として定める単位時間算定手段と、各回路について、対応する転送レートによって前記単位時間に転送できるデータ量をVとした場合にメモリバスのバスバンド幅に基づいてVの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、時間経過を周期的に前記単位時間で区分して得られる複数の単位時間帯それぞれにおいて、各回路に対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備えることを特徴とする。
【0085】
これにより、LSIの複数の内部回路それぞれが、互いに共用するメモリとの間で、必要な時間的精度で必要とする転送レートを保ってデータ転送を行うことができるようになる。
【図面の簡単な説明】
【図1】本発明の実施の形態1に係るメモリ制御部を含むLSI100の構成図である。
【図2】転送レート情報記憶部111が外部装置から伝えられて記憶している転送レート情報のデータ構成及び内容例を示す図である。
【図3】タイミング情報生成部112に生成されタイミング情報格納部113に格納されるタイミング情報のデータ構成及び内容例を示す図である。
【図4】タイミング情報生成部112の動作を示すフローチャートである。
【図5】調停部114が行う調停処理を示すフローチャートである。
【図6】バスマスタA〜Cからのバスリクエストとメモリ制御部110によるバス使用権の付与との時間的変化を示すタイミングチャートである。
【図7】本発明の実施の形態2に係るメモリ制御部を含むLSI500の構成図である。
【図8】調停部514が行う調停処理を示すフローチャートである。
【図9】バスマスタA〜Dからのバスリクエストとメモリ制御部510によるバス使用権の付与との時間的変化を示すタイミングチャートである。
【図10】調停部514が行う調停処理の変形例を示すフローチャートである。
【図11】バスマスタA〜Dからのバスリクエストと、調停部514の行う調停処理を変形した場合におけるメモリ制御部510によるバス使用権の付与との時間的変化を示すタイミングチャートである。
【符号の説明】
100、500 LSI
110、510 メモリ制御部
111 転送レート情報記憶部
112 タイミング情報生成部
113 タイミング情報格納部
114、514 調停部
121〜124 バスマスタ
190 クロックジェネレータ
200 ユニファイドメモリ
515 不定期マスタ情報記憶部
Claims (19)
- メモリを共用する複数のバスマスタのいずれかに対し選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置であって、
複数のバスマスタそれぞれについて、当該バスマスタがメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定めるリクエスト周期とを示す転送レート情報を保持する保持手段と、
各バスマスタに対応する前記リクエスト周期のうち最も小さいもの以下の時間をリクエスト検出周期として定めるリクエスト検出周期算定手段と、
各バスマスタについて、対応する転送レートによって前記リクエスト検出周期において転送できるデータ量をVとした場合にメモリバスのバスバンド幅に基づいてVの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、
時間経過を周期的に前記リクエスト検出周期で区分して得られる複数のリクエスト検出周期帯それぞれにおいて、各バスマスタに対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備える
ことを特徴とするメモリ制御装置。 - 前記メモリ制御装置は、各バスマスタからのバスリクエストを検出する検出手段を備え、
前記使用権付与手段は、前記検出手段により、前記各リクエスト検出周期帯の始期以前にバスリクエストが検出されたところの各バスマスタに対して、当該リクエスト検出周期帯において前記使用権を付与する
ことを特徴とする請求項1記載のメモリ制御装置。 - 前記バスマスタは、メモリとの間でデータを転送する際に一定の転送レートが保たれることを要する定期型バスマスタと、その他の不定期型バスマスタとに分類でき、
前記保持手段は、複数の定期型バスマスタそれぞれについて前記転送レート情報を保持するものであり、前記バス使用許可時間算定手段は、各定期型バスマスタについて前記バス使用許可時間を求め、
前記使用権付与手段は、前記各リクエスト検出周期帯において、当該リクエスト検出周期帯の始期以前にバスリクエストが検出されたところの各定期型バスマスタに、対応するバス使用許可時間だけメモリバスの使用権を付与し、前記検出手段により前記バスリクエストが検出されたところの各定期型バスマスタに対応するバス使用許可時間の総和を、前記リクエスト検出周期から減じた残りの時間を上限として不定期型のバスマスタにメモリバスのバス使用権を付与する
ことを特徴とする請求項2記載のメモリ制御装置。 - 前記使用権付与手段は、前記各リクエスト検出周期帯において、前記検出手段により定期型バスマスタにバス使用権を付与している間に不定期型バスマスタからのバスリクエストが検出された場合には当該定期型バスマスタへのバス使用権の付与が終了し次第、当該不定期型バスマスタにバス使用権を付与する
ことを特徴とする請求項3記載のメモリ制御装置。 - 前記保持手段は、前記転送レート情報を前記メモリ制御装置の外部から取得して保持する
ことを特徴とする請求項4記載のメモリ制御装置。 - 前記保持手段は前記転送レート情報を、前記メモリ制御装置の外部の装置により書き替え可能な領域に保持する
ことを特徴とする請求項4記載のメモリ制御装置。 - 前記メモリ制御装置は、前記各バスマスタとバス使用許可用の各信号線で接続されており、
前記使用権付与手段は、バスマスタへのバス使用許可時間だけのバス使用権の付与を、当該バスマスタと接続されている前記信号線をバス使用許可時間だけアクティブにすることにより行う
ことを特徴とする請求項4記載のメモリ制御装置。 - 前記リクエスト検出周期算定手段は、各バスマスタに対応する前記リクエスト周期のうち最も小さいものの時間をリクエスト検出周期として定める
ことを特徴とする請求項1記載のメモリ制御装置。 - 前記保持手段は、前記転送レート情報を前記メモリ制御装置の外部から取得して保持する
ことを特徴とする請求項1記載のメモリ制御装置。 - 1つのメモリ中の互いに独立したメモリ領域にアクセスする複数のバスマスタに対し、選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置であって、
複数のバスマスタそれぞれについて、当該バスマスタがメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定めるリクエスト周期とを示す転送レート情報を保持する保持手段と、
各バスマスタに対応する前記リクエスト周期のうち最も小さいもの以下の時間をリクエスト検出周期として定めるリクエスト検出周期算定手段と、
各バスマスタについて、対応する転送レートによって前記リクエスト検出周期において転送できるデータ量をVとした場合にメモリバスのバスバンド幅に基づいてVの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、
時間経過を周期的に前記リクエスト検出周期で区分して得られる複数のリクエスト検出周期帯それぞれにおいて、各バスマスタに対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備える
ことを特徴とするメモリ制御装置。 - 前記メモリ制御装置は、各バスマスタからのバスリクエストを検出する検出手段を備え、
前記使用権付与手段は、前記検出手段により、前記各リクエスト検出周期帯の始期以前にバスリクエストが検出されたところの各バスマスタに対して、当該リクエスト検出周期帯において前記使用権を付与する
ことを特徴とする請求項10記載のメモリ制御装置。 - 前記バスマスタは、メモリとの間でデータを転送する際に一定の転送レートが保たれることを要する定期型バスマスタと、その他の不定期型バスマスタとに分類でき、
前記保持手段は、複数の定期型バスマスタそれぞれについて前記転送レート情報を保持するものであり、
前記バス使用許可時間算定手段は、各定期型バスマスタについて前記バス使用許可時間を求め、
前記使用権付与手段は、前記各リクエスト検出周期帯において、当該リクエスト検出周期帯の始期以前にバスリクエストが検出されたところの各定期型バスマスタに、対応するバス使用許可時間だけメモリバスの使用権を付与し、前記検出手段により前記バスリクエストが検出されたところの各定期型バスマスタに対応するバス使用許可時間の総和を、前記リクエスト検出周期から減じた残りの時間を上限として不定期型のバスマスタにメモリバスのバス使用権を付与する
ことを特徴とする請求項11記載のメモリ制御装置。 - 前記使用権付与手段は、前記各リクエスト検出周期帯において、前記検出手段により定期型バスマスタにバス使用権を付与している間に不定期型バスマスタからのバスリクエストが検出された場合には当該定期型バスマスタへのバス使用権の付与が終了し次第、当該不定期型バスマスタにバス使用権を付与する
ことを特徴とする請求項12記載のメモリ制御装置。 - メモリを共用する複数の回路と、当該複数の回路のいずれかに対し選択的にメモリバスの使用権を付与することによりメモリへのアクセス競合を調停するメモリ制御装置とを含むLSIであって、
前記各回路は、メモリとの間で一定の転送レートでデータを転送することを要する回路であり、
前記メモリ制御装置は、前記各回路について、当該回路がメモリとの間でデータを転送する際の転送レートと当該転送レートで転送が行われることが保証されるべき範囲を定めるリクエスト周期とを示す転送レート情報を保持する保持手段と、
各回路に対応する前記リクエスト周期のうち最も小さいもの以下の時間をリクエスト検出周期として定めるリクエスト検出周期算定手段と、
各回路について、対応する転送レートによって前記リクエスト検出周期に転送できるデータ量をVとした場合にメモリバスのバスバンド幅に基づいてVの転送に要する時間であるバス使用許可時間を求めるバス使用許可時間算定手段と、
時間経過を周期的に前記リクエスト検出周期で区分して得られる複数のリクエスト検出周期帯それぞれにおいて、各回路に対して、対応するバス使用許可時間だけメモリバスの使用権を付与する使用権付与手段とを備える
ことを特徴とするLSI。 - 前記各回路は、前記メモリ中の互いに独立したメモリ領域との間でデータの転送を行う回路である
ことを特徴とする請求項14記載のLSI。 - 前記メモリ制御装置は、前記各回路からのバスリクエストを検出する検出手段を備え、
前記使用権付与手段は、前記検出手段により、前記各リクエスト検出周期帯の始期以前にバスリクエストが検出されたところの各回路に対して、当該リクエスト検出周期帯において前記使用権を付与する
ことを特徴とする請求項14記載のLSI。 - 前記回路は、メモリとの間でデータを転送する際に一定の転送レートが保たれることを要する定期型バスマスタと、その他の不定期型バスマスタとに分類でき、
前記保持手段は、複数の定期型バスマスタそれぞれについて前記転送レート情報を保持するものであり、
前記バス使用許可時間算定手段は、各定期型バスマスタについて前記バス使用許可時間を求め、
前記使用権付与手段は、前記各リクエスト検出周期帯において、当該リクエスト検出周期帯の始期以前にバスリクエストが検出されたところの各定期型バスマスタに、対応するバス使用許可時間だけメモリバスの使用権を付与し、前記検出手段により前記バスリクエストが検出されたところの各定期型バスマスタに対応するバス使用許可時間の総和を、前記リクエスト検出周期から減じた残りの時間を上限として不定期型のバスマスタにメモリバスのバス使用権を付与する
ことを特徴とする請求項16記載のLSI。 - 前記使用権付与手段は、前記各リクエスト検出周期帯において、前記検出手段により定期型バスマスタにバス使用権を付与している間に不定期型バスマスタからのバスリクエストが検出された場合には当該定期型バスマスタへのバス使用権の付与が終了し次第、当該不定期型バスマスタにバス使用権を付与する
ことを特徴とする請求項17記載のLSI。 - 前記保持手段は、前記転送レート情報を前記LSIの外部から取得して保持する
ことを特徴とする請求項14記載のLSI。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002103027A JP3987750B2 (ja) | 2001-04-25 | 2002-04-04 | メモリ制御装置及びlsi |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001127502 | 2001-04-25 | ||
JP2001-127502 | 2001-04-25 | ||
JP2002103027A JP3987750B2 (ja) | 2001-04-25 | 2002-04-04 | メモリ制御装置及びlsi |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003016024A JP2003016024A (ja) | 2003-01-17 |
JP3987750B2 true JP3987750B2 (ja) | 2007-10-10 |
Family
ID=26614175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002103027A Expired - Fee Related JP3987750B2 (ja) | 2001-04-25 | 2002-04-04 | メモリ制御装置及びlsi |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3987750B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4419868B2 (ja) * | 2005-02-25 | 2010-02-24 | ソニー株式会社 | 情報処理装置および方法、メモリ制御装置および方法、記録媒体、並びにプログラム |
JP2008027245A (ja) * | 2006-07-21 | 2008-02-07 | Matsushita Electric Ind Co Ltd | メモリアクセス制御装置およびメモリアクセス制御方法 |
JP5074820B2 (ja) * | 2007-05-22 | 2012-11-14 | ルネサスエレクトロニクス株式会社 | 画像処理装置および画像処理方法 |
JP2011034495A (ja) * | 2009-08-05 | 2011-02-17 | Panasonic Corp | メモリアクセス装置、及び映像処理システム |
JP2015095177A (ja) * | 2013-11-13 | 2015-05-18 | 株式会社リコー | データ転送装置、画像処理装置、データ転送方法及びデータ転送プログラム |
-
2002
- 2002-04-04 JP JP2002103027A patent/JP3987750B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003016024A (ja) | 2003-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6820152B2 (en) | Memory control device and LSI | |
US5901295A (en) | Address and data bus arbiter for pipelined transactions on a split bus | |
JP2010282405A (ja) | データ処理システム | |
US5649209A (en) | Bus coupling information processing system for multiple access to system bus | |
US6415367B1 (en) | Apparatus for reducing asynchronous service latency in a time slot-based memory arbitration scheme | |
US5680554A (en) | Method and apparatus for arbitrating among processors for access to a common bus | |
JP3987750B2 (ja) | メモリ制御装置及びlsi | |
EP1238342B1 (en) | Apparatus for memory resource arbitration based on dedicated time slot allocation | |
US6412049B1 (en) | Method for minimizing CPU memory latency while transferring streaming data | |
US5708783A (en) | Data bus arbiter for pipelined transactions on a split bus | |
US5815676A (en) | Address bus arbiter for pipelined transactions on a split bus | |
JPH0991194A (ja) | 調停システムおよび調停方法 | |
JPH1139255A (ja) | バス調停装置及びバス調停方法 | |
JPH10149311A (ja) | メモリ制御装置 | |
US7747806B2 (en) | Resource use management device, resource use management system, and control method for a resource use management device | |
JP3124544B2 (ja) | バス制御装置 | |
JPH11232215A (ja) | バスコントローラ、バスマスタ装置及びバス制御システムの制御方法 | |
JPH0844661A (ja) | 情報処理装置 | |
JP2004220309A (ja) | マルチプロセッサシステム | |
JP2806405B2 (ja) | マイクロプロセッサ | |
JP2555941B2 (ja) | バスアービトレーション方式 | |
JPH09297990A (ja) | メモリリフレッシュ制御方法およびメモリリフレッシュ制御装置 | |
JP4170506B2 (ja) | 調停回路および方法 | |
JPS5931736B2 (ja) | 待ち行列管理方式 | |
JP2000250852A (ja) | バス調停装置、バスシステムおよびバス調停方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050301 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070418 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070424 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070525 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070619 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070713 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100720 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110720 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110720 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120720 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120720 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130720 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |