專利名稱:并行運算設備、娛樂設備、處理方法、計算機程序和半導體設備的制作方法
技術領域:
本發(fā)明涉及使用多個運算單元實現(xiàn)并行處理的技術,更確切地說,涉及實現(xiàn)高速處理的并行運算處理技術,比如對計算機圖形的幾何處理。
背景技術:
要用三維計算機圖形顯示的某些物體可以模擬為多個基本圖形(多邊形)的一組。多邊形的頂點用齊次座標表示為四維坐標(x,y,z,w)。對多邊形頂點的坐標根據(jù)觀察點坐標進行坐標變換,并且根據(jù)距離進行透視變換等。也就是,變換的方式為較遠的物體顯得較小。這種處理序列稱為“幾何處理”。
幾何處理具有多種模式。例如,使用4×4變換矩陣的矩陣運算用于執(zhí)行多邊形的旋轉、擴大、縮小、透視投影和平行移動。內積運算用于確定例如受光表面的亮度。矩陣和內積運算都需要乘加運算。
在三維計算機圖形中,通常用于高端系統(tǒng)的使用浮點的處理方法也用在娛樂設備領域,以產(chǎn)生娛樂圖像比如視頻游戲圖像;以及必須嚴格限制成本的領域,比如便攜信息終端。這是因為使用浮點的處理方法增加了數(shù)據(jù)的動態(tài)范圍,并且易于編程,所以適于復雜的處理。
在浮點處理中,為了進行浮點數(shù)的矩陣運算,可以采用一種并行運算設備,它含有多個浮點乘加運算器(FMACFloating MultiplyAccumulator浮點乘累加器),能夠高效地進行矩陣運算。多個FMAC實現(xiàn)并行運算操作,提高了處理速度。
某些設備,比如進行三維圖像處理的娛樂設備和個人計算機,使用這種并行運算設備進行上述幾何處理,能夠高速地獲得精細逼真的三維圖像。
對于具有例如四個FMAC并行放置的并行運算設備,該并行運算設備易于進行數(shù)學表達式1所示的、使用4×4變換矩陣的矩陣運算。然而,它卻難于進行數(shù)學表達式2所示的、向量A(Ax,Ay,Az,Aw)和向量B(Bx,By,Bz,Bw)之間的內積運算。
這是因為要進行處理的坐標X、Y、Z和W是在與四個FMAC一對一的對應關系中獨立運算的。
下面進行更具體的解釋。
進行數(shù)學表達式1中的矩陣運算時,變換矩陣的一行對應的元素值和要進行變換坐標的坐標值,送入四個FMAC中的每一個,作為進行操作的算術項。輸入的變換矩陣元素值和坐標的坐標值進行乘加運算,以執(zhí)行矩陣運算。例如,變換矩陣第一行上的元素值(M11,M12,M13,M14)和坐標的坐標值(Vx,Vy,Vz,Vw)進行乘加運算,計算“M11·Vx+M12·Vy+M13·Vz+M14·Vw”。由于四個FMAC中的每一個都進行類似的乘加運算,矩陣運算便能高效地完成。在上式中,“·”表示乘法。
進行數(shù)學表達式2中的內積運算時,四個FMAC中的每一個只涉及元素X、Y、Z和W中的一個元素值。所以,Ax和Bx、Ay和By、Az和Bz以及Aw和Bw分別提供給四個FMAC。計算Ax·Bx、Ay·By、Az·Bz以及Aw·Bw作為它們各自的輸出。因此,執(zhí)行數(shù)學表達式2還需要一個單獨的加法器,把四個FMAC的輸出加起來,這就增加了電路的規(guī)模。
從以上論述顯而易見,常規(guī)的并行運算設備能夠提供高效的矩陣運算處理。不過,僅僅由并行提供的FMAC不能執(zhí)行向量內積運算,往往需要一個附加的加法器。
(數(shù)學表達式1)M11M12M13M14M21M22M23M24M31M32M33M34M41M42M43M44VxVyVzVw=M11·Vx+M12·Vy+M13·V2+M14·VwM21·Vx+M22·Vy+M23·Vz+M24·VwM31·Vx+M32·Vy+M33·Vz+M34·VwM41·Vx+M42·Vy+M43·Vz+M44·Vw]]>(數(shù)學表達式2)(Ax,Ay,Az,Aw)·(Bx,By,Bz,Bw)=Ax·Bx+Ay·By+Az·Bz+Aw·Bw發(fā)明內容本發(fā)明的一個主要目的就是提供一種并行運算設備,在矩陣運算的效率與常規(guī)并行運算設備相同的情況下,能夠容易地進行向量內積運算。
依據(jù)本發(fā)明的、解決上述問題的并行運算設備包括多個配對的記錄裝置和運算裝置,前者記錄要進行運算的算術項,后者根據(jù)記錄裝置中記錄的算術項進行乘加運算,其中,在所有配對的所述記錄裝置中選擇一個,而且為了向配對中的運算裝置提供選定的記錄裝置中記錄的算術項,在任何一對記錄裝置和運算裝置之間插入選擇裝置。
當選擇裝置在選擇裝置本身插入的配對中選擇記錄裝置時,本發(fā)明的并行運算設備能夠執(zhí)行每對中相互獨立的、使用算術項的運算。也就是,可能進行類似于常規(guī)技術中的矩陣運算。
相反,當選擇裝置以循環(huán)方式在所有記錄裝置中一個接一個地選擇記錄裝置時,可能使用每對的記錄裝置中記錄的算術項執(zhí)行運算。也就是,本發(fā)明的并行運算設備能夠容易地執(zhí)行內積運算而無須使用其它的電路,比如加法器。
這種并行運算設備也可以在記錄裝置和運算裝置的配對中沒有插入選擇裝置時,在記錄裝置和運算裝置之間插入臨時記錄裝置,用于臨時記錄配對中記錄裝置中記錄的算術項。在這種情況下,選擇裝置的構造方式為,如果選定的記錄裝置所在的配對中沒有插入選擇裝置,就向運算裝置提供臨時記錄裝置中記錄的算術項。
插入臨時記錄裝置,排除了從記錄裝置取出算術項時,記錄裝置輸出端口的占用需求。這使得其中插入了臨時記錄裝置的配對的記錄裝置和運算裝置能夠執(zhí)行其它處理。
在并行運算設備中,所有配對中的記錄裝置在矩陣運算期間記錄用于矩陣運算的第一算術項,而在向量內積運算期間記錄用于向量內積運算的第二算術項,選擇裝置的構造方式為,從配對本身的記錄裝置向配對本身的運算裝置輸入第一算術項,在內積運算期間,構造方式為,在所有配對中以循環(huán)方式一個一個地選擇記錄裝置,并從選定的記錄裝置向配對本身的運算裝置提供第二算術項。
每個運算裝置執(zhí)行運算的內容,是采用該配對的記錄裝置中記錄的算術項,獨立地分配到該配對的,并且,如果這種并行運算設備用于三維計算機圖形,這種運算就與四維坐標分量的任何一個相關聯(lián)。
本發(fā)明的另一個實施例是選擇性地執(zhí)行矩陣運算和向量內積運算的一種并行運算設備,包括多個記錄裝置,在矩陣運算期間記錄用于矩陣運算的第一算術項,而在內積運算期間記錄用于內積運算的第二算術項;多個運算裝置,與多個記錄裝置形成一對一的對應關系,在矩陣運算期間每個運算裝置接收對應的記錄裝置中記錄的第一算術項后執(zhí)行乘加運算,在內積運算期間運算裝置中預定的一個接收所有記錄裝置中記錄的第二算術項后執(zhí)行乘加運算;以及選擇裝置,在矩陣運算期間選擇對應于預定運算裝置的記錄裝置,并向預定的運算裝置提供這個記錄裝置中記錄的第一算術項,而在內積運算期間,以循環(huán)方式一個一個地選擇多個記錄裝置,并向預定的運算裝置提供選定的記錄裝置中記錄的第二算術項。
在這種并行運算設備中,運算裝置的構造方式為,例如當算術項表示為浮點數(shù)時,進行浮點數(shù)的乘加運算。
依據(jù)本發(fā)明的娛樂設備是通過對表示物體位置和形狀的坐標進行矩陣運算,以及對用于表示物體圖像的向量進行內積運算,從而對娛樂圖像進行圖像處理的一種娛樂設備,包括多個寄存器,在矩陣運算期間記錄用于矩陣運算的第一算術項,在內積運算期間記錄用于內積運算的第二算術項;多個乘加運算器,與多個寄存器形成一對一的對應關系,在矩陣運算期間通過每個乘加運算器接收對應的寄存器中記錄的第一算術項進行乘加運算,在內積運算期間通過乘加運算器中預定的一個接收所有寄存器中記錄的第二算術項進行乘加運算;以及一個選擇器,在矩陣運算期間選擇預定的乘加運算器對應的寄存器,并向預定的乘加運算器提供這個寄存器中記錄的第一算術項,并且在內積運算期間以循環(huán)方式一個一個地選擇多個寄存器,并向預定的乘加運算器提供選定的寄存器中記錄的第二算術項。
本發(fā)明的另一個娛樂設備是通過進行矩陣和坐標值之間的矩陣運算,對表示物體位置和形狀的坐標進行坐標變換,以及進行物體表面法線方向上的法線向量和光源的位置向量之間的內積運算,以確定物體表面的顯示模式,從而對娛樂圖像進行圖像處理的一種娛樂設備,包括多個寄存器,在矩陣運算期間記錄坐標值和矩陣的任何一行對應的元素值,在內積運算期間記錄法線向量和位置向量的任何一個分量對應的分量值;若干乘加運算器,與多個寄存器形成一對一的對應關系,在矩陣運算期間通過每個乘加運算器接收對應的寄存器中記錄的坐標值和矩陣的一行對應的元素值進行乘加運算,在內積運算期間通過乘加運算器中預定的一個接收所有寄存器中記錄的法線向量和位置向量的分量值進行乘加運算;一個選擇器,在矩陣運算期間選擇預定乘加運算器對應的寄存器,并向預定的乘加運算器提供這個寄存器中記錄的坐標值和矩陣的一行對應的元素值,在內積運算期間以循環(huán)方式一個一個地選擇多個寄存器,并向預定的乘加運算器提供選定寄存器中記錄的法線向量和位置向量的分量值。
依據(jù)本發(fā)明的處理方法是能夠選擇性地執(zhí)行矩陣運算和向量內積運算的一種處理方法,由配備了多個運算裝置的一種設備來執(zhí)行,包括以下步驟在矩陣運算期間,根據(jù)運算裝置的特性把算術項分配給多個運算裝置,以提供用于矩陣運算的算術項,從而根據(jù)分配的算術項進行乘加運算;而在內積運算期間,提供在一個預定的運算裝置中進行內積運算所用的算術項,使該運算裝置能夠根據(jù)算術項進行乘加運算。
依據(jù)本發(fā)明的計算機程序是可能選擇性地執(zhí)行矩陣運算和向量內積運算的一種計算機程序,使一臺配備了多個運算裝置的計算機執(zhí)行以下步驟在矩陣運算期間,根據(jù)運算裝置的特性把算術項分配給多個運算裝置,以提供用于矩陣運算的算術項,從而根據(jù)分配的算術項進行乘加運算;而在內積運算期間,提供在一個預定的運算裝置中進行內積運算所用的算術項,使該運算裝置能夠根據(jù)算術項進行乘加運算。
依據(jù)本發(fā)明的半導體設備是可能選擇性地執(zhí)行矩陣運算和向量內積運算的一種半導體設備,內置于一臺設備中,該設備含有配備了多個運算裝置的計算機,使該設備執(zhí)行以下步驟在矩陣運算期間,根據(jù)運算裝置的特性把算術項分配給多個運算裝置,以提供用于矩陣運算的算術項,從而使每個運算裝置能夠根據(jù)分配的算術項進行乘加運算;而在內積運算期間,提供在一個預定的運算裝置中進行內積運算所用的算術項,使該運算裝置能夠根據(jù)算術項進行乘加運算。
附圖簡要說明
圖1是一臺娛樂設備的框圖;圖2是一臺并行運算設備的框圖;圖3是一個FMAC的內部框圖;圖4是一個流程圖,顯示內積運算處理的過程;以及圖5是一臺并行運算設備的框圖。
具體實施例方式
參考文中的附圖具體介紹本發(fā)明的實施例。
圖1說明了依據(jù)本發(fā)明的、包括并行運算設備的一個娛樂設備配置實例。
這個娛樂設備1包括兩條總線,一條主總線B1和一條次總線B2,連接著多個半導體設備,每個都具有指定的功能。這些總線B1和B2通過總線接口INT互相連接或者斷開。
主總線B1連接到主CPU 10(它是一個主要的半導體設備)、主存儲器11(它由RAM組成)、主DMAC(直接存儲器訪問控制器)12、MPEG(運動圖象專家組)解碼器13和圖形處理單元(下文中稱為“GPU”)14(具有內建的幀存儲器15作為圖形存儲器)。GPU 14連接到CRTC(CRT控制器)16以產(chǎn)生視頻輸出信號,所以幀存儲器15中繪制的數(shù)據(jù)可以顯示在未畫出的顯示設備上。
娛樂設備1激活時,主CPU 10通過總線接口INT從次總線B2上的ROM 23加載一個自舉程序,并執(zhí)行該自舉程序以啟動操作系統(tǒng)。它控制介質驅動器27,從這個介質驅動器27中安裝的介質28讀取應用程序或數(shù)據(jù),并將它存放在主存儲器11中。它對從介質28讀出的多種數(shù)據(jù)執(zhí)行以上介紹的幾何處理,比如多個基本圖形(多邊形)組成的三維物體數(shù)據(jù)(多邊形頂點(代表點)的坐標值)。然后,它產(chǎn)生一個顯示列表,其內容包含多邊形定義信息(所用多邊形形狀的說明、其繪制位置、多邊形組件的類型、顏色或紋理),作為幾何處理的結果。
并行運算設備100包括在主CPU 10中,它用于幾何處理等。后面將要介紹并行運算設備100的細節(jié)。
GPU 14是具有以下功能的一種半導體設備,存放繪圖環(huán)境(包括多邊形組件的繪圖數(shù)據(jù))、根據(jù)主CPU 10通知的顯示列表讀取繪圖環(huán)境來進行透視圖處理(繪圖處理)以及在幀存儲器15中繪制多邊形。幀存儲器15也可以用作紋理存儲器。因此,幀存儲器15中的象素圖像可以作為紋理粘貼在要繪制的多邊形上。
主DMAC 12是一種半導體設備,不僅控制著向主總線B1連接著的每個電路的DMA傳遞,而且還根據(jù)總線接口INT的狀態(tài)控制著向次總線B2連接著的每個電路的DMA傳遞。MDEC 13是一種半導體設備,與主CPU 10并行運作,具有數(shù)據(jù)解壓的功能,這些數(shù)據(jù)是以例如MPEG(運動圖象專家組)或JPEG(聯(lián)合圖象專家組)格式壓縮的。
次總線B2連接到次CPU 20(包括一個微處理器)、次存儲器21(它由RAM組成)、次DMAC 22、ROM 23(其中存放著一種控制程序比如操作系統(tǒng))、聲音處理半導體設備(SPU聲音處理單元)24(它讀取聲音存儲器25中存放的聲音數(shù)據(jù)并產(chǎn)生音頻輸出)、通訊控制部件(ATM)26(它通過未畫出的網(wǎng)絡與外部設備交換信息)、介質驅動器27(其中可以加載一種介質28,比如CD-ROM和DVD-ROM)和輸入設備31。
次CPU 20根據(jù)ROM 23中存放的控制程序進行多種操作。次DMAC 22是一種半導體設備,它控制某些操作,比如只有當總線接口INT斷開總線B1和次總線B2時,才進行向次總線B2連接著的每個電路的DMA傳遞。輸入設備31配備著連接終端32,通過它從操縱裝置33提供輸入信號。
帶有這種配置的娛樂設備1可以高速地進行矩陣運算和內積運算,在幾何處理期間,通過主CPU 10中包括的并行運算設備100進行這些運算,下面將要介紹。
并行運算設備100高速地執(zhí)行多邊形頂點坐標變換時要進行的、變換矩陣和頂點坐標值之間的矩陣運算,以及確定顯示條件比如物體表面亮度時要進行的、表面法線方向上的法線向量和光源位置向量的內積運算。
<實施例1>
圖2顯示了主CPU 10中包括的并行運算設備100的一個配置實例。
這個并行運算設備100a通過主總線B1從主存儲器11獲取幾何處理需要的多邊形頂點的坐標值和數(shù)據(jù)(算術項),比如矩陣運算所用的變換矩陣,并進行運算。
并行運算設備100a配置為從控制電路110、寄存器120a至120d、選擇器130a和130b、FMAC 140a至140d作為運算單元,以及內部存儲設備150。寄存器120a至120d和內部存儲設備150通過內部總線B連接。
寄存器120a至120d中每一個與FMAC 140a至140d形成一對,寄存器設計為與FMAC具有一對一的對應關系。為了進行使用4×4變換矩陣的矩陣運算和四維向量的內積運算,這個實施例使用四對寄存器和FMAC,不過可以根據(jù)處理的需要確定適當?shù)呐鋵?shù)目。
在寄存器120a和FMAC 140a之間配備了選擇器130a和130b。
在這個實施例中,矩陣運算和內積運算所用的算術項是以浮點數(shù)給出的,但是不必說也可以使用定點數(shù)來代替。當算術項由定點數(shù)表示時,將會使用定點數(shù)乘加運算器而不是FMAC 140a至140d。
控制電路110控制著并行運算設備100a的整個運作。例如,該控制電路控制著內部存儲設備150、寄存器120a至120d中算術項的記錄以及選擇器130a和130b的操作。
在控制電路110的控制下,寄存器120a至120d從內部存儲設備150內的算術項(比如矩陣運算或內積運算之類的運算所用的變換矩陣的元素值、要進行變換之坐標的坐標值和向量分量值)中取得并記錄分配給各自寄存器的算術項。
進行四維向量的內積運算時,寄存器從兩個四維向量的分量值中,取得并記錄分配給各自寄存器的分量值,作為算術項。例如,對兩個四維向量(Ax,Ay,Az,Aw)和(Bx,By,Bz,Bw),寄存器120a記錄分量值Ax和Bx,寄存器120b記錄分量值Ay和By,寄存器120c記錄分量值Az和Bz,寄存器120d記錄分量值Aw和Bw。
使用4×4變換矩陣進行矩陣運算時,寄存器取得并記錄要進行變換的四維坐標的坐標值和變換矩陣中分配給各自寄存器的一行中的元素值,作為算術項。例如,除了四維坐標的坐標值之外,寄存器120a至120d還記錄變換矩陣的元素值;寄存器120a記錄變換矩陣第一行的元素值,寄存器120b記錄變換矩陣第二行的元素值,寄存器120c記錄變換矩陣第三行的元素值,寄存器120d記錄變換矩陣第四行的元素值,作為它們各自的算術項。寄存器120a至120d中每一個記錄變換矩陣中每一行第一列的元素值和要進行變換的四維坐標的第一個分量值的一對、第二列的元素值和第二個分量值的一對、第三列的元素值和第三個分量值的一對、第四列的元素值和第四個分量值的一對,而且這些值每次讀取一對。
不僅如此,寄存器120a至120d還記錄與之形成一對的FMAC140a至140d的計算結果。
選擇器130a和130b選擇寄存器120a至120d之一,取得要記錄在選定寄存器中的算術項,并把它提供給FMAC 140a。進行內積運算時,這些選擇器以循環(huán)方式選擇寄存器120a至120d之一,取得要記錄在選定寄存器中的算術項,并把它提供給FMAC 140a。進行矩陣運算時,這些選擇器總是選擇寄存器120a,取得寄存器120a中記錄的算術項,并把它提供給FMAC 140a。
根據(jù)當時進行運算的內容和運算進展情況等等,選擇器130a和130b選擇控制電路110指定的一個寄存器。
FMAC 140a至140d取得寄存器120a至120d中記錄的兩個算術項,并進行乘加。
圖3是FMAC 140a的內部框圖。由于其它FMAC 140b至140d也具有類似的配置,這里只介紹FMAC 140a的配置,省略其它FMAC140b至140d的介紹。
為了對取得的算術項進行乘加,配備了浮點數(shù)乘法器(FMULFloating MULtiply)141和浮點數(shù)加法器(FADDFloating ADDer)142。取得的兩個算術項首先由FMUL 141相乘。相乘的結果送到FADD 142。FADD 142把從FMUL 141送來的、相乘的結果一個一個地加起來。
例如,一個接一個地取得a0至an和b0至bn作為算術項時,F(xiàn)MAC140a獲得以下計算結果a0·b0+a1·b1+a2·b2+…+a(n-1)·b(n-1)+an·bnFMAC 140a至140d向它們各自配對的寄存器提供計算結果。
使用選擇器130a和130b,在內積和矩陣運算期間FMAC 140a至140d執(zhí)行以下運算。
進行內積運算時,F(xiàn)MAC 140a把由寄存器120a至120d通過選擇器130a和130b提供的兩個向量中分量的分量值相乘,并把相乘的結果一個一個地加起來。進行乘和加的次數(shù)可以計數(shù),使內積運算的進展狀態(tài)可知,在內積運算完成之前防止隨后的指令啟動。
進行矩陣運算時,F(xiàn)MAC 140a至140d把從對應的寄存器120a至120d取得的變換矩陣的元素值與形成配對的四維坐標的坐標值相乘,并把相乘的結果一個一個地加起來。
在控制電路110的控制下,內部存儲設備150從主存儲器11取得多邊形頂點的坐標值、矩陣運算所用的變換矩陣的元素值、向量分量值的幾何處理所需的數(shù)據(jù),并記錄這些值。不僅如此,內部存儲設備150還從寄存器120a至120d取得和記錄計算結果。這些計算結果通過內部存儲設備150發(fā)送到主存儲器11。
在內部存儲設備150和主存儲器11之間進行直接存儲器訪問傳遞,它允許高速數(shù)據(jù)交換,而且適于需要大容量數(shù)據(jù)處理的處理,比如圖像處理。
下面介紹的處理過程是并行運算設備100a進行數(shù)學表達式2中的內積運算,也就是向量A(Ax,Ay,Az,Aw)和向量B(Bx,By,Bz,Bw)之間的內積運算。圖4是這種處理過程的一個流程圖。
并行運算設備100a通過直接存儲器訪問傳遞取得主存儲器11中存放的向量A(Ax,Ay,Az,Aw)和向量B(Bx,By,Bz,Bw)的分量值,并把這些分量值記錄在內部存儲設備150中(步驟S101)。
寄存器120a至120d從內部存儲設備150中存放的向量A(Ax,Ay,Az,Aw)和向量B(Bx,By,Bz,Bw)的分量值中取得分配給各自寄存器的分量值。也就是,寄存器120a取得Ax和Bx,寄存器120b取得Ay和By,寄存器120c取得Az和Bz,寄存器120d取得Aw和Bw(步驟S102)。
選擇器130a和130b選擇寄存器120a至120d之一,取得要記錄在選定寄存器中的、向量A和向量B的分量值,并把它們提供給FMAC140a??刂齐娐?10根據(jù)內積運算的進展狀態(tài),確定應當選擇寄存器120a至120d中的哪一個。在控制電路110的控制下,選擇器130a和130b選擇寄存器120a至120d之一。這時,這些選擇器首先選擇寄存器120a,取得Ax和Bx,并把它們提供給FMAC 140a(步驟S103)。FMAC 140a使用FMUL 141和FADD 142進行Ax和Bx之間的乘加運算(步驟S104)。進行第一次乘加運算之前,清除FMAC 140a的內部狀態(tài)。
乘加運算之后,F(xiàn)MAC 140a確定內積運算是否已經(jīng)完成(步驟S105)。通過了解用于內積運算的向量分量值的數(shù)目,可以確定內積運算是否已經(jīng)完成。對進行乘加運算的次數(shù)計數(shù),當計數(shù)值等于收到的向量的分量值數(shù)目時,就確定內積運算已經(jīng)完成。這樣就可能從計數(shù)值發(fā)現(xiàn)從其中應當提取后續(xù)分量值的寄存器。內積運算是否已經(jīng)完成的確定結果發(fā)送到控制電路110。
在這種情況下,內積運算尚未完成(步驟S105N),所以控制電路110使選擇器130a和130b選擇寄存器120b。在控制電路110的控制下,選擇器130a和130b選擇寄存器120b,取得Ay和By,并把它們提供給FMAC 140a。FMAC 140a取得Ay和By后,F(xiàn)MUL 141和FADD 142進行乘加運算以獲得Ax·Bx+Ay·By。同樣,重復步驟S103至S105,直到內積運算完成,獲得Ax·Bx+Ay·By+Az·Bz+Aw·Bw。
確定內積運算已經(jīng)完成(步驟S105Y)之后,F(xiàn)MAC 140a向寄存器120a提供計算結果(步驟S106)。輸出之后,F(xiàn)MAC 140a清除內部狀態(tài)(步驟S107)。輸出的計算結果從寄存器120a向內部存儲設備150提供并發(fā)送到主存儲器11。
這就完成了內積運算。
選擇器130a和130b允許在不同分量的分量值之間進行計算,使內積運算更容易進行。選擇器130a和130b配備在寄存器120a和FMAC 140a之間,這并不意味著僅限于此。這些選擇器也可以配備在寄存器120b和FMAC 140b之間、在寄存器120c和FMAC 140c之間或者在寄存器120d和FMAC 140d之間。
進行矩陣運算時,選擇器130a和130b總是選擇寄存器120a,只把寄存器120a中記錄的算術項提供給FMAC 140a,而從不把其它寄存器120b至120d中記錄的算術項提供給FMAC 140a。寄存器120b至120d中記錄的算術項送入FMAC 140b至140d,F(xiàn)MAC 140b至140d與之形成它們各自的配對并進行處理。
例如,進行數(shù)學表達式1中的矩陣運算時,寄存器120a記錄變換矩陣第一行的元素值(M11,M12,M13,M14)和四維坐標的坐標值(Vx,Vy,Vz,Vw)。寄存器120b記錄變換矩陣第二行的元素值(M21,M22,M23,M24)和四維坐標的坐標值(Vx,Vy,Vz,Vw)。寄存器120c記錄變換矩陣第三行的元素值(M31,M32,M33,M34)和四維坐標的坐標值(Vx,Vy,Vz,Vw)。寄存器120d記錄變換矩陣第四行的元素值(M41,M42,M43,M44)和四維坐標的坐標值(Vx,Vy,Vz,Vw)。
FMAC 140a至140d順序地取得FMAC與之形成它們各自配對的寄存器120a至120d中記錄的元素值和坐標值,并進行運算。假設以FMAC 140a為例,F(xiàn)MAC 140a通過選擇器130a和130b從寄存器120a取得M11和Vx,并使用FMUL 141計算M11·Vx。它們把這個結果送到FADD 142。然后,它們取得M12和Vy,并計算M12·Vy,把這個結果送到FADD 142并計算M11·Vx+M12·Vy。然后,它們對M13和Vz以及M14和Vw進行同樣的計算,并計算M11·Vx+M12·Vy+M13·Vz+M14·Vw。其它FMAC 140b至140d進行同樣的運算。因此,F(xiàn)MAC 140a至140d進行并行運算,從而與常規(guī)技術同樣的速度執(zhí)行4×4矩陣運算。
正如以上的介紹,并行運算設備100a是選擇性地進行矩陣運算和向量內積運算的一種設備。該并行運算設備至少配備了寄存器120a至120d(在矩陣運算期間它們記錄變換矩陣的元素值作為算術項,在內積運算期間它們記錄向量分量值作為算術項)、FMAC 140a至140d(它們取得寄存器120a至120d中記錄的算術項并進行乘加運算)、選擇器130a和130b(它們從寄存器120a至120d中選擇一個寄存器并向FMAC 140a提供選定的寄存器中寄存的算術項)。寄存器120b至120d與FMAC 140b至140d形成一對一的對應關系。選擇器130a和130b在矩陣運算期間向FMAC 140a提供寄存器120a中記錄的變換矩陣的元素值,而在內積運算期間以循環(huán)方式一個一個地選擇寄存器120a至120d并向FMAC 140a提供選定的寄存器中記錄的向量分量值。
從以上顯而易見,選擇器130a和130b使得可能選擇性地進行矩陣運算和內積運算。
<實施例2>
圖5是依據(jù)另一個實施例的一臺并行運算設備100b的框圖。
與圖2所示的并行運算設備100a相比,并行運算設備100b的不同之處只有在寄存器120b至120d的輸出端配備了臨時寄存器160b至160d。
這個并行運算設備100b配置為寄存器120a至120d記錄算術項,F(xiàn)MAC 140a至140d根據(jù)寄存器120a至120d中記錄的算術項進行乘加運算。選擇器130a和130b插入寄存器120a和FMAC 140a之間,臨時寄存器160b至160d插入寄存器120b至120d和FMAC 140b至140d之間。選擇器130a和130b從寄存器120a和臨時寄存器160b至160d之中選擇一個,并向FMAC 140a提供選定的寄存器120a或臨時寄存器160b至160d中記錄的算術項。這些元素的運算受到控制電路110的控制。
臨時寄存器160b至160d與寄存器120b至120d具有一對一的對應關系。當它們對應的寄存器120b至120d中記錄的算術項要送到FMAC 140b至140d或選擇器130a和130b時,臨時寄存器160b至160d臨時存放這些值。
由于臨時寄存器160b至160d臨時存放來自寄存器120b至120d的算術項,即使算術項沒有同時從寄存器120b至120d送入FMAC140a,如內積運算的情況,寄存器120b至120d的讀取端口也不會被內積運算所用的算術項占用。因此,F(xiàn)MAC 140a正在進行矩陣運算的同時,其它FMAC 140b至140d還能夠從寄存器120b至120d取得后續(xù)的算術項,進行乘加運算。
在以上介紹的實施例中,使用并行運算設備100的娛樂設備是作為實例來介紹,并不僅限于此。本發(fā)明的并行運算設備可以使用進行并行運算處理和至少進行矩陣運算和內積運算的任何信息處理器。另外,寄存器和乘加運算器(FMAC)配對的數(shù)目不限于4??梢园凑沼嘘P設備進行的處理確定配對的數(shù)目。
不僅如此,還能夠通過使計算機執(zhí)行本發(fā)明的計算機程序來實現(xiàn)并行運算設備100。通過計算機可訪問的記錄介質比如磁盤設備或半導體存儲器中記錄的計算機程序和計算機中包含的控制程序(OS等)之間的合作,這個實施例在帶有多個FMAC的計算機上形成了對應于選擇器130a和130b的功能塊。
正如以上的介紹,本發(fā)明在執(zhí)行矩陣運算與常規(guī)技術同樣高效的同時,還能夠容易地執(zhí)行向量內積運算。
權利要求
1.一種并行運算設備,包括多個配對的記錄裝置和運算裝置,前者記錄要進行運算的算術項,后者根據(jù)所述記錄裝置中記錄的算術項進行乘加運算,其特征在于,在所有配對的所述記錄裝置中選擇一個,而且為了向所述配對中的運算裝置提供選定的記錄裝置中記錄的所述算術項,在任何一對記錄裝置和運算裝置之間插入選擇裝置。
2.根據(jù)權利要求1的并行運算設備,其特征在于,在記錄裝置和運算裝置的配對中沒有插入所述選擇裝置時,在記錄裝置和運算裝置之間插入臨時記錄裝置,用于臨時記錄配對中記錄裝置中記錄的所述算術項,以及所述選擇裝置的構造方式為,如果選定的記錄裝置所在的配對中沒有插入所述選擇裝置,就向所述運算裝置提供所述臨時記錄裝置中記錄的算術項。
3.根據(jù)權利要求1的并行運算設備,其特征在于,所有配對的所述記錄裝置在矩陣運算期間記錄用于所述矩陣運算的第一算術項,而在向量內積運算期間記錄用于所述內積運算的第二算術項,所述選擇裝置在所述矩陣運算期間的構造方式為,從配對本身的記錄裝置向配對本身的運算裝置輸入所述第一算術項,在所述內積運算期間,構造方式為,在所有配對中以循環(huán)方式一個一個地選擇所述記錄裝置,并從選定的記錄裝置向配對本身的運算裝置提供所述第二算術項。
4.根據(jù)權利要求1的并行運算設備,其特征在于,每個所述運算裝置執(zhí)行運算的內容,是采用所述配對的記錄裝置中記錄的所述算術項,獨立地分配到所述配對的。
5.根據(jù)權利要求4的并行運算設備,其特征在于,所述運算是與四維坐標分量的任何一個相關聯(lián)的一種運算。
6.一種并行運算設備,選擇性地執(zhí)行矩陣運算和向量內積運算,包括多個記錄裝置,在所述矩陣運算期間記錄用于所述矩陣運算的第一算術項,而在所述內積運算期間記錄用于所述內積運算的第二算術項;多個運算裝置,與所述多個記錄裝置形成一對一的對應關系,在所述矩陣運算期間每個運算裝置接收對應的記錄裝置中記錄的所述第一算術項后執(zhí)行乘加運算,在所述內積運算期間運算裝置中預定的一個接收所有記錄裝置中記錄的所述第二算術項后執(zhí)行乘加運算;以及選擇裝置,在所述矩陣運算期間選擇對應于所述預定運算裝置的記錄裝置,并向所述預定運算裝置提供這個記錄裝置中記錄的第一算術項,而在所述內積運算期間,以循環(huán)方式一個一個地選擇所述多個記錄裝置,并向所述預定運算裝置提供選定的記錄裝置中記錄的第二算術項。
7.根據(jù)權利要求6的并行運算設備,其特征在于,所述算術項表示為浮點數(shù),所述運算裝置被構造為進行浮點數(shù)的乘加運算。
8.一種娛樂設備,通過對表示物體位置和形狀的坐標進行矩陣運算,以及對用于表示所述物體圖像的向量進行內積運算,從而對娛樂圖像進行圖像處理,包括多個寄存器,在所述矩陣運算期間記錄用于所述矩陣運算的第一算術項,在所述內積運算期間記錄用于所述內積運算的第二算術項;多個乘加運算器,與所述多個寄存器形成一對一的對應關系,在所述矩陣運算期間通過每個乘加運算器接收對應的寄存器中記錄的所述第一算術項進行乘加運算,在所述內積運算期間通過乘加運算器中預定的一個接收所有寄存器中記錄的所述第二算術項進行乘加運算;以及一個選擇器,在所述矩陣運算期間選擇所述預定乘加運算器對應的寄存器,并向所述預定乘加運算器提供這個寄存器中記錄的第一算術項,在所述內積運算期間以循環(huán)方式一個一個地選擇所述多個寄存器,并向所述預定乘加運算器提供選定的寄存器中記錄的第二算術項。
9.一種娛樂設備,通過進行矩陣和坐標值之間的矩陣運算,對表示物體位置和形狀的坐標進行坐標變換,以及進行所述物體表面法線方向上的法線向量和光源的位置向量之間的內積運算,以確定所述物體表面的顯示模式,從而對娛樂圖像進行圖像處理,包括多個寄存器,在所述矩陣運算期間記錄坐標值和所述矩陣的任何一行對應的元素值,在所述內積運算期間記錄所述法線向量和所述位置向量的任何一個分量對應的分量值;若干乘加運算器,與所述多個寄存器形成一對一的對應關系,在所述矩陣運算期間通過每個乘加運算器接收對應的寄存器中記錄的所述坐標值和所述矩陣的所述一行對應的元素值進行乘加運算,在所述內積運算期間通過乘加運算器中預定的一個接收所有寄存器中記錄的所述法線向量和所述位置向量的分量值進行乘加運算;一個選擇器,在所述矩陣運算期間選擇所述預定乘加運算器對應的寄存器,并向所述預定乘加運算器提供這個寄存器中記錄的所述坐標值和所述矩陣的所述一行對應的元素值,在所述內積運算期間以循環(huán)方式一個一個地選擇所述多個寄存器,并向所述預定乘加運算器提供選定寄存器中記錄的所述法線向量和所述位置向量的分量值。
10.一種處理方法,能夠選擇性地執(zhí)行矩陣運算和向量內積運算,由配備了多個運算裝置的一種設備來執(zhí)行,包括以下步驟在所述矩陣運算期間,根據(jù)運算裝置的特性把算術項分配給所述多個運算裝置,以提供用于所述矩陣運算的算術項,從而根據(jù)分配的算術項進行乘加運算;以及在所述內積運算期間,提供在一個預定的運算裝置中進行所述內積運算所用的算術項,使所述運算裝置能夠根據(jù)算術項進行乘加運算。
11.一種計算機程序,可能選擇性地執(zhí)行矩陣運算和向量內積運算,使一臺配備了多個運算裝置的計算機執(zhí)行以下步驟在所述矩陣運算期間,根據(jù)運算裝置的特性把算術項分配給所述多個運算裝置,以提供用于所述矩陣運算的算術項,從而根據(jù)分配的算術項進行乘加運算;以及在所述內積運算期間,提供在一個預定的運算裝置中進行所述內積運算所用的算術項,使所述運算裝置能夠根據(jù)算術項進行乘加運算。
12.一種半導體設備,可能選擇性地執(zhí)行矩陣運算和向量內積運算,內置于一臺設備中,該設備含有配備了多個運算裝置的計算機,使所述設備執(zhí)行以下步驟在所述矩陣運算期間,根據(jù)運算裝置的特性把算術項分配給所述多個運算裝置,以提供用于所述矩陣運算的算術項,從而使每個運算裝置能夠根據(jù)分配的算術項進行乘加運算;以及在所述內積運算期間,提供在一個預定的運算裝置中進行所述內積運算所用的算術項,使所述運算裝置能夠根據(jù)算術項進行乘加運算。
全文摘要
本發(fā)明提供一種并行運算設備,能夠容易地執(zhí)行向量內積運算以及高效的矩陣運算。并行運算設備(100a)成對配備了寄存器(120a至120d)和FMAC(140a至140d),前者記錄要進行運算的算術項,后者根據(jù)這些寄存器(120a至120d)中記錄的算術項執(zhí)行乘加運算。選擇器(130a、130b)插入寄存器(120a)和FMAC(140a)之間。選擇器(130a、130b)在矩陣運算期間向FMAC(140a)提供寄存器(120a)中記錄的算術項,在向量內積運算期間以循環(huán)方式一個一個地選擇寄存器(120a至120d)并向FMAC(140a)提供選定的寄存器中記錄的算術項。
文檔編號G06T15/00GK1394314SQ01803389
公開日2003年1月29日 申請日期2001年11月2日 優(yōu)先權日2000年11月2日
發(fā)明者馬越英尚 申請人:索尼計算機娛樂公司