国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      表面計算機(jī)及使用表面計算機(jī)的計算方法

      文檔序號:6543876閱讀:367來源:國知局
      專利名稱:表面計算機(jī)及使用表面計算機(jī)的計算方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及表面計算機(jī)及計算方法,通過同時對二維區(qū)域單元的二維區(qū)域中所包含的計算數(shù)據(jù)進(jìn)行計算,所述表面計算機(jī)及計算方法能夠在諸如物理計算、環(huán)境計算、行為計算、情緒計算等的各種類型的復(fù)雜計算中執(zhí)行快速計算。
      背景技術(shù)
      近來,自然科學(xué)和工程技術(shù)的各個領(lǐng)域有了顯著發(fā)展。在自然科學(xué)和工程技術(shù)中,需要大量的物理計算。例如,在太空開發(fā)項目、流體動力學(xué)以及量子力學(xué)領(lǐng)域,都需要進(jìn)行大量的矩陣計算。當(dāng)這樣的計算需要高速進(jìn)行時,必須對計算機(jī)進(jìn)行優(yōu)化。
      傳統(tǒng)的計算機(jī),尤其是個人計算機(jī),已經(jīng)發(fā)展到足以超過老式通用計算機(jī)(稱作“主機(jī)”)。
      然而,這樣的人計算機(jī)難以高速進(jìn)行上述大量計算,或者說,這樣的個人計算機(jī)要花長時間來進(jìn)行上述計算。可以認(rèn)為計算機(jī)中出現(xiàn)的數(shù)據(jù)傳輸速度、數(shù)據(jù)處理速度等的延時是妨礙個人計算機(jī)高速進(jìn)行大量計算的原因。
      因此,對于需要進(jìn)行上述大量計算的開發(fā)人員、研究人員,早就希望有能夠高速進(jìn)行大量計算的計算機(jī)。
      發(fā)明概述因此,本發(fā)明的一個目的是提供一種具有新穎體系結(jié)構(gòu)的計算機(jī)及使用這種計算機(jī)的計算方法,所述計算機(jī)和所述方法能夠高速進(jìn)行大量計算。
      為此,根據(jù)本發(fā)明的第一方面,提供了一種表面計算機(jī),它包括地址發(fā)生器,用于生成地址,供調(diào)整關(guān)于至少一個存儲區(qū)域的表面區(qū)域數(shù)據(jù);以及并行計算機(jī),在地址發(fā)生器的后級提供,具有多個單元計算機(jī)。
      根據(jù)本發(fā)明的第二方面,表面計算機(jī)包括地址發(fā)生器,用于產(chǎn)生地址,供調(diào)整有關(guān)至少一個存儲區(qū)域的表面區(qū)域數(shù)據(jù);并行計算機(jī),在地址發(fā)生器的后級提供,具有多個單元計算機(jī);以及存儲單元,它連接到所述并行計算機(jī)。
      根據(jù)本發(fā)明的第三方面,表面計算機(jī)包括地址發(fā)生器,用于產(chǎn)生地址,供調(diào)整有關(guān)至少一個存儲區(qū)域的表面區(qū)域數(shù)據(jù);以及并行計算機(jī),在地址發(fā)生器的后級提供,具有多個單元計算機(jī),其中由構(gòu)成指令字的操作數(shù)所指定的區(qū)域為線(line)。
      根據(jù)本發(fā)明的第四方面,表面計算機(jī)包括地址發(fā)生器,用于產(chǎn)生地址,供調(diào)整有關(guān)至少一個存儲區(qū)域的表面區(qū)域數(shù)據(jù);以及并行計算機(jī),在地址發(fā)生器后級提供,具有多個單元計算機(jī),其中由構(gòu)成指令字的操作數(shù)所指定的區(qū)域為二維擴(kuò)充的表面區(qū)域。
      根據(jù)本發(fā)明的第五方面,表面計算機(jī)包括數(shù)據(jù)總線,具有大的總線寬度,允許形成在一個芯片上的處理塊和存儲塊連接在其中。在表面計算機(jī)中,處理塊包括地址發(fā)生器和并行計算機(jī),地址發(fā)生器用于產(chǎn)生地址,供調(diào)整有關(guān)存儲區(qū)域的表面區(qū)域數(shù)據(jù),并行計算機(jī)在地址發(fā)生器后級提供,并行計算機(jī)具有多個單元計算機(jī),而存儲塊包括DRAM。
      根據(jù)本發(fā)明的第六方面,表面計算機(jī)包括地址發(fā)生器;處理塊,它具有包含多個單元計算機(jī)的并行計算機(jī);存儲塊;數(shù)據(jù)總線,它具有大的總線寬度,并允許處理塊和存儲塊連接在其中;計算方法包括地址生成步驟,用于使地址發(fā)生器生成地址,供調(diào)整有關(guān)存儲區(qū)域的表面區(qū)域數(shù)據(jù);以及處理步驟,用于使并行計算機(jī)處理表面區(qū)域數(shù)據(jù)。
      附圖簡述

      圖1是根據(jù)本發(fā)明的表面計算機(jī)的構(gòu)造的方框圖;圖2是流程圖,說明圖1所示表面計算機(jī)的操作;圖3A和3B說明表面區(qū)域的放大處理;圖4A和4B說明該表面區(qū)域的縮小處理;圖5A和5B說明內(nèi)插值(inner interpolation)處理;圖6說明模式匹配處理;圖7A、7B及7C說明傳統(tǒng)的SISD、SIMD類型計算機(jī)和表面計算機(jī)之間的差異;圖8說明利用SISD類型計算機(jī)進(jìn)行矩陣計算時的計算處理;圖9說明利用SIMD類型計算機(jī)進(jìn)行矩陣計算時的計算處理;圖10說明利用表面計算機(jī)進(jìn)行矩陣計算時的計算處理;圖11是對表面計算機(jī)中的計算處理的說明;圖12是方框圖,說明表面計算機(jī)的重要部分的另一個構(gòu)造;圖13說明指令字;圖14說明操作數(shù)示例及表面計算機(jī)的插值操作;圖15說明處理器陣列的并行處理;圖16說明在表面計算機(jī)用作協(xié)處理器的構(gòu)造中的指令和數(shù)據(jù)流;圖17說明表面計算機(jī)的條件轉(zhuǎn)移;圖18說明表面計算機(jī)的直接操作數(shù);圖19A、19B、19C及19D說明利用兩個操作數(shù)、三個操作數(shù)及四個操作數(shù)的計算處理;圖20說明表面計算機(jī)的一個示例計算;以及圖21說明表面計算機(jī)的另一個示例計算。
      最佳實(shí)施方案說明參照附圖來說明根據(jù)本發(fā)明的一種表面計算機(jī)及使用這種表面計算機(jī)的計算方法的實(shí)施方案。如果元件相同,則這些元件具有同樣的標(biāo)號,請求重復(fù)的描述從略。圖1示出根據(jù)本發(fā)明的表面計算機(jī)的整體構(gòu)造。表面計算機(jī)的基本設(shè)計是根據(jù)以下設(shè)計思想來進(jìn)行的。
      (1)采用用于ASIC-DRAM(特定用途集成電路-動態(tài)隨機(jī)存取存儲器)中的半導(dǎo)體制作方法,在一個芯片上形成處理塊和存儲塊。
      過去,在典型的處理器中,處理塊和存儲塊是分開形成的。因此,處理期間從處理塊對存儲塊的存儲器存取成為性能瓶頸。然而,近來在半導(dǎo)體制造工藝上的進(jìn)步引發(fā)了嵌入式或混合式LSI(大規(guī)模集成電路),在這種LSI中,處理塊和存儲塊集成在一個芯片上。由于將兩個塊集成在一個芯片上縮短了處理塊和存儲塊之間的距離,于是加快了數(shù)據(jù)傳送的速度,這解決了上述存儲器存取問題。
      ASIC最初是指專用半定制的集成電路。然而,近來ASIC-DRAM主要是指DRAM/邏輯集成半導(dǎo)體元件,作為定制集成電路,它有極大的需求量,或者它是指其制造程序。
      (2)具有大的數(shù)據(jù)總線寬度的內(nèi)部數(shù)據(jù)總線允許處理塊和存儲塊在其中相互連接。
      根據(jù)經(jīng)驗,在進(jìn)行高速物理計算時,與處理塊的處理速度相比,預(yù)計存儲塊和處理塊之間的數(shù)據(jù)傳送速度在更多地成為性能瓶頸。為了避免由于數(shù)據(jù)傳送速度造成的瓶頸,用于處理塊和存儲塊之間數(shù)據(jù)傳送的數(shù)據(jù)總線的數(shù)據(jù)總線寬度要設(shè)計得大。
      (3)處理塊采用某種構(gòu)造,這種構(gòu)造使表面區(qū)域數(shù)據(jù)能夠作為數(shù)據(jù)進(jìn)行處理,使得一次可以處理一定量的數(shù)據(jù)。
      “表面區(qū)域數(shù)據(jù)(surface region data)”的概念是指存在于表面區(qū)域中的一組計算數(shù)據(jù)。因此,“表面計算機(jī)(surface computer)”的概念是指某種計算機(jī),它根據(jù)表面或表面區(qū)域來指定表面區(qū)域數(shù)據(jù),對其進(jìn)行操作(即從存儲器中讀取數(shù)據(jù),以及向存儲器寫入數(shù)據(jù)),并進(jìn)行計算處理。由于表面計算機(jī)處理表面區(qū)域數(shù)據(jù),其中,該數(shù)據(jù)是具有較大數(shù)量的一組數(shù)據(jù),所以所處理的數(shù)據(jù)本身就具有并行的概念。也就是,所述數(shù)據(jù)具有一種能同時被處理的結(jié)構(gòu)。
      根據(jù)上述設(shè)計思想來開發(fā)表面計算機(jī)時,通過在處理塊和存儲塊之間構(gòu)造數(shù)據(jù)總線,使總線寬度足夠大,預(yù)計處理塊的處理速度相對地成為性能瓶頸。因此,為了避免由于處理塊的處理速度而產(chǎn)生的問題,通過使用要作為表面區(qū)域數(shù)據(jù)來處理的數(shù)據(jù),一次或數(shù)次傳送大量的數(shù)據(jù)組,并以數(shù)據(jù)組為單位進(jìn)行處理。通過將表面計算機(jī)的數(shù)據(jù)總線寬度設(shè)置得大,可以進(jìn)行表面區(qū)域數(shù)據(jù)的傳送。
      根據(jù)本發(fā)明的表面計算機(jī)在其處理塊中包括處理器陣列,所述處理器陣列具有多個單元計算機(jī),使得可以有效地處理這種大量的數(shù)據(jù)。
      下面將說明根據(jù)上述設(shè)計思想的表面計算機(jī)的具體構(gòu)造。(表面計算機(jī)的構(gòu)造)圖1說明根據(jù)本發(fā)明的表面計算機(jī)的整體構(gòu)造。圖1所示的表面計算機(jī)大致上被分為處理塊P和存儲塊M。如上所述,傳統(tǒng)的處理塊和傳統(tǒng)的存儲塊是分開形成的。然而,這種表面計算機(jī)包含處理塊P,其構(gòu)成方式是專用于DRAM的并且利用了ASIC-DRAM。因此,這種表面計算機(jī)被構(gòu)成為把處理塊P和存儲塊M形成在一個芯片上。
      處理塊P包括IFU(指令提取單元)2、PP(預(yù)處理器)9、AG(地址發(fā)生器)3及PA(處理器陣列)4。
      存儲塊M包括DRAM1。
      除了處理塊P和存儲塊M之外,表面計算機(jī)還包括IFDTC(指令提取和數(shù)據(jù)傳送控制器)5和總線I/F(總線接口)6。
      在單片LSI中實(shí)現(xiàn)了這種表面計算機(jī),其中結(jié)合了上述功能。
      這種表面計算機(jī)連接到位于表面計算機(jī)外部的主存儲器7和中央處理器8。雖然在本實(shí)施例中外部處理單元用作CPU,但表面計算機(jī)的使用不一定限于局部處理器。表面計算機(jī)可以用作中央處理器。
      IFDTC 5是控制裝置,用于在CPU 8的控制下,控制要由表面計算機(jī)執(zhí)行的表面計算指令的提取操作,以及控制要由表面計算機(jī)處理的表面區(qū)域數(shù)據(jù)的傳送操作。IFDTC 5的操作使表面計算機(jī)的處理塊P可以作為CPU 8的協(xié)處理器,這減少了CPU 8的負(fù)荷。
      在IFDTC 5的控制下,IFU 2從主存儲器7中提取在表面計算機(jī)上執(zhí)行的表面計算指令的列表。
      PP 9計算與表面計算指令字的操作數(shù)相對應(yīng)的表面區(qū)域,并發(fā)出把與所述表面區(qū)域?qū)?yīng)的計算數(shù)據(jù)從DRAM 1傳送到包含在DRAM 1中的主讀出放大器10和輔助讀出放大器11(緩沖器)的指令。主讀出放大器10和輔助讀出放大器11用作高速緩沖存儲器。此外,PP 9根據(jù)操作數(shù)來設(shè)置AG 3。另外,PP 9對通用表面計算指令進(jìn)行解碼,其中通用表面計算指令是從主存儲器7中調(diào)用并經(jīng)IFU 2提取的。
      AG 3產(chǎn)生用于將讀出放大器10和11中提取的數(shù)據(jù)提供給PA 4的地址,計算表面區(qū)域內(nèi)的位置相關(guān)信息,并將所產(chǎn)生的位置相關(guān)信息輸出給PA 4。位置相關(guān)信息的計算是指例如,當(dāng)確定相應(yīng)表面區(qū)域數(shù)據(jù)(要計算的對象)的表面區(qū)域大小不一致時,并且當(dāng)包含數(shù)據(jù)的一個表面區(qū)域的地址對應(yīng)于沒有數(shù)據(jù)的其它表面區(qū)域的地址時,表面區(qū)域數(shù)據(jù)的地址計算。下面將說明位置相關(guān)信息計算的放大/縮小處理、諸如雙線性插值處理或三線性插值處理的插值處理等。
      由于表面計算機(jī)處理表面區(qū)域數(shù)據(jù),因此,指定表面區(qū)域數(shù)據(jù)的指令字的操作數(shù)結(jié)構(gòu)與傳統(tǒng)計算機(jī)的不同。下面也會說明這些操作數(shù)的詳細(xì)情況。
      PA 4計算表面區(qū)域數(shù)據(jù)。為了實(shí)現(xiàn)高速計算,PA 4被構(gòu)造成處理器陣列,其中包括例如16個單元計算機(jī)4a。但是,PA 4的單元計算機(jī)4a的數(shù)量不一定限于16。此外,為了實(shí)現(xiàn)更快的計算,PA 4采用諸如超標(biāo)量體系結(jié)構(gòu)或超流水線體系結(jié)構(gòu)的體系結(jié)構(gòu)。下面還將說明超標(biāo)量和超流水線體系結(jié)構(gòu)。
      根據(jù)按照操作碼由AG 3產(chǎn)生的地址碼,PA4對從讀出放大器10和11中提供的各操作數(shù)中的計算表面區(qū)域數(shù)據(jù)進(jìn)行處理。
      此外,PA 4包括與存儲塊M進(jìn)行通信的MEMIF(存儲器接口)12。MEMIF 12與諸如主存儲器7的外部存儲器通信,或者它操作主讀出放大器10,主讀出主放大器10執(zhí)行寫入處理,諸如目的操作數(shù)區(qū)域處理,其中進(jìn)行讀取-修改-寫入。
      存儲塊M通常包括DRAM 1。與表面計算機(jī)外部的存儲器7不同,DRAM 1是內(nèi)部存儲器,用作表面計算機(jī)的工作區(qū)。例如,DRAM1的存儲容量為32Mb。
      DRAM 1包括主讀出放大器10(或緩沖器I),用作高速緩沖存儲器,在MEMIF 12和DRAM 1之間傳送數(shù)據(jù);以及輔助讀出放大器12(或緩沖器II),用作高速緩沖存儲器,在PA 4和DRAM 1之間傳送數(shù)據(jù)。
      總線I/F 6將儲存在主存儲器7中的通用表面計算指令的列表輸出給IFU 2,并將表面區(qū)域數(shù)據(jù)輸出給MEMIF 12。
      如上所述,處理塊P、存儲塊M與具有大數(shù)據(jù)總線寬度的數(shù)據(jù)總線互連。具體地說,數(shù)據(jù)經(jīng)具有1024位總線寬度的內(nèi)部寫入數(shù)據(jù)總線13從PA 4的MBMIF 12傳送到主讀出放大器10,同時,數(shù)據(jù)經(jīng)具有1024位總線寬度的內(nèi)部讀取數(shù)據(jù)總線14從DRAM 10的主讀出放大器10傳送到PA 4的MBMIF 12。數(shù)據(jù)總線14主要用于表面區(qū)域數(shù)據(jù)傳送。
      此外,當(dāng)PA 4包含例如16個單元計算機(jī)時,其中每個單元計算機(jī)均具有32位數(shù)據(jù)總線,DRAM 1的輔助讀出放大器11與PA 4經(jīng)具有512位數(shù)據(jù)總線寬度(=16×32位)的數(shù)據(jù)總線15互連。數(shù)據(jù)總線15用于讀取指定表面區(qū)域數(shù)據(jù)的操作數(shù)信息等。
      PA 4和DRAM 1采用這三條數(shù)據(jù)總線13、14及15直接互連,總數(shù)據(jù)總線寬度達(dá)2048位。這防止了存儲塊M和處理塊P之間的數(shù)據(jù)傳送成為性能瓶頸。
      利用這個特點(diǎn)實(shí)現(xiàn)包含大量數(shù)據(jù)的表面區(qū)域數(shù)據(jù)的傳送。
      2048位數(shù)據(jù)總線寬度只是一個示例,本發(fā)明不限于所述數(shù)據(jù)總線寬度的大小。
      CPU 8(在表面計算機(jī)外部)將指令輸出給IFDTC 5,并經(jīng)總線I/F 6向IFU 2和MEMIF 12輸出通用表面計算指令列表(對應(yīng)于程序)和表面區(qū)域數(shù)據(jù)。
      用于所述表面計算機(jī)中的通用表面計算指令列表和表面區(qū)域數(shù)據(jù)預(yù)先儲存在主存儲器7中。
      (表面計算機(jī)各組件的操作)圖2給出一個流程圖,說明具有上述構(gòu)造的表面計算機(jī)的各個組件。
      參照圖1,CPU 8控制IFDTC 5的整體操作。
      在步驟S10,在IFDTC 5的控制下,IFU 2經(jīng)總線I/F 5提取從主存儲器7中輸出的表面計算指令,并將該指令傳送給PP 9。
      在步驟S20,當(dāng)PP 9接收表面計算指令時,與有關(guān)該表面計算指令的指令字中的操作數(shù)相對應(yīng)的表面區(qū)域被處理(計算)。隨后,PP 9輸出指令,使得根據(jù)計算結(jié)果而指定的表面區(qū)域數(shù)據(jù)從DRAM 1傳送到主讀出放大器10和/或輔助讀出放大器11。也就是,計算表面區(qū)域數(shù)據(jù)在主讀出放大器10和輔助放大器11中被預(yù)先提取。此外,PP 9按照表面計算指令的操作數(shù)中的表面區(qū)域信息來設(shè)置AG 3(PP 9后級)。
      在步驟S30,AG 3產(chǎn)生地址,該地址通過執(zhí)行地址計算來得到,用于向PA 4提供在主讀出放大器10和/或輔助讀出放大器11中提取的表面區(qū)域數(shù)據(jù)。此外,還計算表面區(qū)域中的位置相關(guān)信息。隨后,AG 3計算地址數(shù)據(jù)和位置相關(guān)信息,并將所產(chǎn)生的數(shù)據(jù)提供給PA 4。例如,該位置相關(guān)信息是表面區(qū)域數(shù)據(jù)的地址,如下所述,它包含有關(guān)是否表面區(qū)域數(shù)據(jù)的地址在其它表面區(qū)域數(shù)據(jù)中有對應(yīng)物的信息。
      在步驟40,按照表面計算指令的操作碼,PA(處理器陣列)4對從主讀出放大器10和輔助讀出放大器11根據(jù)AG 3產(chǎn)生的地址數(shù)據(jù)所提供的操作數(shù)中的計算表面區(qū)域數(shù)據(jù)進(jìn)行處理。如果數(shù)據(jù)由于指定表面區(qū)域數(shù)據(jù)的操作數(shù)信息的不同而沒有對應(yīng)物(這意味著該數(shù)據(jù)在其它表面區(qū)域中沒有相應(yīng)的地址),則通過插值處理,諸如雙線性插值處理或三線性插值處理,按照操作碼來處理從讀出放大器10和11(緩沖器)輸出的相鄰數(shù)據(jù),從而產(chǎn)生在其它表面區(qū)域中有對應(yīng)物的數(shù)據(jù)。
      在步驟S50,MEMIF 12經(jīng)總線I/F 6與主存儲器7進(jìn)行通信。此外,MEMIF 12操作向DRAM 1寫入數(shù)據(jù)的主讀出放大器,由此,例如執(zhí)行目的操作數(shù)區(qū)域處理等,用于執(zhí)行讀取-修改-寫入操作(在一個周期中,執(zhí)行讀取操作,然后執(zhí)行寫入操作)。再來說明地址生成步驟(步驟S30)。當(dāng)PA 4按照表面計算指令的操作碼來處理表面區(qū)域數(shù)據(jù)時,由于指定各表面區(qū)域數(shù)據(jù)的操作信息的不同,在兩個表面區(qū)域數(shù)據(jù)之間有時不存在對應(yīng)。
      例如,當(dāng)一對計算表面區(qū)域數(shù)據(jù)不匹配時,沒有對應(yīng)出現(xiàn),這是指表面區(qū)域數(shù)據(jù)的大小不同。在這種情況下,例如,通過適當(dāng)?shù)胤糯蠡蚩s小源操作數(shù)所指定的表面區(qū)域,使源操作數(shù)所指定的表面區(qū)域?qū)?yīng)于目的操作數(shù)所指定的表面區(qū)域,就可以執(zhí)行兩個表面區(qū)域數(shù)據(jù)的計算。這種放大/縮小處理通常通過復(fù)制處理或插值處理來進(jìn)行。
      用這種方法,例如,如果通過使源操作數(shù)所指定的表面區(qū)域?qū)?yīng)于目的操作數(shù)所指定的表面區(qū)域來確定各表面區(qū)域的數(shù)據(jù)大小,則對表面區(qū)域數(shù)據(jù)的大小進(jìn)行放大或縮小,或者對表面區(qū)域數(shù)據(jù)的大小進(jìn)行處理,以便符合表面區(qū)域數(shù)據(jù)的預(yù)定尺度比。
      有在構(gòu)成相應(yīng)表面區(qū)域的全部或部分計算數(shù)據(jù)的地址之間沒有對應(yīng)的情況。在這種情況下,通過對一個或兩個表面區(qū)域進(jìn)行插值處理而在其相應(yīng)的地址產(chǎn)生數(shù)據(jù)。
      即使在由于操作數(shù)信息的差異而引起的沒有相應(yīng)計算數(shù)據(jù)的表面區(qū)域之間,這樣的插值處理使一個表面區(qū)域中的計算數(shù)據(jù)能夠在其它表面區(qū)域的相應(yīng)地址具有對應(yīng)數(shù)據(jù)。因此,可以在任意一對表面區(qū)域數(shù)據(jù)之間進(jìn)行處理。作為插值處理,通常利用包含在表面區(qū)域數(shù)據(jù)中的相鄰數(shù)據(jù)來進(jìn)行雙線性過濾、三線性過濾等。
      (表面區(qū)域的放大處理)圖3A和3B說明表面區(qū)域數(shù)據(jù)的放大處理。在圖3A所示的示例中,通過復(fù)制表面區(qū)域放大數(shù)據(jù)“a”并使用其多個,來放大表面區(qū)域數(shù)據(jù)“a”。在這種情況下,對表面區(qū)域數(shù)據(jù)進(jìn)行所需數(shù)量的復(fù)制,其中所述表面區(qū)域數(shù)據(jù)具有與表面區(qū)域數(shù)據(jù)“a”相同的數(shù)據(jù)并且沒有進(jìn)行放大,由此可以進(jìn)行放大處理。
      圖3B說明通過插值處理的另一個放大處理。未經(jīng)放大的表面區(qū)域數(shù)據(jù)的四個小表面區(qū)域數(shù)據(jù)“a”、“b”、“c”及“d”如圖3B所示那樣排列。當(dāng)放大表面區(qū)域數(shù)據(jù)時,各個小表面區(qū)域數(shù)據(jù)被安排在相應(yīng)的角。在“a”和“b”、“a”和“c”、“b”和“d”、及“c”和“d”之間分別安排具有(a+b)/2、(a+c)/2、(b+d)/2及(c+d)/2的區(qū)域的相鄰小表面區(qū)域。區(qū)域數(shù)據(jù)“a”、“b”、“c”以及“d”所包圍的部分具有(a+b+c+d)/4區(qū)域的表面區(qū)域數(shù)據(jù)。這樣,放大了由小表面區(qū)域數(shù)據(jù)“a”、“b”、“c”及“d”所組成的表面區(qū)域數(shù)據(jù)。
      (表面區(qū)域的縮小處理)圖4A和4B示出縮小處理??s小處理以圖3A或3B所示的放大處理的相反方向來進(jìn)行。在圖4A中,縮小處理以通過圖3A所示復(fù)制所進(jìn)行的放大處理的相反方向來進(jìn)行。在圖4B中,縮小處理以通過圖3B所示插值所進(jìn)行的放大處理的相反方向來進(jìn)行。
      (雙線性處理)圖5A說明通過作為插值處理一個示例的雙線性插值來生成數(shù)據(jù)的示例。在一個計算表面區(qū)域數(shù)據(jù)SD中,由圖5A的“O”表示的地址具有儲存在其中的數(shù)據(jù),而在其它計算表面區(qū)域數(shù)據(jù)DS中,由“O”表示的地址沒有儲存在其中的數(shù)據(jù),如圖5A所示。在這種情況下,通過內(nèi)插值處理,利用由“O”表示的并且在其中沒有數(shù)據(jù)的地址的四個接近的數(shù)據(jù),來產(chǎn)生數(shù)據(jù)。也就是,線性插值是以右上方的傾斜方向(例如X軸方向)(從圖中看)來進(jìn)行的,以及垂直進(jìn)行線性插值(例如Y軸方向)。因此,這樣的插值方法稱作雙線性插值方法。
      即使表面區(qū)域數(shù)據(jù)DS分離地存在,例如,表面區(qū)域數(shù)據(jù)SD僅存在于對應(yīng)于正格(positive grid)相交的地址,如圖5A所示,通過雙線性處理可以得到一組構(gòu)成所述表面區(qū)域的不間斷表面區(qū)域數(shù)據(jù)(solid surface region data)。
      (三線性處理)圖5B說明一個通過三線性插值來生成數(shù)據(jù)的示例。假定一個計算表面區(qū)域數(shù)據(jù)SD在其它表面區(qū)域的相應(yīng)地址沒有數(shù)據(jù)。在這種情況下,如圖5B所示,通過插值處理,利用接近其它表面區(qū)域相應(yīng)地址兩端的兩個表面區(qū)域數(shù)據(jù)SD,來生成表面區(qū)域數(shù)據(jù)。也就是,通過雙線性插值方法,在與沒有數(shù)據(jù)的表面地址左端的表面區(qū)域數(shù)據(jù)SD相對應(yīng)的地址產(chǎn)生數(shù)據(jù),從圖5B來看。同樣,通過雙線性插值方法,在與表面地址右端的表面區(qū)域數(shù)據(jù)相對應(yīng)的地址,來產(chǎn)生數(shù)據(jù),從圖來看。通過線性地插入這兩個生成的數(shù)據(jù),得到具有包含在其它表面區(qū)域中并由“O”表示的地址的數(shù)據(jù)。這樣的插值方法稱作三線性插值方法。
      即使多個表面區(qū)域數(shù)據(jù)SD分離地存在,例如,可以通過三線性方法來得到多個表面區(qū)域數(shù)據(jù)SD,其中所述表面區(qū)域數(shù)據(jù)SD構(gòu)成相互不間斷(solidly)指定的表面。也就是,可以建立任意的三維區(qū)域來作為要進(jìn)行物理計算等的對象。
      (點(diǎn)抽樣)點(diǎn)抽樣是一種根據(jù)預(yù)定規(guī)則從表面區(qū)域數(shù)據(jù)SD中選擇數(shù)據(jù)的方法。當(dāng)進(jìn)行下述矩陣計算時采用點(diǎn)抽樣。
      (屏蔽處理)屏蔽處理是一種根據(jù)預(yù)定規(guī)則從表面區(qū)域數(shù)據(jù)SD中丟棄數(shù)據(jù)的方法。
      (模式匹配)圖6說明模式匹配處理。模式匹配找出模式之間的距離。利用雙線性插值或三線性插值來進(jìn)行模式匹配。在這種處理中,通過表面計算處理來計算模式之間的差異(SPd=SPd-SPs),然后再計算所得出的差異的絕對值(SPd=|SPd-SPs|)或所得到的差異的平方(SPd=(SPd-SPs)*(SPd-SPs))。通過對具有源表面一半長度的目的表面的雙線性插值來進(jìn)行縮小轉(zhuǎn)換,并得到總的所得到的差異??s小轉(zhuǎn)換循環(huán)進(jìn)行,直到獲得標(biāo)量值(scalar value),由此獲得最終標(biāo)量值。
      在表面計算機(jī)上運(yùn)行的程序在上述放大處理、縮小處理、雙線性處理、三線性處理、點(diǎn)抽樣處理、屏蔽處理、模式匹配處理等中進(jìn)行適當(dāng)?shù)剡x擇。通過與傳統(tǒng)的SISD(單指令單數(shù)據(jù)流)方法和SIMD(單指令多數(shù)據(jù)流)方法進(jìn)行比較,來說明表面計算機(jī)的特點(diǎn)。
      圖7A至7C從指令流和硬件機(jī)制的觀點(diǎn)來說明SISD類型計算機(jī)、SIMD類型計算機(jī)及表面計算機(jī)。
      在圖7A所示的SISD類型計算機(jī)中,單元計算機(jī)4a根據(jù)單指令,使用單數(shù)據(jù)(以下稱作點(diǎn)數(shù)據(jù))PD,順序地進(jìn)行計算。因此,當(dāng)進(jìn)行大量計算機(jī)時,需要大量的時間,這使SISD方法不適合這種類型的使用。
      在圖7B所示的SIMD類型計算機(jī)中,多個單元計算機(jī)4a根據(jù)單指令,同時進(jìn)行計算。由于SIMD類型計算機(jī)包括多個單元計算機(jī),所以在整體指令執(zhí)行序列中存在并發(fā)性。為了保證指令執(zhí)行序列的并發(fā)性,根據(jù)并行指令執(zhí)行序列的數(shù)量來確定單元計算機(jī)4a的數(shù)量。
      當(dāng)進(jìn)行大量計算時,SIMD類型計算機(jī)的執(zhí)行速度比SISD類型計算機(jī)要快得多。但是,如上所述,需要一種物理計算等,它需要大量的數(shù)據(jù),而這些數(shù)據(jù)即使是SIMD類型計算機(jī)也無法處理。
      表面計算機(jī)把數(shù)據(jù)視為表面。也就是,表面計算機(jī)根據(jù)表面區(qū)域來指定數(shù)據(jù)組并對其進(jìn)行處理。將屬于一個數(shù)據(jù)組的數(shù)據(jù)作為表面區(qū)域數(shù)據(jù)SD一次(或數(shù)次)進(jìn)行傳送和處理,由此大大減少了數(shù)據(jù)傳送和計算的重復(fù)數(shù)量。因此,表面計算機(jī)實(shí)現(xiàn)了高性能計算。
      從一次處理一組數(shù)據(jù)的觀點(diǎn)來看,如圖7C所示,數(shù)據(jù)可以是由線來指定的線數(shù)據(jù)LD。因此,表面計算機(jī)的概念包括線計算機(jī)(linecomputer)。
      表面計算機(jī)的特點(diǎn)是數(shù)據(jù)本身并行存在。單元計算機(jī)4a的數(shù)量與表面數(shù)據(jù)SD的數(shù)量、指令執(zhí)行序列的數(shù)量等無關(guān)。由于表面計算機(jī)對包含多個計算數(shù)據(jù)的整個表面區(qū)域進(jìn)行計算,所以計算數(shù)據(jù)是并行的。表面區(qū)域數(shù)據(jù)的計算方法及該計算方法所需的單元計算機(jī)4a的數(shù)量由計算機(jī)程序來確定,它們與表面區(qū)域數(shù)據(jù)SD無關(guān)。表面計算機(jī)本身可以順序地進(jìn)行計算。
      但是,在高速處理大量數(shù)據(jù)時,顯然,通過提供多個單元計算機(jī),可以實(shí)現(xiàn)計算的加速。因此,在本發(fā)明中,在PA 4中提供了16個單元計算機(jī)。如下所述,必要時,超標(biāo)量或超流水線體系結(jié)構(gòu)可以用作PA4的體系結(jié)構(gòu),由此可以實(shí)現(xiàn)更多的計算加速。
      表面計算機(jī)與其它兩種方法的不同之處在于
      (1)SIMD類型計算機(jī)在指令執(zhí)行序列中具有并發(fā)性,而表面計算機(jī)在數(shù)據(jù)中具有并發(fā)性;(2)SISD類型和SIMD類型計算機(jī)處理點(diǎn)數(shù)據(jù)PD,而表面計算機(jī)則處理表面區(qū)域數(shù)據(jù)SD;(3)由于表面計算機(jī)處理表面區(qū)域數(shù)據(jù)SD,所以在計算機(jī)語言方面具有不同于SISD類型計算機(jī)和SIMD類型計算機(jī)的結(jié)構(gòu),后兩種計算機(jī)處理點(diǎn)數(shù)據(jù)PD,也就是,在構(gòu)成指令字的操作數(shù)的形式方面,在表面計算機(jī)和SISD類型、SIMD類型計算機(jī)之間存在差異;(4)SIMD類型計算機(jī)只處理分離的點(diǎn)數(shù)據(jù)PD,而表面計算機(jī)則利用上述內(nèi)插值處理等方法來處理不間斷表面區(qū)域的全部數(shù)據(jù)(此外,表面計算機(jī)能夠處理三維中的任意表面區(qū)域數(shù)據(jù));以及(5)SIMD類型計算機(jī)的單元計算機(jī)4a的數(shù)量取決于并行指令執(zhí)行序列的數(shù)量,而表面計算機(jī)的單元計算機(jī)4a的數(shù)量則是獨(dú)立的。
      在說明這些差異之前,利用了處理大量數(shù)據(jù)的典型矩陣計算的示例,通過與SISD類型計算機(jī)和SIMD類型計算機(jī)進(jìn)行比較來說明表面計算機(jī)的處理。
      (SISD類型、SIMD類型計算機(jī)和表面計算機(jī)之間關(guān)于矩陣計算的差異)圖8至10說明分別使用SISD類型計算機(jī)、SIMD類型計算機(jī)及表面計算機(jī)處理大量矩陣計算。這里所述的矩陣計算用于例如關(guān)于三維圖像數(shù)據(jù)的坐標(biāo)變換。在此情況下,分別使用圖8至10所示的各個系數(shù)矩陣,把構(gòu)成圖像數(shù)據(jù)的列向量(x、y、z、w)坐標(biāo)變換成為點(diǎn)(X、Y、Z、W)。
      當(dāng)利用圖7A所示的SISD方法進(jìn)行這樣的矩陣計算時,順序地執(zhí)行圖8的方框中的計算。
      a00*x+a01*y+a02*z+a03*w=X在這種情況下,例如,計算從左起第一項開始順序地進(jìn)行。同樣地,順序地進(jìn)行下列計算。
      a10*x+a11*y+a12*z+a13*w=Y(jié)a20*x+a21*y+a22*z+a23*w=Z以及a30*x+a31*y+a32*z+a33*w=W由于該序列根據(jù)數(shù)據(jù)的大小多次重復(fù)進(jìn)行,因此要花大量時間來完成以上計算。在本示例中,矩陣元素a10至a33是點(diǎn)數(shù)據(jù)PD,并且在該SISD方法中,順序地計算a10*x等。
      接著,如圖9所示,當(dāng)利用圖7B所示的SIMD類型計算機(jī)來進(jìn)行同一矩陣計算時,四個單元計算機(jī)4a根據(jù)單個指令基本上并行地計算圖9的方框所示的相應(yīng)四個表達(dá)式。
      第一單元計算機(jī)4a分別計算矩陣中的元素a00、a10、a20和a30與列向量元素x、y、z和w的乘積,然后再計算所得乘積之和。
      a00*x+aO1*y+a02*z+a03*w=X第二單元計算機(jī)4a基本上并行地進(jìn)行計算。
      a10*x+a11*y+a12*z+a13*w=Y(jié)第三單元計算機(jī)4a基本上并行地進(jìn)行計算。
      a20*x+a21*y+a22*z+a23*w=Z 以及第四單元計算機(jī)4a基本上并行地進(jìn)行計算。
      a30*x+a31*y+a32*z+a33*w=W由于這些計算基本上并行地進(jìn)行,所以SIMD類型計算機(jī)實(shí)際上可以比SISD類型計算機(jī)更快地進(jìn)行處理。
      圖10說明根據(jù)本發(fā)明利用表面計算機(jī)來進(jìn)行同一矩陣計算的情況。圖10上部所示表達(dá)式左端的四維方陣的列分別被視為表面區(qū)域數(shù)據(jù)SD1、SD2、SD3及SD4。右端的列向量被視為表面區(qū)域數(shù)據(jù)SDv。這些表面區(qū)域數(shù)據(jù)被輸入PA4,在PA4中,在各表面區(qū)域數(shù)據(jù)SD1、SD2、SD3、SD4和表面區(qū)域SDv之間應(yīng)用所需的乘法和加法。
      當(dāng)各表面區(qū)域數(shù)據(jù)中的操作數(shù)所指定的表面區(qū)域的大小不匹配時,上述放大/縮小處理等使各表面區(qū)域的大小得到匹配。在這樣的情況下,對矩陣的各元素不進(jìn)行內(nèi)插值處理,而是進(jìn)行點(diǎn)抽樣處理或屏蔽處理,由此在保持各元素的系數(shù)值的同時進(jìn)行表面計算。
      在各表面區(qū)域數(shù)據(jù)SD1、SD2、SD3、SD4及表面區(qū)域SDv之間進(jìn)行必要的計算時,具體地說,與四個表面區(qū)域數(shù)據(jù)SDv一道提供總計16個表面區(qū)域的四組表面區(qū)域數(shù)據(jù)SD1、SD2、SD3及SD4。通過將表面區(qū)域數(shù)據(jù)SD1和SDv相乘,即a00*x、a10*y、a20*z及a30*w,來得到各乘積;通過將表面區(qū)域數(shù)據(jù)SD2和SDv相乘,即a01*x、a11*y、a21*z以及a31*w,來得到各乘積;通過將表面區(qū)域數(shù)據(jù)SD3和SDv相乘,即a02*x、a12*y、a22*z以及a32*w,來得到各乘積;以及通過將表面區(qū)域數(shù)據(jù)SD4和SDv相乘,即a03*x、a13*y、a23*z及a33*w,來得到各乘積;在同一時間對這些乘積進(jìn)行計算。利用上述計算的結(jié)果來進(jìn)行以下計算。
      a00*x+a01*y+a02*z+a03*w=Xa10*x+a11*y+a12*z+a13*w=Y(jié)a20*x+a21*y+a22*z+a23*w=Z 以及a30*x+a31*y+a32*z+a33*w=W由于根據(jù)本發(fā)明的表面計算機(jī)一次或數(shù)次傳送和計算這樣的表面區(qū)域數(shù)據(jù),因此能夠高速進(jìn)行大量矩陣計算。對上述五種差異進(jìn)行說明。
      (第一不同點(diǎn))首先,表面計算機(jī)與SIMD類型計算機(jī)的不同之處在于表面計算機(jī)所處理的數(shù)據(jù)是并行的,而SIMD類型計算機(jī)所處理的指令執(zhí)行序列是并行的。
      然而,表面計算機(jī)并不拒絕SIMD方法的概念。表面計算機(jī)可以利用SIMD方法的概念來構(gòu)造。例如,通過提供多個表面計算機(jī),使指令執(zhí)行序列作為整個系統(tǒng)具有并發(fā)性,由此可以可以利用SIMD方法來構(gòu)造表面計算機(jī)。
      (第二不同點(diǎn))第二,表面計算機(jī)與SISD類型、SIMD類型計算機(jī)的不同之處在于表面計算機(jī)處理表面區(qū)域數(shù)據(jù)SD,而其它兩種計算機(jī)處理點(diǎn)數(shù)據(jù)PD。
      表面計算機(jī)被構(gòu)造成能以區(qū)域為單位來傳送和計算兩維表面區(qū)域數(shù)據(jù)SD(包括線數(shù)據(jù)LD)。
      例如,在加表面區(qū)域數(shù)據(jù)SPs和SPd時,如圖11所示,一次傳送和計算各表面區(qū)域數(shù)據(jù)SPs和SPd。因此,與重復(fù)順序傳送和計算點(diǎn)數(shù)據(jù)PD的SIMD類型計算機(jī)相比,表面計算機(jī)能夠更快地處理數(shù)據(jù)。也就是,由于這種表面計算機(jī)以表面區(qū)域為單位來傳送和計算操作數(shù)所指定的區(qū)域中的計算數(shù)據(jù),因此極大地減少了傳送和計算的重復(fù)次數(shù)。所以,能夠?qū)崿F(xiàn)高速計算。
      (PA 4的替代方案)在需要高速計算時,除了提高數(shù)據(jù)傳送的速度外,提高計算處理的速度也是重要的。為了提高處理速度,在根據(jù)本發(fā)明的處理器陣列中,采用了由圖1所示包含16個單元計算機(jī)4a的并行計算機(jī)所進(jìn)行的并行處理。除了上述并行計算機(jī)之外,例如,還可以采用具有圖12所示構(gòu)造的高速處理器。圖12中的并行處理器采用了超標(biāo)量和超流水線體系結(jié)構(gòu)。
      超標(biāo)量體系結(jié)構(gòu)是這樣一種體系結(jié)構(gòu)它通過使多個指令提取/解碼機(jī)制和ALU同時進(jìn)行操作,改進(jìn)流水線的空間域中的相重性,而提高處理速度。超標(biāo)量流水線體系結(jié)構(gòu)是這樣一種方法它通過加深流水線來改進(jìn)時間域中的相重性。
      在本示例中,提供至少32個PA 4,如圖12所示。而且,在一個PA 4中提供具有至少32個步驟的流水線。因此,在本示例構(gòu)造中,在單個時鐘內(nèi)能并行執(zhí)行至少1024條指令(=32個步驟×32)。
      (第三不同點(diǎn))第三,由于表面計算機(jī)處理表面區(qū)域數(shù)據(jù)SD,因此在計算機(jī)語言方面具有不同于SISD類型計算機(jī)和SIMD類型計算機(jī)的結(jié)構(gòu),其中,后兩種計算機(jī)處理點(diǎn)數(shù)據(jù)PD。也就是,在構(gòu)造指令字的操作數(shù)的形式上,表面計算機(jī)和SISD類型、SIMD類型計算機(jī)之間存在一些不同之處。
      (操作數(shù)結(jié)構(gòu)的差異)表面計算機(jī)與傳統(tǒng)的SISD類型、SIMD類型計算機(jī)的重大差異在于表面區(qū)域中的計算數(shù)據(jù)是根據(jù)作為一個單位而建立的表面區(qū)域來指定和計算的。因此,在計算機(jī)語言方面,表面計算機(jī)具有不同于其它類型計算機(jī)的結(jié)構(gòu)。
      如圖13A所示,在傳統(tǒng)的兩種計算機(jī)中,指令字(典型的單個指令)包括操作碼131和至少兩個操作數(shù)132。操作數(shù)132用于索引或指定各種計算數(shù)據(jù)的地址。如圖13B所示,操作數(shù)132包括源操作數(shù)133,用于指定數(shù)據(jù)的源地址;以及目的操作數(shù)134,用于指定數(shù)據(jù)的目的地址。
      在傳統(tǒng)的兩種計算機(jī)中,由各操作數(shù)所指定的數(shù)據(jù)一個一個單獨(dú)地為單個數(shù)據(jù)(標(biāo)量值或向量值,即點(diǎn)數(shù)據(jù)),在計算期間,反復(fù)進(jìn)行處理,其中,順序地調(diào)用和處理單個數(shù)據(jù)(點(diǎn)數(shù)據(jù))。
      在表面計算機(jī)中,指令字包括操作碼和兩個操作數(shù)。表面計算機(jī)與所述兩種計算機(jī)的相同點(diǎn)在于操作數(shù)包括源操作數(shù)和目的操作數(shù)。但是,表面計算機(jī)的操作數(shù)表示兩維區(qū)域,這就是說,尋址方式表示兩維區(qū)域。因此,表面計算機(jī)與傳統(tǒng)計算機(jī)的不同之處在于表面計算機(jī)指定表面區(qū)域數(shù)據(jù),而傳統(tǒng)計算機(jī)則指定點(diǎn)數(shù)據(jù)。
      通過例如正常地指定包圍表面區(qū)域中的四個點(diǎn)數(shù)據(jù),表面計算機(jī)的操作數(shù)指定該表面區(qū)域。
      由表面計算機(jī)的指令字中的操作數(shù)所指定的數(shù)據(jù)有時好象是一維的。例如,利用指針(點(diǎn))和線L可以指定某個區(qū)域,其中,點(diǎn)是作為線L的基點(diǎn)來建立的,并且整個數(shù)據(jù)的長度是作為線L的長度來建立的。這使表面計算機(jī)的操作數(shù)能夠由點(diǎn)和線L來表示。
      此外,如上所述,表面計算機(jī)包括行計算機(jī)。當(dāng)使用行計算機(jī)時,例如,指定線數(shù)據(jù)的操作數(shù)包括兩個指針。
      這樣,由于根據(jù)本發(fā)明的表面計算機(jī)的操作數(shù)不同于傳統(tǒng)計算機(jī)的,因此,在計算機(jī)語言系統(tǒng),即在指令字集的結(jié)構(gòu)方面,表面計算機(jī)和傳統(tǒng)計算機(jī)之間存在差異。
      以下表示示例可以表示為代表表面區(qū)域數(shù)據(jù)的區(qū)域的示例操作數(shù)。
      (1)方形-點(diǎn)類型(由“SP”表示);SP(X1,Y1,X2,Y2)(2)三角類型(由“TR”表示);TR(X1,Y1,X2,Y2,X3,Y3)(3)三角網(wǎng)類型(由“TRM”表示)TRM(X1,Y1,X2,Y2…,Xn,Yn)(4)線類型(由“LN”表示);LN(X1,Y1,X2,Y2)X和Y表示坐標(biāo)(地址)。
      方形-點(diǎn)類型SP(1)表示對角線上方形表面區(qū)域的一對頂點(diǎn)的坐標(biāo)。
      三角類型TR(2)表示三角形區(qū)域的頂點(diǎn)的坐標(biāo)。
      三角網(wǎng)類型TRM表示三角形區(qū)域中的一組特定點(diǎn)(根據(jù)預(yù)定規(guī)則選取)。
      線類型LN(4)表示一線。
      除了矩形或三角形以外,表面區(qū)域還可以采取任意的形式。此外,在方形-點(diǎn)類型SP中,矩形區(qū)域可以用一個頂點(diǎn)的坐標(biāo)和通過該頂點(diǎn)的一條邊或?qū)蔷€的長度來表示。
      (指定區(qū)域的操作數(shù)與并行計算之間的關(guān)系)對線計算機(jī)的操作數(shù)和并行計算之間的關(guān)系進(jìn)行說明。圖14說明一種對具有相互不同區(qū)域(在此情況下為長度)的線區(qū)域進(jìn)行計算的情況。通過縮小由線操作數(shù)1所指定的區(qū)域141,來得到線區(qū)域數(shù)據(jù)143,而通過放大由線操作數(shù)2所指定的區(qū)域數(shù)據(jù)143,來得到線區(qū)域數(shù)據(jù)144,由此使線區(qū)域數(shù)據(jù)143和144(長度)互相匹配。PA 4進(jìn)行表面(線)計算處理。在計算之后,所產(chǎn)生的數(shù)據(jù)儲存在由線操作數(shù)3所指定的線區(qū)域145中。
      當(dāng)線區(qū)域的大小匹配時,按照與表面區(qū)域計算中相同的方法,來適當(dāng)執(zhí)行圖14右半部分所示例的各種方法,諸如復(fù)制、線性插值、抽樣、放大處理等,以便適當(dāng)?shù)馗淖兙€區(qū)域的大小。
      (PA和多個操作數(shù)的并行處理)圖15說明了PA 4和多個操作數(shù)的并行處理。儲存在主讀出放大器10中并由操作數(shù)3和4所指定的計算數(shù)據(jù)D3和D4被輸入到多個PA 4中,而儲存在輔助讀出放大器11中并由操作數(shù)1和2所指定的計算數(shù)據(jù)D1和D2被輸入到多個PA 4中。通過對這些數(shù)據(jù)執(zhí)行所需操作獲得的數(shù)據(jù)儲存在主讀出放大器10中。例如,當(dāng)計算D3=f1(D1,D2,D3,D4)時,所產(chǎn)生的數(shù)據(jù)儲存在操作數(shù)3中。當(dāng)計算D4=f2(D1,D2,D3,D4)時,所產(chǎn)生的數(shù)據(jù)儲存在操作數(shù)4中。
      第四不同點(diǎn)在于通過利用內(nèi)插值處理等方法,表面計算機(jī)能使用整個不間斷表面區(qū)域的數(shù)據(jù),而SIMD類型計算機(jī)只能處理分離的點(diǎn)數(shù)據(jù)。這一點(diǎn)已經(jīng)在表面區(qū)域的放大/縮小處理和內(nèi)插值處理中進(jìn)行了說明。
      第五不同點(diǎn)在于表面計算機(jī)的單元計算機(jī)4a的數(shù)量是獨(dú)立的,而SIMD類型計算機(jī)的單元計算機(jī)4a的數(shù)量則取決于并行指令執(zhí)行序列的數(shù)量。這一點(diǎn)也已經(jīng)在比較兩種方法時進(jìn)行了說明。(指令和數(shù)據(jù)流程)對表面計算機(jī)的指令執(zhí)行(控制)進(jìn)行說明。圖16說明圖1所示示例構(gòu)造的指令和數(shù)據(jù)流程,其中,根據(jù)本發(fā)明的表面計算機(jī)起CPU 8的協(xié)處理器的作用。
      這種表面計算機(jī)經(jīng)總線I/F 6和數(shù)據(jù)總線與CPU 8和主存儲器7互連。通用表面計算指令列表161和計算表面區(qū)域數(shù)據(jù)162儲存在主存儲器7中。
      在CPU 8的控制下,IFDTC 5控制通用表面計算指令列表161,以便使其經(jīng)表面計算機(jī)的總線I/F 6直接傳送給IFU 2。同樣地,IFDTC5控制計算表面區(qū)域數(shù)據(jù)162,以便使其經(jīng)總線I/F 6直接傳送給DRAM 2。這樣,由于IFDTC 5控制指令列表161和表面區(qū)域數(shù)據(jù)162,使其直接傳送給表面計算機(jī),而不需要CPU 8的幫助,減少了CPU 8的負(fù)荷。通過具有這種構(gòu)造,就能夠不僅控制二操作數(shù)或三操作數(shù)計算,而且控制四操作數(shù)計算。
      (條件轉(zhuǎn)移)對條件轉(zhuǎn)移和間接操作數(shù)進(jìn)行說明,其中,條件轉(zhuǎn)移是具有上述構(gòu)造的計算機(jī)的典型指令。
      圖17說明從這種表面計算機(jī)的功能中的條件轉(zhuǎn)移。在IFDTC 5的控制下,IFU 2根據(jù)寄存器的值來執(zhí)行條件轉(zhuǎn)移。在圖17所示的實(shí)施例中,當(dāng)執(zhí)行使DRAM 1中的表面區(qū)域數(shù)據(jù)161的點(diǎn)PTs移動到IFDTC 5的寄存器#0的Move指令時,如果寄存器#0的值等于0,則執(zhí)行向主存儲器7中Label 1的轉(zhuǎn)移。這樣,根據(jù)本發(fā)明的表面計算機(jī)能夠按照計算結(jié)果來切換處理。也就是,根據(jù)本發(fā)明的表面計算機(jī)具有一種使IFDTC 5的指令提取能夠按照寄存器的值來進(jìn)行條件轉(zhuǎn)移的功能。
      該處理是按照圖1中箭頭(1)的方向進(jìn)行的。條件轉(zhuǎn)移處理的提供有利于表面計算機(jī)編程。此外,這種條件轉(zhuǎn)移處理是一種并行處理,它取代了傳統(tǒng)順序處理的“jump(跳轉(zhuǎn))”指令。
      (間接操作數(shù))圖18說明這種表面計算機(jī)的間接操作數(shù)。間接操作數(shù)用于源操作數(shù)讀取,以及將源操作數(shù)設(shè)為下一個存取的執(zhí)行地址。在根據(jù)本發(fā)明的表面計算機(jī)的間接操作數(shù)中,指定表面區(qū)域數(shù)據(jù)SD的操作數(shù)的坐標(biāo)被表示為表面區(qū)域數(shù)據(jù)SD中的數(shù)據(jù)。獲得操作數(shù)區(qū)域。
      在圖18中,由源操作數(shù)TRMs和目的操作數(shù)TRMd所指定的間接操作數(shù)*TRMs相加,然后,所產(chǎn)生的數(shù)據(jù)設(shè)置到TRMd中。PA 4和PP 9處理該間接操作數(shù),如圖1中箭頭(2)的方向所示。在這種表面計算機(jī)中,即使一次處理的數(shù)據(jù)量大,間接操作機(jī)制仍然有效,因為處理的系統(tǒng)開銷因這種機(jī)制而變得較小。
      在本實(shí)施例中,坐標(biāo)數(shù)據(jù)是基于32位的,并且可以被視為32位(定點(diǎn),浮點(diǎn))、16位×2(定點(diǎn))、10位×3(定點(diǎn))或8位×4(定點(diǎn))數(shù)據(jù)。當(dāng)表面區(qū)域操作數(shù)的坐標(biāo)由表面區(qū)域數(shù)據(jù)SD來表示時,利用16位×2(定點(diǎn))數(shù)據(jù)來表示二維坐標(biāo),而利用10位×3(定點(diǎn))來表示三線性插值的三維坐標(biāo)。當(dāng)以32位來表示坐標(biāo)時,需要兩個操作數(shù)來表示二維坐標(biāo),需要三個操作數(shù)來表示三維坐標(biāo)。(指令集)在圖11中,說明執(zhí)行加法指令的情況。在本示例中,表面區(qū)域數(shù)據(jù)SPs(源操作數(shù))和表面區(qū)域數(shù)據(jù)SPd(目的操作數(shù))按表面區(qū)域單位進(jìn)行相加。也就是,表面區(qū)域數(shù)據(jù)SPs和SPd與屬于相互匹配區(qū)域的計算數(shù)據(jù)一起進(jìn)行相加。這種處理能夠進(jìn)行極快的計算。作為該表面計算機(jī)的指令集,該指令集可以包括傳統(tǒng)的指令,例如ADD、SUB、MADD及MOVE。
      (計算控制)在圖19A至19D分別示出計算控制應(yīng)用于具有兩個操作數(shù)的指令、具有三個操作數(shù)的指令及具有四個操作數(shù)的指令的情況。首先,圖19A示出兩個操作數(shù)的計算控制。在圖19A中,將ADD或SUB操作應(yīng)用于源表面區(qū)域數(shù)據(jù)SPs和目的表面區(qū)域數(shù)據(jù)SPd。
      ADD∶SPd=SPd+SPsSUB∶SPd=SPd-SPs所得出的數(shù)據(jù)儲存在目的表面所指定的地址中。圖19A所示的示例相當(dāng)于以下的情況對系數(shù)矩陣第一列元素(a00,a01,a02,a03)與列向量(x,y,z,w)的相應(yīng)元素之積(a00*x,a01*y,a02*z,a03*w)進(jìn)行計算,然后再對所得出的乘積的總和進(jìn)行計算。
      圖19B和19C示出三個操作數(shù)的計算控制。在圖19B和19C中,每個MADD(乘和加)與CMOV(條件移動)應(yīng)用于操作數(shù)SPd、SPs及SPt所指定的表面區(qū)域中的計算數(shù)據(jù)。在圖19B中,進(jìn)行以下計算。
      MADD∶SPd=SPd+SPs×SPt計算SPs×SPt,將其乘積加到Spd上,然后,所得結(jié)果儲存在SPd所指定的地址中。
      在圖19C中,對SPs和SPt進(jìn)行比較;如果條件(SPs>SPt)被滿足,則將SPs傳送給SPd。
      CMOV,GT如果(SPs>SPt)SPd=SPs19D示出四個操作數(shù)的計算控制。在本示例中,MADD和CMOV指令應(yīng)用于各操作數(shù)SPd、SPs、SPt以及SPc。這里,SPs和SPt相乘,SPd與所得乘積相加,然后再把結(jié)果和SPc進(jìn)行比較。如果滿足給定條件,則通過將上述乘積與SPd相加所得出的值被設(shè)置到SPd中。得出以下表達(dá)式。
      MADD.CMOV.GT如果(SPd+SPc×SPt>SPc)SPt=SPd+SPs×SPt;否則 SPd=SPc這樣,在表面計算機(jī)中,即使使用了多操作數(shù),計算數(shù)據(jù)仍然與該表面區(qū)域一起一次進(jìn)行傳送和計算。因此,沒有降低計算效率。如上所述,可以構(gòu)造根據(jù)本發(fā)明的表面計算機(jī),以便具有多個操作數(shù),這適合于多流水線。
      圖20說明一種執(zhí)行編程語言C中所謂的“如果語句”的處理。正如在對SIMD類型計算機(jī)的說明中所述,它導(dǎo)致程序設(shè)計中的復(fù)雜性,其中,相同的處理由單個指令來執(zhí)行,正如在對SIMD類型計算機(jī)的說明中所述。因此,通過提供控制表面操作數(shù)來控制處理。在圖20中,使用條件移動指令CMOV和GT來執(zhí)行三個操作數(shù)Spa、SPc及SPt的條件移動。CMOV表示條件移動,而GT表示較大(比較)。當(dāng)控制表面區(qū)域數(shù)據(jù)SPt和源表面區(qū)域數(shù)據(jù)SPs進(jìn)行比較時,如果滿足條件SPs>SPt,則數(shù)據(jù)移動到目的操作數(shù)SPd。這樣,根據(jù)本發(fā)明的表面計算機(jī)能夠按照計算結(jié)果來切換處理。如上所述,這種條件轉(zhuǎn)移處理可以是并行處理,它取代了傳統(tǒng)的“jump”(跳轉(zhuǎn))指令。
      (條件轉(zhuǎn)移指令)圖21說明一個示例,其中,控制表面數(shù)據(jù)本身控制操作符。示例中所示的條件轉(zhuǎn)移指令是具有三個操作數(shù)SPd、SPs及SPt的表面有效指令EXDT。執(zhí)行由控制表面數(shù)據(jù)SPt所指定的二操作數(shù)指令。這樣,當(dāng)表面計算機(jī)進(jìn)行并行處理時,可以利用控制表面數(shù)據(jù)來進(jìn)行條件轉(zhuǎn)移處理。如果控制表面數(shù)據(jù)用作指示IFDTC 5的寄存器等于零的條件,并且如果所得出數(shù)據(jù)的目的地址是主存儲器7中的Label1,則本示例相當(dāng)于圖17所示的示例。
      在本實(shí)施例中,根據(jù)本發(fā)明的表面計算機(jī)用于自然科學(xué)各個領(lǐng)域中的大量計算。這種表面計算機(jī)可以用于各種模擬和根據(jù)三維動畫的繪圖,這就在處理速度、可用性、用戶滿意度方面得到改善。
      權(quán)利要求
      1.一種表面計算機(jī),它包括地址發(fā)生器,用于生成地址,供調(diào)整有關(guān)至少一個存儲區(qū)域的表面區(qū)域數(shù)據(jù);以及并行計算機(jī),在所述地址發(fā)生器的后級提供,具有多個單元計算機(jī)。
      2.一種表面計算機(jī),它包括地址發(fā)生器,用于生成地址,供調(diào)整有關(guān)至少一個存儲區(qū)域的表面區(qū)域數(shù)據(jù);并行計算機(jī),在所述地址發(fā)生器的后級提供,具有多個單元計算機(jī);以及存儲單元,它連接到所述并行計算機(jī)。
      3.一種表面計算機(jī),它包括地址發(fā)生器,用于生成地址,供調(diào)整有關(guān)至少一個存儲區(qū)域的表面區(qū)域數(shù)據(jù);以及并行計算機(jī),在所述地址發(fā)生器的后級提供,具有多個單元計算機(jī),其中,由構(gòu)造指令字的操作數(shù)所指定的區(qū)域為線。
      4.如權(quán)利要求3所述的表面計算機(jī),其特征在于還包括連接到所述并行計算機(jī)的存儲單元。
      5.一種表面計算機(jī),它包括地址發(fā)生器,用于生成地址,供調(diào)整有關(guān)至少一個存儲區(qū)域的表面區(qū)域數(shù)據(jù);以及并行計算機(jī),在所述地址發(fā)生器的后級提供,具有多個單元計算機(jī),其中,由構(gòu)造指令字的操作數(shù)所指定的區(qū)域是二維擴(kuò)充的表面區(qū)域。
      6.如權(quán)利要求5所述的表面計算機(jī),其特征在于還包括連接到所述并行計算機(jī)的存儲單元。
      7.如權(quán)利要求1、2、3和5其中之一所述的表面計算機(jī),其特征在于所述表面計算機(jī)被構(gòu)造為單片LSI。
      8.如權(quán)利要求2、4和6其中之一所述的表面計算機(jī),其特征在于所述存儲單元包括DRAM。
      9.如權(quán)利要求8所述的表面計算機(jī),其特征在于所述存儲單元經(jīng)具有大總線寬度的數(shù)據(jù)總線連接到所述并行計算機(jī)。
      10.一種表面計算機(jī),包括具有大總線寬度的數(shù)據(jù)總線,允許形成在一個芯片上的處理塊和存儲塊連接在其中,其中所述處理塊包括地址發(fā)生器,用于生成地址,供調(diào)整有關(guān)存儲區(qū)域的表面區(qū)域數(shù)據(jù);以及并行計算機(jī),在所述地址發(fā)生器的后級提供,具有多個單元計算機(jī);以及所述存儲塊包括DRAM。
      11.如權(quán)利要求10所述的表面計算機(jī),其特征在于所述處理塊還包括指令提取和數(shù)據(jù)傳送控制器,用于在CPU的控制下,控制從主存儲器中的表面計算指令的提取及表面區(qū)域數(shù)據(jù)的傳送;以及預(yù)處理器,根據(jù)所述表面計算指令,向所述DRAM發(fā)出表面區(qū)域信息。
      12.如權(quán)利要求11所述的表面計算機(jī),其特征在于所述表面計算指令包括操作數(shù),所述操作數(shù)包含在指令字中,用于指定線區(qū)域;以及所述表面計算機(jī)指令將線區(qū)域數(shù)據(jù)設(shè)置為計算數(shù)據(jù)。
      13.如權(quán)利要求11所述的表面計算機(jī),其特征在于所述表面計算指令包括操作數(shù),所述操作數(shù)包含在指令字中,用于指定表面區(qū)域;以及所述表面計算指令將表面區(qū)域數(shù)據(jù)設(shè)置為計算數(shù)據(jù)。
      14.如權(quán)利要求10所述的表面計算機(jī),其特征在于所述地址發(fā)生器通過對有關(guān)計算表面區(qū)域數(shù)據(jù)的所述表面區(qū)域進(jìn)行放大/縮小來調(diào)整所述表面區(qū)域數(shù)據(jù)。
      15.如權(quán)利要求10所述的表面計算機(jī),其特征在于當(dāng)所述計算區(qū)域數(shù)據(jù)中不存在具有相應(yīng)地址的數(shù)據(jù)時,通過使用復(fù)制處理、雙線性插值處理及三線性插值處理其中之一的處理,來產(chǎn)生具有相應(yīng)地址的數(shù)據(jù)。
      16.如權(quán)利要求10所述的表面計算機(jī),其特征在于使用超流水線體系結(jié)構(gòu)來構(gòu)造所述并行計算機(jī)。
      17.如權(quán)利要求10所述的表面計算機(jī),其特征在于使用超標(biāo)量體系結(jié)構(gòu)來構(gòu)造所述并行計算機(jī)。
      18.如權(quán)利要求10所述的表面計算機(jī),其特征在于在所述表面計算機(jī)外部為其提供CPU和主處理器,并且所述表面計算機(jī)用作所述CPU的協(xié)處理器。
      19.表面計算機(jī)的一種計算方法,所述表面計算機(jī)包括地址發(fā)生器、處理塊、存儲塊、數(shù)據(jù)總線,所述處理塊具有包括多個單元計算機(jī)的并行計算機(jī),所述數(shù)據(jù)總線具有大的總線寬度并允許所述處理塊和所述存儲塊連接在其中,所述計算方法包括以下步驟地址生成步驟,用于使所述地址發(fā)生器生成地址,供調(diào)整有關(guān)存儲區(qū)域的表面區(qū)域數(shù)據(jù);以及處理步驟,用于使所述并行計算機(jī)處理所述表面區(qū)域數(shù)據(jù)。
      20.如權(quán)利要求19所述的表面計算機(jī)的計算方法,其特征在于所述地址發(fā)生器生成所述地址,供通過對所述表面區(qū)域進(jìn)行放大/縮小來調(diào)整有關(guān)所述計算表面區(qū)域數(shù)據(jù)的所述表面區(qū)域數(shù)據(jù)。
      21.如權(quán)利要求19所述的表面計算機(jī)的計算方法,其特征在于線數(shù)據(jù)和所述表面區(qū)域數(shù)據(jù)的其中之一是由構(gòu)造指令字的操作數(shù)來指定的。
      22.如權(quán)利要求19所述的表面計算機(jī)的計算方法,其特征在于線數(shù)據(jù)由操作數(shù)所指定的一對彼此不同的點(diǎn)來表示。
      23.如權(quán)利要求19所述的表面計算機(jī)的計算方法,其特征在于所述表面區(qū)域數(shù)據(jù)由點(diǎn)和將所述點(diǎn)設(shè)置為基點(diǎn)的線來表示,所述點(diǎn)和所述線由操作數(shù)來指定。
      24.如權(quán)利要求19所述的表面計算機(jī)的計算方法,其特征在于所述表面區(qū)域數(shù)據(jù)由操作數(shù)所指定的多個點(diǎn)來表示。
      全文摘要
      表面計算機(jī)包括:地址發(fā)生器,用于生成地址,供調(diào)整有關(guān)至少一個存儲區(qū)域的表面區(qū)域數(shù)據(jù);以及并行計算機(jī),在地址發(fā)生器后級提供,具有多個單元計算機(jī)。
      文檔編號G06F15/80GK1387648SQ00815213
      公開日2002年12月25日 申請日期2000年10月27日 優(yōu)先權(quán)日1999年11月1日
      發(fā)明者大場章男 申請人:索尼電腦娛樂公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1