(57)【要約】【課題】  データキャッシュを搭載したシステムの性能を向上させる方法として、演算ユニットの出力にブロックマッピングを施す方法がある。しかし、この方法では、データキャッシュのヒット率を保ったまま、外部メモリが搭載するセンスアンプのヒット率を最大限に向上させることは困難である。【解決手段】  演算ユニットの出力にブロックマップ回路を直結するのではなく、演算ユニットとデータキャッシュの間に第一のブロックマップ回路を搭載し、内部バスにはブロックマップを施さないアドレスが流れるようする。その上で、外部メモリ制御回路に第二のブロックマップ回路を搭載し、第一のブロックマップ回路と第二のブロックマップ回路のマッピングパターンを独立に設定できるようにする。【選択図】  図１
2005215911.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
演算ユニットと、
第１のメモリと、
第２のメモリと、
前記第１のメモリに接続された第１のアドレス変換手段と、
前記第２のメモリに接続された第２のアドレス変換手段と、
前記演算ユニットと前記第１のアドレス変換手段と前記第２のアドレス変換手段とを接続するバスとを有することを特徴とする情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、
前記第１のアドレス変換手段と前記第２のアドレス変換手段とでは異なるアドレス変換を行うことを特徴とする情報処理装置。
【請求項３】
請求項１記載の情報処理装置であって、
前記バスには、アドレス変換が行われていないアドレスが送出されることを特徴とする情報処理装置。
【請求項４】
請求項１記載の情報処理装置であって、
前記第１乃至第２のアドレス変換手段は、入力したアドレスの所定のビット位置を入れ替えることでアドレス変換を行うことを特徴とする情報処理装置。
【請求項５】
請求項４記載の情報処理装置であって、
前記第１乃至第２のアドレス変換手段は、アドレス変換の変換を設定するための記憶手段を備え、前記記憶手段に設定する値を変更することにより、アドレス変換を行うビット位置を変更可能であることを特徴とする請求項４記載の情報処理装置。
【請求項６】
請求項１記載の情報処理装置であって、
前記第１のメモリは、データキャッシュであることを特徴とする情報処理装置。
【請求項７】
請求項１記載の情報処理装置であって、
前記第２のメモリは、DRAM系のメモリであることを特徴とする情報処理装置。
【請求項８】
請求項１記載の情報処理装置であって、
前記演算ユニットと、前記第１のメモリと前記第１のアドレス変換手段はプロセッサ内に配置されることを特徴とする情報処理装置。
【請求項９】
請求項１記載の情報処理装置であって、
前記演算ユニットと、前記第１のメモリと、前記第１および第２のアドレス変換手段と、前記バスとは同一チップ内に配置されることを特徴とする情報処理装置。
【請求項１０】
請求項１記載の情報処理装置であって、
前記バスに接続される他のプロセッサを有することを特徴とする情報処理装置。
【請求項１１】
情報処理装置であって、
演算ユニットと、
データキャッシュと、
センスアンプを有するメモリと、
前記データキャッシュに接続された第１のブロックマップ回路と、
前記メモリに接続された第２のブロックマップ回路と、
前記演算ユニットと前記第１のブロックマップ回路と前記第２のブロックマップ回路とを接続するバスとを有し、
前記データキャッシュにアクセスする場合、前記第１のブロックマップ回路は、前記バスから入力されたアドレスの所定のビット位置を変更して前記データキャッシュにアクセスし、
前記メモリにアクセスする場合、前記第２のブロックマップ回路は、前記バスから入力されたアドレスの所定のビット位置を変更してアクセスすることを特徴とする情報処理装置。
【請求項１２】
請求項１１記載の情報処理装置であって、
前記第１および第２のブロックマップ回路では、入力されたアドレスの所定のビット位置を入れ替え、異なる行のアドレスを同じ行のアドレスとすることを特徴とする情報処理装置。
【請求項１３】
請求項１１記載の情報処理装置であって、
前記第１のブロックマップ回路では、マクロブロック単位でのアクセスを容易とすべく、入力された、アドレス空間において矩形のアドレスのビット位置を入れ替え、水平方向に連続したアドレスとすることを特徴とする情報処理装置。
【請求項１４】
請求項１１記載の情報処理装置であって、
前記第２のブロックマップ回路では、画像表示および処理を容易とすべく、入力された、アドレス空間において長方形のアドレスのビット位置を入れ替え、水平方向に連続したアドレスとすることを特徴とする情報処理装置。
【請求項１５】
情報処理装置であって、
第１の演算ユニットと、第１のメモリと、前記第１の演算ユニットと前記第１のメモリに接続された第１のアドレス変換手段とを有する第１のプロセッサと、
第２の演算ユニットと、第２のメモリと、前記第２の演算ユニットと前記第２のメモリに接続された第２のアドレス変換手段とを有する第２のプロセッサと、
第３のメモリと、
前記第３のメモリに接続された第３のアドレス変換手段と、
前記第１のプロセッサと前記第２のプロセッサと前記第３のアドレス変換手段とを接続するバスとを有し、
前記第１のアドレス変換手段と前記第２のアドレス変換手段とでは異なるアドレス変換を行うことを特徴とする情報処理装置。
【請求項１６】
外部メモリに接続された集積回路であって、
演算ユニットと、
内部メモリと、
前記内部メモリに接続された第１のアドレス変換手段と、
前記外部メモリに接続された第２のアドレス変換手段と、
前記演算ユニットと前記第１のアドレス変換手段と前記第２のアドレス変換手段とを接続するバスとを有することを特徴とする集積回路。
【請求項１７】
請求項１６記載の集積回路であって、
前記第１のアドレス変換手段と前記第２のアドレス変換手段とでは異なるアドレス変換を行うことを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリに格納されたデータを処理する情報処理システムに関する。
【背景技術】
【０００２】
近年、普及が本格化しつつあるデジタル放送などでは電波の有効利用の観点から、映像や音声を圧縮して伝送し、受信機内部で伸張するという方式が広く用いられている。映像の圧縮アルゴリズムとしてはいろいろな方式が存在しているが、現在の主流となっているのは、画像を１６×１６画素程度の小さな矩形領域（マクロブロック）に分割し、この矩形領域を単位として圧縮する方式である。これらのアルゴリズムを高速に処理するためには、矩形領域のデータを高速にアクセスできることが重要となる。
【０００３】
データアクセスを高速化する方法としては、データキャッシュを搭載する方法がある。この場合には、キャッシュメモリのヒット率がシステム性能に大きく影響を与えることになる。二次元画像をメモリなどの記憶装置に格納する場合、水平方向を主走査方向として、水平方向に隣接した画素を連続したアドレス空間に格納する方式が一般的である。これは、ブラウン管などほとんどの表示デバイスが、水平方向を主走査とするように設計されているためである。このような状況で、矩形領域のアクセスを行うと、キャッシュラインのコンフリクトが多発することにより、キャッシュヒット率が低下してしまうという問題が発生していた。
【０００４】
これを解決するための方法が、特許文献１に記載されている。この発明ではプロセッサ中の演算ユニットが生成したアドレスをブロックマッピング回路により変換し、変換後のアドレスを用いてデータキャッシュやフレームバッファをアクセスする構成を提案している。これにより、キャッシュラインのコンフリクトの発生頻度を低減し、データキャッシュのヒット率の向上を実現している。この構成では、演算ユニットが生成したアドレスに対して、ブロックマッピングを行った後、データキャッシュや外部メモリにアクセスすることになる。このため、共通のマッピングアルゴリズムがデータキャッシュと外部メモリに適用されることになる。
【０００５】
【特許文献１】特開平９−２５９０４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一般に、表示データを格納するための外部メモリとしては、低コスト化のためにＤＲＡＭ系のメモリが使用されることが多い。ＤＲＡＭ系のメモリ（ＤＲＡＭ、ＳＤＲＡＭ、ＤＤＲ−ＳＤＲＡＭ等）には、センスアンプと呼ばれる一種のキャッシュとして作用する小容量のメモリが搭載されている。センスアンプには連続した数キロバイトのデータを格納することが可能であり、アクセス対象のデータがすでにセンスアンプに格納されている場合には、高速にアクセスすることが可能となる。
【０００７】
水平方向を主走査とするようにデータを格納しているフレームバッファでは、表示読み出しが連続したアドレスに対するアクセスとなるため、必要とするデータがセンスアンプにすでに読み込まれている（センスアンプがヒットしている）確率が高くなり、メモリからの実効読み出しバンド幅を高く保つことが可能となる。しかしながら、小さな矩形領域をアクセスする場合には、アクセスアドレスが飛び飛びになるため、センスアンプミスが発生する頻度が高くなってしまう。特許文献１はこのような場合にもセンスアンプミスを低下させる効果を持つが、外部メモリのセンスアンプの容量は使用するＤＲＡＭの構成によって変動することや、外部メモリは表示読み出しも効率良く行う必要があるなど、データキャッシュとは異なる点もあり、データキャッシュと外部メモリに対して共通のブロックマッピング回路を用いると、両者のバランスを考慮してマッピング方法を決定する必要があり、必ずしも、個々の性能を最適にすることができないという問題が発生する。
【０００８】
さらに、特許文献１の方法では、ＬＳＩ内部バスにブロックマッピングを行った後のアドレスが流れることになり、このバスにコプロセッサなどを接続する場合には、コプロセッサ側のコードを作成する際に、ブロックマッピングを意識する必要が生じる。
【課題を解決するための手段】
【０００９】
本発明では、データキャッシュアクセスと外部メモリアクセス用に独立したブロックマッピング回路を搭載することで、この問題の解決を図る。すなわち、演算ユニットとデータキャッシュの間にデータキャッシュアクセス用のブロックマッピング回路を搭載し、データキャッシュのスラッシングを抑えるのに最適なマッピングパターンを選択する。さらに内部バスと外部メモリの間に、外部メモリ用のブロックマッピング回路を搭載し、ＤＲＡＭのセンスアンプのヒット率が高くなるようにマッピングパターンを選択する。
【発明の効果】
【００１０】
このように、二つのブロックマッピング回路を搭載し、両者のマッピング方式を独立に制御可能な構造とすることで、データキャッシュアクセスと外部メモリアクセスのそれぞれを最適な状態に設定することが可能となり、システム全体の性能を向上させることができる。
【００１１】
さらに、本発明の方式ではＬＳＩの内部バスにはブロックマッピングを施していないアドレスが流れることになるため、内部バスにコプロセッサなどを接続する場合にブロックマッピングを意識しないですむというメリットがある。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明の実施の形態を説明する。
【実施例１】
【００１３】
図１に本発明を使用した情報処理システムの構成図を示す。この図において１はプロセッサであり、内部に命令キャッシュ１０、演算ユニット１１、データキャッシュ１２などを搭載している。命令キャッシュ１０とデータキャッシュ１２は、どちらもダイレクトマップ方式であり、容量は４Ｋバイト、ラインサイズは１６バイトであるものとする。演算ユニット１１は、命令キャッシュ１０から読み出した命令に基づき、外部メモリ３に格納されているデータに対する演算処理などを行う。一般的なプロセッサと同じく、データキャッシュ１２には、外部メモリ３に格納されているデータの一部のコピーが格納されることになる。データキャッシュ１２は外部メモリ３よりも小容量であるが高速にアクセスすることが可能である。このため、演算ユニット１１が必要とするデータが、データキャッシュ１２に格納されている場合（キャッシュヒット）、外部メモリ３上のデータを参照する場合に比べて高速に処理を行えることになる。
【００１４】
本実施例では、データキャッシュ１２と内部バス５の間にブロックマップ回路１３を搭載することで、演算ユニット１１が生成したアドレスに変換を施した後、データキャッシュ１２にアクセスするようになっている。ここで述べているアドレス変換とは、ＴＬＢのようなテーブル参照によるものではなく、ビット位置の入れ替えによって実現される。このようにすることで、データキャッシュ１２がヒットする確率を向上させることが可能となる。
【００１５】
２は外部メモリ３を制御するためのメモリ制御回路であり、内部バス５によりプロセッサ１と接続されている。メモリ制御ユニット２と外部メモリ３の間は、メモリバス４により接続されている。本実施例では、内部バス５にはプロセッサ１とメモリ制御ユニット２の他に表示制御ユニット６が接続されている。表示制御ユニット６は、メモリ制御ユニット２を介して外部メモリ３から画像データを読み出し、表示装置７に表示するという役割を持っている。
【００１６】
外部メモリ３は、同期式ＤＲＡＭのようなＤＲＡＭ系のメモリであり、ロウアドレスとカラムアドレスによりアクセス対象のメモリセルを指定する。ロウアドレスが、直前のアクセスと同一である場合には、前回のアクセスでメモリセルから読み出した１ロウ分のデータがセンスアンプと呼ばれるメモリに残っているため、ロウアドレスが異なる場合よりも高速にアクセスすることが可能となる。このようなケースをセンスアンプがヒットしていると呼ぶ。
【００１７】
本実施例では外部メモリ３として、図２に示すように、１６ビット幅で１２８Ｍビットの容量を持つ同期式ＤＲＡＭを４個（３０ａ〜ｄ）使用することで、６４ビットのバス幅を持つ６４Ｍバイトのメモリシステムを構築する場合を想定している。３０ｂ〜ｄは３０ａと同じ内部構造となっている。ロウアドレスの幅は１４ビット、カラムアドレスの幅は９ビットであり、これらは、アドレス線１２０により時分割で与えられる。各ＤＲＡＭはその内部にメモリセルの集合であるメモリマット３００、センスアンプ３０１、セレクタ３０２を持っている。メモリマット３００は５１２×１６ビット幅のエントリーを２の１４乗個集めた構成となっている。このメモリにアクセスする方法を図３のタイミングチャートを用いて説明する。同期式ＤＲＡＭでは、アドレス１２０やコマンド１２１はクロック１２２の立ち上がりエッジに同期してＤＲＡＭ３０ａ〜ｄに与えることになる。アドレス１２０、コマンド１２１、クロック１２２、データ１２３を合わせたものが、図１のメモリバス４となる。外部メモリ３からデータを読み出すには、まず、アドレス線１２０にメモリマット３００のエントリー番号に相当するロウアドレス１２００を与える。この際に、コマンド線１２１を用いて、現在ロウアドレスを印加していることをＤＲＡＭ３０ａ〜ｄに通知する。この結果、メモリマット３００の中から１つのエントリーが選択され、その内容がセンスアンプ３０１に転送される。
【００１８】
次にアドレス線１２０にカラムアドレス１２０１を、コマンド線１２１で、現在カラムアドレスを印加していることおよび、実行中のアクセスがリードであることをＤＲＡＭ３０ａ〜ｄに通知する。このカラムアドレスは、セレクタ３０２を制御するために使用され、セレクタ３０２の出力として１６ビットのデータ１２３０が得られる。ＤＲＡＭ３０ａ〜ｄから出力された１６ビットのデータは６４ビットに束ねて使用する。ロウアドレスが同一でカラムアドレスが異なるデータを続けてアクセスする場合、メモリマット３００からセンスアンプ３０１へのコピーが不要となるため、図３の１２３１〜１２３３のように２番目以降のデータを高速にアクセスすることが可能となる（センスアンプがヒットしているため）。外部メモリ３に対するアクセスの実効スループットを上げるためには、センスアンプ３０１のヒット率を向上させることが早道となる。これを実現するため、本実施例では、メモリ制御ユニット２の中にブロックマップ回路２２を搭載している。
【００１９】
次に、本実施例で使用している２つのブロックマッピング回路１３、２２について説明する。
【００２０】
まず、データキャッシュ１２と内部バス５の間に挿入されているブロックマップ回路１３の構成例を図４に示す。本実施例では、ブロックマッピング回路１３のアドレス変換パターンが固定である場合を想定している。これは、同一設計のＬＳＩ１００を使用している限り、データキャッシュ１２の大きさは常に一定であるため、実行する処理の内容がほぼ同一であれば、アドレスのビット位置入れ替えパターン（ブロックマッピングパターン）を変える必要が無いためである。ブロックマッピングパターンを変更する必要があれば、後に述べるメモリ制御ユニット２内部のブロックマッピング回路２２と同様にブロックマッピングパターンを変更可能な構成にすることも可能である。この図において、１３３はブロックマッピングのオンオフを切り替えるためのセレクタであり、レジスタ１３２の値により制御される。レジスタ１３２の値は、演算ユニット１１で実行される命令によって変更することが可能である。レジスタ１３２に１をセットすることにより、ブロックマッピングをオンにすると、アドレス１３４がブロックマッピング回路１３の出力となる。
ブロックマッピング回路１３は、図５（ａ）に示すように、アドレスのあるビット範囲を他のビット範囲と入れ替える働きを持つ。図５（ａ）のブロックマッピングでは、アドレスのＳ２からＳ３をアドレスのＳ４からＳ５と入れ替える。この結果、マッピング後のアドレスＤ０からＤ１はマッピング前のアドレスのＳ０からＳ１と同一の値となるが、Ｄ２からＤ３はＳ４からＳ５と同一の値となり、Ｄ４からＤ５はＳ２からＳ３と同一の値となる。Ｄ６からＤ７はＳ６からＳ７と同一である。このような変換により、アドレスのビット位置の入れ替えが行われることになる、
図４の回路構成では、図５（ｂ）のようにアドレスのビット１４〜１１とビット１０〜６の位置が入れ替えられることになる。アドレスのビット３１〜１５およびビット７〜０は変換されない。また図４には図示されていないが、セレクタ１３３の切り替え条件としてアドレスのビット３１〜１５の値を使用することも可能である。この場合、アドレス空間によってブロックマップのオンオフができることになる。
【００２１】
ここで図６のように、横２０４８画素、縦１０２４画素、１画素あたり１バイトの画像を、横１６画素×縦１６画素の矩形領域（マクロブロック）に分割して処理する場合を想定して、ブロックマッピングの効果を説明する。この画像を一般に行われているように、横方向にアドレスが１ずつ増えていくように外部メモリ３に格納した場合、縦方向へはアドレスが２０４８バイトずつ増えることになり、縦方向に２画素分離れた２つの画素７００と７０１のアドレスは４０９６バイト異なることになる。
【００２２】
本実施例のデータキャッシュ１２は容量が４Ｋバイトで１ラインが１６バイトのダイレクトマップキャッシュである。この構成では、図７のようにアドレス９のビット１１〜４でキャッシュラインを指定することになり、この値により、参照されるタグメモリのエントリーが一意に定まる。ビット３１〜１２は、タグメモリ５００に格納されているアドレスタグ情報５０１と比較され、これらが等しくかつ、そのエントリーが有効であることを示す有効ビット５０２が１であれば、キャッシュヒットとなり、キャッシュに格納されているデータが使用されることになる。キャッシュは外部メモリに比べて高速であるため、キャッシュがヒットした場合はアクセス性能が向上することになる。ブロックマッピングを行わない場合、図６の８００の様に横２０４８画素、縦２画素の領域を同時にキャッシュに格納することが可能となる。この場合、アドレスが４０９６異なる２つの画素７００と７０１は、アドレスのビット１１〜４が同一であるため、本実施例のデータキャッシュでは同一のエントリーが格納対象として選択されることになる。すなわち、画素７００がデータキャッシュ１２に格納された状態で画素７０１を読み込むと、キャッシュエントリーのコンフリクトによって、画素７００のデータがデータキャッシュ１２から追い出されることになり、データキャッシュ１２には、これら二つの画素のデータを同時に格納できないことになる（図８（ａ））。このため、これら２つの画素を両方使用して、画像処理を行うようなケースでは、キャッシュミスが発生し、性能が大幅に低下することになる。
【００２３】
これに対し、図５（ｂ）のブロックマッピングを行うと、アドレスのビット１４〜１１と７〜６がアドレスのビット１１〜６にマッピングされることになり、図６の８１０の様に横６４画素、縦６４画素の領域を同時にキャッシュに格納することが可能となる。変換後のアドレスでは、画素７００と７０１はアドレスのビット１１〜４が異なる値となり、異なるキャッシュエントリーに格納されることになる。これにより、キャッシュエントリーのコンフリクトを抑えることができる（図８（ｂ））。図５（ｂ）のマッピング方式では、縦６４×横６４画素の領域を同時にキャッシュに格納することが可能である。動き補償処理のように、対象としている画像処理の内容が縦方向と横方向で等方性を持っている場合には、このように正方形に近い形にマッピングを行うのが最適解となることが多い。
【００２４】
次に本実施例のメモリ制御ユニット２の内部にあるブロックマップ回路２２の構成を図９を用いて説明する。ブロックマップ回路２２は、内部バス５によって送られてきたアドレスを、メモリバス４へ転送する際に、ビット位置の入れ替えによってアドレスの変換を行うために使用される回路である。外部メモリ３は、使用するメモリ構成によりセンスアンプの総容量が変化するため、最適なブロックマッピングパターンが変わることや、命令列が格納されているメモリ空間はブロックマッピングを行うことにより、メモリアクセス性能が悪化する可能性があることなどを考え、回路面積は大きくなるが、柔軟性を持たせた構成となっている。尚、システム構成は、ブロックマップ回路１３を外部メモリ３に接続し、ブロックマップ回路２２をデータキャッシュ１２に接続する構成、ブロックマップ回路２２をデータキャッシュ１２および外部メモリ３に接続する構成、ブロックマップ回路１３をデータキャッシュ１２および外部メモリ３に接続する構成等があり、ブロックマップ回路１３とブロックマップ回路２２の組み合わせは任意に選択可能である。
【００２５】
図９において１３６はブロックマッピング空間判定回路であり、アドレス空間ごとにブロックマッピングを行うかどうかを指定するために使用する。この回路は、入力されたアドレス１３７０の値をレジスタ１３５の中にあるブロックマッピング空間上限レジスタとブロックマッピング空間下限レジスタの値と比較し、入力アドレスの値がブロックマッピング空間上限レジスタとブロックマッピング空間下限レジスタの間にあるときに判定出力１３６０が１となる回路である。判定出力１３６０が１の時には、セレクタ１３３により、ブロックマッピングを施したアドレス１３８０がブロックマップ回路２２の出力として選択される。判定出力１３６０が０の時は、セレクタ１３３により、アドレス１３７０がブロックマップ回路２２の出力として選択される。
【００２６】
１３８ａ〜ｇは７入力１出力のセレクタであり、各セレクタの出力としてアドレスのビット１４〜８までのうち１本が選択されることになる。レジスタ１３５の中にあるブロックマップパターン設定レジスタの出力がセレクタ１３８ａ〜ｇの選択信号となる。レジスタ１３５の中のレジスタは、演算ユニット１１から値を変更することが可能である。この値を変更することで、アドレスの変更を行うビットの位置を変換可能である。この図では、マッピング回路２２で変換されるのは、アドレスのビット１４から８のみであるが、変換対象のビット範囲は回路構成を変更することで容易に増減可能である。例えば、ビット９から８に対応するセレクタを削除した回路では、アドレスのビット１４から１０が変換対象となる。反対に、セレクタを追加すれば変換対象のビット範囲を広げることができる。つまり、セレクタ１３８群の数、および該セレクタに接続される入力信号線の数を増減させることで、変換対象のビット範囲を変更することができる。
【００２７】
ここで再び、図６の画像データを用いて本発明の効果を説明する。この画像データをデータキャッシュ１２に格納して、演算ユニット１１で処理する場合は、本実施例で想定している応用のように縦方向と横方向に等方性がある場合には、図５のブロックマッピングパターンが最適となる。しかし、外部メモリ３においては、必ずしも図５（ｂ）のブロックマッピングパターンが最適ということはできない。外部メモリ３には、演算ユニット１１からのアクセスだけでなく、表示制御ユニット６からの表示読み出しアクセス行われるためである。表示制御ユニット６からの読み出しアクセスは主走査方向にそって行われるため、読み出しアドレスが１ずつ増加するアクセスパターンとなる。このようなアクセスパターンに対し、図５（ｂ）のブロックマッピングパターンを適用すると６４画素ごとにセンスアンプがミスすることになる。このような場合には、表示読み出しアクセスの最大バースト長を基準に、ブロックマッピングパターンを選択するのが良い。表示読み出しアクセスの最大バースト長を２５６バイトとした場合、ブロックマップ回路２２のブロックマッピングパターンを、図５（Ｃ）の様に設定することで、縦１６画素、横２５６画素の領域が外部メモリ３のセンスアンプに格納されるようになる。この結果、表示読み出しの２５６バイトのバースト転送を、センスアンプミスを発生させること無く実行可能となる。さらに、ブロックマッピングの効果により、１マクロブロック分の画像を同時にキャッシュメモリ１２に格納することが可能となるため、キャッシュエントリーのコンフリクトによる性能低下も低減させることができる。
【００２８】
このように、データキャッシュ１２のヒット率を向上させるためのブロックマップ回路１３と、外部メモリ３のセンスアンプのヒット率を向上させるためのブロックマップ回路２２という２つのブロックマップ回路を搭載し、それぞれのアクセスパターンに応じて最適なマッピングパターンを設定可能とすることで、システム全体の性能を向上させることが可能となる。
【実施例２】
【００２９】
また、本発明はコプロセッサを搭載したシステムでもその効果を発揮する。これを図１０の実施例を用いて説明する。この図において、プロセッサ１、メモリ制御ユニット２、外部メモリ３、表示制御回路６、表示装置７の構成は実施例１と同一である。４０は、ＤＣＴ演算器などのコプロセッサであり、外部メモリ３からデータを読み込み、ＤＣＴなどの演算処理を行い、結果を外部メモリ３に書き戻すものとする。通常、データキャッシュ１２には、外部メモリ３に格納されているデータのコピーが格納されている。しかし、データキャッシュ１２のデータを演算ユニット１１が更新した場合、データキャッシュ１２に格納されているデータと、外部メモリ３に格納されているデータが不一致となり、最新のデータはデータキャッシュ１２にのみ格納されているという場合が発生しうる。このような場合には、コプロセッサ４０は外部メモリ３ではなくデータキャッシュ１２からデータを読み込む必要がある。これはスヌープとよばれる方式であり、すでに一般的な手法であるため、ここでは説明を省略する。本実施例の構成では、内部バス５上のアドレスには、ブロックマッピングが施されていないため、コプロセッサ４０が外部メモリ３やデータキャッシュ１２に格納されているデータにアクセスする場合に、ブロックマッピングのことを意識する必要が無いという長所を持つ。特にスヌープをサポートしているシステムでは、データキャッシュ１２にアクセス対象のデータが格納されているかどうかによって、データのアクセス先がデータキャッシュ１２になるか外部メモリ３になるかが決定されることになる。本実施例では、ブロックマッピングを施していないアドレスが内部バス５上に適用されるため、アクセス対象によってコプロセッサ４０がブロックマッピング方式を選択する必要がないという利点がある。
【実施例３】
【００３０】
本発明は、それぞれのプロセッサがデータキャッシュを持つマルチプロセッサシステムでも有効である。これを図１１の実施例を用いて説明する。この図において、ＬＳＩ１００には２個のプロセッサ１、１ａが搭載されている。これらのプロセッサは内部バス５によって接続されている。プロセッサ１の演算ユニット１１とデータキャッシュ１２の間にはブロックマップ回路１３が、プロセッサ１ａの演算ユニット１１ａとデータキャッシュ１２ａの間にはブロックマップ回路１３ａが搭載されている。ブロックマップ回路１３とブロックマップ回路１３ａは、図９に記載されているブロックマップ回路のようにマッピングパターンを変更可能な構成をとっており、独立に異なるブロックマップパターンを設定可能であるとものする。このようにすることで、プロセッサ１とプロセッサ１ａで異なる処理を行う場合でも、それぞれに最適なブロックマップパターンを選択することが可能となる。画像を処理する際に、輝度成分と色差成分に分離して処理することがある。この際、人間の目は色差成分に比べて、輝度成分に敏感であることを利用し、色差成分の解像度を輝度成分の解像度よりも小さくすることがある。輝度成分は縦横各１６画素のブロック単位で処理し、色差成分は解像度を１／２に落とし、縦横各８画素のブロック単位で処理するというような場合である。ここで、処理を分散するために、輝度成分をプロセッサ１で色差成分をプロセッサ１ａで処理するようにすると、プロセッサにより扱う画像の解像度が異なるため、最適なブロックマッピングパターンが異なるというケースが存在する。例えば、色差成分を処理するプロセッサ１ａは扱うデータ量が、プロセッサ１の１／４となることから、データキャッシュ１２ａの容量をデータキャッシュ１２の１／４の１Ｋバイトにするような場合である。この場合には、ブロックマップ回路１３ａにより、縦横各３２バイトの領域を同時にキャッシュに格納できるようにブロックマッピングを行うと、データキャッシュ１２ａを効率良く使用することが可能となる。この本実施例では、ブロックマップ回路１３とブロックマップ回路１３ａに独立にマッピングパターンを設定できるため、それぞれに最適なマッピングパターンを選択することが可能となり、システム全体の処理性能をより高くすることができる。
【産業上の利用可能性】
【００３１】
本発明を用いることで、キャッシュ容量や主記憶構成などを同じ状態に保ったままでも、情報処理装置のさらに処理性能を向上させることが可能となる。これにより、コストパフォーマンスに優れた製品を製造することが可能となる。
【図面の簡単な説明】
【００３２】
【図１】第一の実施例のシステム構成例である。
【図２】外部メモリの構成例である。
【図３】外部メモリに対するアクセス方法の例である。
【図４】第一のアドレス変換手段の構成例である。
【図５】（ａ）は、アドレス変換手段における変換例である。（ｂ）は、第一のアドレス変換手段の変換例である。（ｃ）は、第二のアドレス変換手段の変換例である。
【図６】処理対象画像の例である。
【図７】データキャッシュのアクセス方法を示した図である。
【図８】（ａ）は、ブロックマッピング非実施時の外部メモリとデータキャッシュにおけるデータの配置例である。（ｂ）は、ブロックマッピング実施時の外部メモリとデータキャッシュにおけるデータの配置例である。
【図９】第二のアドレス変換手段の構成例である。
【図１０】第二の実施例のシステム構成例である。
【図１１】第三の実施例のシステム構成例である。
【符号の説明】
【００３３】
１：プロセッサ、２：メモリ制御ユニット、３：外部メモリ、４：メモリバス、５：内部バス、６：表示制御ユニット、７：表示装置、１０：命令キャッシュ、１１：演算ユニット、１２：データキャッシュ、１３：ブロックマップ回路、２２：ブロックマップ回路、３０ａ〜ｄ：メモリ、４０：コプロセッサ、１００：集積回路、１２０：アドレス、１２１：コマンド、１２２：クロック、１２３：データ、１３１：書き込み信号生成回路、１３２：レジスタ、１３３：セレクタ、１３４：アドレス変換後アドレス、１３５：レジスタセット、１３６：ブロックマップ空間判定回路、１３８ａ〜ｇ：セレクタ、３００：メモリマット、３０１：センスアンプ、３０２：セレクタ、７００、７０１：画素、１２００：ロウアドレス、１２０１：カラムアドレス、１２３０〜１２３３：リードデータ、１３６０：ブロックマップ空間判定結果、１３７０：ブロックマップ変換前アドレス、１３８０：ブロックマップ変換後アドレス
【図１】
2005215911.tif 000003
【図２】
2005215911.tif 000004
【図３】
2005215911.tif 000005
【図４】
2005215911.tif 000006
【図５】
2005215911.tif 000007
【図６】
2005215911.tif 000008
【図７】
2005215911.tif 000009
【図８】
2005215911.tif 000010
【図９】
2005215911.tif 000011
【図１０】
2005215911.tif 000012
【図１１】
2005215911.tif 000013