JP2002169596A - オーディオ信号をプリフェッチするための方法および装置 - Google Patents

オーディオ信号をプリフェッチするための方法および装置

Info

Publication number
JP2002169596A
JP2002169596A JP2000394136A JP2000394136A JP2002169596A JP 2002169596 A JP2002169596 A JP 2002169596A JP 2000394136 A JP2000394136 A JP 2000394136A JP 2000394136 A JP2000394136 A JP 2000394136A JP 2002169596 A JP2002169596 A JP 2002169596A
Authority
JP
Japan
Prior art keywords
address
audio
memory
data
bit
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.)
Granted
Application number
JP2000394136A
Other languages
English (en)
Other versions
JP5025849B2 (ja
Inventor
Howard H Cheng
エイチ チェン ハワード
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.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
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 Nintendo Co Ltd filed Critical Nintendo Co Ltd
Publication of JP2002169596A publication Critical patent/JP2002169596A/ja
Application granted granted Critical
Publication of JP5025849B2 publication Critical patent/JP5025849B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • A63F13/10
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/54Controlling the output signals based on the game progress involving acoustic signals, e.g. for simulating revolutions per minute [RPM] dependent engine sounds in a driving game or reverberation against a virtual wall
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6063Methods for processing data by generating or executing the game program for sound processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Memory System (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 オーディオデータをプリフェッチ(pre-fetc
h:予め取り出すこと)することによって、オーディオ
信号プロセサがオーディオデータの読出しを継続でき、
したがって、原形を損なわずにオーディオの再生を提供
できる。 【解決手段】 オーディオシステムは、オーディオデー
タをストアするメモリ126と、そのオーディオデータ
を処理するオーディオ信号プロセサとを含む。アドレス
回路902はメモリをアドレスし、プリフェッチ記憶領
域904a−904cがそのアドレス回路によるアドレ
ス変更の間のメモリアクセスのレイテンシを隠すため
に、現在アドレスと1つ以上の後続アドレスとをストア
する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は音声信号をプリフェッ
チ(pre-fetch:予め取り出しまたは取り込むこと)す
るための方法および装置に関し、特にたとえば、オーデ
ィオ信号プロセサによって使用するためにオーディオデ
ータをプリフェッチする方法および装置に関する。
【0002】
【発明の背景および発明の概要】多くの人々はかなりリ
アルな恐竜,エイリアン,生き生きとしたおもちゃおよ
び他の空想的な動物を含む映画をかつて見たことがあ
る。そのようなアニメーションはコンピュータグラフィ
クスによって可能とされた。そのような技術を用いて、
コンピュータグラフィクスのアーティストは、各オブジ
ェクトがどのように見えるべきかや時間の経過とともに
外見上どのように変化すべきかを特定し、コンピュータ
は、そのオブジェクトをモデル化してテレビジョンやコ
ンピュータスクリーンのようなディスプレイに表示す
る。コンピュータは、表示される映像の各部分を、場面
中の各オブジェクトの位置や向き,各オブジェクトを照
らすように見える照明の方向,各オブジェクトの表面テ
クスチャ,および他の要素に正確に基づいて、色付けし
また形作るために必要な多くのタスクを実行する。
【0003】コンピュータグラフィクスの生成は複雑で
あるので、ここ数年前のコンピュータによって生成され
た3次元(3D)グラフィクスは、ほとんど高価な特殊
なフライトシミュレータ,ハイエンドグラフィクスワー
クステーションおよびスーパーコンピュータに限られて
いた。大衆は映画や高価なテレビコマーシャルにおいて
これらのコンピュータシステムによって生成された映像
のいくつかを見たが、大部分の人はグラフィクスを生成
しているコンピュータに対して実際に相互作用をさせる
ことはできない。たとえば、Nintendo64(登録商標)や
今や利用可能であるパソコン用の種々の3Dグラフィク
スカードのような比較的安価な3Dグラフィクスプラッ
トフォームの利用によって、このすべてが変わった。今
や、家庭や会社の比較的安価なコンピュータグラフィク
スシステム上でエキサイティングな3Dアニメーション
やシミュレーションに対して相互作用を及ぼすことがで
きる。
【0004】対話型(インタラクティブ)3Dコンピュ
ータグラフィクスシステムは、ビデオゲームをプレイす
るのにしばしば用いられる。しかしながら、「ゲームの
経験」はビデオコンテンツ以上のものを必要とする。た
とえば、ほとんどすべてのゲーム経験はビデオコンテン
ツを伴うオーディオコンテンツを含む。ここで説明され
るオーディオシステムは、音声エミッタ(放射器)を3
次元空間に置くことを可能にし、かつ1対のスピーカで
サイコアコースティック(psycho-acoustic)な3D音声
効果を発生する強力な手段を提供する。オーディオシス
テムは、DVDのような大容量記憶媒体から読み出され
た、たとえば音声サンプル,楽器波形テーブル,オーデ
ィオトラックおよびその他をストアするのに用いられる
オーディオメモリを含む。音声サンプル,波形テーブ
ル,音声トラック等は、順次読み出されてゲームオーデ
ィオコンテンツを生成するために、オーディオディジタ
ル信号プロセサによって処理される。このコンテンツは
主メモリへ転送され、そこからさらにデコーダに供給し
かつスピーカに出力するために読み出される。この分離
されたオーディオメモリによって、主システムメモリに
アクセスしようとしている他のリソース(たとえばグラ
フィクスサブシステム)と競争する必要性を回避して、
オーディオデータへのオーディオ処理回路のアクセスを
改善する。
【0005】波形テーブルは、メモリにストアされてい
る予め記録された音声波形(たとえば、ピアノのような
楽器について)のテーブルを参照する。典型的には、こ
れらの音声は、特別なフォーマット(たとえば、WAV
またはAIFF)のファイルとしてストアされる。音声
ファイルは図15に示すように、最初から最後まで再生
されるか、もしくは、図16に示すように、音声ファイ
ルがループ点をもっていて、停止されるまで、(たぶ
ん、エンベロープ圧縮(envelope reduction)で)特定
されるようにループする。このループ点を設けることに
よって、ファイルの一部が繰り返し再生されるので、音
声ファイルをより小さくすることができる。しかしなが
ら、音声ファイルのサイズを減じることができるもの
の、そのようなループは、そのループ点へジャンプして
戻る必要性のために、メモリをアドレスすることに問題
を生じる。一般に、メモリをアドレスすることは、デー
タ読出のための次のアドレスが現在アドレスをインクリ
メントすることによって得られるとき、最も効率的であ
る。しかしながら、ループ再生では、音声ファイルがス
トアされているメモリをアドレスするためのアドレスレ
ジスタがそのループ点へ1回以上リセットされることを
要する。次のファイルアドレスでデータを読み出すため
にアドレスレジスタをインクリメントすることは素早く
実行できるが、レジスタをリセットすることは長時間を
要するばかりでなく、先にループして戻った直前のアド
レスでのデータ出力とループして戻ったアドレスでのデ
ータ出力との間で結果的に遅れ(レイテンシ:latenc
y)期間を生じる。このことによって、結果的に、オー
ディオ出力に中断を生じさせ、逆にプレーヤのゲーム経
験に強い影響を与える。
【0006】この発明の1つの局面によれば、オーディ
オの原形が損なわれる可能性は、オーディオデータをプ
リフェッチすることによって最小化される。アドレスレ
ジスタがリセットされるときプリフェッチしたデータが
既に存在するので、オーディオ信号プロセサはその遅れ
(レイテンシ)期間中においてもデータ読出を継続する
ことができる。1つの実施例では、オーディオシステム
はオーディオファイルをストアするメモリと、そのオー
ディオファイルを処理するオーディオ信号プロセサとを
含む。アドレス回路がメモリをアドレスし、プリフェッ
チ記憶領域がそのアドレス回路のアドレス変更の間のメ
モリアクセスのレイテンシを隠すために、現在アドレス
および1つ以上の後続アドレスについてデータをストア
する。
【0007】この発明の上述の目的,その他の目的,特
徴および利点は、図面を参照して行う以下の実施例の詳
細な説明から一層明らかとなろう。
【0008】
【実施例】図1は対話型(インタラクティブ)3Dコン
ピュータグラフィクスシステム50の一例を示す。シス
テム50は対話型3Dビデオゲームをステレオ音声とと
もにプレイするのに用いられ得る。これはまた多様な他
のアプリケーションにも用いられ得る。
【0009】この実施例において、システム50は3次
元世界のディジタル表現ないしモデルをインタラクティ
ブにかつリアルタイムに処理することができる。システ
ム50は、任意の視点から、その世界の一部または全部
を表示することができる。たとえば、システム50は、
手持ちコントローラ52aおよび52bまたは他の入力
デバイスからのリアルタイム入力に応答して、視点をイ
ンタラクティブに変化できる。このことによって、ゲー
ムプレーヤは、その世界内もしくは外の誰かの目を通し
てその世界を見ることができる。システム50は、リア
ルタイム3Dインタラクティブ表示を必要としないアプ
リケーション(たとえば2D表示の発生やおよび/また
はノンインタラクティブ表示)に使用できるが、高品質
の3D映像を非常に速く表示する能力は、非常にリアル
でエキサイティングなゲームプレイや他のグラフィクス
インタラクションを創造するのに使用され得る。
【0010】システム50を用いてビデオゲームまたは
他のアプリケーションをプレイするために、ユーザはま
ず、主ユニット54を、カラーテレビ56または他の表
示装置に、両者の間にケーブル58を接続することによ
って、接続する。主ユニット54はカラーテレビ56を
制御するためのビデオ信号およびオーディオ信号を発生
する。ビデオ信号はテレビジョン画面59上に表示され
ている映像を制御するものであり、オーディオ信号はテ
レビのステレオスピーカ61Lおよび61Rを通して音
声として再生される。
【0011】ユーザはまた主ユニット54を電源につな
ぐ必要がある。この電源は従来のACアダプタ(図示せ
ず)であってよく、そのACアダプタは家庭用の標準的
な壁ソケットに差し込まれ、家庭用電源を、主ユニット
54を駆動するのに適した低いDC電圧信号に変換す
る。他の実施例ではバッテリが用いられてもよい。
【0012】ユーザは主ユニット54を制御するために
手持ちコントローラ52aおよび52bを用いる。コン
トロール60は、たとえば、3D世界内においてテレビ
56に表示されているキャラクタが移動すべき方向(上
または下、左または右、近づいてまたは遠ざかって)を
指示するために使用され得る。コントロール60は、ま
た他のアプリケーションのための入力(たとえばメニュ
ー選択,ポインタ/カーソル制御,その他)を与える。
コントローラ52は多様な形態をとり得る。この実施例
においては、図示されるコントローラ52は、各々ジョ
イスティック,押しボタンおよび/または方向スイッチ
のようなコントロール60を含む。コントローラ52
は、ケーブルによって、もしくは電磁波(たとえば電波
または赤外線)を介してワイヤレスで、主ユニット54
に接続され得る。
【0013】ゲームのようなアプリケーションをプレイ
するために、ユーザはビデオゲームもしくはプレイした
いと思う他のアプリケーションをストアしている適宜の
記憶媒体62を選択し、その記憶媒体を主ユニット54
のスロット64に差し込む。記憶媒体62は、たとえ
ば、特別にエンコードされおよび/または記号化された
光学的ならびに/もしくは磁気的ディスクであってよ
い。ユーザは主ユニット54をオンするために電源スイ
ッチ66を操作し、主ユニットがその記憶媒体62にス
トアされているソフトウェアに基づいてビデオゲームも
しくは他のアプリケーションを実行し始めるようにす
る。ユーザは主ユニットに入力を与えるためにコントロ
ーラ52を操作する。たとえば、コントロール60を操
作することによってゲームもしくは他のアプリケーショ
ンをスタートさせる。他のコントロール60を動かすこ
とによって、動画キャラクタを異なる方向に移動させ、
または3D世界におけるユーザの視点を変化させる。記
憶媒体62にストアされている具体的なソフトウェアに
よって、コントローラ52上の種々のコントロール60
は異なる時間で異なる機能を達成することができる。
【0014】全体システムの例 図2はシステム50の例示的なコンポーネントのブロッ
ク図であり、重要なコンポーネントは、 ・主プロセサ(CPU)110, ・主メモリ112,および ・グラフィクス/オーディオプロセサ114を含む。
【0015】この実施例において、主プロセサ110
(たとえばIBMパワーPC750の改良版)は、手持
ちコントローラ52(および/または他の入力デバイ
ス)からの入力をグラフィクス/オーディオプロセサ1
14を通して受ける。主プロセサ110はユーザ入力に
インタラクティブに応答し、光ディスクドライブのよう
な大容量記憶媒体アクセス装置106を介して、たとえ
ば外部記憶媒体62から供給されるビデオゲームもしく
は他のプログラムを実行する。一例として、ビデオゲー
ムプレイの状況では、主プロセサ110は、多様なイン
タラクティブ制御機能に加えて、衝突検出および動画処
理を実行する。
【0016】この実施例では、主プロセサ110は3D
グラフィクス/オーディオコマンドを発生し、それらを
グラフィクス/オーディオプロセサ114に送る。グラ
フィクス/オーディオプロセサ114はこれらのコマン
ドを処理し、ディスプレイ59上での可視映像を生成
し、ステレオスピーカ61Rおよび61Lもしくは他の
適宜の音声発生デバイス上でのステレオ音声を生成す
る。
【0017】実施例のシステム50はビデオエンコーダ
120を含み、このビデオエンコーダは、グラフィクス
/オーディオプロセサ114からの映像信号を受けて、
その映像信号をコンピュータモニタや家庭用テレビ56
のような標準的な表示装置上での表示に適したアナログ
および/またはディジタルビデオ信号に変換する。シス
テム100はまたオーディオコーデック(圧縮器/伸長
器)122を含み、このオーディオコーデックはディジ
タル化されたオーディオ信号を圧縮しかつ伸長するとと
もに、必要に応じてディジタルオーディオ信号のフォー
マットとアナログオーディオ信号のフォーマットとの間
で変換を行う。オーディオコーデック122はバッファ
124を介してオーディオ入力を受けることができ、処
理(たとえば、プロセサが生成したおよび/または大容
量記憶媒体アクセス装置106のストリームオーディオ
出力を介して受信した他のオーディオ信号とのミキシン
グ)するために、そのオーディオ入力をグラフィクス/
オーディオプロセサ114に与える。この実施例におけ
るグラフィクス/オーディオプロセサ114は、オーデ
ィオタスクに利用可能なオーディオメモリ126にオー
ディオ関連情報をストアすることができる。グラフィク
ス/オーディオプロセサ114は、結果的に得られるオ
ーディオ出力信号を、圧縮およびアナログ信号への変換
のために、オーディオコーデック122に与え、したが
ってそのオーディオ出力信号が(たとえばバッファアン
プ128Lおよび128Rを介して)スピーカ61Lお
よび61Rによって再生され得る。
【0018】グラフィクス/オーディオプロセサ114
はシステム100内に存在するであろう種々の付加的な
デバイスと通信する能力を有する。たとえば、パラレル
ディジタルバス130は大容量記憶媒体アクセス装置1
06および/または他のコンポーネントと通信するため
に用いられる。シリアル周辺バス132は多様な周辺機
器または、たとえば、 ・PROMおよび/またはRTC(リアルタイムクロッ
ク)134, ・モデム136もしくは他のネットワークインタフェー
ス(それはシステム100を、プログラム命令および/
またはデータがダウンロードもしくはアップロードされ
得るインターネットあるいは他のディジタルネットワー
クのようなテレコミュニケーションネットワーク138
に接続する),および ・フラッシュメモリ140を含む他のデバイスと通信す
る。別の外部シリアルバス142は、付加的な拡張メモ
リ144(たとえばメモリカード)もしくは他のデバイ
スと通信するために使用され得る。コネクタが種々のデ
バイスをバス130,132および142に接続するた
めに使用され得る。
【0019】グラフィクス/オーディオプロセサの例 図3は実施例のグラフィクス/オーディオプロセサ11
4を示すブロック図である。或る実施例においては、グ
ラフィクス/オーディオプロセサ114はシングルチッ
プASICであってよい。この実施例においては、グラ
フィクス/オーディオプロセサ114は、 ・プロセサインタフェース150, ・メモリインタフェース/コントローラ152, ・3Dグラフィクスプロセサ154, ・オーディオディジタル信号プロセサ(DSP)15
6, ・オーディオメモリインタフェース158, ・オーディオインタフェース/ミキサ160, ・周辺コントローラ162,および ・表示コントローラ164を含む。
【0020】3Dグラフィクスプロセサ154はグラフ
ィクス処理タスクを実行する。オーディオディジタル信
号プロセサ156はオーディオ処理タスクを実行する。
表示コントローラ164は主メモリ112からの映像情
報にアクセスし、表示装置102上での表示のためにそ
の映像情報をビデオエンコーダ120に与える。オーデ
ィオインタフェース/ミキサ160はオーディオコーデ
ック122をインタフェースし、また異なるソースから
のオーディオ(たとえば、大容量記憶媒体アクセス装置
106からのオーディオストリーム,オーディオDSP
156の出力,およびオーディオコーデック122を通
して受ける外部オーディオ入力)をミックスすることが
できる。プロセサインタフェース150は主プロセサ1
10およびグラフィクス/オーディオプロセサ114の
間のデータおよび制御インタフェースを提供する。
【0021】メモリインタフェース152はグラフィク
ス/オーディオプロセサ114とメモリ112との間の
データおよび制御インタフェースを提供する。この実施
例においては、主プロセサ110は、プロセサインタフ
ェース150およびグラフィクス/オーディオプロセサ
114の一部であるメモリインタフェース152を介し
て、主メモリ112にアクセスする。周辺コントローラ
162はグラフィクス/オーディオプロセサ114と上
で述べた種々の周辺機器との間のデータおよび制御イン
タフェースを提供する。オーディオメモリインタフェー
ス158はオーディオメモリ126とのインタフェース
を提供する。
【0022】グラフィクスパイプラインの例 図4は図3の3Dグラフィクスプロセサ154をより詳
細に示すグラフィクス処理システムを示す。この3Dグ
ラフィクスプロセサ154は、とりわけ、コマンドプロ
セサ200および3Dグラフィクスパイプライン180
を含む。主プロセサ110はデータストリーム(たとえ
ばグラフィクスコマンドストリームおよび表示リスト)
をコマンドプロセサ200に通信する。主プロセサ11
0はメモリレイテンシを最小化するために2レベルキャ
ッシュ112を有し、さらにまたグラフィクス/オーデ
ィオプロセサ114に向けられたキャッシュされていな
いデータストリームのための書込収集(write-gatherin
g)バッファ111を有する。この書込収集バッファ11
は部分キャッシュラインを全キャッシュラインに集め、
バスの最大使用時に、グラフィクス/オーディオプロセ
サ114からのデータを1つのキャッシュラインに送
る。
【0023】コマンドプロセサ200は主プロセサ11
0からの表示コマンドを受け、それらを解剖し、メモリ
コントローラ152を介して共用メモリ112からのそ
のコマンドを処理するに必要な付加的なデータを入手す
る。コマンドプロセサ200は、2Dおよび/または3
D処理およびレンダリングのために、頂点コマンドのス
トリームをグラフィクスパイプライン180に与える。
グラフィクスパイプライン180はこれらのコマンドに
基づいて映像を生成する。結果として得られた映像情報
は、表示コントローラ/ビデオインタフェースユニット
164によるアクセスのために主メモリ120に転送さ
れ得て、この映像情報は表示装置156上にパイプライ
ン180のフレームバッファ出力を表示する。
【0024】図5はグラフィクスプロセサ154を用い
て実行される処理を図解的に示すブロック論理フロー図
である。主プロセサ10は、グラフィクスコマンドスト
リーム210,表示リスト212および頂点アレイ21
4を主メモリ112にストアし、ポインタをバスインタ
フェース150を介してコマンドプロセサ200に送
る。主プロセサ110は主メモリ110内に割り付けら
れた1つ以上のグラフィクスFIFOバッファ210に
グラフィクスコマンドをストアする。このコマンドプロ
セサ200は、 ・同期/フロー制御および負荷バランスのためにグラフ
ィクスコマンドを受けかつバッファするオンチップFI
FOメモリバッファ216を介して主メモリ112から
のコマンドストリーム, ・オンチップコールFIFOメモリバッファ218を介
して主メモリ112からの表示リスト212,および ・コマンドストリームからおよび/または主メモリ11
2の頂点アレイ214からの頂点アトリビュートを頂点
キャッシュ220を介して取り込む。
【0025】コマンドプロセサ200はコマンド処理動
作200aを実行し、そのコマンド処理動作200aは
アトリビュート形式を浮動小数点フォーマットに変換
し、結果的に得られた完全頂点ポリゴンデータをレンダ
リング/ラスタライゼーションのためにグラフィクスパ
イプライン180に与える。プログラマブルメモリ調停
回路130(グラフィクスメモリ要求調停回路:図4)
は、グラフィクスパイプライン180,コマンドプロセ
サ200および表示コントローラ/ビデオインタフェー
スユニット164の間での共用主メモリ112へのアク
セスを調停する。
【0026】図4は、グラフィクスパイプライン180
が ・変換ユニット300, ・セットアップ/ラスタライザ400, ・テクスチャユニット500, ・テクスチャ環境ユニット600,および ・ピクセルエンジン700を含むことを示す。
【0027】変換ユニット300は多様な2Dおよび3
D変換および他の動作300a(図5)を実行する。変
換ユニット300は変換処理300aに用いられるマト
リクスをストアするための1つ以上のマトリクスメモリ
300bを含む。変換ユニット300は、入来する頂点
毎のジオメトリをオブジェクト空間からスクリーン空間
へ変換し、そして入来するテクスチャ座標を変換しかつ
投影テクスチャ座標(300c)を計算する。変換ユニ
ット300はまたポリゴンクリッピング/カリング(cli
pping/culling)300dを実行する。変換ユニット30
0bによってまた達成される照明処理300eが、この
実施例では8つまでの独立した照明について、頂点毎に
照明計算を行う。変換ユニット300は、エンボス(emb
ossed)タイプのバンプマッピング効果およびポリゴンク
リッピング/カリング動作(300d)のために、テク
スチャ座標を発生する(300c)。
【0028】セットアップ/ラスタライザ400はセッ
トアップユニットを含み、このセットアップユニット
は、変換ユニット300からの頂点データを受け、三角
形セットアップ情報を、エッジラスタライゼーション,
テクスチャ座標ラスタライゼーションおよびカラーラス
タライゼーションを実行する1つ以上のラスタライザユ
ニット(400b)に送る。
【0029】テクスチャユニット500は、オンチップ
テクスチャメモリ(TMEM)502を含んでもよく、
たとえば、 ・主メモリ112からのテクスチャ504の抽出、 ・たとえばマルチテクスチャ処理,ポストキャッシュテ
クスチャ伸長,テクスチャフィルタリング,エンボシン
グ,投影テクスチャの使用を通しての陰影付け,および
アルファトランスパーレンシおよびデプスを用いるBL
ITを含むテクスチャ処理(500a)、 ・バンプマッピング,偽(psedo)テクスチャおよびテク
スチャタイル(tiling)効果(500b)のためのテクス
チャ座標置換を計算するバンプマップ処理、および ・間接テクスチャ処理(500c)を含むテクスチャリ
ングに関連する種々のタスクを実行する。
【0030】テクスチャユニット500はテクスチャ環
境処理(600a)のためにフィルタされたテクスチャ
値をテクスチャ環境ユニット600に出力する。テクス
チャ環境ユニット600は、ポリゴンおよびテクスチャ
カラー/アルファ/デプスをブレンドし、また逆レンジ
ベース(reverse range based)のフォグ効果を達成する
ために、テクスチャフォグ処理(600b)を実行す
る。テクスチャ環境ユニット600はたとえばカラー/
アルファ変調,エンボシング,詳細テクスチャ,テクス
チャスワッピング,クランピングおよびデプスブレンデ
ィングに基づく多様な他の環境関連機能を実行する多段
階を提供する。
【0031】ピクセルエンジン700はデプス(z)比
較(700a)およびピクセルブレンディング(700
b)を実行する。この実施例では、ピクセルエンジン7
00はデータを埋め込み(オンチップ)フレームバッフ
ァメモリ702にストアする。グラフィクスパイプライ
ン180は、フレームバッファおよび/またはテクスチ
ャ情報をローカルにストアするために1つ以上の埋め込
みDRAMメモリ702を含む。z比較700aは、現
在有効なレンダリングモードに依存して、グラフィクス
パイプライン180におけるより早い段階で実行される
(たとえば、z比較は、もしアルファブレンディングが
要求されていないならば早くに実行され得る)。このピ
クセルエンジン700は表示コントローラ/ビデオイン
タフェースユニット164による主メモリ112へのア
クセスのために、オンチップフレームバッファ702を
周期的に書き込むコピー動作700cを含む。このコピ
ー動作700cはまた動的テクスチャ合成効果のため
に、埋め込みフレームバッファ702の内容を主メモリ
112中のテクスチャにコピーするために使用され得
る。アンチエイリアシング(anti-aliasing)および他の
フィルタリングがコピー動作中に実行され得る。最終的
に主メモリ112にストアされるグラフィクスパイプラ
イン180のフレームバッファ出力は、表示コントロー
ラ/ビデオインタフェースユニット164によってフレ
ーム毎に読み出される。表示コントローラ/ビデオイン
タフェース164は表示装置56上での表示のためにデ
ィジタルRGBピクセル値を与える。
【0032】オーディオシステムの例 オーディオDSP156はピッチ変調および音声データ
と効果データとのミキシングを行う。オーディオDSP
156は、オーディオサンプルのようなオーディオ関連
情報をストアするために用いられ得る大容量(たとえば
16MBもしくはそれ以上)のオーディオメモリ126
(補助RAM−ARAM)によって増大される。オーデ
ィオはオーディオコーデック122を介してスピーカ6
1Lおよび61Rに送られ、そのオーディオコーデック
はD/A変換器を含む。大容量記憶媒体62からのオー
ディオストリームがゲーム実行中にハイファイオーディ
オを再生するために効率的な方法を提供する。
【0033】図6は図3に示すオーディオDSP15
6,オーディオメモリインタフェース158およびオー
ディオインタフェース/ミキサ160をより詳細に示す
ブロック図である。サンプルレート変換器801は大容
量記憶媒体62からのものであろうオーディオストリー
ムを48kHzまたは32kHzでサンプリングし、L
/Rボリュームコントロール803はサンプルされたオ
ーディオの左および右チャネルのボリュームレベルを制
御する。オーディオストリームは完全に主メモリ112
をバイパスし、それによってメモリおよびプロセサバン
ド幅を保存する。大容量記憶媒体62のオーディオデー
タがたとえばADPCMフォーマットにエンコードされ
る場合、大容量記憶媒体アクセス装置106はADPC
MデータをPCMサンプル(たとえば16ビット)に自
動的にデコードしてサンプルレート変換器801に供給
する。
【0034】DMA(ダイレクトメモリアクセス)チャ
ネル805は主メモリ112中の任意の記憶位置からの
データのFIFOバッファ807への転送を可能にす
る。ミキサ809はサンプルレート変換器801の出力
とFIFOバッファ807の出力とをミックスし、その
結果がオーディオコーデック122に出力される。オー
ディオコーデック122のサンプルレートはたとえば4
8kHzであり、オーディオコーデック122はステレ
オ16ビットPCMをアナログ信号に変換するための標
準的なシグマデルタ(Sigma Delta)コーデックであって
よい。
【0035】DSPコア811は100MHzの命令ク
ロックを有し、16ビットのデータワードとアドレスと
を用いる。DSPコア811は、RAM領域(たとえば
8kバイト)およびROM領域(たとえば8kバイト)
を含むワード(16ビット)アドレス可能命令メモリ8
13、およびRAM領域(たとえば8kバイト)および
ROM領域(たとえば4kバイト)を含むワードアドレ
ス可能データメモリ815を用いる。DSPDMA81
9は、主メモリ112とDSPデータ/命令RAM領域
との間でデータを転送し、またはDSPデータ/命令R
OM領域から主メモリ112へデータを転送するために
設けられる。命令メモリ813へのアクセスを要求する
2つのものがあり、それはDSPDMA819およびD
SP811である。命令RAM領域はDSPDMA81
9によって読み出され/書き込まれ、DSP811によ
っては読み出されるだけである。命令ROM領域はDS
P811によって読み出されるだけである。データメモ
リ815へのアクセスを要求する3つのものは、DSP
DMA819,データバス1およびデータバス2であ
る。メールボックスレジスタ817が主プロセサ110
との通信のために設けられる。このメールボックスレジ
スタ817は、主プロセサ110からDSPコア811
への通信のための第1メールボックスレジスタと、DS
Pコア811から主プロセサ110への通信のための第
2メールボックスレジスタとを含む。各々のレジスタは
たとえば32ビット幅である。オーディオメモリ126
から読み出しかつそこへ書き込むために、DSPコア8
11に代えて、アクセラレータ821が利用可能であ
る。オーディオメモリ126のためにメモリコントロー
ラ823が設けられ、とりわけ、オーディオメモリ12
6と主メモリ112との間のデータ授受のために、DS
Pコア811と主プロセサ110によって制御される専
用DMAチャネル825との間でオーディオメモリへの
アクセス要求を調停するように動作する。一般的に、オ
ーディオメモリ126とDSPデータメモリ815との
間のデータ授受はDMAチャネル825に対する優先権
を有する。デコーダ827はそこへ供給されるオーディ
オサンプルをデコードする。オーディオメモリ126は
一義的にはオーディオ関連データをストアするし、16
MBのSDRAM(合計48MBまでに拡張可能)を備
える。
【0036】オーディオデータの記憶要求を減じる手助
けのために、種々の圧縮および伸長方法が利用され得
る。ADPCMは適応差分PCMと呼ばれる。この方法
は上で述べたオーディオシステムによって生成された音
声を圧縮/伸長し、大容量記憶媒体62上の音声を圧縮
/伸長するために使用され得る。種々のADPCMのア
ルゴリズムがあり、オーディオシステムによって生成さ
れた音声と大容量記憶媒体62上の音声とのために同じ
アルゴリズムが用いられる必要はない。デコーダ827
がオーディオシステムによって生成された音声データの
実行時ADPCM伸長を提供し、大容量記憶媒体アクセ
ス装置106が大容量記憶媒体62からの音声データの
実行時(runtime)ADPCM伸長を提供する。8ビット
PCM圧縮/伸長方法がオーディオシステムによって生
成された音声データのためにまた利用可能である。した
がって、デコーダ827がまた8ビットのPCM圧縮さ
れた音声データの実行時伸長を提供する。もちろん、上
で述べた圧縮/伸長方法は単なる一例であって、これに
限定されるものではない。
【0037】システムを初期化する間、実行時オーディ
オライブラリがオーディオDSP156にダウンロード
される。このオーディオライブラリは、主プロセサ11
0によって作られるコマンドリストにあるコマンドに従
って音声を処理しかつミックスするために、オーディオ
DSP156によって使用される。コマンドリストは主
メモリ112にストアされる。オーディオDSP156
は主メモリ112からコマンドを引き出し、それをそこ
にダウンロードされた実行時オーディオライブラリに従
って実行する。
【0038】オーディオサブシステムは音声エミッタの
3次元空間内への配置を許容する。これは次のような特
徴、 ・ボリュームおよびパンニング制御, ・ピッチ変調(ドップラー効果), ・左および右チャネル間の位相シフトによる初期時間遅
延,および ・FIRフィルタ(HRTFおよび環境効果)によって
達成される。
【0039】これらの特徴および主プロセサベースの以
下に説明する効果処理が一緒に、1対のスピーカでのサ
イコアコースティックな3次元音声効果を発生する強力
な手段を提供する。
【0040】音声処理パイプラインが図7に示され、そ
の図7には次のようなステップが含まれる。
【0041】ステップ1:オーディオDSP156によ
ってオーディオメモリ126からサンプルが読み出され
る。
【0042】ステップ2:オーディオメモリ126から
のADPCMおよび8ビットPCMサンプルがデコーダ
827によってデコードされかつそのデコードされたサ
ンプルが第1サンプルレート変換器に供給される。
【0043】ステップ3:オーディオメモリ126から
の16ビットPCMサンプルが第1サンプルレート変換
器に直接送られる。
【0044】ステップ4:サンプルレート変換器は入来
サンプルのピッチを調節する。
【0045】ステップ5:FIRフィルタはオプション
のユーザ規定フィルタをサンプルに適用する。
【0046】ステップ6:ボリュームランプ(傾斜)が
ボリュームエンベロープ調音のためにサンプルにボリュ
ームランプを与える。
【0047】ステップ7:ミキサが32kHzのサンプ
リングレートでかつ24ビットの精度でサンプルをミッ
クスする。
【0048】ステップ1−7が各音声毎に繰り返され
る。すべての音声が処理されかつミキサバッファに累算
されたとき、次のステップ1および2が生じる。
【0049】ステップ1:ドルビーサラウンドおよび主
プロセサ(ホスト)ベースの効果(残響およびコーラス
のような)が、ミックスされた音声に与えられる。主プ
ロセサベースの効果を付与することは「音声信号をミキ
シングするための方法および装置」と題する同時係属中
の出願(特願2000−384942)に詳細に述べら
れていて、したがって、ここでは参照によってその内容
を取り入れる。
【0050】図8はアクセラレータ821のブロック図
である。上で述べたように、アクセラレータ821は、
オーディオメモリ126を読み出しかつそこへ書き込む
ために、DSPコア811に代わって使用される。アク
セラレータ821は、アドレスを自動的に増加するかま
たは次のアクセスのためのラップアラウンドアドレス
(循環アドレス)を発生する後続アドレス発生回路90
2を含む。アクセラレータ821は3つのデータライン
904a−904cを含み、これらのデータラインは読
出動作中にプリフェッチバッファとして機能し、書込動
作中には書込バッファとして機能する。以下に説明する
ように、データライン904a−904cは、DSPコ
ア811の動作がオーディオメモリ126をアクセスす
るとき、オーディオメモリ126のアクセスのレイテン
シを隠す。DSPによって開始アドレスのデータが読み
出されたとき、またはDSPによって終了アドレスのデ
ータが書き込まれたとき、DSPコア811に対する割
込が発生される。
【0051】3つのパラメータレジスタ(現在アドレ
ス,開始アドレス,終了アドレス)906a−906c
が、オーディオメモリ126のメモリスペースにおける
循環バッファを規定するために使用される。各パラメー
タレジスタは27ビット幅でかつオーディオDSPによ
って読み出され/書き込まれ得る。後続アドレス発生回
路902は、次のアドレスを得るために、現在アドレス
に「1」を加える。この現在アドレスがもし終了アドレ
スと等しいとき、次のアドレスは開始アドレスとなる。
パラメータレジスタ906a−906cはオーディオメ
モリ126から読み出しかつそこへ書き込むために使用
される。アドレスとこのレジスタにおけるデータとの間
の関係は次の通りである。
【0052】
【表1】
【0053】
【表2】
【0054】
【表3】
【0055】
【表4】
【0056】
【表5】
【0057】
【表6】
【0058】データライン904a−904cは各々1
6ビット幅である。読出動作のために、データラインは
プリフェッチデータバッファとして機能し、そこでは、
データがオーディオメモリ126から前もって読み出さ
れ、かつDSPコア811がそのデータラインを読み出
すときデータを手渡す用意ができている。書込動作のた
めのデータラインの機能は、DSPコア811からオー
ディオメモリ126に書き込まれるべきデータの一時的
なバッファである。データライン904a−904cは
FIFOの態様で形成され、それらの入力/出力ポート
はDSPコア811によって読出でき/書込できる。デ
ータラインにおけるデータのアドレスは現在アドレスお
よびその2つの後続アドレスに対応する。
【0059】図9はオーディオメモリコントローラ82
3の詳細なブロック図である。オーディオメモリコント
ローラ823は次の機能を達成する。
【0060】・リセットの後、オーディオメモリを安定
化する(オーディオメモリモードの設定も含めて)ため
のオーディオメモリ初期タイミングを発生する; ・オーディオメモリのリフレッシュサイクルを発生す
る;および ・DMA825およびアクセラレータ821の読出/書
込要求を受け入れかつその後オーディオメモリ126へ
のアクセスタイミングを発生する。
【0061】タイミング発生回路928がアクセスタイ
ミングを発生する。この実施例のシステムにおいては、
オーディオメモリ126を構成する2つまでのメモリが
ある。第1のものは内部オーディオメモリ926aであ
り、8Mバイトの最大サイズを有する。第2のものは拡
張オーディオメモリ926bであり、32Mバイトの最
大サイズを有する。内部オーディオメモリ926aのア
ドレスは0からスタートし、拡張オーディオメモリ92
6bのアドレスは内部オーディオメモリの終了アドレス
に連続される。したがって、内部オーディオメモリ92
6aおよび外部オーディオメモリ926bのアドレスス
ペースは連続的であり、拡張オーディオメモリ926b
の開始アドレスは内部オーディオメモリ926aのサイ
ズに依存する。内部オーディオメモリ926aおよび拡
張オーディオメモリ926bのモード設定およびリフレ
ッシュサイクルが同時にアクティブとなる。
【0062】リセットの後、オーディオメモリコントロ
ーラ823はオーディオメモリ126を初期化する(図
9において「ARAM初期化」として表現されてい
る)。初期化中、コントローラ823はオーディオメモ
リ126へのアクセスをマスクし、初期化の後、オーデ
ィオメモリ126が自由にアクセス可能となる。フラグ
ARAM_NORMは初期化が実行されたことの表示と
してセットされる。上で述べたように、初期化はオーデ
ィオメモリのモード設定を含む。オーディオメモリモー
ドレジスタに以下の設定がなされる。
【0063】・バースト長(たとえば、2バイト), ・アドレスモード(たとえば、順次), ・CASレイテンシ(2または3−主プロセサ110に
よってプログラムされる),および ・書込モード(バースト読出およびバースト書込)。
【0064】オーディオメモリコントローラ823は、
内部オーディオメモリ926aおよび拡張オーディオメ
モリ926bを同時に初期化する。主プロセサ110
は、初期化が終了する前に、CASレイテンシをプログ
ラムする。もしこのCASレイテンシが主プロセサ11
0によってプログラムされなければ、オーディオメモリ
126をアクセスするために、リセットのデフォルトC
AS=3が用いられる。
【0065】初期化の後、オーディオメモリコントロー
ラ823は内部オーディオメモリ926および拡張オー
ディオメモリ926bのサイズを判定する。
【0066】チップセレクト信号を除いて、内部オーデ
ィオメモリ926aおよび拡張オーディオメモリ926
bは同じアドレスバス,同じデータバスおよび同じ制御
信号を共有する。動作中、調停ユニット930が3つの
要求者 ・DMA825, ・アクセラレータ821,および ・リフレッシュカウンタ932、についてのアクセスタ
イミングを発生する。
【0067】これらの要求者間における優先権は次の通
りである。
【0068】リフレッシュカウンタ932>アクセラレ
ータ821>DMA825自動リフレッシュ期間はプロ
グラマブルであり、オーディオメモリコントローラ82
3が、内部オーディオメモリ926aおよび拡張オーデ
ィオメモリ926bへのリフレッシュサイクルを同時に
与える。
【0069】以下のDSPのプログラムビットはDMA
825によるオーディオメモリ126へのアクセスをマ
スクするために使用され得る。
【0070】
【表7】
【0071】もしAMDMのビット0がセットされれ
ば、オーディオメモリ126へのアクセスがアクセラレ
ータ821に占有される。AMDMのビット0がクリア
されれば、次の処理が発生する。
【0072】典型的には、DMA825は、複数(たと
えば、16)の読出/書込コマンドを介してオーディオ
メモリ126をアクセスする。もしアクセラレータ82
1がこの時間中にオーディオメモリ126をアクセスす
る必要があれば、オーディオメモリコントローラ823
はオーディオメモリ126の同じバンクを2つのものが
アクセスしようとしているかどうかを判断する。もしそ
うであれば、オーディオメモリコントローラ823は、
DMA825によるアクセスを終了(プリチャージ:pr
echarge)するとともに、アクセスをアクセラレータ8
21に移す。アクセラレータ821が終了した後、オー
ディオメモリコントローラ823はアクセスをDMA8
25に戻し、そしてDMA825は(まず、アクティブ
とし)その残りの読出/書込コマンドを実行する。
【0073】アクセラレータ821およびDMA825
が異なるバンクをアクセスしているときには、アクセラ
レータ821およびDMA825の間におけるアクセス
転送のより良い性能を実現するために、インタリーブバ
ンクアクセス方法(interleaved bank access scheme)
が利用される。この方法では、オーディオメモリコント
ローラ823はDMAバンクをプリチャージ(終了)せ
ず、それを待機状態のままとする。オーディオメモリ1
26へのアクセスがその後アクセラレータ821に移さ
れる。アクセラレータ821がオーディオメモリ126
のそのアクセスを終了した後、オーディオメモリコント
ローラ823が(最初にアクティブする必要なしに)D
MA825の残りの読出/書込コマンドを実行する。
【0074】オーディオメモリ126のアクセスが51
2バイトの境界(異なる行)を越えるとき、オーディオ
メモリコントローラ823は、アクセスを終了させるた
めに現在の行をプリチャージし、アクセスを開始させる
ために次の行をアクティブにする。このことによってデ
ータの読出/書込のサイクル数を増大させることができ
る。上述のインタリーブバンクアクセス方法は、好まし
くは、DMAによる行を越えてのアクセスまたはアクセ
ラレータによる行を越えてのアクセスについては適用さ
れない。
【0075】アクセラレータ821は、読出動作のため
の3つのアドレスモード(4ビット,8ビットおよび1
6ビット)および書込動作のための1つのアドレスモー
ド(16ビット)を含む。異なる読出アドレスモードが
異なるフォーマット(たとえば、ADPCM,8ビット
PCM)の圧縮データを読み出しあるいは非圧縮データ
を読み出すために便利である。4ビット(ニブル:nibb
le)アドレスモードでは、データは「少しずつ(nibbl
e)」アドレスできる。各パラメータレジスタ(ビット
26からビット0)の最下位ビット(ビット0)の単位
はニブルであり、現在アドレスのb1,b0がデータラ
インのニブルを選択するために使用される。この実施例
のオーディオシステムのハードウェアはビット26から
ビット2までを用い、26ビットのオーディオメモリア
クセスアドレスとして「0」を連続させる。8ビット
(1バイト)アドレスモードはデータを「バイト」アド
レス可能である。各パラメータレジスタ(ビット26か
らビット0)の最下位ビット(ビット0)の単位はバイ
トであり、現在アドレスのビット0がデータラインのバ
イトを選択するために使用される。実施例のオーディオ
システムのハードウェアはビット25からビット1まで
を使用し、26ビットのオーディオメモリアクセスアド
レスとして「0」を連続させる。16ビット(1ワー
ド)アドレスモードでは、データは「ワード」アドレス
可能である。各パラメータレジスタ(26ビットから0
ビット)の最下位ビット(ビット0)の単位はワードで
あり、オーディオメモリにおけるデータがワード境界
(boundary)に割り当てられる。実施例のオーディオシ
ステムはビット24からビット0を使用し、26ビット
のオーディオメモリアクセスアドレスとして「0」を連
続させる。
【0076】オーディオメモリ,アクセラレータ821
およびオーディオDMA156の間のデータ変換は図1
7,図18および図19に示す通りである。
【0077】もちろん、アドレスモードの数やタイプは
例示のために用いられたものであり、この発明はこれに
限定されるものではない。アドレスモードはDMAコア
811によってプログラマブルである。
【0078】オーディオメモリDMA825の詳細が図
10に示される。オーディオメモリDMA825は3つ
のレジスタ900a−900cを含み、それらのレジス
タは主メモリの開始アドレス,オーディオメモリの開始
アドレス,およびDMA転送のためのブロック長および
方向をそれぞれ規定するために使用される。主プロセサ
110がこれらのレジスタをプログラムする。レジスタ
は32ビット幅であり、DMA転送方向はブロック長レ
ジスタの上位ワードのビット15によって特定される。
各側(すなわち、主メモリ112,オーディオメモリ1
26)の開始アドレスは32バイト境界に配置され、ブ
ロック長は32バイトの倍数である。DMA転送の間、
これらのレジスタは各メモリコントローラブロックのア
クセスによって修正される。不均一なバンド幅のメモリ
に橋を架けるために、オーディオメモリDMAに組み込
まれた1つのメモリコントローラサイズ(32バイト)
データバッファ950がある。
【0079】主メモリ110のオーディオメモリ126
への動作フローは次のステップを含む。
【0080】ステップ1:ブロック長レジスタ900c
の下位ワードへの書込がデータを転送する用意ができて
いるDMA825をトリガする。
【0081】ステップ2:DMA825がメモリコント
ローラ152(図3)へ読出要求を送り、次いで32バ
イトのデータがDMAデータバッファ950に来るのを
待つ。
【0082】ステップ3:32バイトのデータがデータ
バッファ950に移動すると、DMA825は調停回路
930(図9参照)へ書込要求を送り、そして転送を待
つ。主メモリアドレスレジスタ900aがまたアドレス
インクリメント回路960によって32だけ増加され
る。
【0083】ステップ4:調停回路930によってDM
A825がオーディオメモリ126へアクセスするのが
認められると、書込コマンドがオーディオメモリ126
へ送られるとともに、データが、32バイトが移動され
てしまう(バッファエンプティ)まで、DMAデータバ
ッファ950からオーディオメモリ126へバイト毎に
移動し始める。オーディオメモリアドレスがオーディオ
アドレスインクリメント回路962によって32だけ増
加され、ブロック長がブロック長ディクリメント回路9
64によって32だけ減少される。
【0084】ステップ5:ステップ2からステップ4
が、ブロック長が0になるまで繰り返される。この時点
において、DMA825が停止し、制御ロジック954
はフラグをセットし、主プロセサ110に割込を発生す
る。この割込はマスカブル(maskable)である。
【0085】オーディオメモリ126の主メモリ110
への動作フローは次のステップを含む。
【0086】ステップ1:ブロック長レジスタの下位ワ
ードへの書込がデータを転送する用意ができているDM
A825をトリガする。
【0087】ステップ2:DMA825が調停回路93
0(図9)へ読出要求を送り、次いで32バイトのデー
タを待つ。
【0088】ステップ3:調停回路930によってDM
A825がオーディオメモリ126へアクセスするのが
認められると、読出コマンドがオーディオメモリ126
へ送られるとともに、データが、32バイトが移動され
てしまうまで、オーディオメモリ126からDMAデー
タバッファ950へバイト毎に移動し始める。オーディ
オメモリアドレスレジスタのオーディオメモリアドレス
がオーディオアドレスインクリメント回路962によっ
て32だけ増加される。
【0089】ステップ4:32バイトのデータがDMA
データバッファ950に移動すると、DMA825はメ
モリコントローラ152へ書込要求を送る。32バイト
のデータが次いで、DMAデータバッファ950からメ
モリコントローラバスに移動される。その後、主メモリ
110のアドレスが主メモリアドレスインクリメント回
路960によって増加されるとともに、ブロック長がブ
ロック長ディクリメント回路964によって32だけ減
少される。
【0090】ステップ5:ステップ2からステップ4
が、ブロック長が0になるまで繰り返される。この時点
において、DMA825が停止し、制御ロジック954
はフラグをセットし、主プロセサ110に割込を発生す
る。この割込はマスカブルである。
【0091】各32バイトの転送の前に調停が実行され
る。メモリコントローラへのバス調停の優先順位は次の
ようである。
【0092】AIDMA805>DSPDMA819>
ARAMDMA825読出動作 DSPコア811がデータラインを読み出し始める前
に、開始および終了アドレス,現在アドレスの上位ワー
ド,および次いで現在アドレスの下位ワードが設定され
る。現在アドレスレジスタの下位ワードがDSPコア8
11によってロードされると、読出/書込動作モードが
現在アドレスレジスタの15ビットの上位ワードによっ
て設定される。読出モードが指定されると、3つのワー
ドのデータがオーディオメモリ126からデータライン
904a−904cに「プリフェッチ」される。このプ
リフェッチされたデータは現在アドレスおよび次に続く
2つのアドレスのためのデータに相当する。
【0093】現在アドレスの下位ワードがロードされて
からそのデータライン上にデータが利用できるようにな
るまで、典型的には、たとえば約10サイクルのレイテ
ンシがある。このレイテンシ期間中、アクセラレータ8
21は最初のデータが利用可能になるまで、DSPコア
811の動作を停止させる。レイテンシ期間中にまた、
パラメータレジスタ906a−906cへの読出および
書込が禁止される。
【0094】現在アドレスが、DSPがデータラインの
1つを読み出した後に1つだけインクリメントされる。
アクティブなデータラインの最後のデータが読み出され
ると、アクティブなデータラインが次のラインに切り換
えられ、1つのラインが今エンプティになったことを意
味する。後続アドレスのためのデータが次いでプリフェ
ッチされる。
【0095】ラインにおけるデータがDSPコア811
によって読み出されていてかつアドレスが開始アドレス
に等しければ、DSPコア811に対して割込が発生さ
れる。この割込はDSPコア811によってマスカブル
(maskable)である。
【0096】書込動作 DSP811がデータラインを書き込む前に、開始およ
び終了アドレス,現在アドレスの上位ワード,および次
いで現在アドレスの下位ワードがパラメータレジスタ9
06a−906cに設定される。現在アドレスレジスタ
の下位ワードがDSPコア811によってビット15=
1でロードされると、アクセラレータが書込動作モード
に設定される。データライン904a−904cにデー
タが利用できるようになると、アクセラレータ821は
そのラインのデータを、現在アドレスおよびそれに後続
するアドレスによって、データラインがエンプティにな
るまで、オーディオメモリ126にストアする。データ
ラインからのデータがオーディオメモリ126にストア
されかつ現在アドレスが終了アドレスに等しければ、ア
クセラレータ821はDSPコア811に対して割込を
発生する。この割込はDSPコア811によってマスカ
ブルである。書込動作中において、パラメータレジスタ
のどれかが読出/書込のためにアクセスされると、アク
セラレータ821は、データラインがエンプティになる
までDSPコアの動作を停止する。この実施例において
は、アクセラレータ821の書込モードは常に16ビッ
トである。
【0097】読出中におけるプリフェッチ動作は、特
に、音声サンプルがループ点を有するときに有用であ
る。予め記録された音声サンプル(たとえばピアノのよ
うな楽器の音声)は、典型的には、特別なフォーマット
(たとえば、WAVまたはAIFF)のファイルとして
ストアされる。上で注目したように、音声サンプルは図
15に示すように最初から終わりまで再生される(「ワ
ンショット再生」)か、もしくは音声サンプルは、図1
6に示すように、サンプルが終了したとき位置がループ
位置まで「巻き戻される」ように「ループされる」かも
しれない」(おそらくエンベロープ圧縮で)。ループ再
生はサンプルの一部を繰り返し再生することがサンプル
のサイズを減じるという限りにおいて有利である。しか
しながら、メモリアドレス回路がループ位置の点に更新
される間、サンプルを含むオーディオファイルにおいて
先の点まで巻き戻すことはファイルをアクセスするのに
結果的に遅延を生じる。特に、メモリからのデータの読
出は、メモリが現在アドレスの単純なインクリメントに
よってアドレス可能なときに最も効率的である。しかし
ながら、ループ戻りは、メモリアドレス回路をループ位
置にリセットし、そしてそのループ戻しを1回以上行う
場合にはメモリアドレス回路をそのループ位置へ繰り返
しリセットする必要がある。次の順次のファイルアドレ
スでのデータを読み出すためにアドレスレジスタをイン
クリメントすることは素早く実行され得るが、これらの
レジスタをリセットすることは長時間を要し、そして最
後に予めループ戻ししたアドレスでのデータの出力とル
ープ戻しのアドレスでのデータの出力との間にレイテン
シ(遅延)期間を結果的に生じる。このことはオーディ
オ出力に中断を生じるとともに、原形を損なうことにな
り、減少した数の音声が再生される。これらのすべてが
逆にプレーヤのゲーム経験に強い衝撃を与える。オーデ
ィオメモリ126からのデータのプリフェッチは、上で
述べたように、オーディオ出力に原形が損なわれる可能
性を減じる。アドレスレジスタがリセットされるときに
はプリフェッチされたデータが既に存在するのであるか
ら、オーディオディジタル信号プロセサは、メモリアド
レスがループ戻しアドレスにリセットされるときのレイ
テンシ期間中でもデータの読出を継続することができ
る。
【0098】もちろん、読出/書込バッファとしての3
つのデータラインの使用は一例であり限定ではなく、こ
の発明は、読出/書込バッファとしてのデータラインの
どんな特別な数にも限定されない。一般的にいえば、デ
ータラインの数はオーディオファイルのループ再生中に
アドレスレジスタを再設定するに要するレイテンシをマ
スクするに十分な量のプリフェッチを可能にすれば足り
る。さらに、この発明が上ではループ再生に関連するレ
イテンシの期間において説明されたが、プリフェッチ技
術は、オーディオメモリからデータを読み出すための他
の動作に関連するレイテンシをマスクするためにも適用
できる。
【0099】図11および図12は音声を再生するため
のデータフローおよび制御フローをそれぞれ図解する。
図11に示すように、音声サンプルは大容量記憶媒体6
2から周辺(I/O)コントローラ162を介して主メ
モリ112に読み込まれ、かつその主メモリ112から
ARAMDMA825を介してオーディオメモリ126
に読み込まれる。音声サンプルはアクセラレータ821
を介してDSPコア811によって読み出され、このD
SPコア811はその音声サンプルを処理/ミックスす
る。処理/ミックスされた音声サンプルは、主メモリ1
12内にバッファされ、次いで、オーディオコーデック
122を介してのスピーカ61Lおよび61Rへの出力
のために、オーディオインタフェースFIFO807に
転送される。図12に示すように、ゲームアプリケーシ
ョンは音声の必要性を最終的に指令する。このゲームア
プリケーションはオーディオシステム(主プロセサ)実
行時アプリケーションへのコールをし、その実行時アプ
リケーションはオーディオDSP156のためのコマン
ドリストを発生する。このコマンドリストを実行する際
に、オーディオDSP156は適宜の音声サンプルを抽
出し、それを必要に応じて処理する。
【0100】音楽合成のためのデータおよび制御フロー
は図11に示す音声サンプルについてのそれと同様であ
る。大容量記憶媒体62からの楽器波形テーブルが主メ
モリ112を介してオーディオメモリ126にストアさ
れる。オーディオDSP156は、オーディオシステム
(主プロセサ)実行時アプリケーションによって発生さ
れたコマンドを受け取ると、必要な楽器サンプルを抽出
し、それらを処理しかつミックスし、得られる結果を主
メモリ112にストアする。その後、その結果がオーデ
ィオコーデック122を介してのスピーカ61Lおよび
61Rへの出力のためにオーディオインタフェースFI
FO807に転送される。オーディオシステム(主プロ
セサ)実行時アプリケーションによって発生されたコマ
ンドは楽譜によって駆動され、その楽譜は大容量記憶媒
体62から主メモリ112に読み込まれ、そしてゲーム
のコマンドに従ってオーディオシステム(主プロセサ)
実行時アプリケーションによって処理されかつ順番に配
列される。
【0101】オーディオシステム(主プロセサ)実行時
アプリケーションはまたソフトウェアストリームを提供
するためにオーディオトラックの再生およびミキシング
を管理する。ソフトウェアストリームは1つ以上のオー
ディオトラックの同時再生を許容し、或る程度の双方向
性(インタラクティビティ)を提供する。たとえばゲー
ムが、たとえば1つのトラックから他のトラックにフェ
ードインしてプレーヤの気分に影響を与える。一般的に
は、異なるオーディオトラックが個々の音声サンプルと
してオーディオメモリ126にバッファされる。オーデ
ィオDSP156はそしてトラックを引き出しそれらを
他の音声としてミックスする。
【0102】実行時オーディオライブラリは、オーディ
オDSP156のリソース使用法をモニタし、そしてそ
れに従って音声割付をダイナミックに制限するリソース
管理アルゴリズムを含む。このことによって、不正なオ
ーディオ出力が結果的に生じることになるオーディオD
SP156の過負荷を防止する。好ましくは、リソース
管理アルゴリズムはスムーズで連続的なオーディオを確
保するために、最悪値メモリアクセスレイテンシを想定
する。たとえば、各音声のミキシングおよび処理要求に
依存して、64までの音声が支持され得る。
【0103】互換性のある他の実施例 上述のシステム50は上で述べた家庭用ビデオゲームコ
ンソールの構成以外としても実現できる。たとえば、或
るものは、システム50をエミュレートする異なる構成
を有するプラットフォームもしくはそれと同等のものに
おいて、システム50のために書かれたグラフィクスア
プリケーションや他のソフトウェアを実行させることが
できる。もし、他のプラットフォームがシステム50の
いくつかのもしくはすべてのハードウェアおよびソフト
ウェアリソースをエミュレートしシミュレートしおよび
/または提供することができれば、その他のプラットフ
ォームはそのソフトウェアを成功裏に実行することがで
きる。
【0104】一例として、エミュレータがシステム50
のハードウェアおよび/またはソフトウェア構成(プラ
ットフォーム)とは異なるハードウェアおよび/または
ソフトウェア構成(プラットフォーム)を提供できる。
そのエミュレータシステムは、それのためにアプリケー
ションソフトウェアが書かれているシステムのいくつか
のもしくはすべてのハードウェアおよび/またはソフト
ウェアコンポーネンツをエミュレートしもしくはシミュ
レートするソフトウェアおよび/またはハードウェアコ
ンポーネンツを含む。たとえば、エミュレータシステム
はパソコンのような汎用ディジタルコンピュータを含
み、それはシステム50のハードウェアおよび/または
ファームウェアをシミュレートするソフトウェアエミュ
レータプログラムを実行する。上述のオーディオシステ
ムのDSP処理がパソコンによってエミュレートされ得
る。
【0105】或る汎用ディジタルコンピュータ(たとえ
ばIBMやマッキントッシュのパソコンおよびそれらの
同等物)は、ダイレクトX(DirectX)または他の標準的
な3DグラフィクスコマンドAPIsに従った3Dグラ
フィクスパイプラインを提供する3Dグラフィクスカー
ドを備える。それらはまた、音声コマンドの標準的なセ
ットに基づいて高品質のステレオ音声を提供するステレ
オ音声カードを備える。エミュレータソフトウェアを実
行するそのようなマルチメディアのハードウェアを備え
るパソコンは、システム50のグラフィクスおよび音声
性能とほぼ等しい十分な性能を有する。エミュレータソ
フトウェアはパソコンプラットフォーム上のハードウェ
アリソースを制御して、それのためにゲームプログラマ
がゲームソフトウェアを書いた家庭用ビデオゲームコン
ソールプラットフォームの処理,3Dグラフィクス,音
声,周辺および他の能力をシミュレートする。
【0106】図13はホストプラットフォーム120
1,エミュレータコンポーネント1303および記憶媒
体62上のゲームソフトウェア実行可能バイナリ映像を
用いる全体のエミュレーション処理を図解する。ホスト
1201は、たとえばパソコン,ビデオゲームコンソー
ルあるいは十分な計算力を有する任意の他のプラットフ
ォームのような汎用または特定目的ディジタル計算装置
である。エミュレータ1303はそのホストプラットフ
ォーム1201上で走るソフトウェアおよび/またはハ
ードウェアであり、記憶媒体62からのコマンド,デー
タおよび他の情報のそのホスト1201によって実行可
能な形態へのリアルタイム変換を行う。たとえば、エミ
ュレータ1303は記憶媒体62からシステム50によ
って実行されるように意図された「ソース」であるバイ
ナリ映像プログラム命令を取り込み、これらのプログラ
ム命令をホスト1201によって実行されもしくは処理
され得るターゲットとなる形態に変換する。
【0107】一例として、ソフトウェアがIBMパワー
PCまたは他の特定のプロセサを用いるプラットフォー
ム上での実行のために書かれかつホスト1201が異な
る(たとえばインテル)プロセサを用いるパソコンであ
る場合、エミュレータ1203は記憶媒体1305から
の1つのもしくは一連のバイナリ映像プログラム命令を
取り込み、これらのプログラム命令を1つまたはそれ以
上の同等のインテルのバイナリ映像プログラム命令に変
換する。エミュレータ1203はまたグラフィクス/オ
ーディオプロセサ114によって処理されるように意図
されたグラフィクスコマンドおよびオーディオコマンド
を取り込みかつ/あるいは生成し、そしてホスト120
1上で利用可能なハードウェアおよび/またはソフトウ
ェアグラフィクス/オーディオ処理リソースによって処
理され得る形態にこれらのコマンドを変換する。一例と
して、エミュレータ1303はホスト1201の特別な
グラフィクスおよび/または音声ハードウェア(たとえ
ば標準的なダイレクトX,オープンGLおよび/または
音声APIs)によって処理され得るコマンドにこれら
のコマンドを変換する。
【0108】上で述べたビデオゲームシステムのいくつ
かのもしくはすべての特徴を与えるために用いられるエ
ミュレータ1303は、また、エミュレータを使ってゲ
ームを走らせている種々のオプションおよびスクリーン
モードの選択を簡単化しもしくは自動化するグラフィッ
クユーザインタフェース(GUI)を備える。一例にお
いて、そのようなエミュレータ1303はさらにそのソ
フトウェアが本来的に目的とされたホストプラットフォ
ームに比べてより増強された機能性を含むこともでき
る。
【0109】図14はエミュレータ1303で用いるに
適したエミュレーションホストシステム1201を図解
的に示す。このシステム1201は処理ユニット120
3およびシステムメモリ1205を含む。システムバス
1207がシステムメモリ1205を含む種々のシステ
ムコンポーネンツを処理ユニット1203に結合する。
システムバス1207は多様なバスアーキテクチャのい
ずれかを用いるメモリバスもしくはメモリコントロー
ラ,周辺バスおよびローカルバスを含むいくつかのタイ
プのバス構造の任意のものである。システムメモリ12
07はROM1252およびRAM1254を含む。起
動中においてのようにパソコンシステム1201中のエ
レメント(要素)間に情報を伝送する手助けをする基本
ルーチンを含む基本入力/出力システム(BIOS)1
256がROM1252中にストアされる。システム1
201はさらに種々のドライブおよび関連のコンピュー
タ読出可能な媒体を含む。ハードディスクドライブ12
09が(典型的には固定の)磁気ハードディスク121
1から読み出しそれへ書き込む。付加的な(たぶんオプ
ションとしての)磁気ディスクドライブ1213が着脱
可能な「フロッピィ」または他の磁気ディスク1251
から読み出しかつそれへ書き込む。光ディスクドライブ
1217はCD−ROMあるいは他の光学媒体のような
着脱自在な光ディスク1219から読み出しかつそれへ
書き込む。ハードディスクドライブ1209および光デ
ィスクドライブ1217は、ハードディスクドライブイ
ンタフェース1221および光ディスクドライブインタ
フェース1225によって、システムバス1207にそ
れぞれ接続される。これらのドライブおよびその関連す
るコンピュータ読出可能な媒体は、パソコンシステム1
201のためのコンピュータ読出可能な命令,データ構
造,プログラムモジュール,ゲームプログラムおよび他
のデータの不揮発性の記憶媒体を提供する。他の構成で
は、コンピュータによってアクセス可能なデータをスト
アすることができる他のタイプのコンピュータ読出可能
な媒体(たとえば磁気カセット,フラッシュメモリカー
ド,ディジタルビデオディスク,ベルヌーイカートリッ
ジ,RAM,ROMあるいはその他のもの)がまた使用
できる。
【0110】エミュレータ1303を含む多数のプログ
ラムモジュールがハードディスク1211,着脱可能な
磁気ディスク1215,光ディスク1219および/ま
たはシステムメモリ1205のROM1252および/
またはRAM1254にストアされ得る。このようなプ
ログラムモジュールはグラフィクス/音声APIs,1
つ以上のアプリケーションプログラム,他のプログラム
モジュール,プログラムデータおよびゲームデータを提
供するオペレーティングシステム(OS)を含む。ユー
ザは、キーボード1227,ポインティングデバイス1
229,マイクロフォン,ジョイスティック,ゲームコ
ントローラ,衛星アンテナ(satellite dish),スキャナ
あるいはその他のもののような入力デバイスを通して、
パソコンシステム1201にコマンドおよび情報を入力
することができる。これらのそして他の入力デバイス
は、システムバス1207に結合されたシリアルポート
インタフェース1231を通して処理ユニット1203
に接続され得るが、パラレルポート,ゲームポートファ
イヤワイヤバス(Fire Wire)もしくはユニバーサルシリ
アルバス(USB)のような他のインタフェースによっ
て接続されてもよい。モニタまたは他のタイプの表示デ
バイスがまたビデオアダプタ1235のようなインタフ
ェースを介してシステムバス1207に接続される。
【0111】システム1201はモデム1154または
インターネットのようなネットワーク1152を通して
の通信を確立するための他のネットワークインタフェー
ス手段を含む。内蔵もしくは外付けであってよいモデム
1154はシリアルポートインタフェース1231を介
してシステムバス123に接続される。システム120
1がローカルエリアネットワーク1158を介して遠隔
コンピュータ装置1150(たとえば他のシステム12
01)と通信するのを許容するために、ネットワークイ
ンタフェース1156がまた設けられてもよい(もしく
はそのような通信はダイヤルアップもしくは他の通信手
段のようなワイドエリアネットワーク1152もしくは
他の通信経路を介してもよい)。システム1201はプ
リンタのような周辺出力装置および他の標準的な周辺装
置を含む。
【0112】一例では、ビデオアダプタ1235は、マ
イクロソフト(Microsoft)のダイレクトX7.0、また
は他のバージョンのような標準的な3Dグラフィクスア
プリケーションプログラマインタフェースに基づいて発
行された3Dグラフィクスコマンドに応答して、高速の
3Dグラフィクスレンダリングを提供する3Dグラフィ
クスパイプラインチップセットを含んでもよい。1組の
スピーカ1237はまた、バス1207によって与えら
れる音声コマンドに基づいて高品質ステレオ音声を生成
するハードウェアおよび埋め込みソフトウェアを提供す
る従来の「音声カード」のような音声生成インタフェー
スを介して、システムバス1207に接続される。これ
らのハードウェア能力によって記憶媒体1305中にス
トアされているソフトウェアを再生するためにシステム
1201に十分なグラフィクスおよび音声の速度性能を
与えることができる。
【0113】上で述べたビデオゲームシステムのいくつ
かのもしくはすべての特徴を与えるために使用されるエ
ミュレータ1303は、また、そのエミュレータを用い
て実行しているゲームのための種々のオプションおよび
スクリーンモードの選択を単純化しもしくは自動化する
グラフィックユーザインタフェース(GUI)を備えて
もよい。一例として、そのようなエミュレータ1303
は本来的にそのソフトウェアを意図していたホストプラ
ットフォームに比べてより増強された機能性を含んでい
てもよい。
【0114】最も現実的かつ好ましい実施例であると現
在考えられているものに関連してこの発明が説明された
が、この発明は開示された実施例に限定されるものでは
なく、逆に、特許請求の範囲内に含まれる種々の変形例
や等価的な構成をカバーするように意図されていること
を理解されたい。
【図面の簡単な説明】
【図1】図1はインタラクティブコンピュータグラフィ
クスシステムの実施例を示す全体図である。
【図2】図2は図1実施例のコンピュータグラフィクス
システムのブロック図である。
【図3】図3は図2に示す実施例のグラフィクス/オー
ディオプロセサのブロック図である。
【図4】図4は図3に示す実施例の3Dグラフィクスプ
ロセサのブロック図である。
【図5】図4のグラフィクス/オーディオプロセサの例
示的な論理フロー図である。
【図6】図6は図3に示すオーディオDSP156,オ
ーディオメモリインタフェース158およびオーディオ
インタフェース/ミキサ160をより詳細に示すブロッ
ク図である。
【図7】図7はオーディオDSP156の処理ステップ
を示す。
【図8】図8はアクセラレータ821を示すブロック図
である。
【図9】図9はオーディオメモリコントローラ823を
示す詳細ブロック図である。
【図10】図10はオーディオメモリDMA825を示
す詳細ブロック図である。
【図11】図11は音声再生のためのデータフローおよ
び制御フローをそれぞれ示す図解図である。
【図12】図12は音声再生のためのデータフローおよ
び制御フローをそれぞれ示す図解図である。
【図13】図13は他の互換性のある一実施例を示す図
解図である。
【図14】図14は他の互換性のある他の実施例を示す
図解図である。
【図15】図15はワンショット再生を示す図解図であ
る。
【図16】図16はループ再生を示す図解図である。
【図17】図17は4ビットアドレスモードにおけるオ
ーディオメモリ,データライン,およびオーディオDS
Pのデータを示す図解図である。
【図18】図18は8ビットアドレスモードにおけるオ
ーディオメモリ,データライン,およびオーディオDS
Pのデータを示す図解図である。
【図19】図19は16ビットアドレスモードにおける
オーディオメモリ,データライン,およびオーディオD
SPのデータを示す図解図である。
【符号の説明】
50 …インタラクティブ3Dコンピュータグラフィク
スシステム 54 …主ユニット 110 …主プロセサ 112 …主メモリ 114 …グラフィクス/オーディオプロセサ 126 …オーディオメモリ(ARAM) 156 …オーディオDSP 821 …アクセラレータ 823 …ARAMコントローラ 825 …ARAMDMA 902 …後続アドレス発生回路 904a−904c …データライン 906a−906c …パラメータレジスタ 926a …内部オーディオメモリ 926b …拡張オーディオメモリ

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】音声サンプルをストアするメモリ、 音声サンプルを処理するためのオーディオ信号プロセ
    サ、 第1アドレスから第2アドレスまでアドレスしかつ次い
    でその第1アドレスと第2アドレスとの間の第3アドレ
    スまで1回以上ループして戻るようにメモリをアドレス
    して、音声サンプルを読み出すアドレス回路、および アドレス回路が第3アドレスへループして戻る間のメモ
    リアクセスのレイテンシを隠すために、現在アドレスお
    よび1つ以上の後続アドレスをストアするためのプリフ
    ェッチ記憶領域を備える、オーディオシステム。
  2. 【請求項2】アドレス回路はメモリからオーディオデー
    タを読み出すために複数の異なるアドレスモードで動作
    可能である、請求項1記載のオーディオシステム。
  3. 【請求項3】アドレスモードの1つは4ビットアドレス
    モードである、請求項2記載のオーディオシステム。
  4. 【請求項4】アドレスモードの1つは8ビットアドレス
    モードである、請求項2記載のオーディオシステム。
  5. 【請求項5】アドレスモードの1つは16ビットアドレ
    スモードである、請求項2記載のオーディオシステム。
  6. 【請求項6】アドレス回路は4ビットアドレスモード,
    8ビットアドレスモードおよび16ビットアドレスモー
    ドの1つで動作可能である、請求項2記載のオーディオ
    システム。
  7. 【請求項7】アドレス回路は、開始アドレスレジスタ,
    終了アドレスレジスタおよび現在アドレスレジスタを含
    む、請求項1記載のオーディオシステム。
  8. 【請求項8】開始アドレスレジスタ,終了アドレスレジ
    スタおよび現在アドレスレジスタはオーディオ信号プロ
    セサによって読み出され/書き込まれ得る、請求項7記
    載のオーディオシステム。
  9. 【請求項9】アドレス回路は、開始アドレスレジスタ,
    終了アドレスレジスタおよび現在アドレスレジスタの内
    容に基づいてメモリをアドレスするためのアドレスを発
    生するアドレス発生回路をさらに含む、請求項7記載の
    オーディオシステム。
  10. 【請求項10】プリフェッチ記憶領域はFIFOとして
    動作する、請求項1記載のオーディオシステム。
  11. 【請求項11】プリフェッチ記憶領域は現在アドレス以
    後の2つの次のアドレスについてプリフェッチデータを
    ストアする、請求項1記載のオーディオシステム。
  12. 【請求項12】現在アドレスレジスタはメモリに対する
    読出し/書込みアクセスを判断するビットを含む、請求
    項1記載のオーディオシステム。
  13. 【請求項13】プリフェッチ記憶領域はFIFOとして
    形成された複数のデータラインを含む、請求項1記載の
    オーディオシステム。
  14. 【請求項14】プリフェッチ記憶領域は3つのデータラ
    インである、請求項13記載のオーディオシステム。
  15. 【請求項15】オーディオ信号プロセサによって処理す
    るためにメモリからオーディオサンプルを読み出すため
    の方法であって、 オーディオサンプルを読み出すために、第1アドレスか
    ら第2アドレスまでアドレスしかつ次いでその第1アド
    レスと第2アドレスとの間の第3アドレスまで1回以上
    ループして戻るようにメモリをアドレスし、そして第3
    アドレスへループして戻る間にメモリアクセスのレイテ
    ンシを隠すために現在アドレスおよび1つ以上の後続ア
    ドレスをストアする、方法。
  16. 【請求項16】メモリは複数の異なるアドレスモードで
    アドレスされる、請求項15記載の方法。
  17. 【請求項17】アドレスモードの1つは4ビットアドレ
    スモードである、請求項15記載の方法。
  18. 【請求項18】アドレスモードの1つは8ビットアドレ
    スモードである、請求項15記載の方法。
  19. 【請求項19】アドレスモードの1つは16ビットアド
    レスモードである、請求項15記載の方法。
JP2000394136A 2000-08-23 2000-12-26 オーディオ信号をプリフェッチするための方法および装置 Expired - Lifetime JP5025849B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/643984 2000-08-23
US09/643,984 US6643744B1 (en) 2000-08-23 2000-08-23 Method and apparatus for pre-fetching audio data

Publications (2)

Publication Number Publication Date
JP2002169596A true JP2002169596A (ja) 2002-06-14
JP5025849B2 JP5025849B2 (ja) 2012-09-12

Family

ID=24582957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000394136A Expired - Lifetime JP5025849B2 (ja) 2000-08-23 2000-12-26 オーディオ信号をプリフェッチするための方法および装置

Country Status (2)

Country Link
US (1) US6643744B1 (ja)
JP (1) JP5025849B2 (ja)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001028222A2 (en) * 1999-10-12 2001-04-19 Perception Digital Technology (Bvi) Limited Digital multimedia jukebox
US20050114136A1 (en) * 2003-11-26 2005-05-26 Hamalainen Matti S. Manipulating wavetable data for wavetable based sound synthesis
TWI252468B (en) * 2004-02-13 2006-04-01 Mediatek Inc Wavetable synthesis system with memory management according to data importance and method of the same
US8515741B2 (en) * 2004-06-18 2013-08-20 Broadcom Corporation System (s), method (s) and apparatus for reducing on-chip memory requirements for audio decoding
US7587310B2 (en) * 2004-08-30 2009-09-08 Lsi Corporation Sound processor architecture using single port memory unit
US7912728B2 (en) * 2006-11-30 2011-03-22 Broadcom Corporation Method and system for handling the processing of bluetooth data during multi-path multi-rate audio processing
US7934058B2 (en) * 2006-12-14 2011-04-26 Microsoft Corporation Predictive caching of assets to improve level load time on a game console
CN101681624A (zh) * 2007-05-21 2010-03-24 松下电器产业株式会社 声音编码以及再生装置
US8266381B2 (en) * 2008-02-01 2012-09-11 International Business Machines Corporation Varying an amount of data retrieved from memory based upon an instruction hint
US8140771B2 (en) * 2008-02-01 2012-03-20 International Business Machines Corporation Partial cache line storage-modifying operation based upon a hint
US8255635B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Claiming coherency ownership of a partial cache line of data
US8250307B2 (en) 2008-02-01 2012-08-21 International Business Machines Corporation Sourcing differing amounts of prefetch data in response to data prefetch requests
US8595443B2 (en) * 2008-02-01 2013-11-26 International Business Machines Corporation Varying a data prefetch size based upon data usage
US8117401B2 (en) * 2008-02-01 2012-02-14 International Business Machines Corporation Interconnect operation indicating acceptability of partial data delivery
US8108619B2 (en) * 2008-02-01 2012-01-31 International Business Machines Corporation Cache management for partial cache line operations
US20090198910A1 (en) * 2008-02-01 2009-08-06 Arimilli Ravi K Data processing system, processor and method that support a touch of a partial cache line of data
US8117390B2 (en) * 2009-04-15 2012-02-14 International Business Machines Corporation Updating partial cache lines in a data processing system
US8176254B2 (en) * 2009-04-16 2012-05-08 International Business Machines Corporation Specifying an access hint for prefetching limited use data in a cache hierarchy
US8140759B2 (en) * 2009-04-16 2012-03-20 International Business Machines Corporation Specifying an access hint for prefetching partial cache block data in a cache hierarchy
US9084058B2 (en) 2011-12-29 2015-07-14 Sonos, Inc. Sound field calibration using listener localization
US20130322551A1 (en) * 2011-12-29 2013-12-05 Jose M. Rodriguez Memory Look Ahead Engine for Video Analytics
US9225307B2 (en) 2012-06-28 2015-12-29 Sonos, Inc. Modification of audio responsive to proximity detection
US9690271B2 (en) 2012-06-28 2017-06-27 Sonos, Inc. Speaker calibration
US9706323B2 (en) 2014-09-09 2017-07-11 Sonos, Inc. Playback device calibration
US9106192B2 (en) 2012-06-28 2015-08-11 Sonos, Inc. System and method for device playback calibration
US9668049B2 (en) 2012-06-28 2017-05-30 Sonos, Inc. Playback device calibration user interfaces
US9690539B2 (en) 2012-06-28 2017-06-27 Sonos, Inc. Speaker calibration user interface
US9219460B2 (en) 2014-03-17 2015-12-22 Sonos, Inc. Audio settings based on environment
US9031244B2 (en) 2012-06-29 2015-05-12 Sonos, Inc. Smart audio settings
US8995687B2 (en) 2012-08-01 2015-03-31 Sonos, Inc. Volume interactions for connected playback devices
US9195432B2 (en) 2013-02-26 2015-11-24 Sonos, Inc. Pre-caching of audio content
US9285886B2 (en) 2013-06-24 2016-03-15 Sonos, Inc. Intelligent amplifier activation
US9298415B2 (en) 2013-07-09 2016-03-29 Sonos, Inc. Systems and methods to provide play/pause content
US9323404B2 (en) 2013-09-30 2016-04-26 Sonos, Inc. Capacitive proximity sensor configuration including an antenna ground plane
US9223353B2 (en) 2013-09-30 2015-12-29 Sonos, Inc. Ambient light proximity sensing configuration
US9122451B2 (en) 2013-09-30 2015-09-01 Sonos, Inc. Capacitive proximity sensor configuration including a speaker grille
US9264839B2 (en) 2014-03-17 2016-02-16 Sonos, Inc. Playback device configuration based on proximity detection
WO2015142230A1 (en) * 2014-03-19 2015-09-24 Telefonaktiebolaget L M Ericsson (Publ) Enabling efficient pre-loading of data for a network client
US10127006B2 (en) 2014-09-09 2018-11-13 Sonos, Inc. Facilitating calibration of an audio playback device
US9910634B2 (en) 2014-09-09 2018-03-06 Sonos, Inc. Microphone calibration
US9952825B2 (en) 2014-09-09 2018-04-24 Sonos, Inc. Audio processing algorithms
US9891881B2 (en) 2014-09-09 2018-02-13 Sonos, Inc. Audio processing algorithm database
WO2016172593A1 (en) 2015-04-24 2016-10-27 Sonos, Inc. Playback device calibration user interfaces
US10664224B2 (en) 2015-04-24 2020-05-26 Sonos, Inc. Speaker calibration user interface
US9538305B2 (en) 2015-07-28 2017-01-03 Sonos, Inc. Calibration error conditions
CN111314826B (zh) 2015-09-17 2021-05-14 搜诺思公司 由计算设备执行的方法及相应计算机可读介质和计算设备
US9693165B2 (en) 2015-09-17 2017-06-27 Sonos, Inc. Validation of audio calibration using multi-dimensional motion check
US9743207B1 (en) 2016-01-18 2017-08-22 Sonos, Inc. Calibration using multiple recording devices
US10003899B2 (en) 2016-01-25 2018-06-19 Sonos, Inc. Calibration with particular locations
US11106423B2 (en) 2016-01-25 2021-08-31 Sonos, Inc. Evaluating calibration of a playback device
US9860662B2 (en) 2016-04-01 2018-01-02 Sonos, Inc. Updating playback device configuration information based on calibration data
US9864574B2 (en) 2016-04-01 2018-01-09 Sonos, Inc. Playback device calibration based on representation spectral characteristics
US9763018B1 (en) 2016-04-12 2017-09-12 Sonos, Inc. Calibration of audio playback devices
US9794710B1 (en) 2016-07-15 2017-10-17 Sonos, Inc. Spatial audio correction
US9860670B1 (en) 2016-07-15 2018-01-02 Sonos, Inc. Spectral correction using spatial calibration
US10372406B2 (en) 2016-07-22 2019-08-06 Sonos, Inc. Calibration interface
US10459684B2 (en) 2016-08-05 2019-10-29 Sonos, Inc. Calibration of a playback device based on an estimated frequency response
US11138960B2 (en) 2017-02-14 2021-10-05 Cinesamples, Inc. System and method for a networked virtual musical instrument
US11537264B2 (en) * 2018-02-09 2022-12-27 Sony Interactive Entertainment LLC Methods and systems for providing shortcuts for fast load when moving between scenes in virtual reality
US10802983B2 (en) * 2018-05-31 2020-10-13 Vmware, Inc. Programmable block storage addressing using embedded virtual machines
US11206484B2 (en) 2018-08-28 2021-12-21 Sonos, Inc. Passive speaker authentication
US10299061B1 (en) 2018-08-28 2019-05-21 Sonos, Inc. Playback device calibration
US10734965B1 (en) 2019-08-12 2020-08-04 Sonos, Inc. Audio calibration of a portable playback device
US12090403B1 (en) * 2023-11-17 2024-09-17 Build A Rocket Boy Games Ltd. Audio signal generation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302083A (ja) * 1994-05-06 1995-11-14 Yamaha Corp 音声信号発生装置
JPH08106286A (ja) * 1994-10-05 1996-04-23 Kawai Musical Instr Mfg Co Ltd 自動演奏装置
JPH11219175A (ja) * 1998-01-30 1999-08-10 Kawai Musical Instr Mfg Co Ltd 自動演奏装置
JP2000221978A (ja) * 1999-01-28 2000-08-11 Roland Corp 波形再生装置

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4951246A (en) * 1989-08-08 1990-08-21 Cray Research, Inc. Nibble-mode dram solid state storage device
US5239654A (en) 1989-11-17 1993-08-24 Texas Instruments Incorporated Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
US5342990A (en) 1990-01-05 1994-08-30 E-Mu Systems, Inc. Digital sampling instrument employing cache-memory
JPH04172533A (ja) * 1990-11-07 1992-06-19 Toshiba Corp 電子計算機
JP2692384B2 (ja) * 1990-12-29 1997-12-17 日本電気株式会社 アドレス生成回路
JP3158370B2 (ja) 1991-07-12 2001-04-23 ソニー株式会社 ディスクデータ再生装置
WO1994010641A1 (en) 1992-11-02 1994-05-11 The 3Do Company Audio/video computer architecture
US5553220A (en) 1993-09-07 1996-09-03 Cirrus Logic, Inc. Managing audio data using a graphics display controller
CA2140850C (en) 1994-02-24 1999-09-21 Howard Paul Katseff Networked system for display of multimedia presentations
DE69525556T2 (de) 1994-03-21 2002-09-12 Avid Technology Inc Gerät und Verfahren ausgeführt auf einem Rechner für Echtzeit Multimedia Datenübertragung in einer verteilten Rechneranordnung
DE69535330T2 (de) 1994-09-14 2007-05-31 Intel Corporation, Santa Clara Caching-System mit Explitzer Folgeliste
US5659698A (en) * 1994-11-01 1997-08-19 Motorola, Inc. Method and apparatus for generating a circular buffer address in integrated circuit that performs multiple communications tasks
US6002411A (en) 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US5607356A (en) 1995-05-10 1997-03-04 Atari Corporation Interactive game film
WO1996041279A1 (en) 1995-06-07 1996-12-19 Advanced Micro Devices, Inc. Computer system having a dedicated multimedia engine including multimedia memory
US5753841A (en) 1995-08-17 1998-05-19 Advanced Micro Devices, Inc. PC audio system with wavetable cache
US5847304A (en) 1995-08-17 1998-12-08 Advanced Micro Devices, Inc. PC audio system with frequency compensated wavetable data
KR100371456B1 (ko) 1995-10-09 2004-03-30 닌텐도가부시키가이샤 삼차원화상처리시스템
US6331856B1 (en) 1995-11-22 2001-12-18 Nintendo Co., Ltd. Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
US5860076A (en) * 1996-01-11 1999-01-12 Alliance Semiconductor Corporation 48-bit wide memory architecture addressing scheme reconfigurable for 8-bit, 16-bit and 32-bit data accesses
JP3519199B2 (ja) 1996-02-06 2004-04-12 株式会社ソニー・コンピュータエンタテインメント 画像生成装置
TW332961B (en) 1996-02-09 1998-06-01 Sony Co Ltd Recording media
US5895469A (en) 1996-03-08 1999-04-20 Vlsi Technology, Inc. System for reducing access times for retrieving audio samples and method therefor
US5813027A (en) 1996-03-08 1998-09-22 Vlsi Technology, Inc. Method for storing and transferring wave table audio samples using a DSP cache, a link list structure, and compression
US5689080A (en) 1996-03-25 1997-11-18 Advanced Micro Devices, Inc. Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory which minimizes audio infidelity due to wavetable data access latency
US5763801A (en) 1996-03-25 1998-06-09 Advanced Micro Devices, Inc. Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory
US5809342A (en) 1996-03-25 1998-09-15 Advanced Micro Devices, Inc. Computer system and method for generating delay-based audio effects in a wavetable music synthesizer which stores wavetable data in system memory
KR100221028B1 (ko) 1996-07-23 1999-09-15 윤종용 그래픽 가속기 및 이를 이용한 메모리 프리패치 방법
US6047365A (en) 1996-09-17 2000-04-04 Vlsi Technology, Inc. Multiple entry wavetable address cache to reduce accesses over a PCI bus
US5977997A (en) 1997-03-06 1999-11-02 Lsi Logic Corporation Single chip computer having integrated MPEG and graphical processors
JP3681026B2 (ja) 1997-03-27 2005-08-10 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および方法
US6138224A (en) 1997-04-04 2000-10-24 International Business Machines Corporation Method for paging software wavetable synthesis samples
JP3546341B2 (ja) 1997-04-17 2004-07-28 株式会社日立製作所 多重ループ向けデータプリフェッチ方法およびプログラム生成方法
US5811706A (en) 1997-05-27 1998-09-22 Rockwell Semiconductor Systems, Inc. Synthesizer system utilizing mass storage devices for real time, low latency access of musical instrument digital samples
JP3384290B2 (ja) 1997-07-25 2003-03-10 ヤマハ株式会社 音源装置
US6016522A (en) 1997-11-13 2000-01-18 Creative Labs, Inc. System for switching between buffers when receiving bursty audio by computing loop jump indicator plus loop start address for read operations in selected buffer
US6124868A (en) 1998-03-24 2000-09-26 Ati Technologies, Inc. Method and apparatus for multiple co-processor utilization of a ring buffer
US6138183A (en) 1998-05-06 2000-10-24 Ess Technolgoy Inc. Transparent direct memory access
US6100461A (en) 1998-06-10 2000-08-08 Advanced Micro Devices, Inc. Wavetable cache using simplified looping
US6084170A (en) 1999-09-08 2000-07-04 Creative Technology Ltd. Optimal looping for wavetable synthesis

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302083A (ja) * 1994-05-06 1995-11-14 Yamaha Corp 音声信号発生装置
JPH08106286A (ja) * 1994-10-05 1996-04-23 Kawai Musical Instr Mfg Co Ltd 自動演奏装置
JPH11219175A (ja) * 1998-01-30 1999-08-10 Kawai Musical Instr Mfg Co Ltd 自動演奏装置
JP2000221978A (ja) * 1999-01-28 2000-08-11 Roland Corp 波形再生装置

Also Published As

Publication number Publication date
US6643744B1 (en) 2003-11-04
JP5025849B2 (ja) 2012-09-12

Similar Documents

Publication Publication Date Title
JP5025849B2 (ja) オーディオ信号をプリフェッチするための方法および装置
JP5149985B2 (ja) 機能拡張型メモリコントローラを備えるグラフィックス処理システム
KR100458395B1 (ko) 오디오 메모리에 데이터를 프리캐싱하는 방법과 장치
JP4757406B2 (ja) グラフィクスシステム
JP4808858B2 (ja) グラフィクスパイプラインおよびそれの同期化方法
JP4698893B2 (ja) 改良されたフォグ効果を提供するための方法、グラフィックスシステム、およびプログラム
JP4680412B2 (ja) 描画モードに基づいて隠面処理の順番を動的に再構成する方法および装置
JP4890638B2 (ja) グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置
JP4719363B2 (ja) 内部フレームバッファと主メモリ間でのコピーアウト変換を有するグラフィクスシステム
JP4691273B2 (ja) グラフィクス処理システムおよびエンボス型バンプマッピングを行う方法
JP4570766B2 (ja) 音声信号をミキシングするための方法および装置
JP2002063595A (ja) スケルトンアニメーションのステッチングハードウェアを有するグラフィクス装置
JP2001307128A (ja) 画像描画方法、画像描画装置、記録媒体及びプログラム
JP4658397B2 (ja) オーディオメモリ内のデータを予めキャッシュする方法及び装置
JP2001149639A (ja) 画像処理装置、画像生成方法および記憶媒体
CA2371367A1 (en) Method and apparatus for generating images
JP5020443B2 (ja) 共有リソースへのアクセス方法及び装置
JP5055470B2 (ja) サウンドプロセッサ
Modes GBA Reference

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100428

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110613

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110621

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20110916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120515

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120620

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5025849

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

EXPY Cancellation because of completion of term