JPH10247138A - コンピュータシステム - Google Patents

コンピュータシステム

Info

Publication number
JPH10247138A
JPH10247138A JP9251134A JP25113497A JPH10247138A JP H10247138 A JPH10247138 A JP H10247138A JP 9251134 A JP9251134 A JP 9251134A JP 25113497 A JP25113497 A JP 25113497A JP H10247138 A JPH10247138 A JP H10247138A
Authority
JP
Japan
Prior art keywords
memory
bus
coupled
memory controller
graphics
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
JP9251134A
Other languages
English (en)
Inventor
Michael J K Nielsen
マイケル、ジェイ.ケイ.ニールセン
Zahid S Hussain
ザヒド、エス.ハッサイン
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.)
Graphics Properties Holdings Inc
Original Assignee
Silicon Graphics 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 Silicon Graphics Inc filed Critical Silicon Graphics Inc
Publication of JPH10247138A publication Critical patent/JPH10247138A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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]
    • 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/125Frame memory handling using unified memory architecture [UMA]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】 コンピュータシステム内の多数のプロセッサ
で1つのメモリを共用できるようにすること。 【解決手段】 このコンピュータシステムはメモリコン
トローラ204と、統一システムメモリ202と、メモ
リクライアントとを含み、各メモリクライアントはメモ
リコントローラを介してシステムメモリにアクセスす
る。メモリクライアントはグラフィックスレンダリング
エンジンと、CPUと、画像プロセッサと、データ圧縮
/伸長デバイスと、入出力デバイスと、グラフィックス
バックエンドデバイスとを含むことができる。このコン
ピュータシステムはメモリクライアントの各々に対しメ
モリコントローラを通して統一システムメモリに読出し
/書込みアクセスを行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はコンピュータシステ
ムの分野に関するものであり、より詳細には、グラフィ
ックおよび画像処理のためのピクセルバッファのダイナ
ミックメモリ割当てを含むコンピュータシステムアーキ
テクチャに関するものである。
【0002】
【従来の技術】従来の代表的なコンピュータシステムは
種々の計算上の演算を行うのに、周辺プロセッサと専用
周辺メモリユニットに依存することが多い。例えばグラ
フィックスを(合成)画像にするのに周辺グラフィック
スディスプレイプロセッサが使用され、画像処理(解
析)を行うのに周辺画像プロセッサが使用される。代表
的な従来のコンピュータシステムでは、グラフィックス
レンダリングまたは画像処理もしくはその他の計算機能
に専用のものとすることができる周辺メモリユニットと
CPUのメインメモリとが分離されている。
【0003】
【発明が解決しようとする課題】従来技術の図1を参照
する。ここには従来技術によるコンピュータグラフィッ
クスシステム100が示されている。従来のコンピュー
タグラフィックスシステム100は3つの別個のメモリ
ユニット、すなわちメインメモリ102と、専用グラフ
ィックスメモリ104と、専用画像処理メインメモリ
(画像プロセッサメモリ)105とを含む。メインメモ
リ102はCPU106および入出力デバイス108の
ためにデータに高速アクセスを行う。CPU106およ
び入出力デバイス108はメインメモリコントローラ1
10を介してメインメモリ102に接続されており、専
用グラフィックスメモリ104はグラフィックスメモリ
コントローラ114を介してグラフィックスプロセッサ
112のためのグラフィックスデータに高速アクセス
し、専用画像処理メモリ105は画像処理メモリコント
ローラ118を介して画像プロセッサ116により使用
されるデータのバッファに高速アクセスを行う。従来の
コンピュータグラフィックスシステム100ではCPU
106はメインメモリ102に読出し/書込みアクセス
するが、専用グラフィックスメモリ104または専用グ
ラフィックスメモリ105にはアクセスしない。同様
に、画像プロセッサ116は専用画像プロセッサメモリ
105に読出し/書込みアクセスをするが、メインメモ
リ102または専用グラフィックスメモリ104へはア
クセスしない。同様に、グラフィックスプロセッサ11
2は専用グラフィックスメモリ104に対し読出し/書
込みのアクセスをするが、メインメモリ102または専
用グラフィックスプロセッサメモリ105にはアクセス
しない。
【0004】所定のコンピュータシステムアプリケーシ
ョンでは所望するデータが記憶されているメモリにアク
セスするプロセッサ以外のプロセッサによりメインメモ
リ102または専用のメモリ104,105のうちの1
つに記憶されているデータを演算しなければならない。
1つの特定のメモリユニット内に記憶されているデータ
をその特定メモリにアクセスするプロセッサ以外の指定
プロセッサによって処理すべき時は、指定されたプロセ
ッサがアクセスするメモリにそのデータを転送しなけれ
ばならない。例えばメインメモリ102または専用グラ
フィックスメモリ104に記憶されているデータを画像
プロセッサ116によって処理しなければならない所定
の画像処理アプリケーションがある。画像処理はピクセ
ルの二次元ブロックに適用される関数と定義される。こ
れらピクセルはビデオポート、大容量記憶デバイス、例
えばCD−ROM、固定ディスクサブシステムおよびロ
ーカルまたはワイドエリアネットワークポートを介して
従来のコンピュータシステム100に入力されるビデオ
のファイルシステム画像、フィールドまたはフレームの
フォーマットとすることができる。画像プロセッサ11
6がメインメモリ102または専用グラフィックスメモ
リ104に記憶されたデータにアクセスできるようにす
るためには、データを専用の画像処理メモリ105に転
送またはコピーしなければならない。
【0005】従来のコンピュータグラフィックスシステ
ム100の問題の1つとして、高性能の周辺専用メモリ
システム、例えば専用グラフィックスメモリ104およ
び専用画像処理メモリ105のコストが挙げられる。従
来のコンピュータグラフィックスシステム100の別の
問題として、多数のメモリシステムのための高性能の相
互接続のコストが挙げられる。従来のコンピュータグラ
フィックスシステム100のさらに別の問題として、メ
モリユニット間でのデータの上記転送には時間と処理リ
ソースが必要であることが挙げられる。
【0006】したがって、多数の専用メモリ間でデータ
を転送することなく、コンピュータシステム内の多数の
プロセッサによって1つの統一メモリシステムを共用で
きるようなコンピュータシステムアーキテクチャが求め
られている。
【0007】
【課題を解決するための手段】本発明はグラフィックス
用にダイナミックメモリ割当てを行うコンピュータシス
テムに関する。このコンピュータシステムはメモリと、
統一システムメモリと、メモリクライアントとを備え、
各クライアントはメモリコントローラを介してシステム
メモリにアクセスする。メモリクライアントはグラフィ
ックスレンダリングエンジンと、中央処理ユニット(C
PU)と、画像プロセッサと、データ圧縮/伸長デバイ
スと、入出力デバイスと、グラフィックスバックエンド
デバイスとを含むことができる。好ましい実施の形態で
は、レンダリングエンジンおよびメモリコントローラは
第1の集積回路(第1のIC)に構成され、画像プロセ
ッサおよびデータ圧縮/伸長デバイスは第2のICに構
成される。このコンピュータシステムはメモリクライア
ントの各々のためにメモリコントローラを通して統一シ
ステムメモリに読出し/書込みアクセスを行う。ピクセ
ルバッファの仮想アドレスを統一システムメモリ内の物
理的メモリロケーションにマッピングするための変換ハ
ードウェアが含まれる。ピクセルバッファは物理的に隣
接するメモリのタイルとしてダイナミックに割当てられ
る。ピクセルバッファの仮想アドレスを統一システムメ
モリ内の物理的メモリロケーションにマッピングするた
めの変換ハードウェアは、コンピュータシステム内のメ
モリクライアントとして設けられている計算デバイスの
各々に構成される。
【0008】好ましい実施の形態では、統一システムメ
モリは同期式DRAMを用いて構成される。この好まし
い実施の形態においては、タイルは各ピクセルが4バイ
トのピクセルから成る128個のピクセルの128行と
して配置された64キロバイトの物理的に隣接したメモ
リから成る。しかしながら本発明は、他のサイズのタイ
ルを使用することにも適す。好ましい実施の形態ではダ
イナミックに割当てられるピクセルバッファはn個のタ
イルから成る(ここでnは整数である)。
【0009】本発明のコンピュータシステムはグラフィ
ックスディスプレイおよび画像処理のための機能的利点
を提供するものである。統一システムメモリの他に本発
明のコンピュータシステムには専用のメモリユニットが
ない。従って、CPUまたは他の周辺デバイスによって
発生されたデータを処理することが、周辺プロセッサに
求められた時に、ある専用メモリユニットから他の専用
メモリユニットにデータを転送する必要がなくなる。
【0010】添付図面には限定的例としてでなく、単な
る例として本発明が示されており、図中、同じ参照番号
は同様な部品を示す。
【0011】
【発明の実施の形態】本発明の次の詳細な説明では、本
発明を完全に理解するために特定の多数の細部を記載し
た。しかしながら、本発明がこれら特定の詳細がなくて
も実施できることは、当業者には明らかとなろう。他の
場合において周知の方法、手順、部品および回路につい
ては、本発明の特徴を容易に理解できるように、詳細に
は記載していない。
【0012】次に、本発明の好ましい実施の形態が添付
図面に示されているグラフックス用にダイナミックなメ
モリ割当てをしたコンピュータシステムアーキテクチャ
について詳細に説明する。好ましい実施の形態と関連さ
せて本発明について説明するが、これら実施の形態は本
発明をこれら実施の形態のみに限定するものではないこ
とが理解できよう。逆に本発明は、代替例、変更例およ
び均等物をカバーするものであり、これらは特許請求の
範囲に記載した本発明の要旨と範囲内に含まれるもので
ある。さらに本発明の次の詳細な説明において本発明を
完全に理解するため、多数の特定の詳細が記載されてい
る。しかしながらこれら特定の詳細がなくても、本発明
を実施できることは当業者には明らかとなろう。他の場
合において本発明の特徴を容易に理解できるよう、周知
の方法、手順、部品および回路については詳細には記載
していない。
【0013】図2を参照すると、ここには本発明に係る
コンピュータシステム200が示されている。このコン
ピュータシステム200は統一システムメモリ202を
含み、このメモリはCPU206と、グラフィックスレ
ンダリングエンジン208と、入出力回路210と、グ
ラフィックスバックエンドIC212と、イメージプロ
セッサ(IP)214と、メモリコントローラ(MC)
204とを含む種々のメモリシステムによって共用され
る。
【0014】図3を参照すると、ここには本発明に係る
コンピュータシステム201の一例が示されている。こ
のコンピュータシステム201は統一システムメモリ2
02を含み、このメモリはCPU206と、入出力回路
210と、グラフィックスバックエンドIC212と、
画像処理および圧縮伸長(IPCE)IC216と、グ
ラフィックスレンダリングおよびメモリコントローラ
(GRMC)IC218を含む種々のメモリシステムク
ライアントによって共用される。IPCEIC216は
画像プロセッサ(IP)214と、データ圧縮伸長ユニ
ット(C/E)215を含む。GRMCIC218はグ
ラフィックスレンダリングエンジン(レンダリングエン
ジン)208と、この内部に集積化されたメモリコント
ローラ(MC)204を含む。GRMCIC218は広
バンド幅のメモリデータバス(HBWMDバス)225
を介して統一システムメモリ202に結合されている。
本発明の好ましい実施の形態では、HBWMDバス22
5はデマルチプレクサ(SDMUX)220と、GRM
CIC218と、SD−MUX220との間に結合され
た第1バス222と、SD−MUX220と統一システ
ムメモリ202との間に結合された第2バスとを含む。
本発明の好ましい実施の形態は、バス222は133M
Hzでクロック制御される144本のラインを含み、バ
ス224は66MHzのクロックで制御される228本
のラインを含む。SDMUX220は133MHzでク
ロック制御されるバス222の144本のラインを多重
分離し、周波数66MHzの半分でクロック制御される
バス224のラインの数すなわち288を倍にしてい
る。GRMCIC218には第3バス226によりCP
U206が結合されている。本発明の好ましい実施の形
態では、バス226は16ビット幅であり、100MH
zでクロック制御された信号を搬送している。画像処理
および圧縮伸長IC216は第3バス228によりバス
226に結合されている。本発明の好ましい実施の形態
では、バス228は16ビットの幅であり、100MH
zでクロック制御された信号を搬送している。GRMC
IC218には第4バス230によりグラフィックスバ
ックエンドIC212が結合されている。本発明の好ま
しい実施の形態では、バス230は64ビット幅であ
り、133MHzでクロック制御された信号を搬送す
る。GRMCIC218には第5バス232により入出
力IC210が結合されている。本発明の好ましい実施
の形態では、バス232は32ビット搬送であり、13
3MHzでクロック制御された信号を搬送するようにな
っている。
【0015】図2の入出力IC210はキーボードおよ
びマウス、インターバルタイマー、シリアル、パラレ
ル、IC、オーディオ、ビデオ入出力、高速イーサネッ
トを含む入出力インターフェースのすべてを含む。入出
力IC210は5つのマスター(2つのSCSIコント
ローラおよび3つの拡張スロット)をサポートする外部
の64ビットPCI拡張バス、すなわちバス231に対
するインターフェースも含む。
【0016】図4を参照すると、ここには本発明の一実
施の形態に係るグラフィックスレンダリングおよびメモ
リコントローラIC218の内部回路ブロック図が示さ
れている。先に説明したように、レンダリングエンジン
208およびメモリコントローラ214はグラフィック
スレンダリングおよびメモリコントローラIC218内
に集積化されている。グラフィックスレンダリングおよ
びメモリコントローラIC218はCPU/IPCEイ
ンターフェース234と、入出力インターフェース23
6と、GBEインターフェース232も含む。
【0017】図2および図3を参照する。GBEインタ
ーフェース232は統一システムメモリ202からのデ
ィスプレイデータをバッファ化し、このデータを16×
32バイトのバーストとしてグラフィックスバックエン
ドIC212へ転送する。GBEインターフェース23
2はグラフィックスバックエンドIC212からのビデ
オキャプチャーデータをバッファ化し、これを16×3
2バイトのバーストとして統一システムメモリ202へ
転送する。GBEインターフェース232はCPU/I
PCEインターフェース234へGBEインターラプト
を発生する。図2および図3の双方に示されたバス22
8はGBEインターフェース232をグラフィックスバ
ックエンドIC212(図2)へ結合する。入出力イン
ターフェース236は統一システムメモリ202からの
データをバッファ化し、これを8×32バイトのバース
トとして入出力IC210へ転送する。入出力インター
フェース236は入出力IC210からのデータをバッ
ファ化し、このデータを8×32バイトのバーストとし
て統一システムメモリ202へ転送する。入出力インタ
ーフェース236はCPU/IPCEインターフェース
234へ入出力ICインターラプトを発生する。図2お
よび図3の双方に示されているバス230が入出力イン
ターフェース236を入出力IC210(図2)に結合
する。バス224はCPU/IPCEインターフェース
234とCPU206と画像処理および圧縮伸長IC2
16との間を結合する。
【0018】図2を参照すると、メモリコントローラ2
14はメモリシステムクライアント(CPU206と、
レンダリングエンジン208と、入出力IC210と、
グラフィックスバックエンドIC212と、画像プロセ
ッサ214と、データ圧縮/伸長デバイス215)と、
統一システムメモリ202との間のインターフェースと
なっている。先に述べたように、メモリコントローラ2
14は統一システムメモリ202との間で多量のデータ
の高速転送を可能にするHBWMDバス225を介し、
統一システムメモリ202に結合されている。メモリク
ライアントはメモリコントローラ214を介し統一シス
テムメモリ202に読出しおよび書込みリクエストを行
う。メモリコントローラ214はこれらリクエストを適
当な制御シーケンスに変換し、メモリクライアントと統
一システムメモリ202との間でデータを通過させる。
本発明の好ましい実施の形態では、メモリコントローラ
214は2つのパイプライン構造を含む。すなわち1つ
はコマンド用であり、他はデータ用である。リクエスト
パイプは3つのステージ、すなわち仲裁ステージと、デ
コードステージと、発生/ステートマシンステージとを
有する。データパイプは1つのステージ、すなわちEC
Cしか有しない。リクエストおよびデータは次のように
これらパイプを通るようにフローする。クライアントは
それらリクエストをキュー内に挿入する。仲裁ロジック
はクライアントキューの上部にあるリクエストのすべて
を見て、パイプを通ってどのリクエストがスタートする
かを判断する。リクエストは仲裁ステージからデコード
ステージへフローする。デコードステージ中、リクエス
トに関する情報が収集され、発生/ステートマシンステ
ージへ送られる。
【0019】図2を参照すると、レンダリングエンジン
208はラスター化を加速できる2Dおよび3Dのグラ
フィックスコプロセッサとなっている。本発明の好まし
い実施の形態では、レンダリングエンジン208も66
MHzでクロック制御され、統一システムメモリ202
に同期した状態で作動する。レンダリングエンジン20
8はCPU206からのレンダリングパラメータを受信
し、統一システムメモリ202に記憶されているフレー
ムバッファに直接レンダリングする(図2)。このレン
ダリングエンジン208はメモリコントローラ214へ
メモリアクセスリクエストを発生する。レンダリングエ
ンジン208は他のメモリクライアントと共に統一シス
テムメモリ202を共用しているので、レンダリングエ
ンジン208の性能は統一システムメモリ202への負
荷に応じて変わる。レンダリングエンジン208は4つ
の主要機能ユニット、すなわちホストインターフェース
と、ピクセルパイプラインと、メモリ転送エンジンと、
メモリリクエストユニットに論理的に区画化されてい
る。ホストインターフェースはホストとプログラミング
インターフェースレジスタとの間の読出しおよび書込み
を制御する。ピクセルパイプラインはラスター化および
パイプラインのフレームバッファへのレンダリングを実
行する。メモリ転送エンジンはリニアバッファおよびフ
レームバッファの双方におけるメモリのバンド幅のバイ
トに整合したクリアおよびコピーを実行する。メモリリ
クエストユニットはピクセルパイプラインからのリクエ
スト間の仲裁を行い、メモリコントローラ214へ発生
すべきメモリリクエストをキューアップする。
【0020】コンピュータシステム200は統一システ
ムメモリ202における仮想ピクセルバッファのダイナ
ミックメモリ割当ても行う。ピクセルバッファはフレー
ムバッファと、テキスチャーマップと、ビデオマップ
と、イメージバッファとを含む。各ピクセルバッファは
マルチカラーバッファと、深さバッファと、ステンシル
バッファとを含むことができる。本発明ではピクセルバ
ッファはタイルと称される隣接メモリを単位として割当
てられ、ピクセルバッファのダイナミック割当てを行う
ためにアドレス変換バッファが設けられる。
【0021】図5を参照すると、ここには本発明に係る
ピクセルバッファのダイナミック割当てを行うためのタ
イル300の一例が示されている。本発明の好ましい実
施の形態では、各タイル300は64キロバイトの物理
的に隣接するメモリを含む。64キロバイトのタイルサ
イズは32ビットのピクセルに対して128×128個
のピクセルから構成でき、16ビットのピクセルに対し
て256×128個のピクセルから構成でき、8ビット
のピクセルに対して512×128個のピクセルから構
成できる。本発明ではこれらタイルは64キロバイトの
整合したアドレスから始まる。各ピクセルバッファに対
し整数のタイルを割当てることができる。例えば200
×200のピクセルバッファおよび256×256ピク
セルのバッファの双方は、4つの(128×128)ピ
クセルタイルを必要とする。
【0022】図6を参照すると、ここには本発明に係る
ピクセルバッファ302の一例が示されている。本発明
のコンピュータシステム200では、変換用ハードウェ
アはピクセルバッファ302の仮想アドレスを統一シス
テムメモリ202内の物理的メモリロケーションにマッ
ピングする。コンピュータシステム200の計算ユニッ
ト(画像処理および圧縮伸長IC212、グラフィック
スバックエンドIC212、入出力IC210およびレ
ンダリングエンジン208)の各々は、ピクセルバッフ
ァ302の仮想アドレスを統一システムメモリ202内
の物理的メモリロケーションにマッピングするための変
換用ハードウェアを含む。各ピクセルバッファ302は
n個のタイル300(ここでnは整数である)に区画化
されている。本発明の好ましい実施の形態はn=4であ
る。
【0023】レンダリングエンジン208はフレームバ
ッファ(x,y)アドレスを物理的メモリアドレスに変
換するために、フレームバッファアドレス変換バッファ
(TLB)をサポートする。このTLBにはカラーバッ
ファおよびフレームバッファのステンシル深さバッファ
を構成するタイルのベース物理的メモリアドレスがCP
U206によってロードされる。本発明の好ましい実施
の形態では、フレームバッファTLBは2048×20
48個のピクセルのカラーバッファおよび2048×2
048個のピクセルのステンシル深さバッファのタイル
ベース物理的メモリアドレスをホールドするのに十分な
エントリーを有する。従って、TLBはカラーバッファ
タイル用の256のエントリーとステンシル深さバッフ
ァタイル用の256のエントリーを有する。
【0024】タイルはメモリ割当て用の便利なユニット
となっている。メモリ全体にタイルを分散できるように
することにより、タイル化によって隣接して割当てるべ
きメモリ量を管理可能になっている。さらにタイル化
は、フレームバッファによって消費されるシステムメモ
リの量を低減する手段となっている。ディスプレイに対
応するピクセルを含まないタイル、すなわち可視化でき
ないタイルへのレンダリングは容易にクリップアウトで
きるので、これらタイルのためにメモリを割当てる必要
はなくなる。例えば、フロントおよびバックRGDAバ
ッファと深さバッファから成る1024×1024の仮
想フレームバッファは、完全に常駐する場合、12Mb
のメモリを使うことになる。しかしながら、各1024
×1024のバッファが64(128×128)のタイ
ルに区画化されており、それらタイルのうちの4つのタ
イルしか非排除ピクセルを有していない場合、可視化タ
イル用メモリのみを割当てればよいことになる。この場
合、3Mbしか消費されないこととなる。
【0025】本発明では、メモリシステムクライアント
(例えばCPU206と、レンダリングエンジン208
と、入出力IC210と、グラフィックスバックエンド
IC212と、画像プロセッサ214と、データ圧縮/
伸長デバイス215)は、統一システムメモリ202を
共用する。各メモリシステムクライアントは他のメモリ
システムクライアントの各々により共用されるメモリに
アクセスするので、1つの専用メモリユニットから他の
専用メモリユニットへデータを転送する必要はない。例
えば入出力IC210によりデータを受信し、データ圧
縮/伸長デバイス215によりこれをデコンプレス(す
なわち伸長)し、統一システムメモリ202に記憶させ
ることができる。次にこのデータは、CPU206、レ
ンダリングエンジン208、入出力IC210、グラフ
ィックスバックエンドIC212または画像プロセッサ
214によってアクセスできる。第2の例として、CP
U206、レンダリングエンジン208、入出力IC2
10、グラフィックスバックエンドIC212または画
像プロセッサ214は、CPU206、レンダリングエ
ンジン208、入出力IC210、グラフィックスバッ
クエンドIC212または画像プロセッサ214によっ
て発生されたデータを使用できる。計算ユニット(CP
U206と、レンダリングエンジン208と、入出力I
C210と、グラフィックスバックエンドIC212
と、画像処理および圧縮/伸長IC216と、グラフィ
ックスレンダリングおよびメモリコントローラIC21
8と、データ圧縮/伸長デバイス215)の各々は、下
記に説明するようにピクセルバッファの物理的アドレス
を決定するための変換ハードウェアを有する。
【0026】本発明のコンピュータシステム200が従
来のコンピュータシステムアーキテクチャよりも機能的
な利点を提供する多数のビデオアプリケーションがあ
る。これらアプリケーションは、ビデオ会議からビデオ
編集まで、種々存在する。種々のアプリケーションのた
めに必要な処理の違いは大きいが、すべてのアプリケー
ションではいくつかの処理工程が共通となっている。す
なわちキャプチャー工程、フィルタリング工程、スケー
リング工程、圧縮工程、ブレンディング工程およびディ
スプレイ工程が共通している。コンピュータシステム2
00の作動中、入出力IC210はビデオデータを圧縮
されたストリームにすることができ、このビデオデータ
は統一システムメモリ202に記憶できる。入出力IC
210はグラフィックスレンダリングおよびメモリコン
トローラIC218を通るパスを通して統一システムメ
モリ220に記憶された圧縮データにアクセスできる。
次にこの入出力IC210はアクセスしたデータをデコ
ンプレス(伸長)し、デコンプレスしたデータを統一シ
ステムメモリ202に記憶できる。こうして記憶された
画像データは次に、例えば記憶された画像を別の画像に
マッピングするためのレンダリングエンジン208によ
りテキスチャーマップとして利用できる。次に、こうし
て合成画像は既に統一システムメモリ202にダイナミ
ックに割当てられているピクセルバッファ内に記憶でき
る。この合成画像が統一システムメモリ202にダイナ
ミックに割当てられたフレームバッファ内に記憶された
場合、この合成画像はグラフィックスバックエンドIC
212によりディスプレイすることができるし、またす
でに統一システムメモリ202内にダイナミックに割当
てられた別のピクセルバッファへ画像を書き戻すことに
より、この画像をキャプチャーできる。データをコンピ
ュータシステム200内のある専用メモリユニットから
別の専用メモリユニットへ転送する必要はないので、機
能性が増している。
【0027】本発明の好ましい実施の形態では、66M
Hzでクロック制御される256ビットのワイドメモリ
データバスを介してアクセスされる同期式DRAM(S
DRAM)を用いて、図2の統一システムメモリ202
が構成されている。1つのSDRAMはメモリセルの行
および列から成る。1つの行のメモリセルはページと称
され、メモリセルは行アドレスおよび列アドレスによっ
てアクセスされる。1つの行がアクセスされると行全体
がラッチに入れられ、その行にその後のアクセスするに
は列アドレスしか必要としない。同じ行へのアクセスは
ページアクセスと称される。本発明の好ましい実施の形
態では、統一システムメモリ202は2.133Gb/
sのピークデータバンド幅を提供している。さらに本発
明の好ましい実施の形態では、統一システムメモリ20
2は8個のスロットから構成される。各スロットは1つ
のSDRAMのDIMMをホールドでき、1つのSDR
AM DIMMは1M×16または4M×16のSDR
AMコンポーネントから構成され、DIMMのフロント
側のみ、またはフロント側またはバック側に集中され
る。外部SDRAMバンクを構成するのに2つのDIM
Mが必要である。1M×16のSDRAMコンポーネン
トは32メガバイトの外部バンクを構成するが、4M×
16のSDRAMコンポーネントは128メガバイトの
外部バンクを構成する。統一システムメモリ202のサ
イズは、32メガバイトから1ギガバイトの範囲とする
ことができる。
【0028】図7は、本発明に係るアドレス変換方式の
ブロック図を示す。図8は、本発明のメモリコントロー
ラ204のブロック図を示す。
【0029】メモリクライアントインターフェースは、
下記の表1および表2にリストされた信号を含む。
【0030】
【表1】
【0031】
【表2】 図9を参照すると、ここにはメモリクライアントリクエ
ストのためのタイミング図が示されている。メモリクラ
イアントはclientreq.adr、client
req.msg、clientreq.cmd、cli
entreq.eccを適当な値にセットしながらcl
ientreq.validをアサートすることにより
メモリコントローラ204にリクエストを行う。キュー
に余裕がない場合、メモリクライアントキューにリクエ
ストをラッチする。メモリクライアント、レンダリング
エンジン208および入出力IC210のうちの2つし
かclientreq.msgを使用しない。メッセー
ジは入出力IC210またはレンダリングエンジン20
8内のどのサブシステムがリクエストを行ったかを特定
する。エラーが発生した場合にこのメッセージはデバッ
グプロセスにおいて補助用の他の対応する情報と共にセ
ーブされる。このメッセージはレンダリングエンジン2
08に対してはリクエストパイプを通過され、デバッグ
プロセスにおける補助のための他の対応する情報と共に
リターンされる。レンダリングエンジン208に対して
このメッセージはリクエストパイプを通過され、書込み
リクエスト中はclientreq.wrrdy信号と
共にリターンされるか、または読出しリクエスト中はc
lientreq.rdrdy信号と共にリターンされ
る。レンダリングエンジン208は、どのレンダリング
エンジン208のキューにアクセスするかを決定するた
めにメッセージ内に含まれる情報を使用する。
【0032】図10を参照すると、ここにはメモリクラ
イアント書込みデータのためのタイミング図が示されて
いる。書込みリクエストのためのデータはアドレスおよ
びリクエストと共にラッチされることはない。その代わ
りにリクエストがリクエストパイプのデコードステージ
に達したことを表示するclientreq.wrrd
yをメモリコントローラ204がアサートすると、デー
タ、マスクおよびメッセージがラッチされる。メモリク
ライアントキューはリクエストパイプの前方にあるの
で、アサーションclientreq.gntとcli
entreq.wrrdyとの間の関係は簡単ではな
い。clientreq.msgはレンダリングエンジ
ン208および入出力IC210に対してのみ有効であ
る。メモリコントローラ204はclientreq.
wrrdyのアサーションの少なくとも1サイクル前に
clientreq.oe信号をアサートする。このc
lientreq.oeはメモリクライアントによって
局部的にラッチされ、メモリクライアントのメモリデー
タバスドライバをターンオンするのに使用される。
【0033】図11を参照すると、ここにはメモリクラ
イアント読出しデータのためのタイミング図が示されて
いる。読出されたデータは、memdata2clie
nt_outバスを通ってメモリクライアントへ送られ
る。clientres.rdrdyがアサートされる
と、データおよびメッセージは有効である。
【0034】メモリクライアントインターフェースは下
記の表3および表4にリストされた信号を含む。
【0035】
【表3】
【0036】
【表4】 データおよびマスクはデータパイプにラッチされ、me
mmask_outおよびmemdata2mem_o
utを通って統一システムメモリ202にフローする。
データおよびマスクからはECCおよびECCマスクが
発生され、eccmaskおよびecc_outを通っ
て統一システムメモリ202へ送られる。memdat
aoe信号はメモリバスドライバをターンオンするのに
使用される。統一システムメモリ202からのデータお
よびECCは、バス内のmemdata2client
_inおよびecc_inに至る。ECCは入進データ
が正しいかどうかを判断するのに使用される。データ内
に1ビットのエラーがある場合、このエラーは訂正さ
れ、訂正されたデータはメモリクライアントに送られ
る。2ビット以上のエラーがある場合、CPU206は
インターラプトされ、正しくないデータはメモリクライ
アントへリターンされる。Ras_n、cas_n、w
e_nおよびcs_nは統一システムメモリ202のた
めの制御信号である。
【0037】図12を参照する。ここには統一システム
メモリ202によって実行される新しいページへの書込
み例のタイミング図が示されている。図13を参照する
と、ここには統一システムメモリ202によって実行さ
れる新しいページからの読出し例のタイミング図が示さ
れている。同じSDRAMページの読出しまたは書込み
動作は図12および図13に示された動作と同じである
が、同じページ動作はプリチャージおよび起動サイクル
が不要である点が異なっている。
【0038】リクエストパイプはメモリコントローラ2
04のための制御センターとなっている。パイプの一端
にメモリクライアントリクエストが入れられ、他方の側
からメモリコマンドとして取出される。メモリクライア
ントキューはパイプの前方にあり、パイプの次に仲裁、
デコードおよび最後に発生/ステートマシンが続く。キ
ュー内に余裕がない場合、メモリクライアントはその内
部にリクエストを入れることができる。仲裁ロジックは
メモリクライアントキューの上部にあるリクエストのす
べてを見て、リクエストパイプを通してどのリクエスト
をスタートさせるかを判断する。リクエストは仲裁ステ
ージからデコードステージへフローする。デコードステ
ージ中、リクエストに関する情報が収集され、発生/ス
テートマシンステージへ送られる。ステートマシンはこ
の情報に基づき統一システムメモリ202のための適当
なシーケンスのコマンドを決定する。発生ステージの後
方部分はステートマシンのステートを制御信号にデコー
ドし、この制御信号はラッチされ、次に統一システムメ
モリ202へ送られる。リクエストは2サイクル以上の
間、発生ステージ内にとどまることができる。リクエス
トが発生/ステートマシンステージにとどまる間、リク
エストパイプの他の部分が停止される。リクエストパイ
プの各ステージについて説明する。
【0039】メモリクライアントのすべてはリフレッシ
ュを除きキューを有する。リフレッシュリクエストは他
のリクエストが発生される前にリタイアするように保証
されているので、キューは不要である。5つのメモリク
ライアントキューは書込み側にメモリクライアントを有
し、読出し側に仲裁ロジックを有する簡単な2ポート構
造となっている。clientres.gntのアサー
ションによって表示されるメモリクライアントキュー内
で利用できるスペースがある場合、メモリクライアント
はリクエストをそのキュー内に入れることができる。メ
モリクライアントリクエストはアドレスと、コマンド
(読出し、書込みまたは読出し−変更−書込み)と、メ
ッセージと、ECC有効信号と、リクエスト有効表示信
号とから成る。clientres.validおよび
clientres.gntの双方がアサートされる
と、メモリクライアントキュー内にリクエストがラッチ
される。パイプラインが停止していなければ仲裁ロジッ
クはメモリクライアントキューの上部にあるリクエスト
のすべてを見て、どのリクエストをポップオフし、メモ
リクライアントキューの上部にあるリクエストのデコー
ドステージへ送るかを判断し、どのリクエストをポップ
オフしてリクエストパイプのデコードステージへ送るか
を判断する。
【0040】メモリクライアントとアービタとの間には
リクエストキューがあるので、clientres.g
nt信号はリクエストがリタイアしたことを表示しな
い。リクエストはまだ仲裁プロセスを通過する必要があ
る。リクエストを別の道に入れるために、メモリクライ
アントAはメモリクライアントBの前にclientr
es.gnt信号を受信できるが、メモリクライアント
Bのほうが優先度が高ければ、メモリクライアントAか
らのリクエストよりも前にそのリクエストはリタイアで
きる。
【0041】<アービタ>上記のようにアービタはどの
メモリクライアントのリクエストがリクエストパイプの
デコードステージに進むかを判断する。この判断プロセ
スは2つのステップから成る。第1のステップは現在の
メモリクライアントのための仲裁スロットがオーバーし
ているかどうかを判断することである。仲裁スロットは
同じメモリクライアントからの一連のリクエストであ
る。1つの仲裁スロットで認められるリクエストの数お
よびタイプは変わる。下記の表5は仲裁スロット内で各
メモリクライアントが何を行うことができるかをリスト
したものである。
【0042】
【表5】 そのときの仲裁スロットおよびそのときのスロットオー
ナーからの次のリクエストに対するステートに基づき、
アービタは仲裁スロットを終了すべきかどうかを判断す
る。終了すべきでない場合、そのときの仲裁スロットを
所有するメモリクライアントからのリクエストをデコー
ドステージへ送る。そのときの仲裁スロットを終了する
場合、アービタは仲裁アルゴリズムからの結果を使用
し、どのリクエストをデコードステージへ送るかを判断
する。仲裁アルゴリズムはグラフィックスバックエンド
IC212が仲裁スロットの2分の1を得て、入出力I
C210が4分の1を得て、画像処理および圧縮伸長I
C216が8分の1を得て、レンダリングエンジン20
8が16分の1を得て、CPU206が32分の1を得
て、リフレッシュが64分の1を得るように保証する。
【0043】各メモリクライアントの平均バンド幅を予
測することは困難であるが、メモリクライアント当たり
の最悪ケースのスロット周波数が計算可能である。第1
のステップは仲裁スロット中に各メモリクライアントが
使用できる最大サイクル数を判断することである。下記
の表6は、各タイプの動作に関連したサイクル数を示
す。表6を参照すると、Pはプリチャージを示し、Xは
デッドサイクルを示し、Aは起動を示し、R0は読出し
ワード0を示し、W0は書込みワード0を示し、Ref
はリフレッシュを示す。
【0044】
【表6】 下記の表7はメモリクライアントごとの最大サイクル数
を示す。
【0045】
【表7】 最後に、メモリクライアントごとの1秒当たりのスロッ
トを計算することができる。すべてのメモリクライアン
トが常時リクエストしている場合、各メモリクライアン
トは64スロットの後にリターンを得る。これをラウン
ドと称す。このラウンドでは、グラフィックスバックエ
ンドは64スロットのうちの32スロットを得て、入出
力IC210は64スロットのうちの16スロットを得
るので、1ラウンドは32*20+8*18+4*12
+2*12+14=1062サイクルかかることにな
る。
【0046】
【表8】 <デコードロジック>デコードロジックはアービタから
のリクエストを受信する。先のリクエストから維持され
たステートおよびそのときのリクエスト内に含まれる情
報に基づき、デコードロジックはどのメモリバンクを選
択するか、次のステージ内の4つのステートマシンのう
ちのどれがリクエストを取り扱うのか、現在のリクエス
トは先のリクエストと同じページにあるのかどうかを判
断する。この情報は発生/ステートマシンステージへ送
られる。
【0047】統一システムメモリ202は8スロットか
ら構成される。1つのスロットは1つのSDRAM D
IMMをホールドすることができる。1つのSDRAM
DIMMは1M×16または4M×16のSDRAM
コンポーネントから製造され、DIMMのフロント側ま
たはフロント側およびバック側に集中されている。1つ
の外部SDRAMバンクを構成するのに2つのDIMM
が必要である。1M×16のSDRAMコンポーネント
は32メガバイトの外部バンクを構成するが、4M×1
6のSDRAMコンポーネントは128メガバイトの外
部バンクを構成する。統一システムメモリ202のサイ
ズは、32メガバイトから1ギガバイトの範囲とするこ
とができる。
【0048】各SDRAM部品は2つの内部バンク、従
って2つの可能なオープンページを有する。外部バンク
の最大数は8個であり、内部バンクの最大数は16個で
ある。メモリコントローラ204は一度に4つのオープ
ンページしかサポートすることができない。この問題に
ついてはこの章で後に詳細に検討する。
【0049】下記にデコードロジックについて詳細に説
明する。初期化中、ソフトウェアはメモリを調べ、どれ
だけ多くのメモリバンクが存在しているか、各バンクの
サイズを判断する。ソフトウェアはこの情報に基づき、
8バンク制御レジスタをプログラムする。各バンク制御
レジスタ(レジスタの章を参照されたい)は、バンクの
サイズを表示する1ビットと、そのバンクの上部アドレ
スビットを示す5ビットを有する。ソフトウェアは16
メガビットの外部バンクが続く下方アドレスレンジ内に
64メガビットの外部バンクを設けなければならない。
これはメモリ内にギャップが生じるのを防止するためで
ある。デコードロジックは入進するリクエストの上部ア
ドレスビットと8バンク制御レジスタとを比較し、どの
外部バンクを選択するかを決定する。比較されるビット
数はバンクのサイズによって決まる。例えばバンクサイ
ズが64メガビットである場合、デコードロジックはリ
クエストアドレスのビット24:22とバンク制御レジ
スタのビット4:2と比較する。一致していればそのバ
ンクを選択する。各外部バンクは別個のチップセレクト
を有する。入進アドレスが2つ以上のバンク制御レジス
タと一致していれば、最も少ない数のバンクを選択す
る。入進アドレスがバンク制御レジスタのいずれとも一
致しない場合、メモリアドレスのエラーが発生する。エ
ラーが発生するとエラーレジスタ内にリクエストに関す
る情報が捕捉され、メモリコントローラ204のインタ
ーラプトがイネーブルされている場合にはプロセッサは
インターラプトされる。エラーを生じさせたリクエスト
はパイプライン内の次のステージへ送られ、正常なリク
エストのように処理されるが、メモリコントローラ20
4は外部バンクセレクトのすべてをデアサートするの
で、実際にはメモリ動作は行われない。レンダリングエ
ンジン208のメッセージのビット6がセットされる時
の外部バンクセレクトのデアサートが行われる。無効T
LBエントリーを用いてリクエストが発生されると、レ
ンダリングエンジン208はこのビットをセットする。
【0050】図14を参照する。メモリコントローラ2
04はどの物理的外部バンクコンフィギュレーションも
取り扱うことができるが、外部バンク0は常に満たされ
ており、密度が減少するような順序で外部バンクを設置
する(例えばバンク0を64メガビットの外部バンクと
し、バンク2を16メガビットの外部バンクとする)こ
とを推奨する。
【0051】先のパラグラフではデコードロジックがど
の外部バンクをどのように選択するかを説明した。本パ
ラグラフはページクロシングを決定する方法およびパイ
プラインの次のステージでどのバンクステートマシンを
使用するかを説明する。行レジスタと称される1組のレ
ジスタ内に先のリクエストのための内部および外部バン
クビットと共に行アドレスが維持される。各行レジスタ
はバンクステートマシンに対応する。行レジスタは4つ
(したがってバンクステートマシンが4つ)あるので、
デコードロジックは4つまでのオープンページのトラッ
クを維持できる。デコードロジックは新しいリクエスト
の内部/外部バンクビットと、4つの行レジスタとを比
較する。一致していれば、その行レジスタに対応するバ
ンクステートマシンを選択する。新しいリクエストが行
レジスタのいずれにも一致しなければ、行レジスタのう
ちの1つを選択し、新しいリクエスト情報によってレジ
スタを更新する。内部/外部バンクビットが行レジスタ
のうちの1つと一致し、新しいリクエストの行ビットが
そのレジスタ内の行ビットと一致していれば、同じペー
ジにリクエストがあり、そうでない場合は存在しない。
【0052】<ステートマシンおよび発生ロジック>デ
コードロジックは外部バンクセレクト信号、ステートマ
シンセレクト信号および同一ページ情報と共にリクエス
トを発生/ステートマシンステージへ送る。選択された
バンクステートマシンは発生ロジックがバンクステート
マシンのステートをSDRAM DIMMへ送られるコ
マンドにデコードする間、適当なステートを通過するシ
ーケンスを経る。4つのバンクステートマシンの他にリ
フレッシュおよび初期化動作専用のステートマシンが設
けられている。この初期化/リフレッシュステートマシ
ンは4つのバンクステートマシンが強制的にアイドルス
テートとされている間、初期化およびリフレッシュのた
めの特殊ステートを通過するシーケンスを経る。次の章
でバンクステートマシンおよび初期化/リフレッシュス
テートマシンについて説明する。
【0053】<バンクステートマシン>4つのバンクス
テートマシンは制御信号、アドレス信号およびデータ信
号へのアクセスの競合のみを受けて別々に作動する。バ
ンクステートマシンはページモード動作に対してデフォ
ルトする。すなわちオートプリチャージコマンドは使用
されず、ノンページモードのランダムレファレンスがあ
る場合には常にSDRAMバンクを明らかにプリチャー
ジしなければならない。デコードステートは適当なステ
ートを通るシーケンスを得る選択されたステートマシン
へページ情報と共にリクエストを送る。所定のステート
ではインターバルタイマーはSDRAMの最小インター
バル条件が満たされるまでステートマシンが次のステー
トに進むことを防止するようなステートにされる。バン
クステートマシンは一度に1つのリクエストで作動す
る。すなわち1つのリクエストは必要なプリチャージお
よび起動フェーズを通過するシーケンスを経て、次に完
了と見なされ、次のリクエストが開始されるポイントで
読出しまたは書込みフェーズを通過するシーケンスを経
る。最後にSDRAM制御信号を発生する信号発生ロジ
ックによって4つのバンクステートマシンのステートが
デコードされる。
【0054】ステートマシンが従わなければならないS
DRAMパラメータはいくつかある。これらパラメータ
はベンダーごとに若干変わっているが、ステートマシン
を簡略化するために最も共通するパラメータが選択さ
れ、インターバルタイマーにハードコピーされている。
次の表にリストされたパラメータとコンパチブルでない
SDRAMはサポートされない。
【0055】Tr2rpおよびTr2wは連続する読出
しコマンド、書込みコマンドおよびプリチャージコマン
ド間のインターバルを明瞭に定める付加的タイミングパ
ラメータである。これらパラメータは連続するコマンド
がデータ信号上の競合を生じさせないように保証するも
のである。これらパラメータはステートマシンシーケン
サによって内部で発生できるが、これらパラメータはス
テートマシンを簡略し、SDRAMパラメータと同じタ
イマーパラダイムを使用するように明瞭とされている。
【0056】
【表9】 上記表9を参照すると、バンクAおよびBは同じ外部バ
ンク内にあるが、Cは異なる外部バンク内にある。
【0057】図15を参照する。ここにはバンクステー
トマシンのフロー図が示されている。図15に示される
ようにTrp、TrrdおよびTrcdは設計により実
行される。Trc、tras、Tr2rpおよびTr2
wパラメータは4つのバンクステートマシンごとに1つ
のタイマーを有する。Tr2rpおよびTr2wタイマ
ーは共用データライン上での競合を防止するのに使用さ
れるので、4つのバンクステートマシンのすべてに共通
する。
【0058】初期化/リフレッシュステートマシンは2
つの機能、すなわち初期化およびリフレッシュ機能を有
する。まず初期化方法について説明し、次にリフレッシ
ュについて説明する。リセット後、初期化/リフレッシ
ュステートマシンはモードセットの前に行われるすべて
のバンクに対するプリチャージであるSDRAM初期化
方法を通過するシーケンスを得る。この発生ステージは
初期化/リフレッシュステートマシンのステートをコマ
ンドにデコードし、これらコマンドは次にSDRAMへ
送られる。モードセット後、コマンドはSDRAMモー
ドセットレジスタを2のCASレイテンシー、1のバー
スト長さおよびシーケンシャル動作タイプにプログラム
する。
【0059】SDRAMでは64msおきに6096の
リフレッシュサイクルが生じることが必要である。この
条件を満たすためにタイマーを備えたリフレッシュメモ
リクライアントが設けられている。このタイマーはリフ
レッシュメモリクライアントがアービタにリクエストす
るようにさせる信号を27マイクロ秒ごとに送る。アー
ビタは他のメモリクライアントのすべてと同じようにリ
フレッシュを取扱う。リフレッシュスロット用のタイム
となったとアービタが判断すると、アービタはデコード
ステージにリフレッシュリクエストを送る。デコードス
テージは行レジスタのすべてを無効にし、ステートマシ
ン/発生ステージにリクエストを送る。バンクステート
マシンがリフレッシュステートであるとみなすと、バン
クステートはアイドルステートとなる。初期化/リフレ
ッシュステートマシンはすべてのバンクに対するプリチ
ャージであるリフレッシュ動作を通過するシーケンスを
経て、次に2つのリフレッシュサイクルが続く。リフレ
ッシュコマンドはSDRAMを自動リフレッシュモード
にする。デバイス内部のアドレスカウンタはリフレッシ
ュサイクル中にワードおよびバンクアドレスをインクリ
メントする。リフレッシュサイクル後、SDRAMはア
イドルステートとなる。このことは、すべてのページが
クローズされたことを意味する。このことはリフレッシ
ュリクエスト中にはバンクステートマシンをアイドルス
テートとし、行レジスタを無効にすることが重要である
からである。
【0060】初期化/リフレッシュステートマシンはバ
ンクステートマシンと構造が極めて類似しており、SD
RAMパラメータを実行するためのタイマーを有する。
リフレッシュサイクル間でTrc条件を実行するのにT
rcタイマーが使用され、precharge all
コマンドがアクティブバンクに対するTrasを侵さな
いよう保証するのにバンクTrasタイマーからの出力
が使用される。
【0061】<データパイプ>データパイプの主な機能
は、(1)メモリクライアントと統一システムメモリ2
02との間でデータを移動すること、(2)ECC動作
を実行すること、および(3)読出し−変更−書込み動
作中に、メモリクライアントからの新しいバイトとメモ
リからの古いデータとをマージすること。これら機能の
各々について後述する。
【0062】<データフロー>図8を参照すると、デー
タパイプはリクエストパイプの最終ステージとのロック
ステップにある1つのステージを有する。書込みリクエ
ストがデコードステージに達すると、リクエストパイプ
はclientres.wrrdyをアサートする。こ
のclientres.wrrdy信号はMemdat
a2mem_inバス上のデータがデータパイプのEC
Cステージ内にラッチされたことをメモリクライアント
に表示する。このデータはECCステージ内にホールド
され、リクエストパイプ内でリクエストがリタイアされ
るまで統一システムメモリ202へフローする。
【0063】入進読出しデータはデータパイプ内にラッ
チされ、ECC訂正ロジックを通過し、次にMemda
ta2client_outバスを進む前に再びラッチ
される。リクエストパイプは統一システムメモリ202
が読出し応答データをリターンするのにどれだけのサイ
クルがかかるかを知る。読出された応答データがMem
data2client_outバス上にあると、リク
エストパイプはclientres.rdrdyをアサ
ートする。
【0064】以上で本発明の好ましい実施の形態すなわ
ちグラフィックス用にダイナミックにメモリを割当てる
ことを特徴とするコンピュータのシステムアーキテクチ
ャについて説明した。特定の実施の形態を参照して本発
明について説明したが、本発明はかかる実施の形態のみ
によって限定されると見なすものではなく、特許請求の
範囲のみに基づいて解釈すべきである。
【図面の簡単な説明】
【図1】周辺プロセッサおよび関連する専用メモリユニ
ットを含む従来の代表的なコンピュータシステムの回路
ブロック図である。
【図2】本発明に係る統一システムメモリコンピュータ
アーキテクチャの一例を示す回路ブロック図である。
【図3】内部に集積化されたメモリコントローラ(M
C)およびグラフィックスレンダリングエンジンを含む
グラフィックスレンダリングおよびメモリコントローラ
ICの内部回路ブロック図である。
【図4】図3のグラフィックスレンダリングおよびメモ
リコントローラICの内部回路ブロック図である。
【図5】本発明に係るピクセルバッファのダイナミック
割当てを行うためのタイルの一例を示す図である。
【図6】本発明に係るn個のタイルから成るピクセルバ
ッファ例を示す図である。
【図7】本発明に係るアドレス変換方式を示すブロック
図である。
【図8】本発明に係るメモリコントローラのブロック図
である。
【図9】本発明に係る統一システムメモリに発生された
メモリクライアントリクエストのためのタイミングチャ
ートである。
【図10】本発明に係るメモリクライアント書込みデー
タのためのタイミングチャートである。
【図11】本発明に係るメモリクライアント読出しデー
タのためのタイミングチャートである。
【図12】本発明に係る統一システムメモリにより実行
される新しいページへの書込み例のためのタイミングチ
ャートである。
【図13】本発明に係る統一システムメモリにより実行
される新しいページからの読出し例のためのタイミング
チャートである。
【図14】本発明に係るメモリコントローラの外部バン
クを示す図である。
【図15】本発明に係るバンクステートマシンのための
フローチャートである。
【符号の説明】
202 統一システムメモリ 204 メモリコントローラ(MC) 206 CPU 208 グラフィックスレンダリングエンジン 210 入出力回路 212 グラフィックスバックエンドIC 214 画像プロセッサ(IP) 215 データ伸張ユニット(C/E) 216 画像処理および圧縮伸張IC(IPCEIC) 218 グラフィックスレンダリングおよびメモリコン
トローラIC 220 デマルチプレクサ(SDMUX) 236 GBEインターフェース 238 CPU/IPCEインターフェース 240 I/Oインターフェース
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ザヒド、エス.ハッサイン アメリカ合衆国カリフォルニア州、パロア ルト、シェラトン、345、アパートメント、 410

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】メモリコントローラと、 前記メモリコントローラに結合されたグラフィックスレ
    ンダリングエンジンと、 前記メモリコントローラに結合されたCPUと、 前記メモリコントローラに結合された画像プロセッサ
    と、 前記メモリコントローラに結合されたデータ圧縮/伸長
    デバイスと、 前記メモリコントローラに結合された入出力デバイス
    と、 前記メモリコントローラに結合されたグラフィックスバ
    ックエンドデバイスと、 広バンド幅データバスを介して前記メモリコントローラ
    に結合されたシステムメモリとを備え、前記システムメ
    モリが前記メモリコントローラを介し前記CPU、前記
    入出力デバイス、前記グラフィックスバックエンドデバ
    イス、前記画像プロセッサ、前記データ圧縮/伸長デバ
    イス、前記レンダリングエンジンおよび前記メモリコン
    トローラを含むメモリクライアントに対する読出し/書
    込みアクセスを行い、前記メモリコントローラが前記メ
    モリクライアントと前記システムメモリとのインターフ
    ェースとなっており、 さらに、ピクセルバッファの仮想アドレスを前記システ
    ムメモリ内の物理的メモリロケーションにマッピングす
    るための変換ハードウェアを備え、前記ピクセルバッフ
    ァが物理的に隣接するメモリのタイルとして割当てられ
    ることを特徴とするコンピュータシステム。
  2. 【請求項2】前記レンダリングエンジンおよび前記メモ
    リコントローラが第1のIC上に形成されているか、ま
    たは前記レンダリングエンジンおよび前記メモリコント
    ローラが第1IC上に形成されており、前記画像プロセ
    ッサおよび前記データ圧縮/伸長デバイスが第2ICに
    形成されている、請求項1に記載のコンピュータシステ
    ム。
  3. 【請求項3】第1IC上に形成されたグラフィックスレ
    ンダリングエンジンおよびメモリコントローラと、 前記第1ICに結合されたCPUと、 前記第1ICに結合された画像プロセッサと、 前記第1ICに結合されたデータ圧縮/伸長デバイス
    と、 前記第1ICに結合された入出力デバイスと、 前記第1ICに結合されたグラフィックスバックエンド
    デバイスと、 広バンド幅データバスを介して前記第1ICに結合され
    たシステムメモリとを備え、前記システムメモリが前記
    第1ICを介し前記CPU、前記入出力デバイス、前記
    グラフィックスバックエンドデバイス、前記画像プロセ
    ッサ、前記データ圧縮/伸長デバイス、前記レンダリン
    グエンジンおよび前記メモリコントローラを含むメモリ
    クライアントに対する読出し/書込みアクセスを行い、
    前記メモリコントローラが前記メモリクライアントと前
    記システムメモリとのインターフェースとなっており、 さらに、ピクセルバッファの仮想アドレスを前記システ
    ムメモリ内の物理的メモリロケーションにマッピングす
    るための変換ハードウェアを備え、前記ピクセルバッフ
    ァが物理的に隣接するメモリのタイルとして割当てられ
    ることを特徴とするコンピュータシステム。
  4. 【請求項4】前記画像プロセッサおよび前記データ圧縮
    /伸長デバイスが第2IC上に形成された、請求項3に
    記載のコンピュータシステム。
  5. 【請求項5】前記第1ICが多重分離バスにより前記シ
    ステムメモリに結合されており、前記多重分離バスが前
    記第1ICに結合され、133MHzのクロックにより
    制御される144本のラインを有する第1バスと、前記
    システムメモリに結合され、66MHzのクロックで制
    御される288本のラインを有する第2バスと、前記第
    1バスと前記第2バスとの間を進む信号を多重分離する
    ためのデマルチプレクサとを含む、請求項3または4に
    記載のコンピュータシステム。
  6. 【請求項6】CPUと、 入出力デバイスと、 グラフィックスバックエンドユニットと、 内部に集積化された画像プロセッサおよびデータ圧縮伸
    長デバイスを含む第1ICと、 内部に集積化されたグラフィックスレンダリングエンジ
    ンおよびメモリコントローラデバイスを含む第2IC
    と、 前記CPU、前記入出力デバイス、前記グラフィックス
    バックエンドデバイスおよび前記画像プロセッサ、前記
    データ圧縮/伸長デバイス、前記レンダリングエンジン
    および前記メモリコントローラとを含むメモリクライア
    ントに対し読出し/書込みアクセスできるようにするシ
    ステムメモリとを備え、前記メモリコントローラが前記
    メモリクライアントと前記システムメモリとの間のイン
    ターフェースとなっており、さらに、 前記システムメモリと前記第2ICとの間でデータを転
    送するための広バンド幅データバスと、 ピクセルバッファの仮想アドレスを前記システムメモリ
    内の物理的メモリロケーションにマッピングするための
    変換ハードウェアとを備え、前記ピクセルバッファが物
    理的に隣接したメモリのタイルとしてダイナミックに割
    当てられることを特徴とするコンピュータシステム。
  7. 【請求項7】前記レンダリングエンジンに前記変換ハー
    ドウェアが形成されるか、または前記レンダリングエン
    ジン、前記メモリコントローラ、前記画像プロセッサ、
    前記データ圧縮/伸長ユニット、前記グラフィックスバ
    ックエンドICおよび前記入出力ICのそれぞれに前記
    変換ハードウェアが形成される、請求項1、3または6
    記載のコンピュータシステム。
  8. 【請求項8】前記システムメモリが、同期式DRAMを
    用いて形成されるか、66MHzでクロック制御される
    256ビットのワイドなメモリデータバスを介してアク
    セスされる同期式DRAM(SDRAM)を用いて形成
    される、請求項1、3または6に記載のコンピュータシ
    ステム。
  9. 【請求項9】前記タイルが、128行のピクセルとして
    配置された64キロバイトの物理的に隣接するメモリか
    ら構成されるか、または各ピクセルが4バイトのピクセ
    ルである128行の128個のピクセルとして配置され
    た64キロバイトの物理的に隣接するメモリから形成さ
    れる、請求項1、3または6に記載のコンピュータシス
    テム。
  10. 【請求項10】前記第2ICが多重分離バスにより前記
    システムメモリに結合されており、前記多重分離バスが
    前記第2ICに結合され、133MHzのクロックによ
    り制御される144本のラインを有する第1バスと、前
    記システムメモリに結合され、66MHzのクロックで
    制御される288本のラインを有する第2バスと、前記
    第1バスと前記第2バスとの間を進む信号を多重分離す
    るためのデマルチプレクサとを含む、請求項6に記載の
    コンピュータシステム。
  11. 【請求項11】前記ダイナミックに割当てられるピクセ
    ルバッファがn個のタイル(ここでnは整数である)か
    ら成る、請求項1、3または6に記載のコンピュータシ
    ステム。
  12. 【請求項12】メモリコントローラと、 統一システムメモリと、 前記メモリコントローラを介して前記システムメモリに
    アクセスするメモリクライアントとを有する、ダイナミ
    ックにメモリ割当てを行うためのコンピュータシステ
    ム。
JP9251134A 1996-09-13 1997-09-16 コンピュータシステム Pending JPH10247138A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US713779 1996-09-13
US08/713,779 US6104417A (en) 1996-09-13 1996-09-13 Unified memory computer architecture with dynamic graphics memory allocation

Publications (1)

Publication Number Publication Date
JPH10247138A true JPH10247138A (ja) 1998-09-14

Family

ID=24867506

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9251134A Pending JPH10247138A (ja) 1996-09-13 1997-09-16 コンピュータシステム

Country Status (5)

Country Link
US (2) US6104417A (ja)
EP (1) EP0829820B1 (ja)
JP (1) JPH10247138A (ja)
CA (1) CA2214868C (ja)
DE (1) DE69722117T2 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001117555A (ja) * 1999-08-05 2001-04-27 Matsushita Electric Ind Co Ltd 同期dramを使用する画像転置メモリのためのモジューラ構造
JP2002530743A (ja) * 1998-11-16 2002-09-17 インフィネオン・テクノロジーズ・アーゲー ページタグレジスタを使用して、メモリデバイス内の物理ページの状態を追跡すること
JP2003501679A (ja) * 1999-05-26 2003-01-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ デジタルビデオ処理ユニット
US7145568B2 (en) 2000-09-29 2006-12-05 Intel Corporation Shared translation address caching
JP2008033928A (ja) * 2006-07-31 2008-02-14 Nvidia Corp Gpuにおけるページマッピングのための専用機構
JP2008090673A (ja) * 2006-10-03 2008-04-17 Mitsubishi Electric Corp キャッシュメモリ制御装置
JP2010505172A (ja) * 2006-09-29 2010-02-18 イマジネイション テクノロジーズ リミテッド 三次元コンピュータ映像を発生するシステムのためのメモリマネージメントの改良
JP2010044286A (ja) * 2008-08-15 2010-02-25 Panasonic Corp 画像処理装置
JP2010140480A (ja) * 2008-12-12 2010-06-24 Nvidia Corp Cpuトラフィックを特殊とマークすることによるデッドロックの回避
JP2015176492A (ja) * 2014-03-17 2015-10-05 株式会社ソニー・コンピュータエンタテインメント グラフィックス処理装置およびグラフィックス処理方法
JP2018005226A (ja) * 2016-07-05 2018-01-11 ユビタス インコーポレイテッドUbitus Inc. Vramでマルチソースメディアをオーバーレイするシステム及び方法
US10198361B2 (en) 2012-08-17 2019-02-05 Intel Corporation Memory sharing via a unified memory architecture

Families Citing this family (159)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW360823B (en) * 1996-09-30 1999-06-11 Hitachi Ltd Data processor and graphic processor
US6308248B1 (en) * 1996-12-31 2001-10-23 Compaq Computer Corporation Method and system for allocating memory space using mapping controller, page table and frame numbers
US9098297B2 (en) * 1997-05-08 2015-08-04 Nvidia Corporation Hardware accelerator for an object-oriented programming language
US6118462A (en) 1997-07-01 2000-09-12 Memtrax Llc Computer system controller having internal memory and external memory control
US6266753B1 (en) 1997-07-10 2001-07-24 Cirrus Logic, Inc. Memory manager for multi-media apparatus and method therefor
US6075546A (en) * 1997-11-10 2000-06-13 Silicon Grahphics, Inc. Packetized command interface to graphics processor
US6275243B1 (en) * 1998-04-08 2001-08-14 Nvidia Corporation Method and apparatus for accelerating the transfer of graphical images
US6480205B1 (en) 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
US6393543B1 (en) * 1998-11-12 2002-05-21 Acuid Corporation Limited System and a method for transformation of memory device addresses
US6260123B1 (en) * 1998-12-09 2001-07-10 Advanced Micro Devices, Inc. Method and system for memory control and access in data processing systems
US6546439B1 (en) 1998-12-09 2003-04-08 Advanced Micro Devices, Inc. Method and system for improved data access
US6226721B1 (en) 1998-12-09 2001-05-01 Advanced Micro Devices, Inc. Method and system for generating and utilizing speculative memory access requests in data processing systems
US6510497B1 (en) 1998-12-09 2003-01-21 Advanced Micro Devices, Inc. Method and system for page-state sensitive memory control and access in data processing systems
US6219769B1 (en) 1998-12-09 2001-04-17 Advanced Micro Devices, Inc. Method and system for origin-sensitive memory control and access in data processing systems
US6381683B1 (en) * 1998-12-09 2002-04-30 Advanced Micro Devices, Inc. Method and system for destination-sensitive memory control and access in data processing systems
US6563506B1 (en) * 1998-12-14 2003-05-13 Ati International Srl Method and apparatus for memory bandwith allocation and control in a video graphics system
US6362826B1 (en) * 1999-01-15 2002-03-26 Intel Corporation Method and apparatus for implementing dynamic display memory
US6189082B1 (en) * 1999-01-29 2001-02-13 Neomagic Corp. Burst access of registers at non-consecutive addresses using a mapping control word
US6414688B1 (en) * 1999-01-29 2002-07-02 Micron Technology, Inc. Programmable graphics memory method
US6377268B1 (en) * 1999-01-29 2002-04-23 Micron Technology, Inc. Programmable graphics memory apparatus
US6288729B1 (en) * 1999-02-26 2001-09-11 Ati International Srl Method and apparatus for a graphics controller to extend graphics memory
TW457430B (en) * 1999-03-02 2001-10-01 Via Tech Inc Memory access control device
US6526583B1 (en) 1999-03-05 2003-02-25 Teralogic, Inc. Interactive set-top box having a unified memory architecture
US6433785B1 (en) * 1999-04-09 2002-08-13 Intel Corporation Method and apparatus for improving processor to graphics device throughput
US6504549B1 (en) 1999-05-19 2003-01-07 Ati International Srl Apparatus to arbitrate among clients requesting memory access in a video system and method thereof
US6469703B1 (en) 1999-07-02 2002-10-22 Ati International Srl System of accessing data in a graphics system and method thereof
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US6452595B1 (en) 1999-12-06 2002-09-17 Nvidia Corporation Integrated graphics processing unit with antialiasing
US6198488B1 (en) * 1999-12-06 2001-03-06 Nvidia Transform, lighting and rasterization system embodied on a single semiconductor platform
US7209140B1 (en) 1999-12-06 2007-04-24 Nvidia Corporation System, method and article of manufacture for a programmable vertex processing model with instruction set
US6844880B1 (en) 1999-12-06 2005-01-18 Nvidia Corporation System, method and computer program product for an improved programmable vertex processing model with instruction set
US6643752B1 (en) * 1999-12-09 2003-11-04 Rambus Inc. Transceiver with latency alignment circuitry
US7017002B2 (en) * 2000-01-05 2006-03-21 Rambus, Inc. System featuring a master device, a buffer device and a plurality of integrated circuit memory devices
US7363422B2 (en) * 2000-01-05 2008-04-22 Rambus Inc. Configurable width buffered module
US20050010737A1 (en) * 2000-01-05 2005-01-13 Fred Ware Configurable width buffered module having splitter elements
US6502161B1 (en) 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US7266634B2 (en) * 2000-01-05 2007-09-04 Rambus Inc. Configurable width buffered module having flyby elements
US7404032B2 (en) * 2000-01-05 2008-07-22 Rambus Inc. Configurable width buffered module having switch elements
US7356639B2 (en) * 2000-01-05 2008-04-08 Rambus Inc. Configurable width buffered module having a bypass circuit
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US7184059B1 (en) 2000-08-23 2007-02-27 Nintendo Co., Ltd. Graphics system with copy out conversions between embedded frame buffer and main memory
US6825851B1 (en) 2000-08-23 2004-11-30 Nintendo Co., Ltd. Method and apparatus for environment-mapped bump-mapping in a graphics system
US6937245B1 (en) 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6980218B1 (en) 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US7061502B1 (en) 2000-08-23 2006-06-13 Nintendo Co., Ltd. Method and apparatus for providing logical combination of N alpha operations within a graphics system
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US7576748B2 (en) 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US7002591B1 (en) 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
JP4042088B2 (ja) * 2000-08-25 2008-02-06 株式会社ルネサステクノロジ メモリアクセス方式
US6885378B1 (en) * 2000-09-28 2005-04-26 Intel Corporation Method and apparatus for the implementation of full-scene anti-aliasing supersampling
US8692844B1 (en) * 2000-09-28 2014-04-08 Nvidia Corporation Method and system for efficient antialiased rendering
US6853382B1 (en) 2000-10-13 2005-02-08 Nvidia Corporation Controller for a memory system having multiple partitions
US6784889B1 (en) * 2000-12-13 2004-08-31 Micron Technology, Inc. Memory system and method for improved utilization of read and write bandwidth of a graphics processing system
US6753873B2 (en) * 2001-01-31 2004-06-22 General Electric Company Shared memory control between detector framing node and processor
US6864896B2 (en) * 2001-05-15 2005-03-08 Rambus Inc. Scalable unified memory architecture
GB2378108B (en) 2001-07-24 2005-08-17 Imagination Tech Ltd Three dimensional graphics system
EP1296237A1 (en) 2001-09-25 2003-03-26 Texas Instruments Incorporated Data transfer controlled by task attributes
US6741253B2 (en) * 2001-10-09 2004-05-25 Micron Technology, Inc. Embedded memory system and method including data error correction
US6906720B2 (en) * 2002-03-12 2005-06-14 Sun Microsystems, Inc. Multipurpose memory system for use in a graphics system
US7508398B1 (en) 2002-08-27 2009-03-24 Nvidia Corporation Transparent antialiased memory access
US7085910B2 (en) * 2003-08-27 2006-08-01 Lsi Logic Corporation Memory window manager for control structure access
US8775997B2 (en) 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8788996B2 (en) * 2003-09-15 2014-07-22 Nvidia Corporation System and method for configuring semiconductor functional circuits
US7286134B1 (en) 2003-12-17 2007-10-23 Nvidia Corporation System and method for packing data in a tiled graphics memory
US7420568B1 (en) 2003-12-17 2008-09-02 Nvidia Corporation System and method for packing data in different formats in a tiled graphics memory
US8711161B1 (en) 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
US6999088B1 (en) 2003-12-23 2006-02-14 Nvidia Corporation Memory system having multiple subpartitions
US7278008B1 (en) 2004-01-30 2007-10-02 Nvidia Corporation Virtual address translation system with caching of variable-range translation clusters
US7334108B1 (en) * 2004-01-30 2008-02-19 Nvidia Corporation Multi-client virtual address translation system with translation units of variable-range size
US7296139B1 (en) 2004-01-30 2007-11-13 Nvidia Corporation In-memory table structure for virtual address translation system with translation units of variable range size
JP3706383B1 (ja) * 2004-04-15 2005-10-12 株式会社ソニー・コンピュータエンタテインメント 描画処理装置および描画処理方法、ならびに情報処理装置および情報処理方法
CN1914915A (zh) * 2004-04-23 2007-02-14 住友电气工业株式会社 活动图像数据的编码方法、解码方法及实施这些方法的终端装置、以及双向对话型系统
US20050237329A1 (en) * 2004-04-27 2005-10-27 Nvidia Corporation GPU rendering to system memory
US20050246502A1 (en) * 2004-04-28 2005-11-03 Texas Instruments Incorporated Dynamic memory mapping
US7227548B2 (en) * 2004-05-07 2007-06-05 Valve Corporation Method and system for determining illumination of models using an ambient cube
US7221369B1 (en) 2004-07-29 2007-05-22 Nvidia Corporation Apparatus, system, and method for delivering data to multiple memory clients via a unitary buffer
US7277098B2 (en) * 2004-08-23 2007-10-02 Via Technologies, Inc. Apparatus and method of an improved stencil shadow volume operation
US8723231B1 (en) 2004-09-15 2014-05-13 Nvidia Corporation Semiconductor die micro electro-mechanical switch management system and method
US8711156B1 (en) 2004-09-30 2014-04-29 Nvidia Corporation Method and system for remapping processing elements in a pipeline of a graphics processing unit
KR20060044124A (ko) * 2004-11-11 2006-05-16 삼성전자주식회사 3차원 그래픽 가속을 위한 그래픽 시스템 및 메모리 장치
US7126615B2 (en) * 2004-11-12 2006-10-24 Via Technologies, Inc. Color compression using multiple planes in a multi-sample anti-aliasing scheme
US20060177122A1 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Method and apparatus for particle manipulation using graphics processing
US8427496B1 (en) 2005-05-13 2013-04-23 Nvidia Corporation Method and system for implementing compression across a graphics bus interconnect
US20060282604A1 (en) * 2005-05-27 2006-12-14 Ati Technologies, Inc. Methods and apparatus for processing graphics data using multiple processing circuits
US7493520B2 (en) * 2005-06-07 2009-02-17 Microsoft Corporation System and method for validating the graphical output of an updated software module
US11328764B2 (en) 2005-09-26 2022-05-10 Rambus Inc. Memory system topologies including a memory die stack
US7562271B2 (en) 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US7464225B2 (en) * 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
US8212832B2 (en) 2005-12-08 2012-07-03 Ati Technologies Ulc Method and apparatus with dynamic graphics surface memory allocation
US8698811B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Nested boustrophedonic patterns for rasterization
US9117309B1 (en) 2005-12-19 2015-08-25 Nvidia Corporation Method and system for rendering polygons with a bounding box in a graphics processor unit
US7791617B2 (en) * 2005-12-19 2010-09-07 Nvidia Corporation Method and system for rendering polygons having abutting edges
US8390645B1 (en) 2005-12-19 2013-03-05 Nvidia Corporation Method and system for rendering connecting antialiased line segments
US8218091B2 (en) * 2006-04-18 2012-07-10 Marvell World Trade Ltd. Shared memory multi video channel display apparatus and methods
US8284322B2 (en) 2006-04-18 2012-10-09 Marvell World Trade Ltd. Shared memory multi video channel display apparatus and methods
US8264610B2 (en) 2006-04-18 2012-09-11 Marvell World Trade Ltd. Shared memory multi video channel display apparatus and methods
US8928676B2 (en) * 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline
US8477134B1 (en) 2006-06-30 2013-07-02 Nvidia Corporation Conservative triage of polygon status using low precision edge evaluation and high precision edge evaluation
US8154554B1 (en) * 2006-07-28 2012-04-10 Nvidia Corporation Unified assembly instruction set for graphics processing
US7986327B1 (en) * 2006-10-23 2011-07-26 Nvidia Corporation Systems for efficient retrieval from tiled memory surface to linear memory display
US7805587B1 (en) 2006-11-01 2010-09-28 Nvidia Corporation Memory addressing controlled by PTE fields
US8427487B1 (en) 2006-11-02 2013-04-23 Nvidia Corporation Multiple tile output using interface compression in a raster stage
US8271746B1 (en) * 2006-11-03 2012-09-18 Nvidia Corporation Tiering of linear clients
US8482567B1 (en) 2006-11-03 2013-07-09 Nvidia Corporation Line rasterization techniques
US8120613B2 (en) * 2006-11-29 2012-02-21 Siemens Medical Solutions Usa, Inc. Method and apparatus for real-time digital image acquisition, storage, and retrieval
EP2071468A4 (en) * 2006-12-25 2010-11-03 Panasonic Corp MEMORY CONTROL DEVICE, MEMORY DEVICE AND MEMORY CONTROL METHOD
KR100867640B1 (ko) * 2007-02-06 2008-11-10 삼성전자주식회사 다중 접근 경로를 가지는 이미지 프로세싱 메모리를포함하는 시스템 온 칩
US8724483B2 (en) * 2007-10-22 2014-05-13 Nvidia Corporation Loopback configuration for bi-directional interfaces
US8063903B2 (en) * 2007-11-09 2011-11-22 Nvidia Corporation Edge evaluation techniques for graphics hardware
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9665951B2 (en) 2007-12-20 2017-05-30 Telefonaktiebolaget Lm Ericsson (Publ) Unified compression/decompression graphics architecture
US8255783B2 (en) * 2008-04-23 2012-08-28 International Business Machines Corporation Apparatus, system and method for providing error protection for data-masking bits
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8319783B1 (en) 2008-12-19 2012-11-27 Nvidia Corporation Index-based zero-bandwidth clears
US8330766B1 (en) 2008-12-19 2012-12-11 Nvidia Corporation Zero-bandwidth clears
GB0823254D0 (en) 2008-12-19 2009-01-28 Imagination Tech Ltd Multi level display control list in tile based 3D computer graphics system
GB0823468D0 (en) 2008-12-23 2009-01-28 Imagination Tech Ltd Display list control stream grouping in tile based 3D computer graphics systems
JP2011066543A (ja) * 2009-09-15 2011-03-31 Olympus Corp メモリアクセス制御装置及びメモリアクセス制御方法
US20110063304A1 (en) * 2009-09-16 2011-03-17 Nvidia Corporation Co-processing synchronizing techniques on heterogeneous graphics processing units
US10175990B2 (en) * 2009-12-22 2019-01-08 Intel Corporation Gathering and scattering multiple data elements
US9530189B2 (en) 2009-12-31 2016-12-27 Nvidia Corporation Alternate reduction ratios and threshold mechanisms for framebuffer compression
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
US8495464B2 (en) * 2010-06-28 2013-07-23 Intel Corporation Reliability support in memory systems without error correcting code support
US9171350B2 (en) 2010-10-28 2015-10-27 Nvidia Corporation Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up
US8836727B2 (en) * 2010-12-22 2014-09-16 Apple Inc. System level graphics manipulations on protected content
US9477597B2 (en) 2011-03-25 2016-10-25 Nvidia Corporation Techniques for different memory depths on different partitions
US8701057B2 (en) 2011-04-11 2014-04-15 Nvidia Corporation Design, layout, and manufacturing techniques for multivariant integrated circuits
US9529712B2 (en) 2011-07-26 2016-12-27 Nvidia Corporation Techniques for balancing accesses to memory having different memory types
US9886312B2 (en) 2011-09-28 2018-02-06 Microsoft Technology Licensing, Llc Dynamic provisioning of virtual video memory based on virtual video controller configuration
JP2013242694A (ja) * 2012-05-21 2013-12-05 Renesas Mobile Corp 半導体装置、電子装置、電子システム及び電子装置の制御方法
KR20140060141A (ko) * 2012-11-09 2014-05-19 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
US9047198B2 (en) 2012-11-29 2015-06-02 Apple Inc. Prefetching across page boundaries in hierarchically cached processors
US9607407B2 (en) 2012-12-31 2017-03-28 Nvidia Corporation Variable-width differential memory compression
US9591309B2 (en) 2012-12-31 2017-03-07 Nvidia Corporation Progressive lossy memory compression
US9235905B2 (en) 2013-03-13 2016-01-12 Ologn Technologies Ag Efficient screen image transfer
US9070200B2 (en) 2013-05-02 2015-06-30 Arm Limited Graphics processing systems
US9607356B2 (en) 2013-05-02 2017-03-28 Arm Limited Graphics processing systems
US9741089B2 (en) 2013-05-02 2017-08-22 Arm Limited Graphics processing systems
US9767595B2 (en) 2013-05-02 2017-09-19 Arm Limited Graphics processing systems
US9710894B2 (en) 2013-06-04 2017-07-18 Nvidia Corporation System and method for enhanced multi-sample anti-aliasing
US9098924B2 (en) * 2013-07-15 2015-08-04 Nvidia Corporation Techniques for optimizing stencil buffers
US9514563B2 (en) 2013-08-30 2016-12-06 Arm Limited Graphics processing systems
JP6313632B2 (ja) * 2014-03-31 2018-04-18 キヤノン株式会社 画像処理装置
US9832388B2 (en) 2014-08-04 2017-11-28 Nvidia Corporation Deinterleaving interleaved high dynamic range image by using YUV interpolation
KR102491622B1 (ko) 2015-11-17 2023-01-25 삼성전자주식회사 가상 어드레스 생성기의 동작 방법과 이를 포함하는 시스템의 동작 방법
GB2546810B (en) * 2016-02-01 2019-10-16 Imagination Tech Ltd Sparse rendering
US10438569B2 (en) * 2017-04-17 2019-10-08 Intel Corporation Consolidation of data compression using common sectored cache for graphics streams
US11321804B1 (en) * 2020-10-15 2022-05-03 Qualcomm Incorporated Techniques for flexible rendering operations

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0814803B2 (ja) * 1986-05-23 1996-02-14 株式会社日立製作所 アドレス変換方式
ATE115749T1 (de) * 1987-07-31 1994-12-15 Qms Inc Seitendrucksystem mit virtuellem speicher.
US5640543A (en) * 1992-06-19 1997-06-17 Intel Corporation Scalable multimedia platform architecture
WO1994016391A1 (en) * 1992-12-31 1994-07-21 Intel Corporation Bus to bus interface with address translation
US5450542A (en) * 1993-11-30 1995-09-12 Vlsi Technology, Inc. Bus interface with graphics and system paths for an integrated memory system

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002530743A (ja) * 1998-11-16 2002-09-17 インフィネオン・テクノロジーズ・アーゲー ページタグレジスタを使用して、メモリデバイス内の物理ページの状態を追跡すること
JP2003501679A (ja) * 1999-05-26 2003-01-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ デジタルビデオ処理ユニット
JP2001117555A (ja) * 1999-08-05 2001-04-27 Matsushita Electric Ind Co Ltd 同期dramを使用する画像転置メモリのためのモジューラ構造
US7145568B2 (en) 2000-09-29 2006-12-05 Intel Corporation Shared translation address caching
JP2008033928A (ja) * 2006-07-31 2008-02-14 Nvidia Corp Gpuにおけるページマッピングのための専用機構
JP2010505172A (ja) * 2006-09-29 2010-02-18 イマジネイション テクノロジーズ リミテッド 三次元コンピュータ映像を発生するシステムのためのメモリマネージメントの改良
JP2008090673A (ja) * 2006-10-03 2008-04-17 Mitsubishi Electric Corp キャッシュメモリ制御装置
JP2010044286A (ja) * 2008-08-15 2010-02-25 Panasonic Corp 画像処理装置
JP2010140480A (ja) * 2008-12-12 2010-06-24 Nvidia Corp Cpuトラフィックを特殊とマークすることによるデッドロックの回避
US8392667B2 (en) 2008-12-12 2013-03-05 Nvidia Corporation Deadlock avoidance by marking CPU traffic as special
US10198361B2 (en) 2012-08-17 2019-02-05 Intel Corporation Memory sharing via a unified memory architecture
US10929304B2 (en) 2012-08-17 2021-02-23 Intel Corporation Memory sharing via a unified memory architecture
US11531623B2 (en) 2012-08-17 2022-12-20 Intel Corporation Memory sharing via a unified memory architecture
JP2015176492A (ja) * 2014-03-17 2015-10-05 株式会社ソニー・コンピュータエンタテインメント グラフィックス処理装置およびグラフィックス処理方法
JP2018005226A (ja) * 2016-07-05 2018-01-11 ユビタス インコーポレイテッドUbitus Inc. Vramでマルチソースメディアをオーバーレイするシステム及び方法

Also Published As

Publication number Publication date
US6104417A (en) 2000-08-15
CA2214868A1 (en) 1998-03-13
EP0829820B1 (en) 2003-05-21
MX9706495A (es) 1998-06-30
US20010019331A1 (en) 2001-09-06
CA2214868C (en) 2006-06-06
DE69722117D1 (de) 2003-07-03
EP0829820A3 (en) 1998-11-18
DE69722117T2 (de) 2004-02-05
EP0829820A2 (en) 1998-03-18

Similar Documents

Publication Publication Date Title
JPH10247138A (ja) コンピュータシステム
US6745309B2 (en) Pipelined memory controller
US6721864B2 (en) Programmable memory controller
US6622228B2 (en) System and method of processing memory requests in a pipelined memory controller
US7707328B2 (en) Memory access control circuit
JP2003216482A (ja) バーストアクセス制御装置および制御方法
US5636361A (en) Multi-processor computer system having dual memory subsytems for enabling concurrent memory access thereto by more than one processor
JP2005501300A (ja) 仮想メモリ配列内のデータにアクセスするための配列および方法
JP2003114825A (ja) メモリ制御方法、その制御方法を用いたメモリ制御回路、及びそのメモリ制御回路を搭載する集積回路
JP2003281079A (ja) ページ・テーブル属性によるバス・インタフェース選択
US8108596B2 (en) Memory controller address mapping scheme
JP3803196B2 (ja) 情報処理装置、情報処理方法および記録媒体
JP3153078B2 (ja) データ処理装置
JP2003271445A (ja) メモリ制御装置及び方法
JP2007018222A (ja) メモリアクセス制御回路
JP2823038B2 (ja) 論理ダイレクトメモリアクセス方式
JPH03656B2 (ja)
US20080077750A1 (en) Memory block fill utilizing memory controller
JP3226557B2 (ja) マルチプロセッサシステム
JPH0731439Y2 (ja) スタティック・カラムdramアクセス装置
MXPA97006495A (en) An unified memory architecture with dynamic allocation of grafi memory
JP2000172553A (ja) データ処理装置
JP2570271B2 (ja) 半導体メモリ制御装置
JP3537786B2 (ja) データ処理システム
JP2001290790A (ja) ディスク制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070309

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20070522

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070611

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070522

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070717

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070910

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071002