專利名稱:在音頻存儲器中預緩存數(shù)據(jù)的方法和裝置的制作方法
技術領域:
本發(fā)明涉及一種存取音頻存儲器的方法和裝置,更具體地說,涉及在視頻游戲系統(tǒng)的音頻存儲器中預緩存非音頻相關數(shù)據(jù)的方法和裝置。
發(fā)明的背景和概要我們中有很多人看過含有非常逼真的恐龍、外星人、動畫玩具和其他奇異生物的影片。這些動畫片都是通過電腦圖形制作而成的。采用這些技術,電腦圖像能手能夠指定每個物體的具體模樣及其外貌應該怎樣隨時間的推移而變化,然后,電腦塑造這些物體的模型并將它們顯示在顯示器(例如,電視機或電腦屏幕)上。電腦負責執(zhí)行許多任務,以確保被顯示圖像的每個部分根據(jù)情景中每個物體的位置和方向(光看起來照射每個物體的方向、每個物體的表面結構和其他因素)而被著色和塑造的形狀。
由于電腦圖像生成很復雜,因此,電腦生成的三維圖像幾年前還主要局限于價格昂貴的專用飛行模擬器、高檔(high-end)圖形工作站和巨型計算機。公眾看到的電影和費用昂貴的電視廣告中由電腦系統(tǒng)生成的一些圖像,但是,大多數(shù)人不會與生成圖像的電腦進行實際的互動。隨著可以使用相對便宜的3D圖形平臺(例如,現(xiàn)在個人電腦可用的任天堂64和各種3D圖形卡),所有這些情況都已改變了?,F(xiàn)在,可以在家里或辦公室與相對便宜的電腦圖形系統(tǒng)作令人興奮的3D動畫和模擬互動。
交互式3D電腦圖形系統(tǒng)經(jīng)常用于視頻游戲。但是,“游戲經(jīng)歷”通常不只涉及視頻內容。例如,幾乎所有的游戲經(jīng)歷都涉及伴隨視頻內容的音頻內容。這里所描述的音頻系統(tǒng)能夠使聲音發(fā)射器被安置在三維空間中,并為一種產(chǎn)生生理聲學的3D音效的有功效的裝置提供一對揚聲器。音頻系統(tǒng)包括音頻存儲器(例如,用于存儲聲音取樣、儀器波形表、聲音蹤跡等以及從海量存儲裝置(例如,DVD)讀取的內容)。這些取樣、波形表、蹤跡等隨后由音頻數(shù)字信號處理器讀出和處理,以產(chǎn)生游戲的聲音內容。此內容被傳遞到主存儲器,隨后,從該主存儲器讀出該內容,以提供給一個譯碼器,并輸出到揚聲器。由于無需與試圖訪問主系統(tǒng)存儲器的其他資源(例如,圖形子系統(tǒng))進行競爭,分離的音頻存儲器改進了音頻處理電路對音頻數(shù)據(jù)的存取。
如這里進一步所描述的那樣,獨立的音頻存儲器還提供了一種可能性進一步增強了該系統(tǒng)有效地對所需訪問的數(shù)據(jù)資源進行訪問的能力。例如,DVI具有一個相對長的“等待時間”,即,響應于對數(shù)據(jù)的請求,DVD需要花費相當長的時間用于要返回的數(shù)據(jù)。所以,在需要數(shù)據(jù)前,可以預先取出來自DVI的動畫數(shù)據(jù)和被壓縮的圖形數(shù)據(jù)等,從而可以快速地將數(shù)據(jù)提供到需要這些數(shù)據(jù)的元件。音頻存儲器可以用作該“預先取出的”非音頻相關數(shù)據(jù)的高速緩沖存儲器。于是,當(例如)轉換(rendering)管道中需要數(shù)據(jù)時,采用DMA電路將數(shù)據(jù)傳遞到需要數(shù)據(jù)的主存儲器。如果合適,可以對傳遞到主存儲器的數(shù)據(jù)進行解壓縮。
這樣,根據(jù)本發(fā)明的一個方面,視頻游戲系統(tǒng)包括音頻數(shù)字信號處理器、主存儲器和與存儲由音頻數(shù)字信號處理器處理的音頻相關數(shù)據(jù)的主存儲器分離的音頻存儲器。存儲器存取電路讀取存儲在海量存儲裝置上的非音頻相關數(shù)據(jù),并將非音頻相關數(shù)據(jù)寫入音頻存儲器。該非音頻相關數(shù)據(jù)以后從音頻存儲器中讀出,并被寫入主存儲器,而無須由音頻數(shù)字信號處理器處理。
本發(fā)明的另一個方面是提供一種存取存儲在海量存儲裝置上的非音頻相關數(shù)據(jù)的方法,它包括提供與主存儲器分離的音頻存儲器,并在其內存儲由音頻數(shù)字信號處理器處理的音頻相關數(shù)據(jù)。從海量存儲裝置中讀取非音頻相關數(shù)據(jù),并將其寫入音頻存儲器。該非音頻相關數(shù)據(jù)以后從音頻存儲器中被讀取并被寫到主存儲器,而無須由音頻數(shù)字信號處理器進行處理。
附圖簡述通過下文中結合附圖對較佳實施例的詳細描述,讀者將會更好、更全面地理解本發(fā)明的各種特征與優(yōu)點。圖中,
圖1是一例交互式電腦圖像系統(tǒng)的整體視圖;圖2是圖1所示電腦圖形系統(tǒng)的方框圖;圖3是圖2中所示圖形與音頻處理器的方框圖;圖4是圖3中所示的3D圖形處理器的方框圖;圖5是圖4所示圖形與音頻處理器的示范邏輯流程圖;圖6是圖3中所示音頻DSP156、音頻存儲器接口158,以及音頻接口與混頻器160的更加詳細的方框圖;圖7A和7B分別示出了用于重現(xiàn)聲音的數(shù)據(jù)流和控制流;圖8示出了音頻DSP156的處理步驟;圖9是圖6中所示的存儲控制器823的詳細方框圖;圖10A是圖6中所示的音頻存儲器DMA825的詳細方框圖;圖10B是圖6中所示的DSPDMA819的詳細方框圖;圖10C是圖6中所示加速器821的詳細方框圖;以及圖11A和11B示出了另一例兼容結構。
發(fā)明實施例的詳細描述圖1繪出的是一例交互式3D電腦圖形系統(tǒng)50。可以使用系統(tǒng)50來進行具有有趣立體聲的交互式3D視頻游戲。它也可用于其他各種應用程序。
本例中,系統(tǒng)50能夠交互式地實時處理三維空間中的數(shù)字表述或模型。系統(tǒng)50可以從任何任意的觀察點來顯示世界的一部分或所有的內容。例如,系統(tǒng)50可以響應于來自手持控制器52a、52b或其他輸入裝置的實時輸入而交互式地改變觀察點。這使游戲者能夠通過世界內部或外部某人的眼睛來觀察世界。系統(tǒng)50可以用于不要求實時3D交互式顯示(例如,2D顯示生成和/或非交互式顯示)的應用程序,但是,可以非常迅速地使用顯示高質量的3D圖像的能力來創(chuàng)建很逼真、令人興奮的游戲或其他的圖像交互作用。
為了要使用系統(tǒng)50來進行視頻游戲或用于其他應用目的,用戶首先通過在主元件54與其彩色電視機56或其他顯示裝置之間連接一根電纜58。主元件54提供用于控制彩色電視機56的視頻信號和音頻信號。視頻信號是控制在電視屏幕59上顯示的圖像的信號,而音頻信號是通過電視立體聲擴音器61L、61R的聲音的回放。
用戶還需要將主元件54連接到一個電源。電源可以是一種傳統(tǒng)的交流(AC)適配器(未示出),它插入一個標準家庭墻壁插座內,并將住宅電流轉換成適于供給主元件54而電壓較低的直流信號。也可以使用電池。
用戶可以使用手持控制器52a、52b來控制主元件54。例如,可以使用控制60來指定電視機56上顯示的一個人物應該在三維(3D)空間內移動的方向(上或下,左或右,靠近或離開)??刂破?0還為其他的應用提供輸入(例如,菜單選擇、指針/光標控制等)??刂破?2可以有各種形式。本例中,所示的每個控制器都包括控制60(例如,操縱桿、按鈕和/或方向開關)。控制器52可以通過電纜或以無線的方式經(jīng)由電磁(例如,無線電或紅外線)波連接到主元件54。
要播放如游戲之類的應用程序,用戶須選擇存儲其想播放的視頻游戲或其他應用程序的一個合適的存儲介質62,并將該存儲介質插入主元件54中的狹槽64。例如,存儲介質62可以是一個特殊編碼和/或加密的光盤和/或磁盤。用戶可以操作電源開關66,打開主元件54,并使該主元件開始運行視頻游戲或其他建立在存儲介質62存儲的軟件基礎上的其他應用程序。用戶可以操作控制器52,以便向主元件54提供輸入。例如,操作一個控制60,可以啟動游戲或其他的應用程序。移動其他的控制60會使動畫人物在不同的方向上移動或改變用戶在3D空間中的觀察點。根據(jù)存儲在存儲介質62內的特定軟件,控制器52上的各種不同的控制60可以在不同的時間執(zhí)行不同的功能。
整個系統(tǒng)的示范電子結構圖2示出的是系統(tǒng)50的示例元件的方框圖。主要元件包括
●主處理器(CPU)110,●主存儲器112,和●圖形與音頻處理器114。
本例中,主處理器110(例如,一臺改進的“IBM PowerPC 750”)通過圖形與音頻處理器114從手持控制器52(和/或其他的輸入裝置)接收輸入。主處理器110交互式地對用戶輸入作出響應,并執(zhí)行由(例如)外部存儲介質62通過海量存儲存取裝置106(例如,光盤驅動器)提供的視頻游戲或其他程序。例如,在進行視頻游戲時,除了各種交互式功能和控制功能外,主處理器110還能夠進行沖突檢測和動畫處理。
本例中,主處理器110生成3D圖形和音頻命令,并將它們發(fā)送到圖形與音頻處理器114。圖形與音頻處理器114處理這些命令,在顯示器59上生成有趣的視覺圖像,并在立體聲揚聲器61R、61L或其他合適的發(fā)聲裝置上生成有趣的立體聲。
示例系統(tǒng)50包括視頻編碼器120,該編碼器從圖形與音頻處理器114接收圖像信號并將這些圖像信號轉換成適于在標準顯示裝置(如,電腦顯示器或家用彩色電視機56)上顯示的模擬和/或數(shù)字視頻信號。系統(tǒng)50還包括音頻編譯碼器(壓縮器/解壓縮器)122,它壓縮和解壓縮數(shù)字化音頻信號,并且可以按需要在數(shù)字的與模擬的音頻信令格式之間轉換。音頻編譯碼器122能夠通過緩沖器124接收音頻輸入,并將它們提供給用于處理(例如,與處理器生成和/或通過海量存儲存取裝置106的流動音頻輸出接收的其他音頻信號混合)的圖形與音頻處理器114。該例中的圖形與音頻處理器114能夠將音頻相關信息存儲在一個可執(zhí)行音頻任務的音頻存儲器126中。圖形與音頻處理器114將產(chǎn)生的音頻輸出信號提供給音頻編譯碼器122,用于解壓縮和轉換成模擬信號(例如,通過緩沖放大器128L、128R),以便它們可由揚聲器61L、61R重現(xiàn)。
圖形與音頻處理器114具有與系統(tǒng)50中各種附加裝置交流的能力。例如,變形數(shù)字總線130可用于與海量存儲存取裝置106和/或其他部件進行交流。串行外圍總線132可以與各種外圍裝置或其他裝置交流。這些裝置包括(例如)
●可編程只讀存儲器和/或實時時鐘134,●調制解調器136或其他網(wǎng)絡接口(可能將系統(tǒng)50連接到諸如互聯(lián)網(wǎng)或其他可下載或上傳程序指令和/或數(shù)據(jù)的數(shù)字網(wǎng)絡的電信網(wǎng)138),和●按塊擦除存儲器140。
外部串聯(lián)總線142可用于與附加的擴展存儲器144(例如,存儲卡)或其他裝置交換數(shù)據(jù)。連接器可用于將各種裝置連接到總線130、132、142上。
示例的圖形與音頻處理器圖3是一例圖形與音頻處理器114的方框圖。一個例子中的圖形與音頻處理器114可以是一個單芯片的ASIC(專用集成電路)。本例中,圖形與音頻處理器114包括●處理器接口150,●存儲器接口/控制器152,●3D圖形處理器154,●音頻數(shù)字信號處理器(DSP)156,●音頻存儲器接口158,●音頻接口和混頻器160,●外圍控制器162,和●顯示控制器164。
3D圖形處理器154執(zhí)行圖形處理任務。音頻數(shù)字信號處理器156執(zhí)行音頻處理任務。顯示控制器164從主存儲器112存取圖像信息,并將其提供給視頻編碼器120,用于在顯示裝置56上顯示。音頻接口和混頻器160與音頻編譯碼器122連接,也可以混合來自不同來源的音頻信號(例如,來自海量存儲存取裝置106的流動音頻信號、音頻DSP 156的輸出和通過音頻多媒體譯碼器122接收的外部音頻輸入)。處理器接口150在主處理器110和圖形與音頻處理器114之間提供數(shù)據(jù)與控制接口連接。
存儲器接口152在圖形與音頻處理器114和存儲器112之間提供數(shù)據(jù)與控制接口。本例中,主處理器110通過是圖形與音頻處理器114的一部分的處理器接口150和存儲器接口152來訪問主存儲器112。外圍控制器162在圖形與音頻處理器114和上述的各種外圍裝置之間提供數(shù)據(jù)與控制接口。音頻存儲器接口158提供與音頻存儲器126的接口連接。
示例圖形管道圖4示出的是一個圖形處理系統(tǒng),它包括用作圖3所示3D圖形處理器154的更加詳細的視圖。3D圖形處理器154包括一個命令處理器200和一個3D圖形管道180。主處理器110將數(shù)據(jù)流(例如,圖形命令流和顯示清單)傳遞到命令處理器200。主處理器110有一個兩級高速緩存器115,以使存儲器的延遲為最小,它還有一個寫入收集緩沖器111,用于以圖形與音頻處理器114為目標的未緩存的數(shù)據(jù)流。寫入收集緩沖器111將部分高速緩沖存儲器存儲界收集到全部的高速緩沖存儲器存儲界內并將數(shù)據(jù)發(fā)送到圖形與音頻處理器114,一次一個高速緩沖存儲器存儲界,以便最大地使用總線。
命令處理器200從主處理器110接收顯示命令,并對它們進行解析——通過存儲控制器152對來自共享存儲器112的顯示命令進行處理所必須的所有附加數(shù)據(jù)。命令處理器200將一個頂點命令流提供給圖形管道180,用于2D和/或3D處理和轉換。圖形管道180根據(jù)這些命令來生成圖像。產(chǎn)生的圖像信息可以被傳遞到主存儲器112,用于由顯示控制器/視頻接口元件164(將管道180的幀緩沖器輸出顯示在顯示器56上)存取。
圖5是利用圖形處理器154進行處理的方框邏輯流程圖。主處理器110可以將圖形命令流210、顯示清單212和頂點陣列214存儲在主存儲器112中,并通過數(shù)據(jù)接口150,將指針傳給命令處理器200。主處理器110將圖形命令存儲在其在主存儲器110中分配的一個或多個圖形先進先出(FIFO)緩沖器210中。命令處理器200●通過單片F(xiàn)IFO存儲緩沖器216(接收和緩沖同步/流控制和負載平衡的圖形命令)從主存儲器112取出命令流,●通過單片調用FIFO存儲緩沖器218,從主存儲器112取出顯示清單212,以及,
●通過頂點高速緩存器220,從命令流和/或從主存儲器112中的頂點陣列214取出頂點屬性。
命令處理器200執(zhí)行將屬性類型轉換成浮動點格式的命令處理操作200a,并將產(chǎn)生的全部頂點多邊形數(shù)據(jù)傳給圖形管道180,用于轉換/光柵化(rasterization)。可編程存儲器仲裁電路130(見圖4)對圖形管道180、命令處理器200與顯示控制器/視頻接口元件164之間的共享主存儲器112的存取進行仲裁。
圖4示出的圖形管道180可以包括●轉換元300,●設置/光柵器(rasterizer)402,●紋理元件500,●紋理環(huán)境元件600,和●像素引擎700。
轉換元件300執(zhí)行各種2D與3D轉換和其他操作300a(見圖5)。轉換元件300可以包括用于存儲轉換處理300a中所用的矩陣的一個或多個矩陣存儲器300b。轉換元件300將每個頂點的引入的幾何形狀從物體空間轉換到屏幕空間;并轉換輸入的結構坐標,計算投影的結構坐標(300c)。轉換元件300還可以執(zhí)行多邊形剪裁/摘采300d。在一個實施例中,也由轉換元件300b執(zhí)行的照明處理300e為多達8個獨立的照明提供每個頂點的照明計算。轉換元件300也能執(zhí)行浮雕類型沖擊(bump)映射效果的結構坐標生成(300c),以及多邊形剪裁/摘采操作(300d)。
設置/光柵器400包括設置元件,它從轉換元件300接收頂點數(shù)據(jù),并將三角形設置信息發(fā)送給執(zhí)行邊緣光柵化、結構坐標光柵化和顏色光柵化的一個或多個光柵器元件(400b)。
紋理元件500(可以包括一個單片紋理存儲器(TMEM)502)執(zhí)行各種關于構造的任務,例如,包括●從主存儲器112取得紋理504,●紋理處理(500a),包括(例如)多紋理處理、后緩存紋理解壓縮、紋理過濾、作浮雕、使用投影紋理的陰影與照明,以及具有α透明度與深度的BLIT。
●沖擊映射處理,用于計算沖擊映射、假結構和紋理平分效果(500b)的紋理坐標位移,以及,●間接紋理處理(500c)。
紋理元件500將經(jīng)過濾的結構值輸出到紋理環(huán)境元件600,用于紋理環(huán)境處理(600a)。紋理環(huán)境元件600混合多邊形和紋理顏色/α(第一位)/深度,并且還可以執(zhí)行紋理模糊處理(600b),以實現(xiàn)基于逆向射程的模糊效果(inversed range based fog effects)。紋理環(huán)境元件600可以提供多個階段,來執(zhí)行基于(例如)顏色/α(第一位調制)、作浮雕、信息的構造(detail texture)、結構交換(texture swapping)、夾住(clamping)和深度混合的其他各種有趣的環(huán)境相關功能。
像素引擎700執(zhí)行深度(z)比較(700a)和像素混合(700b)。本例中,像素引擎700將數(shù)據(jù)存入嵌入(單片)幀緩沖存儲器702。圖形管道180可以包括一個或多個嵌入DRAM存儲器702,以便在本地存儲幀緩沖器和/或紋理信息。根據(jù)當前的轉換模式,在圖形管道180中較早的階段執(zhí)行Z比較700a’(例如,如果不要求d(第一位)混合,則可以更早執(zhí)行z比較)。像素引擎700包括復制操作700c——定期將單片幀緩沖器702寫到主存儲器112,以便由顯示/視頻接口元件164存取。這個復制操作700c也可以用來將嵌入幀緩沖器702的內容復制到主存儲器112中的紋理結構,以實現(xiàn)動態(tài)紋理結構合成的效果。在復制操作中,可以執(zhí)行反混疊和其他過濾。圖形管道180的幀緩沖器輸出(最終存儲在主存儲器112中)是由顯示/視頻接口元件164讀取的每個幀。顯示控制器/視頻接口164提供在顯示器56上顯示的數(shù)字RGB像素值。
示例音頻系統(tǒng)音頻DSP 156執(zhí)行音調調制和語音與效果數(shù)據(jù)的混合。音頻DSP 156由用于存儲音頻取樣的大數(shù)量(例如,16MB或更大)音頻存儲器126(輔助的RAM-ARAM)增大。音頻信號通過音頻編譯碼器122(包括一個數(shù)-模轉換器)被發(fā)送到揚聲器61L和61R。來自海量存儲裝置62流動(streaming)音頻是重現(xiàn)游戲運行期間高保真度音頻信號的一種有效的方法。
圖6是圖3中所示的音頻DSP 156、音頻存儲器接口156,以及音頻接口與混頻器160的更加詳細的方框圖。取樣速率轉換器801以48kHz或32kHz取樣流動音頻(可能來自海量存儲裝置62),L/R音量控制803控制被取樣的音頻的左、右頻道音量水平。流動音頻完全繞過主存儲器112,從而保存存儲器和處理器的帶寬。例如,在為海量存儲裝置62上的音頻數(shù)據(jù)編碼的情況下,以ADPCM格式,海量存儲裝置106自動將ADPCM數(shù)據(jù)譯碼成PCM取樣(例如,16位),以提供給取樣率轉換器801。
DMA頻道805使數(shù)據(jù)從主存儲器112中的一個任意的位置傳遞到FIFO緩沖器807?;祛l器809混合取樣率轉換器801和FIFO緩沖器807的輸出,結果被輸出到音頻編譯碼器112。音頻編譯碼器122的取樣率是(例如)48kHz,音頻編譯碼器122可以是一個用于將立體的16位PCM轉換成模擬信號的標準SigmaDelta編譯碼器。
DSP核心811具有一個100MHz指令時鐘,并使用16位數(shù)據(jù)字和尋址。DSP核心811使用包括RAM區(qū)域(例如,8千字節(jié))和ROM區(qū)域(例如,8千字節(jié))的一個可對字進行尋址的數(shù)據(jù)存儲器815。數(shù)據(jù)存儲器815包括一個RAM區(qū)域(例如,8千字節(jié))和一個ROM區(qū)域(例如,4千字節(jié))。提供一個DSPDMA 819,將數(shù)據(jù)從主存儲器112傳送到DSP數(shù)據(jù)/指令RAM區(qū)域,或將數(shù)據(jù)從DSP數(shù)據(jù)/指令RAM區(qū)域傳送到主存儲器112,或者將數(shù)據(jù)從DSP數(shù)據(jù)/指令ROM區(qū)域傳送到主存儲器112。有兩個存取指令存儲器813DSP DMA 819和DSP 811的請求器(requesters)。指令RAM區(qū)域可以由DSP DMA 819來讀取/寫入,并只可以由DSP 811讀取。指令ROM區(qū)域只能由DSP 811來讀取。有三個存取數(shù)據(jù)存儲器815DSP DMA 819、數(shù)據(jù)總線1和數(shù)據(jù)總線2的請求器。提供的郵箱寄存器817,用于與主處理器110交流。郵箱寄存器817可以包括用于從主處理器110傳達到DSP核心811的第一個郵箱寄存器和用于從DSP核心811傳達到主處理器110的第二個郵箱寄存器。每個寄存器有(例如)32位寬。加速器821(而不是DSP核心811)可用于從音頻存儲器126讀取和寫入音頻存儲器126。為音頻存儲器126提供了一個存儲控制器823,該存儲控制器823可裁決DSP核心811與專用的DMA頻道825(由主處理器110控制,用于音頻存儲器126與主存儲器112之間進行數(shù)據(jù)處理)之間的音頻存儲器存取的請求。通常,音頻存儲器126與DSP數(shù)據(jù)存儲器815之間的數(shù)據(jù)處理與DMA頻道825相比具有優(yōu)先權。譯碼器827為提供到那里的音頻取樣進行譯碼。音頻存儲器126主要用于音頻相關數(shù)據(jù)的存儲,它可以包括16MB的SDRAM(總共可擴展到48MB)。
為了有助于減少音頻數(shù)據(jù)存儲要求,可以使用各種壓縮和解壓縮方案。ADCPM是指適應的微分PCM。這個方案可用于壓縮/解壓縮由上述音頻子系統(tǒng)生成的聲音,并且可用于壓縮/解壓縮海量存儲裝置62上的聲音。存在各種不同的ADPCM規(guī)則,由音頻子系統(tǒng)生成的聲音和海量存儲裝置62上的聲音不必要使用相同的規(guī)則。譯碼器827提供對由音頻子系統(tǒng)生成的聲音數(shù)據(jù)的運行時間ADPCM解壓縮,海量存儲存取裝置106提供對來自海量存儲裝置62的聲音數(shù)據(jù)的運行時間ADPCM解壓縮。一個8位PCM壓縮/解壓縮方案也可以運用于由音頻子系統(tǒng)生成的聲音數(shù)據(jù)。這樣,譯碼器827還提供對8位PCM壓縮的聲音數(shù)據(jù)的運行時間的解壓縮。當然,上述壓縮/解壓縮方案僅僅是描述性的,并非僅僅限于這種方案。
在系統(tǒng)初始化的過程中,一個運行時間的音頻庫被下載到音頻DSP 156。音頻DSP 156根據(jù)由主處理器110生成的一張命令清單中的命令,利用這個音頻庫來處理和混合語音。該命令清單存儲在主存儲器112中。音頻DSP 156從主存儲器收回命令,并根據(jù)下載到那里的運行時間的音頻庫來執(zhí)行它們。圖7A和7B分別示出了用于重現(xiàn)聲音的數(shù)據(jù)流和控制流。如圖7A所示,聲音取樣通過外圍(I/O)控制器162從海量存儲裝置62讀入主存儲器112,并經(jīng)由ARAM DMA 825從主存儲器112讀入音頻存儲器126。聲音取樣由DSP核心811經(jīng)由加速器821來讀取,DSP核心811處理/混合聲音取樣。經(jīng)處理/混合的聲音取樣在主存儲器112中得到緩沖,然后被傳遞到音頻接口FIFO807,用于經(jīng)由音頻編譯碼器122輸出到揚聲器61L、61R。如圖7B所示,游戲應用程序最終指示對聲音的需求。游戲應用程序調用音頻系統(tǒng)(主處理器)運行時間的應用程序(生成音頻DSP 156的一個命令清單)。在執(zhí)行該命令清單的過程中,音頻DSP 156收回合適的聲音取樣并按需求來處理它。#
音樂合成的數(shù)據(jù)流與控制流類似于圖7A中所示的聲音取樣的數(shù)據(jù)流與控制流。來自海量存儲裝置62的指令波表經(jīng)由主存儲器112存儲在音頻存儲器126中。一旦收到由音頻系統(tǒng)(主處理器)運行時間的應用程序生成的命令,音頻DSP 156就收回必要的指令取樣,處理與混合它們,并將結果存儲在主存儲器112中。該結果從那里被傳遞到音頻接口FIFO 807,用于經(jīng)由音頻編譯碼器122輸出到揚聲器61L、61R。由音頻系統(tǒng)(主處理器)運行時間的應用程序生成的命令被音樂樂譜驅動。該音樂樂譜從海量存儲裝置62被讀入主存儲器112,它根據(jù)游戲的要求來由音頻系統(tǒng)(主處理器)運行時間的應用程序處理和程序化。
音頻系統(tǒng)(主處理器)運行時間的應用程序也可以執(zhí)行重放和混合音頻磁道,以提供軟件流。軟件流允許同時重放一個或多個音頻磁道,這提供了某種程度的交互性。例如,游戲可能從一個磁道逐漸轉換入另一個磁道,以影響到玩者的情緒。一般而言,不同的音頻磁道作為單獨的聲音取樣在音頻存儲器126中得到緩沖。然后,音頻DSP 156可能收回磁道并混合它們(就如它對其他任何語音所做的那樣)。
音頻系統(tǒng)允許將聲音發(fā)射器安放在三維空間中。該實現(xiàn)依賴于以下各個特征●音量與鏡頭搖動控制●節(jié)距調制(關于多普勒效應)●初始時間延遲(左、右頻道之間的相位轉換)●FIR過濾器(關于HRTF和環(huán)境效應)這些特征一起為一種產(chǎn)生生理聲學的三維音效的有功效的裝置提供一對揚聲器。
語音處理管道如圖8所示1.由DSP 156從音頻存儲器126讀取取樣。
2.來自音頻存儲器126的ADPCM和8位PCM取樣被譯碼,被譯碼的取樣被提供到第一個取樣率轉換器。
3.來自音頻存儲器126的16位PCM取樣被直接傳到第一個取樣率轉換器。
4.該取樣率轉換器調節(jié)引入的取樣的節(jié)距。
5.一個FIR過濾器將一個任選的用戶定義的過濾器應用于這些取樣。
6.一個音量滑道應用一個跨越取樣的音量滑道,以求音量封套清晰度。
7.一個混頻器以一個32kHz取樣率(具有24位的精確度)來混合各個取樣。
每個語音重復步驟1-7。當所有的語音已在混頻緩沖器中被處理和累積時,會發(fā)生以下步驟1.Dolby環(huán)繞和基于主處理器的效果(例如,回響或齊聲)被應用于混合的語音。
2.取樣的精確度從24位被縮短至16位,數(shù)據(jù)被轉換成音頻編譯碼器122的輸出的一個48kHz取樣率,結果被輸出到主存儲器112。
圖9是一幅音頻存儲控制器823的詳細的方框圖。音頻存儲控制器823執(zhí)行以下功能●復位后,提供音頻存儲器初步定時生成,以穩(wěn)定音頻存儲器(包括音頻存儲器模式設置);●生成音頻存儲器更新周期;以及,●接受DMA 825和加速器821的讀/寫要求,然后生成到音頻存儲器126的存取定時。
一個定時生成電路928生成存取定時。在此示范系統(tǒng)中,有兩個存儲裝置構成音頻存儲器126。第一個存儲裝置是內部音頻存儲器926a并擁有一個8兆字節(jié)的最大尺寸。第二個存儲裝置是擴展音頻存儲器926b并擁有一個32兆字節(jié)的最大尺寸。內部音頻存儲器926a的地址始于0,擴展音頻存儲器926b的地址串聯(lián)到內部音頻存儲器的結尾地址上。這樣,內部音頻存儲器926a和擴展音頻存儲器926b的地址空間是聯(lián)貫的,擴展音頻存儲器926b的起始地址取決于內部音頻存儲器926a的尺寸。內部音頻存儲器926a和擴展音頻存儲器926b的模式設置和更新周期是同時運行的。
復位后,音頻存儲控制器823初始化音頻存儲器126(如圖9中的“ARAM初始化”934所代表的)。在初始化的過程中,控制器823掩蓋對音頻存儲器126的任何存?。怀跏蓟螅纛l存儲器126可自由存取。一個標記ARAM-NORM可以被設置為一個已經(jīng)執(zhí)行初始化的指示。如上所述,初始化包括音頻存儲器模式設置。以下設置可在一個音頻存儲模式寄存器中進行●脈沖長度(例如,2字節(jié)),●尋址模式(例如,連續(xù)的),●CAS等待時間(由主處理器110編程的2個或3個),以及●寫模式(脈沖讀與脈沖寫)。
音頻存儲控制器823同時初始化內部音頻存儲器926a和擴展音頻存儲器926b。在初始化結束之前,主處理器110為CAS等待時間編程。如果CAS等待時間不由主處理器110編程,則使用復位默認值CAS=3來存取音頻存儲器126。
初始化之后,音頻存儲控制器823確定內部音頻存儲器926a和擴展音頻存儲器926b的尺寸。
除了一個芯片選擇信號外,內部音頻存儲器926a和擴展音頻存儲器926b分享同一個地址總線、數(shù)據(jù)總線和控制信號。在操作過程中,一個仲裁元件930為三個請求器生成存取定時●DMA 825,●加速器821,和●更新計算器932。這些請求器中的優(yōu)先權如下所述更新計算器932>加速器821>DMA 825自動更新期是可編程的,音頻存儲控制器823同時將更新周期提供給內部音頻存儲器926a和擴展音頻存儲器926b。
以下的DSP編程位可用來掩蓋DMA 825對音頻存儲器126的存取AMDMAra M-Dma要求掩蓋DSP地址0Xffef
如果設置AMDM的位0,則對音頻存儲器126的存取專屬于加速器821。如果AMDM的位0很清楚,則發(fā)生以下程序。
通常,DMA 825經(jīng)由多個(例如,16個)讀/寫命令來存取音頻存儲器126。如果加速器821這時需要存取音頻存儲器126,則音頻存儲控制器823確定兩者是否都正在試圖存取音頻存儲器126的相同的儲藏庫。如果是,則音頻存儲控制器823終止(預填充)DMA 825的存取并將存取傳遞給加速器821。加速器821結束后,音頻存儲控制器823將存取傳遞回DMA 825。DMA 825執(zhí)行(首先激活)它其余的讀/寫命令。
如果加速器821和DMA 825正在存取不同的儲藏庫,則利用一個交叉存取儲藏庫存取方案來實現(xiàn)加速器821與DMA 825之間的存取轉換方面的更好的性能。在這個方案中,音頻存儲控制器823不預填充(終止)DMA儲藏庫,而讓它等候。然后,對音頻存儲器126的存取被傳遞到加速器821。加速器821完成它對音頻存儲器126的存取之后,音頻存儲控制器823執(zhí)行(首先無須激活)DMA 825其余的讀/寫命令。
如果音頻存儲器126的存取跨越一個512字節(jié)的界線(不同的行),則音頻存儲控制器823預填充當前的行來停止存取,并激活下一個行來開始存取。這增加了讀/寫數(shù)據(jù)的周期數(shù)目。不適宜為DMA-存取-交叉-行或加速器-存取-交叉-行提供上述的交叉存取儲藏庫方案。
圖10A中示出了音頻存儲器DMA 825的細節(jié)。音頻存儲器DMA 825包括分別用于定義主存儲器起始地址、音頻存儲器起始地址和DMA傳遞的塊長度與方向的三個寄存器900a-900c。主處理器110為這些寄存器編碼。這些寄存器有32位寬,DMA傳遞方向由塊長度寄存器的高單詞的位指定,每方(即主存儲器112,音頻存儲器126)的起始地址位于32字節(jié)界線,塊長度是若干32字節(jié)。在DMA的傳遞過程中,這些寄存器由每次存儲控制器塊存取來修改。有一個數(shù)據(jù)緩沖器950建立在音頻存儲器DMA內的存儲控制器尺寸(32字節(jié)),以跨接不相等的帶寬存儲器。
主存儲器110到音頻存儲器126的操作流程包括以下步驟1.一個到塊長度寄存器900c的低單詞的寫操作觸發(fā)DMA 825,準備傳遞數(shù)據(jù)。
2.DMA 825將一個讀要求發(fā)送給存儲控制器152(圖3),然后等候32字節(jié)數(shù)據(jù)來到DMA數(shù)據(jù)緩沖器950。
3.一旦32字節(jié)被移入數(shù)據(jù)緩沖器950,DMA 825就發(fā)送一個寫要求給仲裁電路930(見圖9)并等候傳遞。主存儲器地址寄存器900a也通過地址增加電路960增加了32個。
4.如果允許DMA 825通過仲裁電路930對音頻存儲器126的存取,則一個寫命令被發(fā)送到音頻存儲器126,數(shù)據(jù)開始一個字節(jié)接一個字節(jié)地從DMA數(shù)據(jù)緩沖器950移到音頻存儲器126,直到32個字節(jié)都被移走(緩沖器清空)。音頻存儲器地址通過音頻地址增加電路962增加了32個,塊長度通過塊長度減少電路964減少了32個。
5.重復步驟2-4,直到塊長度達到0。這時,DMA 825停止與控制邏輯954設置了一個標記,產(chǎn)生對主處理器110的一個中斷。該中斷是可掩蓋的。
頻存儲器126到主存儲器110的操作流程包括以下步驟1.寫到塊長度寄存器的低單詞觸發(fā)DMA 825,準備傳遞數(shù)據(jù)。
2.DMA 825將一個讀要求發(fā)送給仲裁電路930(見圖9),然后等候32字節(jié)的數(shù)據(jù)。
3.如果允許DMA 825通過仲裁電路930對音頻存儲器126的存取,則一個讀命令被發(fā)送到音頻存儲器126,數(shù)據(jù)開始一個字節(jié)接一個字節(jié)地從音頻存儲器126移到DMA數(shù)據(jù)緩沖器950,直到32個字節(jié)都被移入數(shù)據(jù)緩沖器。音頻存儲器地址寄存器900b中的音頻存儲器地址由音頻地址增加電路962增加了32個。
4.一旦32字節(jié)數(shù)據(jù)被移入DMA數(shù)據(jù)緩沖器950,DMA825就發(fā)送一個寫要求給存儲控制器152。然后,該32字節(jié)數(shù)據(jù)從DMA數(shù)據(jù)緩沖器950移到存儲控制器總線。此后,主存儲器110的地址由主存儲器地址增加電路960增加,塊長度由時鐘長度減少電路964減少。
5.重復步驟2-4,直到塊長度達到0。這時,DMA 825停止與控制邏輯954設置了一個標記,產(chǎn)生對主處理器110的一個中斷。該中斷是可掩蓋的。
在每個32字節(jié)傳遞之前執(zhí)行仲裁。存儲控制器總線仲裁優(yōu)先權如下所示AIDMA 805>DSP DMA 819>ARAM DMA 825圖10B是一幅示出DSP DMA 819的細節(jié)的方框圖。如上所述,DSP DMA 819發(fā)揮功能,將來自存儲器112到DSP數(shù)據(jù)/指令RAM區(qū)域的數(shù)據(jù)或到主存儲器112來自DSP數(shù)據(jù)/指令RAM區(qū)域的數(shù)據(jù)或來自DSP數(shù)據(jù)/指令ROM區(qū)域的數(shù)據(jù)傳遞到主存儲器112。DSP DMA 819包括用于定義一個塊長度、一個主存儲器地址和一個DSP存儲器地址的三個寄存器796a-796c。一個2x32字節(jié)的FIFO 792用于數(shù)據(jù)傳遞,一個64位數(shù)據(jù)總線提供FIFO 792與音頻存儲器126之間的高速數(shù)據(jù)傳遞,主存儲器起始地址位于一個4字節(jié)界線,DSP起始地址位于一個2單詞(32位)界線。塊長度是若干個4字節(jié)。DSP DMA 819的一個控制寄存器包括指定DMA傳遞方向的第一個位和指定數(shù)據(jù)存儲器或指令存儲器是否包含于DMA傳遞中的第二個位??刂萍拇嫫鬟€包括一個用于經(jīng)由控制邏輯790提供DSP DMA狀況的DSP DMA占用位。當塊長度寄存器中的塊長度等于0時,一旦DSP DMA被激活和清除,就設置該占用位。
通過DSP 811寫到塊長度寄存器796a來激活DSP DMA 819。一旦DSP DMA819被激活,就要求存儲控制器152同意對主存儲器的存取。當同意存取時,開始數(shù)據(jù)傳遞。當繼續(xù)傳遞數(shù)據(jù)時,地址改變電路798和799分別增加寄存器796b和796c中的主存儲器112和DSP存儲器的存取地址。當各塊被傳遞時,根據(jù)塊長度改變電路797來減少寄存器796a中的塊長度。傳遞繼續(xù)進行,直到塊長度寄存器是0,DMA操作隨后停止。數(shù)據(jù)調整和DSP存儲器控制受到控制電路794的影響。
當數(shù)據(jù)從主存儲器112傳遞到DSP存儲器時,如果FIFO 792是滿的,則DSP DMA 819將等候不滿的FIFO,然后再從主存儲器112充填。如果FIFO 792不是空的,則DMA將傳遞FIFO數(shù)據(jù)到DSP存儲器,直到FIFO清空為止。當數(shù)據(jù)從DSP存儲器傳遞到主存儲器112時,如果FIFO 792是空的,則DSPDMA 819將等候不空的FIFO,然后將FIFO的數(shù)據(jù)傳遞到主存儲器112。如果FIFO不滿,則DMA將從DSP存儲器再充填,直到FIFO滿為止。
示范的DSP DMA相關寄存器是DSMAHDSp dma主存儲器地址高DSP地址0xFFCE
DSMALDSp dma主存儲器地址低DSP地址0xFFCF
DSPADSp dma dsP存儲器地址高DSP地址0xFFCD
DSBLDSp dma塊長度DSP地址0xFFCB
DSCRDSp dma控制寄存器DSP地址0xFFC9
在示范系統(tǒng)中,指令RAM由四個256x64位同步單道雙重端口SRAM構成,指令ROM由兩個2048x16位同步單個端口ROM構成。指令RAM和指令ROM互相獨立,因此,當為指令RAM執(zhí)行一個讀/寫DMA操作時,DSP核心811可以存取指令ROM。此外,當DSP DMA 819寫到指令RAM時,DSP核心811能夠讀取指令RAM。為了避免硬件沖突,同時進行的讀/寫的寫、讀地址應該是不同的。
數(shù)據(jù)RAM被組織成4頁,每頁的尺寸是1千單詞。數(shù)據(jù)ROM被組織成具有2千單詞尺寸的1頁。一個數(shù)據(jù)RAM頁由四個256x16位同步單道雙重端口SRAM構成,數(shù)據(jù)ROM頁由一個2048x16位同步單個端口ROM構成。每頁獨立于其他頁,以便每頁具有其自己的數(shù)據(jù)、地址總線和讀、寫控制信號連接到三個請求器。DSP總線1和2的數(shù)據(jù)輸入/輸出端口有16位寬,DSPDMA 819的數(shù)據(jù)輸入/輸出端口有64位。在此安排中,可同時為三個請求器運行三頁。
在這個示范系統(tǒng)中,每個SRAM頁可以由一讀或一寫,或者由一讀與一寫來存取,但不能由兩讀或兩寫來存取。讀可以是DSP總線1或2或DSP DMA讀,寫可以是DSP總線1或2或DSP DMA寫。ROM頁只能由一讀來存取,讀可以寫一個DSP總線1或2讀。DSP DMA 819不能讀取數(shù)據(jù)ROM。如果一頁正在由DSP DMA讀取,則DSP 811仍然可以讀取該頁或讀/寫其他頁。為了避免硬件沖突,DSP讀與DMA寫,或者DSP寫與DMA讀不應該發(fā)生在相同的地址位置。DSP 811不被允許讀取DMA正在讀取的那頁,DSP不被允許寫DMA正在寫的那頁。
圖10C是一幅加速器821的方框圖。如上所述,加速器821(而非DSP核心811)被用于從音頻存儲器126讀取和寫到音頻存儲器126。加速器821包括一個以下生成電路902的地址,該電路自動增加地址或生成用于下一個地址的一個圍繞地址(循環(huán)尋址)的包。加速器821包括三個數(shù)據(jù)線904a-904c,它們在讀操作中用作預先取出緩沖器,在寫操作中用作寫緩沖器。如下面將解釋的,當DSP核心811的操作存取音頻存儲器126時,數(shù)據(jù)線904a-904c隱藏音頻存儲器126的存取等待時間。當DSP讀取起始地址的數(shù)據(jù)時,或者當DSP將結尾地址寫到數(shù)據(jù)線時,生成一個對DSP核心811的中斷。
三個參數(shù)寄存器(當前地址、起始地址、結尾地址)906a-906c被用來定義音頻存儲器126的存儲空間中的一個循環(huán)緩沖器。每個參數(shù)寄存器有27位寬,可以由音頻DSP讀/寫。以下的地址生成電路902把“1”加到當前地址,以獲得下一個地址。如果當前地址等同于結尾地址,那么,下一個地址就是起始地址。參數(shù)寄存器906a-906c用于從音頻存儲器126讀取和寫到音頻存儲器126。寄存器中的地址與數(shù)據(jù)之間的關系如下所示ACCAH加速器aram當前地址高DSP地址0xFFD8
ACCAL加速器aram當前地址低DSP地址0xFFD9
ACEAH加速器aram結尾地址高DSP地址0xFFD6
ACEAL加速器aram結尾地址低DSP地址0xFFD7
ACSAH加速器aram起始地址高DSP地址0xFFD4
ACSAL加速器aram起始地址低DSP地址0xFFD5
數(shù)據(jù)線904a-904c都有16位寬。對于讀操作而言,數(shù)據(jù)線用作預取出緩沖器,其中,數(shù)據(jù)事先從音頻存儲器126被讀取并在DSP核心811讀取數(shù)據(jù)線時準備傳遞。對于寫操作而言,數(shù)據(jù)線的功能是來自DSP核心811(將被寫到音頻存儲器126)的數(shù)據(jù)的臨時緩沖器。數(shù)據(jù)線904a-906c以一種FIFO的方式來形成,其輸入/輸出端口可由DSP核心811讀/寫。數(shù)據(jù)線中的數(shù)據(jù)的地址對應于當前地址及其隨后的兩個地址。
這里描述的音頻子系統(tǒng)使聲音發(fā)射器能夠被放置在三維空間中,并為一種生成生理聲學3D音效的有功效的裝置提供一對揚聲器。音頻子系統(tǒng)包括一個音頻存儲器(例如,能夠存儲聲音取樣)、儀器波表、音頻磁道和從海量存儲裝置(例如,DVD)讀取的類似物。這些取樣、波表、磁道等隨后由一個音頻數(shù)字信號處理器讀出和處理,以產(chǎn)生游戲音頻內容。該內容從隨后讀出它的地方被傳遞到一個主存儲器,用于提供給一個譯碼器和輸出到揚聲器。通過避免與其他試圖存取主系統(tǒng)存儲器的資源(例如,圖形子系統(tǒng))爭奪的需要,分離的音頻存儲器改進了音頻處理電路對音頻數(shù)據(jù)的存取。
如這里所描述的,一個音頻存儲器126提供了一個機會進一步提高系統(tǒng)有效地為需要這種存取的那些資源提供數(shù)據(jù)存取的能力。例如,一個DVD具有相對高的“等待時間”,即,數(shù)據(jù)響應于對數(shù)據(jù)的一個要求而被返回要花相對長的時間。所以,在需要數(shù)據(jù)之前預先取出數(shù)據(jù)(例如,動畫數(shù)據(jù)和來自DVD的被壓縮的圖形數(shù)據(jù))是有用的,這樣,數(shù)據(jù)可以迅速地被提供給需要數(shù)據(jù)的一個部分。音頻存儲器可以被用作此“預先取出的”非音頻相關數(shù)據(jù)的一個高速緩沖存儲器。然后,當需要非音頻相關數(shù)據(jù)時,(例如)在轉換管道中,DMA電路825被用于將數(shù)據(jù)傳遞到主存儲器112,在那里需要它的部分可以獲得它。如果合適的話,被傳遞到主存儲器的數(shù)據(jù)可以被減壓。
在示范系統(tǒng)中,音頻存儲器126沒有一個與海量存儲裝置62的直接接口。這樣,用于預緩存的非音頻相關數(shù)據(jù)經(jīng)由外圍控制器162從海量存儲裝置62被讀到主存儲器112,然后經(jīng)由ARAM DMA 825被寫到音頻存儲器126。需要時,(例如)在轉換管道中,非音頻相關數(shù)據(jù)后來被讀回主存儲器112。當然,在其他的實施中,可以為音頻存儲器126提供一個與海量存儲裝置62的直接接口,非音頻相關數(shù)據(jù)可能被“預緩存”在音頻存儲器126中,而不首先通過主存儲器112。
運行時間的音頻庫包括一種資源管理算法,它監(jiān)督音頻DSP 156的資源使用情況并動態(tài)地、相應地限制語音分配。這防止了音頻DSP 156超載(可能會導致音頻輸出被破壞)。更適宜的是,該資源管理算法假設最差情況存儲器存取的等待時間,以進一步確保平穩(wěn)、連續(xù)的音頻。例如,可以支持64種語音,這取決于每種語音的混合與處理要求。
其他的示范性相兼容的實施某些上述系統(tǒng)部分50的實施可以不只是上述的家庭視頻游戲控制臺配置。例如,可以運行圖形應用程序或在一個平臺(具有一種模擬系統(tǒng)50或與其相兼容的不同的配置)上為系統(tǒng)50編寫的其他軟件。如果其他平臺能夠成功地模擬、模仿和/或提供系統(tǒng)50的一些或所有的硬件和軟件資源,那么,其他平臺將能夠成功地執(zhí)行該軟件。
作為一個例子,一個仿真器可以提供一個不同于系統(tǒng)50的硬件和/或軟件配置(平臺)的硬件和/或軟件配置(平臺)。仿真器系統(tǒng)可以包括模擬或模仿該系統(tǒng)(應用程序軟件為它而編寫)的一些或所有的硬件和/或軟件部分的軟件和/或硬件部分。例如,仿真器系統(tǒng)可以包括一臺通用的數(shù)碼電腦(例如,執(zhí)行模擬系統(tǒng)50的硬件和/或固件的一個軟件仿真器程序的一臺個人電腦)。上述音頻系統(tǒng)的DSP處理可以在一臺個人電腦上被模擬。
一些通用的數(shù)碼電腦(例如,IBM或MacIntosh個人電腦和兼容的)現(xiàn)在被裝備了3D圖形卡,這些卡提供了適應DirectX或其他標準3D圖形命令APIs的3D圖形管道。它們也可以被裝備立體音響的聲卡(提供基于一標準套聲音命令的高質量的立體聲)。這些運行仿真器軟件的多媒體-硬件裝備的個人電腦可以具有接近系統(tǒng)50的圖形與聲音性能的充分的性能。仿真器軟件控制個人電腦平臺上的硬件資源,以模仿家庭視頻游戲控制臺平臺(游戲編程員為它編寫了該游戲軟件)的處理、3D圖形、聲音、外圍能力與其他能力。
圖11A示出了一個使用一個主機平臺1201、一個仿真器部分1303和一個存儲介質62上提供的一個游戲軟件可執(zhí)行二進位圖像的示范總模擬過程。主機1201可以是一種通用的或有特殊用途的數(shù)字計算裝置(例如,一臺個人電腦、一個視頻游戲控制臺或具有足夠的計算能力的任何其他平臺)。仿真器1303可以是在主機平臺1201上運行的軟件和/或硬件,并將來自存儲介質62的命令、數(shù)據(jù)和其他信息實時地轉換成一種可由主機1201處理的形式。例如,仿真器1303從存儲介質62取出“來源”二進位圖像程序指令(用于系統(tǒng)50的執(zhí)行)并將這些程序指令轉換成一種可由主機1201執(zhí)行或處理的目標格式。
作為一個例子,在所編寫的軟件用于在使用一個IBM PowerPC或其他特殊的處理器的一個平臺上的執(zhí)行操作和主機1201是一臺使用一個不同的(例如,Intel)處理器的個人電腦的情況下,仿真器1303從存儲介質62取出一個或一系列二進位圖像程序指令,并將這些程序指令轉換成一個或更多相等的Intel二進位圖像程序指令。仿真器1303還取出和/或生成用于圖像與音頻處理器114的處理的圖像命令與音頻命令,并將這些命令轉換成可由主機1201上存在的硬件和/或軟件圖形與音頻處理資源處理的一種格式或多種格式。作為一個例子,仿真器1303可以將這些命令轉換成可由主機1201的特殊圖形和/或聲音硬件處理的命令(例如,聲音標準DirectX、OpenGL和/或聲音APIs)。
上述用于提供視頻游戲系統(tǒng)的一些或所有特征的一個仿真器1303也可以被提供一個圖形用戶接口(GUI),該圖形用戶接口使采用仿真器的游戲運行的各種選項和屏幕模式的選擇簡單化和自動化。在一個例子中,這種仿真器1303還可以包括與主機平臺(軟件原本為它設計)比較而言已提高的功能性。
圖11B示出了適合使用仿真器1303的一個模擬主機系統(tǒng)1201。系統(tǒng)1201包括一個處理元件1203和一個系統(tǒng)存儲器1205。一個系統(tǒng)總線1207將包括系統(tǒng)存儲器1205的各種系統(tǒng)部分耦合到處理元件1203。系統(tǒng)總線1207可以是幾種類型的總線結構(包括一個存儲器總線或存儲控制器、一個外圍總線和使用各種總線構造中的任何總線構造的一個地方總線)中的任何總線結構。系統(tǒng)總線1207包括只讀存儲器(ROM)1252和隨機存取存儲器(RAM)1254。一個基本輸入/輸出系統(tǒng)(BIOS)1256被存儲在ROM 1252中。該系統(tǒng)包含的基本程序幫助個人電腦系統(tǒng)1201內的各元件之間的信息轉換(例如,在啟動過程中)。系統(tǒng)1201還包括各種驅動器和有關的電腦可讀介質。一個硬盤驅動器1209從一個(通常是固定的)硬磁盤1211讀取并寫到該硬磁盤。一個附加(可以任選)的驅動器1213從一個可移動的“軟盤”或其他磁盤1215讀取并寫到該軟盤或磁盤。一個光盤驅動器1217從一個可移動的光盤1219(例如,一個CD ROM或其他光介質)讀取,并在某些配置中寫到該光盤。硬盤驅動器1209和光盤驅動器1217分別通過一個硬盤驅動器接口1221和一個光驅動器接口1225連接到系統(tǒng)總線1207。這些驅動器及其有關的電腦可讀介質為個人電腦系統(tǒng)1201提供電腦可讀指令、數(shù)據(jù)結構、程序模數(shù)、游戲程序和其他數(shù)據(jù)的非易失性的存儲。在其他的配置中,也可以使用其他類型的電腦可讀介質。這些介質可以存儲可由電腦(例如,盒式磁帶、flash存儲卡、數(shù)碼影碟、Bernoulli盒式磁帶、隨機存取存儲器(RAMs)、只讀存儲器(ROMs)等類似物)存取的數(shù)據(jù)。
包括仿真器1303的許多程序模數(shù)可以被存儲在系統(tǒng)存儲器1205的硬盤1211、可移動的磁盤1215、光盤1219和/或ROM 1252和/或RAM 1254上。這種程序模數(shù)可以包括一個提供圖形和聲音的操作系統(tǒng)、一個或多個應用程序、其他的程序模數(shù)、程序數(shù)據(jù)和游戲數(shù)據(jù)。用戶可以通過輸入裝置(例如,一個鍵盤1227、指示裝置1229、麥克風、操縱桿、游戲控制器、碟形衛(wèi)星天線、掃描儀或類似物)來把命令和信息輸入個人電腦系統(tǒng)1201。這些和其他的輸入裝置可以通過耦合到系統(tǒng)總線1207的一個串聯(lián)端口接口1231來連接到處理元件1203,但可以由其他接口(例如,一個并聯(lián)端口、游戲端口Fire電線總線或一個通用串行總線(USB))來連接。一個監(jiān)視器1233或其他類型的顯示裝置也經(jīng)由一個接口(例如,一個視頻適配器1235)連接到系統(tǒng)總線1207。
系統(tǒng)1201也可以包括一個調制解調器1154或其他網(wǎng)絡接口裝置,用于在一個網(wǎng)絡1152(例如,互聯(lián)網(wǎng))上建立通訊交流。調制解調器1154(可以是內部或外部的)經(jīng)由串聯(lián)端口接口1231連接到系統(tǒng)總線123。還可以提供一個網(wǎng)絡接口1156,用于允許系統(tǒng)1201經(jīng)由一個地方區(qū)域網(wǎng)絡1158與一個遠程計算裝置1150(例如,另一個系統(tǒng)1201)進行通訊(或者,這種通訊可以經(jīng)由寬區(qū)域網(wǎng)絡1152或撥號(上網(wǎng))或其他通訊裝置等其他的通訊路徑)。系統(tǒng)1201通常將包括其他的外圍輸出裝置(例如,打印機和其他標準外圍裝置)。
在一個例子中,視頻適配器1235可以包括一個3D圖形管道芯片裝置,它響應于基于一個標準3D圖形應用程序編程員接口(例如,微軟的DirectX 7.0或其他版本)發(fā)出的命令來提供快速3D圖形轉換。一套立體聲擴音器1237也經(jīng)由一個聲音生成接口(例如,一張?zhí)峁┯布c嵌入軟件支持的傳統(tǒng)“聲卡”,用于根據(jù)由總線1207提供的聲音命令來生成高質量的立體聲)連接到系統(tǒng)總線1207。這些硬件能力允許系統(tǒng)1201提供充分的圖形與聲音速度性能來播放存儲在存儲介質62中的軟件。
已結合當前被認為最實際的最佳實施例來描述本發(fā)明,但不言而喻,本發(fā)明并不局限于所揭示的實施例,相反意在包括所附權利要求的范圍內的各種修改和相等的安排。
權利要求
1.一種視頻游戲系統(tǒng),其特征在于,它包含一個音頻數(shù)字信號處理器;一個主存儲器;一個與主存儲器分開并存儲了由音頻數(shù)字信號處理器處理的音頻相關數(shù)據(jù)的音頻存儲器;一個海量存儲裝置;以及存儲器存取電路,用于讀取存儲在海量存儲裝置上的非音頻相關數(shù)據(jù),并將非音頻相關數(shù)據(jù)寫到音頻存儲器,隨后,從音頻存儲器讀取非音頻相關數(shù)據(jù)并將非音頻相關數(shù)據(jù)寫到主存儲器上。
2.如權利要求1所述的視頻游戲系統(tǒng),其特征在于,所述音頻存儲器包含存儲元件和外存儲元件。
3.如權利要求1所述的視頻游戲系統(tǒng),其特征在于,所述音頻存儲器包含SDRAM。
4.如權利要求1所述的視頻游戲系統(tǒng),其特征在于,所述非音頻相關數(shù)據(jù)是圖形數(shù)據(jù)。
5.如權利要求1所述的視頻游戲系統(tǒng),其特征在于,所述非音頻相關數(shù)據(jù)是動畫數(shù)據(jù)。
6.如權利要求1所述的視頻游戲系統(tǒng),其特征在于,其中,非音頻相關數(shù)據(jù)是被壓縮的幾何圖形數(shù)據(jù)。
7.如權利要求1所述的視頻游戲系統(tǒng),其特征在于,它還包括音頻存儲控制器,用于仲裁對存儲器存取電路與音頻數(shù)字信號處理器之間的音頻存儲器的存取。
8.如權利要求7所述的視頻游戲系統(tǒng),其特征在于,所述音頻存儲控制器提供的對音頻數(shù)字信號處理器的存取優(yōu)先權比對存儲器存取電路的存取優(yōu)先權更高。
9.如權利要求7所述的視頻游戲系統(tǒng),其特征在于,所述音頻存儲控制器生成音頻存儲器更新周期。
10.如權利要求7所述的視頻游戲系統(tǒng),其特征在于,所述音頻存儲控制器提供音頻存儲器初始定時信號,以便在復位后使音頻存儲器穩(wěn)定。
11.如權利要求1所述的視頻游戲系統(tǒng),其特征在于,所述存儲器存取電路包括緩沖器,用于存儲從音頻存儲器讀取的和被寫入音頻存儲器的數(shù)據(jù)。
12.如權利要求1所述的視頻游戲系統(tǒng),其特征在于,所述存儲器存取電路包括存儲第一個存儲器地址的第一存儲器地址寄存器;存儲第二個存儲器地址的第二存儲器地址寄存器;用于存儲塊長度的塊長度寄存器;以及寄存器改變電路,用于改變存儲在第一存儲器地址寄存器、第二存儲器地址寄存器和塊長度寄存器中的數(shù)據(jù)。
13.如權利要求12所述的視頻游戲系統(tǒng),其特征在于,所述第一存儲器地址寄存器存儲主存儲器地址,而所述第二存儲器地址寄存器存儲音頻存儲器地址。
14.如權利要求1所述的視頻游戲系統(tǒng),其特征在于,所述存儲器存取電路包括用于產(chǎn)生中斷的控制邏輯。
15.如權利要求1所述的視頻游戲系統(tǒng),其特征在于,所述海量存儲裝置包括一個DVD。
16.如權利要求1所述的視頻游戲系統(tǒng),其特征在于,所述非音頻相關數(shù)據(jù)以32字節(jié)為單位被讀取和寫入。
17.一種存取存儲在海量存儲裝置上的非音頻相關數(shù)據(jù)的方法,其特征在于,它包括提供一個與主存儲器分離的音頻存儲器,并在其中存儲由音頻數(shù)字信號處理器處理的音頻相關數(shù)據(jù);讀取存儲在所述海量存儲裝置上的非音頻相關數(shù)據(jù),并將非音頻相關數(shù)據(jù)寫入所述音頻存儲器;以及,以后從所述音頻存儲器讀取非音頻數(shù)據(jù),并將所述非音頻數(shù)據(jù)寫入主存儲器。
18.如權利要求17所述的方法,其特征在于,所述音頻存儲器包括內、外存儲元件。
19.如權利要求17所述的方法,其特征在于,所述音頻存儲器包括SDRAM。
20.如權利要求17所述的方法,其特征在于,所述非音頻相關數(shù)據(jù)是圖形數(shù)據(jù)。
21.如權利要求17所述的方法,其特征在于,所述非音頻相關數(shù)據(jù)是動畫數(shù)據(jù)。
22.如權利要求17所述的方法,其特征在于,所述非音頻相關數(shù)據(jù)是被壓縮的幾何圖形數(shù)據(jù)。
23.如權利要求17所述的方法,其特征在于,所述海量存儲裝置包括一個DVD。
24.如權利要求17所述的方法,其特征在于,所述非音頻相關數(shù)據(jù)以32字節(jié)為單位被讀取和寫入。
全文摘要
一種視頻游戲系統(tǒng)包括一個音頻數(shù)字信號處理器、一個主存儲器和與主存儲器分離并存儲由音頻數(shù)字信號處理器處理的音頻相關數(shù)據(jù)的一個音頻存儲器。存儲器存取電路讀取存儲在一個海量存儲裝置上的非音頻相關數(shù)據(jù),并將非音頻相關數(shù)據(jù)寫到音頻存儲器。非音頻相關數(shù)據(jù)以后從音頻存儲器被讀取并被寫到主存儲器。
文檔編號G06F3/16GK1342934SQ0112098
公開日2002年4月3日 申請日期2001年8月23日 優(yōu)先權日2000年8月23日
發(fā)明者H·H·程, 竹田玄洋 申請人:任天堂株式會社