(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6386099
(24)【登録日】2018年8月17日
(45)【発行日】2018年9月5日
(54)【発明の名称】圧縮支援のための方法、装置、コンピュータプログラム及び記憶媒体
(51)【国際特許分類】
G06F 12/04 20060101AFI20180827BHJP
G06F 12/1027 20160101ALI20180827BHJP
【FI】
G06F12/04 530
G06F12/1027
【請求項の数】23
【全頁数】14
(21)【出願番号】特願2016-573029(P2016-573029)
(86)(22)【出願日】2015年6月18日
(65)【公表番号】特表2017-525020(P2017-525020A)
(43)【公表日】2017年8月31日
(86)【国際出願番号】US2015036343
(87)【国際公開番号】WO2015200083
(87)【国際公開日】20151230
【審査請求日】2016年12月14日
(31)【優先権主張番号】14/315,435
(32)【優先日】2014年6月26日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ニルソン,ジム ケー.
(72)【発明者】
【氏名】アケニネ−メラー,トマス ジー.
【審査官】
塚田 肇
(56)【参考文献】
【文献】
米国特許第06266753(US,B1)
【文献】
米国特許出願公開第2011/0243469(US,A1)
【文献】
特開2006−099774(JP,A)
【文献】
国際公開第96/37846(WO,A2)
【文献】
米国特許出願公開第2007/126756(US,A1)
【文献】
米国特許第7545382(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/04
G06F 12/1027
(57)【特許請求の範囲】
【請求項1】
圧縮の成否を判定すること;及び
グラフィックス処理ユニット及びセントラル処理ユニットによりアクセスすることが可能なメモリのコントロールサーフェスに、圧縮の成否を記録することを、エントリ毎に(L/M)×log2M個の圧縮制御ビットを提供することにより行うこと;
を有し、Lはページ内のメモリライン総数であり、Mは圧縮可能なユニットのメモリライン数である、方法。
【請求項2】
圧縮が成功した場合、圧縮に使用されたコーデックを前記コントロールサーフェスに記録すること
を更に有する請求項1に記載の方法。
【請求項3】
前記コントロールサーフェスにアクセスすることにより、データを読み込むこと
を有する請求項1に記載の方法。
【請求項4】
圧縮可能なユニット毎に単独のビットを利用して、前記ユニットが圧縮されているか否かを示すこと
を有する請求項1に記載の方法。
【請求項5】
セントラル処理ユニット及びグラフィックス処理ユニットの双方に同じコントロールサーフェスのコーディングを利用すること
を有する請求項1に記載の方法。
【請求項6】
色、深度又はビデオのコーデックのうち1つ又は複数個を含むタイプにより、前記コントロールサーフェスにコーデックをコーディングすること
を有する請求項1に記載の方法。
【請求項7】
トランスレーションルックアサイドバッファに前記コントロールサーフェスを保存すること
を有する請求項1に記載の方法。
【請求項8】
ページテーブル毎に、制御のための前記コントロールサーフェスを保存すること
を有する請求項1に記載の方法。
【請求項9】
前記ページテーブルに前記コントロールサーフェスを保存すること
を有する請求項8に記載の方法。
【請求項10】
プロセッサにシーケンスを実行させるコンピュータプログラムであって、前記シーケンスは:
圧縮の成否を記録すること;及び
グラフィックス処理ユニット及びセントラル処理ユニットによりアクセスすることが可能なメモリのコントロールサーフェスに、圧縮の成否を記録することを、エントリ毎に(L/M)×log2M個の圧縮制御ビットを提供することにより行うこと;
を有し、Lはページ内のメモリライン総数であり、Mは圧縮可能なユニットのメモリライン数である、コンピュータプログラム。
【請求項11】
前記シーケンスは、前記コントロールサーフェスにアクセスすることにより、データを読み込むことを含む
請求項10に記載のコンピュータプログラム。
【請求項12】
前記シーケンスは、圧縮可能なユニット毎に単独のビットを利用して、前記ユニットが圧縮されているか否かを示すことを含む
請求項10に記載のコンピュータプログラム。
【請求項13】
前記シーケンスは、セントラル処理ユニット及びグラフィックス処理ユニットの双方に同じコントロールサーフェスのコーディングを利用することを含む
請求項10に記載のコンピュータプログラム。
【請求項14】
前記シーケンスは、色、深度又はビデオのコーデックのうち1つ又は複数個を含むタイプにより、前記コントロールサーフェスにコーデックをコーディングすることを含む
請求項10に記載のコンピュータプログラム。
【請求項15】
前記シーケンスは、トランスレーションルックアサイドバッファに前記コントロールサーフェスを保存することを含む
請求項10に記載のコンピュータプログラム。
【請求項16】
請求項10ないし15のうち何れか一項に記載のコンピュータプログラムを保存する記憶媒体。
【請求項17】
圧縮の成否を記録し、グラフィックス処理ユニット及びセントラル処理ユニットによりアクセスすることが可能なメモリのコントロールサーフェスに、圧縮の成否を記録することを、エントリ毎に(L/M)×log2M個の圧縮制御ビットを提供することにより行うプロセッサ;及び
前記プロセッサに結合されるメモリ;
を有し、Lはページ内のメモリライン総数であり、Mは圧縮可能なユニットのメモリライン数である、装置。
【請求項18】
前記プロセッサは、前記コントロールサーフェスにアクセスすることにより、データを読み込む
請求項17に記載の装置。
【請求項19】
前記プロセッサは、圧縮可能なユニット毎に単独のビットを利用して、前記ユニットが圧縮されているか否かを示す
請求項17に記載の装置。
【請求項20】
前記プロセッサは、セントラル処理ユニット及びグラフィックス処理ユニットの双方に同じコントロールサーフェスのコーディングを利用する
請求項17に記載の装置。
【請求項21】
前記プロセッサは、色、深度又はビデオのコーデックのうち1つ又は複数個を含むタイプにより、前記コントロールサーフェスにコーデックをコーディングする
請求項17に記載の装置。
【請求項22】
前記プロセッサは、トランスレーションルックアサイドバッファに前記コントロールサーフェスを保存する
請求項17に記載の装置。
【請求項23】
前記プロセッサに通信可能に結合されるディスプレイを含む
請求項17に記載の装置。
【発明の詳細な説明】
【背景技術】
【0001】
現在のコンピュータシステムでは、集積回路チップの外部メモリに対するデータトラフィックのオン/オフは、主要なパフォーマンスボトルネックとなっており、消費されるシステムエネルギのうちのかなりの部分を消費する。従って、メモリ帯域幅条件は、システムの熱設計ポイント(thermal design point:TDP)を制限し、パフォーマンスのスケーリングを制限するおそれがある。キャッシュ階層を利用すると、多くのメモリトラフィックは回避され、その理由は、最近利用されたデータがプロセッサの付近で見出されることが可能だからである(プロセッサは、例えば、セントラルプロセシングユニット(CPU)や、グラフィックスプロセシングユニット(GPU)等である)。しかしながら、たとえ際限なくキャッシュを利用したとしても、必然的なキャッシュミス(compulsory cache miss)がメモリトラフィックを招く。
【0002】
現在のシステムは、所定のキャッシュからデータを圧縮することしかできず、圧縮されたデータは、CPU及びGPUで統一方法では取り扱われない。例えば、GPUがレンダリングターゲット(又はレンダリング対象)の一部を圧縮することが可能であり、かつ、後にCPUがそのレンダリングターゲットを読み込むことを希望する場合、レンダリングターゲットの全体が、非圧縮化されて(decompressed)、CPUのキャッシュに送付される必要がある。
【0003】
従来の方法は、特定のタイプのデータに対する特定の圧縮処理を前提とする。これは、圧縮の性質に起因して必要となり、様々なタイプのデータが、様々な圧縮方法に対して様々に各自を与える。しかしながら、従来の方法は、個別具体的に圧縮制御を取り扱っており、システムの新たなロケーションで圧縮を導入することを(設計及び検証の観点から)困難にしている。
【図面の簡単な説明】
【0004】
実施形態は以下の図面に関連して説明される:
【
図1】一実施形態に関する圧縮制御を説明するための図。
【
図2】一実施形態に関するTLBレイアウトを示す図。
【
図4】一実施形態によるメモリ読み込みのためのフローチャート。
【
図5】一実施形態によるメモリ書き込みのためのフローチャート。
【
図6】一実施形態に関するシステムの概略を示す図。
【発明を実施するための形態】
【0005】
メモリに向かうことになっているデータ、すなわち、キャッシュ階層のうちの或るレベルでエビクションされたデータ(evicted data)は、メモリに送信される前に、インターセプトされ、圧縮に委ねられる。圧縮が成功すると、一実施形態では、メモリ帯域幅が削減され、可能性として、より高いパフォーマンス及び/又はエネルギ効率をもたらす。
【0006】
仮想メモリシステムの一部分である既存のデータ構造及びハードウェア機構(例えば、トランスレーションルックアサイドバッファ(TLB))は、圧縮制御データにより支援される。データ構造は、例えばページテーブルその他の何処かにおいて、オペレーティングシステムで増強される。ある簡易な形式の圧縮制御データは、ページデーブル及びTLBエントリ毎に以下のものを含む:(i)圧縮の可能性があるユニット毎に1ビットを有するビットベクトル(対応するユニットが圧縮されるか否かを通知する);及び(ii)コーデックルーティング情報(すなわち、データを圧縮するために何れのコンプレッサが使用されたかについての識別)。データが、使用するコーデックを黙示的に識別する方法で使用される場合、コーデックルーティング情報は不要である。
【0007】
圧縮制御(compression control)と呼ばれる共通する1つのメカニズムが、信号圧縮に使用されてよい。そのメカニズムでは、新たなタイプの圧縮は、適切なロケーションに新たなコーデックを導入することによって取り扱われてよい。共通の圧縮制御により、例えば、データがCPU及びGPUの間で共有されるような共有メモリシステムにおいて、圧縮を維持することが容易になる。この場合、圧縮制御は、アドレスマッピングとともになされ、アクセスされたデータのみが、非圧縮化されることを要する。このアーキテクチャのように一実施形態では、他のエンティティと共有する前に、全てのデータを非圧縮化することは不要である。
【0008】
以下で言及されるメモリページサイズ及びメモリラインサイズは限定ではなく、他のサイズが使用されてもよい。更に、圧縮は、例えば2:N,4:N又は8:Nの圧縮(一般的には、M:Nの圧縮)のような整数個のメモリトランザクション(メモリライン)に関して動作するように仮定されており、2,4又は8個のラインが、それぞれ、より少ないメモリラインへの圧縮が可能であることを意味する。M個のメモリラインは、圧縮され得るユニット(compressible unit)として取り扱われてよい。
【0009】
2:N圧縮のような簡易なケースの場合、2つメモリライン毎に1ビットが、この圧縮可能なユニットは実際に(50%に下がるまで)圧縮されるか否かを示す。4:N圧縮の場合、4つのメモリラインは、1,2,3又は4つのメモリラインに圧縮されることが可能であり、この場合において、例えば「4」は圧縮されていないことを意味する。従って、4:N圧縮の場合、圧縮の程度を示すために、4つのメモリライン毎に2ビットが使用される。同様に、M:N圧縮の場合、M個のメモリライン毎に圧縮度を示すために、log
2Mビットが使用される。
【0010】
あるページのメモリラインの総数はLである(例えば、1kBページで64Bメモリラインである場合、L=1024/64=16である)。ページテーブルエントリ(PTE)又はTLBエントリ当たりで必要な圧縮制御ビット数は、次のとおりである:
#bits = (L/M)×log
2M
【0011】
1キロバイトのページであり、64バイトのメモリラインであり、8:N圧縮であることを仮定すると、ビット数は、((1024/64)/8)×3=6となる。4キロバイトのページであり、64バイトのメモリラインであり、4:N圧縮である場合、ビット数=((4096/64)/4)×2=32であり、以下同様である。
【0012】
メモリページのデータが圧縮されるか否か及びどの程度圧縮されるかを伝達する圧縮制御とは別に、圧縮されるデータについて、特定のコーダー/デコーダ(コーデック)を指定する必要がある。全てのマッピングされるページについて、同じコーデックが使用されることを仮定する。ページテーブル及びTLBエントリ毎に、1つの小さな識別子が使用される。4つのタイプのコーデックが存在する場合(例えば、色、深度、ビデオ、非圧縮のような場合)、何れのコーデックが使用されるかを指定するために、log
24=2ビットが必要である。
【0013】
一実施形態では、いったんデータが割り振られると、ルーティング情報が設定(又はセットアップ)される。割り振りの際、何れのタイプのデータが、バッファに保存されつつあるかが分かる。別の選択肢は、特定のバッファに関連するコーデック又は特定のメモリページでさえそれに関連するコーデックを、ユーザに指定させることである。バッファのライフタイムの間にバッファに関連するコーデックが変更される場合、先ずデータは(変更前の)古いコーデックで非圧縮化され、その後に(変更後の)新しいコーデックを利用して圧縮される。
【0014】
データがアクセスされる状況(コンテキスト)が特定のコーデックを明示的には指定しない仕方で、異なるサブシステムの間でデータが共有されるシステムに限り、ルーティング情報が必要とされる。ルーティング情報が不要である状況の具体例は、GPUにおいてサンプラによって専らアクセスされるにすぎない静的なテクスチャである。従って、全ての静的なテクスチャデータは専らサンプラによってアクセスされるので、コーデックを指定する必要はない。
【0015】
圧縮制御データに効果的な場所は、直接的には、TLBの中にある。他の選択肢は、チップ上の他のハードウェアにデータを保存することである。全てのメモリマッピングを含むページテーブルについても同じことが成り立ち、それを圧縮制御に最も相応しいロケーションにする。しかしながら、更に他の選択肢は、別個のバッファに圧縮制御を保存する。
【0016】
図1は、4キロバイトのメモリページサイズ、及び、64バイトのメモリラインサイズに関する例示的な圧縮コントロールサーフェス(compression control surface)を示す。2:N圧縮の場合、圧縮状態を示すために16ビットが必要とされ(すなわち、128バイトが64バイトに下がるまで圧縮されているか否かを示す)、この例では、コーデックルーティングのために3ビットが使用され、23=8個の異なるコーデックを使用可能にする。
【0017】
図2は8つのエントリを有するTLBレイアウトの一例を示す。TLBは、「圧縮コントロール及びルーティング」というタイトルが付された右側の列により拡張されている。
図1に示されるように、圧縮コントロールは、圧縮可能なユニットが圧縮されているか否かを示すビットのベクトルであり、ルーティング情報は、このデータが圧縮されない場合に何れのコーデックが使用されるべきかを指定する。
【0018】
図3は、所与の仮想アドレス14の下で、メモリ12にアクセスするCPU及び/又はGPU10を有するシステム例を示す。仮想アドレスは、仮想ページ番号16及びオフセット18に分けられ、ページ番号は、TLB20内の対応する物理ページ番号を発見するために使用される。それが発見されると、物理ページ番号22は、オフセット18とともに物理アドレス24を形成し、物理アドレス24はキャッシュシステム26に送付される。
【0019】
圧縮コントロールサーフェスが、対応するデータは実際に圧縮されていることを示す場合、データがメモリから取り出される前に、データはコーデック28で非圧縮化される。同様に、データが書き込まれる前に、コーデック28は、データを圧縮し、圧縮された形式でそのデータを書き込むことを試みてもよい(圧縮が成功した場合はそのように処理され、そうでない場合には、圧縮されていないデータを書き込む処理に戻ることになる)。結果的なメモリライン数の観点から、圧縮アルゴリズムの処理が成功したことは、圧縮制御ビットに記録される。
【0020】
図4及び
図5のシーケンスは、それぞれ圧縮コントロールサーフェスを利用して、メモリ読み込み及びメモリ書き込みに適用可能である。これはハードウェア、ソフトウェア及び/又はファームウェアで実現されてよい。ソフトウェア及びファームウェアの実施形態では、1つ以上の非一時的なコンピュータ読み取り可能な媒体に保存される命令が組み込まれたコンピュータを利用してよい。例えば、シーケンスは、中央処理装置若しくはグラフィックス処理装置又は双方の一部を為してもよい。
【0021】
図4に示されるシーケンス30はメモリ読み込みのために使用される。ブロック32に示されるように、仮想アドレスが受信される。ブロック34に示され得ように、仮想アドレスは仮想ページ番号及びオフセットに分割される。ブロック36に示されるように、この情報を利用して、物理アドレスを発見し、それをキャッシュに送付する。
【0022】
そして、ブロック38に示されるように、アクセスコントロールサーフェスにアクセスする。ブロック42に示されるように、アクセスコントロールサーフェスが、菱形の判断ブロック40に示されるようにデータは圧縮されていたことを示す場合、そのデータは、コントロールサーフェスに示されるコーデックを利用して非圧縮化される。
【0023】
図5に示される書き込みシーケンス50が始まると、ブロック52に示されるように仮想アドレスを受信し、ブロック54に示されるように仮想アドレスを分割し、ブロック56に示されるように物理アドレスを発見する。ブロック58に示されるように、圧縮が試みられる。ブロック60に示されるように、圧縮が成功した場合、その圧縮の成功は、圧縮に使用されたコーデックとともに、コンロールサーフェースに記録され、データが書き込まれる。
【0024】
本願で示されるグラフィック処理技術は、様々なハードウェアアーキテクチャで実現されてよい。例えば、グラフィックス機能はチップセット内に統合されてもよい。代替的に、個別的なグラフィックスプロセッサが使用されてもよい。更に別の実施形態として、グラフィックス機能は、マルチコアプロセッサを含む汎用プロセッサにより実現されてもよい。
【0025】
図6はシステム700の一形態を示す。一実施形態において、システム700はメディアシステムであってもよいが、システム700はその例に限定されない。例えば、システム700は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルディジタルアシスタント(PDA)、セルラー電話、セルラー電話/PDAの組み合わせ、テレビジョン、スマートデバイス(例えば、スマートフォン、スマートタブレット、又は、スマートテレビジョン)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス等に組み込まれてよい。
【0026】
一実施形態において、システム700はディスプレイ720に結合されるプラットフォーム702を有する。プラットフォーム702は、コンテンツサービスデバイス730、コンテンツ配信デバイス740又は他の類似するコンテンツソース等のようなコンテンツデバイスから、コンテンツを受信してよい。1つ又は複数のナビゲーションフィーチャー(navigation feature)を有するナビゲーションコントローラ750は、例えば、プラットフォーム702及び/又はディスプレイ720と相互作用する。以下、これらのコンポーネントの各々を詳細に説明する。
【0027】
一実施形態において、プラットフォーム702は、チップセット705、プロセッサ710、メモリ712、ストレージ714、グラフィックスサブシステム715、アプリケーション716及び/又は無線機718等の任意の組み合わせを有してよい。チップセット705は、プロセッサ710、メモリ712、ストレージ714、グラフィックスサブシステム715、アプリケーション716及び/又は無線機718の間で相互通信をもたらす。例えば、チップセット705は、ストレージ714との相互通信をもたらすことが可能なストレージアダプタ(図示せず)を含んでよい。
【0028】
プロセッサ710は、複合命令セットコンピュータ(CISC)又は縮小命令セットコンピュータ(RISC)のプロセッサ、x86命令セット対応プロセッサ、マルチコア又は他の任意のマイクロプロセッサ、或いは、中央処理ユニット(CPU)として実現されてよい。一実施形態において、プロセッサ710は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサ等を有してよい。プロセッサは、メモリ712とともに
図4及び
図5のシーケンスを実現する。
【0029】
メモリ712は揮発性メモリデバイスとして実現されてもよく、そのメモリデバイスは、限定ではないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)又はスタティックRAM(SRAM)等であってよい。
【0030】
ストレージ714は不揮発性ストレージデバイスとして実現されてもよく、そのストレージデバイスは、限定ではないが、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内蔵ストレージデバイス、外付けストレージデバイス、フラッシュメモリ、バッテリバックアップSDRAM(同期DRAM)、及び/又は、ネットワークアクセス可能なストレージデバイス等であってもよい。一実施形態において、ストレージ714は、例えば、複数のハードドライブが含まれる場合に、重要なディジタルメディアに対する増強されたプロテクションの保存パフォーマンスを向上させるテクノロジを含んでいてもよい。
【0031】
グラフィックスサブシステム715は、表示する静止画又は動画のような画像の処理を実行する。グラフィックスサブシステム715は、例えば、グラフィックス処理ユニット(GPU)又はビジュアル処理ユニット(VPU)等であってもよい。アナログ又はディジタルインターフェースは、グラフィックスサブシステム715及びディスプレイ720に通信可能に結合するために使用されてよい。例えば、インターフェースは、高精細度マルチメディアインターフェース(HDMI)、ディスプレイポート(DisplayPort)、ワイヤレスHDMI及び/又はワイヤレスHD対応技術などの何れであってもよい。グラフィックスサブシステム715は、プロセッサ710又はチップセット705に一体化されてもよい。グラフィックスサブシステム715は、チップセット705に通信可能に結合されるスタンドアローンカードであるとすることが可能である。
【0032】
本願で説明されるグラフィックス及び/又はビデオ処理技術は、様々なハードウェアアーキテクチャで実現されてよい。例えば、グラフィックス及び/又はビデオ機能は、チップセット内に統合されてもよい。代替的に、個別的なグラフィックス及び/又はビデオプロセッサが使用されてもよい。更に別の実施形態として、グラフィックス及び/又はビデオ機能は、マルチコアプロセッサを含む汎用プロセッサにより実現されてもよい。別の実施形態において、そのような機能は、コンシューマ電子デバイスで実現されてもよい。
【0033】
無線機718は、適切な様々なワイヤレス通信技術を利用して信号を送受信することが可能な1つ以上の無線機を含んでよい。そのような技術は、1つ又は複数のワイヤレスネットワークにわたる通信を含んでもよい。例示的なワイヤレスネットワークは、(限定ではないが)ワイヤレスローカルエリアネットワーク(WLAN)、ワイヤレスパーソナルエリアネットワーク(WPAN)、ワイヤレスメトロポリタンエリアネットワーク(WMAN)、セルラーネットワーク、及び衛星ネットワーク等を含む。そのようなネットワークに渡る通信において、無線機718は1つ以上の適用可能な任意のバージョンの規格で動作してもよい。
【0034】
一実施形態において、ディスプレイ720は任意のテレビジョン型のモニタ又はディスプレイを含んでもよい。ディスプレイ720は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビジョンのようなデバイス及び/又はテレビジョンを含んでよい。ディスプレイ720は、ディジタル及び/又はアナログであってもよい。一実施形態において、ディスプレイ720はホログラフィックディスプレイであってもよい。また、ディスプレイ720は、視覚的な投影を受ける透明なサーフェスであってもよい。そのような投影(又はプロジェクション)は、様々な形態の情報、画像及び/又はオブジェクトを担ってよい。例えば、そのような投影は、モバイル拡張現実(mobile augmented reality:MAR)アプリケーションに関する視覚的なオーバーレイであってもよい。1つ以上のソフトウェアアプリケーション716の制御の下で、プラットフォーム702は、ディスプレイ720でユーザーインターフェース722を表示してもよい。
【0035】
一実施形態において、コンテンツサービスデバイス730は、国内の、国際的な及び/又は独立した任意のサービスによりホストされ、例えばインターネットによりプラットフォーム702にアクセス可能である。コンテンツサービスデバイス730は、プラットフォーム702及び/又はディスプレイ720に結合されてよい。プラットフォーム702及び/又はコンテンツサービスデバイス730は、ネットワーク760へ及びそこからのメディア情報を通信するために(すなわち、送信及び/又は受信するために)ネットワーク760に結合される。コンテンツ配信デバイス740もプラットフォーム702及び/又はディスプレイ720に結合されてよい。
【0036】
一実施形態において、コンテンツサービスデバイス730は、ケーブルテレビジョンボックス、パーソナルコンピュータ、ネットワーク、電話、ディジタル情報及び/又はコンテンツを配信することが可能なインターネット対応デバイス又は機器、及び、他の任意の類似するデバイスを含んでもよく、その類似するデバイスは、ネットワーク760を介して又は直接的に、コンテンツプロバイダ及びプラットフォーム702及び/又はディスプレイ720の間でコンテンツを単独方向に又は双方向に通信することが可能なものである。コンテンツは、ネットワーク760を介して、システム700の任意の何れかのコンポーネント及びコンテンツプロバイダへ及びそこから、単一方向に及び/又は双方向に通信されてよいことが、認められるであろう。コンテンツの具体例は、例えば、ビデオ、音楽、医療情報、ゲーム情報などを含む任意のメディア情報を含んでよい。
【0037】
コンテンツサービスデバイス730は、メディア情報、ディジタル情報を含むケーブルテレビジョン番組のようなコンテンツ、及び/又は、他のコンテンツを受信する。コンテンツプロバイダの具体例は、任意のケーブル又は衛星テレビジョン又は無線機又はインターネットのコンテンツプロバイダを含んでよい。提供されるものの具体例は、上記の適用可能な実施形態に限定するようには意図されていない。
【0038】
一実施形態において、プラットフォーム702は、1つ以上のナビゲーションフィーチャーを有するナビゲーションコントローラ750から制御信号を受信する。コントローラ750のナビゲーションフィーチャーは、例えばユーザーインターフェース722とやり取りするために使用されてよい。一実施形態において、ナビゲーションコントローラ750は、あるコンピュータハードウェアコンポーネント(具体的には、ヒューマンインターフェースデバイス)であるポインティングデバイスであってよく、そのデバイスは、コンピュータに空間的なデータ(例えば、連続的なデータ及び多次元のデータ)をユーザが入力することを許容する。グラフィックユーザーインターフェース(GUI)、テレビジョン及びモニタのような多くのシステムは、身体的なジェスチャを利用して、データの制御及びデータのコンピュータ又はテレビジョンへの提供を、ユーザに許容する。
【0039】
コントローラ750のナビゲーションフィーチャーの動きは、ポインタ、カーソル、フォーカスリング又はその他のディスプレイに表示される視覚的な指示の動きによって、ディスプレイ(例えば、ディスプレイ720)に反映される。例えば、ソフトウェアアプリケーション716の制御の下で、ナビゲーションコントローラ750に配置されるナビゲーションフィーチャーは、例えば、ユーザーインターフェース722に表示される視覚的なナビゲーションフィーチャーにマッピングされる。一実施形態において、コントローラ750は、別個のコンポーネントではなく、プラットフォーム702及び/又はディスプレイ720に統合されてもよい。しかしながら、実施形態は本願で示される又は記述される要素や文脈に限定されない。
【0040】
一実施形態において、ドライバ(図示せず)は、例えばイネーブルにされている場合に、初期ブートアップ後にボタンが触られたテレビジョンのように、プラットフォーム702をユーザが速やかにターンオン及びオフできるようにする技術を含んでいてもよい。プログラム論理装置は、プラットフォームがターン「オフ」されると、メディアアダプタ又は他のコンテンツサービスデバイス730又はコンテンツ配信デバイス740へコンテンツをストリーミングすることを、プラットフォーム702に許容してもよい。更に、チップセット705は、例えば、5.1サラウンドサウンドオーディオ及び/又はハイデフィニジョン7.1サラウンドサウンドオーディオに対するハードウェア及び/又はソフトウェアのサポートを有する。ドライバは、統合されたグラフィックスプラットフォームのグラフィックスドライバを含んでもよい。一実施形態において、グラフィックスドライバは、ペリフェラルコンポーネントインターコネクト(PCI)エクスプレスグラフィックスカードを含んでいてもよい。
【0041】
様々な実施形態において、システム700に示されるコンポーネントのうちの任意の1つ以上が統合されてもよい。例えば、プラットフォーム702とコンテンツサービスデバイス730とが統合されてもよいし、或いは、プラットフォーム702とコンテンツ配信デバイス740とが統合されてもよいし、或いは、プラットフォーム702とコンテンツサービスデバイス730とコンテンツ配信デバイス740とが統合されてもよい。様々な実施形態において、プラットフォーム702及びディスプレイ720は一体化されたユニットであってもよい。例えば、ディスプレイ720とコンテンツサービスデバイス730とが統合されてもよいし、或いは、ディスプレイ720とコンテンツ配信デバイス740とが統合されてもよい。これらの具体例は目的の限定を意図するものではない。
【0042】
様々な実施形態において、システム700は、ワイヤレスシステム、有線システム又はそれらの組み合わせとして実現されてもよい。ワイヤレスシステムとして実現される場合に、システム700は、ワイヤレス共有媒体において通信するのに適したコンポーネント及びインターフェースを含み、そのコンポーネント等は例えば1つ以上のアンテナ、送信機、受信機、トランシーバ、増幅器、フィルタ、制御論理部などである。ワイヤレス共有媒体の具体例は、RFスペクトル等のようなワイヤレススペクトルの一部を含んでよい。有線システムとして実現される場合に、システム700は、有線通信媒体において通信するのに適したコンポーネント及びインターフェースを含み、そのコンポーネント等は例えば入力/出力(I/O)アダプタ、I/Oアダプタを対応する有線通信媒体に接続する物理コネクタ、ネットワークインターフェースカード(NIC)、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ等である。有線通信媒体の具体例は、ワイヤ、ケーブル、メタルリード(metal leads)、印刷回路基板(PCB)、バックプレーン、スイッチファブリック、半導体材料、ツイストペアワイヤ、同軸ケーブル、光ファイバ等である。
【0043】
プラットフォーム702は情報を通信するために1つ以上の論理的又は物理的なチャネルを設定してもよい。情報は、メディア情報及び制御情報を含んでよい。メディア情報とは、ユーザのためのコンテンツを表現する任意のデータを指す。コンテンツの具体例は、例えば、音声会話、テレビ電話会議、ストリーミングビデオ、電子メール(email)メッセージ、ボイスメールメッセージ、英数字記号、図形、画像、ビデオ、文字等のデータを含んでよい。音声会話からのデータは、例えば、スピーチ情報、沈黙(又はサイレンス)期間、背景雑音、快適雑音、トーン等であってもよい。制御情報とは、コマンド、命令、又は、自動化されたシステムのための制御ワード等を表現する任意のデータを指す。例えば、制御情報は、システムを経由してメディア情報をルーティングするため、或いは、所定の方法でのメディア情報の処理をノードに指示するために使用されてよい。しかしながら、実施形態は
図6に図示又は記述される要素や文脈に限定されない。
【0044】
上述したように、システム700は物理的なスタイルや形状因子を変化させて具現化されてもよい。
図7は小さな形状因子のデバイス800の実施形態を示し、そのデバイス800の中にシステム700が組み込まれている。この実施形態では、例えば、デバイス800はワイヤレスケーパビリティ(又は無線通信機能)を有するモバイルコンピューティングデバイスとして実現される。モバイルコンピューティングデバイスとは、例えば、1つ又は複数のバッテリのようなモバイル電源又はパワーサプライと処理システムとを有する任意のデバイスを指す。
【0045】
上述したように、モバイルコンピューティングデバイスの具体例は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルディジタルアシスタント(PDA)、セルラー電話機、セルラー電話機/PDAの組み合わせ、テレビジョン、スマートデバイス(例えば、スマートフォン、スマートタブレット又はスマートテレビジョン)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス等を含んでよい。
【0046】
モバイルコンピューティングデバイスの具体例は、人に装着されるように構成されるコンピュータを含んでもよく、例えば、リスト(wrist)コンピュータ、フィンガーコンピュータ、リングコンピュータ、アイグラスコンピュータ、ベルト・チップコンピュータ、アーム・バンドコンピュータ、靴(shoe)コンピュータ、衣服コンピュータ、及びその他の装着型コンピュータを含んでよい。実施形態では、例えば、モバイルコンピューティングデバイスは、コンピュータアプリケーションの実行に加えて、音声通信及び/又はデータ通信を実行することが可能なスマートフォンとして実現されてもよい。実施形態は一例としてスマートフォンとして実現されるモバイルコンピューティングデバイスとともに説明されるが、他の実施形態は、他のワイヤレスモバイルコンピューティングデバイスを利用して実現されてもよいことが、認められるであろう。実施形態はこの文脈に限定されない。
【0047】
以下の節及び/又は具体例は、更なる実施形態に関連している:一実施形態は、圧縮の成否を記録し、成功の場合、データの圧縮に使用されたコードをコントロールサーフェスに記録し、データをメモリに書き込むことを含む方法である。本方法は、制御サーフェスにアクセスすることによってデータを読み込むことを含んでもよい。本方法は、圧縮され得るユニット毎に1ビットを利用して、そのユニットが圧縮されているか否かを指示することを含んでもよい。本方法は、中央処理装置及びグラフィックス処理装置の双方に同じコントロールサーフェスコーディングを使用することを含んでもよい。本方法は、エントリ毎に(L/M)xlog
2M個の圧縮制御ビットを提供することを含んでもよく、Lはページ内のメモリライン総数であり、Mは圧縮可能なユニット内のメモリライン数である。本方法は、色、深度又はビデオのコーデックのうち1つ又は複数個を含むタイプにより、コントロールサーフェスのコーデックをコーディングすることを含んでよい。本方法は、トランスレーションルックアサイドバッファにサーフェスを保存することを含んでよい。
【0048】
別の実施形態は、命令を保存する1つ以上の非一時的なコンピュータ読み取り可能な媒体であり、命令はシーケンスを実行するようにプロセッサにより実行され、シーケンスは、圧縮の成否を記録し、成功の場合、データの圧縮に使用されたコーデックをコントロールサーフェスに記録し、データをメモリに書き込むことを含む。媒体は、コントロールサーフェスにアクセスすることにより、データを読み込むことを含むシーケンスを更に保存してもよい。媒体は、圧縮可能なユニット毎に1ビットを利用して、ユニットが圧縮されているか否かを示すことを含むシーケンスを更に含んでもよい。媒体は、セントラル処理ユニット及びグラフィックス処理ユニットの双方に同じコントロールサーフェスのコーディングを利用することを含むシーケンスを更に含んでもよい。媒体は、エントリ毎に(L/M)×log
2M個の圧縮制御ビットを提供することを含むシーケンスを更に含み、Lはページ内のメモリライン総数であり、Mは前記圧縮可能なユニットのメモリライン数である。媒体は、色、深度又はビデオのコーデックのうち1つ又は複数個を含むタイプにより、コントロールサーフェスのコーデックをコーディングすることを含むシーケンスを更に含んでもよい。媒体は、トランスレーションルックアサイドバッファにサーフェスを保存することを含むシーケンスを更に含んでもよい。
【0049】
別の実施形態は、圧縮の成否を記録し、成功の場合、データの圧縮に使用されたコーデックをコントロールサーフェスに記録し、データをメモリに書き込むプロセッサと、プロセッサに結合されるメモリとを有する装置であってもよい。本装置に含まれるプロセッサは、コントロールサーフェスにアクセスすることにより、データを読み込んでもよい。本装置に含まれるプロセッサは、圧縮可能なユニット毎に単独のビットを利用して、前記ユニットが圧縮されているか否かを示してもよい。本装置に含まれるプロセッサは、セントラル処理ユニット及びグラフィックス処理ユニットの双方に同じコントロールサーフェスのコーディングを利用してもよい。本装置に含まれるプロセッサは、エントリ毎に(L/M)×log
2M個の圧縮制御ビットを提供してもよく、Lはページ内のメモリライン総数であり、Mは前記圧縮可能なユニットのメモリライン数である。本装置に含まれるプロセッサは、色、深度又はビデオのコーデックのうち1つ又は複数個を含むタイプにより、サーフェスのコーデックをコーディングしてもよい。本装置に含まれるプロセッサは、トランスレーションルックアサイドバッファにサーフェスを保存してもよい。本装置はプロセッサに通信可能に結合されるディスプレイを含んでもよい。本装置はプロセッサに結合されるバッテリを含んでもよい。
【0050】
本明細書を通じて、「一実施形態」又は「実施形態」という言及は、その実施形態に関連して記述される特定の属性、構造又は特徴が、本開示の範囲内に包含される少なくとも1つの実現手段に含まれることを意味する。従って、「一実施形態」又は「実施形態」という言い回しの表現は、必ずしも同じ実施形態を指すとは限らない。更に、特定の属性、構造又は特徴は、説明された特定の実施形態以外の他の適切な形式で導入されてよく、そのような全ての形式は本願の特許請求の範囲内に包含される。
【0051】
限られた数の実施形態が説明されてきたが、当業者は、それらから多くの修正例及び変形例を認めるであろう。添付の特許請求の範囲は、そのような全ての修正例及び変形例を、本開示の精神及び目的の範囲内にあるようにカバーすることが、意図される。