JP4700392B2 - 情報処理装置、コンピュータの制御方法及びプログラム - Google Patents

情報処理装置、コンピュータの制御方法及びプログラム Download PDF

Info

Publication number
JP4700392B2
JP4700392B2 JP2005113577A JP2005113577A JP4700392B2 JP 4700392 B2 JP4700392 B2 JP 4700392B2 JP 2005113577 A JP2005113577 A JP 2005113577A JP 2005113577 A JP2005113577 A JP 2005113577A JP 4700392 B2 JP4700392 B2 JP 4700392B2
Authority
JP
Japan
Prior art keywords
data
event
processing
memory
occurred
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.)
Expired - Fee Related
Application number
JP2005113577A
Other languages
English (en)
Other versions
JP2006293694A (ja
Inventor
大輔 平岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Sony Computer Entertainment 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 Sony Interactive Entertainment Inc, Sony Computer Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Priority to JP2005113577A priority Critical patent/JP4700392B2/ja
Priority to US11/402,204 priority patent/US7743219B2/en
Publication of JP2006293694A publication Critical patent/JP2006293694A/ja
Application granted granted Critical
Publication of JP4700392B2 publication Critical patent/JP4700392B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)

Description

本発明は、情報処理装置、コンピュータの制御方法及びプログラムに関し、特に情報処理装置のデータ処理を最適化する技術に関する。
情報処理装置によりプログラムに基づいてデータ処理を行う際に、データ処理の処理効率を良くするために、プログラムの最適化がしばしば行われる。この最適化は、プログラムを実際に情報処理装置で実行させた際のトレースデータを収集して、そのデータを解析することにより行われる。
しかしながら、上記の従来技術では、プログラムのトレースデータを収集し、それを基にして手作業でプログラムを修正しなければならなかった。また、プログラムの実行環境が変更された場合、例えばメモリ容量、同時並行で実行されるプログラムの種類や数等が変動した場合には、再度、トレースデータを収集して、プログラムの修正をしなくてはならないという問題があった。
本発明は上記課題に鑑みてなされたものであって、その目的は、プログラムの動作の最適化を動的に行うことができる情報処理装置、コンピュータの制御方法及びプログラムを提供することにある。
上記課題を解決するために、本発明に係る情報処理装置は、複数のプロセッサを含み、データを処理するデータ処理手段と、前記データ処理手段による処理において、前記複数のプロセッサのうち特定のプロセッサにおけるバスを介したメモリへのアクセスに待ちが発生したことを示す第1イベントと、前記メモリへのアクセスが発生したことを示す第2イベントとを検知するイベント検知手段と、前記イベント検知手段により検知される前記第1イベント及び第2イベントの発生の頻度情報を記憶する頻度情報記憶手段と、前記頻度情報記憶手段に記憶される前記第1イベントと前記第2イベントの頻度情報に基づいて、前記データ処理手段による処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したか否かを判断する制約発生判断手段と、前記制約発生判断手段により前記データ処理手段による処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したと判断される場合に、前記メモリに格納するデータを圧縮させる処理内容変更手段と、を含むことを特徴とする。
また、本発明に係るコンピュータ(例えば家庭用ゲーム機、業務用ゲーム機、携帯電話機、携帯用ゲーム機、携帯情報端末、パーソナルコンピュータ、サーバコンピュータ等である。以下、同様。)の制御方法は、複数のプロセッサによりデータを処理するデータ処理ステップと、前記データ処理ステップにおいて、前記複数のプロセッサのうち特定のプロセッサにおけるバスを介したメモリへのアクセスに待ちが発生したことを示す第1イベントと、前記メモリへのアクセスが発生したことを示す第2イベントとを検知するイベント検知ステップと、前記イベント検知ステップにより検知される前記第1イベント及び第2イベントの発生の頻度情報を記憶する頻度情報記憶手段に記憶される前記第1イベントと前記第2イベントの頻度情報に基づいて、前記データ処理ステップによる処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したか否かを判断する制約発生判断ステップと、前記制約発生判断ステップにより前記データ処理ステップによる処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したと判断される場合に、前記メモリに格納するデータを圧縮させる処理内容変更ステップと、を含むことを特徴とする。
また、本発明に係るプログラムは、複数のプロセッサによりデータを処理するデータ処理手段、前記データ処理手段による処理において、前記複数のプロセッサのうち特定のプロセッサにおけるバスを介したメモリへのアクセスに待ちが発生したことを示す第1イベントと、前記メモリへのアクセスが発生したことを示す第2イベントとを検知するイベント検知手段、前記イベント検知手段により検知される前記第1イベント及び第2イベントの発生の頻度情報を記憶する頻度情報記憶手段、前記頻度情報記憶手段に記憶される前記第1イベントと前記第2イベントの頻度情報に基づいて、前記データ処理手段による処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したか否かを判断する制約発生判断手段、及び、前記制約発生判断手段により前記データ処理手段による処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したと判断される場合に、前記メモリに格納するデータを圧縮させる処理内容変更手段、としてコンピュータを機能させるためのプログラムである。プログラムは、CD−ROM(Compact Disk - Read Only Memory)、DVD−ROM(Digital Versatile Disk - Read Only Memory)、メモリーカードその他のあらゆるコンピュータ読み取り可能な情報記憶媒体に格納することとしてもよい。
本発明では、データ処理において、複数のプロセッサのうち特定のプロセッサにおけるバスを介したメモリへのアクセスに待ちが発生したことを示す第1イベントと、前記メモリへのアクセスが発生したことを示す第2イベントが発生したことを検知する。そして、前記第1イベントと第2イベントの発生の頻度情報を記憶し、記憶する頻度情報に基づいて、データ処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したか否かを判断する。上記の制約が発生していると判断される場合には、前記メモリに格納するデータを圧縮させる。こうして、本発明によれば、データ処理において、プロセッサとメモリ間のデータ転送に起因するボトルネックが発生した場合に、データを圧縮することでデータ転送効率を良くし、データ処理の制約を軽減することでプログラムの動作の最適化を動的に行うことができる。
本発明の一態様では、前記制約発生判断手段は、前記第1イベントが所定の頻度を超えて発生している期間において、前記第2イベントの発生する頻度に基づいて、前記データ処理手段による処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したと判断する。こうすれば、第1イベントと第2イベントの頻度情報に基づいて、プロセッサとメモリ間のデータ転送によるバスの混雑を高い信頼性で判断でき、そうした場合にデータ処理内容を変更して処理効率を良くすることができる。
本発明の一態様では、前記処理内容変更手段により圧縮したデータを伸張させる手段をさらに含む。こうすれば、プログラム側を変更することなく、情報処理装置側によってデータ転送に起因するボトルネックを緩和して、データ処理の効率を良くすることができる。
以下、本発明の好適な実施形態について図面に基づいて詳細に説明する。
図1には、本発明の実施形態に係るゲーム装置のハードウェア構成図を示す。同図に示されるように、ゲーム装置10は、制御部12、メモリ14、グラフィックプロセッサ16、グラフィックインターフェース18、IOコントローラ20、コントローラインターフェース22、ネットワークインターフェース24及びディスクドライブ26を含んで構成されるコンピュータゲームシステムである。
制御部12は、図示しないROMに格納されるオペレーティングシステムやディスクドライブ26によってコンピュータ読み取り可能な情報記憶媒体であるDVDメディア34から読み出されるゲームプログラムに基づいて、ゲーム装置10の各部を制御する。メモリ14には、DVDメディア34から読み取られるゲームプログラムやゲームデータが必要に応じて書き込まれる。また、メモリ14は、制御部12の作業用としても用いられる。
グラフィックプロセッサ16は、制御部12から送られる画像データを受け取ってVRAM(Video Random Access Memory)上にゲーム画面を描画するものである。そして、その内容をグラフィックインターフェース18を介して、ディスプレイ28に出力する。
IOコントローラ20は、制御部12と外部デバイス等を接続するための入出力制御部である。IOコントローラ20を介して、制御部12は、コントローラ30、ネットワーク32又はディスクドライブ26と相互通信可能に接続される。コントローラ30は、プレイヤがゲーム操作や、データ処理をさせるための入力手段であり、コントローラインターフェース22を介してIOコントローラ20に接続される。ゲーム装置10は、ネットワーク32とネットワークインターフェース24を介して接続され、外部情報機器と相互に通信をすることができる。また、ゲーム装置10は、ディスクドライブ26に格納されたDVDメディア34からデータやプログラムを読み出すことができる。
図2は、制御部12の詳細ハードウェア構成図を示す。同図に示されるように、制御部12は、プロセッサA、プロセッサB、プロセッサC、プロセッサD、IOインターフェース(以下IOIF)48、メモリインターフェースコントローラ(以下MIC)50、内部バス52及びパフォーマンスモニタ53を含んで構成される。パフォーマンスモニタ53は、トレースバス54、パフォーマンスカウンタ56、インターバルタイマ58及びトレースバッファ60から構成されており、ゲーム装置10のデータ処理のパフォーマンス情報を取得するものである。
プロセッサA〜Dは、それぞれ独立した信号処理プロセッサである。本実施形態では、プロセッサA〜Dは、それぞれ同一のプロセッサとするが、それぞれ異なるプロセッサであることとしてもよい。プロセッサA〜Dのハードウェア構成について、以下説明する。
プロセッサAは、図3に示されるように、プロセッサコア62、ローカルストア64、DMAコントローラ66及びインターフェース68を含んで構成される。プロセッサコア62は、実際にデータの演算処理を行う部分である。ローカルストア64は、プロセッサA専用のRAMである。ローカルストア64には、メモリ14からコピーしてきたプログラムやデータを一時的に格納する。プロセッサAは、ローカルストア64とメモリ14との間のデータ転送をDMAコントローラ66を用いて行う。DMAコントローラ66のキューには、複数のDMA転送要求を格納することができる。DMAコントローラ66において、転送要求のキューが一杯になっている場合には、キューフル(Queue Full)の信号がトレースバス54に送出され、一杯ではないが何らかの要求が残っている場合には、キューノットエンプティ(Queue not empty)の信号がトレースバス54に送出される。また、プロセッサAは、インターフェース68を介してバス52に接続し、ゲーム装置10の各部と信号の送受信をしている。なお、他のプロセッサB〜Dについても同様である。
IOIF48は、制御部12とグラフィックプロセッサ16及びIOコントローラ20とを相互に通信可能に接続するための入出力インターフェースである。IOIF48は、内部バス52に接続しており、制御部12の各部と外部デバイスとがIOIF48を介して相互に信号の送受信が可能となっている。
MIC50は、メモリ14にアクセスするためのメモリインターフェースコントローラである。MIC50を介して、制御部12やIOコントローラ20などの周辺デバイスは、メモリ14にアクセスすることができる。メモリ14に対するデータの読み込みや書き込みがあると、MIC50において読み込みアクセス(Read Dispatched)や書き込みアクセス(Write Dispatched)の信号が発生し、トレースバス54に伝送される。
トレースバス54は、制御部12のハードウェアモジュールから発信されるパフォーマンス信号が伝送されるバスである。本実施形態では、トレースバス54には、少なくともプロセッサA〜D及びMICからのパフォーマンス信号が伝送されることとするが、これ以外のモジュールからの信号が伝送されることとしてもよい。
パフォーマンスカウンタ56は、トレースバス54を通る信号のうち所定の信号の発生をカウントするためのものである。本実施形態では、プロセッサA〜D及びMICからのパフォーマンス信号の発生回数を計数することとするが、これに限られず、ユーザが計数対象となる信号を自由に設定できることとしてもよい。そして、インターバルタイマ58によって所定時間間隔ごと送られるカウンタクリア信号に基づいて、カウンタの計数値が初期化される。
トレースバッファ60は、パフォーマンスカウンタ56により所定時間間隔において計数された所定信号の発生頻度情報を格納する記憶部である。インターバルタイマ58によって所定時間間隔ごと送られるカウンタクリア信号に基づいて、パフォーマンスカウンタ56で計数された各種類のパフォーマンス信号の回数、すなわち所定信号の発生頻度情報がトレースバッファ60に書き込まれる。なお、トレースバッファ60は内部バス52にも接続されており、プロセッサA〜Dはトレースバッファ60の記憶内容を参照することができる。
図3には、ゲーム装置10の一部のブロック構成図を示す。同図では、ゲーム装置10のうち、プロセッサA、ディスクドライブ26及びメモリ14が中心として示されている。プロセッサAが、DVDメディア34(図1参照)に格納されるデータを用いてデータ処理を行う場合について、以下説明する。なお、他のプロセッサB〜Dにおいてもデータ処理の動作は同様である。
プロセッサAは、ローカルストア64をダブルバッファ構成にしてデータ処理を行うこととする。ダブルバッファ構成とは、プロセッサAが、片方のバッファにおいて演算を行っている間に、次の演算で処理すべきデータをメモリ14から読み出しておき、演算が終了するとすぐに次の演算に移るという構成のことである。ダブルバッファ構成において、内部バス52の混雑によってメモリ14とプロセッサAとの間のデータ転送が遅延すると、次の演算がなかなか開始されず非効率となる。本実施形態においては、内部バス52がメモリ14とプロセッサAとの間のデータ転送に起因して混雑していると判断される場合には、メモリ14に格納されるデータを圧縮して、内部バス52を介して転送されるデータ量を減らして、処理の効率を高める。具体的な処理の流れについては、以下に述べる。
プロセッサAは、まず、N番目のデータ処理の最中に、N+1番目の処理対象データの読み込み要求をDMAコントローラ66に出す。処理対象データは、ディスクドライブ26に収められたDVDメディア34に格納されていることとする。そして、DMAコントローラ66からデータ転送の要求を受け取ったIOコントローラ20は、DVDメディア34の格納されたディスクドライブ26から対象のデータを読み出す。図4(A)に示されるように、メモリ14とプロセッサAとの間の内部バス52が競合していない場合には、IOコントローラ20で読み出し(ステップI)たデータを、そのままの型で(後述するように圧縮処理を施さずに)データを転送し(ステップII)メモリ14に格納する。そして、プロセッサAでは、IOコントローラ20からメモリ14へのデータの転送が終了した旨の信号を受けたDMAコントローラ66が、そのデータをメモリ14から読み込んで、ローカルストア64に転送し(ステップIII)、N+1番目のデータ処理を開始する(ステップIV)。バス52の競合がある場合には、図4(B)に示されるように、データ転送に係る処理(ステップII及びIII)において遅延が生じてしまう。そこで、本実施形態に係るゲーム装置10では、バス52の競合が生じている場合には、図4(C)に示されるように、メモリ14に格納するデータを圧縮し、転送するデータ量を減らして、全体的な処理時間を短縮するようにしている。そして、本実施形態に係るゲーム装置10は、上記の処理の切り替えを、パフォーマンスモニタ53のトレースバッファ60に格納された情報に基づいて判断するようにしている。これにより、実際の制御部12のパフォーマンスに応じて、上述したデータの圧縮処理を行うようにすることができる。
図5には、パフォーマンスモニタ53のブロック構成図を示す。同図に示されるように、パフォーマンスモニタ53は、パフォーマンスカウンタ56、インターバルタイマ58及びトレースバッファ60を含んで構成される。なお、パフォーマンスカウンタ56は、セレクタ55とカウンタ57とから構成される。
パフォーマンスモニタ53には、MIC50からの読み込みアクセス(Read Dispatched)や書き込みアクセス(Write Dispatched)の発生の信号、及び、DMAコントローラ66からのキューフル(Queue Full)及びキューノットエンプティ(Queue not empty)の信号のみがセレクタ55で選別され、カウンタ57でその発生回数がカウントされる。そして、インターバルタイマ58から所定時間間隔ごとに送られる信号に応じて、各信号のカウンタ57に格納される回数をトレースバッファ60に書き込んで、カウンタ57をクリアする。本実施形態では、カウンタ57は、32bitカウンタとし、トレースバッファには4つの信号の頻度情報である128bitを1列として所定時間間隔ごとにデータが順次格納されることとするが、これに限らず、取得される信号及びカウンタ57のサイズをユーザが自由に設定できることとしてもよい。
図6には、ゲーム装置10の機能ブロック図を示す。同図に示されるように、ゲーム装置10は、データ処理部70、イベント検知部72、頻度情報記憶部74、制約発生判断部76及び処理内容変更部78を含んで構成される。
データ処理部70は、データの処理を行うものであり、制御部12のプロセッサA〜D及びMIC50から構成される。プロセッサA〜Dは共有するメモリ14から自己のローカルストア64にデータを転送し、データ処理を行う。MIC50はプロセッサA〜Dのメモリ14へのアクセスを中継する。
イベント検知部72は、データ処理部70による処理において所定種類のイベントが発生したことを検知するものであり、DMAコントローラ66、MIC50及びセレクタ55を含んで構成される。イベント検知部72において検知するイベントは、複数のプロセッサのうち特定のプロセッサ(ここではプロセッサA)におけるバス52を介したメモリ14へのアクセスの待ちが発生したことを示す第1イベントと、メモリ14へのアクセスが発生したことを示す第2イベントである。第1イベントは、プロセッサのDMAコントローラ66からのキューフル(Queue full)の信号によって検知される。また、第2イベントは、MIC50におけるメモリアクセス(読み込みアクセス(Read Dispatched)や書き込みアクセス(Write Dispatched))の発生の信号によって検知される。
頻度情報記憶部74は、イベント検知部72により検知する所定種類のイベントの発生する頻度情報を記憶するものであり、トレースバッファ60を含んで構成される。所定種類のイベントの発生する頻度情報は、具体的には、インターバルタイマ58によって区切られる時間間隔において、イベント検知部72によって検知する前記第1イベントと前記第2イベントの発生をカウンタ57で計数する回数である。この頻度情報をインターバルタイマによって区切られる時間間隔毎にトレースバッファ60に順次書き込む。
制約発生判断部76は、頻度情報記憶部74に記憶される頻度情報に基づいて、データ処理部70による処理に所定種類の制約が発生しているかを判断するものであり、例えばプロセッサAにより構成される。制約発生判断部76により判断される制約とは、ここでは、データ処理部70による処理に対して、プロセッサAとメモリ14との間のデータ転送に起因して生じる制約とするが、これに限られるものではない。プロセッサのDMAコントローラ66のキューが溜まり続けている場合に、メモリ14のアクセスが頻繁にあれば、処理が停滞しているのは内部バス52の混雑が要因だと推定される。従って、プロセッサコア62は、トレースバッファ60から上記第1イベント及び第2イベントの発生の頻度情報を読み出し、それらの情報に基づいて前記データ転送に起因する制約が発生しているか否かを判断する。例えば、複数回のインターバルタイマ58で区切られる時間間隔において、第1イベントの頻度が所定の閾値を(例えば所定回数以上)連続して超えている期間において、第2イベントの発生する頻度が所定頻度を超えるか否かによって、制約発生の有無が判断される。上記のように、実行中のデータ処理のパフォーマンス解析にプロセッサコア62が素早くアクセスできるトレースバッファ60に格納された頻度情報を利用することで、パフォーマンス解析用の他のプログラムによる割り込み無しに、実行中のプログラムにおけるデータ処理のパフォーマンス情報をリアルタイムに把握できるようになる。なお、制約発生判断部76は、プロセッサAのプロセッサコア62により構成されてもよいし、トレースバッファ60にアクセスできる他のプロセッサのプロセッサコア62により構成されてもよい。
処理内容変更部78は、制約発生判断部76によりデータ処理部70による処理に所定種類の制約が発生していると判断する場合に、データ処理部70による処理の内容を変更するものであり、例えばプロセッサA又はIOコントローラ20により構成される。本実施形態では、制約発生判断部76により、データ処理部70による処理にプロセッサAとメモリ14との間のデータ転送に起因する制約が発生していると判断される場合に、メモリ14に格納するデータを圧縮させることとするが、これに限られるものではない。圧縮されたデータに対しては、データ処理部70は自己のローカルストア64にデータを転送後、データを伸張してからデータ処理を行う。
制約発生判断部76および処理内容変更部78がプロセッサAにより実現されている場合における具体的な処理を以下に述べる。プロセッサAが、内部バス52を介して、トレースバッファ60の内容を参照する。そして、複数回のインターバルタイマ58で区切られる時間間隔において、第1イベントの頻度が所定の閾値を(例えば所定回数以上)連続して超えている期間において、第2イベントの発生する頻度が所定頻度を超えている場合には、プロセッサAは、プロセッサAとメモリ14間のバスの混雑に起因するデータ転送の制約が発生していると判断し、メモリ14内の共有メモリ空間に圧縮モードを示すフラグを立てる。圧縮モードを示すフラグは、プロセッサA〜D及びIOコントローラ20によって参照される。各プロセッサ及びIOコントローラ20は、共有メモリ空間を定期的に参照し、最新のフラグの値を自己の専用記憶部(ローカルストア等)に格納しておくこととしてもよい。そして、各プロセッサ及びIOコントローラ20は、圧縮モードのフラグが立っている時は、データを圧縮してメモリ14に格納し、メモリ14からデータを受け取る場合は、そのデータを受け取った後に伸張することとする。プロセッサAがDVDメディア34に記憶されたデータを読み込んでプログラムを処理する場合について以下に説明する。プロセッサAからデータ転送の要求を受けたIOコントローラ20は、圧縮モードのフラグが立っている場合には、ディスクドライブ26に格納されたDVDメディア34から読み出したデータを圧縮して、メモリ14に書き込む。そして、書き込みが終了すると、データの格納位置及びデータサイズをDMAコントローラ66に通知し、DMAコントローラ66は、メモリ14から当該データを読み込んで、ローカルストア64に格納する。そして、プロセッサAは、圧縮モードのフラグを参照することで、現在圧縮モードでデータの転送をしていると判断し、当該データを伸張した後、伸張したデータを用いてプログラムを処理する。上記の機能の実装は、プロセッサA及びIOコントローラ20がそれぞれ用いるデータ転送プログラムにおいて行うこととしてもよい。つまり、データ転送プログラムの中で、データ転送を実行する前に圧縮モードのフラグを参照するようにしておいて、圧縮モードのフラグが立っている場合には、データを圧縮してメモリ14に格納し、メモリ14からデータを受け取るときには、そのデータを受け取った後に伸張するようにデータ転送プログラムを実装することとしてもよい。また、上記の例では、プロセッサAが圧縮モードのフラグを立てることとしているが、他のプロセッサB〜Dが制約の発生を判断し、フラグを立てることとしてもよい。
以下、本発明の実施の形態に係る画像処理装置の動作の詳細について説明する。
図7は、ゲーム装置10のデータ処理中におけるデータ構造変更処理のフロー図である。ゲーム装置10は、パフォーマンスモニタ53の初期設定を行う(S101)。初期設定においては、パフォーマンス信号として何を検出するかや、処理に制約が発生していると判断する場合の頻度の閾値や、インターバルタイマ58からカウンタ56への初期化信号の出力時間間隔等を設定する。そして、パフォーマンス計測を開始し(S102)、例えばゲームプログラム等のDVDメディア34から供給されるプログラムに基づいてデータ処理を行う(S103)。所定時間が経過する前に、データ処理が終了すると判断する(S104)場合には、処理を終了する。データ処理が終了しない場合には、所定時間経過後に計測を終了する(S105)。そして、計測した第1イベントと第2イベントの頻度情報から、ゲーム装置10の処理のパフォーマンス情報を解析し(S106)、プロセッサAとメモリ14間のデータ転送に起因する制約が発生しているか否か、すなわちデータ構造の変更が必要か否かを判断する(S107)。制約が発生していると判断する場合には、データを圧縮して(S108)メモリ14に書き込むこととし、プロセッサAは圧縮されたデータを転送後にデータの伸張を行ってデータ処理を行うこととする。
以上説明した本発明の実施の形態に係るゲーム装置10によれば、実行中のデータ処理のパフォーマンス解析にトレースバッファ60に格納された所定イベントの頻度情報を利用することで、パフォーマンス解析用のソフトウェアによる割り込み無しに、実行中のデータ処理におけるパフォーマンス情報をリアルタイムに把握でき、その情報に基づいて適宜データ処理内容を変更して効率的にデータ処理を行うことができる。
なお、本発明は上記実施形態に限定されるものではない。
上記実施形態では、制約が発生していると判断する場合に、全てのデータを圧縮することとしているが、全てのデータを圧縮することとしなくてもよい。例えば、トレースバッファに格納される情報に基づいて、圧縮するデータの比率を決定することとしてもよい。
また、上記実施形態では、プロセッサとMICから発信される信号を用いて、データ処理における制約の発生を判断しているが、他のハードウェアモジュールから発信される信号を用いて制約の発生を判断することとしてもよい。
また、上記実施形態では、プロセッサとメモリ間のデータ転送に起因する制約が発生している場合に、データの処理内容を変更しているが、制約はこれに限られなくともよい。例えば、制約は、メモリアクセスの競合、割り込みの競合、デッドロック等の情報処理装置のデータ処理において発生する様々な制約であってもよい。
また、上記実施形態では、プロセッサの数を4つとしているが、プロセッサの数はこれに限られるものではない。
本発明の実施形態に係るゲーム装置のハードウェア構成図を示す。 制御部12の詳細ハードウェア構成図を示す。 ゲーム装置10の一部のブロック構成図を示す。 ゲーム装置が制約の発生に応じてデータ処理を変更することの説明図を示す。 パフォーマンスモニタ53のブロック構成図を示す。 ゲーム装置10の機能ブロック図を示す。 ゲーム装置10のデータ構造変更処理を示すフロー図である。
符号の説明
10 ゲーム装置、12 制御部、14 メモリ、16 グラフィックプロセッサ、18 グラフィックインターフェース、20 IOコントローラ、22 コントローラインターフェース、24 ネットワークインターフェース、26 ディスクドライブ、28 ディスプレイ、30 コントローラ、32 ネットワーク、34 DVDメディア、48 IOインターフェース、50 メモリインターフェースコントローラ、52 内部バス、53 パフォーマンスモニタ、54 トレースバス、55 セレクタ、56 パフォーマンスカウンタ、57 カウンタ、58 インターバルタイマ、60 トレースバッファ、62 プロセッサコア、64 ローカルストア、66 DMAコントローラ、68 インターフェース、70 データ処理部、72 イベント検知部、74 頻度情報記憶部、76 制約発生判断部、78 処理内容変更部、A,B,C,D プロセッサ。

Claims (5)

  1. 複数のプロセッサを含み、データを処理するデータ処理手段と、
    前記データ処理手段による処理において、前記複数のプロセッサのうち特定のプロセッサにおけるバスを介したメモリへのアクセスに待ちが発生したことを示す第1イベントと、前記メモリへのアクセスが発生したことを示す第2イベントとを検知するイベント検知手段と、
    前記イベント検知手段により検知される前記第1イベント及び第2イベントの発生の頻度情報を記憶する頻度情報記憶手段と、
    前記頻度情報記憶手段に記憶される前記第1イベントと前記第2イベントの頻度情報に基づいて、前記データ処理手段による処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したか否かを判断する制約発生判断手段と、
    前記制約発生判断手段により前記データ処理手段による処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したと判断される場合に、前記メモリに格納するデータを圧縮させる処理内容変更手段と、
    を含むことを特徴とする情報処理装置。
  2. 請求項1に記載の情報処理装置において、
    前記制約発生判断手段は、前記第1イベントが所定の頻度を超えて発生している期間において、前記第2イベントの発生する頻度に基づいて、前記データ処理手段による処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したと判断する、
    ことを特徴とする情報処理装置。
  3. 請求項1又は2に記載の情報処理装置において、
    前記処理内容変更手段により圧縮させたデータを伸張させる手段をさらに含む、
    ことを特徴とする情報処理装置。
  4. 複数のプロセッサによりデータを処理するデータ処理ステップと、
    前記データ処理ステップにおいて、前記複数のプロセッサのうち特定のプロセッサにおけるバスを介したメモリへのアクセスに待ちが発生したことを示す第1イベントと、前記メモリへのアクセスが発生したことを示す第2イベントとを検知するイベント検知ステップと、
    前記イベント検知ステップにより検知される前記第1イベント及び第2イベントの発生の頻度情報を記憶する頻度情報記憶手段に記憶される前記第1イベントと前記第2イベントの頻度情報に基づいて、前記データ処理ステップによる処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したか否かを判断する制約発生判断ステップと、
    前記制約発生判断ステップにより前記データ処理ステップによる処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したと判断される場合に、前記メモリに格納するデータを圧縮させる処理内容変更ステップと、
    を含むことを特徴とするコンピュータの制御方法。
  5. 複数のプロセッサによりデータを処理するデータ処理手段、
    前記データ処理手段による処理において、前記複数のプロセッサのうち特定のプロセッサにおけるバスを介したメモリへのアクセスに待ちが発生したことを示す第1イベントと、前記メモリへのアクセスが発生したことを示す第2イベントとを検知するイベント検知手段、
    前記イベント検知手段により検知される前記第1イベント及び第2イベントの発生の頻度情報を記憶する頻度情報記憶手段、
    前記頻度情報記憶手段に記憶される前記第1イベントと前記第2イベントの頻度情報に基づいて、前記データ処理手段による処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したか否かを判断する制約発生判断手段、及び、
    前記制約発生判断手段により前記データ処理手段による処理に前記特定のプロセッサとメモリ間のデータ転送に起因する制約が発生したと判断される場合に、前記メモリに格納するデータを圧縮させる処理内容変更手段、
    としてコンピュータを機能させるためのプログラム。
JP2005113577A 2005-04-11 2005-04-11 情報処理装置、コンピュータの制御方法及びプログラム Expired - Fee Related JP4700392B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005113577A JP4700392B2 (ja) 2005-04-11 2005-04-11 情報処理装置、コンピュータの制御方法及びプログラム
US11/402,204 US7743219B2 (en) 2005-04-11 2006-04-11 Information processing unit, computer control method, and information storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005113577A JP4700392B2 (ja) 2005-04-11 2005-04-11 情報処理装置、コンピュータの制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2006293694A JP2006293694A (ja) 2006-10-26
JP4700392B2 true JP4700392B2 (ja) 2011-06-15

Family

ID=37414209

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005113577A Expired - Fee Related JP4700392B2 (ja) 2005-04-11 2005-04-11 情報処理装置、コンピュータの制御方法及びプログラム

Country Status (2)

Country Link
US (1) US7743219B2 (ja)
JP (1) JP4700392B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8448067B2 (en) * 2006-12-07 2013-05-21 Sony Computer Entertainment America, LLC Graphics command management tool and methods for analyzing performance for command changes before application modification
JP4861270B2 (ja) * 2007-08-17 2012-01-25 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US20100332690A1 (en) * 2008-01-29 2010-12-30 Panasonic Corporation Processor performance analysis device, method, and simulator
CN101833418B (zh) 2010-04-28 2014-12-31 华为终端有限公司 一种在界面中添加图标的方法、装置及移动终端
US8510518B2 (en) * 2010-06-22 2013-08-13 Advanced Micro Devices, Inc. Bandwidth adaptive memory compression
JP5214770B2 (ja) * 2011-05-27 2013-06-19 株式会社コナミデジタルエンタテインメント ゲーム制御装置、マッチング方法、プログラム
WO2014019207A1 (zh) * 2012-08-02 2014-02-06 华为终端有限公司 Widget处理方法、装置及移动终端
US9524536B2 (en) * 2014-07-25 2016-12-20 Intel Corporation Compression techniques for dynamically-generated graphics resources
US11188449B2 (en) * 2016-05-31 2021-11-30 Red Hat, Inc. Automated exception resolution during a software development session based on previous exception encounters
US10102109B2 (en) 2016-05-31 2018-10-16 Red Hat, Inc. Exception resolution in a software development session
CN107908336B (zh) * 2017-11-13 2019-04-19 平安科技(深圳)有限公司 列表控件的刷新方法、装置、存储介质及终端

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301841A (ja) * 1997-04-30 1998-11-13 Nec Corp メモリ集積回路並びにこれを用いた主記憶システム及びグラフィクスメモリシステム
JP2002024156A (ja) * 2000-07-04 2002-01-25 Mitsubishi Electric Corp Dmaコントローラおよびその転送方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301841A (ja) * 1997-04-30 1998-11-13 Nec Corp メモリ集積回路並びにこれを用いた主記憶システム及びグラフィクスメモリシステム
JP2002024156A (ja) * 2000-07-04 2002-01-25 Mitsubishi Electric Corp Dmaコントローラおよびその転送方法

Also Published As

Publication number Publication date
JP2006293694A (ja) 2006-10-26
US20070011689A1 (en) 2007-01-11
US7743219B2 (en) 2010-06-22

Similar Documents

Publication Publication Date Title
JP4700392B2 (ja) 情報処理装置、コンピュータの制御方法及びプログラム
US8730248B2 (en) Multi-graphics processor system, graphics processor and data transfer method
TWI323433B (en) Graphics pipeline precise interrupt method and appartus
JP3810449B2 (ja) キュー装置
JP5774699B2 (ja) マルチメディアプロセッサにおける順序通りでないコマンド実行
EP1750202A1 (en) Combining packets for a packetized bus
EP2476059B1 (en) A method and apparatus for determining processor performance
WO2006034453A1 (en) Event-driven dma controller
EP1199641B1 (en) Data processing device used in serial communication system
KR20150024884A (ko) 이종 프로세서를 사용하여 애플리케이션에 낮은 레이턴시를 제공하는 시스템 및 방법
US20130120406A1 (en) Graphics processing
CN113590512A (zh) 可直连外设设备的自启动dma装置及应用
JP5744650B2 (ja) バスモニタ装置、バスモニタ方法、およびプログラム
TW201128399A (en) Methods and apparatus for resource sharing in a programmable interrupt controller
CN108024116B (zh) 一种数据缓存方法及装置
KR20180091364A (ko) 디버그 호스트로서 동작하는 cpu를 포함하는 시스템 온 칩 및 이의 동작 방법
CN112954449B (zh) 视频流处理方法、系统、电子装置和存储介质
JP3989493B2 (ja) キュー装置
JP2011008489A (ja) 集積回路システム、データ書き込み方法、データ読み出し方法
JP2008252748A (ja) 受信フレーム処理装置および受信フレーム処理システム
JP2019160148A (ja) データ採取装置、メモリコントローラ、演算装置、情報処理装置、データ採取システム、データ採取方法
JP6064756B2 (ja) 性能データ収集プログラム、装置、及び方法
CN113750517B (zh) 键盘操作数据传输方法及装置、键盘操作执行方法及装置
CN117667765A (zh) 一种基于高性能存算一体架构的数据处理方法及装置
US20040193715A1 (en) Scheduling of host-initiated transactions

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080327

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101124

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20101203

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110304

R150 Certificate of patent or registration of utility model

Ref document number: 4700392

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees