JP2000112791A - アドレス空間内のロ―カリティを視覚化する方法及び装置 - Google Patents
アドレス空間内のロ―カリティを視覚化する方法及び装置Info
- Publication number
- JP2000112791A JP2000112791A JP11186047A JP18604799A JP2000112791A JP 2000112791 A JP2000112791 A JP 2000112791A JP 11186047 A JP11186047 A JP 11186047A JP 18604799 A JP18604799 A JP 18604799A JP 2000112791 A JP2000112791 A JP 2000112791A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- curve
- fractal curve
- fractal
- display
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/323—Visualisation of programs or trace data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
- Debugging And Monitoring (AREA)
- Memory System (AREA)
- Digital Computer Display Output (AREA)
Abstract
(57)【要約】
コンピュータ・メモリの特定の様相をフラクタル曲線に
基づくディスプレイ・スクリーン上へ表示する方法。少
なくとも1つの実施形態において、フラクタル曲線はヒ
ルベルト曲線である。フラクタル曲線ディスプレイはコ
ンピュータ・メモリに関する様々な種類の情報を視覚化
するうえでの助けとして使用可能である。特定の実施形
態はスタティックに維持されたディスプレイを使用し、
他の実施形態はダイナミックであって、かつメモリ内の
変化を反映すべくリアルタイムで変化するディスプレイ
を使用する。
基づくディスプレイ・スクリーン上へ表示する方法。少
なくとも1つの実施形態において、フラクタル曲線はヒ
ルベルト曲線である。フラクタル曲線ディスプレイはコ
ンピュータ・メモリに関する様々な種類の情報を視覚化
するうえでの助けとして使用可能である。特定の実施形
態はスタティックに維持されたディスプレイを使用し、
他の実施形態はダイナミックであって、かつメモリ内の
変化を反映すべくリアルタイムで変化するディスプレイ
を使用する。
Description
【0001】
【発明の属する技術分野】本願はコンピュータ及びコン
ピュータ・システムと、メモリの様々な様相を視覚表示
するための方法及び装置とに関する。
ピュータ・システムと、メモリの様々な様相を視覚表示
するための方法及び装置とに関する。
【0002】
【従来の技術】コンピュータ・システムが複雑になるに
連れて、任意のコンピュータ・システムに関する全ての
複雑なことがらを簡単に理解し、かつ把握することは人
間にとって困難になってきている。
連れて、任意のコンピュータ・システムに関する全ての
複雑なことがらを簡単に理解し、かつ把握することは人
間にとって困難になってきている。
【0003】コンピュータ・システムの実行中、同コン
ピュータ・システムはページまたはキャッシュ・ライン
などのメモリのユニットを、ハードウェアの複数のユニ
ット間で移動させる。更に複雑なキャッシング・システ
ムが設計され、キャッシング・システムが更に多くのレ
ベルを有し始めたことにより、任意のキャッシング・シ
ステムがコンピュータ・システム上で実行されるソフト
ウェアに対して効率的に動作しているか否かを理解する
ことは、人間にとって更に困難になってきている。キャ
ッシングのパフォーマンス・インパクトなどのコンピュ
ータのメモリの特定の様相を視覚化するうえで人間を助
けるために、ソフトウェアは一般的に存在している。し
かし、これらの従来のソフトウェア・プログラムはライ
ン−バイ−ライン・ディスプレイを使用してメモリをデ
ィスプレイ装置上に表示する。例えば、この種のライン
−バイ−ライン・ディスプレイでは、メモリの第1ユニ
ットに関する情報を表すピクセルはディスプレイ・スク
リーンの第1列内の第1ライン上に表示される。メモリの
第2ユニットに関する情報を表すピクセルはディスプレ
イ・スクリーンの第2列内の第1ライン上に表示され
る。メモリの最後のユニットに関する情報を表すピクセ
ルはディスプレイ・スクリーンの最後の列内の最後のラ
イン上へ表示され得る。メモリの複数の中間ユニットに
関する情報をそれぞれ表す複数のピクセルは、連続する
複数の行へ順次表示され、かつ各行内の連続する複数の
列内へ順次表示される(または、逆に、連続する複数の
列及び複数の行へ)。
ピュータ・システムはページまたはキャッシュ・ライン
などのメモリのユニットを、ハードウェアの複数のユニ
ット間で移動させる。更に複雑なキャッシング・システ
ムが設計され、キャッシング・システムが更に多くのレ
ベルを有し始めたことにより、任意のキャッシング・シ
ステムがコンピュータ・システム上で実行されるソフト
ウェアに対して効率的に動作しているか否かを理解する
ことは、人間にとって更に困難になってきている。キャ
ッシングのパフォーマンス・インパクトなどのコンピュ
ータのメモリの特定の様相を視覚化するうえで人間を助
けるために、ソフトウェアは一般的に存在している。し
かし、これらの従来のソフトウェア・プログラムはライ
ン−バイ−ライン・ディスプレイを使用してメモリをデ
ィスプレイ装置上に表示する。例えば、この種のライン
−バイ−ライン・ディスプレイでは、メモリの第1ユニ
ットに関する情報を表すピクセルはディスプレイ・スク
リーンの第1列内の第1ライン上に表示される。メモリの
第2ユニットに関する情報を表すピクセルはディスプレ
イ・スクリーンの第2列内の第1ライン上に表示され
る。メモリの最後のユニットに関する情報を表すピクセ
ルはディスプレイ・スクリーンの最後の列内の最後のラ
イン上へ表示され得る。メモリの複数の中間ユニットに
関する情報をそれぞれ表す複数のピクセルは、連続する
複数の行へ順次表示され、かつ各行内の連続する複数の
列内へ順次表示される(または、逆に、連続する複数の
列及び複数の行へ)。
【0004】“メモリのローカリティ”という用語は、
メモリ内における時間的及び空間的なデータ(例:変
数)のロケーションを表す。1つの変数へ時間的に近接
してアクセスすることは“時間的ローカリティ”と称さ
れる。物理的に互いに近接して格納された複数の変数へ
それぞれアクセスすることは“空間的ローカリティ”と
称される。メモリ内において互いに近接する複数の物理
的ロケーションは高い空間的ローカリティを有する。例
えば、時間的に互いに近接して読み取られる1つの変数
は高い時間的ローカリティを有する。例えば、コンピュ
ータ・メモリ内において物理的に互いに近接して位置す
る49番目のメモリ・ユニット及び50番目のメモリ・
ユニット(ビット、バイト、ワード、ページなど)は、
高い空間的ローカリティを有する。別の例として、1つ
の変数を素早く連続して2回読み取る場合、この変数は
高い時間的ローカリティを有する。最近のコンピュータ
・システムでは、時間的及び空間的ローカリティ・イン
パクト・パフォーマンス。
メモリ内における時間的及び空間的なデータ(例:変
数)のロケーションを表す。1つの変数へ時間的に近接
してアクセスすることは“時間的ローカリティ”と称さ
れる。物理的に互いに近接して格納された複数の変数へ
それぞれアクセスすることは“空間的ローカリティ”と
称される。メモリ内において互いに近接する複数の物理
的ロケーションは高い空間的ローカリティを有する。例
えば、時間的に互いに近接して読み取られる1つの変数
は高い時間的ローカリティを有する。例えば、コンピュ
ータ・メモリ内において物理的に互いに近接して位置す
る49番目のメモリ・ユニット及び50番目のメモリ・
ユニット(ビット、バイト、ワード、ページなど)は、
高い空間的ローカリティを有する。別の例として、1つ
の変数を素早く連続して2回読み取る場合、この変数は
高い時間的ローカリティを有する。最近のコンピュータ
・システムでは、時間的及び空間的ローカリティ・イン
パクト・パフォーマンス。
【0005】都合の悪いことに、従来のライン−バイ−
ライン・ビジュアリゼーション・ソフトウェアでは、コ
ンピュータの実際のメモリ内の49番目のメモリ・ユニ
ットが50番目のメモリ・ユニットと物理的に連続して
いたとしても、これらのメモリ・ユニットにそれぞれ対
応するディスプレイ・ピクセルはディスプレイ・スクリ
ーンの両側にそれぞれ位置し得る。例えば、49番目の
メモリに対応するピクセルが行n内の最後の列であり、
50番目のメモリ・ユニットに対応するピクセルが行n
+1の第1列内に表示されることがある。従来のビジュ
アリゼーション・ツールは、互いに物理的に近接し、こ
れによって高いローカリティを有する複数のメモリ・ユ
ニットをディスプレイ上に表示する必要がない。このた
め、従来のビジュアリゼーション・ツールは、様々なメ
モリ・ユニットが互いにどのように関連しているかを視
覚化するうえで人間を助けるのに理想的ではなく、また
ローカリティを視覚化するのにも理想的とはいえない。
ライン・ビジュアリゼーション・ソフトウェアでは、コ
ンピュータの実際のメモリ内の49番目のメモリ・ユニ
ットが50番目のメモリ・ユニットと物理的に連続して
いたとしても、これらのメモリ・ユニットにそれぞれ対
応するディスプレイ・ピクセルはディスプレイ・スクリ
ーンの両側にそれぞれ位置し得る。例えば、49番目の
メモリに対応するピクセルが行n内の最後の列であり、
50番目のメモリ・ユニットに対応するピクセルが行n
+1の第1列内に表示されることがある。従来のビジュ
アリゼーション・ツールは、互いに物理的に近接し、こ
れによって高いローカリティを有する複数のメモリ・ユ
ニットをディスプレイ上に表示する必要がない。このた
め、従来のビジュアリゼーション・ツールは、様々なメ
モリ・ユニットが互いにどのように関連しているかを視
覚化するうえで人間を助けるのに理想的ではなく、また
ローカリティを視覚化するのにも理想的とはいえない。
【0006】従来の別のビジュアリゼーション・ソフト
ウェアは、グラフの一方の軸上のアドレス及び他方の軸
上の時間によってメモリ・アクセスを表示する。更に、
この方法は、複数のデータ間の関係を理解するうえで人
間を効果的に助ける手法でデータを提供できない。
ウェアは、グラフの一方の軸上のアドレス及び他方の軸
上の時間によってメモリ・アクセスを表示する。更に、
この方法は、複数のデータ間の関係を理解するうえで人
間を効果的に助ける手法でデータを提供できない。
【0007】
【発明の概要】コンピュータ・メモリの特定の様相をラ
イン−バイ−ライン・ディスプレイに代わってフラクタ
ル曲線に基づくディスプレイ・スクリーン上へ表示する
方法及び装置を、本発明の実施形態は提供する。少なく
とも1つの実施形態において、フラクタル曲線はヒルベ
ルト曲線である。フラクタル曲線ディスプレイはコンピ
ュータ・メモリに関する様々な種類の情報を視覚化する
うえでの助けとして使用可能である。特定の実施形態は
静的に維持されたディスプレイを使用し、他の実施形態
は動的であって、かつメモリ内の変化を反映すべくリア
ルタイムで変化するディスプレイを使用する。
イン−バイ−ライン・ディスプレイに代わってフラクタ
ル曲線に基づくディスプレイ・スクリーン上へ表示する
方法及び装置を、本発明の実施形態は提供する。少なく
とも1つの実施形態において、フラクタル曲線はヒルベ
ルト曲線である。フラクタル曲線ディスプレイはコンピ
ュータ・メモリに関する様々な種類の情報を視覚化する
うえでの助けとして使用可能である。特定の実施形態は
静的に維持されたディスプレイを使用し、他の実施形態
は動的であって、かつメモリ内の変化を反映すべくリア
ルタイムで変化するディスプレイを使用する。
【0008】例えば、読み出しオペレーションまたは書
き込みオペレーションがコンピュータ・メモリ内で発生
した時など、ディスプレイはメモリ・アクセス・パター
ンを視覚化するための助けとして使用することができ
る。第2の例として、バーチャル・メモリ・システム内
のメモリの様々なレベル内またはレベル外で現時点にお
いてスワップされているページを視覚化するための助け
として、ディスプレイを使用することができる。第3の
例として、キャッシング・システム内のアクティブなキ
ャッシュ・ラインを視覚化するための助けとして、ディ
スプレイを使用することができる。第4の例として、メ
モリ内へスワップされたページを視覚化するための助け
として、ディスプレイを使用することができる。第5の
例として、メモリの様々なページの読み出し/書き込み
許可を視覚化するための助けとして、ディスプレイを使
用することができる。第6の例として、キャッシュ・ラ
インの共有されている排他的状態/変更された排他的状
態を視覚化するための助けとして、ディスプレイを使用
することができる。
き込みオペレーションがコンピュータ・メモリ内で発生
した時など、ディスプレイはメモリ・アクセス・パター
ンを視覚化するための助けとして使用することができ
る。第2の例として、バーチャル・メモリ・システム内
のメモリの様々なレベル内またはレベル外で現時点にお
いてスワップされているページを視覚化するための助け
として、ディスプレイを使用することができる。第3の
例として、キャッシング・システム内のアクティブなキ
ャッシュ・ラインを視覚化するための助けとして、ディ
スプレイを使用することができる。第4の例として、メ
モリ内へスワップされたページを視覚化するための助け
として、ディスプレイを使用することができる。第5の
例として、メモリの様々なページの読み出し/書き込み
許可を視覚化するための助けとして、ディスプレイを使
用することができる。第6の例として、キャッシュ・ラ
インの共有されている排他的状態/変更された排他的状
態を視覚化するための助けとして、ディスプレイを使用
することができる。
【0009】メモリを視覚化するうえでの助けとしての
ヒルベルト曲線の使用は、2の累乗に等しい複数のメモ
リ・グループを互いに近接して表示可能にする効果を有
する。例えば、メモリ・アドレス00xxxxxx(x
xは任意の値)に対応するフラクタル曲線の複数のディ
スプレイ・ビットは、メモリ・ディスプレイの同じ象限
内へグループ分けされる。同様に、メモリ・アドレス0
000xxxxに対応するフラクタル曲線の複数のディ
スプレイ・ビットは、アドレス00xxxxxxの複数
のディスプレイ・ビットを保持する象限の副象限内へグ
ループ分けされる。メモリ・アドレス000000xx
に対応するフラクタル曲線の複数のディスプレイ・ビッ
トは、アドレス0000xxxxの複数のディスプレイ
・ビットを保持する象限の副副象限内へグループ分けさ
れる。
ヒルベルト曲線の使用は、2の累乗に等しい複数のメモ
リ・グループを互いに近接して表示可能にする効果を有
する。例えば、メモリ・アドレス00xxxxxx(x
xは任意の値)に対応するフラクタル曲線の複数のディ
スプレイ・ビットは、メモリ・ディスプレイの同じ象限
内へグループ分けされる。同様に、メモリ・アドレス0
000xxxxに対応するフラクタル曲線の複数のディ
スプレイ・ビットは、アドレス00xxxxxxの複数
のディスプレイ・ビットを保持する象限の副象限内へグ
ループ分けされる。メモリ・アドレス000000xx
に対応するフラクタル曲線の複数のディスプレイ・ビッ
トは、アドレス0000xxxxの複数のディスプレイ
・ビットを保持する象限の副副象限内へグループ分けさ
れる。
【0010】特定の実施形態はメモリ・アクセスの種類
を表示するためにディスプレイ上の色を使用する。他の
実施形態はディスプレイ上に表示されたメモリの種類を
示すためにディスプレイの色を使用する。更に、メモリ
の様々な様相を視覚化することを助けるために、本発明
の特定の実施形態は2次元または3次元で描かれたフラ
クタル曲線の3次元バージョンを使用する。
を表示するためにディスプレイ上の色を使用する。他の
実施形態はディスプレイ上に表示されたメモリの種類を
示すためにディスプレイの色を使用する。更に、メモリ
の様々な様相を視覚化することを助けるために、本発明
の特定の実施形態は2次元または3次元で描かれたフラ
クタル曲線の3次元バージョンを使用する。
【0011】本明細書中に具体的に例示し、かつ広範に
説明する本発明の目的に基づき、本発明はデータ処理シ
ステムによって実行される情報を表示する方法であっ
て、メモリ・ロケーションを含むメモリ・イベントの通
知を受け取るステップと、メモリ・イベントが発生した
メモリ・ロケーションに対応するフラクタル曲線の部分
を決定するステップと、フラクタル曲線のうちの決定さ
れた部分に基づいて、ディスプレイ・スクリーンの部分
を強調(ハイライト)するステップとを含む方法に関す
る。
説明する本発明の目的に基づき、本発明はデータ処理シ
ステムによって実行される情報を表示する方法であっ
て、メモリ・ロケーションを含むメモリ・イベントの通
知を受け取るステップと、メモリ・イベントが発生した
メモリ・ロケーションに対応するフラクタル曲線の部分
を決定するステップと、フラクタル曲線のうちの決定さ
れた部分に基づいて、ディスプレイ・スクリーンの部分
を強調(ハイライト)するステップとを含む方法に関す
る。
【0012】本発明は以下の詳細な説明及び請求の範囲
を添付図面とともに参照することにより明らかになり、
かつ十分に理解できる。
を添付図面とともに参照することにより明らかになり、
かつ十分に理解できる。
【0013】本明細書に含まれ、かつ本明細書の一部を
構成する添付図面は、本発明の幾つかの実施形態を示
し、かつ以下の詳細な説明とともに本発明の原理を示す
ために使用される。
構成する添付図面は、本発明の幾つかの実施形態を示
し、かつ以下の詳細な説明とともに本発明の原理を示す
ために使用される。
【0014】
【発明の実施の形態】I.一般的解説
【0015】図1は本発明の好ましい実施形態に基づく
データ処理システム100のブロック図である。図1に
おいて、データ処理システム100はプロセッサ102
及びデータ記憶領域(例:メモリ)104を有する。図
1の例はプロセッサ108が典型的なキャッシュ111
を含むことを示す。但し、本発明を実装した全てのシス
テムがキャッシュを含むわけではなく、システム内の全
てのキャッシュがプロセッサ102内に位置する必要は
ない。データ記憶領域104はデータ・ストラクチャ、
ページ、ページ・テーブルなどのよく知られた特定の種
類のデータ106を含む。更に、記憶領域104は以下
に詳述するコンピュータ・システムの様々な様相の視覚
化を助けるメモリ・ビジュアリゼーション・ソフトウェア
110を含む。メモリ・ビジュアリゼーション・ソフトウ
ェア110はシステム100とは別のリモート・システ
ム(図示略)などのコンピュータ・システム内に位置し
得る。更に、記憶領域104はLAN、WANまたはイ
ンターネットなどのネットワークと通信するためのソフ
トウェア(図示略)を含むことが好ましい。但し、本発
明は独立型コンピュータへの実装が可能である。
データ処理システム100のブロック図である。図1に
おいて、データ処理システム100はプロセッサ102
及びデータ記憶領域(例:メモリ)104を有する。図
1の例はプロセッサ108が典型的なキャッシュ111
を含むことを示す。但し、本発明を実装した全てのシス
テムがキャッシュを含むわけではなく、システム内の全
てのキャッシュがプロセッサ102内に位置する必要は
ない。データ記憶領域104はデータ・ストラクチャ、
ページ、ページ・テーブルなどのよく知られた特定の種
類のデータ106を含む。更に、記憶領域104は以下
に詳述するコンピュータ・システムの様々な様相の視覚
化を助けるメモリ・ビジュアリゼーション・ソフトウェア
110を含む。メモリ・ビジュアリゼーション・ソフトウ
ェア110はシステム100とは別のリモート・システ
ム(図示略)などのコンピュータ・システム内に位置し
得る。更に、記憶領域104はLAN、WANまたはイ
ンターネットなどのネットワークと通信するためのソフ
トウェア(図示略)を含むことが好ましい。但し、本発
明は独立型コンピュータへの実装が可能である。
【0016】その入力をプロセッサ102が読み取れる
キーボード、ポインティング・デバイス、マウス、タッ
チパッドなどの入力装置を、システム100は含むこと
が好ましい。システム100は出力装置140を含むこ
とが好ましい。例えば、この出力装置140は、プロセ
ッサ102からの出力の送信または出力の表示を可能に
したコンピュータ・モニタ、ディスプレイ装置または任
意の装置であり得る。
キーボード、ポインティング・デバイス、マウス、タッ
チパッドなどの入力装置を、システム100は含むこと
が好ましい。システム100は出力装置140を含むこ
とが好ましい。例えば、この出力装置140は、プロセ
ッサ102からの出力の送信または出力の表示を可能に
したコンピュータ・モニタ、ディスプレイ装置または任
意の装置であり得る。
【0017】システム100が入出力線などの別のエレ
メントと、キーボード、マウス及び音声入力装置などの
入力装置と、ディスプレイ・ターミナルなどのディスプ
レイ装置とを含み得ることを当業者は理解し得る。フロ
ッピー・ディスク、CD−ROMまたはDVDディスク
などのコンピュータ読み取り可能媒体160に格納され
たコンピュータ命令を読み取るフロッピー・ディスク・
ドライブ、CD−ROMリーダまたはDVDリーダなど
のコンピュータ読み取り可能入力装置150を、システ
ム100は更に含み得る。本発明の理解を容易にする目
的で図示を省略したアプリケーション・プログラム、オ
ペレーティング・システム及びデータなどを、システム
100は更に含み得る。更に、ディスク・ドライブ、キ
ーボード、ディスプレイ装置、ネットワーク接続、追加
メモリ、追加プロセッサ(即ち、追加CPU)、LAN
及び入出力線などの図示しない多数のエレメントを、シ
ステム10が更に含み得ることを理解できる。
メントと、キーボード、マウス及び音声入力装置などの
入力装置と、ディスプレイ・ターミナルなどのディスプ
レイ装置とを含み得ることを当業者は理解し得る。フロ
ッピー・ディスク、CD−ROMまたはDVDディスク
などのコンピュータ読み取り可能媒体160に格納され
たコンピュータ命令を読み取るフロッピー・ディスク・
ドライブ、CD−ROMリーダまたはDVDリーダなど
のコンピュータ読み取り可能入力装置150を、システ
ム100は更に含み得る。本発明の理解を容易にする目
的で図示を省略したアプリケーション・プログラム、オ
ペレーティング・システム及びデータなどを、システム
100は更に含み得る。更に、ディスク・ドライブ、キ
ーボード、ディスプレイ装置、ネットワーク接続、追加
メモリ、追加プロセッサ(即ち、追加CPU)、LAN
及び入出力線などの図示しない多数のエレメントを、シ
ステム10が更に含み得ることを理解できる。
【0018】以下の説明において、方法及びフローチャ
ートの各ステップは、記憶領域104(または他の適切
なメモリ若しくは記憶領域)に格納された命令を実行す
るプロセッサ102(または別の適切なプロセッサ)に
よって実施されることが好ましいことを理解できる。更
に、本発明は特定のインプリメンテーション技術または
プログラミング技術に限定されるものではなく、本発明
は本明細書に開示する機能をインプリメントする任意の
適切な技術を用いてインプリメントできることを理解し
得る。本発明は特定のプログラミング言語またはオペレ
ーティング・システムに限定されない。
ートの各ステップは、記憶領域104(または他の適切
なメモリ若しくは記憶領域)に格納された命令を実行す
るプロセッサ102(または別の適切なプロセッサ)に
よって実施されることが好ましいことを理解できる。更
に、本発明は特定のインプリメンテーション技術または
プログラミング技術に限定されるものではなく、本発明
は本明細書に開示する機能をインプリメントする任意の
適切な技術を用いてインプリメントできることを理解し
得る。本発明は特定のプログラミング言語またはオペレ
ーティング・システムに限定されない。
【0019】記憶領域104内の命令は、コンピュータ
読み取り可能媒体から記憶領域104内へ読み込まれ
る。メイン・メモリ内に格納されている命令の列を実行
することにより、複数のプロセッサのうちの1つは本明
細書に開示するプロセスの工程を実行する。別の実施形
態では、本発明をインプリメントするために、ハードワ
イヤード回路をソフトウェア命令に代えてまたはソフト
ウェア命令と組み合わせて使用することができる。した
がって、本発明の実施形態はハードウェア回路及びソフ
トウェアの特定の組み合わせに限定されない。
読み取り可能媒体から記憶領域104内へ読み込まれ
る。メイン・メモリ内に格納されている命令の列を実行
することにより、複数のプロセッサのうちの1つは本明
細書に開示するプロセスの工程を実行する。別の実施形
態では、本発明をインプリメントするために、ハードワ
イヤード回路をソフトウェア命令に代えてまたはソフト
ウェア命令と組み合わせて使用することができる。した
がって、本発明の実施形態はハードウェア回路及びソフ
トウェアの特定の組み合わせに限定されない。
【0020】本明細書内で使用する“コンピュータ読み
取り可能媒体”という用語は、命令を実行するために、
この命令をプロセッサへ提供することに関与する任意の
媒体を指す。この種の媒体は不揮発性媒体、揮発性媒体
及び伝送媒体を含む多数の形態をなし得る(但し、これ
らの形態に限定されない)。例えば、不揮発性媒体は記
憶装置などの光ディスクまたは磁気ディスクを含む。揮
発性媒体はダイナミック・メモリを含む。伝送媒体は同
軸ケーブル、銅線及び光ファイバを含み、これらにはコ
ンピュータ内のバスを構成するワイヤが含まれる。更
に、伝送媒体は無線データ通信及び赤外線データ通信な
どで生成される音波または光波の形態をなし得る。
取り可能媒体”という用語は、命令を実行するために、
この命令をプロセッサへ提供することに関与する任意の
媒体を指す。この種の媒体は不揮発性媒体、揮発性媒体
及び伝送媒体を含む多数の形態をなし得る(但し、これ
らの形態に限定されない)。例えば、不揮発性媒体は記
憶装置などの光ディスクまたは磁気ディスクを含む。揮
発性媒体はダイナミック・メモリを含む。伝送媒体は同
軸ケーブル、銅線及び光ファイバを含み、これらにはコ
ンピュータ内のバスを構成するワイヤが含まれる。更
に、伝送媒体は無線データ通信及び赤外線データ通信な
どで生成される音波または光波の形態をなし得る。
【0021】例えば、コンピュータ読み取り可能媒体の
一般的形態は、フロッピー・ディスク、フレキシブル・
ディスク、ハード・ディスク、磁気テープ、任意の他の
磁気媒体、CD−ROM、任意の他の光媒体、パンチカ
ード、ペーパーテープ、孔のパターンを有する任意の他
の物理媒体、RAM、PROM、EPROM、フラッシ
ュEPROM、任意の他のメモリ・チップもしくはカー
トリッジ、搬送波、またはコンピュータが読み取れる任
意の他の媒体を含む。
一般的形態は、フロッピー・ディスク、フレキシブル・
ディスク、ハード・ディスク、磁気テープ、任意の他の
磁気媒体、CD−ROM、任意の他の光媒体、パンチカ
ード、ペーパーテープ、孔のパターンを有する任意の他
の物理媒体、RAM、PROM、EPROM、フラッシ
ュEPROM、任意の他のメモリ・チップもしくはカー
トリッジ、搬送波、またはコンピュータが読み取れる任
意の他の媒体を含む。
【0022】コンピュータ読み取り可能媒体の様々な形
態は、プロセッサに対する1つ以上の命令の1つ以上の
列を格納することに関与する。例えば、命令はリモート
・コンピュータの磁気ディスクへ最初に格納し得る。リ
モート・コンピュータは命令を自身のダイナミック・メ
モリ内へロードし、次いで、その命令をモデムを用いる
ことによって電話回線を通じて送信し得る。このコンピ
ュータ・システムにとってローカルなモデムは、電話回
線上のデータを受信し、次いで、受信したデータを赤外
線信号へ変換すべく赤外線トランスミッタを使用し得
る。バスへ接続された赤外線検出器は赤外線信号内のデ
ータを受信し、かつそのデータをバス上へ出力し得る。
バスはデータをメイン・メモリへ搬送し、プロセッサは
命令をメイン・メモリからリトリーブし、かつ実行す
る。メイン・メモリが受信した命令は、プロセッサによ
るその命令の実行前または実行後に記憶装置へ任意にて
格納可能である。
態は、プロセッサに対する1つ以上の命令の1つ以上の
列を格納することに関与する。例えば、命令はリモート
・コンピュータの磁気ディスクへ最初に格納し得る。リ
モート・コンピュータは命令を自身のダイナミック・メ
モリ内へロードし、次いで、その命令をモデムを用いる
ことによって電話回線を通じて送信し得る。このコンピ
ュータ・システムにとってローカルなモデムは、電話回
線上のデータを受信し、次いで、受信したデータを赤外
線信号へ変換すべく赤外線トランスミッタを使用し得
る。バスへ接続された赤外線検出器は赤外線信号内のデ
ータを受信し、かつそのデータをバス上へ出力し得る。
バスはデータをメイン・メモリへ搬送し、プロセッサは
命令をメイン・メモリからリトリーブし、かつ実行す
る。メイン・メモリが受信した命令は、プロセッサによ
るその命令の実行前または実行後に記憶装置へ任意にて
格納可能である。
【0023】II.メモリの視覚化 図1のコンピュータ・メモリの特定の様相を視覚化する
ための助けとして、図1のコンピュータ・プログラムが
使用する曲線200を図2は示す。本実施形態では、曲
線は明示的に描かれていない。これに代わって、例えば
記憶領域104またはキャッシュ111のメモリ・アド
レスが曲線上にマッピングされている。実際、曲線20
0はコンピュータ100または二次記憶装置内の適切な
任意のメモリに対応可能である。ディスプレイはフラク
タル曲線(ヒルベルト曲線など)を含み、曲線の各エッ
ジはメモリの関連する部分、即ち、様相を表す。以下に
詳述するように、メモリの複数の部分、即ち、複数の様
相を表すためのフラクタル曲線の使用は、人がメモリの
複数の部分の間の関係を更に簡単に視覚化することを可
能にする。
ための助けとして、図1のコンピュータ・プログラムが
使用する曲線200を図2は示す。本実施形態では、曲
線は明示的に描かれていない。これに代わって、例えば
記憶領域104またはキャッシュ111のメモリ・アド
レスが曲線上にマッピングされている。実際、曲線20
0はコンピュータ100または二次記憶装置内の適切な
任意のメモリに対応可能である。ディスプレイはフラク
タル曲線(ヒルベルト曲線など)を含み、曲線の各エッ
ジはメモリの関連する部分、即ち、様相を表す。以下に
詳述するように、メモリの複数の部分、即ち、複数の様
相を表すためのフラクタル曲線の使用は、人がメモリの
複数の部分の間の関係を更に簡単に視覚化することを可
能にする。
【0024】具体的には、ヒルベルト曲線の使用は、そ
の曲線の各象限及び副象限がメモリ・アドレスの各ビッ
トへ対応することを可能にする。2の偶数累乗に属する
アドレスはフラクタル曲線の象限及び副象限へマッピン
グされるため、ヒルベルト曲線の特質はメモリ/ハード
ウェアのローカリティの簡単な視覚化を可能にする。任
意のサイズの曲線の矩形領域は、キャッシュ・ラインま
たはページなどのハードウェア・エンティティに当然対
応している。この結果、メモリ・アクセス・パターンが
ハードウェア上へいかにマッピングするかを見ること
は、人間にとって簡単である。視覚的に組み入れたディ
スプレイの部分は、論理的に組み入れたハードウェアの
ユニットへ対応している。例えば、図2において、曲線
200は10ビット・アドレスの視覚化を助けるために
使用される。図2はページによって識別されたロケーシ
ョン(ページは256個のロケーションを有する)に対
応する曲線200の部分250を示す。別の例として、
図2は部分250内に組み入れた曲線200の更に小さ
い部分252を示し、この更に小さい部分252はキャ
ッシュ・ライン(キャッシュ・ラインは32個のロケー
ションを有する)に対応している。
の曲線の各象限及び副象限がメモリ・アドレスの各ビッ
トへ対応することを可能にする。2の偶数累乗に属する
アドレスはフラクタル曲線の象限及び副象限へマッピン
グされるため、ヒルベルト曲線の特質はメモリ/ハード
ウェアのローカリティの簡単な視覚化を可能にする。任
意のサイズの曲線の矩形領域は、キャッシュ・ラインま
たはページなどのハードウェア・エンティティに当然対
応している。この結果、メモリ・アクセス・パターンが
ハードウェア上へいかにマッピングするかを見ること
は、人間にとって簡単である。視覚的に組み入れたディ
スプレイの部分は、論理的に組み入れたハードウェアの
ユニットへ対応している。例えば、図2において、曲線
200は10ビット・アドレスの視覚化を助けるために
使用される。図2はページによって識別されたロケーシ
ョン(ページは256個のロケーションを有する)に対
応する曲線200の部分250を示す。別の例として、
図2は部分250内に組み入れた曲線200の更に小さ
い部分252を示し、この更に小さい部分252はキャ
ッシュ・ライン(キャッシュ・ラインは32個のロケー
ションを有する)に対応している。
【0025】図3はメモリの複数の部分をフラクタル曲
線上へマッピングするために、本発明の実施形態で実行
するステップの概要を示すブロック図である。本実施形
態では、フラクタル曲線は明示的に描かれていない。
線上へマッピングするために、本発明の実施形態で実行
するステップの概要を示すブロック図である。本実施形
態では、フラクタル曲線は明示的に描かれていない。
【0026】図3の各ステップはプロセッサ102によ
って実行されるメモリ・ビジュアリゼーション・ソフトウ
ェア110による実行が可能である。ステップ301に
示すように、ソフトウェア110は特定のアドレスで発
生したメモリ・イベントの通知を受信する。例えば、メ
モリ・イベントは読み出し若しくは書き込みなどのメモ
リ・アクセスまたはキャッシュ・アクセスであり得る。
ソフトウェア110がメモリ内の全てのアドレスを曲線
上にマッピングする場合、メモリ・イベントは連続する
複数のメモリ・アドレスのうちの次に位置するメモリ・
アドレスの単なる受け取りであり得る。メモリ・イベン
トの通知は任意の適切なソースから受信可能であるが、
本実施形態では、このメモリ・イベントの通知はデータ
・プロセッシング・システムのオペレーティング・シス
テムから受信する。例えば、サンマイクロシステムズ・
インコーポレイテッドから入手可能なソラリス・オペレ
ーティング・システム(Solaris operating system)で
は、オペレーティング・システムが特定のメモリ・イベ
ントを実行中のプログラムへ通知することを、この実行
中のプログラムはリクエスト可能である(ソラリスは米
国及び他の国々におけるサンマイクロシステムズ・イン
コーポレイテッドの商標または登録商標である)。別の
例として、他のオペレーティング・システムは、ソフト
ウェア110がメモリ・イベントの発生に関するポーリ
ングをそのオペレーティング・システムに対して実施す
ることを可能にしている。
って実行されるメモリ・ビジュアリゼーション・ソフトウ
ェア110による実行が可能である。ステップ301に
示すように、ソフトウェア110は特定のアドレスで発
生したメモリ・イベントの通知を受信する。例えば、メ
モリ・イベントは読み出し若しくは書き込みなどのメモ
リ・アクセスまたはキャッシュ・アクセスであり得る。
ソフトウェア110がメモリ内の全てのアドレスを曲線
上にマッピングする場合、メモリ・イベントは連続する
複数のメモリ・アドレスのうちの次に位置するメモリ・
アドレスの単なる受け取りであり得る。メモリ・イベン
トの通知は任意の適切なソースから受信可能であるが、
本実施形態では、このメモリ・イベントの通知はデータ
・プロセッシング・システムのオペレーティング・シス
テムから受信する。例えば、サンマイクロシステムズ・
インコーポレイテッドから入手可能なソラリス・オペレ
ーティング・システム(Solaris operating system)で
は、オペレーティング・システムが特定のメモリ・イベ
ントを実行中のプログラムへ通知することを、この実行
中のプログラムはリクエスト可能である(ソラリスは米
国及び他の国々におけるサンマイクロシステムズ・イン
コーポレイテッドの商標または登録商標である)。別の
例として、他のオペレーティング・システムは、ソフト
ウェア110がメモリ・イベントの発生に関するポーリ
ングをそのオペレーティング・システムに対して実施す
ることを可能にしている。
【0027】ステップ302は受信したメモリ・アドレ
ス・ビットに基づいてフラクタル曲線上のポジションを
決定する。ステップ302の詳細は図4に示す。ステッ
プ304は受信したメモリ・アドレスに対応するフラク
タル曲線の部分を強調する。本発明の個々のインプリメ
ンテーションの解像度に基づき、このフラクタル曲線の
部分は単一ピクセルまたはピクセル群となり得る。従っ
て、例えば、読み出しアクセスが発生した時は必ず曲線
の部分を強調すべくソフトウェア110が設計されてい
る場合、新たなアドレスの全ての読み出しアクセスは、
曲線上の別のピクセルを強調する。
ス・ビットに基づいてフラクタル曲線上のポジションを
決定する。ステップ302の詳細は図4に示す。ステッ
プ304は受信したメモリ・アドレスに対応するフラク
タル曲線の部分を強調する。本発明の個々のインプリメ
ンテーションの解像度に基づき、このフラクタル曲線の
部分は単一ピクセルまたはピクセル群となり得る。従っ
て、例えば、読み出しアクセスが発生した時は必ず曲線
の部分を強調すべくソフトウェア110が設計されてい
る場合、新たなアドレスの全ての読み出しアクセスは、
曲線上の別のピクセルを強調する。
【0028】図4はフラクタル曲線ディスプレイを形成
するために、本発明の実施形態で実行するステップを示
すフローチャートであり、ディスプレイはメモリ・アク
セスのローカリティを示す。フローチャートは図3のス
テップ302,304の詳細を示す。ステップ401は
フラクタル曲線をディスプレイに表示する。前記のよう
に、特定の実施形態はこの初期ステップを実行しない。
するために、本発明の実施形態で実行するステップを示
すフローチャートであり、ディスプレイはメモリ・アク
セスのローカリティを示す。フローチャートは図3のス
テップ302,304の詳細を示す。ステップ401は
フラクタル曲線をディスプレイに表示する。前記のよう
に、特定の実施形態はこの初期ステップを実行しない。
【0029】ステップ402では、メモリ・アドレスに
おけるメモリ・イベントの発生の通知を、ソフトウェア
110は受信する。ステップ404では、ソフトウェア
110はメモリ・イベントを表すための色を選択する。
いくつかの実施形態では、全てのメモリ・イベントは単
一の色で表される。別の実施形態では、異なる種類のメ
モリ・イベントは異なる色でそれぞれ表される。例え
ば、読み出しアクセスを第1の色で表示し、書き込みア
クセスを第2の色で表示する。別の例として、読み出し
許可を有する全てのメモリ・ロケーションを第1の色で
表示し、読み出し/書き込み許可を有する全てのメモリ
・ロケーションを第2の色で表示する。第3の例とし
て、アクセスを単位時間内で特定の回数受けた全てのメ
モリ・ロケーションを第1の色で表示し、アクセスを単
位時間内でこれとは別の回数受けた全てのメモリ・ロケ
ーションを第2の色で表示する。第4の例として、キャ
ッシュから満たされた全てのメモリ・ロケーションを第
1の色で表示し、二次記憶装置から満たされた全てのメ
モリ・ロケーションを第2の色で表示する。第5の例と
して、二次記憶装置へ書き戻されたキャッシュ内の全て
のメモリ・ロケーションを第1の色で表示し、書き戻さ
れていない全てのメモリ・ロケーションを第2の色で表
示する。
おけるメモリ・イベントの発生の通知を、ソフトウェア
110は受信する。ステップ404では、ソフトウェア
110はメモリ・イベントを表すための色を選択する。
いくつかの実施形態では、全てのメモリ・イベントは単
一の色で表される。別の実施形態では、異なる種類のメ
モリ・イベントは異なる色でそれぞれ表される。例え
ば、読み出しアクセスを第1の色で表示し、書き込みア
クセスを第2の色で表示する。別の例として、読み出し
許可を有する全てのメモリ・ロケーションを第1の色で
表示し、読み出し/書き込み許可を有する全てのメモリ
・ロケーションを第2の色で表示する。第3の例とし
て、アクセスを単位時間内で特定の回数受けた全てのメ
モリ・ロケーションを第1の色で表示し、アクセスを単
位時間内でこれとは別の回数受けた全てのメモリ・ロケ
ーションを第2の色で表示する。第4の例として、キャ
ッシュから満たされた全てのメモリ・ロケーションを第
1の色で表示し、二次記憶装置から満たされた全てのメ
モリ・ロケーションを第2の色で表示する。第5の例と
して、二次記憶装置へ書き戻されたキャッシュ内の全て
のメモリ・ロケーションを第1の色で表示し、書き戻さ
れていない全てのメモリ・ロケーションを第2の色で表
示する。
【0030】2色を超す数の色を使用した前記の実施の
形態の変更例は明らかである。第6の例として、共有さ
れている状態、変更された状態または排他的状態にある
全てのメモリ・ロケーションをそれぞれ別の色で表示す
る。
形態の変更例は明らかである。第6の例として、共有さ
れている状態、変更された状態または排他的状態にある
全てのメモリ・ロケーションをそれぞれ別の色で表示す
る。
【0031】ステップ406〜414は受信したメモリ
・アドレスに対応するフラクタル曲線の部分を決定する
ループを形成している。このループは受信したアドレス
の各2ビットに対して繰り返し実施することが好まし
い。ステップ406では、図6に関連して以下に詳述す
るように、初期“ローテーション”を“l”の値にセッ
トする。この例では、初期ローテーション“l”は、ヒ
ルベルト曲線がこのローテーションへ最初に配向される
ことに起因して選択されている。他の初期ローテーショ
ンを使用してもよい。
・アドレスに対応するフラクタル曲線の部分を決定する
ループを形成している。このループは受信したアドレス
の各2ビットに対して繰り返し実施することが好まし
い。ステップ406では、図6に関連して以下に詳述す
るように、初期“ローテーション”を“l”の値にセッ
トする。この例では、初期ローテーション“l”は、ヒ
ルベルト曲線がこのローテーションへ最初に配向される
ことに起因して選択されている。他の初期ローテーショ
ンを使用してもよい。
【0032】ステップ408は受信したアドレスの次の
2ビットを取得する。ステップ410では、“次のロー
テーション”値及び新たなx,y値を得るために、図5
のステート・テーブル内で索引付けすべく、ソフトウェ
ア110はローテーションと、メモリ・アドレスの2ビ
ットとを使用する。x,y値が受信したアドレスの各2
ビットに対して保存されるまで、前記の新たなx,y値
はループの各反復に対して保存される。この時点におい
て、ステップ416では、保存されているx値及びy値
の列が示すフラクタル曲線上のポジションにおいて、ソ
フトウェア110はフラクタル曲線の部分を選択した色
で強調する。このフラクタル曲線上のポジションのxポ
ジションを形成するために、保存されている複数のx値
を連結し得る。更に、このフラクタル曲線上のポジショ
ンのyポジションを形成するために、保存されている複
数のy値を連結し得る。ステップ416の更なる詳細は
以下に複数の例で示す。
2ビットを取得する。ステップ410では、“次のロー
テーション”値及び新たなx,y値を得るために、図5
のステート・テーブル内で索引付けすべく、ソフトウェ
ア110はローテーションと、メモリ・アドレスの2ビ
ットとを使用する。x,y値が受信したアドレスの各2
ビットに対して保存されるまで、前記の新たなx,y値
はループの各反復に対して保存される。この時点におい
て、ステップ416では、保存されているx値及びy値
の列が示すフラクタル曲線上のポジションにおいて、ソ
フトウェア110はフラクタル曲線の部分を選択した色
で強調する。このフラクタル曲線上のポジションのxポ
ジションを形成するために、保存されている複数のx値
を連結し得る。更に、このフラクタル曲線上のポジショ
ンのyポジションを形成するために、保存されている複
数のy値を連結し得る。ステップ416の更なる詳細は
以下に複数の例で示す。
【0033】図5はメモリの特定の部分に対応するフラ
クタル曲線の部分を決定すべく図4のフローチャートで
使用するステート・テーブルの例を示す。本実施形態の
ステート・テーブルは入力値、即ち、現在のローテーシ
ョン値及び2つのアドレス・ビットと、出力値、即ち、
x,yの2ビット及び次のローテーション値とを含む。
前記のように、メモリ・アドレスの各2ビット及び現在
のローテーション値は出力x,y値及び次のローテーシ
ョン値を決定するために使用される。メモリ・アドレス
に対応するフラクタル曲線の部分を強調するために、
x,y値の列は保存され、かつ使用される
クタル曲線の部分を決定すべく図4のフローチャートで
使用するステート・テーブルの例を示す。本実施形態の
ステート・テーブルは入力値、即ち、現在のローテーシ
ョン値及び2つのアドレス・ビットと、出力値、即ち、
x,yの2ビット及び次のローテーション値とを含む。
前記のように、メモリ・アドレスの各2ビット及び現在
のローテーション値は出力x,y値及び次のローテーシ
ョン値を決定するために使用される。メモリ・アドレス
に対応するフラクタル曲線の部分を強調するために、
x,y値の列は保存され、かつ使用される
【0034】図6は図5のステート・テーブルの可能な
ローテーション値を示す。フラクタル曲線を描くために
使用する象限内における2ビット値の順番を、ローテー
ション値は表している。例えば、ローテーション値
“L”は順番602を表す。順番602では、2ビット
値00,01,10,11は下段左側の象限から始まる
反時計方向パスを形成する。ローテーション値“R”は
順番604を表す。順番604では、2ビット値00,
01,10,11は上段右側の象限から始まる反時計方
向パスを形成する。他のローテーション値“U”,
“D”,“l”,“r”,“u”,“d”を同様に示
す。
ローテーション値を示す。フラクタル曲線を描くために
使用する象限内における2ビット値の順番を、ローテー
ション値は表している。例えば、ローテーション値
“L”は順番602を表す。順番602では、2ビット
値00,01,10,11は下段左側の象限から始まる
反時計方向パスを形成する。ローテーション値“R”は
順番604を表す。順番604では、2ビット値00,
01,10,11は上段右側の象限から始まる反時計方
向パスを形成する。他のローテーション値“U”,
“D”,“l”,“r”,“u”,“d”を同様に示
す。
【0035】図7は図4のフローチャートで使用する象
限のレベル702,704,706,708の例を示
す。第1のレベル702では、フラクタル曲線を描く空
間は4つの象限へ分割されている。図7において、ロー
テーションは“l”であるため、4つの象限は上段左側
から時計方向に00,01,10,11の番号が振られ
ている。更に、レベル1内の各象限はレベル2の4つの
副象限へ分割されており、これら4つの副象限は00,
01,10,11の番号がそれぞれ振られており、この
順番は各副象限に関連したローテーション値に基づいて
いる。更に、レベル2内の各副象限はレベル3の4つの
副副象限へ分割されており、これら4つの副副象限は0
0,01,10,11の番号がそれぞれ振られており、
この順番は各副副象限に関連するローテーション値に基
づいている。更に、レベル3内の各副副象限はレベル4
の4つの副副副象限へ分割されており、これら4つの副
副副象限は00,01,10,11の番号がそれぞれ振
られており、この順番は各副副副象限に関連するローテ
ーション値に基づいている。
限のレベル702,704,706,708の例を示
す。第1のレベル702では、フラクタル曲線を描く空
間は4つの象限へ分割されている。図7において、ロー
テーションは“l”であるため、4つの象限は上段左側
から時計方向に00,01,10,11の番号が振られ
ている。更に、レベル1内の各象限はレベル2の4つの
副象限へ分割されており、これら4つの副象限は00,
01,10,11の番号がそれぞれ振られており、この
順番は各副象限に関連したローテーション値に基づいて
いる。更に、レベル2内の各副象限はレベル3の4つの
副副象限へ分割されており、これら4つの副副象限は0
0,01,10,11の番号がそれぞれ振られており、
この順番は各副副象限に関連するローテーション値に基
づいている。更に、レベル3内の各副副象限はレベル4
の4つの副副副象限へ分割されており、これら4つの副
副副象限は00,01,10,11の番号がそれぞれ振
られており、この順番は各副副副象限に関連するローテ
ーション値に基づいている。
【0036】従って、図7の例では、レベル4の各副副
副象限は1つの8ビット・メモリ・アドレスに対応して
いる。初期ローテーション及び初期2アドレス・ビット
が与えられた場合、任意のメモリ・アドレスに対応する
フラクタル曲線の部分(即ち、副副副象限)を決定する
ために、図5のステート・テーブルに類似するステート
・テーブルを使用できる。メモリ・アドレスは単一のビ
ット、バイト、ワード、キャッシュ・ライン、ページま
たは任意の他の適切なメモリ・ユニットを表し得る。
副象限は1つの8ビット・メモリ・アドレスに対応して
いる。初期ローテーション及び初期2アドレス・ビット
が与えられた場合、任意のメモリ・アドレスに対応する
フラクタル曲線の部分(即ち、副副副象限)を決定する
ために、図5のステート・テーブルに類似するステート
・テーブルを使用できる。メモリ・アドレスは単一のビ
ット、バイト、ワード、キャッシュ・ライン、ページま
たは任意の他の適切なメモリ・ユニットを表し得る。
【0037】図7の例は例示を目的として提供されてお
り、他のフラクタル曲線は他の構成を有することが可能
であり、長さの異なるメモリ・アドレスは、副象限の異
なるレベル数を有する。例えば、曲線のレベルの各エッ
ジが2アドレス・ビットを表す16ビット・アドレス
は、8つのレベルを有する。
り、他のフラクタル曲線は他の構成を有することが可能
であり、長さの異なるメモリ・アドレスは、副象限の異
なるレベル数を有する。例えば、曲線のレベルの各エッ
ジが2アドレス・ビットを表す16ビット・アドレス
は、8つのレベルを有する。
【0038】図8及び図9はメモリ・アドレスに対応す
る表示されたフラクタル曲線の部分の位置を決定する方
法を示す例を提供する。この例では、ソフトウェア11
0はメモリ・アドレス10001110に対応するフラ
クタル曲線の部分を決定する。このアドレスは8ビット
を有するため、4つのx,yペアが図5のステート・テ
ーブルに基づいて決定され、かつ保存される。具体的に
は、図8に示すように、初期ローテーション“l”及び
初期2ビット・アドレス値10は、l、U、r及びrの
次のローテーション値を招来し、さらには11、00、
10及び00のx,yペアを招来する。
る表示されたフラクタル曲線の部分の位置を決定する方
法を示す例を提供する。この例では、ソフトウェア11
0はメモリ・アドレス10001110に対応するフラ
クタル曲線の部分を決定する。このアドレスは8ビット
を有するため、4つのx,yペアが図5のステート・テ
ーブルに基づいて決定され、かつ保存される。具体的に
は、図8に示すように、初期ローテーション“l”及び
初期2ビット・アドレス値10は、l、U、r及びrの
次のローテーション値を招来し、さらには11、00、
10及び00のx,yペアを招来する。
【0039】図9の例に示すように、保存されたx,y
ペアはフラクタル曲線の部分902を識別する。具体的
には、この例では、第1のローテーション値“l”及び
第1の2アドレス・ビット10は、第1レベル内の最下
段右側の象限を識別している。第2のローテーション値
“l”及び第2の2アドレス・ビット00は、第2レベ
ル内の最上段左側の象限を識別している。第3のローテ
ーション値“U”及び第3の2アドレス・ビット11
は、第3レベル内の最上段右側の象限を識別している。
第4のローテーション値“r”及び第4のx,yペア
1,0は、第4レベル内の最上段左側の象限を識別して
いる。最上段左側の象限は、ポジション(10,8)に
おける曲線部分902であり、これは単一のピクセルま
たは複数のピクセルであり得るとともに、受信したメモ
リ・アドレスに対応している。
ペアはフラクタル曲線の部分902を識別する。具体的
には、この例では、第1のローテーション値“l”及び
第1の2アドレス・ビット10は、第1レベル内の最下
段右側の象限を識別している。第2のローテーション値
“l”及び第2の2アドレス・ビット00は、第2レベ
ル内の最上段左側の象限を識別している。第3のローテ
ーション値“U”及び第3の2アドレス・ビット11
は、第3レベル内の最上段右側の象限を識別している。
第4のローテーション値“r”及び第4のx,yペア
1,0は、第4レベル内の最上段左側の象限を識別して
いる。最上段左側の象限は、ポジション(10,8)に
おける曲線部分902であり、これは単一のピクセルま
たは複数のピクセルであり得るとともに、受信したメモ
リ・アドレスに対応している。
【0040】図10は3次元フラクタル曲線の第1レベ
ルの例を示す。図11は互いに連結された2つの3次元
フラクタル曲線の例を示す。当業者に知られているよう
に、この曲線は任意の所望のレベル深度まで2次元また
3次元で表示可能である(但し、適切なディスプレイ装
置が与えられている場合)。当業者が理解するように、
メモリ・アドレスに対応する3次元曲線の部分は、図5
のステート・テーブルに類似するステート・テーブルを
使用して決定できる。
ルの例を示す。図11は互いに連結された2つの3次元
フラクタル曲線の例を示す。当業者に知られているよう
に、この曲線は任意の所望のレベル深度まで2次元また
3次元で表示可能である(但し、適切なディスプレイ装
置が与えられている場合)。当業者が理解するように、
メモリ・アドレスに対応する3次元曲線の部分は、図5
のステート・テーブルに類似するステート・テーブルを
使用して決定できる。
【0041】以上詳述したように、本発明はメモリ・ロ
ケーションをヒルベルト曲線などのフラクタル曲線に基
づいて表示する。メモリ・ロケーションをマッピングす
るためのフラクタル曲線の使用は、類似するローカリテ
ィを有する複数のロケーションを互いに隣接して表示す
る。これによって、メモリ・イベントのローカリティを
視覚的に識別する人間の能力を改善する。
ケーションをヒルベルト曲線などのフラクタル曲線に基
づいて表示する。メモリ・ロケーションをマッピングす
るためのフラクタル曲線の使用は、類似するローカリテ
ィを有する複数のロケーションを互いに隣接して表示す
る。これによって、メモリ・イベントのローカリティを
視覚的に識別する人間の能力を改善する。
【0042】本発明を特定の実施形態に関連して詳述し
たが、前記の説明により、多数の別例及び変更例が当業
者にとって明らかなことは明白である。例えば、ディス
プレイをピクセル毎に更新する代わりに、ディスプレイ
全体を一度に更新することが可能である。従って、請求
の範囲及びこれに等価なものの趣旨及び範囲に属するこ
れら全ての別例及び変更例を包含することを意図する。
たが、前記の説明により、多数の別例及び変更例が当業
者にとって明らかなことは明白である。例えば、ディス
プレイをピクセル毎に更新する代わりに、ディスプレイ
全体を一度に更新することが可能である。従って、請求
の範囲及びこれに等価なものの趣旨及び範囲に属するこ
れら全ての別例及び変更例を包含することを意図する。
【図1】本発明の1つの実施形態に基づくコンピュータ
・システムのブロック図である。
・システムのブロック図である。
【図2】図1のコンピュータ・メモリの特定の様相を視
覚化する助けとして、図1のコンピュータ・プログラム
が使用する曲線を示す図である。
覚化する助けとして、図1のコンピュータ・プログラム
が使用する曲線を示す図である。
【図3】メモリの複数の部分をフラクタル曲線上へマッ
ピングするために、本発明の実施形態で実行されるステ
ップの概要を示すブロック図である。
ピングするために、本発明の実施形態で実行されるステ
ップの概要を示すブロック図である。
【図4】メモリの複数の部分をフラクタル曲線上へマッ
ピングするために、本発明の実施形態で実行するステッ
プを示すフローチャートである。
ピングするために、本発明の実施形態で実行するステッ
プを示すフローチャートである。
【図5】メモリの特定の部分に対応するフラクタル曲線
の部分を決定するために、図4のフローチャートで使用
するステート・テーブルを示す図である。
の部分を決定するために、図4のフローチャートで使用
するステート・テーブルを示す図である。
【図6】図5のステート・テーブルの可能なローテーシ
ョン値を示す図である。
ョン値を示す図である。
【図7】図4のフローチャートに使用されている象限の
レベルの例を示す図である。
レベルの例を示す図である。
【図8】メモリ・アドレスに対応する表示されたフラク
タル曲線の部分の位置を決定する方法の例を示す図であ
る。
タル曲線の部分の位置を決定する方法の例を示す図であ
る。
【図9】メモリ・アドレスに対応する表示されたフラク
タル曲線の部分の位置を決定する方法の例を示す図であ
る。
タル曲線の部分の位置を決定する方法の例を示す図であ
る。
【図10】2次元ディスプレイに表示された3次元フラ
クタル曲線の例を示す図である。
クタル曲線の例を示す図である。
【図11】2次元ディスプレイに表示された3次元フラ
クタル曲線の例を示す図である。
クタル曲線の例を示す図である。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 デビッド・ピー.・スタウタマイア アメリカ合衆国 カリフォルニア州95045 サン・ジュアン・バウティスタ,ピー. オー.ボックス882
Claims (9)
- 【請求項1】 データ処理システムによって実行される
情報を表示する方法であって、 メモリ・ロケーションを含むメモリ・イベントの通知を
受け取るステップと、 前記メモリ・イベントが発生したメモリ・ロケーション
に対応するフラクタル曲線の部分を決定するステップ
と、 前記フラクタル曲線のうちの前記決定された部分に基づ
いて、ディスプレイ・スクリーンの部分を強調するステ
ップと、 前記フラクタル曲線をディスプレイ・スクリーン上へ表
示するステップとを含む方法。 - 【請求項2】 前記フラクタル曲線はヒルベルト・フラ
クタル曲線である請求項1に記載の方法。 - 【請求項3】 前記メモリ・ロケーションは読み出し許
可または読み出し/書き込み許可を有するメモリ・ロケ
ーションである請求項1に記載の方法。 - 【請求項4】 前記メモリ・イベントは、前記メモリ・
ロケーションから読み出すかまたは前記メモリ・ロケー
ションへ書き込む請求項1に記載の方法。 - 【請求項5】 前記メモリ・ロケーションは少なくとも
所定の頻度でアクセスされている請求項1に記載の方
法。 - 【請求項6】 前記メモリ・ロケーションは、別のメモ
リから満たされているキャッシュ・メモリ内のロケーシ
ョンまたは別のメモリへ書き戻されたキャッシュ・メモ
リ内のロケーションであり、前記メモリ・ロケーション
は共有されている状態、変更された状態及び排他的状態
のうちの1つを有する請求項1に記載の方法。 - 【請求項7】 前記フラクタル曲線は少なくとも2次元
で表示された3次元フラクタル曲線であり、前記フラク
タル曲線に対応する前記ディスプレイ・スクリーンの複
数の部分は一度に強調される請求項1に記載の方法。 - 【請求項8】 前記ディスプレイはダイナミックであ
り、かつ対応するメモリ・イベントが発生した際に変化
する請求項1に記載の方法。 - 【請求項9】 前記決定ステップは、ステート・テーブ
ルに基づいてフラクタル曲線の部分を決定するステップ
を含む請求項1に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/108049 | 1998-06-30 | ||
US09/108,049 US6211889B1 (en) | 1998-06-30 | 1998-06-30 | Method and apparatus for visualizing locality within an address space |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000112791A true JP2000112791A (ja) | 2000-04-21 |
Family
ID=22319986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11186047A Pending JP2000112791A (ja) | 1998-06-30 | 1999-06-30 | アドレス空間内のロ―カリティを視覚化する方法及び装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6211889B1 (ja) |
EP (1) | EP0969375B1 (ja) |
JP (1) | JP2000112791A (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6233367B1 (en) * | 1998-09-09 | 2001-05-15 | Intel Corporation | Multi-linearization data structure for image browsing |
US6552734B1 (en) * | 1999-04-29 | 2003-04-22 | Smoothware Design | System and method for generating a composite image based on at least two input images |
BR9917493B1 (pt) | 1999-09-20 | 2012-09-18 | antena de nìveis múltiplos. | |
DK1227545T3 (da) | 1999-10-26 | 2003-10-27 | Fractus Sa | Interlacede flerbåndsantennearrangementer |
EP2267838A3 (en) * | 2000-01-19 | 2011-05-04 | Fractus, S.A. | Space-filling miniature antennas |
EP1538699A3 (en) * | 2000-01-19 | 2006-01-04 | Fractus, S.A. | Space-filling miniature antennas |
CN100373693C (zh) * | 2000-01-19 | 2008-03-05 | 弗拉克托斯股份有限公司 | 空间填充小型天线 |
EP1313166B1 (en) | 2000-04-19 | 2007-11-14 | Advanced Automotive Antennas, S.L. | Multilevel advanced antenna for motor vehicles |
US6947052B2 (en) * | 2001-07-13 | 2005-09-20 | Texas Instruments Incorporated | Visual program memory hierarchy optimization |
EP1942551A1 (en) | 2001-10-16 | 2008-07-09 | Fractus, S.A. | Multiband antenna |
US9755314B2 (en) | 2001-10-16 | 2017-09-05 | Fractus S.A. | Loaded antenna |
CN1723587A (zh) | 2002-11-07 | 2006-01-18 | 碎云股份有限公司 | 含微型天线的集成电路封装 |
JP2006510321A (ja) | 2002-12-22 | 2006-03-23 | フラクタス・ソシエダッド・アノニマ | 移動通信デバイス用のマルチバンド・モノポール・アンテナ |
WO2005076407A2 (en) | 2004-01-30 | 2005-08-18 | Fractus S.A. | Multi-band monopole antennas for mobile communications devices |
EP1597794B1 (en) | 2003-02-19 | 2008-08-20 | Fractus S.A. | Miniature antenna having a volumetric structure |
WO2006008180A1 (en) | 2004-07-23 | 2006-01-26 | Fractus S.A. | Antenna in package with reduced electromagnetic interaction with on chip elements |
EP1810369A1 (en) | 2004-09-27 | 2007-07-25 | Fractus, S.A. | Tunable antenna |
WO2006051113A1 (en) | 2004-11-12 | 2006-05-18 | Fractus, S.A. | Antenna structure for a wireless device with a ground plane shaped as a loop |
US8531337B2 (en) | 2005-05-13 | 2013-09-10 | Fractus, S.A. | Antenna diversity system and slot antenna component |
DE102005045812A1 (de) * | 2005-09-27 | 2007-05-16 | Siemens Ag | Verfahren zur cache-optimierten Bearbeitung eines digitalen Bilddatensatzes |
US7903125B1 (en) | 2006-02-07 | 2011-03-08 | Adobe Systems Incorporated | Compact clustered 2-D layout |
US8738103B2 (en) | 2006-07-18 | 2014-05-27 | Fractus, S.A. | Multiple-body-configuration multimedia and smartphone multifunction wireless devices |
US20080301717A1 (en) * | 2007-05-31 | 2008-12-04 | Microsoft Corporation | Visualizing a memory footprint of an application program |
WO2009038723A1 (en) * | 2007-09-17 | 2009-03-26 | Sql Sentry, Inc. | Infographic disk activity interface for displaying relative saturation of a computer disk system |
US7942723B2 (en) * | 2008-01-18 | 2011-05-17 | Fildan Accessories (Hk) Ltd | Back adjuster for brassiere |
WO2010015364A2 (en) | 2008-08-04 | 2010-02-11 | Fractus, S.A. | Antennaless wireless device capable of operation in multiple frequency regions |
CN102084542B (zh) | 2008-08-04 | 2014-01-22 | 弗拉克托斯股份有限公司 | 能在多个频率范围内运行的无天线的无线装置 |
WO2011095330A1 (en) | 2010-02-02 | 2011-08-11 | Fractus, S.A. | Antennaless wireless device comprising one or more bodies |
CN103155276B (zh) | 2010-08-03 | 2015-11-25 | 弗拉克托斯天线股份有限公司 | 能够进行多带mimo操作的无线装置 |
US9438495B2 (en) * | 2013-04-02 | 2016-09-06 | Amazon Technologies, Inc. | Visualization of resources in a data center |
US11500711B1 (en) | 2021-07-20 | 2022-11-15 | Rockwell Collins, Inc. | System and method for determining error occurrence in graphics memory of graphics processing unit |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8617076D0 (en) * | 1986-07-14 | 1986-08-20 | British Broadcasting Corp | Video scanning systems |
US5602943A (en) | 1992-04-28 | 1997-02-11 | Velho; Luiz C. | Digital halftoning space filling curves |
US5408650A (en) * | 1993-06-29 | 1995-04-18 | Digital Equipment Corporation | Memory analysis system for dynamically displaying memory allocation and de-allocation events associated with an application program |
US5852443A (en) * | 1995-08-04 | 1998-12-22 | Microsoft Corporation | Method and system for memory decomposition in a graphics rendering system |
-
1998
- 1998-06-30 US US09/108,049 patent/US6211889B1/en not_active Expired - Fee Related
-
1999
- 1999-06-30 JP JP11186047A patent/JP2000112791A/ja active Pending
- 1999-06-30 EP EP99305159A patent/EP0969375B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0969375A2 (en) | 2000-01-05 |
EP0969375A3 (en) | 2003-11-12 |
US6211889B1 (en) | 2001-04-03 |
EP0969375B1 (en) | 2007-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2000112791A (ja) | アドレス空間内のロ―カリティを視覚化する方法及び装置 | |
TWI390400B (zh) | 繪圖處理子系統 | |
US7697014B2 (en) | Method and apparatus for displaying overlapping markers | |
JP3170301B2 (ja) | アドレス変換装置 | |
US7439983B2 (en) | Method and apparatus for de-indexing geometry | |
JPH0343646B2 (ja) | ||
JPS58102381A (ja) | バツフアメモリ | |
US20070052713A1 (en) | Systems and methods for storing and fetching texture data using bank interleaving | |
JP4578241B2 (ja) | 任意形状画像のブロック単位の回転 | |
JP2012530953A (ja) | 原画像をワープさせて表示する装置および方法 | |
US7881921B1 (en) | Caching information to map simulation addresses to host addresses in computer system simulations | |
US8402199B2 (en) | Memory management system and method thereof | |
KR20060095444A (ko) | 실체 검색 시스템 | |
KR20040090392A (ko) | 프레임 버퍼 접근 장치, 프레임 버퍼 접근 방법, 컴퓨터프로그램 및 기록 매체 | |
CN108959105A (zh) | 一种实现地址映射的方法及装置 | |
JPH0553909A (ja) | 画像データ処理におけるキヤツシユメモリ制御方式 | |
WO2019114044A1 (zh) | 图像处理方法、装置、电子设备及计算机可读存储介质 | |
CN115033500A (zh) | 缓存系统模拟方法、装置、设备和存储介质 | |
US6977657B2 (en) | Addressing a cache | |
JP3001763B2 (ja) | 画像処理システム | |
US20180129603A1 (en) | Electronic device and method for accessing memory | |
JPS58136093A (ja) | 表示制御装置 | |
JP2901631B2 (ja) | 画像処理装置 | |
TW201335882A (zh) | 圖形處理單元及其圖形資料存取方法 | |
JPS6324368A (ja) | イメ−ジメモリのアクセス回路 |