JP7106775B2 - グラフィックス表面アドレス指定 - Google Patents

グラフィックス表面アドレス指定 Download PDF

Info

Publication number
JP7106775B2
JP7106775B2 JP2022033398A JP2022033398A JP7106775B2 JP 7106775 B2 JP7106775 B2 JP 7106775B2 JP 2022033398 A JP2022033398 A JP 2022033398A JP 2022033398 A JP2022033398 A JP 2022033398A JP 7106775 B2 JP7106775 B2 JP 7106775B2
Authority
JP
Japan
Prior art keywords
space
graphics
translation
virtual space
address
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.)
Active
Application number
JP2022033398A
Other languages
English (en)
Other versions
JP2022095618A (ja
Inventor
ピー ドロリエ アンソニー
ジェー スウィフト マイケル
バリエント ミカル
エス ハルトーグ ロバート
ジェー バーグランド タイソン
アヴカログラリ グーカン
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2022095618A publication Critical patent/JP2022095618A/ja
Application granted granted Critical
Publication of JP7106775B2 publication Critical patent/JP7106775B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • 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/65Details of virtual memory and virtual address translation
    • G06F2212/654Look-ahead translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/681Multi-level TLB, e.g. microTLB and main TLB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Generation (AREA)

Description

本開示は、概して、メモリの割り当てに関し、より具体的には、グラフィックス表面に対する多層アドレス変換に関する。
グラフィックスプロセッサは、レンダリングされているシーンの画素属性を決定するために、テクスチャなどの表面を使用することが多い。表面は多くの場合、(例えば、高解像度画像のために)大量のデータを含むので、特定のシナリオにおいて表面に対してメモリ空間を割り当てることは、他の処理に悪影響を及ぼす場合がある。
いくつかの実施形態による、表面空間内のアドレスを処理するように構成された例示的な多層変換回路を示すブロック図である。 いくつかの実施形態による、例示的な表面、仮想及び物理空間を示す図である。 いくつかの実施形態による、例示的な表面空間変換テーブルを示す図である。 いくつかの実施形態による、変換回路のより詳細な例を示すブロック図である。 いくつかの実施形態による、表面空間を用いて表面にアクセスするための例示的な方法を示すフロー図である。 いくつかの実施形態による、1つ以上のグラフィックスプロセッサを含み得る例示的なコンピューティングデバイスを示すブロック図である。 いくつかの実施形態による、回路設計情報を記憶する例示的なコンピュータ可読媒体を示すブロック図である。
本開示が特定の一実施態様を指すことを意図しておらず、むしろ、添付の請求項を含む、本開示の趣旨内に入る幅広い実施形態を指すことを意図していることを示すために、本明細書は様々な実施形態への言及を含む。特定の特徴、構造、又は特性は、本開示と一貫性を有するいずれかの適切な方式で組み合わされてもよい。
本開示内で、(「ユニット」、「回路」、他の構成要素などと様々に呼ばれることがある)様々なエンティティは、1つ以上のタスク又は動作を実行するように「構成されている(configured)」ものとして記述又は請求されることがある。[1つ以上のタスクを実施する]ように構成されている[エンティティ]というこの表現は、本明細書では構造(すなわち、電子回路など、物理的なもの)を指すために使用される。より具体的には、この表現は、この構造が動作中に1つ以上のタスクを実施するように配置されたことを示すために使用される。構造は、その構造が現在動作していない場合でも、何らかのタスクを実行する「ように構成されている」と述べられることがある。「アドレスを変換するように構成された変換回路」は、例えば、件の回路が現在使用されていない(例えば、その回路に電源が接続されていない)場合でも、動作中にこの機能を実行する回路を網羅することを意図している。このように、何らかのタスクを実施するように「構成されている」ものとして記述又は具陳されるエンティティは、そのタスクを実装するように実行可能なデバイス、回路、プログラム命令を記憶したメモリなど、物理的なものを指す。この句は、本明細書では無形のものを指すために使用されない。
「~ように構成されている」という用語は、「~ように構成可能な」を意味することを意図していない。例えば、プログラムされていないFPGAは、何らかの特定の機能を実行する「ように構成可能」であり得るが、その機能を実行する「ように構成されている」とは見なされないであろう。適切なプログラミングの後に、FPGAは、その時にはその機能を実行するように構成されている。
添付の請求項において、ある構造が1つ以上のタスクを実行する「ように構成されている」と説明することは、その請求項要素について米国特許法第112条(f)を援用しないことを明示的に意図している。したがって、出願された本出願中の請求項のいずれも、ミーンズプラスファンクション要素を有するものとして解釈されることを意図していない。出願人が審査手続き中に112条(f)を援用することを望む場合、それは、[機能を実行する]「ための手段」という構成体を使用して請求項要素を説明することになる。
本明細書で使用する「~に基づいて」という用語は、決定に影響を及ぼす1つ以上の要因を記述するために使用される。この用語は、追加の要因が決定に影響を及ぼすことがある可能性を除外しない。すなわち、決定は、指定された要因のみに基づくか、又は、指定された要因並びに他の指定されていない要因に基づき得る。「Bに基づいてAを決定する」という語句を検討する。この語句により、Bは、Aを決定するために使用される要因、又はAの決定に影響を及ぼす要因であることが特定される。この語句は、Aの決定が、Cなど、何らかの他の要因にも基づくこともあることを除外しない。この句は、AがBのみに基づいて決定される実施形態をも網羅することを意図している。本明細書で使用する「~に基づいて」という句は、「~に少なくとも部分的に基づいて」という句と同義である。
更に、本明細書で用いる場合、用語「第1」、「第2」、「第3」などには必ずしも要素間の順序付け(例えば、時間の)の意味が含まれているわけではない。例えば、「第1」のグラフィックス動作及び「第2」のグラフィックス動作への言及には、これらの動作の間の時間関係を制約する言い回しがない限り、グラフィックス動作の順序付けの意味は含まれない。簡単に言えば、「第1」、「第2」などの言及は説明及び添付の請求項における言及を簡単にするための標示として用いる。
テクスチャなどのグラフィックス表面は、レンダリングされているシーンの画素属性を決定するために使用されることが多い。例えば、グラフィックスプロセッサは、シーン座標をテクスチャ座標にマッピングして、様々な技術又はフィルタを使用してそれらのテクスチャ座標の近くのテクセルをサンプリングして画素属性を決定してもよい。いくつかのテクスチャは、例えば、高解像度テクスチャのために相当量のデータを含んでもよい。開示される実施形態では、システムは、表面全体にメモリ空間を割り当てることなくグラフィックス表面を使用するように構成される。表面は、例えば、当業者によく理解されるように、複数のミップマップが生成されてテクスチャに対する詳細の異なるレベルを表すときに、3つの(又はより多くの)次元を有することができることに留意されたい。
仮想空間に直接マッピングされるのではなく、いくつかの実施形態では、スパース割り当てを有する表面は、それら自体の表面空間を有し得る。表面空間は、所与の表面に固有であってもよく、異なる表面のための複数の表面空間が仮想空間にマッピングされてもよい。いくつかの実施形態では、表面空間は、スパース表面ごとの変換テーブルを使用して、スパースページ細粒内の仮想空間にマッピングされる。いくつかの実施形態では、表面空間のページは、仮想空間内の連続するページにマッピングされ、これは、ベースアドレス及びオフセットを使用する変換を可能にし得る。表面空間内のアドレスでのアクセスは、複数の変換、例えば、仮想空間への第1の変換、及び物理空間への第2の変換をもたらし得る(この場合、第2の変換は仮想空間内のアドレスで開始する他のアクセスと類似であり得る)。例示的な表面、仮想及び物理空間は、図2を参照して以下で詳細に説明される。様々な実施形態では、表面をスパースに割り当てるときに、表面空間の特定のページが割り当てられなくてもよく、それらのページへのアクセスは検出されて適切に取り扱われることができることに留意されたい。これらの技術は、様々な実施形態において、表面全体にメモリ空間を割り当てることなく、大きな表面を使用することを可能にし得る。いくつかの実施形態では、スパース表面のマッピングされていないページへのアクセスは、第1のセットの変換回路によって検出されてもよく、共有データキャッシュに対するこれらのアクセスの帯域幅又は割り当ての影響を回避することができる。
図1は、いくつかの実施形態による、表面空間内のアドレスを処理するように構成された例示的な多層変換回路を示すブロック図である。図示した実施形態では、デバイスは、処理回路110、第1の変換回路120、第2の変換回路130及びメモリ140を含む。図示した実施形態では、第1の変換回路120は表面空間のアドレスと仮想空間のアドレスの間で変換するように構成されているが、第2の変換回路130は仮想空間のアドレスと物理空間のアドレスの間で変換するように構成されている。
いくつかの実施形態では、処理回路110は、メモリ140内のスパースに割り当てられた表面にアクセスするように構成されている。メモリ140は、キャッシュ/メモリ階層の一部であり得ることに留意されたい。当該技術分野において十分に理解されるように、デバイスは、メモリ140によって提供される実際の物理空間よりも大きい仮想空間を実装することができる。処理回路110の非限定的な例としては、テクスチャ処理ユニット(TPU)又は画素バックエンド(PBE)が挙げられる。いくつかの実施形態では、スパースアドレス指定は、デバイスに含まれる処理回路の一部のみに利用可能であってもよい(例えば、この機能はTPU及びPBEは利用可能であってもよいが、プログラム可能なシェーダパイプラインなどの他の回路は利用できない)。図示した実施形態では、処理回路110は、スパースに割り当てられた表面にアクセスするときに、表面空間のためのアドレス情報を第1の変換回路120に提供するように構成されている。このアドレス情報は、例えば、表面空間のための変換テーブルのアドレスを含んでもよい。
図示の実施形態における第1の変換回路120は、表面空間のためのアドレス情報を受信し、仮想空間内の対応するアドレス情報を処理回路110に提供するように構成されている。いくつかの実施形態では、第1の変換回路120は、この変換をメモリ140に記憶された表面空間変換テーブル165に基づいて提供するように構成され、これは仮想空間内のアドレスを使用して記憶され得るものであり、したがって、アクセスされる前に物理空間内のアドレスへの変換を必要とする。いくつかの実施形態では、この変換テーブル165は、実行されているグラフィックスプログラムによってポピュレートされる。いくつかの実施形態では、第1の変換回路120は、図3を参照して以下で更に詳細に論じられるように、変換テーブルデータをキャッシュに登録するように構成されている。図示した実施形態では、第1の変換回路120は、(例えば、仮想空間内の表面空間変換テーブル165においてアクセスされているアドレスに基づいて)第2の変換回路130を介して変換情報に関する要求を行い、かつ応答を受信するように構成されている。表面空間内のページがマッピングされていない場合、第1の変換回路120は、アドレス情報を提供する代わりに、この状況を処理回路110に示すことができることに留意されたい。
図示した実施形態では、処理回路110は、第1の変換回路120から仮想空間内のアドレス情報を受信し、アドレス情報に基づいて仮想空間内のアドレスを第2の変換回路130に提供する。例えば、変換回路120からの仮想空間内のアドレス情報が、表面空間内のスパースページのための仮想空間内のアドレスである場合、処理回路110は、表面空間内の計算されたオフセット及びスパースページの仮想アドレスに基づいて仮想空間内のアクセスアドレスを生成することができる。他の実施形態では、第1の変換回路120によって生成されたアドレス情報は、第2の変換回路130に提供される仮想空間内のアドレスを具体的に含むことができる(例えば、処理回路110が計算されたオフセットを変換回路120に送信する実施形態では)。
図示した実施形態において、第2の変換回路130は、仮想空間内のアドレスを受信し、それらを物理アドレスに、例えば、グラフィックス表面部分155(メモリ140に記憶されている)内でアクセスされるデータを記憶するために使用される物理アドレスに、変換するように構成されている。いくつかの実施形態では、第2の変換回路130は、メモリ管理ユニット(MMU)に含まれる。第2の変換回路130は、様々な適切な変換技術のいずれかを使用して仮想空間内のアドレスを物理空間内のアドレスに変換することができる。いくつかの実施形態では、第2の変換回路130は、従来のページング技術を実装することができ、それにより既存のMMU設計を有する第1の変換回路120を使用することを可能にし得る。第2の変換回路130はページテーブルをメモリ140内に記憶することができ、これは最初に物理空間内のアドレスを使用してアドレス指定することができる(最初に仮想空間内のアドレスを使用してアドレス指定される表面空間変換テーブル165とは異なる)。図示した実施形態では、第2の変換回路130は、物理アドレスをメモリ140に提供し、物理アドレスを使用してデータを読み出すか又は書き込む(読み出しの場合、第2の変換回路130は、図示された例では、読み出しデータを処理回路110に提供し、書き込みに対する完了信号を提供することができる)。
いくつかの実施形態では、処理回路110はまた、仮想空間内の従来の割り当てによる表面にアクセスするように構成されている。表面は、それら自体の表面空間を割り当てられなくてもよく、むしろ仮想空間内に直接割り当てられる。例えば、制御情報は、表面がスパースに割り当てられているか否かを示すことができる。スパースに割り当てられていない表面にアクセスするとき、処理回路110は、第1の変換回路120を使用せずに、仮想空間内のアドレスを直接第2の変換回路130に提供してもよい。
グラフィックスプログラムが表面をスパースに割り当てる(例えば、表面空間のページの一部のみにマッピングを提供する)ことができるならば、処理回路110から第1の変換回路120へのアドレス情報は、表面空間変換テーブル165によってマッピングされないページに対応することができる。このシナリオでは、第1の変換回路120は、マッピングの欠如を示す信号を処理回路110に提供することができる。他の回路又は実行されるグラフィックスプログラムは、この指示に基づいて様々なアクションをとることができる。例えば、処理回路110がテクスチャ処理ユニットである場合、それは、マッピングされていないテクセルに対して一定の色でフィルタリングし、グラフィックスプログラムを実行しているプログラム可能なシェーダに否定応答(NACK)を送信することができる。次いで、シェーダは、要求されたページをマッピングすること(例えば、以下で詳細に論じるように、ページが頻繁にアクセスされていることを活動カウントが示す場合)、表面の低解像度部分(例えば、別のミップマップレベル)にアクセスすることなど、様々なアクションをとることができる。いくつかの実施形態では、画素バックエンドは、マッピングされていないアドレスへの書き込みをドロップすることができる。
本明細書に開示される様々な実施形態は、グラフィックス表面の割り当てに関するものであるが、開示された技術は、グラフィックスに関連するか否かによらず、様々な他のデータ構造に使用されてもよく、グラフィックス表面は、例示的な目的で含まれているが、本開示の範囲を限定することを意図するものではないことに留意されたい。更に、開示された技術は、例えば、グラフィックスプロセッサに加えて、又はグラフィックスプロセッサの代わりに、中央処理ユニットなどの他の種類のプロセッサによって実施されてもよい。
図2Aは、いくつかの実施形態による、例示的なアドレス空間を示す図である。図示した実施形態では、システムは、仮想空間210、複数の表面空間220A~220N、及び物理空間230を実装している。いくつかの実施形態では、仮想空間210内の表面空間220のマッピングは、仮想空間の利点を提供することができ(例えば、物理空間は、仮想から物理へのマッピング無しにはアクセスすることができない)、一方ではより信頼されないスパース表面の割り当てを可能にする。システムは、仮想空間210内のアドレスを使用して、各表面空間220のための変換テーブルを記憶してもよく(そして、これらのアドレスは実際の記憶のために物理空間230内のアドレスに変換され)、システムは、物理空間230内のアドレスを使用して仮想空間210のためのページテーブルを記憶してもよいことに留意されたい。
図2Bは、いくつかの実施形態による、例示的な表面空間変換テーブルを示す図である。図示した実施形態では、テーブル165は、複数のエントリ250A~250Nと、対応する活動カウントフィールド260A~260Nとを含む。いくつかの実施形態では、表面空間220の各ページについてエントリ250が存在する。いくつかの実施形態では、各エントリ250は、表面空間ページと仮想空間ページとの間のマッピング、又は表面空間ページのためのマッピングがないという指示を提供する。表面空間及び仮想空間に対して異なるページサイズを有する実施形態では、エントリは、複数の表面空間ページと1つの仮想空間ページとの間のマッピングを示してもよく、逆もまた同様であることに留意されたい。いくつかの実施形態では、各エントリ250は、ページがマッピングされているかどうかを示すフィールドを含む。変換回路は、表面空間220内の要求されたアドレスに基づいて(例えば、表面空間のためのベースアドレスフィールド及び空間内の決定されたオフセットに基づいて)、テーブル165の適切なエントリにアクセスすることができる。
いくつかの実施形態では、活動カウントフィールド260は、表面空間の対応するページにアクセスする試みの回数を示す活動カウントを記憶するように構成されている。いくつかの実施形態では、グラフィックスプログラムは、これらのカウントを使用して、表面空間のどのページをマッピングするか又はアンマップするかについて決定を行うことができる。活動カウントは、ページがマッピングされていない場合でも、ページへのアクセス要求に基づいて更新されてもよいことに留意されたい。更に、活動カウントは、様々な粒度でのアクセスに基づいて維持することができる。例えば、対応する活動カウントをインクリメントするための閾値バイト数のアクセスは保証され得るが、より小さいアクセスも、例えば、特定の実装におけるキャッシング挙動に基づいてインクリメントを生じさせ得る。
いくつかの実施形態では、変換テーブル165に記憶されたデータは、例えば、テーブルのベースアドレスの後のマッピングの第1の部分のアドレス、続いて対応する活動カウントのアドレス、続いてマッピングの別の部分のアドレスなどにより、インターリーブされる。上述したように、テーブル165のベースアドレスは、仮想空間210内のアドレスであってもよい。
図3は、いくつかの実施形態による、変換回路のより詳細な例を示すブロック図である。図1と同じ番号を有する要素は、図1を参照して上述したように構成されてもよいことに留意されたい。図示された例では、デバイスは、処理回路110、他の処理回路322、スパースレベル1(L1)キャッシュ320、スパースレベル2(L2)キャッシュ325、L2データキャッシュ380、第2の変換回路130及びメモリ140を含む。
他の処理回路322は、スパース変換回路が、例えば、テクスチャ処理ユニット、画素バックエンドなどの複数の処理回路によって共有され得ることを説明するために示されている。様々な実施形態において、スパース変換回路は、様々な適切な数のクライアント回路のいずれかのアドレスを変換するように構成されてもよい。
図示した実施形態では、表面空間内のアドレスから仮想空間に変換するように構成された変換回路は、複数のキャッシュレベル320及び325を含む。いくつかの実施形態では、スパースL1キャッシュ320及びスパースL2キャッシュ325の両方は、表面空間変換テーブル365からのエントリを記憶するように構成されている。スパースL2キャッシュ325は、スパースL1キャッシュ320よりも多くの変換エントリをキャッシュに登録するように構成された、より大きいキャッシュであってもよい。
いくつかの実施形態では、表面空間内のアドレスは、ページベースアドレス、オフセット、及びページサイズを含む。いくつかの実施形態では、処理回路110は、表面空間内のページアドレスをスパースL1キャッシュ320に送信して、ページがマッピングされているかどうかを判定する。他の実施形態では、処理回路110は、アクセスされているページのための変換テーブルエントリを決定し、仮想空間内の変換テーブルエントリのアドレスをスパースL1キャッシュ320に送信する。いくつかの実施形態では、L1キャッシュは、ページテーブルエントリ250に基づいて仮想空間内のアドレスを決定するように構成された制御回路を含む。いくつかの実施形態では、これは、対応するページテーブルエントリ250の仮想空間アドレスを最初に決定することと、そのエントリがキャッシュされているかどうかを(例えば、仮想空間アドレスの一部をタグとして使用して)判定することと、エントリがキャッシュされている場合にページテーブルエントリ250の内容に基づいて仮想空間内のスパースページのアドレスを決定することと、を含む。ページテーブルエントリ250がスパースL1キャッシュ320にキャッシュされていない場合、制御回路は、その要求をスパースL2キャッシュ325に送信することができ、スパースL2キャッシュ325は、ヒットがある場合にはエントリを返すことができ、又は、ミスがある場合には表面空間変換テーブル365にアクセスしてページテーブルエントリを読み出すことを試みることができる。図示した実施形態では、マッピングが存在する場合、キャッシュ320は仮想空間内のページアドレスを返し、それを処理回路110は使用して、(例えば、計算されたオフセット及び受信したアドレスに基づいて)仮想空間内のアドレスを生成することができる。他の実施形態では、L1キャッシュ320は、例えば、処理回路110による要求に対する特定のアドレスを含む他の粒度で、アドレス情報を送受信することができる。
いくつかの実施形態では、スパースL2キャッシュ325へのアクセスは、例えば、そのサイズ及びプリフェッチ技術に起因して、殆どミスしない。例えば、システムは、対応するアドレスが要求される前に、表面の2D範囲内の近くのページテーブルエントリ250をスパースL2キャッシュ325にプリフェッチしてもよい。したがって、変換回路は、表面空間内のページへの最初のアクセスに対してさえ、メモリ140内の変換テーブルにアクセスすることなく、仮想空間内のアドレスを生成することができる。いくつかの実施形態では、このことは、例えば、表面の2D範囲がアクセスされる1回目だけしかミスしない状態で、短い待ち時間を有するスパース変換を好都合に可能にし得る。
図示した実施形態では、システムは、仮想空間内のアドレスに基づいて動作するL2データキャッシュ380を含む。L2データキャッシュ380は、複数のブロック、例えば、プログラム可能なシェーダ、テクスチャ処理ユニットなどによって共有されるキャッシュであってもよい。スパースL2キャッシュ325は、第2の変換回路130を介して、又は図示の例に示されるように、L2データキャッシュ380を介して、表面空間変換テーブル365にアクセスすることができる。一般的に言えば、側帯域スパース変換回路(例えば、キャッシュ320及び325)を使用して面空間内のページをマッピングすることにより、他の動作のためにL2データキャッシュ380と干渉するのを回避することができる。
図示した実施形態では、スパースL1キャッシュ320内の制御回路はまた、キャッシュされた変換エントリについてアクティビティカウンタ3I0を維持するように構成されている。活動カウンタは、様々な適切なデータ粒度のいずれかで維持されてもよい。いくつかの実施形態では、表面空間内の各要求に対して、スパースL1キャッシュ320は、1つ以上の対応する活動カウンタをインクリメントする。システムがスパースL1キャッシュ320からエントリを削除する場合、システムは、対応する活動カウンタをスパースL2キャッシュ325又は表面空間変換テーブル365内に記憶してもよい。本明細書で論じられる様々なキャッシュは、異なる関連性を使用すること、ライトバックまたはライトスルー技術を使用すること、異なる置換ポリシーを使用することなどを含む、様々なキャッシュ実装形態を使用してもよいことに留意されたい。
図示した実施形態では、メモリ140はページテーブル385も記憶し、それは、物理空間内でアドレス指定され、第2の変換回路130によって使用されて仮想空間内のアドレスを物理空間内のアドレスに変換することができる。
例示的な方法
図4は、いくつかの実施形態による、表面空間を用いて表面にアクセスするための例示的な方法を示すフロー図である。図4に示す方法は、とりわけ、本明細書で開示するコンピュータ回路、システム、デバイス、要素又は構成要素のいずれかと共に使用することができる。様々な実施形態では、図示の方法要素のいくつかは、同時に実行されてもよく、図示のものとは異なる順序で実行されてもよく、又は省略されてもよい。要望に応じて、追加の方法要素も実行されてもよい。
410において、図示された実施形態では、グラフィックス処理回路は、グラフィックス表面に割り当てられた表面空間内のアドレスに基づいてグラフィックス表面にアクセスする。いくつかの実施形態では、表面空間の部分は仮想空間にマッピングされ、仮想空間は、表面のスパース割り当てを可能にしながら仮想空間のセキュリティを好都合に提供することができる。いくつかの実施形態では、表面空間は、他の表面が表面空間を使用しないように、グラフィックス表面に専用である。いくつかの実施形態では、グラフィックス表面は、2つを超える次元の要素を含む。例えば、表面は、異なるレベルの詳細でテクスチャを表すテクスチャのためのミップマップのセットであってもよい。他の状況又は実施形態では、表面は、一次元又は二次元であってもよい。
420において、図示した実施形態では、第1の変換回路は、表面空間のページのための複数の変換エントリのセット内の1つ以上のエントリにアクセスし、この変換エントリは、仮想空間内のアドレスを使用して記憶されて表面空間のページを仮想空間にマッピングする。第1の変換回路は、内部で(例えば、1つ以上の専用キャッシュを使用して)エントリのセットの全て又は一部を維持してもよく、又は、外部で、例えば、メモリ140又は何らかの他のメモリ内にエントリを維持してもよいことに留意されたい。図2Bのページテーブルエントリ250は、変換エントリの例である。いくつかの実施形態では、変換エントリのセットは、装置によって実行されるグラフィックス命令によって構成可能である。例えば、グラフィックスプログラムは、ページテーブルエントリ250を割り当てるか、修正することができる。いくつかの実施形態では、ページテーブルエントリは、例えば、表面がスパースに割り当てられている場合に、表面空間内のページがマッピングされないことを示す情報を含む。
430において、図示した実施形態では、第1の変換回路は、1つ以上の変換エントリに基づいて、表面空間のためのアドレス情報を仮想空間内のアドレス情報に変換する。例えば、表面空間のためのアドレス情報は、(1)表面空間に関する変換テーブルのための仮想空間内のベースアドレス、及び(2)表面空間内の計算されたオフセットを指定することができる。これは、テーブル内の適切な変換エントリの、仮想空間内のアドレスを生成するために使用されてもよい。変換エントリは、仮想空間内のスパースページのアドレスを提供することができ、これを表面空間内の計算されたオフセットと共に使用して、表面へアクセスするための仮想アドレスを生成することができる。この例における計算の異なる部分は、異なる実施形態では、処理回路110と変換回路120との間で分割されてもよいことに留意されたい。例えば、処理回路110は、一実施形態では、計算されたオフセット及び変換テーブルの仮想空間内のベースアドレスの両方を伴うアドレス情報を送信してもよく、又は別の実施形態では、仮想空間内の変換エントリのアドレスを計算して、送信してもよい。
440において、図示した実施形態では、グラフィックス処理回路は、第1の変換回路による変換に基づいてグラフィックス表面へアクセスするためのアドレスを提供する。例えば、グラフィックス処理回路は、仮想空間内にアクセスするためのアドレスを第2の変換回路130に提供することができる。
450において、図示した実施形態では、第2の変換回路は、仮想空間内のアドレスを、グラフィックス表面を記憶するように構成されたメモリの物理空間内のアドレスに変換する。次いで、システムは、物理空間内のアドレスを使用してグラフィックス表面のデータにアクセスすることができる。
いくつかの実施形態では、第1の変換回路は、メモリ(例えば、物理空間を実装するメモリ)内に複数の変換エントリのセットを維持するように構成され、キャッシュ内に複数の変換エントリのセットの少なくとも一部をキャッシュするように構成されている。いくつかの実施形態では、第1の変換回路は、変換エントリについて複数のキャッシュレベル、例えば、第1のレベルのキャッシュ及び第2のレベルのキャッシュを使用し、第2のレベルのキャッシュは、第1のレベルのキャッシュよりも多数の変換エントリについてデータをキャッシュするように構成されている。いくつかの実施形態では、システムは、1つ以上の変換エントリに対応するアクセス要求を受信する前に、1つ以上の変換エントリについてデータを第2レベルキャッシュにプリフェッチするように構成されている。
いくつかの実施形態では、グラフィックス回路は、多層変換を使用しない他のグラフィックス表面にアクセスするように構成されている。例えば、グラフィックス処理回路は、第1の変換回路を使用せずに仮想空間内のアドレスを使用して、メモリ内に記憶された別のグラフィックス表面にアクセスすることができ、第2の変換回路は、仮想空間内のアドレスを物理空間内のアドレスに変換することができる。
例示的なデバイス
次に図5を参照すると、デバイス500の例示的な実施形態を示すブロック図が示されている。いくつかの実施形態では、デバイス500の要素は、システムオンチップ内に含まれてもよい。いくつかの実施形態では、デバイス500は、バッテリ駆動され得るモバイルデバイスに含まれてもよい。したがって、デバイス500による電力消費は重要な設計考慮事項であり得る。図示した実施形態では、デバイス500は、ファブリック510、コンピュートコンプレックス520、入力/出力(I/O)ブリッジ550、キャッシュ/メモリコントローラ545、グラフィックスユニット570、及びディスプレイユニット565を含む。いくつかの実施形態では、図示した構成要素に加え、かつ/又はその代わりに、デバイス500は、ビデオプロセッサエンコーダ及びデコーダ、画像処理要素又は認識要素、コンピュータビジョン要素などの他の構成要素(図示せず)を含んでもよい。
ファブリック510は、様々な相互接続、バス、MUX、コントローラなどを含んでもよく、デバイス500の様々な要素間の通信を容易にするように構成されてもよい。いくつかの実施形態では、ファブリック510の部分は、様々な異なる通信プロトコルを実装するように構成されてもよい。他の実施形態では、ファブリック510は単一の通信プロトコルを実装してもよく、ファブリック510に結合される要素は単一の通信プロトコルからその他の通信プロトコルに内部で変換してもよい。
図示する実施形態では、コンピュートコンプレックス520は、バスインタフェースユニット(BIU)525、キャッシュ530、並びにコア535及びコア540を含む。様々な実施形態では、コンピュートコンプレックス520は、様々な数のプロセッサ、プロセッサコア及び/又はキャッシュを含んでもよい。例えば、コンピュートコンプレックス520は、1、2又は4個のプロセッサコア、又は任意の他の好適な数を含んでもよい。一実施形態では、キャッシュ530は、セットアソシエイティブL2キャッシュである。いくつかの実施形態では、コア535及び/又は540は、内部命令及び/又はデータキャッシュを含み得る。いくつかの実施形態では、ファブリック510、キャッシュ530、又はデバイス500内の他の場所のコヒーレンシユニット(図示せず)は、デバイス500の様々なキャッシュ間のコヒーレンシを維持するように構成されてもよい。BIU525は、コンピュートコンプレックス520とデバイス500の他の要素との間の通信を管理するように構成されてもよい。コア535及びコア540などのプロセッサコアは、オペレーティングシステム命令及びユーザアプリケーション命令を含み得る特定の命令セットアーキテクチャ(ISA)の命令を実行するように構成されてもよい。
キャッシュ/メモリコントローラ545は、ファブリック510と1つ以上のキャッシュ及び/又はメモリとの間のデータの転送を管理するように構成されてもよい。例えば、キャッシュ/メモリコントローラ545は、L3キャッシュに結合されてもよく、これは次にシステムメモリに結合されてもよい。他の実施形態では、キャッシュ/メモリコントローラ545は、メモリに直接結合されてもよい。いくつかの実施形態では、キャッシュ/メモリコントローラ545は、1つ以上の内部キャッシュを含み得る。
本明細書で使用するとき、用語「結合された」は、要素間の1つ以上の接続を示すことができ、結合は介在要素を含んでもよい。例えば、図5では、グラフィックスユニット570は、ファブリック510及びキャッシュ/メモリコントローラ545を介してメモリに「結合されている」と記載されてもよい。対照的に、図5の図示する実施形態では、介在要素が存在しないため、グラフィックスユニット570はファブリック510に「直接結合されている」。
グラフィックスユニット570は、1つ以上のプロセッサ及び/又は1つ以上のグラフィックスプロセッシングユニット(GPU)を含んでもよい。グラフィックスユニット570は、例えば、OPENGL(登録商標)、Metal、又はDIRECT3D(登録商標)命令などの、グラフィックス指向の命令を受信することができる。グラフィックスユニット570は、特化したGPU命令を実行してもよいし、受信したグラフィックス指向の命令に基づいて他の動作を実行してもよい。グラフィックスユニット570は一般的に、大ブロックのデータを並行して処理するように構成されてもよく、ディスプレイに出力するためにフレームバッファに画像を構築してもよい。グラフィックスユニット570は、1つ以上のグラフィックス処理パイプラインに変換、照明、三角形、及び/又はレンダリングのエンジンを含んでもよい。グラフィックスユニット570は、表示画像のための画素情報を出力することができる。様々な実施形態では、プログラム可能なシェーダ575は、グラフィックスプログラムを実行するように構成された高並列実行コアを含んでもよく、それは、画素タスク、頂点タスク、及び計算タスク(グラフィックス関連であっても、そうでなくてもよい)を含んでもよい。
いくつかの実施形態では、図1~図4を参照して上述した様々な回路は、グラフィックスユニット570に含まれる。
ディスプレイユニット565は、フレームバッファからデータを読み取り、表示のための画素値のストリームを提供するように構成されてもよい。ディスプレイユニット565は、いくつかの実施形態では、ディスプレイパイプラインとして構成することができる。加えて、ディスプレイユニット565は、出力フレームを生成するように複数のフレームをブレンドするように構成されてもよい。更に、ディスプレイユニット565は、ユーザディスプレイ(例えば、タッチスクリーン又は外部ディスプレイ)に結合するための1つ以上のインタフェース(例えば、MIPI(登録商標)又は埋込みディスプレイポート(eDP))を含んでもよい。
I/Oブリッジ550は、例えば、ユニバーサルシリアルバス(USB)通信、セキュリティ、オーディオ、及び/又は低電力常時オン機能を実装するように構成された様々な要素を含み得る。I/Oブリッジ550はまた、例えば、パルス幅変調(PWM)、汎用入出力(GPIO)、シリアル周辺インタフェース(SPI)、及び/又はインターインテグレーテッドサーキット(12C)などのインタフェースを含んでもよい。様々な種類の周辺機器及びデバイスは、I/Oブリッジ550を介してデバイス500に結合されてもよい。
例示的なコンピュータ可読媒体
本開示は、様々な例示的な回路について上記により詳細に説明した。本開示は、そのような回路を含む実施形態だけでなく、そのような回路を指定する設計情報を含むコンピュータ可読記憶媒体もまた網羅することが意図される。したがって、本開示は、開示された回路を含む装置だけでなく、開示された回路を含むハードウェア(例えば、集積回路)を生成するように構成された製造システムによって認識されるフォーマットで回路を指定する記憶媒体も網羅する特許請求の範囲を支持することを意図する。そのような記憶媒体に対する特許請求の範囲は、例えば、回路設計物を生成するが、それ自体は設計物を製造しない実在物を網羅することを意図する。
図6は、いくつかの実施形態による、回路設計情報を記憶する例示的な非一時的コンピュータ可読記憶媒体を示すブロック図である。図示した実施形態では、半導体製造システム620は、非一時的コンピュータ可読媒体610に記憶された設計情報615を処理し、設計情報615に基づいて集積回路630を製造するように構成されている。
非一時的コンピュータ可読記憶媒体610は、様々な適切な種類のメモリデバイス又は記憶デバイスのいずれかを含んでもよい。非一時的コンピュータ可読記憶媒体610は、インストール媒体、例えば、CD-ROM、フロッピーディスク又はテープデバイス、DRAM、DDR RAM、SRAM、EDO RAM、Rambus RAMなどの、コンピュータシステムメモリ又はランダムアクセスメモリ、フラッシュ、磁気媒体、例えばハードドライブ、又は光記憶装置などの、不揮発性メモリ、レジスタ、又はその他の類似の種類のメモリ要素などであってもよい。非一時的コンピュータ可読記憶媒体610は、他の種類の非一時的メモリ、又はそれらの組合せも含んでもよい。非一時的コンピュータ可読記憶媒体610は、異なる場所、例えば、ネットワークを通じて接続されている異なるコンピュータシステムに存在し得る2つ以上の記憶媒体を含んでもよい。
設計情報615は、VHDL、Verilog、SystemC、SystemVerilog、RHDL、M、MyHDLなど(これらに限定されない)のハードウェア記述言語を含む様々な適切なコンピュータ言語のいずれかを使用して指定され得る。設計情報615は、集積回路630の少なくとも一部を製造するために半導体製造システム620によって使用可能であり得る。設計情報615のフォーマットは、少なくとも1つの半導体製造システム620によって認識され得る。いくつかの実施形態では、設計情報615はまた、集積回路630の合成及び/又はレイアウトを指定する1つ以上のセルライブラリを含んでもよい。いくつかの実施形態では、設計情報は、セルライブラリ要素及びそれらの接続性を指定するネットリストの形態で、全体的に又は部分的に指定される。設計情報615は、単独で、対応する集積回路の製造に十分な情報を含んでもよいし、含まなくてもよい。例えば、設計情報615は、製造される回路要素を指定してもよいが、それらの物理的レイアウトを指定しなくてもよい。この場合、設計情報615は、指定された回路を実際に製造するためにレイアウト情報と組み合わされる必要があり得る。
集積回路630は、様々な実施形態において、メモリ、アナログ又は混合信号回路などの1つ以上のカスタムマクロセルを含むことができる。そのような場合、設計情報615は、含まれるマクロセルに関連する情報を含んでもよい。このような情報としては、限定するものではないが、回路図キャプチャデータベース、マスク設計データ、行動モデル、及びデバイス又はトランジスタレベルネットリストが挙げられる。本明細書で使用するとき、マスク設計データは、グラフィックスデータシステム(GDSII)、又は任意の他の好適なフォーマットに従ってフォーマットされてもよい。
半導体製造システム620は、集積回路を製造するように構成された様々な適切な要素のうちのいずれかを含んでもよい。これは、例えば、半導体材料を堆積させること(例えば、ウェハ上に、これはマスキングを含み得る)と、材料を除去すること、堆積された材料の形状を変更すること、材料を改質すること(例えば、材料をドープすることによって、又は紫外線処理を使用して誘電率を変更することによって)、などのための要素を含んでもよい。半導体製造システム620はまた、正しい動作のために製造された回路の様々な試験を実行するように構成されてもよい。
様々な実施形態では、集積回路630は、設計情報615によって指定された回路設計に従って動作するように構成されており、これは、本明細書に記載した機能のいずれかを実行することを含んでもよい。例えば、集積回路630は、図1、図3又は図5に示される様々な要素のいずれかを含み得る。更に、集積回路630は、他の構成要素と共に本明細書に記載された様々な機能を実行するように構成されてもよい。更に、本明細書に記載された機能は、複数の接続された集積回路によって実行されてもよい。
本明細書で使用するとき、「...ように構成された回路の設計を指定する設計情報」の形の語句は、問題の回路は要素が満たされるために製造されなければならない、ということを意味するものではない。むしろ、この語句は、設計情報には、製造されると、指示されたアクションを実行するように構成されるか、又は指定された構成要素を含む回路について記載されていることを示す。
***
特定の実施形態が上記に記載されているが、これらの実施形態により本開示の範囲を限定する意図はなく、これは特定の特徴に対して単一の実施形態のみが記載されている場合でも同様である。本開示で提供されている特徴の実施例は、別途記載がない限り、例示的な性質のものであって、限定的な目的を意図していない。上記の記載は、本開示による恩恵を受ける当業者には明らかであるような代替物、改変、及び均等物を網羅することが意図されている。
本開示の範囲は、本開示において取り組まれている問題の一部又は全てを軽減するか否かを問わず、本開示において(明示的又は暗黙的に)開示されている全ての特徴若しくはそれら特徴の組み合わせ、又はそれらの一般化を含む。したがって、このような特徴の組み合わせのいずれに対しても、本願(又は、本願に対する優先権を主張する出願)の審査手続き中に、新しい特許請求を策定し得る。特に、特許請求の範囲に関しては、従属クレームの特徴は独立クレームの特徴と組み合わされる場合があり、それぞれの独立クレームの特徴は、任意の適切な方法で、かつ、単に添付の特許請求の範囲で列挙されている特定の組み合わせではない形で組み合わされる場合がある。

Claims (20)

  1. グラフィックス表面に割り当てられた表面空間内のアドレスを用いて前記グラフィックス表面にアクセスするように構成されているグラフィックス処理回路と、
    前記表面空間のページを仮想空間にマッピングする変換テーブルの1つ以上の変換エントリに基づいて前記仮想空間内のアドレスに前記表面空間内の前記アドレスを変換するように構成されている第1の変換回路であって、前記変換テーブルは、初めに前記表面空間の一部だけを前記仮想空間にマッピングするように構成されている、第1の変換回路と、
    前記仮想空間内の前記アドレスを、前記グラフィックス表面を記憶するように構成されているメモリの物理空間内のアドレスに変換するように構成されている第2の変換回路と、
    を備える装置。
  2. 前記第1の変換回路は、前記仮想空間内の前記アドレスを前記グラフィックス処理回路に提供するように構成され、前記グラフィックス処理回路は、前記仮想空間内の前記アドレスを用いてデータキャッシュにアクセスするように構成され、
    前記第2の変換回路は、前記データキャッシュのミスに応じて、前記仮想空間内の前記アドレスを前記物理空間内の前記アドレスに変換するように構成されている、
    請求項1に記載の装置。
  3. 前記変換テーブルは、前記グラフィックス処理回路により実行されるグラフィックス命令によって構成可能である、
    請求項1に記載の装置。
  4. 前記グラフィックス処理回路は、前記表面空間の部分へのアクセスに基づいて活動カウント情報を維持するように構成され、
    前記グラフィックス処理回路は、前記表面空間の前記ページと関連付けられた活動カウント情報に基づいて、前記表面空間の以前にアンマップされたページを前記仮想空間にマッピングするように構成されている、
    請求項1に記載の装置。
  5. 前記グラフィックス処理回路は、前記メモリに前記変換テーブルを記憶するように構成されている、
    請求項1に記載の装置。
  6. 前記第1の変換回路は、表面空間のための変換情報のキャッシュ専用であるキャッシュに、前記変換テーブルの少なくとも一部をキャッシュするように構成されている、
    請求項5に記載の装置。
  7. 前記グラフィックス処理回路は、1つ以上の変換エントリについて、データを、前記1つ以上の変換エントリに対応するアクセス要求を受信する前に、前記キャッシュにプリフェッチするように構成されている、
    請求項6に記載の装置。
  8. 前記グラフィックス処理回路は、異なるグラフィックス表面に異なる表面空間を割り当て、前記異なる表面空間に対する変換エントリのそれぞれのセットを記憶するように構成されている、
    請求項1に記載の装置。
  9. 前記グラフィックス処理回路は、前記第1の変換回路を用いることなく前記仮想空間内の前記アドレスを用いて前記メモリに記憶された別のグラフィックス表面にアクセスするように更に構成されている、
    請求項1に記載の装置。
  10. 前記装置は、
    中央処理装置と、
    ディスプレイと、
    を更に含むコンピューティングデバイスである、
    請求項1に記載の装置。
  11. 非一時的コンピュータ可読記憶媒体に記憶され、動作を実行するためにコンピューティングデバイスによって実行可能である命令を有する非一時的コンピュータ可読記憶媒体であって、
    前記動作は、
    前記コンピューティングデバイスのグラフィックス処理回路に、グラフィックス表面に割り当てられた表面空間内のアドレスを提供するステップと、
    前記表面空間のページを仮想空間にマッピングする変換テーブル内の1つ以上の変換エントリを構成するステップであって、前記構成は、前記表面空間の一部だけを前記仮想空間に初めにマッピングする、構成するステップと、
    前記グラフィックス表面を記憶するように構成されたメモリの物理空間内のアドレスにアクセスするステップであって、前記物理空間内の前記アドレスは、前記仮想空間内のアドレスを変換することによってコンピューティングデバイスによって生成され、前記仮想空間内の前記アドレスは、前記1つ以上の変換エントリに基づいて前記表面空間内のアドレスを変換することによってコンピューティングデバイスによって生成される、アクセスするステップと、
    を含む、
    非一時的コンピュータ可読記憶媒体。
  12. 前記動作は、
    前記表面空間の部分へのアクセスに基づく活動カウント情報にアクセスするステップと、
    前記表面空間の前記ページと関連付けられた活動カウント情報に基づいて、前記表面空間の以前にアンマップされたページを前記仮想空間にマッピングするステップと、
    を更に含む、
    請求項11に記載の非一時的コンピュータ可読記憶媒体。
  13. 前記動作は、
    異なるグラフィックス表面に異なる表面空間を割り当て、前記異なる表面空間に対する変換エントリのそれぞれのセットを記憶するステップを更に含む、
    請求項11に記載の非一時的コンピュータ可読記憶媒体。
  14. ハードウェア集積回路の少なくとも一部の設計を指定する設計情報を、前記設計情報を使用して前記設計に従って前記ハードウェア集積回路を生成するように構成されている半導体製造システムによって認識されるフォーマットで記憶している非一時的コンピュータ可読記憶媒体であって、前記設計情報は、前記ハードウェア集積回路が、
    グラフィックス表面に割り当てられた表面空間内のアドレスを用いて前記グラフィックス表面にアクセスするように構成されている、グラフィックス処理回路と、
    前記表面空間のページを仮想空間にマッピングする変換テーブルの1つ以上の変換エントリに基づいて、前記仮想空間内のアドレスに前記表面空間内の前記アドレスを変換するように構成されている第1の変換回路であって、前記変換テーブルは、前記表面空間の一部だけを前記仮想空間に初めにマッピングするように構成されている、第1の変換回路と、
    前記グラフィックス表面を記憶するように構成されたメモリの物理空間内のアドレスに前記仮想空間内の前記アドレスを変換するように構成されている第2の変換回路と、
    を含むことを指定している、非一時的コンピュータ可読記憶媒体。
  15. 前記第1の変換回路は、前記グラフィックス処理回路に前記仮想空間内の前記アドレスを提供するように構成され、前記グラフィックス処理回路は、前記仮想空間内の前記アドレスを用いてデータキャッシュにアクセスするように構成され、
    前記第2の変換回路は、前記データキャッシュのミスに応じて、前記仮想空間内の前記アドレスを前記物理空間内の前記アドレスに変換するように構成されている、
    請求項14に記載の非一時的コンピュータ可読記憶媒体。
  16. 前記変換テーブルは、前記グラフィックス処理回路により実行されるグラフィックス命令によって構成可能である、
    請求項14に記載の非一時的コンピュータ可読記憶媒体。
  17. 前記グラフィックス処理回路は、前記表面空間の部分へのアクセスに基づいて活動カウント情報を維持するように構成され、
    前記グラフィックス処理回路は、前記表面空間の前記ページと関連付けられた活動カウント情報に基づいて、前記表面空間の以前にアンマップされたページを前記仮想空間にマッピングするように構成されている、
    請求項14に記載の非一時的コンピュータ可読記憶媒体。
  18. 前記グラフィックス処理回路は、前記メモリに前記変換テーブルを記憶するように構成されている、
    請求項14に記載の非一時的コンピュータ可読記憶媒体。
  19. 前記第1の変換回路は、表面空間のための変換情報のキャッシュ専用であるキャッシュに、前記変換テーブルの少なくとも一部をキャッシュするように構成され、
    前記グラフィックス処理回路は、1つ以上の変換エントリについて、データを、前記1つ以上の変換エントリに対応するアクセス要求を受信する前に、前記キャッシュにプリフェッチするように構成されている、
    請求項18に記載の非一時的コンピュータ可読記憶媒体。
  20. 前記グラフィックス処理回路は、異なるグラフィックス表面に異なる表面空間を割り当て、前記異なる表面空間に対する変換エントリのそれぞれのセットを記憶するように構成されている、
    請求項18に記載の非一時的コンピュータ可読記憶媒体。
JP2022033398A 2019-09-06 2022-03-04 グラフィックス表面アドレス指定 Active JP7106775B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/563,518 US10872458B1 (en) 2019-09-06 2019-09-06 Graphics surface addressing
US16/563,518 2019-09-06
JP2020147034A JP7037610B2 (ja) 2019-09-06 2020-09-01 グラフィックス表面アドレス指定

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2020147034A Division JP7037610B2 (ja) 2019-09-06 2020-09-01 グラフィックス表面アドレス指定

Publications (2)

Publication Number Publication Date
JP2022095618A JP2022095618A (ja) 2022-06-28
JP7106775B2 true JP7106775B2 (ja) 2022-07-26

Family

ID=72841257

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020147034A Active JP7037610B2 (ja) 2019-09-06 2020-09-01 グラフィックス表面アドレス指定
JP2022033398A Active JP7106775B2 (ja) 2019-09-06 2022-03-04 グラフィックス表面アドレス指定

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2020147034A Active JP7037610B2 (ja) 2019-09-06 2020-09-01 グラフィックス表面アドレス指定

Country Status (7)

Country Link
US (2) US10872458B1 (ja)
JP (2) JP7037610B2 (ja)
KR (1) KR102508987B1 (ja)
CN (2) CN114820284A (ja)
DE (1) DE102020122831B4 (ja)
GB (2) GB2599807B (ja)
TW (1) TWI749748B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230105277A1 (en) * 2021-10-06 2023-04-06 Arm Limited Circuitry and method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10872458B1 (en) 2019-09-06 2020-12-22 Apple Inc. Graphics surface addressing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110157207A1 (en) 2009-12-31 2011-06-30 Nvidia Corporation Sparse texture systems and methods
US20150084974A1 (en) 2013-09-20 2015-03-26 Nvidia Corporation Techniques for interleaving surfaces
US20150084975A1 (en) 2013-09-26 2015-03-26 Nvidia Corporation Load/store operations in texture hardware
JP2017535848A (ja) 2014-10-01 2017-11-30 クゥアルコム・インコーポレイテッドQualcomm Incorporated 透過的画素フォーマット変換器
US20180173641A1 (en) 2015-06-16 2018-06-21 Arm Limited Address translation

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5905509A (en) * 1997-09-30 1999-05-18 Compaq Computer Corp. Accelerated Graphics Port two level Gart cache having distributed first level caches
US6859208B1 (en) * 2000-09-29 2005-02-22 Intel Corporation Shared translation address caching
JP2006099191A (ja) * 2004-09-28 2006-04-13 Dee Corp 入札管理装置、入札管理方法及び入札管理コンピュータプログラム
US9058292B2 (en) * 2004-12-29 2015-06-16 Intel Corporation System and method for one step address translation of graphics addresses in virtualization
US7884829B1 (en) * 2006-10-04 2011-02-08 Nvidia Corporation Partitioned graphics memory supporting non-power of two number of memory elements
US7746352B2 (en) * 2006-11-03 2010-06-29 Nvidia Corporation Deferred page faulting in virtual memory based sparse texture representations
US8289333B2 (en) 2008-03-04 2012-10-16 Apple Inc. Multi-context graphics processing
US9035959B2 (en) * 2008-03-28 2015-05-19 Intel Corporation Technique to share information among different cache coherency domains
US9378572B2 (en) * 2012-08-17 2016-06-28 Intel Corporation Shared virtual memory
US9390018B2 (en) * 2012-08-17 2016-07-12 Advanced Micro Devices, Inc. Data cache prefetch hints
US10037228B2 (en) 2012-10-25 2018-07-31 Nvidia Corporation Efficient memory virtualization in multi-threaded processing units
KR102093458B1 (ko) 2013-07-05 2020-03-26 삼성디스플레이 주식회사 커패시터
US9754561B2 (en) 2013-10-04 2017-09-05 Nvidia Corporation Managing memory regions to support sparse mappings
US9910776B2 (en) * 2014-11-14 2018-03-06 Cavium, Inc. Instruction ordering for in-progress operations
US10127627B2 (en) 2015-09-23 2018-11-13 Intel Corporation Mapping graphics resources to linear arrays using a paging system
US10482567B2 (en) 2015-12-22 2019-11-19 Intel Corporation Apparatus and method for intelligent resource provisioning for shadow structures
US9959214B1 (en) * 2015-12-29 2018-05-01 Amazon Technologies, Inc. Emulated translation unit using a management processor
GB2547242B (en) 2016-02-11 2018-05-23 Advanced Risc Mach Ltd Graphics processing
WO2018053829A1 (en) * 2016-09-26 2018-03-29 Intel Corporation Apparatus and method for hybrid layer of address mapping for virtualized input/output implementation
US10599582B2 (en) * 2016-09-26 2020-03-24 Intel Corporation Using a virtual to virtual address table for memory compression
US10783694B2 (en) * 2017-08-25 2020-09-22 Advanced Micro Devices, Inc. Texture residency checks using compression metadata
US10872458B1 (en) * 2019-09-06 2020-12-22 Apple Inc. Graphics surface addressing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110157207A1 (en) 2009-12-31 2011-06-30 Nvidia Corporation Sparse texture systems and methods
US20150084974A1 (en) 2013-09-20 2015-03-26 Nvidia Corporation Techniques for interleaving surfaces
US20150084975A1 (en) 2013-09-26 2015-03-26 Nvidia Corporation Load/store operations in texture hardware
JP2017535848A (ja) 2014-10-01 2017-11-30 クゥアルコム・インコーポレイテッドQualcomm Incorporated 透過的画素フォーマット変換器
US20180173641A1 (en) 2015-06-16 2018-06-21 Arm Limited Address translation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230105277A1 (en) * 2021-10-06 2023-04-06 Arm Limited Circuitry and method
US11934304B2 (en) * 2021-10-06 2024-03-19 Arm Limited Circuitry and method

Also Published As

Publication number Publication date
JP2021043966A (ja) 2021-03-18
DE102020122831A1 (de) 2021-03-11
KR20210029683A (ko) 2021-03-16
US11257278B2 (en) 2022-02-22
CN114820284A (zh) 2022-07-29
GB2589436B (en) 2021-12-29
GB2599807B (en) 2022-10-05
GB202013890D0 (en) 2020-10-21
TW202111544A (zh) 2021-03-16
GB2599807A (en) 2022-04-13
CN112465690A (zh) 2021-03-09
US20210074053A1 (en) 2021-03-11
JP2022095618A (ja) 2022-06-28
JP7037610B2 (ja) 2022-03-16
KR102508987B1 (ko) 2023-03-16
CN112465690B (zh) 2022-06-07
DE102020122831B4 (de) 2023-07-06
US10872458B1 (en) 2020-12-22
GB2589436A (en) 2021-06-02
TWI749748B (zh) 2021-12-11

Similar Documents

Publication Publication Date Title
US10365930B2 (en) Instructions for managing a parallel cache hierarchy
US8341380B2 (en) Efficient memory translator with variable size cache line coverage
KR101379524B1 (ko) 디스플레이 파이프 내에서의 스트리밍 변환
US11829298B2 (en) On-demand memory allocation
JP7106775B2 (ja) グラフィックス表面アドレス指定
JP2008033928A (ja) Gpuにおけるページマッピングのための専用機構
US10289565B2 (en) Cache drop feature to increase memory bandwidth and save power
US11488350B2 (en) Compression techniques and hierarchical caching
US9652560B1 (en) Non-blocking memory management unit
US11321241B2 (en) Techniques to improve translation lookaside buffer reach by leveraging idle resources
US11023162B2 (en) Cache memory with transient storage for cache lines
JP2023532432A (ja) アソシアティブキャッシュのための直接マッピングモード

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220318

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220318

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220525

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: 20220613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220713

R150 Certificate of patent or registration of utility model

Ref document number: 7106775

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150