(57)【要約】【課題】  ＬＳＩの用途毎にソフトウエアを開発する必要がなくなり、ソフトウエアを開発する工数を削減することにある。【解決手段】  第１のメモリへのアクセスをコントロールする第１のメモリコントローラと、第１のメモリコントローラ及びＣＰＵとが接続されるシステムバスと、ＤＭＡコントローラを具備する複数のデータ処理回路と、第２のメモリをコントロールする第２のメモリコントローラと、データ処理回路とシステムバス及び第２のメモリコントローラの間に接続され、データ処理回路のアクセス先をシステムバスまたは第２のメモリコントローラに切り換える切り換え器と、システムバスを監視し、システムバスから得られた情報を使用して切り換え器を動的に制御するメモリアクセス領域管理部とからなる。【選択図】  図１
2008097543.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域が複数のバンクに分割されており、該バンクが複数のページを具備するメモリへのアクセスを制御する装置であって、前記メモリを第１のメモリとし、前記第１のメモリへのアクセスをコントロールする第１のメモリコントローラと、前記第１のメモリコントローラ及びＣＰＵとが接続されるシステムバスと、ＤＭＡコントローラを具備する複数のデータ処理回路と、第２のメモリをコントロールする第２のメモリコントローラと、前記データ処理回路と前記システムバス及び前記第２のメモリコントローラの間に接続され、前記データ処理回路のアクセス先を前記システムバスまたは第２のメモリコントローラに切り換える切り換え器と、前記システムバスを監視し、前記システムバスから得られた情報を使用して前記切り換え器を動的に制御するメモリアクセス領域管理部とを具備するメモリアクセス制御装置であって、
前記メモリアクセス領域管理部が前記システムバスから得る情報が、前記ＣＰＵが前記システムバスを介して前記データ処理回路に対して設定するメモリ割り当て情報であり、前記割り当て情報のうち同一のバンクおよび異なるページに割り当てられたものがあった場合で、且つその領域が一時的に使用するものであった場合に、該領域へのアクセスを前記第２のメモリコントローラにアクセスするように、前記メモリアクセス領域管理部が前記切り換え器を制御することを特徴とするメモリアクセス制御装置。
【請求項２】
前記ＣＰＵ上で動作するソフトウエアが、前記第１のメモリのバンク情報を考慮せずに、前記複数のデータ処理回路のメモリアクセス領域割り当てを行うことを特徴とする請求項１に記載のメモリアクセス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶領域が複数のバンクに分割されており、該バンクが複数のページを具備するメモリへのアクセスを制御するための装置に関するものである。
【背景技術】
【０００２】
近年、ＬＳＩの主記憶容量として、記憶領域が複数のバンクに分割されており、該バンクが複数のページを具備するメモリが頻繁に使用されている。
【０００３】
このような特徴をもつメモリとしてはシンクロナスＤＲＡＭ（ＳＤＲＡＭ）や、ダブルレートＳＤＲＡＭ(ＤＤＲ−ＳＤＲＡＭ)、ラムバスＤＲＡＭ(ＲＤＲＡＭ)などが良く知られている。これらメモリを主記憶容量として使用するLSIの内部構造の例を図４に示す。
【０００４】
図４において、ＬＳＩ２８０はメモリコントローラ２２０を具備し、バスＢ２４１を介して前記主記憶容量となるシステムメモリ２３０に接続されている。
【０００５】
また、前記メモリコントローラはシステムバスＢ２００に接続されている。前記システムバスＢ２００にはＣＰＵ２１０及びＤＭＡＣ(ダイレクト・メモリ・アクセス・コントローラ)を含む複数のデータ処理回路が接続されている。
【０００６】
この例では４つのデータ処理回路２００、２０１、２０２、２０３が接続されている。例えばこれらデータ処理回路はガンマ変換等の画像処理を行う回路や、データを圧縮・伸張する回路やＵＳＢ等のＬＳＩ外部とのインタフェースとなる回路等である。
【０００７】
これら複数のデータ処理回路は、ＤＭＡ(ダイレクト・メモリ・アクセス)開始前に、前記ＣＰＵ２１０上で動作するソフトウエアより、それぞれのメモリアクセス領域が割り当てられる。
【０００８】
このようにして前記複数のデータ処理回路は前記システムメモリ２３０を共有し、使用領域が重ならないように制御されている。
【０００９】
一方、ここで使用している前述のＳＤＲＡＭ等、記憶領域が複数のバンクに分割されておる。該バンクが複数のページを具備するメモリは、アクセス対象のページに対し、アクセスするのに先駆けてアクティブ化(以後、ページオープン)を行わなければライトやリードのアクセスを行うことが出来ない。
【００１０】
また、同じバンクの別のページにアクセスする場合には、これをページミスと呼び、今までアクセスしていたページのプリチャージ(以後、ページクローズ)を行った後に、これからアクセスするページのアクティブ化を行わなければならない。すなわち同じページをアクセスしている期間は連続アクセスが可能だが、異なるページをアクセスする場合には、前述のページクローズ、及びページオープンを行わなければならず、連続アクセスが不可能となり、メモリアクセス効率が低下する。
【００１１】
しかし、このページミスは同一バンクの別のページにアクセスする場合に起こるものであり、異なるバンクに対しては別のページをオープンすることが出来る。
【００１２】
よって、前述のように複数のデータ処理回路がメモリを共有する場合には、それぞれに別のバンクを割り当てることにより、メモリアクセス効率の低下を防ぐことが出来る。
【００１３】
すなわち、前記システムメモリ２３０が４つのバンク、バンク０、バンク１、バンク２、バンク３を持つ場合には、それぞれのバンクを前記データ処理回路２００、２０１、２０２、２０３に割り当てればよい。つまり、前述のソフトウエアであらかじめメモリ割り当てを固定しておけばよい。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかし、前述のＬＳＩが多用途に使用される場合、用途ごとに使用する前記主記憶容量に用いるメモリサイズを変更したい場合があり、異なるサイズのメモリはそのバンクのサイズも異なる。そのため、ソフトウエアを用途ごとに変更しなければならないという問題があった。すなわち、ソフトウエア開発により多くの工数を要するという問題があった。
【００１５】
また、前述の従来例においてはシステムメモリを共有するデータ処理回路が４つの場合について説明したがこれに限るものではなく、さらに多い場合もある。
【００１６】
また、ＬＳＩ全体としての処理内容ごとに、同時に動作するデータ処理回路が異なるという場合もあるので、それぞれの場合ごとにメモリバンクの割り当てを変えてソフトウエアを開発することは、ソフトウエアが複雑化するという問題があった。
【００１７】
また、前記複数のデータ処理回路へのメモリアクセス領域の割り当てを、前記ＣＰＵ上で動作するＯＳ等のメモリマネージメント機能に任せるという方法を取った場合、前述のメモリバンクが意識されない。そのため、メモリアクセス効率が低下し、ＬＳＩの性能を低下させるという問題があった。
【００１８】
そこで、本発明の目的は、ＬＳＩの用途毎にソフトウエアを開発する必要がなくなり、ソフトウエアを開発する工数を削減することにある。
【課題を解決するための手段】
【００１９】
本発明のメモリアクセス制御装置は、記憶領域が複数のバンクに分割されており、該バンクが複数のページを具備するメモリへのアクセスを制御する装置であって、前記メモリを第１のメモリとし、前記第１のメモリへのアクセスをコントロールする第1のメモリコントローラと、前記第１のメモリコントローラ及びＣＰＵとが接続されるシステムバスと、ＤＭＡコントローラを具備する複数のデータ処理回路と、第２のメモリをコントロールする第２のメモリコントローラと、前記データ処理回路と前記システムバス及び前記第２のメモリコントローラの間に接続され、前記データ処理回路のアクセス先を前記システムバスまたは第２のメモリコントローラに切り換える切り換え器と、前記システムバスを監視し、前記システムバスから得られた情報を使用して前記切り換え器を動的に制御するメモリアクセス領域管理部とを具備するメモリアクセス制御装置であって、前記メモリアクセス領域管理部が前記システムバスから得る情報が、前記ＣＰＵが前記システムバスを介して前記データ処理回路に対して設定するメモリ割り当て情報であり、前記割り当て情報のうち同一のバンクおよび異なるページに割り当てられたものがあった場合で、且つその領域が一時的に使用するものであった場合に、該領域へのアクセスを前記第２のメモリコントローラにアクセスするように、前記メモリアクセス領域管理部が前記切り換え器を制御することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、ＬＳＩの用途毎にソフトウエアを開発する必要がなくなり、ソフトウエアを開発する工数を削減することが出来る。
【００２１】
また、ソフトウエアの複雑化を回避することが出来る。また、そのようなソフトウエアを用いた場合においてもＬＳＩの性能の維持を図ることができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００２３】
図１は、本発明の実施形態に係るメモリアクセス制御装置の構成を示す図である。ＬＳＩ１８０はメモリコントローラ１２０を具備し、バスＢ１４１を介して主記憶容量となるシステムメモリ１３０に接続されている。
【００２４】
ここで、前記システムメモリ１３０は、記憶領域が複数のバンクに分割され、該バンクが複数のページを具備するメモリである。例えば、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）や、ダブルレートＳＤＲＡＭ（ＤＤＲ−ＳＤＲＡＭ）、ラムバスＤＲＡＭ（ＲＤＲＡＭ）等が挙げられる。
【００２５】
前記メモリコントローラはシステムバスＢ１００に接続されている。また、前記システムバスＢ１００にはＣＰＵ１１０が接続されている。さらに前記システムバスＢ１００には切り換え器１５０、１５１、１５２、１５３が接続され、それぞれを介してＤＭＡＣ(ダイレクト・メモリ・アクセス・コントローラ)を含むデータ処理回路１００、１０１、１０２、１０３が接続されている。
【００２６】
例えばこれらデータ処理回路は、ガンマ変換等の画像処理を行う回路や、データを圧縮・伸張する回路や、ＬＳＩ外部とのインタフェースとなる回路等である。
【００２７】
前記切り換え器はメモリアクセス領域管理部１４０により切り換えの制御が行われる。前記メモリアクセス領域管理部１４０は前記システムバスＢ１００を監視し、ＣＰＵ１１０から各データ処理回路に送られる情報を使用して前記複数の切り換え器を制御する。前記複数の切り換え器は、接続されたシステムバスＢ１００とは別の切り換え先として、それぞれローカルメモリコントローラ１６０に接続されている。
【００２８】
前記ローカルメモリコントローラ１６０は、システムメモリ１３０とは別のローカルメモリ１７０へのアクセスをコントロールする。前記ローカルメモリ１７０は前記システムメモリ１３０よりも容量の小さなメモリである。
【００２９】
なお、図１のＬＳＩ上には本発案の実施形態に必要な回路のみを記し、その他、本発明の実施形態の説明に不必要な機能回路は省略した。
【００３０】
次に前記ＬＳＩ１８０の動作について説明する。前記複数のデータ処理回路はＤＭＡ(ダイレクト・メモリ・アクセス)開始前に、前記ＣＰＵ１１０上で動作するソフトウエアより、それぞれのアクセス可能なメモリ領域が設定される。
【００３１】
ここで、ソフトウエアは前記ＣＰＵ１１０上で動作するＯＳ等のメモリマネージメント機能を利用し、前記各データ処理回路のアクセス可能なメモリ領域を決定するものとする。すなわち、決定されたメモリアクセス領域は、前記システムメモリ１３０のバンクを考慮していない。本実施形態では前記システムメモリ１３０がバンク０、バンク１、バンク２、バンク３の４つのバンクを持つものとする。
【００３２】
次にデータ処理回路１００の動作手順について、例えば、システムメモリ１３０からデータを読み込み、そのデータに対してデータ処理を行い、システムメモリ１３０に書き戻すような動作を行うようなものであるとする。
【００３３】
また、データ処理回路１０１の動作手順は、前記データ処理回路１００がデータ処理を行った後にシステムメモリ１３０に書き込んだデータを読み出し、所定のデータ処理を行った後、システムメモリ１３０に書き戻すものとする。
【００３４】
また、データ処理回路１０２の動作手順は、システムメモリ１３０から読み出しを行い、所定のデータ処理後、図１に不図示の他の回路、もしくはＬＳＩ１８０の外部に前記処理後のデータを出力するものとする。
【００３５】
また、データ処理回路１０３の動作手順は、図１に不図示の他の回路、もしくはＬＳＩ１８０の外部からデータを受け取り、所定のデータ処理をした後、処理後のデータをシステムメモリ１３０に書き込みを行うものとする。
【００３６】
ここで各読み出し先のアドレスをソースアドレスと呼び、書き込み先のアドレスをディスティネーションアドレスと呼ぶ。
【００３７】
これら各データ処理回路に対し、前述のようにＣＰＵ１１０の上で動作するＯＳ等のメモリマネージメント機能を利用し、アクセス可能なメモリ領域を決定した場合の一例を図２に示す。
【００３８】
図２に示したのは、前記メモリアクセス領域管理部１４０が前述のように前記システムバスＢ１００を監視し、ＣＰＵ１１０が各データ処理回路に設定した前記各データ処理回路のアクセス可能なメモリ領域を保存したイメージである。
【００３９】
図２において、データ処理回路１００のソースアドレスとデータ処理回路１００のディスティネーションアドレスが同一のメモリバンク０に割り当てられているのがわかる。
【００４０】
また、データ処理回路１０１のソースアドレスは、その処理がデータ処理回路１００の処理結果を読み込んで処理を行う特性をもっているため、データ処理回路１００のディスティネーションアドレスと同一のアドレスが割り当てられている。
【００４１】
これらの情報より、データ処理回路１００のデータ読み出しと、データ処理回路１００のデータ書き込み、及びデータ処理回路１０１のデータ読み出しとが同時に起こると、前記システムメモリ１３０において、頻繁にページミスが起こる。このように、性能の低下を招くことが予想される。
【００４２】
よって、本実施形態では、このような判断を前記メモリアクセス領域管理部１４０で行う。そして、前記データ処理回路１００の書き込み、及びデータ処理回路１０１の読み出し先を、切り換え器１５０、及び１５１を制御してローカルメモリ１７０にアクセスするように切り換える。
【００４３】
また、このとき各データ処理回路に与えられたメモリアクセス許可領域のサイズを判定し、前記ローカルメモリ１７０のサイズ以下の場合にこの切り換えを行う。
【００４４】
また、前記データ処理回路１００が書き込みを行って、前期データ処理回路１０１が読み出しを行うデータは、これら２つのデータ処理回路しか扱うことがない。そのため、前記システムメモリ１３０に置く必要がなく、両データ処理回路１００、及び１０１が使用したローカルメモリ１７０上のデータは使用後に無効にすることが出来る。
【００４５】
このことにより、システムメモリ１３０のバンク０にアクセスするものがデータ処理回路１００の読み出しのみになるので、ページミスを軽減することが出来る。すなわち、ＬＳＩ１８０の処理性能を低下させることがない。
【００４６】
さらに前述のデータ処理回路はひとつの処理が終了すると、再度ＣＰＵ１１０よりアクセス可能なメモリ領域が指定される。
【００４７】
前記メモリアクセス領域管理部１４０は、これら各データ処理回路にＣＰＵ１１０より指示されるそれぞれのメモリアクセス許可領域を、バスＢ１００を常に監視することにより管理する。そして、ローカルメモリコントローラ１６０に割り当てたデータ処理回路の処理が終了していた場合で、且つ、新たにデータ処理回路に割り当てられたアクセス領域同士がシステムメモリ１３０の同一バンクに割り当てられており、ページミスを起きることが判定された場合、再度前述のようなメモリアクセス先の切り換えを行う。
【００４８】
このように順次ページミスを起こすと判断した前記データ処理回路のアクセス先を前記ローカルメモリコントローラ１６０に切り換える。
【００４９】
なお、本実施形態においては、データ処理回路が４つである場合について説明したが、これに限るものではないことは明らかである。
【００５０】
また、本実施形態においては、複数のデータ処理回路の全てがそれぞれ切り替え器を介してシステムバスまたはローカルメモリにアクセス可能である場合について説明したが、図３に示すように一部のデータ処理回路に限っても問題ない。
【００５１】
また、本実施形態においてはＬＳＩの中にＣＰＵを内蔵するとしたが、ＬＳＩの外にあっても構わない。
【００５２】
また、本実施形態においては切り換え器から直接ローカルメモリコントローラに接続する例を示したが、例えばシステムバスとは別のバスに接続し、該別のバスに接続されたローカルメモリコントローラにアクセスしても構わない。
【００５３】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或いは装置に供給し、そのシステム等のコンピュータが記憶媒体からプログラムコードを読み出し実行することによっても達成される。
【００５４】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５５】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００５６】
また、コンピュータが読み出したプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００５７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに接続された機能拡張ユニット等に備わるメモリに書込まれた後、そのプログラムコードの指示に基づきＣＰＵ等が実際の処理を行い、前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施形態に係るメモリアクセス制御装置の構成を示す図である。
【図２】本発明の実施形態に係るメモリアクセス制御装置におけるメモリアクセス領域管理部の管理情報を示す図である。
【図３】他のメモリアクセス制御装置の構成例を示す図である。
【図４】従来のメモリアクセス制御装置の例を示す図である。
【符号の説明】
【００５９】
１００、１０１、１０２、１０３  データ処理回路部
１１０  ＣＰＵ
１２０  メモリコントローラ
１３０  システムメモリ
１４０  メモリアクセス領域管理部
１５０、１５１、１５２、１５３  切り替え機
１６０  ローカルメモリコントローラ
１７０  ローカルメモリ
１８０  ＬＳＩ
Ｂ１００  システムバス
【図１】
2008097543.tif 000003
【図２】
2008097543.tif 000004
【図３】
2008097543.tif 000005
【図４】
2008097543.tif 000006