CN1387648A - 表面计算机及使用表面计算机的计算方法 - Google Patents
表面计算机及使用表面计算机的计算方法 Download PDFInfo
- Publication number
- CN1387648A CN1387648A CN00815213A CN00815213A CN1387648A CN 1387648 A CN1387648 A CN 1387648A CN 00815213 A CN00815213 A CN 00815213A CN 00815213 A CN00815213 A CN 00815213A CN 1387648 A CN1387648 A CN 1387648A
- Authority
- CN
- China
- Prior art keywords
- data
- computing machine
- surperficial
- surf zone
- address
- 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
Links
- 238000004364 calculation method Methods 0.000 title claims description 34
- 238000012545 processing Methods 0.000 claims description 115
- 238000000034 method Methods 0.000 claims description 38
- 238000012546 transfer Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 3
- 230000010076 replication Effects 0.000 claims description 2
- 238000013316 zoning Methods 0.000 claims 1
- 102100020800 DNA damage-regulated autophagy modulator protein 1 Human genes 0.000 description 19
- 101000931929 Homo sapiens DNA damage-regulated autophagy modulator protein 1 Proteins 0.000 description 19
- 239000011159 matrix material Substances 0.000 description 18
- 230000001419 dependent effect Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 230000003321 amplification Effects 0.000 description 5
- 238000003199 nucleic acid amplification method Methods 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 230000005610 quantum mechanics Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 241000894007 species Species 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
Abstract
表面计算机包括:地址发生器,用于生成地址,供调整有关至少一个存储区域的表面区域数据;以及并行计算机,在地址发生器后级提供,具有多个单元计算机。
Description
发明领域
本发明涉及表面计算机及计算方法,通过同时对二维区域单元的二维区域中所包含的计算数据进行计算,所述表面计算机及计算方法能够在诸如物理计算、环境计算、行为计算、情绪计算等的各种类型的复杂计算中执行快速计算。
发明背景
近来,自然科学和工程技术的各个领域有了显著发展。在自然科学和工程技术中,需要大量的物理计算。例如,在太空开发项目、流体动力学以及量子力学领域,都需要进行大量的矩阵计算。当这样的计算需要高速进行时,必须对计算机进行优化。
传统的计算机,尤其是个人计算机,已经发展到足以超过老式通用计算机(称作“主机”)。
然而,这样的人计算机难以高速进行上述大量计算,或者说,这样的个人计算机要花长时间来进行上述计算。可以认为计算机中出现的数据传输速度、数据处理速度等的延时是妨碍个人计算机高速进行大量计算的原因。
因此,对于需要进行上述大量计算的开发人员、研究人员,早就希望有能够高速进行大量计算的计算机。
发明概述
因此,本发明的一个目的是提供一种具有新颖体系结构的计算机及使用这种计算机的计算方法,所述计算机和所述方法能够高速进行大量计算。
为此,根据本发明的第一方面,提供了一种表面计算机,它包括:地址发生器,用于生成地址,供调整关于至少一个存储区域的表面区域数据;以及并行计算机,在地址发生器的后级提供,具有多个单元计算机。
根据本发明的第二方面,表面计算机包括:地址发生器,用于产生地址,供调整有关至少一个存储区域的表面区域数据;并行计算机,在地址发生器的后级提供,具有多个单元计算机;以及存储单元,它连接到所述并行计算机。
根据本发明的第三方面,表面计算机包括:地址发生器,用于产生地址,供调整有关至少一个存储区域的表面区域数据;以及并行计算机,在地址发生器的后级提供,具有多个单元计算机,其中由构成指令字的操作数所指定的区域为线(line)。
根据本发明的第四方面,表面计算机包括:地址发生器,用于产生地址,供调整有关至少一个存储区域的表面区域数据;以及并行计算机,在地址发生器后级提供,具有多个单元计算机,其中由构成指令字的操作数所指定的区域为二维扩充的表面区域。
根据本发明的第五方面,表面计算机包括数据总线,具有大的总线宽度,允许形成在一个芯片上的处理块和存储块连接在其中。在表面计算机中,处理块包括地址发生器和并行计算机,地址发生器用于产生地址,供调整有关存储区域的表面区域数据,并行计算机在地址发生器后级提供,并行计算机具有多个单元计算机,而存储块包括DRAM。
根据本发明的第六方面,表面计算机包括:地址发生器;处理块,它具有包含多个单元计算机的并行计算机;存储块;数据总线,它具有大的总线宽度,并允许处理块和存储块连接在其中;计算方法包括:地址生成步骤,用于使地址发生器生成地址,供调整有关存储区域的表面区域数据;以及处理步骤,用于使并行计算机处理表面区域数据。
附图简述
图1是根据本发明的表面计算机的构造的方框图;
图2是流程图,说明图1所示表面计算机的操作;
图3A和3B说明表面区域的放大处理;
图4A和4B说明该表面区域的缩小处理;
图5A和5B说明内插值(inner interpolation)处理;
图6说明模式匹配处理;
图7A、7B及7C说明传统的SISD、SIMD类型计算机和表面计算机之间的差异;
图8说明利用SISD类型计算机进行矩阵计算时的计算处理;
图9说明利用SIMD类型计算机进行矩阵计算时的计算处理;
图10说明利用表面计算机进行矩阵计算时的计算处理;
图11是对表面计算机中的计算处理的说明;
图12是方框图,说明表面计算机的重要部分的另一个构造;
图13说明指令字;
图14说明操作数示例及表面计算机的插值操作;
图15说明处理器阵列的并行处理;
图16说明在表面计算机用作协处理器的构造中的指令和数据流;
图17说明表面计算机的条件转移;
图18说明表面计算机的直接操作数;
图19A、19B、19C及19D说明利用两个操作数、三个操作数及四个操作数的计算处理;
图20说明表面计算机的一个示例计算;以及
图21说明表面计算机的另一个示例计算。
最佳实施方案说明
参照附图来说明根据本发明的一种表面计算机及使用这种表面计算机的计算方法的实施方案。如果元件相同,则这些元件具有同样的标号,请求重复的描述从略。
[表面计算机的设计思想]
图1示出根据本发明的表面计算机的整体构造。表面计算机的基本设计是根据以下设计思想来进行的。
(1)采用用于ASIC-DRAM(特定用途集成电路-动态随机存取存储器)中的半导体制作方法,在一个芯片上形成处理块和存储块。
过去,在典型的处理器中,处理块和存储块是分开形成的。因此,处理期间从处理块对存储块的存储器存取成为性能瓶颈。然而,近来在半导体制造工艺上的进步引发了嵌入式或混合式LSI(大规模集成电路),在这种LSI中,处理块和存储块集成在一个芯片上。由于将两个块集成在一个芯片上缩短了处理块和存储块之间的距离,于是加快了数据传送的速度,这解决了上述存储器存取问题。
ASIC最初是指专用半定制的集成电路。然而,近来ASIC-DRAM主要是指DRAM/逻辑集成半导体元件,作为定制集成电路,它有极大的需求量,或者它是指其制造程序。
(2)具有大的数据总线宽度的内部数据总线允许处理块和存储块在其中相互连接。
根据经验,在进行高速物理计算时,与处理块的处理速度相比,预计存储块和处理块之间的数据传送速度在更多地成为性能瓶颈。为了避免由于数据传送速度造成的瓶颈,用于处理块和存储块之间数据传送的数据总线的数据总线宽度要设计得大。
(3)处理块采用某种构造,这种构造使表面区域数据能够作为数据进行处理,使得一次可以处理一定量的数据。
“表面区域数据(surface region data)”的概念是指存在于表面区域中的一组计算数据。因此,“表面计算机(surface computer)”的概念是指某种计算机,它根据表面或表面区域来指定表面区域数据,对其进行操作(即:从存储器中读取数据,以及向存储器写入数据),并进行计算处理。由于表面计算机处理表面区域数据,其中,该数据是具有较大数量的一组数据,所以所处理的数据本身就具有并行的概念。也就是,所述数据具有一种能同时被处理的结构。
根据上述设计思想来开发表面计算机时,通过在处理块和存储块之间构造数据总线,使总线宽度足够大,预计处理块的处理速度相对地成为性能瓶颈。因此,为了避免由于处理块的处理速度而产生的问题,通过使用要作为表面区域数据来处理的数据,一次或数次传送大量的数据组,并以数据组为单位进行处理。通过将表面计算机的数据总线宽度设置得大,可以进行表面区域数据的传送。
根据本发明的表面计算机在其处理块中包括处理器阵列,所述处理器阵列具有多个单元计算机,使得可以有效地处理这种大量的数据。
下面将说明根据上述设计思想的表面计算机的具体构造。
[表面计算机的构造及其各元件的操作]
(表面计算机的构造)
图1说明根据本发明的表面计算机的整体构造。图1所示的表面计算机大致上被分为处理块P和存储块M。如上所述,传统的处理块和传统的存储块是分开形成的。然而,这种表面计算机包含处理块P,其构成方式是专用于DRAM的并且利用了ASIC-DRAM。因此,这种表面计算机被构成为把处理块P和存储块M形成在一个芯片上。
处理块P包括IFU(指令提取单元)2、PP(预处理器)9、AG(地址发生器)3及PA(处理器阵列)4。
存储块M包括DRAM1。
除了处理块P和存储块M之外,表面计算机还包括IFDTC(指令提取和数据传送控制器)5和总线I/F(总线接口)6。
在单片LSI中实现了这种表面计算机,其中结合了上述功能。
这种表面计算机连接到位于表面计算机外部的主存储器7和中央处理器8。虽然在本实施例中外部处理单元用作CPU,但表面计算机的使用不一定限于局部处理器。表面计算机可以用作中央处理器。
IFDTC 5是控制装置,用于在CPU 8的控制下,控制要由表面计算机执行的表面计算指令的提取操作,以及控制要由表面计算机处理的表面区域数据的传送操作。IFDTC 5的操作使表面计算机的处理块P可以作为CPU 8的协处理器,这减少了CPU 8的负荷。
在IFDTC 5的控制下,IFU 2从主存储器7中提取在表面计算机上执行的表面计算指令的列表。
PP 9计算与表面计算指令字的操作数相对应的表面区域,并发出把与所述表面区域对应的计算数据从DRAM 1传送到包含在DRAM 1中的主读出放大器10和辅助读出放大器11(缓冲器)的指令。主读出放大器10和辅助读出放大器11用作高速缓冲存储器。此外,PP 9根据操作数来设置AG 3。另外,PP 9对通用表面计算指令进行解码,其中通用表面计算指令是从主存储器7中调用并经IFU 2提取的。
AG 3产生用于将读出放大器10和11中提取的数据提供给PA 4的地址,计算表面区域内的位置相关信息,并将所产生的位置相关信息输出给PA 4。位置相关信息的计算是指:例如,当确定相应表面区域数据(要计算的对象)的表面区域大小不一致时,并且当包含数据的一个表面区域的地址对应于没有数据的其它表面区域的地址时,表面区域数据的地址计算。下面将说明位置相关信息计算的放大/缩小处理、诸如双线性插值处理或三线性插值处理的插值处理等。
由于表面计算机处理表面区域数据,因此,指定表面区域数据的指令字的操作数结构与传统计算机的不同。下面也会说明这些操作数的详细情况。
PA 4计算表面区域数据。为了实现高速计算,PA 4被构造成处理器阵列,其中包括例如16个单元计算机4a。但是,PA 4的单元计算机4a的数量不一定限于16。此外,为了实现更快的计算,PA 4采用诸如超标量体系结构或超流水线体系结构的体系结构。下面还将说明超标量和超流水线体系结构。
根据按照操作码由AG 3产生的地址码,PA4对从读出放大器10和11中提供的各操作数中的计算表面区域数据进行处理。
此外,PA 4包括与存储块M进行通信的MEMIF(存储器接口)12。MEMIF 12与诸如主存储器7的外部存储器通信,或者它操作主读出放大器10,主读出主放大器10执行写入处理,诸如目的操作数区域处理,其中进行读取-修改-写入。
存储块M通常包括DRAM 1。与表面计算机外部的存储器7不同,DRAM 1是内部存储器,用作表面计算机的工作区。例如,DRAM1的存储容量为32Mb。
DRAM 1包括:主读出放大器10(或缓冲器I),用作高速缓冲存储器,在MEMIF 12和DRAM 1之间传送数据;以及辅助读出放大器12(或缓冲器II),用作高速缓冲存储器,在PA 4和DRAM 1之间传送数据。
总线I/F 6将储存在主存储器7中的通用表面计算指令的列表输出给IFU 2,并将表面区域数据输出给MEMIF 12。
如上所述,处理块P、存储块M与具有大数据总线宽度的数据总线互连。具体地说,数据经具有1024位总线宽度的内部写入数据总线13从PA 4的MBMIF 12传送到主读出放大器10,同时,数据经具有1024位总线宽度的内部读取数据总线14从DRAM 10的主读出放大器10传送到PA 4的MBMIF 12。数据总线14主要用于表面区域数据传送。
此外,当PA 4包含例如16个单元计算机时,其中每个单元计算机均具有32位数据总线,DRAM 1的辅助读出放大器11与PA 4经具有512位数据总线宽度(=16×32位)的数据总线15互连。数据总线15用于读取指定表面区域数据的操作数信息等。
PA 4和DRAM 1采用这三条数据总线13、14及15直接互连,总数据总线宽度达2048位。这防止了存储块M和处理块P之间的数据传送成为性能瓶颈。
利用这个特点实现包含大量数据的表面区域数据的传送。
2048位数据总线宽度只是一个示例,本发明不限于所述数据总线宽度的大小。
CPU 8(在表面计算机外部)将指令输出给IFDTC 5,并经总线I/F 6向IFU 2和MEMIF 12输出通用表面计算指令列表(对应于程序)和表面区域数据。
用于所述表面计算机中的通用表面计算指令列表和表面区域数据预先储存在主存储器7中。
(表面计算机各组件的操作)
图2给出一个流程图,说明具有上述构造的表面计算机的各个组件。
参照图1,CPU 8控制IFDTC 5的整体操作。
在步骤S10,在IFDTC 5的控制下,IFU 2经总线I/F 5提取从主存储器7中输出的表面计算指令,并将该指令传送给PP 9。
在步骤S20,当PP 9接收表面计算指令时,与有关该表面计算指令的指令字中的操作数相对应的表面区域被处理(计算)。随后,PP 9输出指令,使得根据计算结果而指定的表面区域数据从DRAM 1传送到主读出放大器10和/或辅助读出放大器11。也就是,计算表面区域数据在主读出放大器10和辅助放大器11中被预先提取。此外,PP 9按照表面计算指令的操作数中的表面区域信息来设置AG 3(PP 9后级)。
在步骤S30,AG 3产生地址,该地址通过执行地址计算来得到,用于向PA 4提供在主读出放大器10和/或辅助读出放大器11中提取的表面区域数据。此外,还计算表面区域中的位置相关信息。随后,AG 3计算地址数据和位置相关信息,并将所产生的数据提供给PA 4。例如,该位置相关信息是表面区域数据的地址,如下所述,它包含有关是否表面区域数据的地址在其它表面区域数据中有对应物的信息。
在步骤40,按照表面计算指令的操作码,PA(处理器阵列)4对从主读出放大器10和辅助读出放大器11根据AG 3产生的地址数据所提供的操作数中的计算表面区域数据进行处理。如果数据由于指定表面区域数据的操作数信息的不同而没有对应物(这意味着该数据在其它表面区域中没有相应的地址),则通过插值处理,诸如双线性插值处理或三线性插值处理,按照操作码来处理从读出放大器10和11(缓冲器)输出的相邻数据,从而产生在其它表面区域中有对应物的数据。
在步骤S50,MEMIF 12经总线I/F 6与主存储器7进行通信。此外,MEMIF 12操作向DRAM 1写入数据的主读出放大器,由此,例如执行目的操作数区域处理等,用于执行读取-修改-写入操作(在一个周期中,执行读取操作,然后执行写入操作)。
[地址生成]
再来说明地址生成步骤(步骤S30)。当PA 4按照表面计算指令的操作码来处理表面区域数据时,由于指定各表面区域数据的操作信息的不同,在两个表面区域数据之间有时不存在对应。
例如,当一对计算表面区域数据不匹配时,没有对应出现,这是指表面区域数据的大小不同。在这种情况下,例如,通过适当地放大或缩小源操作数所指定的表面区域,使源操作数所指定的表面区域对应于目的操作数所指定的表面区域,就可以执行两个表面区域数据的计算。这种放大/缩小处理通常通过复制处理或插值处理来进行。
用这种方法,例如,如果通过使源操作数所指定的表面区域对应于目的操作数所指定的表面区域来确定各表面区域的数据大小,则对表面区域数据的大小进行放大或缩小,或者对表面区域数据的大小进行处理,以便符合表面区域数据的预定尺度比。
有在构成相应表面区域的全部或部分计算数据的地址之间没有对应的情况。在这种情况下,通过对一个或两个表面区域进行插值处理而在其相应的地址产生数据。
即使在由于操作数信息的差异而引起的没有相应计算数据的表面区域之间,这样的插值处理使一个表面区域中的计算数据能够在其它表面区域的相应地址具有对应数据。因此,可以在任意一对表面区域数据之间进行处理。作为插值处理,通常利用包含在表面区域数据中的相邻数据来进行双线性过滤、三线性过滤等。
(表面区域的放大处理)
图3A和3B说明表面区域数据的放大处理。在图3A所示的示例中,通过复制表面区域放大数据“a”并使用其多个,来放大表面区域数据“a”。在这种情况下,对表面区域数据进行所需数量的复制,其中所述表面区域数据具有与表面区域数据“a”相同的数据并且没有进行放大,由此可以进行放大处理。
图3B说明通过插值处理的另一个放大处理。未经放大的表面区域数据的四个小表面区域数据“a”、“b”、“c”及“d”如图3B所示那样排列。当放大表面区域数据时,各个小表面区域数据被安排在相应的角。在“a”和“b”、“a”和“c”、“b”和“d”、及“c”和“d”之间分别安排具有(a+b)/2、(a+c)/2、(b+d)/2及(c+d)/2的区域的相邻小表面区域。区域数据“a”、“b”、“c”以及“d”所包围的部分具有(a+b+c+d)/4区域的表面区域数据。这样,放大了由小表面区域数据“a”、“b”、“c”及“d”所组成的表面区域数据。
(表面区域的缩小处理)
图4A和4B示出缩小处理。缩小处理以图3A或3B所示的放大处理的相反方向来进行。在图4A中,缩小处理以通过图3A所示复制所进行的放大处理的相反方向来进行。在图4B中,缩小处理以通过图3B所示插值所进行的放大处理的相反方向来进行。
(双线性处理)
图5A说明通过作为插值处理一个示例的双线性插值来生成数据的示例。在一个计算表面区域数据SD中,由图5A的“O”表示的地址具有储存在其中的数据,而在其它计算表面区域数据DS中,由“O”表示的地址没有储存在其中的数据,如图5A所示。在这种情况下,通过内插值处理,利用由“O”表示的并且在其中没有数据的地址的四个接近的数据,来产生数据。也就是,线性插值是以右上方的倾斜方向(例如X轴方向)(从图中看)来进行的,以及垂直进行线性插值(例如Y轴方向)。因此,这样的插值方法称作双线性插值方法。
即使表面区域数据DS分离地存在,例如,表面区域数据SD仅存在于对应于正格(positive grid)相交的地址,如图5A所示,通过双线性处理可以得到一组构成所述表面区域的不间断表面区域数据(solid surface region data)。
(三线性处理)
图5B说明一个通过三线性插值来生成数据的示例。假定一个计算表面区域数据SD在其它表面区域的相应地址没有数据。在这种情况下,如图5B所示,通过插值处理,利用接近其它表面区域相应地址两端的两个表面区域数据SD,来生成表面区域数据。也就是,通过双线性插值方法,在与没有数据的表面地址左端的表面区域数据SD相对应的地址产生数据,从图5B来看。同样,通过双线性插值方法,在与表面地址右端的表面区域数据相对应的地址,来产生数据,从图来看。通过线性地插入这两个生成的数据,得到具有包含在其它表面区域中并由“O”表示的地址的数据。这样的插值方法称作三线性插值方法。
即使多个表面区域数据SD分离地存在,例如,可以通过三线性方法来得到多个表面区域数据SD,其中所述表面区域数据SD构成相互不间断(solidly)指定的表面。也就是,可以建立任意的三维区域来作为要进行物理计算等的对象。
(点抽样)
点抽样是一种根据预定规则从表面区域数据SD中选择数据的方法。当进行下述矩阵计算时采用点抽样。
(屏蔽处理)
屏蔽处理是一种根据预定规则从表面区域数据SD中丢弃数据的方法。
(模式匹配)
图6说明模式匹配处理。模式匹配找出模式之间的距离。利用双线性插值或三线性插值来进行模式匹配。在这种处理中,通过表面计算处理来计算模式之间的差异(SPd=SPd-SPs),然后再计算所得出的差异的绝对值(SPd=|SPd-SPs|)或所得到的差异的平方(SPd=(SPd-SPs)*(SPd-SPs))。通过对具有源表面一半长度的目的表面的双线性插值来进行缩小转换,并得到总的所得到的差异。缩小转换循环进行,直到获得标量值(scalar value),由此获得最终标量值。
在表面计算机上运行的程序在上述放大处理、缩小处理、双线性处理、三线性处理、点抽样处理、屏蔽处理、模式匹配处理等中进行适当地选择。
[表面计算机的特点及SISD类型、SIMD类型计算机与表面计算机之间的比较]
通过与传统的SISD(单指令单数据流)方法和SIMD(单指令多数据流)方法进行比较,来说明表面计算机的特点。
图7A至7C从指令流和硬件机制的观点来说明SISD类型计算机、SIMD类型计算机及表面计算机。
在图7A所示的SISD类型计算机中,单元计算机4a根据单指令,使用单数据(以下称作点数据)PD,顺序地进行计算。因此,当进行大量计算机时,需要大量的时间,这使SISD方法不适合这种类型的使用。
在图7B所示的SIMD类型计算机中,多个单元计算机4a根据单指令,同时进行计算。由于SIMD类型计算机包括多个单元计算机,所以在整体指令执行序列中存在并发性。为了保证指令执行序列的并发性,根据并行指令执行序列的数量来确定单元计算机4a的数量。
当进行大量计算时,SIMD类型计算机的执行速度比SISD类型计算机要快得多。但是,如上所述,需要一种物理计算等,它需要大量的数据,而这些数据即使是SIMD类型计算机也无法处理。
表面计算机把数据视为表面。也就是,表面计算机根据表面区域来指定数据组并对其进行处理。将属于一个数据组的数据作为表面区域数据SD一次(或数次)进行传送和处理,由此大大减少了数据传送和计算的重复数量。因此,表面计算机实现了高性能计算。
从一次处理一组数据的观点来看,如图7C所示,数据可以是由线来指定的线数据LD。因此,表面计算机的概念包括线计算机(linecomputer)。
表面计算机的特点是数据本身并行存在。单元计算机4a的数量与表面数据SD的数量、指令执行序列的数量等无关。由于表面计算机对包含多个计算数据的整个表面区域进行计算,所以计算数据是并行的。表面区域数据的计算方法及该计算方法所需的单元计算机4a的数量由计算机程序来确定,它们与表面区域数据SD无关。表面计算机本身可以顺序地进行计算。
但是,在高速处理大量数据时,显然,通过提供多个单元计算机,可以实现计算的加速。因此,在本发明中,在PA 4中提供了16个单元计算机。如下所述,必要时,超标量或超流水线体系结构可以用作PA4的体系结构,由此可以实现更多的计算加速。
表面计算机与其它两种方法的不同之处在于:
(1)SIMD类型计算机在指令执行序列中具有并发性,而表面计算机在数据中具有并发性;
(2)SISD类型和SIMD类型计算机处理点数据PD,而表面计算机则处理表面区域数据SD;
(3)由于表面计算机处理表面区域数据SD,所以在计算机语言方面具有不同于SISD类型计算机和SIMD类型计算机的结构,后两种计算机处理点数据PD,也就是,在构成指令字的操作数的形式方面,在表面计算机和SISD类型、SIMD类型计算机之间存在差异;
(4)SIMD类型计算机只处理分离的点数据PD,而表面计算机则利用上述内插值处理等方法来处理不间断表面区域的全部数据(此外,表面计算机能够处理三维中的任意表面区域数据);以及
(5)SIMD类型计算机的单元计算机4a的数量取决于并行指令执行序列的数量,而表面计算机的单元计算机4a的数量则是独立的。
在说明这些差异之前,利用了处理大量数据的典型矩阵计算的示例,通过与SISD类型计算机和SIMD类型计算机进行比较来说明表面计算机的处理。
(SISD类型、SIMD类型计算机和表面计算机之间关于矩阵计算的差异)
图8至10说明分别使用SISD类型计算机、SIMD类型计算机及表面计算机处理大量矩阵计算。这里所述的矩阵计算用于例如关于三维图像数据的坐标变换。在此情况下,分别使用图8至10所示的各个系数矩阵,把构成图像数据的列向量(x、y、z、w)坐标变换成为点(X、Y、Z、W)。
当利用图7A所示的SISD方法进行这样的矩阵计算时,顺序地执行图8的方框中的计算。
a00 *x+a01 *y+a02 *z+a03 *w=X
在这种情况下,例如,计算从左起第一项开始顺序地进行。同样地,顺序地进行下列计算。
a10 *x+a11 *y+a12 *z+a13 *w=Y
a20 *x+a21 *y+a22 *z+a23 *w=Z 以及
a30 *x+a31 *y+a32 *z+a33 *w=W
由于该序列根据数据的大小多次重复进行,因此要花大量时间来完成以上计算。在本示例中,矩阵元素a10至a33是点数据PD,并且在该SISD方法中,顺序地计算a10 *x等。
接着,如图9所示,当利用图7B所示的SIMD类型计算机来进行同一矩阵计算时,四个单元计算机4a根据单个指令基本上并行地计算图9的方框所示的相应四个表达式。
第一单元计算机4a分别计算矩阵中的元素a00、a10、a20和a30与列向量元素x、y、z和w的乘积,然后再计算所得乘积之和。
a00 *x+aO1 *y+a02 *z+a03 *w=X
第二单元计算机4a基本上并行地进行计算。
a10 *x+a11 *y+a12 *z+a13 *w=Y
第三单元计算机4a基本上并行地进行计算。
a20 *x+a21 *y+a22 *z+a23 *w=Z 以及
第四单元计算机4a基本上并行地进行计算。
a30 *x+a31 *y+a32 *z+a33 *w=W
由于这些计算基本上并行地进行,所以SIMD类型计算机实际上可以比SISD类型计算机更快地进行处理。
图10说明根据本发明利用表面计算机来进行同一矩阵计算的情况。图10上部所示表达式左端的四维方阵的列分别被视为表面区域数据SD1、SD2、SD3及SD4。右端的列向量被视为表面区域数据SDv。这些表面区域数据被输入PA4,在PA4中,在各表面区域数据SD1、SD2、SD3、SD4和表面区域SDv之间应用所需的乘法和加法。
当各表面区域数据中的操作数所指定的表面区域的大小不匹配时,上述放大/缩小处理等使各表面区域的大小得到匹配。在这样的情况下,对矩阵的各元素不进行内插值处理,而是进行点抽样处理或屏蔽处理,由此在保持各元素的系数值的同时进行表面计算。
在各表面区域数据SD1、SD2、SD3、SD4及表面区域SDv之间进行必要的计算时,具体地说,与四个表面区域数据SDv一道提供总计16个表面区域的四组表面区域数据SD1、SD2、SD3及SD4。通过将表面区域数据SD1和SDv相乘,即a00 *x、a10 *y、a20 *z及a30 *w,来得到各乘积;通过将表面区域数据SD2和SDv相乘,即a01 *x、a11 *y、a21 *z以及a31 *w,来得到各乘积;通过将表面区域数据SD3和SDv相乘,即a02 *x、a12 *y、a22 *z以及a32 *w,来得到各乘积;以及通过将表面区域数据SD4和SDv相乘,即a03 *x、a13 *y、a23 *z及a33 *w,来得到各乘积;在同一时间对这些乘积进行计算。利用上述计算的结果来进行以下计算。
a00 *x+a01 *y+a02 *z+a03 *w=X
a10 *x+a11 *y+a12 *z+a13 *w=Y
a20 *x+a21 *y+a22 *z+a23 *w=Z 以及
a30 *x+a31 *y+a32 *z+a33 *w=W
由于根据本发明的表面计算机一次或数次传送和计算这样的表面区域数据,因此能够高速进行大量矩阵计算。
[表面计算机和其它两种计算机的不同点]
对上述五种差异进行说明。
(第一不同点)
首先,表面计算机与SIMD类型计算机的不同之处在于:表面计算机所处理的数据是并行的,而SIMD类型计算机所处理的指令执行序列是并行的。
然而,表面计算机并不拒绝SIMD方法的概念。表面计算机可以利用SIMD方法的概念来构造。例如,通过提供多个表面计算机,使指令执行序列作为整个系统具有并发性,由此可以可以利用SIMD方法来构造表面计算机。
(第二不同点)
第二,表面计算机与SISD类型、SIMD类型计算机的不同之处在于:表面计算机处理表面区域数据SD,而其它两种计算机处理点数据PD。
表面计算机被构造成能以区域为单位来传送和计算两维表面区域数据SD(包括线数据LD)。
例如,在加表面区域数据SPs和SPd时,如图11所示,一次传送和计算各表面区域数据SPs和SPd。因此,与重复顺序传送和计算点数据PD的SIMD类型计算机相比,表面计算机能够更快地处理数据。也就是,由于这种表面计算机以表面区域为单位来传送和计算操作数所指定的区域中的计算数据,因此极大地减少了传送和计算的重复次数。所以,能够实现高速计算。
(PA 4的替代方案)
在需要高速计算时,除了提高数据传送的速度外,提高计算处理的速度也是重要的。为了提高处理速度,在根据本发明的处理器阵列中,采用了由图1所示包含16个单元计算机4a的并行计算机所进行的并行处理。除了上述并行计算机之外,例如,还可以采用具有图12所示构造的高速处理器。图12中的并行处理器采用了超标量和超流水线体系结构。
超标量体系结构是这样一种体系结构:它通过使多个指令提取/解码机制和ALU同时进行操作,改进流水线的空间域中的相重性,而提高处理速度。超标量流水线体系结构是这样一种方法:它通过加深流水线来改进时间域中的相重性。
在本示例中,提供至少32个PA 4,如图12所示。而且,在一个PA 4中提供具有至少32个步骤的流水线。因此,在本示例构造中,在单个时钟内能并行执行至少1024条指令(=32个步骤×32)。
(第三不同点)
第三,由于表面计算机处理表面区域数据SD,因此在计算机语言方面具有不同于SISD类型计算机和SIMD类型计算机的结构,其中,后两种计算机处理点数据PD。也就是,在构造指令字的操作数的形式上,表面计算机和SISD类型、SIMD类型计算机之间存在一些不同之处。
(操作数结构的差异)
表面计算机与传统的SISD类型、SIMD类型计算机的重大差异在于:表面区域中的计算数据是根据作为一个单位而建立的表面区域来指定和计算的。因此,在计算机语言方面,表面计算机具有不同于其它类型计算机的结构。
如图13A所示,在传统的两种计算机中,指令字(典型的单个指令)包括操作码131和至少两个操作数132。操作数132用于索引或指定各种计算数据的地址。如图13B所示,操作数132包括:源操作数133,用于指定数据的源地址;以及目的操作数134,用于指定数据的目的地址。
在传统的两种计算机中,由各操作数所指定的数据一个一个单独地为单个数据(标量值或向量值,即点数据),在计算期间,反复进行处理,其中,顺序地调用和处理单个数据(点数据)。
在表面计算机中,指令字包括操作码和两个操作数。表面计算机与所述两种计算机的相同点在于:操作数包括源操作数和目的操作数。但是,表面计算机的操作数表示两维区域,这就是说,寻址方式表示两维区域。因此,表面计算机与传统计算机的不同之处在于:表面计算机指定表面区域数据,而传统计算机则指定点数据。
通过例如正常地指定包围表面区域中的四个点数据,表面计算机的操作数指定该表面区域。
由表面计算机的指令字中的操作数所指定的数据有时好象是一维的。例如,利用指针(点)和线L可以指定某个区域,其中,点是作为线L的基点来建立的,并且整个数据的长度是作为线L的长度来建立的。这使表面计算机的操作数能够由点和线L来表示。
此外,如上所述,表面计算机包括行计算机。当使用行计算机时,例如,指定线数据的操作数包括两个指针。
这样,由于根据本发明的表面计算机的操作数不同于传统计算机的,因此,在计算机语言系统,即在指令字集的结构方面,表面计算机和传统计算机之间存在差异。
以下表示示例可以表示为代表表面区域数据的区域的示例操作数。
(1)方形-点类型(由“SP”表示);SP(X1,Y1,X2,Y2)
(2)三角类型(由“TR”表示);TR(X1,Y1,X2,Y2,X3,Y3)
(3)三角网类型(由“TRM”表示)TRM(X1,Y1,X2,Y2…,Xn,Yn)
(4)线类型(由“LN”表示);LN(X1,Y1,X2,Y2)
X和Y表示坐标(地址)。
方形-点类型SP(1)表示对角线上方形表面区域的一对顶点的坐标。
三角类型TR(2)表示三角形区域的顶点的坐标。
三角网类型TRM表示三角形区域中的一组特定点(根据预定规则选取)。
线类型LN(4)表示一线。
除了矩形或三角形以外,表面区域还可以采取任意的形式。此外,在方形-点类型SP中,矩形区域可以用一个顶点的坐标和通过该顶点的一条边或对角线的长度来表示。
(指定区域的操作数与并行计算之间的关系)
对线计算机的操作数和并行计算之间的关系进行说明。图14说明一种对具有相互不同区域(在此情况下为长度)的线区域进行计算的情况。通过缩小由线操作数1所指定的区域141,来得到线区域数据143,而通过放大由线操作数2所指定的区域数据143,来得到线区域数据144,由此使线区域数据143和144(长度)互相匹配。PA 4进行表面(线)计算处理。在计算之后,所产生的数据储存在由线操作数3所指定的线区域145中。
当线区域的大小匹配时,按照与表面区域计算中相同的方法,来适当执行图14右半部分所示例的各种方法,诸如复制、线性插值、抽样、放大处理等,以便适当地改变线区域的大小。
(PA和多个操作数的并行处理)
图15说明了PA 4和多个操作数的并行处理。储存在主读出放大器10中并由操作数3和4所指定的计算数据D3和D4被输入到多个PA 4中,而储存在辅助读出放大器11中并由操作数1和2所指定的计算数据D1和D2被输入到多个PA 4中。通过对这些数据执行所需操作获得的数据储存在主读出放大器10中。例如,当计算D3=f1(D1,D2,D3,D4)时,所产生的数据储存在操作数3中。当计算D4=f2(D1,D2,D3,D4)时,所产生的数据储存在操作数4中。
第四不同点在于:通过利用内插值处理等方法,表面计算机能使用整个不间断表面区域的数据,而SIMD类型计算机只能处理分离的点数据。这一点已经在表面区域的放大/缩小处理和内插值处理中进行了说明。
第五不同点在于:表面计算机的单元计算机4a的数量是独立的,而SIMD类型计算机的单元计算机4a的数量则取决于并行指令执行序列的数量。这一点也已经在比较两种方法时进行了说明。
[表面计算机的典型指令示例]
(指令和数据流程)
对表面计算机的指令执行(控制)进行说明。图16说明图1所示示例构造的指令和数据流程,其中,根据本发明的表面计算机起CPU 8的协处理器的作用。
这种表面计算机经总线I/F 6和数据总线与CPU 8和主存储器7互连。通用表面计算指令列表161和计算表面区域数据162储存在主存储器7中。
在CPU 8的控制下,IFDTC 5控制通用表面计算指令列表161,以便使其经表面计算机的总线I/F 6直接传送给IFU 2。同样地,IFDTC5控制计算表面区域数据162,以便使其经总线I/F 6直接传送给DRAM 2。这样,由于IFDTC 5控制指令列表161和表面区域数据162,使其直接传送给表面计算机,而不需要CPU 8的帮助,减少了CPU 8的负荷。通过具有这种构造,就能够不仅控制二操作数或三操作数计算,而且控制四操作数计算。
(条件转移)
对条件转移和间接操作数进行说明,其中,条件转移是具有上述构造的计算机的典型指令。
图17说明从这种表面计算机的功能中的条件转移。在IFDTC 5的控制下,IFU 2根据寄存器的值来执行条件转移。在图17所示的实施例中,当执行使DRAM 1中的表面区域数据161的点PTs移动到IFDTC 5的寄存器#0的Move指令时,如果寄存器#0的值等于0,则执行向主存储器7中Label 1的转移。这样,根据本发明的表面计算机能够按照计算结果来切换处理。也就是,根据本发明的表面计算机具有一种使IFDTC 5的指令提取能够按照寄存器的值来进行条件转移的功能。
该处理是按照图1中箭头(1)的方向进行的。条件转移处理的提供有利于表面计算机编程。此外,这种条件转移处理是一种并行处理,它取代了传统顺序处理的“jump(跳转)”指令。
(间接操作数)
图18说明这种表面计算机的间接操作数。间接操作数用于源操作数读取,以及将源操作数设为下一个存取的执行地址。在根据本发明的表面计算机的间接操作数中,指定表面区域数据SD的操作数的坐标被表示为表面区域数据SD中的数据。获得操作数区域。
在图18中,由源操作数TRMs和目的操作数TRMd所指定的间接操作数*TRMs相加,然后,所产生的数据设置到TRMd中。PA 4和PP 9处理该间接操作数,如图1中箭头(2)的方向所示。在这种表面计算机中,即使一次处理的数据量大,间接操作机制仍然有效,因为处理的系统开销因这种机制而变得较小。
在本实施例中,坐标数据是基于32位的,并且可以被视为32位(定点,浮点)、16位×2(定点)、10位×3(定点)或8位×4(定点)数据。当表面区域操作数的坐标由表面区域数据SD来表示时,利用16位×2(定点)数据来表示二维坐标,而利用10位×3(定点)来表示三线性插值的三维坐标。当以32位来表示坐标时,需要两个操作数来表示二维坐标,需要三个操作数来表示三维坐标。
[表面计算机的具体示例计算]
(指令集)
在图11中,说明执行加法指令的情况。在本示例中,表面区域数据SPs(源操作数)和表面区域数据SPd(目的操作数)按表面区域单位进行相加。也就是,表面区域数据SPs和SPd与属于相互匹配区域的计算数据一起进行相加。这种处理能够进行极快的计算。作为该表面计算机的指令集,该指令集可以包括传统的指令,例如ADD、SUB、MADD及MOVE。
(计算控制)
在图19A至19D分别示出计算控制应用于具有两个操作数的指令、具有三个操作数的指令及具有四个操作数的指令的情况。首先,图19A示出两个操作数的计算控制。在图19A中,将ADD或SUB操作应用于源表面区域数据SPs和目的表面区域数据SPd。
ADD∶SPd=SPd+SPs
SUB∶SPd=SPd-SPs
所得出的数据储存在目的表面所指定的地址中。图19A所示的示例相当于以下的情况:对系数矩阵第一列元素(a00,a01,a02,a03)与列向量(x,y,z,w)的相应元素之积(a00 *x,a01 *y,a02 *z,a03 *w)进行计算,然后再对所得出的乘积的总和进行计算。
图19B和19C示出三个操作数的计算控制。在图19B和19C中,每个MADD(乘和加)与CMOV(条件移动)应用于操作数SPd、SPs及SPt所指定的表面区域中的计算数据。在图19B中,进行以下计算。
MADD∶SPd=SPd+SPs×SPt
计算SPs×SPt,将其乘积加到Spd上,然后,所得结果储存在SPd所指定的地址中。
在图19C中,对SPs和SPt进行比较;如果条件(SPs>SPt)被满足,则将SPs传送给SPd。
CMOV,GT:如果(SPs>SPt)SPd=SPs
19D示出四个操作数的计算控制。在本示例中,MADD和CMOV指令应用于各操作数SPd、SPs、SPt以及SPc。这里,SPs和SPt相乘,SPd与所得乘积相加,然后再把结果和SPc进行比较。如果满足给定条件,则通过将上述乘积与SPd相加所得出的值被设置到SPd中。得出以下表达式。
MADD.CMOV.GT:如果(SPd+SPc×SPt>SPc)
SPt=SPd+SPs×SPt;否则 SPd=SPc
这样,在表面计算机中,即使使用了多操作数,计算数据仍然与该表面区域一起一次进行传送和计算。因此,没有降低计算效率。如上所述,可以构造根据本发明的表面计算机,以便具有多个操作数,这适合于多流水线。
图20说明一种执行编程语言C中所谓的“如果语句”的处理。正如在对SIMD类型计算机的说明中所述,它导致程序设计中的复杂性,其中,相同的处理由单个指令来执行,正如在对SIMD类型计算机的说明中所述。因此,通过提供控制表面操作数来控制处理。在图20中,使用条件移动指令CMOV和GT来执行三个操作数Spa、SPc及SPt的条件移动。CMOV表示条件移动,而GT表示较大(比较)。当控制表面区域数据SPt和源表面区域数据SPs进行比较时,如果满足条件SPs>SPt,则数据移动到目的操作数SPd。这样,根据本发明的表面计算机能够按照计算结果来切换处理。如上所述,这种条件转移处理可以是并行处理,它取代了传统的“jump”(跳转)指令。
(条件转移指令)
图21说明一个示例,其中,控制表面数据本身控制操作符。示例中所示的条件转移指令是具有三个操作数SPd、SPs及SPt的表面有效指令EXDT。执行由控制表面数据SPt所指定的二操作数指令。这样,当表面计算机进行并行处理时,可以利用控制表面数据来进行条件转移处理。如果控制表面数据用作指示IFDTC 5的寄存器等于零的条件,并且如果所得出数据的目的地址是主存储器7中的Label1,则本示例相当于图17所示的示例。
在本实施例中,根据本发明的表面计算机用于自然科学各个领域中的大量计算。这种表面计算机可以用于各种模拟和根据三维动画的绘图,这就在处理速度、可用性、用户满意度方面得到改善。
Claims (24)
1.一种表面计算机,它包括:
地址发生器,用于生成地址,供调整有关至少一个存储区域的表面区域数据;以及
并行计算机,在所述地址发生器的后级提供,具有多个单元计算机。
2.一种表面计算机,它包括:
地址发生器,用于生成地址,供调整有关至少一个存储区域的表面区域数据;
并行计算机,在所述地址发生器的后级提供,具有多个单元计算机;以及
存储单元,它连接到所述并行计算机。
3.一种表面计算机,它包括:
地址发生器,用于生成地址,供调整有关至少一个存储区域的表面区域数据;以及
并行计算机,在所述地址发生器的后级提供,具有多个单元计算机,其中,由构造指令字的操作数所指定的区域为线。
4.如权利要求3所述的表面计算机,其特征在于还包括连接到所述并行计算机的存储单元。
5.一种表面计算机,它包括:
地址发生器,用于生成地址,供调整有关至少一个存储区域的表面区域数据;以及
并行计算机,在所述地址发生器的后级提供,具有多个单元计算机,其中,由构造指令字的操作数所指定的区域是二维扩充的表面区域。
6.如权利要求5所述的表面计算机,其特征在于还包括连接到所述并行计算机的存储单元。
7.如权利要求1、2、3和5其中之一所述的表面计算机,其特征在于所述表面计算机被构造为单片LSI。
8.如权利要求2、4和6其中之一所述的表面计算机,其特征在于所述存储单元包括DRAM。
9.如权利要求8所述的表面计算机,其特征在于所述存储单元经具有大总线宽度的数据总线连接到所述并行计算机。
10.一种表面计算机,包括具有大总线宽度的数据总线,允许形成在一个芯片上的处理块和存储块连接在其中,其中:
所述处理块包括:
地址发生器,用于生成地址,供调整有关存储区域的表面区域数据;以及
并行计算机,在所述地址发生器的后级提供,具有多个单元计算机;以及
所述存储块包括DRAM。
11.如权利要求10所述的表面计算机,其特征在于所述处理块还包括:
指令提取和数据传送控制器,用于在CPU的控制下,控制从主存储器中的表面计算指令的提取及表面区域数据的传送;以及
预处理器,根据所述表面计算指令,向所述DRAM发出表面区域信息。
12.如权利要求11所述的表面计算机,其特征在于:
所述表面计算指令包括操作数,所述操作数包含在指令字中,用于指定线区域;以及
所述表面计算机指令将线区域数据设置为计算数据。
13.如权利要求11所述的表面计算机,其特征在于:
所述表面计算指令包括操作数,所述操作数包含在指令字中,用于指定表面区域;以及
所述表面计算指令将表面区域数据设置为计算数据。
14.如权利要求10所述的表面计算机,其特征在于所述地址发生器通过对有关计算表面区域数据的所述表面区域进行放大/缩小来调整所述表面区域数据。
15.如权利要求10所述的表面计算机,其特征在于:当所述计算区域数据中不存在具有相应地址的数据时,通过使用复制处理、双线性插值处理及三线性插值处理其中之一的处理,来产生具有相应地址的数据。
16.如权利要求10所述的表面计算机,其特征在于使用超流水线体系结构来构造所述并行计算机。
17.如权利要求10所述的表面计算机,其特征在于使用超标量体系结构来构造所述并行计算机。
18.如权利要求10所述的表面计算机,其特征在于在所述表面计算机外部为其提供CPU和主处理器,并且所述表面计算机用作所述CPU的协处理器。
19.表面计算机的一种计算方法,所述表面计算机包括地址发生器、处理块、存储块、数据总线,所述处理块具有包括多个单元计算机的并行计算机,所述数据总线具有大的总线宽度并允许所述处理块和所述存储块连接在其中,所述计算方法包括以下步骤:
地址生成步骤,用于使所述地址发生器生成地址,供调整有关存储区域的表面区域数据;以及
处理步骤,用于使所述并行计算机处理所述表面区域数据。
20.如权利要求19所述的表面计算机的计算方法,其特征在于所述地址发生器生成所述地址,供通过对所述表面区域进行放大/缩小来调整有关所述计算表面区域数据的所述表面区域数据。
21.如权利要求19所述的表面计算机的计算方法,其特征在于线数据和所述表面区域数据的其中之一是由构造指令字的操作数来指定的。
22.如权利要求19所述的表面计算机的计算方法,其特征在于线数据由操作数所指定的一对彼此不同的点来表示。
23.如权利要求19所述的表面计算机的计算方法,其特征在于所述表面区域数据由点和将所述点设置为基点的线来表示,所述点和所述线由操作数来指定。
24.如权利要求19所述的表面计算机的计算方法,其特征在于所述表面区域数据由操作数所指定的多个点来表示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31115799A JP2001134539A (ja) | 1999-11-01 | 1999-11-01 | 面計算機及び面計算機における演算処理方法 |
JP311157/99 | 1999-11-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1387648A true CN1387648A (zh) | 2002-12-25 |
CN1227607C CN1227607C (zh) | 2005-11-16 |
Family
ID=18013795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008152136A Expired - Lifetime CN1227607C (zh) | 1999-11-01 | 2000-10-27 | 表面计算机及使用表面计算机的计算方法 |
Country Status (9)
Country | Link |
---|---|
US (2) | US6631457B1 (zh) |
EP (1) | EP1242903B1 (zh) |
JP (1) | JP2001134539A (zh) |
KR (1) | KR100734719B1 (zh) |
CN (1) | CN1227607C (zh) |
AT (1) | ATE540363T1 (zh) |
AU (1) | AU7960300A (zh) |
TW (1) | TWI225202B (zh) |
WO (1) | WO2001033385A2 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2436377B (en) * | 2006-03-23 | 2011-02-23 | Cambridge Display Tech Ltd | Data processing hardware |
CN100487731C (zh) * | 2006-05-12 | 2009-05-13 | 深圳迈瑞生物医疗电子股份有限公司 | 硬件加速显示的并行处理装置及并行处理方法 |
US7930642B1 (en) | 2008-03-20 | 2011-04-19 | Intuit Inc. | System and method for interacting with hard copy documents |
US8584029B1 (en) | 2008-05-23 | 2013-11-12 | Intuit Inc. | Surface computer system and method for integrating display of user interface with physical objects |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
US9535448B2 (en) | 2011-11-16 | 2017-01-03 | Jean-Pierre Key | Chromatic mainframe |
JP5862397B2 (ja) * | 2012-03-22 | 2016-02-16 | 富士通株式会社 | 演算処理装置 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4051551A (en) * | 1976-05-03 | 1977-09-27 | Burroughs Corporation | Multidimensional parallel access computer memory system |
US5030386A (en) * | 1985-02-22 | 1991-07-09 | Gte Products Corporation | BaTiO3 ceramic temperature sensor with improved positive temperature coefficient of resistance |
US4907148A (en) * | 1985-11-13 | 1990-03-06 | Alcatel U.S.A. Corp. | Cellular array processor with individual cell-level data-dependent cell control and multiport input memory |
US4811210A (en) * | 1985-11-27 | 1989-03-07 | Texas Instruments Incorporated | A plurality of optical crossbar switches and exchange switches for parallel processor computer |
US5038386A (en) * | 1986-08-29 | 1991-08-06 | International Business Machines Corporation | Polymorphic mesh network image processing system |
DE3804938C2 (de) * | 1987-02-18 | 1994-07-28 | Canon Kk | Bildverarbeitungseinrichtung |
US4891751A (en) * | 1987-03-27 | 1990-01-02 | Floating Point Systems, Inc. | Massively parallel vector processing computer |
US5170347A (en) * | 1987-11-27 | 1992-12-08 | Picker International, Inc. | System to reformat images for three-dimensional display using unique spatial encoding and non-planar bisectioning |
US4975843A (en) * | 1988-11-25 | 1990-12-04 | Picker International, Inc. | Parallel array processor with interconnected functions for image processing |
JP2836902B2 (ja) | 1989-05-10 | 1998-12-14 | 三菱電機株式会社 | マルチプロセッサ型動画像符号化装置及びバス制御方法 |
US5193202A (en) * | 1990-05-29 | 1993-03-09 | Wavetracer, Inc. | Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor |
JP3212634B2 (ja) | 1991-03-05 | 2001-09-25 | 日本電気株式会社 | 機能メモリ |
AU1433495A (en) * | 1993-12-12 | 1995-06-27 | Asp Solutions Usa, Inc. | Apparatus and method for signal processing |
US5524223A (en) * | 1994-01-31 | 1996-06-04 | Motorola, Inc. | Instruction accelerator for processing loop instructions with address generator using multiple stored increment values |
JPH0844678A (ja) | 1994-07-29 | 1996-02-16 | Canon Inc | 画像処理装置及びシステム |
JP3527796B2 (ja) | 1995-06-29 | 2004-05-17 | 株式会社日立製作所 | 高速3次元画像生成装置および方法 |
US5794016A (en) * | 1995-12-11 | 1998-08-11 | Dynamic Pictures, Inc. | Parallel-processor graphics architecture |
US5781195A (en) * | 1996-04-16 | 1998-07-14 | Microsoft Corporation | Method and system for rendering two-dimensional views of a three-dimensional surface |
US6212627B1 (en) * | 1998-10-12 | 2001-04-03 | Intel Corporation | System for converting packed integer data into packed floating point data in reduced time |
US6532017B1 (en) * | 1998-11-12 | 2003-03-11 | Terarecon, Inc. | Volume rendering pipeline |
US6266733B1 (en) * | 1998-11-12 | 2001-07-24 | Terarecon, Inc | Two-level mini-block storage system for volume data sets |
US6714197B1 (en) * | 1999-07-30 | 2004-03-30 | Mips Technologies, Inc. | Processor having an arithmetic extension of an instruction set architecture |
KR200327901Y1 (ko) | 2003-06-26 | 2003-09-26 | 에이취정보시스템(주) | 클러스터 노드의 자원 사용량의 자동 체크 기능을포함하는 클러스터 시스템 |
-
1999
- 1999-11-01 JP JP31115799A patent/JP2001134539A/ja active Pending
-
2000
- 2000-10-27 AU AU79603/00A patent/AU7960300A/en not_active Abandoned
- 2000-10-27 CN CNB008152136A patent/CN1227607C/zh not_active Expired - Lifetime
- 2000-10-27 KR KR1020027005616A patent/KR100734719B1/ko not_active IP Right Cessation
- 2000-10-27 AT AT00970139T patent/ATE540363T1/de active
- 2000-10-27 WO PCT/JP2000/007548 patent/WO2001033385A2/en active Application Filing
- 2000-10-27 EP EP00970139A patent/EP1242903B1/en not_active Expired - Lifetime
- 2000-10-31 US US09/703,071 patent/US6631457B1/en not_active Expired - Lifetime
- 2000-10-31 TW TW089122891A patent/TWI225202B/zh not_active IP Right Cessation
-
2003
- 2003-10-02 US US10/677,955 patent/US7035991B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
WO2001033385A3 (en) | 2002-06-06 |
AU7960300A (en) | 2001-05-14 |
TWI225202B (en) | 2004-12-11 |
CN1227607C (zh) | 2005-11-16 |
US6631457B1 (en) | 2003-10-07 |
EP1242903A2 (en) | 2002-09-25 |
KR20020049005A (ko) | 2002-06-24 |
JP2001134539A (ja) | 2001-05-18 |
US7035991B2 (en) | 2006-04-25 |
WO2001033385A2 (en) | 2001-05-10 |
EP1242903B1 (en) | 2012-01-04 |
ATE540363T1 (de) | 2012-01-15 |
US20040268080A1 (en) | 2004-12-30 |
KR100734719B1 (ko) | 2007-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1101019C (zh) | 数据序列产生方法及设备、转换方法及计算机 | |
CN1149496C (zh) | 自适应视频信号运算处理装置 | |
CN1702613A (zh) | 蒙哥马利模乘法器 | |
CN1252144A (zh) | 一可编程组件中可构元件的自同步方法 | |
CN1296813C (zh) | 浮点存储方法及浮点运算装置 | |
CN1749955A (zh) | 控制处理器和协处理器间的数据传输的运算处理装置 | |
CN1774071A (zh) | 使用二维处理元件阵列的移动估计装置及其方法 | |
CN87104093A (zh) | 一维余弦变换的计算装置以及包括该计算装置的图象编码装置和解码装置 | |
CN1920825A (zh) | 在流设计工具中显示性能约束的方法和系统 | |
CN1227607C (zh) | 表面计算机及使用表面计算机的计算方法 | |
CN1851399A (zh) | 使用目标图案感知二维绝对位置的系统 | |
CN101046892A (zh) | 图形描绘设备 | |
CN1791855A (zh) | 混合Galois域机和Galois域除法器和平方根机及其方法 | |
CN2686248Y (zh) | 利用阵列处理进行数据检测的基站 | |
CN1387340A (zh) | 多级计数装置 | |
CN1577250A (zh) | 用于实现2的幂的浮点估计的系统与方法 | |
CN1862484A (zh) | 数字信号处理器 | |
CN1744093A (zh) | 数据流图处理方法及具备可重构电路的处理装置 | |
CN1279435C (zh) | 数字信号处理器 | |
CN101031884A (zh) | 处理器 | |
CN1324060A (zh) | 图像编码/解码方法及其装置和记录节目的记录介质 | |
CN1957352A (zh) | 用于分配数据通路的方法和装置 | |
CN1229211A (zh) | 微处理器、操作处理执行方法和记录介质 | |
CN1467626A (zh) | 子序网模块及其调用 | |
CN1619487A (zh) | 称q进制、进位行数字工程方法和处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20051116 |
|
CX01 | Expiry of patent term |