JP2016085729A - キャッシュメモリ・システム及びその動作方法 - Google Patents

キャッシュメモリ・システム及びその動作方法 Download PDF

Info

Publication number
JP2016085729A
JP2016085729A JP2015150285A JP2015150285A JP2016085729A JP 2016085729 A JP2016085729 A JP 2016085729A JP 2015150285 A JP2015150285 A JP 2015150285A JP 2015150285 A JP2015150285 A JP 2015150285A JP 2016085729 A JP2016085729 A JP 2016085729A
Authority
JP
Japan
Prior art keywords
texture
cache memory
textures
bank
memory system
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.)
Pending
Application number
JP2015150285A
Other languages
English (en)
Inventor
勸 宅 權
Kwon Taek Kwon
勸 宅 權
熙 峻 沈
Heejun Shim
熙 峻 沈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2016085729A publication Critical patent/JP2016085729A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory

Abstract

【課題】 キャッシュメモリ・システム及びその動作方法を提供する。【解決手段】 少なくとも1つのバンクを含むキャッシュメモリ;バンクをピクセルシェーディング時に必要な複数のテクスチャのうち少なくとも1つのテクスチャに割り当てることにより、キャッシュメモリを複数のパーティションに分割するパーティション構成部;及び、ピクセルシェーディングを行う装置から要請されるテクスチャデータのパーティションIDを受信し、複数のパーティションのうち、パーティションIDに対応するパーティションに要請されたテクスチャデータが保存されているか否かということを判断し、該判断結果により、要請されたテクスチャデータを装置に出力するコントローラ;を含むキャッシュメモリ・システムである。【選択図】 図3

Description

本発明は、キャッシュメモリ・システム及びその動作方法に関し、さらに具体的には、キャッシュミス確率を低下させることができるキャッシュメモリ・システム及びその動作方法に関する。
一般的に、CPU(central processing unit)やGPU(graphics processing unit)のような処理装置は、大容量の外部メモリに保存された命令語やデータを持ってきて処理する。ほとんどの大容量外部メモリの処理速度は、処理装置に比べてはるかに遅いので、動作速度を改善するために、キャッシュメモリ・システムを使用している。
キャッシュメモリ・システムは、処理装置が最近アクセスしたデータを保存していて、処理装置が、同一データをさらに要請する場合、外部メモリにアクセスせず、高速のキャッシュメモリにアクセスさせることにより、データ伝送速度を向上させる役割を行う。
処理装置が要請したデータが、キャッシュメモリ・システムのデータメモリに保存されている場合(キャッシュヒット(cache hit))には、データメモリのデータが処理装置に伝達され、処理装置が要請したデータがない場合(キャッシュミス(cache miss))には、外部メモリからデータを読み取る。また、キャッシュメモリ・システムは、データメモリに保存されているキャッシュデータのうちいずれか一つを削除し、読み取ったデータでアップデートし、読み取ったデータは、処理装置に伝達される。
かようなキャッシュメモリ・システムは、マッピング(mapping)方式により、セット関連マッピング方式を利用するセット関連キャッシュメモリと、直接マッピング方式を利用する直接マップキャッシュメモリ(direct mapped cache memory)とによって具現化することができる。セット関連キャッシュメモリは、複数のウェイ(way)を有し、キャッシュミスの場合、交替政策(replacement status)により、いずれか1つのウェイに対応するキャッシュデータを、外部メモリから読み取った新たなデータでアップデートする。
本発明が解決しようとする課題は、キャッシュミス確率を低下させるキャッシュメモリ・システム及びその動作方法を提供するところにある。
前記課題を解決するために本発明の一実施形態によるキャッシュメモリ・システムは、少なくとも1つのバンクを含むキャッシュメモリ;前記バンクを、レンダリングに必要な複数のテクスチャのうち少なくとも1つのテクスチャに割り当てることにより、前記キャッシュメモリを複数のパーティションに分割するパーティション構成部;及び前記レンダリングを行う装置から要請されるテクスチャデータのパーティションID(identification)を受信し、前記複数のパーティションのうち、前記パーティションIDに対応するパーティションに、前記要請されたテクスチャデータが保存されているか否かということを判断し、前記判断結果によって、前記要請されたテクスチャデータを前記装置に出力するコントローラ;を含んでもよい。
一実施形態によるキャッシュメモリは、前記複数のテクスチャのうち、第1テクスチャに含まれる一部テクスチャデータを、前記第1テクスチャに対応するパーティションに保存し、第2テクスチャに含まれる一部テクスチャデータを、前記第2テクスチャに対応するパーティションに保存することができる。
一実施形態によるコントローラは、前記要請されるテクスチャデータのセットアドレス及びタグアドレスを受信し、前記パーティションIDに対応するパーティションに含まれる少なくとも1つのセットのうち、前記セットアドレスが示すセットに含まれるタグデータを、前記タグアドレスと比較し、前記要請されたテクスチャデータが保存されているか否かということを判断することができる。
一実施形態によるコントローラは、前記比較の結果、前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、キャッシュヒットと判断し、前記一致するタグデータに対応するテクスチャデータを、前記装置に出力することができる。
一実施形態によるコントローラは、前記比較の結果、前記タグデータが前記タグアドレスと一致しない場合、キャッシュミスと判断し、テクスチャメモリの前記タグアドレスが示す領域から、前記要請されたテクスチャデータを受信することができる。
一実施形態によるパーティション構成部は、前記テクスチャの個数と、前記バンクの個数とを比較し、前記比較の結果に基づき、前記バンクを、前記テクスチャのうち少なくとも一つに割り当てることができる。
一実施形態によるパーティション構成部は、前記比較の結果、前記テクスチャの個数が、前記バンクの個数より少ない場合、前記テクスチャそれぞれに1つのバンクを割り当て、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当て、前記テクスチャそれぞれに割り当てられた少なくとも1つのバンクを1つのパーティションとして決定することができる。
一実施形態によるパーティション構成部は、前記テクスチャのうちミップマップされていないテクスチャ(non-mipmapped texture)を検出し、前記検出されたテクスチャに、前記割り当てられていないバンクを追加して割り当てることができる。
一実施形態によるパーティション構成部は、前記レンダリングに利用されるシェーダ・プログラムと同一シェーダ・プログラムを利用した以前レンダリング結果に基づき、前記テクスチャのアクセスパターンを分析し、前記分析結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てることができる。
一実施形態によるパーティション構成部は、前記レンダリングの最中、前記テクスチャのアクセスパターンをリアルタイムでモニタリングし、前記モニタリング結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに動的に追加して割り当てることができる。
一実施形態によるパーティション構成部は、前記比較の結果、前記テクスチャの個数が、前記バンクの個数より多い場合、前記テクスチャのうち、第1テクスチャ及び第2テクスチャに同一バンクを割り当て、前記同一バンクを1つのパーティションとして決定することができる。
一実施形態によるパーティション構成部は、前記テクスチャのうちテクスチャ座標を共有しない前記第1テクスチャ及び第2テクスチャを検出することができる。
一実施形態によるパーティション構成部は、前記テクスチャのうちテクスチャサイズが互いに異なる前記第1テクスチャ及び第2テクスチャを検出することができる。
前記課題を解決するために本発明の一実施形態によるキャッシュメモリ・システムの動作方法は、キャッシュメモリに含まれる少なくとも1つのバンクを、レンダリングに必要な複数のテクスチャのうち少なくとも1つのテクスチャに割り当てることにより、前記キャッシュメモリを複数のパーティションに分割する段階、前記レンダリングを行う装置から要請されるテクスチャデータのパーティションIDを受信する段階、前記複数のパーティションのうち、前記パーティションIDに対応するパーティションに、前記要請されたテクスチャデータが保存されているか否かということを判断する段階、及び前記判断結果によって、前記要請されたテクスチャデータを、前記装置に出力する段階を含んでもよい。
一実施形態によるキャッシュメモリ・システムの動作方法は、前記要請されるテクスチャデータのセットアドレス及びタグアドレスを受信する段階をさらに含み、前記判断する段階は、前記パーティションIDに対応するパーティションに含まれる少なくとも1つのセットのうち、前記セットアドレスが示すセットに含まれるタグデータを、前記タグアドレスと比較し、前記要請されたテクスチャデータが保存されているか否かということを判断する段階でもある。
一実施形態による前記判断結果により、前記要請されたテクスチャデータを、前記装置に出力する段階は、前記比較の結果、前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、キャッシュヒットと判断し、前記一致するタグデータに対応するテクスチャデータを、前記装置に出力する段階でもある。
一実施形態による前記判断結果により、前記要請されたテクスチャデータを、前記装置に出力する段階は、前記比較の結果、前記タグデータが前記タグアドレスと一致しない場合、キャッシュミスと判断し、前記テクスチャメモリの前記タグアドレスが示す領域から、前記要請されたデータを受信する段階をさらに含んでもよい。
一実施形態による前記キャッシュメモリを複数のパーティションに分割する段階は、前記テクスチャの個数と、前記バンクの個数とを比較する段階をさらに含み、前記比較の結果に基づき、前記バンクを、前記テクスチャのうち少なくとも一つに割り当て、前記キャッシュメモリを複数のパーティションに分割することができる。
一実施形態による前記比較の結果、前記テクスチャの個数が、前記バンクの個数より少ない場合、前記キャッシュメモリを複数のパーティションに分割する段階は、前記テクスチャそれぞれに1つのバンクを割り当てる段階、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階、及び前記テクスチャそれぞれに割り当てられた少なくとも1つのバンクを、1つのパーティションとして決定する段階を含んでもよい。
一実施形態による前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階は、前記テクスチャのうちミップマップされていないテクスチャ(non-mipmapped texture)を検出する段階、及び前記検出されたテクスチャに、前記割り当てられていないバンクを追加して割り当てる段階を含んでもよい。
一実施形態による前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階は、前記レンダリングに利用されるシェーダ・プログラムと同一シェーダ・プログラムを利用した以前レンダリング結果に基づき、前記テクスチャのアクセスパターンを分析する段階、及び前記分析結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階を含んでもよい。
一実施形態による前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階は、前記レンダリングの最中、前記テクスチャのアクセスパターンをリアルタイムでモニタリングする段階、及び前記モニタリング結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに動的に追加して割り当てる段階を含んでもよい。
一実施形態による前記比較の結果、前記テクスチャの個数が、前記バンクの個数より多い場合、前記キャッシュメモリを複数のパーティションに分割する段階は、前記複数のテクスチャのうち、第1テクスチャ及び第2テクスチャに同一バンクを割り当てる段階、及び前記同一バンクを、1つのパーティションとして決定する段階を含んでもよい。
一実施形態による前記キャッシュメモリを複数のパーティションに分割する段階は、前記テクスチャのうち、テクスチャ座標を共有しない前記第1テクスチャ及び第2テクスチャを検出する段階をさらに含んでもよい。
一実施形態による前記キャッシュメモリを複数のパーティションに分割する段階は、前記テクスチャのうちテクスチャサイズが互いに異なる前記第1テクスチャ及び第2テクスチャを検出する段階をさらに含んでもよい。
本発明によれば、複数のテクスチャにバンクを効率的に割り当てることにより、キャッシュミス確率を低下させることができる。
本発明によれば、また、当該パーティション内でのみキャッシング動作が行われるために、電力消費量を減少させることができる。
三次元イメージのレンダリング過程を示す図面である。 本発明の一実施形態によるピクセルシェーディング処理システムについて説明するための図面である。 本発明の一実施形態によるキャッシュメモリ・システムの構成を示すブロック図である。 本発明の一実施形態によるキャッシュメモリについて説明するための図面である。 本発明の一実施形態によるキャッシュメモリ・システムの動作方法について説明するために参照される図面である。 本発明の一実施形態によるキャッシュメモリ・システムにおいて、キャッシュメモリを複数のパーティションに分割する方法について説明するために参照される図面である。 本発明の一実施形態によるキャッシュメモリ・システムにおいて、キャッシュメモリを複数のパーティションに分割する方法について説明するために参照される図面である。 本発明の一実施形態によるキャッシュメモリ・システムの動作方法を示すフローチャートである。 典型的な実施例に従って、キャッシュメモリを図8の複数のパーティションに分割するオペレーションに係るフローチャートである。 典型的な実施例に従って、キャッシュメモリを図8の複数のパーティションに分割するオペレーションに係るフローチャートである。
実施形態において使用される用語は、本発明での機能を考慮しながら、可能な限り現在広く使用される一般的な用語を選択したが、それは、当業者の意図、判例または新たな技術の出現などによっても異なる。また、特定の場合、出願人が任意に選定した用語もあり、その場合、当該発明の説明部分において、詳細にその意味を記載する。従って、本発明で使用される用語は、単純な用語の名称ではない、その用語が有する意味と、本発明の全般にわたる内容とを基に定義されなければならない。
明細書全体において、ある部分がある構成要素を「含む」とするとき、それは、特別に反対となる記載がない限り、他の構成要素を除くものではなく、他の構成要素をさらに含んでもよいということを意味する。また、明細書に記載された「…部」、「…モジュール」のような用語は、少なくとも1つの機能や動作を処理する単位を意味し、それは、ハードウェアまたはソフトウェアによって具現化されたり、あるいはハードウェアとソフトウェアとの結合によって具現化されたりもする。
以下、添付した図面を参照し、本発明の実施形態について、本発明が属する技術分野における当業者が、容易に実施することができるように詳細に説明する。しかし、本発明は、さまざまに異なる形態に具現化され、ここで説明する実施形態に限定されるものではない。
以下、図面を参照しつつ、本発明の実施形態について詳細に説明する。
図1は、三次元イメージのレンダリング過程を示す図面である。図1を参照すれば、三次元イメージのレンダリング過程は、オペレーションS11ないしオペレーションS17を含んでもよい。また、図1の下端の図形は、各段階において、頂点(vertex)またはピクセルの処理を概念的に示している。
オペレーションS11は、映像を示す頂点を生成する段階である。頂点は、映像に含まれたオブジェクト(object)を示すために生成される。
オペレーションS12は、生成された頂点をシェーディング(shading)する段階である。頂点シェーダ(vertex shader)は、オペレーションS11で生成された頂点の色を指定し、頂点に対するシェーディングを行うことができる。
オペレーションS13は、プリミティブ(primitives)を生成する段階である。プリミティブは、点、線または頂点から形成される多角形(polygon)を示す。一例として、プリミティブは、頂点を連結して形成された三角形を示すこともできる。
オペレーションS14は、プリミティブをラスタ化(rasterization)する段階である。プリミティブのラスタ化は、プリミティブを複数のフラグメント(fragments)に分割することを示す。フラグメントは、プリミティブを構成する単位であり、映像処理を行うための基本単位でもある。プリミティブは、頂点に係わる情報のみを含む。従って、ラスタ化する段階において、頂点と頂点との間のフラグメントを生成するとき、補間(interpolation)が行われる。
オペレーションS15は、ピクセルをシェーディングする段階を示す。図1では、ピクセル単位でシェーディングが行われるように図示されているが、フラグメント単位でもシェーディングが行われる。例えば、ピクセルまたはフラグメントのシェーディングは、ピクセルまたはフラグメントの色を指定するものである。
オペレーションS16は、ラスタ・オペレーション段階を示す。ラスタ・オペレーション段階においては、カラーブレンディング、深さ検査などを行うことにより、シェーディングされたピクセルの情報に基づき、ラスタイメージ(ピクセルまたはサンプル)を生成する。生成されたラスタイメージは、フレームバッファ(frame buffer)に出力される。
オペレーションS17は、フレームバッファに保存されたフレームを表示する段階を示す。オペレーションS11ないしオペレーションS16を介して生成されたフレームは、フレームバッファに保存される。フレームバッファに保存されたフレームは、ディスプレイ装置を介して表示される。
図2は、一実施形態によるピクセルシェーディング処理システムについて説明するための図面である。
一実施形態によるピクセルシェーディング処理システムは、図1で説明したオペレーションS15のピクセルシェーディングを行うことができる。図2では、説明の便宜のために、一実施形態によるキャッシュメモリ・システムが、ピクセルシェーディング処理システムに適用される例を図示している。ただし、それに限定されるものではなく、一実施形態によるキャッシュメモリ・システムは、レンダリング過程のうち、テクスチャデータを必要とする演算を処理するシステムには、いずれも適用される。
また、以下では、一実施形態によるキャッシュメモリ・システムが、ピクセルシェーディングに利用される一例について図示して説明するが、それに限定されるものではなく、一実施形態によるキャッシュメモリ・システムは、レンダリング演算のうち任意のシェーディングにも利用される。
図2を参照すれば、ピクセルシェーディング処理システムは、グラフィックス処理装置(GPU(graphics processing unit)10及びテクスチャメモリ200を含んでもよく、グラフィックス処理装置10は、ピクセルシェーダ・コア50及びキャッシュメモリ・システム100を含んでもよい。また、システムバス60には、キャッシュメモリ・システム100のラインと、テクスチャメモリ200のラインとが連結される。
図2では、説明の便宜のために、グラフィックス処理装置10がピクセルシェーダ・コア50及びキャッシュメモリ・システム100だけ含む場合を図示しているが、それに限定されるものではなく、グラフィックス処理装置10は、図1に説明した各段階を遂行するための他の構成要素をさらに含んでもよい。
また、図2では、キャッシュメモリ・システム100が、ピクセルシェーダ・コア50と別途に位置する場合を図示しているが、それに限定されるものではなく、キャッシュメモリ・システム100は、ピクセルシェーダ・コア50と同一の1つのチップ内に含まれてもよい。
ピクセルシェーダ・コア50は、三次元イメージ・レンダリング時、ピクセルの色相値を決定するピクセルシェーディングを行うことができる。ピクセルシェーダ・コア50は、ピクセルの色相値決定に使用されるテクスチャ(texture)データを要請するため、テクスチャメモリ200にアクセスする前に、まず、キャッシュメモリ・システム100にアクセスする。ピクセルシェーダ・コア50は、キャッシュメモリ・システム100に、互いに異なる種類のテクスチャデータを要請することができる。例えば、ピクセルシェーダ・コア50が遂行する1つのシェーダ・プログラムは、多様な種類のテクスチャを必要とする。
キャッシュメモリ・システム100にピクセルシェーダ・コア50が要請したデータや命令(以下、ターゲットデータとする)が存在する場合、キャッシュヒット(cache hit)による動作が行われる。キャッシュヒット時には、キャッシュメモリ・システム100から出力されたキャッシュデータ(ターゲットデータ)がピクセルシェーダ・コア50に出力される。
ピクセルシェーダ・コア50が、テクスチャメモリ200より、キャッシュメモリ・システム100にまずアクセスする理由は、頻繁に使用されるテクスチャメモリ200のデータ(テクスチャデータ)の場合、キャッシュメモリ・システム100に保存されている確率が高いからである。従って、テクスチャメモリ200より、キャッシュメモリ・システム100にまずアクセスすることにより、データ伝送速度を向上させることができる。
一方、キャッシュメモリ・システム100に、ターゲットデータが存在しない場合には、キャッシュミス(cache miss)による動作が行われる。すなわち、その場合、キャッシュメモリ・システム100は、メインメモリ200にアクセスし、メインメモリ200から出力されたデータは、前記システムバス60を経て、キャッシュメモリ・システム200に印加される。そのとき、キャッシュメモリ・システム100は、既存に保存されているテクスチャデータのうちいずれか一つを削除し、テクスチャメモリ200から出力されたデータを保存することができる。
図3は、一実施形態によるキャッシュメモリ・システムの構成を示すブロック図である。図3を参照すれば、一実施形態によるキャッシュメモリ・システム100は、パーティション構成部110、キャッシュメモリ120及びコントローラ130を含んでもよい。
キャッシュメモリ120は、タグメモリとデータメモリとを含んでもよい。データメモリは、テクスチャメモリ200に保存されているテクスチャデータの一部データ(キャッシュデータ)を保存する。すなわち、キャッシュデータは、テクスチャメモリ200に保存されているテクスチャデータのうちいずれか一つと同一である。タグメモリは、データメモリに保存されたキャッシュデータにそれぞれ対応するタグデータを保存することができる。タグデータは、キャッシュデータが保存されているテクスチャメモリ200の実際アドレスを示すことができる。タグメモリとデータメモリとの構造については、以下、図4を参照して詳細に説明する。
図4は、一実施形態によるキャッシュメモリ120について説明するための図面である。図4を参照すれば、タグメモリとデータメモリは、少なくとも1つのセット123を含んでよい。キャッシュメモリ120は、複数のウェイ(way)を有し、ウェイを示す少なくとも1つのバンク(bank)125を含んでもよい。また、キャッシュメモリ120のロウ(row)は、セットを意味し、カラム(column)は、バンクを意味する。
図4は、8個のウェイを有する8ウェイセット関連キャッシュメモリの構造を示す。図4に図示されているように、キャッシュメモリ120が8ウェイセット関連キャッシュメモリから構成される場合、キャッシュメモリ120は、8個のバンク(bank 0ないしbank 7を含む。また、図4のキャッシュメモリ120は、8個のセットを含み、8個のセットは、インデックスindex 0ないしindex 7によって区分される。1つのセット123は、8個のキャッシュデータ(第1キャッシュデータないし第8キャッシュデータ)と、8個のキャッシュデータそれぞれのアドレスを示す8個のタグデータ(第1タグデータないし第8タグデータ)とを含んでもよい。また、8個のタグデータは、それぞれ第1ウェイないし第8ウェイに対応する。
一方、キャッシュメモリ120は、複数のパーティションを含んでもよく、パーティションは、少なくとも1つのバンクを含んでもよい。また、複数のパーティションは、パーティションID(identification)によって区分される。例えば、図4のキャッシュメモリは、4個のパーティションを有し、パーティションそれぞれは,パーティションID(例えば、Part 0、Part 1、Part 2、Part 3)によって区分される。
一方、コントローラ130は、外部から要請されるテクスチャデータのパーティションIDを受信し、当該パーティションに、要請されたテクスチャデータが保存されているか否かということを判断することができる。
図4を参照すれば、コントローラ130は、外部(例えば、ピクセルシェーダ・コア50)から要請されるテクスチャデータのパーティションIDを受信することができる。パーティションIDが受信されれば、コントローラ130は、パーティションIDに対応するパーティションに、要請されたテクスチャデータが保存されているか否かということを判断することができる。それについては、図5を参照して詳細に説明する。また、以下では、説明の便宜のために、受信したパーティションIDに対応するパーティションが第1パーティション(Part 0)であるとする。
図5は、本発明の一実施形態によるキャッシュメモリ・システム100の動作方法について説明するために参照される図面である。図5を参照すれば、キャッシュメモリ・システム100は、要請されるテクスチャデータのアドレスビットを受信することができる。そのとき、アドレスビットは、図5に図示されているように、タグアドレス(Tag add)とセットアドレス(Set add)とを含んでもよい。そのとき、セットアドレス(Set add)は、キャッシュメモリ120のロウアドレスを示すデータである。すなわち、セットアドレス(Set add)は、キャッシュメモリ120に含まれる複数のセットのうちいずれか1つのセットを示す。
コントローラ130は、タグ比較部135を含み、タグ比較部135は、第1パーティションPart0内の複数のセットのうち、セットアドレス(Set add)が示すセット(index 3)320に含まれるタグデータそれぞれをタグアドレスと比較し、一致するか否かということを判断する。
コントローラ130は、タグアドレス(Tag add)がタグデータのうちいずれか一つと一致する場合、キャッシュヒットと判断する。すなわち、キャッシュヒットは、外部から要請されたテクスチャデータ(ターゲットデータ)が、当該パーティション内に保存されているということを示す。コントローラ130がキャッシュヒットと判断した場合、タグアドレス(Tag add)と一致するタグデータに対応するキャッシュデータが、外部(例えば、ピクセルシェーダ・コア50)に出力される。コントローラ130は、キャッシュメモリ120に保存されているキャッシュデータを読み取り、外部に出力することができる。
一方、コントローラ130は、タグデータのうちいずれか一つもタグアドレスと一致しない場合、キャッシュミスと判断する。すなわち、キャッシュミスは、外部から要請されたテクスチャデータが、当該パーティション内に保存されていないということを示す。コントローラ130がキャッシュミスと判断した場合、コントローラ130は、メインメモリ200にキャッシュミス信号を出力し、外部から要請されたテクスチャデータ(ターゲットデータ)を要請することができる。
コントローラ130は、当該パーティションに含まれた複数のセットのうち、セットアドレス(Set add)が示すセットに含まれたキャッシュデータのうちいずれか一つを削除し、テクスチャメモリ200から受信したテクスチャデータでアップデートすることができる。
一方、パーティション構成部130は、複数のパーティションを決定することができる。パーティション構成部130は、ピクセルシェーディング時に必要なテクスチャの個数と、キャッシュメモリ120に含まれたバンクの個数とを比較し、比較結果によって、複数のテクスチャにバンクを割り当て、パーティションを決定することができる。 それについては、以下、図6及び図7を参照して詳細に説明する。図6及び図7は、一実施形態によるキャッシュメモリ・システムにおいて、キャッシュメモリを、複数のパーティションに分割する方法について説明するために参照される図面である。
図6は、バンクの個数が、必要なテクスチャの個数より多い場合、キャッシュメモリを複数のパーティションに分割する方法について説明するための図面である。
図6を参照すれば、バンクの個数が、必要なテクスチャの個数より多い場合、パーティション構成部110は、複数のテクスチャそれぞれに1つのバンクを割り当てることができる。例えば、ピクセルシェーディング時、3個のテクスチャ(第1テクスチャ410、第2テクスチャ420、第3テクスチャ430)が必要であり、テクスチャメモリ200には、第1テクスチャ410ないし第3テクスチャ430が保存されている。また、キャッシュメモリ120は、4ウェイ・キャッシュメモリから構成され、第1バンクないし第4バンク(bank 0、bank 1、bank 2、および、bank 3)を含んでもよい。かような場合、パーティション制御部110は、第1テクスチャ410に第1バンクbank 0を割り当て、第2テクスチャ420に第2バンクbank 1を割り当て、第3テクスチャ430に第3バンクbank 2を割り当てる。
また、パーティション構成部110は、割り当てられていないバンクを複数のテクスチャのうちいずれか一つに追加して割り当てることができる。例えば、割り当てられていない第4バンクbank 3を、第1テクスチャ410ないし第3テクスチャ430のうちいずれか一つに追加して割り当てることができ、複数のテクスチャのうちコンフリクトミス(conflict miss)の発生確率が高いテクスチャに、残りのバンクを追加して割り当てることができる。コンフリクトミスは、キャッシュメモリの1つのセットにマッピングされたデータが多く、ウェイの数が不足する場合に発生するミスを意味する。そのとき、ウェイの数を増加させれば、コンフリクトミスの発生確率が低下する。
一方、パーティション構成部110は、第1テクスチャ410ないし第3テクスチャ430のうちミップマップされていないテクスチャ(non-mipmapped texture)を検出し、検出されたテクスチャに、第4バンクbank 3を追加して割り当てることができる。ミップマップを使用するテクスチャ(mipmapped texture)は、本来サイズのテクスチャ以外に、さらに横縦のサイズを大きさをそれぞれ1/2、1/4、1/8ほど縮めたテクスチャを含んでもよい。ミップマップを使用するテクスチャをピクセルシェーディングに利用する場合、シェーディングするピクセルの大きさに、適切な大きさのテクスチャを使用し、キャッシュの効率(キャッシュヒット確率)を上昇させることができる。しかし、ミップマップされていないテクスチャの場合、同一セットにマッピングされるテクスチャデータの数がミップマップされたテクスチャより多くなり、コンフリクトミス発生確率が上昇する。それにより、パーティション構成部110は、ミップマップされていないテクスチャに、バンクを追加して割り当てることができる。
また、パーティション構成部110は、現在のピクセルシェーディング時、利用されるシェーダ・プログラムと同一シェーダ・プログラムを利用した以前ピクセルシェーディングの遂行結果に基づき、テクスチャのアクセスパターンを分析することができる。パーティション構成部110は、アクセスパターンの分析結果、コンフリクトミスが最も多く発生するテクスチャに、残りのバンクを割り当てることができる。例えば、第1テクスチャ410ないし第3テクスチャ430において、第3テクスチャ430に係わるデータにアクセスするとき、コンフリクトミスが最も多く発生した場合、パーティション構成部110は、第4バンク(bank 3)を第3テクスチャ430に割り当てることができる。
また、パーティション構成部110は、ピクセルシェーディングの遂行時、テクスチャのアクセスパターンをリアルタイムでモニタリングすることができる。パーティション構成部110は、アクセスパターンのモニタリング結果、コンフリクトミスが最も多く発生するテクスチャに、残りのバンクを割り当てることができる。例えば、第1テクスチャ410ないし第3テクスチャ430において、第3テクスチャ430に含まれるテクスチャデータにアクセスするとき、コンフリクトミスが最も多く発生する場合、パーティション構成部110は、第4バンク(bank 3)を第3テクスチャ430に割り当てることができる。
パーティション構成部110は、キャッシュメモリ120に含まれる全てのバンクが複数のテクスチャのうちいずれか一つに割り当てられれば、1つのテクスチャに割り当てられた少なくとも1つのバンクを、1つのパーティションとして決定することができる。例えば、パーティション構成部110は、第1テクスチャ410に割り当てられた第1バンク(bank 0)を、第1パーティション(Part0)として決定し、第2テクスチャ420に割り当てられた第2バンク(bank 1)を、第2パーティション(Part 1)として決定し、第3テクスチャ430に割り当てられた第3バンク(bank 2)及び第4バンク(bank 3)を、第3パーティション(Part2)として決定することができる。
図7は、必要なテクスチャの個数が、バンクの個数より多い場合、キャッシュメモリを複数のパーティションに分割する方法について説明するための図面である。図7を参照すれば、必要なテクスチャの個数が、バンクの個数より多い場合、パーティション構成部110は、複数のテクスチャのうち少なくとも2個のテクスチャに、同一バンクを割り当てることができる。
パーティション構成部110は、複数のテクスチャのうち、テクスチャ座標を共有しないテクスチャに、同一バンクを割り当てることができる。または、パーティション構成部110は、テクスチャサイズ(dimension)が異なるテクスチャに、同一バンクを割り当てることができる。
例えば、ピクセルシェーディング時、3個のテクスチャ(第1テクスチャ510、第2テクスチャ520、第3テクスチャ530)が必要である。また、キャッシュメモリは、2ウェイ・キャッシュメモリから構成され、第1バンク(bank 0)及び第2バンク(bank 1)を含んでもよい。かような場合、パーティション構成部110は、3個のテクスチャのうち2個のテクスチャに、同一バンクを割り当てることができる。
図7を参照すれば、第1テクスチャ510と第2テクスチャ520は、テクスチャ座標を一部共有し、第1テクスチャ510及び第3テクスチャ530も、テクスチャ座標を一部共有する。しかし、第2テクスチャ520と第3テクスチャ530は、テクスチャ座標を共有しない。すなわち、第2テクスチャ520と第3テクスチャ530は、互いに同一座標を含まない。それにより、パーティション構成部110は、第1テクスチャ510に、第1バンク(bank 0)を割り当て、第2テクスチャ520及び第3テクスチャ530に、第2バンク(bank 1)を割り当てることができる。
パーティション構成部110は、それぞれのバンクを、1つのパーティションとして決定することができる。例えば、パーティション制御部110は、第1テクスチャ510に割り当てられた第1バンク(bank 0)を、第1パーティション(Part0)として決定し、第2テクスチャ520及び第3テクスチャ530に割り当てられた第2バンク(bank 1)を、第2パーティション(Part 1)として決定することができる。すなわち、第2テクスチャ520及び第3テクスチャ530は、同一パーティションに対応する。
前述のように、テクスチャに対応するパーティションが決定されれば、テクスチャデータは、当該パーティションにマッピングされ、キャッシュメモリに保存される。例えば、第1テクスチャに対応するパーティションが第1パーティションとして決定され、第2テクスチャに対応するパーティションが第2パーティションとして決定される場合、第1テクスチャデータは、第1パーティションにマッピングされ、キャッシュメモリに保存され、第2テクスチャデータは、第2パーティションにマッピングされ、キャッシュメモリに保存される。
図8は、一実施形態によるキャッシュメモリ・システムの動作方法を示すフローチャートである。図8を参照すれば、キャッシュメモリ・システムは、オペレーションS610において、キャッシュメモリを、複数のパーティションに分割することができる。
例えば、キャッシュメモリ・システム100は、キャッシュメモリ120に含まれる少なくとも1つのバンクを、テクスチャメモリに保存された複数のテクスチャのうち少なくとも一つに割り当て、キャッシュメモリ120を、複数のパーティションに分割することができる。
キャッシュメモリ・システムは、ピクセルシェーディング時、必要なテクスチャの個数と、キャッシュメモリに含まれたバンクの個数とを比較することができる。例えば、ピクセルシェーダ・コア50が遂行する1つのシェーダ・プログラムは、多様な種類のテクスチャを必要とし、シェーダ・プログラムごとに必要なテクスチャの種類が異なる。キャッシュメモリ・システム100は、ピクセルシェーダ・コア50から、シェーダ・プログラムで使用するテクスチャの種類、座標情報などを受信することができる。それにより、キャッシュメモリ・システム100は、ピクセルシェーディング時に必要なテクスチャの個数を知ることができる。それにより、キャッシュメモリ・システム100は、必要なテクスチャの個数と、キャッシュメモリに含まれたバンクの個数とを比較することができる。
キャッシュメモリ・システム100は、比較結果に基づき、複数のテクスチャにバンクを割り当て、パーティションを決定することができる。それについては、図9及び図10を参照して詳細に説明する。
再び図8を参照すれば、キャッシュメモリ・システムは、オペレーションS620において、要請されるテクスチャデータのパーティションIDを受信することができる。
例えば、受信したパーティションIDは、要請されるテクスチャデータのテクスチャ種類を示し、キャッシュメモリ・システムに含まれた複数のパーティションのうちいずれか一つに対応する。また、キャッシュメモリ・システム100は、要請されるテクスチャデータのアドレスビットを受信することができる。アドレスビットは、タグアドレスとセットアドレスとを含んでもよい。
キャッシュメモリ・システムは、オペレーションS630において、当該パーティションに、要請されたテクスチャデータが保存されているか否かということを判断することができる。
キャッシュメモリ・システム100は、受信したパーティションIDに対応するパーティションに含まれた複数のセットのうち、セットアドレスが示すセットに含まれたタグデータそれぞれに対して、タグアドレスと一致するか否かということを判断することができる。キャッシュメモリ・システム100は、タグアドレスがタグデータのうちいずれか一つと一致する場合、要請されたテクスチャデータが、当該パーティションに保存されていると判断する(キャッシュヒット)。
一方、タグデータのうちいずれか一つもタグアドレスと一致しない場合、キャッシュメモリ・システム100は、要請されたテクスチャデータが、当該パーティションに保存されていないと判断する(キャッシュミス)。
キャッシュメモリ・システムは、オペレーションS640において、判断結果により、要請されたテクスチャデータを外部に出力することができる。
例えば、キャッシュヒットと判断された場合、キャッシュメモリ・システム100は、タグアドレスと一致するタグデータに対応するキャッシュデータを、外部(例えば、ピクセルシェーダ・コア50)に出力することができる。一方、キャッシュミスと判断された場合、キャッシュメモリ・システム100は、テクスチャメモリ200にキャッシュミス信号を出力し、外部から要請されたテクスチャデータ(ターゲットデータ)をテクスチャメモリ200に要請することができる。それにより、キャッシュメモリ・システム100は、テクスチャメモリ200から、新たなテクスチャデータを受信し、受信したテクスチャデータを外部に出力することができる。また、キャッシュメモリ・システム100は、当該パーティションに含まれた複数のセットのうち、セットアドレスが示すセットに含まれたキャッシュデータのうちいずれか一つを削除し、テクスチャメモリ200から受信したテクスチャデータでアップデートすることができる。
図9は、図8のオペレーションS610の一実施形態について説明するためのフローチャートである。さらに具体的に説明すれば、図9は、必要なテクスチャの個数がキャッシュメモリに含まれたバンクの個数より少ない場合、キャッシュメモリを複数のパーティションに分割する方法を示すフローチャートである。
図9を参照すれば、キャッシュメモリ・システムは、複数のテクスチャそれぞれに、1つのバンクを割り当てることができる。
例えば、ピクセルシェーディング時、3個のテクスチャ(第1テクスチャ、第2テクスチャ、第3テクスチャ)が必要であり、キャッシュメモリ120は、4ウェイ・キャッシュメモリから構成され、第1バンクないし第4バンクを含む場合、第1テクスチャに第1バンクを割り当て、第2テクスチャに第2バンクを割り当て、第3テクスチャに第3バンクを割り当てることができる。
キャッシュメモリ・システム100は、オペレーションS720において、割り当てられていないバンクを複数のテクスチャのうち少なくとも一つに追加して割り当てることができる。
例えば、キャッシュメモリ・システム100は、複数のテクスチャのうちミップマップされていないテクスチャを検出し、検出されたテクスチャに割り当てられていないバンクを追加して割り当てることができる。
また、キャッシュメモリ・システム100は、現在ピクセルシェーディングに利用されるシェーダ・プログラムと同一シェーダ・プログラムを利用した以前ピクセルシェーディングの遂行結果に基づき、テクスチャのアクセスパターンを分析することができる。キャッシュメモリ・システム100は、アクセスパターンの分析結果、コンフリクトミスが最も多く発生するテクスチャに、残りのバンクを割り当てることができる。
また、キャッシュメモリ・システム100は、ピクセルシェーディング遂行時、テクスチャデータのアクセスパターンをリアルタイムでモニタリングし、コンフリクトミスが最も多く発生するテクスチャに、残りのバンクを割り当てることができる。
キャッシュメモリ・システム100は、オペレーションS730において、1つのテクスチャに割り当てられた少なくとも1つのバンクを、1つのパーティションとして決定することができる。
図10は、図8のオペレーションS610の一実施形態について説明するためのフローチャートである。さらに具体的に説明すれば、図10は、必要なテクスチャの個数がキャッシュメモリに含まれたバンクの数より多い場合、キャッシュメモリを複数のパーティションに分割する方法を示すフローチャートである。
図10を参照すれば、キャッシュメモリ・システムは、オペレーションS810において、複数のテクスチャのうち少なくとも2個のテクスチャに、同一バンクを割り当てることができる。
キャッシュメモリ・システム100は、複数のテクスチャのうち、テクスチャ座標を共有しないテクスチャに、同一バンクを割り当てることができる。または、キャッシュメモリ・システム100は、テクスチャサイズが異なるテクスチャに、同一バンクを割り当てることができる。
キャッシュメモリ・システム100は、オペレーションS820において、それぞれのバンクを、1つのパーティションとして決定することができる。
本発明によるキャッシュメモリ・システム及びその動作方法は、前述のような実施形態の構成及び方法が限定されるように適用されるものではなく、前記実施形態は、多様な変形がなされるように、各実施形態の全部または一部が、選択的に組み合わされて構成されてもよい。
一方、本発明のキャッシュメモリ・システム及びその動作方法は、コンピュータで読み取り可能な記録媒体に、コンピュータで読み取り可能なコードとして具現化することが可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取り可能なデータが保存される全ての種類の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ROM(read only memory)、RAM(random access memory)、CD(compact disc)−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ保存装置などがあり、またインターネットを介した伝送のようなキャリアウェーブの形態で具現化されるものも含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散され、分散方式でプロセッサで読み取り可能なコードが保存されて実行される。
以上、本発明の実施形態について図示して説明したが、本発明は、前述の特定実施形態に限定されるものではなく、特許請求の範囲で請求する本発明の要旨を外れることなしに、当該発明が属する技術分野で当業者によって多様な変形実施が可能であるということは言うまでもなく、かような変形実施は、本発明の技術的思想や展望から個別的に理解されらるものではない。
本発明のキャッシュメモリ・システム及びその動作方法は、例えば、データ処理関連の技術分野に効果的に適用可能である。
10 グラフィック処理装置
50 ピクセルシェーダ・コア
60 システムバス
100 キャッシュメモリ・システム
110 パーティション構成部
120 キャッシュメモリ
123,320 セット
125 バンク
130 コントローラ
135 タグ比較部
200 テクスチャメモリ
320 セット
410,510 第1テクスチャ
420,520 第2テクスチャ
430,530 第3テクスチャ

Claims (28)

  1. 少なくとも1つのバンクを含むキャッシュメモリと、
    前記バンクを、レンダリングに必要な複数のテクスチャのうち少なくとも1つのテクスチャに割り当てることにより、前記キャッシュメモリを複数のパーティションに分割するパーティション構成部と、
    前記レンダリングを行う装置から要請されるテクスチャデータのパーティションIDを受信し、前記複数のパーティションのうち、前記パーティションIDに対応するパーティションに、前記要請されたテクスチャデータが保存されているか否かということを判断し、前記判断結果により、前記要請されたテクスチャデータを、前記装置に出力するコントローラと、
    を含む、キャッシュメモリ・システム。
  2. 前記キャッシュメモリは、
    前記複数のテクスチャのうち、第1テクスチャに含まれる一部テクスチャデータを、前記第1テクスチャに対応するパーティションに保存し、第2テクスチャに含まれる一部テクスチャデータを、前記第2テクスチャに対応するパーティションに保存する、
    請求項1に記載のキャッシュメモリ・システム。
  3. 前記コントローラは、
    前記要請されるテクスチャデータのセットアドレス及びタグアドレスを受信し、前記パーティションIDに対応するパーティションに含まれる少なくとも1つのセットのうち、前記セットアドレスが示すセットに含まれるタグデータを、前記タグアドレスと比較し、前記要請されたテクスチャデータが保存されているか否かということを判断する、
    請求項1または2に記載のキャッシュメモリ・システム。
  4. 前記コントローラは、
    前記比較の結果、前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、キャッシュヒットと判断し、前記一致するタグデータに対応するテクスチャデータを、前記装置に出力する、
    請求項3に記載のキャッシュメモリ・システム。
  5. 前記コントローラは、
    前記比較の結果、前記タグデータが前記タグアドレスと一致しない場合、キャッシュミスと判断し、テクスチャメモリの前記タグアドレスが示す領域から、前記要請されたテクスチャデータを受信する、
    請求項3または4に記載のキャッシュメモリ・システム。
  6. 前記パーティション構成部は、
    前記テクスチャの個数と、前記バンクの個数とを比較し、前記比較の結果に基づき、前記バンクを、前記テクスチャのうち少なくとも一つに割り当てる、
    請求項1乃至5いずれか一項に記載のキャッシュメモリ・システム。
  7. 前記パーティション構成部は、
    前記比較の結果、前記テクスチャの個数が、前記バンクの個数より少ない場合、前記テクスチャそれぞれに1つのバンクを割り当て、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当て、前記テクスチャそれぞれに割り当てられた少なくとも1つのバンクを、1つのパーティションとして決定する、
    請求項6に記載のキャッシュメモリ・システム。
  8. 前記パーティション構成部は、
    前記テクスチャのうちミップマップされていないテクスチャを検出し、前記検出されたテクスチャに、前記割り当てられていないバンクを追加して割り当てる、
    請求項6または7に記載のキャッシュメモリ・システム。
  9. 前記パーティション構成部は、
    前記レンダリングに利用されるシェーダ・プログラムと同一シェーダ・プログラムを利用した以前レンダリング結果に基づき、前記テクスチャのアクセスパターンを分析し、前記分析結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる、
    請求項6乃至8いずれか一項に記載のキャッシュメモリ・システム。
  10. 前記パーティション構成部は、
    前記レンダリングの最中、前記テクスチャのアクセスパターンをリアルタイムでモニタリングし、前記モニタリング結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに動的に追加して割り当てる、
    請求項6乃至9いずれか一項に記載のキャッシュメモリ・システム。
  11. 前記パーティション構成部は、
    前記比較の結果、前記テクスチャの個数が、前記バンクの個数より多い場合、前記テクスチャのうち、第1テクスチャ及び第2テクスチャに同一バンクを割り当て、前記同一バンクを、1つのパーティションとして決定する、
    請求項6乃至10いずれか一項に記載のキャッシュメモリ・システム。
  12. 前記パーティション構成部は、
    前記テクスチャのうち、テクスチャ座標を共有しない前記第1テクスチャ及び第2テクスチャを検出する、
    ことを特徴とする請求項11に記載のキャッシュメモリ・システム。
  13. 前記パーティション構成部は、
    前記テクスチャのうち、テクスチャサイズが互いに異なる前記第1テクスチャ及び第2テクスチャを検出する
    請求項11または12に記載のキャッシュメモリ・システム。
  14. 前記レンダリングは、ピクセルシェーディングを含む、
    請求項1乃至13いずれか一項に記載のキャッシュメモリ・システム。
  15. キャッシュメモリに含まれる少なくとも1つのバンクを、レンダリングに必要な複数のテクスチャのうち少なくとも1つのテクスチャに割り当てることにより、前記キャッシュメモリを複数のパーティションに分割する段階と、
    前記レンダリングを行う装置から要請されるテクスチャデータのパーティションIDを受信する段階と、
    前記複数のパーティションのうち、前記パーティションIDに対応するパーティションに、前記要請されたテクスチャデータが保存されているか否かということを判断する段階と、
    前記判断結果により、前記要請されたテクスチャデータを、前記装置に出力する段階と、
    を含む、キャッシュメモリ・システムの動作方法。
  16. 前記方法は、
    前記要請されるテクスチャデータのセットアドレス及びタグアドレスを受信する段階をさらに含み、
    前記判断する段階は、
    前記パーティションIDに対応するパーティションに含まれる少なくとも1つのセットのうち、前記セットアドレスが示すセットに含まれるタグデータを、前記タグアドレスと比較し、前記要請されたテクスチャデータが保存されているか否かということを判断する段階である、
    請求項15に記載のキャッシュメモリ・システムの動作方法。
  17. 前記判断結果により、前記要請されたテクスチャデータを前記装置に出力する段階は、
    前記比較の結果、前記タグデータのうちいずれか一つと、前記タグアドレスが一致する場合、キャッシュヒットと判断し、前記一致するタグデータに対応するテクスチャデータを、前記装置に出力する段階である、
    請求項16に記載のキャッシュメモリ・システムの動作方法。
  18. 前記判断結果により、前記要請されたテクスチャデータを前記装置に出力する段階は、
    前記比較の結果、前記タグデータが前記タグアドレスと一致しない場合、キャッシュミスと判断し、テクスチャメモリの前記タグアドレスが示す領域から、前記要請されたデータを受信する段階、をさらに含む、
    請求項16または17に記載のキャッシュメモリ・システムの動作方法。
  19. 前記キャッシュメモリを複数のパーティションに分割する段階は、
    前記テクスチャの個数と、前記バンクの個数とを比較する段階をさらに含み、
    前記比較の結果に基づき、前記バンクを前記テクスチャのうち少なくとも一つに割り当て、前記キャッシュメモリを複数のパーティションに分割する、
    請求項15乃至18いずれか一項に記載のキャッシュメモリ・システムの動作方法。
  20. 前記比較の結果、前記テクスチャの個数が、前記バンクの個数より少ない場合、
    前記キャッシュメモリを複数のパーティションに分割する段階は、
    前記テクスチャそれぞれに1つのバンクを割り当てる段階と、
    前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階と、
    前記テクスチャそれぞれに割り当てられた少なくとも1つのバンクを、1つのパーティションとして決定する段階と、を含む、
    請求項19に記載のキャッシュメモリ・システムの動作方法。
  21. 前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階は、
    前記テクスチャのうちミップマップされていないテクスチャを検出する段階と、
    前記検出されたテクスチャに、前記割り当てられていないバンクを追加して割り当てる段階と、を含む、
    請求項19または20に記載のキャッシュメモリ・システムの動作方法。
  22. 前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階は、
    前記レンダリングに利用されるシェーダ・プログラムと同一シェーダ・プログラムを利用した以前レンダリング結果に基づき、前記テクスチャのアクセスパターンを分析する段階と、
    前記分析結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階と、を含む、
    請求項19乃至21いずれか一項に記載のキャッシュメモリ・システムの動作方法。
  23. 前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに追加して割り当てる段階は、
    前記レンダリングの最中、前記テクスチャのアクセスパターンをリアルタイムでモニタリングする段階と、
    前記モニタリング結果に基づき、前記割り当てられていないバンクを、前記テクスチャのうちいずれか一つに動的に追加して割り当てる段階と、を含む、
    請求項19乃至22いずれか一項に記載のキャッシュメモリ・システムの動作方法。
  24. 前記比較の結果、前記テクスチャの個数が、前記バンクの個数より多い場合、
    前記キャッシュメモリを複数のパーティションに分割する段階は、
    前記複数のテクスチャのうち、第1テクスチャ及び第2テクスチャに同一バンクを割り当てる段階と、
    前記同一バンクを、1つのパーティションとして決定する段階と、を含む、
    請求項19乃至23いずれか一項に記載のキャッシュメモリ・システムの動作方法。
  25. 前記キャッシュメモリを複数のパーティションに分割する段階は、
    前記テクスチャのうち、テクスチャ座標を共有しない前記第1テクスチャ及び第2テクスチャを検出する段階をさらに含む、
    請求項24に記載のキャッシュメモリ・システムの動作方法。
  26. 前記キャッシュメモリを複数のパーティションに分割する段階は、
    前記テクスチャのうちテクスチャサイズが互いに異なる前記第1テクスチャ及び第2テクスチャを検出する段階をさらに含む、
    請求項24または25に記載のキャッシュメモリ・システムの動作方法。
  27. 前記レンダリングは、ピクセルシェーディングを含む、
    請求項15乃至26いずれか一項に記載のキャッシュメモリ・システムの動作方法。
  28. 請求項15乃至27いずれか一項に記載の方法をコンピュータで実行させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
JP2015150285A 2014-10-22 2015-07-30 キャッシュメモリ・システム及びその動作方法 Pending JP2016085729A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140143600A KR102366808B1 (ko) 2014-10-22 2014-10-22 캐시 메모리 시스템 및 그 동작방법
KR10-2014-0143600 2014-10-22

Publications (1)

Publication Number Publication Date
JP2016085729A true JP2016085729A (ja) 2016-05-19

Family

ID=53762051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015150285A Pending JP2016085729A (ja) 2014-10-22 2015-07-30 キャッシュメモリ・システム及びその動作方法

Country Status (5)

Country Link
US (1) US9773476B2 (ja)
EP (1) EP3012741B1 (ja)
JP (1) JP2016085729A (ja)
KR (1) KR102366808B1 (ja)
CN (1) CN105550126B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055487B (zh) * 2016-05-31 2019-03-22 上海爱数信息技术股份有限公司 一种分区着色实现存储系统加速的方法及系统
CN110223214B (zh) * 2019-06-10 2023-04-11 西安芯瞳半导体技术有限公司 一种降低纹理单元访问量的方法、装置及计算机存储介质
US20220300421A1 (en) * 2020-08-19 2022-09-22 Google Llc Memory Sharing
US11403023B2 (en) * 2020-10-20 2022-08-02 Micron Technology, Inc. Method of organizing a programmable atomic unit instruction memory
US11436187B2 (en) 2020-10-20 2022-09-06 Micron Technology, Inc. Method of notifying a process or programmable atomic operation traps
US11693690B2 (en) 2020-10-20 2023-07-04 Micron Technology, Inc. Method of completing a programmable atomic transaction by ensuring memory locks are cleared
US11740929B2 (en) 2020-10-20 2023-08-29 Micron Technology, Inc. Registering a custom atomic operation with the operating system
CN116028388B (zh) * 2023-01-17 2023-12-12 摩尔线程智能科技(北京)有限责任公司 高速缓存方法、装置、电子设备、存储介质和程序产品
CN116467227B (zh) * 2023-06-19 2023-08-25 深流微智能科技(深圳)有限公司 Tmu系统和tmu系统的运算优化方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6483516B1 (en) 1998-10-09 2002-11-19 National Semiconductor Corporation Hierarchical texture cache
US7050063B1 (en) * 1999-02-11 2006-05-23 Intel Corporation 3-D rendering texture caching scheme
US6493800B1 (en) 1999-03-31 2002-12-10 International Business Machines Corporation Method and system for dynamically partitioning a shared cache
US6750872B1 (en) 1999-09-17 2004-06-15 S3 Graphics, Co., Ltd. Dynamic allocation of texture cache memory
US6636225B2 (en) * 2000-11-20 2003-10-21 Hewlett-Packard Development Company, L.P. Managing texture mapping data in a computer graphics system
US6684297B2 (en) 2001-04-11 2004-01-27 Sun Microsystems, Inc. Reverse directory for facilitating accesses involving a lower-level cache
KR100427523B1 (ko) 2002-02-14 2004-04-28 한국과학기술원 3차원 컴퓨터 그래픽 시스템의 텍스쳐 메모리 억세스 장치
US7336275B2 (en) * 2002-09-06 2008-02-26 Ati Technologies Inc. Pseudo random number generator and method
US7069387B2 (en) * 2003-03-31 2006-06-27 Sun Microsystems, Inc. Optimized cache structure for multi-texturing
JP4451717B2 (ja) * 2004-05-31 2010-04-14 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
US8593474B2 (en) * 2005-12-30 2013-11-26 Intel Corporation Method and system for symmetric allocation for a shared L2 mapping cache
US8527713B2 (en) 2006-01-31 2013-09-03 Qualcomm Incorporated Cache locking without interference from normal allocations
US7898551B2 (en) * 2006-06-20 2011-03-01 Via Technologies, Inc. Systems and methods for performing a bank swizzle operation to reduce bank collisions
US20100079454A1 (en) * 2008-09-29 2010-04-01 Legakis Justin S Single Pass Tessellation
KR101862785B1 (ko) 2011-10-17 2018-07-06 삼성전자주식회사 타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법
US9947084B2 (en) * 2013-03-08 2018-04-17 Nvidia Corporation Multiresolution consistent rasterization
US10032246B2 (en) * 2013-10-09 2018-07-24 Nvidia Corporation Approach to caching decoded texture data with variable dimensions

Also Published As

Publication number Publication date
EP3012741A1 (en) 2016-04-27
KR20160047315A (ko) 2016-05-02
EP3012741B1 (en) 2018-03-07
CN105550126B (zh) 2020-11-06
US9773476B2 (en) 2017-09-26
CN105550126A (zh) 2016-05-04
KR102366808B1 (ko) 2022-02-23
US20160118024A1 (en) 2016-04-28

Similar Documents

Publication Publication Date Title
JP2016085729A (ja) キャッシュメモリ・システム及びその動作方法
JP4861403B2 (ja) タイル化されたプリフェッチ及びキャッシングされたデプスバッファ
US10733794B2 (en) Adaptive shading in a graphics processing pipeline
US9336002B2 (en) Data structures for efficient tiled rendering
US6950107B1 (en) System and method for reserving and managing memory spaces in a memory resource
US7533237B1 (en) Off-chip memory allocation for a unified shader
US7038685B1 (en) Programmable graphics processor for multithreaded execution of programs
US10769837B2 (en) Apparatus and method for performing tile-based rendering using prefetched graphics data
CN103370728B (zh) 用于图形处理的数据存储地址指派的方法和设备
US20120320069A1 (en) Method and apparatus for tile based rendering using tile-to-tile locality
US7483035B2 (en) Texture cache control using a data dependent slot selection scheme
US8130223B1 (en) System and method for structuring an A-buffer to support multi-sample anti-aliasing
US7268787B2 (en) Dynamic allocation of texture cache memory
JP5808407B2 (ja) アンチエイリアシングされたサンプルの分割ストレージ
US20130141448A1 (en) Graphics Command Generation Device and Graphics Command Generation Method
US9256536B2 (en) Method and apparatus for providing shared caches
KR20170056950A (ko) 레지스터 관리 방법 및 장치
US8553041B1 (en) System and method for structuring an A-buffer to support multi-sample anti-aliasing
US9881392B2 (en) Mipmap generation method and apparatus
US10019349B2 (en) Cache memory and method of managing the same
US10706607B1 (en) Graphics texture mapping
JP6801001B2 (ja) 画像処理装置、画像処理方法およびプログラム