(57)【要約】【課題】  プロセッサの処理効率をより高めるメモリアクセス制御方法を提供する。【解決手段】  ストリームデータを受けその非リアルタイム処理を行う工程と、ストリームデータに関してリアルタイム処理を行う工程と、汎用処理を行う工程と、ストリームデータと前記汎用処理のためのデータとに関する記憶とその読み出しを行うメモリ工程と、前記非リアルタイム処理と前記リアルタイム処理と前記汎用処理とがこのメモリにアクセスする優先度を前記リアルタイム処理の前記ストリームデータとの同期の状態により変更する調停工程とを有することを特徴とするメモリアクセス制御方法。【選択図】      図２
2008158764.tif 000002
【特許請求の範囲】
【請求項１】
ストリームデータを受けその非リアルタイム処理を行う工程と、
ストリームデータに関してリアルタイム処理を行う工程と、
汎用処理を行う工程と、
ストリームデータと前記汎用処理のためのデータとに関する記憶とその読み出しを行うメモリ工程と、
前記非リアルタイム処理と前記リアルタイム処理と前記汎用処理とがこのメモリにアクセスする優先度を前記リアルタイム処理の前記ストリームデータとの同期の状態により変更する調停工程とを
有することを特徴とするメモリアクセス制御方法。
【請求項２】
前記調停工程は前記リアルタイム処理の前記ストリームデータとの同期のブランキング期間とその前後の期間において、前記汎用処理工程がメモリにアクセスする優先度を前記ブランキング期間とその前後の期間以外の期間より上げることを特徴とする請求項１に記載のメモリアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセス制御方法に係り、特にＣＰＵとリアルタイム／非リアルタイムの各処理系が並存する場合のメモリアクセス制御方法に関する。
【背景技術】
【０００２】
UMA(Unified Memory Architecture)の構成をとるDTV向けSoC（System On a Chip）においては、SoC内の特定のモジュールがメモリアクセスを占有することにより、他のモジュールの処理を破綻させてしまうことがある。そこで、各モジュールの処理を破綻させないように、適切に各モジュールのメモリアクセスを制御する必要がある。一方で、CPU処理能力の向上を考える場合、バースト的に大きなメモリバンド幅を与えるよりも、メモリアクセス要求に対するレイテンシーが重要である。(アクセスしきれ無いほどのバンド幅をたまに与えられても向上しない。)
【０００３】
これに対する工夫としてあるもので特許文献１に記載されている技術は、ＭＰＵアクセス要求とＬＣＤアクセス要求が競合した場合に常にＭＰＵアクセス要求を優先させる、というものである。しかしながら、このような一律の方法では、ＬＣＤの処理を破綻させないためにＭＰＵアクセス要求も常に少なめに受け付けるという効率の低い制御しか行えないという問題があった。
【特許文献１】国際公開第００／０３３８１号公報（第４３頁、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、プロセッサの処理効率をより高めるメモリアクセス制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明のメモリアクセス制御方法は、ストリームデータを受けその非リアルタイム処理を行う工程と、ストリームデータに関してリアルタイム処理を行う工程と、汎用処理を行う工程と、ストリームデータと前記汎用処理のためのデータとに関する記憶とその読み出しを行うメモリ工程と、前記非リアルタイム処理と前記リアルタイム処理と前記汎用処理とがこのメモリにアクセスする優先度を前記リアルタイム処理の前記ストリームデータとの同期の状態により変更する調停工程とを有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、プロセッサの処理効率をより高めるメモリアクセス制御方法が得られる。方法において有効な発明は回路、装置においても有効でもある。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施例を説明する。
【実施例１】
【０００８】
本発明による実施例１を図１乃至図６を参照して説明する。
図１は、デコーダ，表示処理，ＣＰＵ等の各モジュールが同一のメモリバスに接続されたメモリを共有する構造をもつ、デジタルＴＶ向けシステムＬＳＩの構造を示すブロック図の例である。
【０００９】
このブロック図では、各モジュールが同一のメモリバスに接続されているため、1つのモジュールがメモリアクセスをしている場合には、他のモジュールはメモリアクセスを待たされる。従って、メモリアクセスがどれかのモジュールに偏ると、処理に破綻をきたすモジュールが出てくるため、適切なメモリアクセス制御が必要となる。
【００１０】
図１においてリアルタイム処理と記載しているモジュール（Ａ）は、映像出力のためピクセルレートでの処理が必要なモジュールであって、メモリアクセスが待たされると映像表示に破綻をきたすモジュールである。
【００１１】
一方非リアルタイム処理と記載しているモジュールは、フレーム単位での処理が間に合えばある程度メモリアクセスを待たせることが出来るモジュール（Ｂ）である。
【００１２】
デジタルＴＶのシステムＬＳＩを構成する各モジュールにおいては、前記(A),(B)のモジュールでデジタルTVのLSIが持つメモリバンド幅のほとんどを消費するものであり、残ったメモリバンド幅を如何に、CPU (C)が有効に使えるようにすることが出来るかがCPUを効率的に動かすためのポイントである。
【００１３】
メモリコントローラ(Ｄ)は、（A）（B）（C）のメモリ(Ｅ)へのアクセスを制御するアービタの機能を有する。アービタは例えば、シーケンサ（シーケンシャルな制御を行うコントローラ）で実装されている。
【００１４】
図２において、前記モジュール(A)は、表示処理を行うためのメモリアクセスを行うため、垂直同期信号と並べてみると、そのメモリアクセスは垂直ブランキング期間には発生しない。一方で前記モジュール(B)は、１フレーム時間で非リアルタイムに処理を行うため、垂直同期信号の立下りタイミングから処理を開始すると、1フレーム分の処理が終わるまで連続的にメモリアクセスが発生し、処理が終わるとそのフレーム期間中でのメモリアクセスは発生しない。
【００１５】
ここで、モジュール（A）とモジュール（B）のメモリアクセスに対するプライオリティがCPU（C）よりも常に高いとすると、モジュール（B）の処理が終わるまでCPU（C）はメモリアクセスができず、モジュール（B）の処理が終了後、モジュール（A）が必要としないメモリバンド幅を使って、CPU （C）がこの期間でメモリアクセス動作することになる。
【００１６】
図３においても同様に、水平ブランキング期間にはモジュール（A）のメモリアクセスは発生せず、モジュール（B）の処理が終わっていない水平同期期間ではCPU （C）に対してメモリアクセスができないことになる。
【００１７】
つまり、常にモジュール(A),(B)のメモリアクセスに対するプライオリティがCPU （C）よりも高い場合、CPU（C）が１フレーム時間にメモリアクセスできるのは、モジュール(B)の処理が終わったあとの期間となる。
【００１８】
一方、本例では、ブランキング期間(垂直,水平)での（C）のメモリアクセスに対するプライオリティを変更するものであり、例えば、垂直ブランキング期間，水平ブランキング期間でのプライオリティを（A）,(B)と同等とするならば(図２、図３参照)、モジュール（A）に対するメモリアクセスには影響を与えず、ブランキング期間でのメモリアクセスをモジュール（B）とCPU （C）に割当てることが可能となり(ブランキング期間でのモジュール(B)のメモリアクセスが制限されるため、（B）の処理終了までの時間は長引く)、CPU（C）がメモリアクセスできる期間が１フレーム期間中に分散して存在できることになる（図２、２１、２２）。
【００１９】
図４（ａ）に示すようにフル画面表示を行う場合、モジュール（A）がメモリアクセスを行うのが、ブランキング期間(垂直，水平)外であるため、ブランキング期間(垂直，水平)でのメモリアクセスに対するプライオリティを変更したが、図４（ｂ）に示すようにWindow表示する場合は、モジュール（A）がメモリアクセスを行うのはFrame中の表示領域となるため、この場合、メモリアクセスに対するプライオリティの変更は図5に示すとおり、表示領域以外でのプライオリティを変更しても良い。
【００２０】
ここでの説明では、ブランキング期間，表示領域と明確化しているが、実際には表示処理を行う際にフィルター処理を実施するため、モジュール（A）のメモリアクセス／非アクセス期間は、ブランキング期間，表示領域とは完全に一致せず、オフセットを持つ必要がある場合がある。この場合は、オフセットを持って設定する。
【００２１】
図６は、実施例の垂直同期信号に追従してメモリアクセスのプライオリティを変更した場合のメモリアクセス制御を示すフローである。図２に対応している。
CPU (C)が有効に使えるようにすることが出来るかがCPUを効率的に動かすためのポイントである。
メモリコントローラ(Ｄ)は、モジュール（A）より表示処理タイミングの情報を得てブランキング期間か判定し（ステップＳ１）、ブランキング期間と判定したならばモジュール（B）とCPU (C)にメモリ(Ｅ)へのアクセスプライオリティを高める（ステップＳ２）。またブランキング期間でないと判定したならばモジュール（A）にメモリ(Ｅ)を割り当て（ステップＳ３）、更にモジュール（B）の処理が発生または継続しているか判定する（ステップＳ４）。この判定がYesであればモジュール（B）にメモリ(Ｅ) へのアクセスプライオリティを高め（ステップＳ５）、判定がNoであればCPU (C)にメモリ(Ｅ) へのアクセスプライオリティを高める（ステップＳ６）。
【００２２】
実施例を概要として述べれば、SoCのモジュールの中には、ピクセルレートで処理を行うリアルタイム処理系のモジュール(表示処理系)とフレーム時間単位でのメモリアクセス量が保証されていれば、ある程度メモリアクセスに融通の効く非リアルタイムでの処理を行うモジュール(デコード処理系，非同期での画像処理系)があるが、表示処理系のモジュールは、基本的にブランキング期間でのアクセスは無い。そこでブランキング期間と非ブランキング期間でのアービタの設定を変更することで、非ピクセルレートでの処理を行うモジュールのメモリアクセスを分散させ、CPUからのメモリアクセス要求に対するレイテンシーを向上させる。
【００２３】
１．同期信号に追従して、メモリアクセスに対するアビトレーションのプライオリティを変更する方法。
２．ブランキング期間(垂直,水平)でのCPU系のアビトレーションのプライオリティを上げる。
一番厳しいタイミング(表示処理系 + デコード処理系が競合しているタイミング)でのCPUアクセスのプライオリティを破綻のないプライオリティに固定することによって、厳しくないタイミング(デコード処理系のみのようなタイミング)においてもCPUアクセスが制限されることを緩和するのが目的である。
【００２４】
効果として、デコード処理と表示処理が重なるタイミング等に、CPUに対するアビトレーションのプライオリティを上げてしまうと、システム的に破綻をきたす可能性があるシステムにおいても、
【００２５】
同期信号を基準にしたメモリアクセスに対するアビトレーションのプライオリティを変更する手段を持つことにより、システム的な破綻を招くことなく、CPUのメモリアクセスに対するプライオリティの高い期間を分散的に設けることができる結果、CPUのメモリアクセス要求に対するレイテンシーを向上させることができ、CPUをより効率的に動作させることができる。
【００２６】
なお、この発明は上記実施例に限定されるものではなく、この外その要旨を逸脱しない範囲で種々変形して実施することができる。例えば、非リアルタイム処理モジュールの中にプロセッサに準じて汎用処理を行うものがあれば、それを含めて同様な制御を行ってもよい。
【００２７】
また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係る構成要素を適宜組み合わせても良いものである。
【図面の簡単な説明】
【００２８】
【図１】この発明の一実施例を示すUMAアーキテクチャをとるDTV向けSoCのブロック構成図。
【図２】同実施例の垂直同期信号に追従してメモリアクセスのプライオリティを変更した場合のメモリアクセス分布の状態を示すタイミング図。
【図３】同実施例の水平同期信号に追従してメモリアクセスのプライオリティを変更した場合のメモリアクセス分布の状態を示すタイミング図。
【図４】同実施例のFrame領域内でのデコード画像表示位置を示す図、（ａ）フル画面表示している場合、（ｂ）Window表示している場合。
【図５】同実施例のWindow表示する場合におけるプライオリティの設定を示すタイミング図。
【図６】同実施例の垂直同期信号に追従してメモリアクセスのプライオリティを変更した場合のメモリアクセス制御を示すフロー。
【符号の説明】
【００２９】
Ａ…リアルタイム処理モジュール、Ｂ…非リアルタイム処理モジュール、Ｃ…ＣＰＵ、Ｄ…メモリコントーラ、Ｅ…メモリ、２１…ＣＰＵのメモリへのアクセスタイミング１、２２…ＣＰＵのメモリへのアクセスタイミング２。
【図１】
2008158764.tif 000003
【図２】
2008158764.tif 000004
【図３】
2008158764.tif 000005
【図４】
2008158764.tif 000006
【図５】
2008158764.tif 000007
【図６】
2008158764.tif 000008