KR100734719B1 - 평면 컴퓨터 및 그를 이용한 컴퓨팅 방법 - Google Patents

평면 컴퓨터 및 그를 이용한 컴퓨팅 방법 Download PDF

Info

Publication number
KR100734719B1
KR100734719B1 KR1020027005616A KR20027005616A KR100734719B1 KR 100734719 B1 KR100734719 B1 KR 100734719B1 KR 1020027005616 A KR1020027005616 A KR 1020027005616A KR 20027005616 A KR20027005616 A KR 20027005616A KR 100734719 B1 KR100734719 B1 KR 100734719B1
Authority
KR
South Korea
Prior art keywords
planar
data
computer
calculated according
region
Prior art date
Application number
KR1020027005616A
Other languages
English (en)
Other versions
KR20020049005A (ko
Inventor
오오바아키오
Original Assignee
가부시키가이샤 소니 컴퓨터 엔터테인먼트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시키가이샤 소니 컴퓨터 엔터테인먼트 filed Critical 가부시키가이샤 소니 컴퓨터 엔터테인먼트
Publication of KR20020049005A publication Critical patent/KR20020049005A/ko
Application granted granted Critical
Publication of KR100734719B1 publication Critical patent/KR100734719B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Manufacture, Treatment Of Glass Fibers (AREA)
  • Testing Of Coins (AREA)
  • Dram (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Abstract

본 발명에 따른 평면 컴퓨터는 적어도 하나의 저장 영역에 관련된 평면 영역에 따라 계산되는 데이터를 조정하기 위한 주소를 생성하는 주소 생성기, 및 주소 생성기의 후단에 제공되고 다수의 단위 컴퓨터들을 갖는 병렬 컴퓨터를 포함한다.
평면 컴퓨터, 주소 생성기, 처리 블록, 메모리 블록, 피연산 함수

Description

평면 컴퓨터 및 그를 이용한 컴퓨팅 방법 { Surface computer and computing method using the same }
본 발명은 2차원 영역들의 단위들에서 2차원 영역으로 얻어지는 데이터를 병렬 컴퓨팅 계산을 함으로써 물리 계산, 환경 계산, 노동 계산 및 감정 계산 등과 같은 복잡한 계산의 다양한 형태를 고속으로 수행하는 평면 컴퓨터 및 컴퓨팅 방법에 관한 것이다.
최근에, 자연과학 및 공학의 다양한 분야가 현저하게 진보되었다. 자연과학 및 공학에서, 대규모의 물리적 계산이 요구된다. 예를 들면, 우주 개발 프로젝트, 유체역학 및 양자역학의 분야에서 대규모 행렬 계산이 수행되어야 한다. 고속으로 수행되어야 하는 그러한 계산이 요구될 때, 컴퓨터가 반드시 필요하다.
종래의 컴퓨터들, 특히 개인용 컴퓨터들은 진부한 범용 컴퓨터들(소위 "메인 프레임들")을 넘어서기에 충분할 만큼 진보되었다.
그러나, 그러한 개인용 컴퓨터들이 상술한 대규모의 계산을 고속으로 수행하거나 또는 개인용 컴퓨터들이 위의 계산을 지속적으로 수행하는 것은 곤란하다. 고속으로 대규모의 계산을 수행하는 것으로부터 개인용 컴퓨터들을 막는 이유로서, 컴퓨터들 내에서 발생하는 데이터 전송 속도, 데이터 처리 속도 등의 지연이 고려 될 수 있다.
그러므로, 상술한 대규모의 물리 계산을 수행하여야 하는 개발자들, 연구가들 등 사이에서, 고속으로 대규모의 계산을 수행할 수 있는 컴퓨터들이 오랫동안 요구되어 왔다.
따라서, 본 발명의 목적은 고속으로 대규모 계산을 수행할 수 있는 새로운 구조를 갖는 컴퓨터 및 그를 이용한 컴퓨팅 방법을 제공하는 것이다.
이러한 목적을 위하여, 본 발명의 제 1 양상에 따르면, 적어도 하나의 저장 영역에 관련된 평면 영역에 따라 계산되는 데이터를 조정하기 위한 주소를 생성하는 주소 생성기 및 복수의 단위 컴퓨터들을 갖고, 주소 생성기의 후단(後段)에서 제공되는 병렬 컴퓨터를 포함하는 평면 컴퓨터가 제공된다.
본 발명의 제 2 양상에 따르면, 평면 컴퓨터는 적어도 하나의 저장 영역에 관련된 평면 영역에 따라 계산되는 데이터를 조정하기 위한 주소를 생성하는 주소 생성기, 복수의 단위 컴퓨터들을 갖고 주소 생성기의 후단에서 제공되는 병렬 컴퓨터 및 병렬 컴퓨터에 접속되는 저장 유닛을 포함한다.
본 발명의 제 3 양상에 따르면, 평면 컴퓨터는 적어도 하나의 저장 영역에 관련된 평면 영역에 따라 계산되는 데이터를 조정하기 위한 주소를 생성하는 주소 생성기, 복수의 단위 컴퓨터들을 갖고 주소 생성기의 후단에서 제공되는 병렬 컴퓨터를 포함하며, 이때 명령어를 구성하는 피연산 함수에 의해 특정되는 영역이 선인 것을 특징으로 한다.
본 발명의 제 4 양상에 따르면, 평면 컴퓨터는 적어도 하나의 저장 영역에 관련된 평면 영역에 따라 계산되는 데이터를 조정하기 위한 주소를 생성하는 주소 생성기, 복수의 단위 컴퓨터들을 갖고 주소 생성기의 후단에서 제공되는 병렬 컴퓨터를 포함하며, 이때 명령어를 구성하는 피연산 함수에 의해 특정되는 영역이 2차원으로 뻗은 평면 영역인 것을 특징으로 한다.
본 발명의 제 5 양상에 따르면, 평면 컴퓨터는 단일 칩 내에 형성된 처리 블록 및 저장 블록이 그 사이에서 접속되도록 허용하는 넓은 버스 폭을 갖는 데이터 버스를 포함한다. 평면 컴퓨터에서, 처리 블록은 저장 영역에 관련된 평면 영역에 따라 계산되는 데이터를 조정하기 위한 주소를 생성하는 주소 생성기 및 복수의 단위 컴퓨터들을 갖고 주소 생성기의 후단에서 제공되는 병렬 컴퓨터를 포함하고, 그리고 저장 블록은 DRAM을 포함한다.
본 발명의 제 6 양상에 따르면, 주소 생성기, 복수의 단위 컴퓨터들을 포함하는 병렬 컴퓨터를 갖는 처리 블록, 저장 블록 및 처리 블록과 저장 블록 사이에서 접속되도록 허용하는 넓은 버스 폭을 갖는 데이터 버스를 포함하는 평면 컴퓨터에서, 컴퓨팅 방법은 주소 생성기가 하나의 저장 영역에 관련된 평면 영역에 따라 계산되는 데이터를 조정하기 위한 주소를 생성하도록 하는 주소 생성 단계, 및 병렬 컴퓨터가 평면 영역에 따라 계산되는 데이터를 처리하도록 하는 처리 단계를 포함한다.
도 1은 본 발명에 따른 평면 컴퓨터의 구성의 블록도;
도 2는 도 1에 도시된 평면 컴퓨터의 작업을 도시하는 순서도;
도 3a 및 도 3b는 평면 영역의 처리를 확대하여 도시한 도;
도 4a 및 도 4b는 평면 영역의 처리를 축소하여 도시한 도;
도 5a 및 도 5b는 내부의 보간 처리를 도시한 도;
도 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; Application Specified Integrated Circuit-Dynamic Random Access Memory)에 이용되는 반도체 제조 방법을 이용한 단일 칩 위에 형성된다.
과거에는, 전형적인 공정에서, 처리 블록 및 메모리 블록이 별개로 형성되었다. 그러므로, 처리 동안의 처리 블록으로부터 메모리 블록까지의 메모리 접근이 병목으로 수행되었다. 그러나, 최근의 반도체 제조 기술의 진보는 처리 블록 및 메모리 블록이 단일 칩 위에 집적되어 있는 임베디드(embedded) 또는 혼합(mixed) 고집적 회로(LSI; Large-Scale Integration)를 이끌어내었다. 단일 칩 내에서 양 블록을 집적함으로써 처리 블록 및 메모리 블록 사이의 거리가 짧아지기 때문에, 데이터 전송의 속도가 가속화될 수 있어, 전술한 메모리 접근 문제를 해결한다.
특정용도 집적회로(ASIC)는 원래는 특수-목적 반-주문형 집적회로를 의미하였다. 그러나, 최근에는 특정용도 집적회로-디램은 주문 집적회로로써 크게 요구되는 디램/로직(DRAM/logic) 집적 반도체 소자를 주로 의미하거나, 또는 그것은 그 제조 공정을 의미한다.
(2) 넓은 데이터-버스 폭을 갖는 내부 데이터 버스는 처리 블록 및 메모리 블록이 그 사이에서 서로 연결되는 것을 허용한다.
경험에 근거하여, 물리 계산이 고속으로 수행될 때, 메모리 블록 및 처리 블록 사이의 데이터 전송 속도는 처리 블록의 처리 속도보다 더욱 빈번하게 병목으로 수행됨을 예측할 수 있다. 데이터 전송 속도에 기인하는 병목을 피하기 위하여, 처리 블록 및 메모리 블록 사이의 데이터 전송에 이용되는 데이터 버스의 버스 폭은 넓게 설계된다.
(3) 처리 블록은 임의의 양의 데이터가 일시에 조작될 수 있도록 평면 영역에 따라 계산되는 데이터가 데이터로써 조작되는 것을 가능하게 하는 구성을 이용한다.
"평면 영역에 따라 계산되는 데이터"의 개념은 한 평면 영역 내에 존재하는 컴퓨팅 데이터의 한 세트를 의미한다. 그러므로, "평면 컴퓨터"의 개념은 평면 또는 평면 영역에 근거하는 평면 영역에 따라 계산되는 데이터를 특정하고, 조작하고(예컨대, 메모리로부터 데이터를 읽고 그리고 메모리에 데이터를 쓰고), 그리고 컴퓨팅 처리를 수행하는 컴퓨터이다. 평면 컴퓨터가 임의의 큰 양을 갖는 데이터 그룹인 평면 영역에 따라 계산되는 데이터를 처리하기 때문에, 처리된 데이터 자체는 병렬(concurrence)의 개념을 갖는다. 즉, 데이터는 병렬 처리가 가능한 구조를 갖는다.
평면 컴퓨터가 상술한 설계 개념에 근거하여 개발되는 경우, 처리 블록의 처리 속도는 버스의 폭이 충분히 넓도록 처리 블록 및 메모리 블록 사이의 데이터 버스를 구성함으로써 상대적으로 병목 수행됨이 예측될 수 있다. 그러므로, 처리 블록의 처리 속도에 따른 문제를 피하기 위하여, 평면 영역에 따라 계산되는 데이터로 처리되는 데이터를 이용함으로써, 대량의 데이터 그룹이 일 회 또는 수 회에 전송되고 그리고 데이터 그룹 단위로 처리된다. 평면 컴퓨터의 데이터 버스 폭을 넓게 설정함으로써, 평면 영역에 따라 계산되는 데이터의 전송이 수행될 수 있다.
본 발명에 따른 평면 컴퓨터는 처리 블록 내에 다수의 단위 컴퓨터들을 갖는 처리기 배열을 포함하며 그에 따라 임의의 많은 양의 데이터가 효과적으로 처리될 수 있다.
이하에서, 상술한 설계 개념에 근거하는 평면 컴퓨터의 실재 구성이 기술된다.
[ 평면 컴퓨터의 구성 및 그의 각 구성요소의 작업 ]
( 평면 컴퓨터의 구성 )
도 1은 본 발명에 따른 평면 컴퓨터의 전체적 구성을 보여준다. 도 1에 도시된 평면 컴퓨터는 대략 처리 블록(P)과 메모리 블록(M)으로 나누어진다. 상술한 바와 같이, 종래의 처리 블록 및 종래의 메모리 블록은 별개로 형성되어 있다. 그러나, 이 평면 컴퓨터는 DRAM에 전념하는, ASIC-DRAM의 이점을 갖는 방식으로 형성된 처리 블록(P)을 갖는다. 따라서, 평면 컴퓨터는 단일 칩 위에 형성된 처리 블록(P) 및 메모리 블록(M)을 갖도록 구성된다.
처리 블록(P)은 명령 페치 유닛(IFU; Instruction Fetch Unit; 2), 전처리기 (PP; Pre Processor; 9), 주소 생성기(AG; Address Generator; 3), 및 처리기 배열 (PA; Processor Array; 4)을 포함한다.
메모리 블록(M)은 DRAM(1)을 포함한다.
처리 블록(P) 및 메모리 블록(M) 외에, 평면 컴퓨터는 명령 페치 및 데이터 전송 제어기(IFDTC; Instruction Fetch and Data Transfer Controller; 5) 및 버스 인터페이스(BUS/IF; BUS Interface; 6)를 포함한다.
이 평면 컴퓨터는 그 안에 결합된 상술한 기능들을 갖는 단일 칩 고집적 회로(LSI)로 구현된다.
이 평면 컴퓨터는 양쪽 모두 평면 컴퓨터의 외부에 존재하는 메인 메모리(7) 및 중앙처리장치(CPU; 8)에 접속된다. 비록 이 실시형태에서 외부 처리장치가 CPU로써 제공되지만, 평면 컴퓨터의 이용이 지역 처리장치에 의해 반드시 제한되는 것은 아니다. 평면 컴퓨터는 중앙처리장치로 제공될 수도 있다.
IFDTC(5)는 CPU(8)의 제어 하에서 평면 컴퓨터에 의해 실행되는 평면 컴퓨팅 명령의 페치 작업 및 평면 컴퓨터에 의해 처리되는 평면 영역에 따라 계산되는 데이터의 전송 작업을 제어하기 위한 제어 장치이다. IFDTC(5)의 작업은 평면 컴퓨터의 처리 블록(P)이 CPU(8)의 부하를 경감시키는 CPU(8)의 보조처리기로써 제공되는 것을 허용한다.
명령 페치 유닛(IFU; 2)은 IFDTC(5)의 제어 하에서 메인 메모리(7)로부터 평면 컴퓨터 위에서 실행되는 평면 컴퓨팅 명령의 목록을 페치한다.
전처리기(PP; 9)는 이 평면 영역에 대응하는 컴퓨팅 데이터가 DRAM(1)으로부터 DRAM(1) 내에 포함되어 있는 제 1 및 제 2 감지-증폭기들(버퍼들; 10 및 11)로 전송되는 명령의 등록 및 평면 컴퓨팅 명령어의 피연산 함수에 대응되는 평면 영역을 계산한다. 제 1 감지-증폭기(10) 및 제 2 감지-증폭기(11)는 캐쉬 메모리로써 제공된다. 덧붙여, 전처리기(9)는 피연산 함수에 따른 주소 생성기(AG; 3)를 설정한다. 이에 더하여, 전처리기(9)는 메인 메모리(7)로부터 호출되고 명령 페치 유닛(2)을 통하여 페치되는 범용 평면 컴퓨팅 명령들을 디코드한다.
주소 생성기(3)는 감지-증폭기들(10 및 11) 내에서 페치된 데이터를 처리기 배열(4)로 제공하기 위한 주소를 생성하고, 평면 영역 내 지역 종속 정보를 계산하고, 그리고 그 결과의 지역 종속 정보를 처리기 배열(4)로 출력한다. 지역 종속 정보의 계산은, 예를 들어 대응하는 평면 영역에 따라 계산되는 데이터(계산되고자 하는 대상)를 결정하는 평면 영역 크기가 불일치하고, 하나의 평면 영역의 주소가 데이터를 갖지 않는 다른 평면 영역의 주소에 대응하는 때의 평면 영역에 따라 계산되는 데이터의 주소 계산을 의미한다. 지역 종속 정보를 계산하는 확대/축소 처리, 2차 보간 처리 또는 3차 보간 처리와 같은 보간 처리 등이 아래에 기술된다.
평면 컴퓨터가 평면 영역에 따라 계산되는 데이터를 조작하기 때문에, 평면 영역에 따라 계산되는 데이터를 특정하는 명령어의 피연산 함수의 구조가 종래의 컴퓨터들의 경우와 다르다. 이들 피연산 함수들의 상세가 또한 아래에 기술된다.
처리기 배열(4)은 평면 영역에 따라 계산되는 데이터를 계산한다. 고속 계산을 이루기 위하여, 처리기 배열(4)은 예를 들어 16 개의 단위 컴퓨터들(4a)을 포함하는 처리기 배열로써 구성된다. 그러나, 처리기 배열(4)의 단위 컴퓨터들(4a)의 개수는 16 개로 제한되지는 않는다. 더욱이, 보다 빠른 계산을 이루기 위하여, 처리기 배열(4)은 슈퍼스칼라(super scalar) 구조 또는 슈퍼파이프라인(super pipeline) 구조와 같은 구조를 이용한다. 슈퍼스칼라 및 슈퍼파이프라인 구조들이 또한 아래에 기술된다.
처리기 배열(4)은 피연산 함수 코드에 따라 주소 생성기(3)에 의해 생성되는 주소 코드에 근거하여 감지-증폭기들(10 및 11)로부터 공급되는 각 피연산 함수 내의 평면 영역에 따라 계산되는 데이터 계산을 처리한다.
이에 더하여, 처리기 배열(4)은 메모리 블록(M)과 통신하는 메모리 인터페이스(MEMIF; memory interface; 12)를 포함한다. 메모리 인터페이스(12)는 메인 메모리(7)와 같은 외부 메모리와 데이터를 통신하거나 또는 읽기-수정-쓰기가 수행되는 지정 피연산 함수 영역 처리와 같은 쓰기 처리를 수행하는 제 1 감지-증폭기 (10)를 작업시킨다.
일반적으로, 메모리 블록(M)은 DRAM(1)을 포함한다. DRAM(1)은 평면 컴퓨터의 외측에 있는 메인 메모리(7)와 대조되는 평면 컴퓨터용 작업 영역으로써 제공되는 내부 메모리이다. DRAM(1)의 저장 용량은 예를 들어 32 메가비트(Mbits)이다.
DRAM(1)은 메모리 인터페이스(12) 및 DRAM(1) 사이에서 데이터를 전송하는 캐쉬 메모리로써 제공되는 제 1 감지-증폭기(10; 또는 버퍼 Ⅰ) 및 처리기 배열(4) 및 DRAM(1) 사이에서 데이터를 전송하는 캐쉬 메모리로써 제공되는 제 2 감지-증폭기(11; 또는 버퍼 Ⅱ)를 포함한다.
버스 인터페이스(BUS I/F; 6)는 메인 메모리(7) 내에 저장된 범용 평면 컴퓨팅 명령들의 목록을 명령 페치 유닛(IFU; 2)으로 출력하고, 평면 영역에 따라 계산되는 데이터를 메모리 인터페이스(12)로 출력한다.
상술한 바와 같이, 처리 블록(P) 및 메모리 블록(M)은 넓은 데이터 버스 폭을 갖는 데이터 버스로 서로 연결된다. 구체적으로, 데이터는 처리기 배열(4)의 메모리 인터페이스(12)로부터 제 1 감지-증폭기(10)로 1024 비트(bits)의 버스 폭을 갖는 쓰기용 내부 데이터 버스를 통하여 전송되고, 반면 데이터는 DRAM(1)의 제 1 감지-증폭기(10)로부터 처리기 배열(4)의 메모리 인터페이스(12)로 1024 비트의 버스 폭을 갖는 읽기용 내부 데이터 버스를 통하여 전송된다. 데이터 버스(14)는 주로 평면 영역에 따라 계산되는 데이터 전송용으로 이용된다.
덧붙여, 처리기 배열(4)이 예를 들어, 각각 32 비트 데이터 버스를 갖는 16 개의 단위 컴퓨터들을 포함하는 경우, DRAM(1)의 제 2 감지-증폭기(11) 및 처리기 배열(4)은 512 비트 데이터 버스 폭(= 16 × 32 비트)을 갖는 데이터 버스(15)를 통하여 서로 연결된다.
처리기 배열(4) 및 DRAM(1)은 총 2048 비트 데이터 버스 폭과 같은 총 넓이를 갖는 이들 세 개의 데이터 버스들(13, 14 및 15)을 이용하여 직접 연결된다. 이것은 메모리 블록(M) 및 처리 블록(P) 사이의 데이터 전송이 병목으로 수행되는 것을 방지한다.
많은 양의 데이터를 포함하는 평면 영역에 따라 계산되는 데이터의 전송은 이러한 특징의 이점을 취함으로써 실현된다.
2048 비트 데이터 버스 폭은 단지 하나의 실시예이고 본 발명은 그 데이터 버스 폭의 크기로 한정되지 않는다.
CPU(8; 평면 컴퓨터의 외부)는 IFDTC(5)에 명령들을 출력하고, 범용 평면 컴퓨팅 명령의 목록(프로그램에 대응하는) 및 평면 영역에 따라 계산되는 데이터를 버스 인터페이스 (6)를 통하여 명령 페치 유닛(2) 및 메모리 인터페이스(12)로 출력한다.
평면 컴퓨터 내에서 이용되는 범용 평면 컴퓨팅 명령들의 목록 및 평면 영역에 따라 계산되는 데이터는 메인 메모리(7) 내에 미리 저장된다.
( 평면 컴퓨터의 각 구성요소의 작업 )
도 2는 상술한 구성을 갖는 평면 컴퓨터의 각 구성요소를 도시한 순서도이다.
도 1을 참조하면, CPU(8)는 IFDTC(5)의 전반 작업을 제어한다.
단계 S10에서, IFDTC(5)의 제어 하에서, 명령 페치 유닛(2)은 버스 인터페이스(6)를 통하여 메인 메모리(7)로부터 출력된 평면 컴퓨팅 명령을 페치하고, 그 명령을 전처리기(9)로 전송한다.
단계 S20에서, 전처리기(9)가 평면 컴퓨팅 명령을 수신하는 경우에, 이 평면 컴퓨팅 명령에 관련된 명령어 내 피연산 함수에 대응되는 평면 영역이 전처리된다(계산된다). 그 후에, 전처리기(9)는 명령을 출력하고, 따라서 그 결과의 계산에 근거하여 특정된 평면 영역에 따라 계산되는 데이터가 DRAM(1)으로부터 제 1 감지-증폭기(10) 및/또는 제 2 감지-증폭기(11)로 전송된다. 즉, 계산 평면 컴퓨팅 영역 데이터가 제 1 감지-증폭기(10) 및 제 2 감지-증폭기(11) 내에서 미리 페치된다. 이에 더하여, 전처리기(9)는 평면 컴퓨팅 명령의 피연산 함수 내 평면 영역 정보에 따라 주소 생성기(3; 전처리기(9)의 후단)를 설정한다.
단계 S30에서, 주소 생성기(3)는 제 1 감지-증폭기(10) 및/또는 제 2 감지-증폭기(11) 내에서 페치된 평면 영역에 따라 계산되는 데이터를 처리기 배열(4)로 제공하는 주소 계산을 수행함으로써 얻어지는 주소를 생성한다. 이에 더하여, 평면 영역 내 지역 종속 정보가 계산된다. 그 후에, 주소 생성기(3)는 주소 데이터 및 지역 종속 정보를 계산하고, 그 결과 데이터를 처리기 배열(4)로 공급한다. 이 지역 종속 정보는 예를 들어, 아래에 기술된 것처럼, 평면 영역에 따라 계산되는 데이터의 주소이고, 평면 영역에 따라 계산되는 데이터의 주소가 다른 평면 영역에 따라 계산되는 데이터 내에 대응물을 갖는 지 여부에 관련된 정보를 포함한다.
단계 S40에서, 평면 컴퓨팅 명령의 명령 코드에 따라, 처리기 배열(4)은 주소 생성기(3)로부터 생성된 주소에 근거하여 제 1 감지-증폭기(10) 및 제 2 감지-증폭기(11)로부터 공급된 피연산 함수 내 계산 평면 영역에 따라 계산되는 데이터를 처리한다. 데이터가 평면 영역에 따라 계산되는 데이터를 특정하는 피연산 함수 정보의 차이에 근거하여 대응물을 갖지 않는 경우(데이터가 다른 평면 영역 내 대응하는 주소를 갖지 않음을 의미한다), 데이터가 다른 평면 영역 내 대응물을 갖도록 생성되기 위하여, 감지-증폭기들(10 및 11)로부터 출력된 인접한 데이터는 2차 보간 처리 또는 3차 보간 처리와 같은 보간 처리를 통하여 작업 코드에 따라 처리된다.
단계 S50에서, 메모리 인터페이스(12)는 버스 인터페이스(6)를 통하여 메인 메모리(7)와 데이터를 교환한다. 이에 더하여, 메모리 인터페이스(12)는 DRAM(1)으로 데이터를 쓰는 제 1 감지-증폭기를 작업시키고, 그에 따라, 예를 들어, (한 사이클 내에서 읽기 후 쓰기를 제외하는) 읽기-수정-쓰기 작업을 실행하기 위한 지정 피연산 함수 영역 처리 등이 수행된다.
[ 주소 생성 ]
주소 생성 단계(단계 S30)가 더 기술된다. 처리기 배열(4)이 평면 컴퓨팅 명령의 작업 코드에 따라 평면 영역에 따라 계산되는 데이터를 처리할 때, 각 평면 영역에 따라 계산되는 데이터를 특정하는 피연산 함수 정보의 차이에 기인하는 평면 영역에 따라 계산되는 데이터 양쪽 사이가 때때로 대응되지 않는다.
예를 들면, 한 쌍의 계산 평면 영역에 따라 계산되는 데이터가 부합되지 않을 때, 평면 영역에 따라 계산되는 데이터의 크기가 서로 다를 때, 대응이 발생하지 않는다. 이러한 경우에, 예를 들어, 원 피연산 함수에 의해 특정된 평면 영역이 지정 피연산 함수에 의해 특정된 평면 영역에 대응하도록 적절하게 확대 또는 축소를 함으로써, 양쪽 평면 영역에 따라 계산되는 데이터의 계산이 수행될 수 있다. 이 확대/축소 처리는 복사 처리 또는 보간 처리를 통하여 일반적으로 수행된다.
이러한 방식으로, 원 피연산 함수에 의해 특정되는 평면 영역이 지정 피연산 함수에 의해 특정되는 평면 영역에 대응하도록 함으로써 각 평면 영역의 데이터 크기가 정의되는 경우, 예를 들어, 평면 영역의 크기가 확대 또는 축소되거나, 또는 평면 영역에 따라 계산되는 데이터의 크기가 처리되어 평면 영역에 따라 계산되는 데이터의 소정의 비율에 부합된다.
대응하는 평면 영역을 구성하는 계산 데이터의 부분 또는 전체의 주소들 사이에서 대응이 발생하지 않는 경우가 있다. 이러한 경우에, 평면 영역들 모두 또는 하나에 대하여 보간 처리를 수행함으로써, 그 대응하는 주소에서 데이터가 생성된다.
피연산 함수 내 차이에 기인하는 대응 계산 데이터를 갖지 않는 평면 영역들 사이일지라도, 그러한 보간 처리는 하나의 평면 영역 내 계산 데이터가 다른 평면 영역의 주소에 대응하여 대응 데이터를 갖는 것을 가능하게 한다. 그러므로, 임의의 쌍의 평면 영역에 따라 계산되는 데이터 사이에서 처리가 수행될 수 있다. 보간 처리로서, 2차 필터링, 3차 필터링 등이 평면 영역에 따라 계산되는 데이터 내에 포함된 인접한 데이터를 이용하여 수행된다.
( 평면 영역의 확대 처리 )
도 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에 도시된 보간을 통한 확대 처리의 반대 방향에서 수행된다.
( 2차 처리 )
도 5a는 보간 처리의 일 실시예로써 2차 보간 처리를 통하여 데이터가 생성되는 일 실시예를 도시한 도를 보여준다. 하나의 계산 평면 영역에 따라 계산되는 데이터(SD)에서 도 5a의 "○"에 의해 표현된 주소는 그에 저장된 데이터를 갖고, 반면 다른 계산 평면 영역에 따라 계산되는 데이터(SD)에서 "○"에 의해 표현된 주소는 도 5a에 도시된 것처럼 그에 저장된 데이터를 갖지 않는다. 이러한 경우에, 데이터는 "○"에 의해 표현되고 그에 저장된 데이터를 갖지 않는 주소의 네 개의 근사 데이터를 이용한 내부 보간 처리를 통하여 생성된다. 즉, 선형 보간이 윗 방향에 기울어진 방향(예컨대, x-축 방향, 도면에서 관찰되듯이)에서 수행되고 선형 보간이 수직(예컨대, y-축 방향)으로 수행된다. 따라서, 그러한 보간 방법은 소위 2차 보간 방법으로 불린다.
평면 영역에 따라 계산되는 데이터(SD)가 별개로 존재하는 경우일지라도, 예를 들어 평면 영역에 따라 계산되는 데이터(SD)가 도 5a에 도시된 것처럼 양각 격자들의 교차점에 대응하는 주소에서만 존재하는 경우에, 이 평면 영역을 구성하는 입체 평면 영역에 따라 계산되는 데이터의 그룹이 2차 처리를 통하여 얻어질 수 있다.
( 3차 처리 )
도 5b는 데이터가 3차 보간을 통하여 생성되는 실시예를 도시하는 도를 보여준다. 하나의 계산 평면 영역에 따라 계산되는 데이터(SD)는 다른 평면 영역의 주소에 대응하는 주소를 갖지 않는다고 가정된다. 이러한 경우에, 도 5b에 도시된 것처럼, 다른 평면 영역의 대응하는 주소의 양측에 근사하는 두 개의 평면 영역에 따라 계산되는 데이터(SD)를 이용한 보간 처리를 통하여 평면 영역에 따라 계산되는 데이터가 생성된다. 즉, 도 5b에서 관측되듯이, 평면 영역에 따라 계산되는 데이터(SD)에 대응하는 주소에서 그에 데이터를 갖지 않는 평면 주소의 좌측으로의 2차 보간 방법을 통하여 데이터가 생성된다. 마찬가지로, 도면에서 관측되듯이, 평면 영역에 따라 계산되는 데이터(SD)에 대응하는 주소에서 평면 주소의 우측으로의 2차 보간 방법을 통하여 데이터가 생성된다. 이들 두 생성된 데이터를 2차 보간 함으로써, 다른 평면 영역 내에 포함되고, "○"에 의해 표현되는 주소를 갖는 데이터가 얻어진다. 그러한 보간 방법은 소위 3차 보간 방법이라 불린다.
복수의 평면 영역에 따라 계산되는 데이터(SD)가 별개로 존재하는 경우일지라도, 가상의 입체 특정화된 평면을 구성하는 복수의 평면 영역에 따라 계산되는 데이터(SD)가 예를 들어, 3차 방법을 통하여 얻어질 수 있다. 즉, 임의의 3차원 영역이 물리적 계산 등을 위하여 계산되고자 하는 대상으로서 획득될 수 있다.
( 포인트 샘플링 )
포인트 샘플링은 데이터가 평면 영역에 따라 계산되는 데이터(SD) 중에서 소정의 규칙에 근거하여 선택되는 방법이다. 포인트 샘플링은 후에 언급되는 행렬 계산이 수행될 때 이용된다.
( 마스크 처리 )
마스크 처리는 데이터가 평면 영역에 따라 계산되는 데이터(SD) 중에서 소정의 규칙에 근거하여 제거되는 방법이다.
( 패턴 매칭 )
도 6은 패턴 매칭 처리를 보여준다. 패턴 매칭은 패턴들 사이의 거리를 찾는다. 패턴 매칭은 2차 보간 또는 3차 보간을 이용하여 수행된다. 이 처리에서, 패턴들 사이의 거리(SPd = SPd - SPs)는 평면 컴퓨팅 처리에 의해 계산되고, 그 후에 결과적 차이의 절대값(SPd = |SPd-SPs|) 또는 결과적 차이의 제곱값(SPd = (SPd-SPs)*(SPd-SPs))이 계산된다. 축소 전송이 2차 보간을 통하여 원 평면의 길이의 반을 갖는 지정 평면으로 수행되고, 결과적 차이의 총계가 얻어진다. 축소 전송은 스칼라 값이 얻어질 때까지 귀납적으로 수행되고, 그에 따라 최종 스칼라 값이 얻어진다.
평면 컴퓨터에서 실행되는 프로그램은 상술한 확대 처리, 축소 처리, 2차 처리, 3차 처리, 포인트 샘플링 처리, 마스크 처리, 패턴 매칭 처리 등 중에서 적절 하게 선택한다.
[ 평면 컴퓨터의 특징 및 SISD형 및 SIMD형 컴퓨터 및 평면 컴퓨터 사이의 비교 ]
평면 컴퓨터의 특징들이 종래의 단일 명령 단일 데이터 흐름(SISD; Single Instruction Single Data stream) 방법 및 단일 명령 멀티 데이터 흐름(SIMD; Single Instruction Multi Data stream) 방법과 비교되어 기술된다.
도 7a 내지 도 7c는 명령 흐름 및 하드웨어 미캐니즘의 관점으로부터 SISD형 컴퓨터, SIMD형 컴퓨터 및 평면 컴퓨터를 도시한다.
도 7a에 도시된 SISD형 컴퓨터에서, 단위 컴퓨터(4a)는 단일 명령에 따른 단일 데이터(PD; 이하, "점 데이터"로 칭한다)를 이용한 계산을 순차적으로 수행한다. 그러므로, 큰 용량의 계산이 수행될 때, 수많은 시간이 요구되고, SISD 방법이 이러한 종류의 용도에 알맞지 않게 된다.
도 7b에 도시된 SIMD형 컴퓨터에서, 복수의 단위 컴퓨터들(4a)이 단일 명령에 따라 계산을 병렬로 수행한다. SIMD형 컴퓨터는 복수의 단위 컴퓨터들을 포함하기 때문에, 시퀀스를 실행하는 전체 명령에 병렬성이 있다. 시퀀스를 실행하는 명령의 병렬성을 보증하기 위하여, 단위 컴퓨터들(4a)의 개수는 시퀀스를 실행하는 병렬 명령의 개수에 근거하여 결정된다.
큰 용량의 계산이 수행될 때, SIMD형 컴퓨터는 SISD형 컴퓨터보다 빠르게 수행한다. 그러나, 상술한 바와 같이, SIMD형 컴퓨터에 의해서도 조절될 수 없는 많 은 양의 데이터를 필요로 하는 물리적 계산 등의 종류의 요구가 있다.
평면 컴퓨터는 데이터를 평면으로 간주한다. 즉, 평면 컴퓨터는 평면 영역 및 그의 처리에 근거하여 그룹 데이터를 특정한다. 하나의 그룹 데이터에 속하는 데이터가 전송되고 평면 영역에 따라 계산되는 데이터(SD)로 일 회(또는 수 회) 처리되며, 그에 따라 반복되는 수의 전송 및 계산이 크게 줄어든다. 결과적으로, 평면 컴퓨터는 계산에서의 높은 성능을 이룬다.
도 7c에 도시된 바와 같이, 데이터 그룹이 한 번에 처리된다는 개념의 관점으로부터, 데이터는 선에 의해 특정되는 선 데이터(LD)일 수 있다. 따라서, 평면 컴퓨터의 개념은 선 컴퓨터를 포함한다.
평면 컴퓨터의 특징은 데이터 그 자체가 병렬로 존재한다는 것이다. 단위 컴퓨터들(4a)의 개수는 평면 데이터(SD)의 개수, 시퀀스를 실행하는 명령의 개수 등에 독립적이다. 평면 컴퓨터가 복수의 계산 데이터를 포함하는 평면 영역의 전체를 계산하기 때문에, 계산 대상 데이터에 병렬성이 있다. 평면 영역에 따라 계산되는 데이터의 컴퓨팅 방법 및 컴퓨팅 방법에 요구되는 단위 컴퓨터들(4a)의 개수는 컴퓨터 프로그램에 의해 결정되고, 평면 영역에 따라 계산되는 데이터(SD)에 독립적이다. 평면 컴퓨터는 계산 그 자체를 순차적으로 수행한다.
그러나, 많은 양의 데이터가 고속으로 처리될 때, 복수의 단위 컴퓨터들을 제공함으로써 계산의 가속화가 달성될 수 있다. 그러므로, 본 발명에서, 처리기 배열(PA; 4) 내에 16 개의 단위 컴퓨터들이 제공되었다. 아래에 기술된 것처럼, 요구되는 경우, 슈퍼스칼라 또는 슈퍼파이프라인 구조가 처리기 배열(4)의 구조로 써 이용될 수 있으며, 그에 따라 계산에서의 더한 가속이 실현될 수 있다.
평면 컴퓨터는 다음과 같은 점에서 다른 두 방법들과 다르다:
(1) SIMD형 컴퓨터는 시퀀스를 실행하는 명령 내 병렬성을 갖는 반면 평면 컴퓨터는 데이터 내 병렬성을 갖고;
(2) SISD형 및 SIMD형 컴퓨터들은 점 데이터(PD)를 조작하는 반면 평면 컴퓨터는 평면 영역에 따라 계산되는 데이터(SD)를 조작하고;
(3) 평면 컴퓨터는 평면 영역에 따라 계산되는 데이터(SD)를 조작하기 때문에, 점 데이터(PD)를 조작하는 양 SISD형 컴퓨터 및 SIMD형 컴퓨터의 경우보다 컴퓨터 언어의 구조가 다르고, 즉 평면 컴퓨터 및 SISD형 및 SIMD형 컴퓨터들 사이에서 명령어를 구성하는 피연산 함수의 형태가 다르며;
(4) SIMD형 컴퓨터가 오직 분리된 점 데이터(PD)만을 조작함에 반하여, 평면 컴퓨터는 상술한 내부 보간 처리 등을 이용한 입체 평면 영역의 전체 데이터를 조작하고(덧붙여, 평면 컴퓨터는 3차원 내 임의의 평면 영역에 따라 계산되는 데이터를 조작할 수 있다); 그리고
(5) SIMD형 컴퓨터의 단위 컴퓨터들(4a)의 개수가 시퀀스를 실행하는 병렬 명령의 개수에 의존함에 반하여, 평면 컴퓨터의 단위 컴퓨터들(4a)의 개수는 독립적이다.
이들 차이점을 기술하기 전에, 평면 컴퓨터의 처리가 대량의 데이터가 처리되는 종래의 행렬 계산의 실시예를 이용한 SISD형 컴퓨터 및 SIMD형 컴퓨터와 비교되어 기술된다.
( 행렬 계산에 대한 SISD형 및 SIMD형 컴퓨터들 및 평면 컴퓨터 사이의 차이 )
도 8 내지 도 10은 SISD형 컴퓨터, SIMD형 컴퓨터 및 평면 컴퓨터 각각을 이용한 대량의 행렬 계산 처리를 도시한다. 여기서 기술된 행렬 계산은 예를 들어, 3차원 영상 데이터에 대한 좌표 변환에 이용된다. 이러한 경우에, 영상 데이터를 구성하는 컬럼 벡터(x, y, z, w)는 도 8 내지 10에 각각 도시된 계수 행렬들 각각을 이용한 점(X, Y, Z, W)으로 좌표 변환된다.
도 7a에 도시된 SISD 방법을 이용하여 그러한 행렬 계산이 수행될 때, 도 8내 박스의 계산이 순차적으로 수행된다.
a00 * x + a01 * y + a02 * z + a03 * w = X
이러한 경우에, 예를 들어 좌측의 제 1 항목으로부터 계산이 순차적으로 수행된다. 이러한 방식으로, 다음의 계산이 순차적으로 수행된다.
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형 컴퓨터를 이용하여 수행될 때, 단일 명령에 따라 도 9의 박스 내에 보여지는 대응하는 네 개의 표현들을 네 개의 단위 컴퓨터들(4a)이 실질적으로 병렬로 계산한다.
제 1 단위 컴퓨터(4a)는 행렬의 요소들(a00, a10, a20 및 a30 ) 및 컬럼 벡터의 요소들(x, y, z 및 w)의 벡터곱을 각각 계산하고, 그 후에 결과의 벡터곱들의 합을 계산한다.
a00 * x + a01 * y + a02 * z + a03 * w = X
제 2 단위 컴퓨터(4a)가 실질적으로 병렬로 계산한다.
a10 * x + a11 * y + a12 * z + a13 * w = Y
제 3 단위 컴퓨터(4a)가 실질적으로 병렬로 계산한다.
a20 * x + a21 * y + a22 * z + a23 * w = Z 및
제 4 단위 컴퓨터(4a)가 실질적으로 병렬로 계산한다.
a30 * x + a31 * y + a32 * z + a33 * w = W
이들 계산들이 실질적으로 병렬로 수행되기 때문에, SIMD형 컴퓨터는 실질적으로 SISD형 컴퓨터보다 빠르게 처리할 수 있다.
도 10은 동일한 행렬 계산이 본 발명에 따른 평면 컴퓨터를 이용하여 수행되는 경우를 도시한다. 도 10의 상부에 도시된 표현의 좌측의 사차원 정방 행렬의 컬럼들이 평면 영역에 따라 계산되는 데이터(SD1, SD2, SD3 및 SD4)로서 각각 처리된다. 우측의 컬럼 벡터는 평면 영역에 따라 계산되는 데이터(SDv)로서 처리된다. 그러한 평면 영역에 따라 계산되는 데이터가 곱셈과 덧셈이 필요한 처리기 배열로 입력되고 평면 영역에 따라 계산되는 데이터(SD1, SD2, SD3 및 SD4) 각각 및 평면 영역(SDv) 사이에 적용된다.
각 평면 영역에 따라 계산되는 데이터 내 피연산 함수에 의해 특정되는 평면 영역의 크기가 매칭되지 않을 때, 상술한 확대/축소 처리 등이 각 평면 영역을 매칭되도록 야기한다. 이러한 경우에, 대신에 점 샘플링 처리 또는 마스크 처리를 대신하여 내부 보간 처리가 행렬의 각 요소에 대하여 수행되지 않고, 그에 따라 각 요소의 계수의 값이 유지되면서 평면 계산이 이루어진다.
각 평면 영역에 따라 계산되는 데이터(SD1, SD2, SD3 및 SD4) 및 평면 영역(SDv) 사이에서 필요한 계산이 수행될 때, 구체적으로는, 16 개의 평면 영역들의 양이 되는 네 세트의 평면 영역에 따라 계산되는 데이터(SD1, SD2, SD3 및 SD4)가 네 개의 평면 영역에 따라 계산되는 데이터(SDv)와 함께 제공된다. 예컨대, a00 * x, a10 * y, a20 * z 및 a30 * w와 같은 평면 영역에 따라 계산되는 데이터(SD1 및 SDv)를 곱함으로써 얻어지는 각각의 벡터곱, 예컨대, a01 * x, a11 * y, a21 * z 및 a31 * w와 같은 평면 영역에 따라 계산되는 데이터(SD2 및 SDv)를 곱함으로써 얻어지는 각각의 벡터곱, 예컨대, a02 * x, a12 * y, a22 * z 및 a32 * w와 같은 평면 영역에 따라 계산되는 데이터(SD3 및 SDv)를 곱함으로써 얻어지는 각각의 벡터곱, 그리고 예컨대, a03 * x, a13 * y, a23 * z 및 a33 * w와 같은 평면 영역에 따라 계산되는 데이터(SD4 및 SDv)를 곱함으로써 얻어지는 각각의 벡터곱이 동시에 계산된다. 상술한 계산의 결과들을 이용하여, 다음의 계산이 수행된다.
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
본 발명에 따른 평면 컴퓨터가 그러한 평면 영역에 따라 계산되는 데이터를 한 번에 또는 수 회에 걸쳐 전송하고 계산하기 때문에, 대량의 행렬 계산 등이 고속으로 수행될 수 있다.
[ 평면 컴퓨터 및 다른 두 컴퓨터들 사이의 차이점 ]
상술한 다섯 개의 차이점들이 기술된다.
( 제 1 차이점 )
먼저, 평면 컴퓨터에 의해 조작되는 데이터가 병렬되는 반면 SIMD형 컴퓨터에 의해 조작되는 명령-실행 시퀀스가 병렬된다는 점에서 평면 컴퓨터는 SIMD형 컴퓨터와 다르다.
그러나, 평면 컴퓨터는 SIMD 방법의 개념을 부정하는 것은 아니다. 평면 컴퓨터는 SIMD 방법의 개념을 이용하여 구성될 수 있다. 예를 들어, 복수의 평면 컴퓨터들을 제공함으로써 명령 실행 시퀀스가 전체 시스템으로써 병렬성을 갖도록 야기되고, 그에 따라 평면 컴퓨터가 SIMD 방법을 이용하여 구성될 수 있다.
( 제 2 차이점 )
두 번째로, 평면 컴퓨터가 평면 영역에 따라 계산되는 데이터(SD)를 조작하는 반면 다른 두 컴퓨터들은 점 데이터(PD)를 조작한다는 점에서 평면 컴퓨터는 SISD형 및 SIMD형 컴퓨터들과 다르다.
평면 컴퓨터는 영역의 단위로써 2차원 평면 영역에 따라 계산되는 데이터(SD; 선 데이터(LD)를 포함하는)를 전송하고 계산하는 것이 가능하도록 구성된다.
예를 들면, 도 11에 도시된 것처럼 평면 영역에 따라 계산되는 데이터(SPs 및 SPd)가 더해질 때, 평면 영역에 따라 계산되는 데이터(SPs 및 SPd)가 각각 동시에 전송되고 계산된다. 그러므로, 평면 컴퓨터는 점 데이터(PD)의 순차적인 전송 및 계산을 반복하는 SIMD형 컴퓨터보다 빠르게 데이터를 조작할 수 있다. 즉, 이 평면 컴퓨터는 평면 영역의 단위로 피연산 함수에 의해 특정되는 영역 내 계산 데이터를 전송하고 계산하기 때문에, 전송 및 계산의 반복되는 회수의 수가 크게 줄어든다. 그러므로, 고속 계산이 실현된다.
( 처리기 배열(4)의 선택 )
고속 계산이 요구될 때, 데이터 전송의 가속에 더하여 계산 처리의 가속이 또한 중요하다. 처리 속도를 가속하기 위하여, 도 1에 도시된 16 개의 단위 컴퓨터들(4a)을 포함하는 병렬 컴퓨터에 의한 병렬 처리가 본 발명에 따른 처리기 배열에 이용된다. 상술한 병렬 컴퓨터와 다른, 예를 들어 도 12에 도시된 구성을 갖는 고속 처리기가 이용될 수 있다. 도 12의 병렬 처리기는 슈퍼스칼라 및 슈퍼파이프라인 구조들을 이용한다.
슈퍼스칼라 구조는 복수의 명령 페치/디코드 미캐니즘 및 ALU들이 병렬로 작업하도록 함에 의해 파이프라인의 공간영역 내 다양성을 증가함으로써 처리 속도를 가속화하는 구조이다. 슈퍼파이프라인 구조는 파이프라인을 깊게 함으로써 시간영역 내 다양성을 증가하는 방법이다.
이 실시예에서, 도 12에 도시된 것처럼 적어도 32개의 처리기 배열들(4)이 제공된다. 더욱이, 하나의 처리기 배열(4) 내에 적어도 32개의 단계를 갖는 파이프라인이 제공된다. 따라서, 이 실시예 구성에서, 적어도 1024개의 명령들(= 32 단계 × 32)이 단일 시각 내에 병렬로 실행될 수 있다.
( 제 3 차이점 )
세번째로, 평면 컴퓨터가 평면 영역에 따라 계산되는 데이터(SD)를 조작하기 때문에, 평면 컴퓨터는 모두 점 데이터(PD)를 조작하는 SISD형 컴퓨터 및 SIMD형 컴퓨터의 경우와 컴퓨터 언어에서 다른 구조를 갖는다. 즉, 평면 컴퓨터 및 SISD형 및 SIMD형 컴퓨터들 사이에 명령어를 구성하는 피연산 함수의 형태면에서 차이가 있다.
( 피연산 함수 구조 내 차이 )
평면 영역 내 계산 데이터가 단위로서 수립된 평면 영역에 근거하여 특정되고 계산된다는 점에서 평면 컴퓨터는 종래의 SISD형 및 SIMD형 컴퓨터들과 크게 다르다. 그러므로, 평면 컴퓨터는 다른 형태의 컴퓨터들의 경우와 컴퓨터 언어면에 서 다른 구조를 갖는다.
도 13a에 도시된 것처럼, 종래의 두 종류의 컴퓨터들에서는, 명령어(전형적 단일 명령)는 하나의 작업 코드(131) 및 적어도 두 개의 피연산 함수들(132)을 포함한다. 피연산 함수(132)는 다양한 계산 데이터의 주소를 특정하거나 또는 표시하기 위하여 제공된다. 도 13b에 도시된 것처럼, 피연산 함수(132)는 데이터의 원 주소를 특정하는 원 피연산 함수(133) 및 데이터의 지정 주소를 특정하는 지정 피연산 함수(134)를 포함한다.
종래의 두 컴퓨터들에서, 각 피연산 함수에 의해 특정된 데이터가 단일 데이터(스칼라값 또는 벡터값, 즉, 점 데이터)이기 때문에, 계산 중에 단일 데이터(점 데이터)가 순차적으로 호출되고 처리되는 처리가 반복된다.
평면 컴퓨터에서, 명령어는 작업 코드 및 두 개의 피연산 함수를 포함한다. 평면 컴퓨터는 피연산 함수가 원 피연산 함수 및 지정 피연산 함수를 포함한다는 점에서 이들 두 종류의 컴퓨터들과 동일하다. 그러나, 평면 컴퓨터의 피연산 함수는 2차원 영역을 표현하며, 이는 주소 모드가 2차원 영역을 표현함을 의미한다. 그러므로, 평면 컴퓨터는 평면 영역에 따라 계산되는 데이터를 특정하는 반면 종래의 컴퓨터들은 점 데이터를 특정한다는 점에서 평면 컴퓨터는 종래의 컴퓨터들과 다르다.
평면 컴퓨터의 피연산 함수는 관행적인 특정, 예를 들어 평면 영역을 둘러싸는 네 개의 점 데이터에 의해 수행된 평면 영역을 특정한다.
평면 컴퓨터의 명령어 내 피연산 함수에 의해 특정된 데이터는 때때로 겉보기에는 일차원이다. 예를 들어, 어떤 영역이 포인터(점) 및 선(L)을 이용하여 특 정될 수 있으며, 여기서 점은 선(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는 가상으로 다른 영역들(이 경우에서는 길이)을 갖는 선 영역이 계산되는 경우를 도시한다. 선 영역 데이터(143)는 선 피연산 함수 1에 의해 특정되는 영역(141)을 축소함으로써 얻어지고, 반면 선 영역 데이터(144)는 선 피연산 함수 2에 의해 특정되는 영역(143)을 확대함으로써 얻어지며, 그에 따라 선 영역 데이터(143 및 144)가 매칭된다. 처리기 배열(4)은 평면(선) 계산 처리를 수행한다. 계산 후에, 결과의 데이터가 선 피연산 함수 3에 의해 특정된 선 영역(145)에 저장된다.
선 영역들의 크기가 매칭될 때, 평면 영역 컴퓨팅과 동일한 방식으로, 복사, 선형 보간, 샘플링, 확대 처리 등과 같이 도 14의 우측에 예시된 다양한 방법들이 수행되고, 따라서 선 영역의 크기가 적절하게 변경된다.
( 처리기 배열 및 다수 피연산 함수들의 병렬 처리 )
도 15는 처리기 배열(4) 및 다수 피연산 함수들의 병렬 처리를 보여준다. 피연산 함수 3 및 4에 의해 특정되고 제 1 감지-증폭기(10) 내에 저장된 계산 데이터(D3 및 D4)가 다수의 처리기 배열(4) 중으로 입력되고, 반면 피연산 함수 1 및 2에 의해 특정되고 제 2 감지-증폭기(11) 내에 저장된 데이터(D1 및 D2)가 다수의 처리기 배열(4) 중으로 입력된다. 이들 데이터에 대한 소망의 작업을 수행함으로써 얻어진 결과 데이터가 제 1 감지-증폭기(10) 내에 저장된다. 예를 들어, D3 = f1(D1, D2, D3, D4)가 계산되는 경우, 결과 데이터는 피연산 함수 3 내에 저장된다. D4 = f2(D1, D2, D3, D4)가 계산되는 경우, 결과 데이터는 피연산 함수 4 내에 저장된다.
제 4 차이점은 SIMD형 컴퓨터가 오직 분리된 점 데이터만을 조작할 수 있는 반면, 평면 컴퓨터는 내부 보간 처리 등을 이용하여 입체 평면 영역의 전체의 데이터를 이용할 수 있다는 점이다. 이는 평면 영역의 확대/축소 처리 및 내부 보간 처리와 함께 이미 기술되었다.
제 5 차이점은 SIMD형 컴퓨터의 단위 컴퓨터들(4a)의 개수가 시퀀스를 실행하는 병렬 명령의 개수에 의존하는 반면, 평면 컴퓨터의 단위 컴퓨터들(4a)의 개수는 독립적인 점이다. 이는 또한 양 방법들이 비교될 때 이미 기술되었다.
[ 평면 컴퓨터의 전형적인 구성 실시예 ]
( 명령 및 데이터 플로우 )
평면 컴퓨터의 명령 실행(제어)가 기술된다. 도 16은 본 발명에 따른 평면 컴퓨터가 CPU(8)의 코프로세서로서 기능하는 도 1에 도시된 구성 실시예의 명령 및 데이터 플로우를 보여준다.
평면 컴퓨터는 버스 인터페이스(6) 및 데이터 버스를 통하여 CPU(8) 및 메인 메모리(7)와 연결된다. 범용 평면 컴퓨팅 명령 목록(161) 및 계산 평면 영역에 따라 계산되는 데이터(162)는 메인 메모리(7) 내에 저장된다.
CPU(8)의 제어 하에서, IFDTC(5)는 범용 평면 컴퓨팅 명령 목록(161)이 평면 컴퓨터의 버스 인터페이스(6)를 통하여 명령 페치 유닛(2)으로 직접 전송되도록 제어한다. 유사하게, IFDTC(5)는 계산 평면 영역에 따라 계산되는 데이터(162)가 버스 인터페이스(6)를 통하여 DRAM(2)으로 직접 전송되도록 제어한다. 따라서, IFDTC(5)가 명령 리스트(161) 및 평면 영역에 따라 계산되는 데이터(162)를 CPU(8)의 도움 없이 평면 컴퓨터로 직접 전송하도록 제어하기 때문에, CPU(8)의 부하가 경감된다. 그러한 구성을 가짐으로써, 두 개의 피연산 함수 또는 세 개의 피연산 함수 계산뿐만 아니라 네 개의 피연산 함수 계산이 제어될 수 있다.
( 조건 분기 )
상술한 구성을 갖는 컴퓨터의 전형적인 명령인 조건 분기, 및 간접 피연산 함수가 기술된다.
도 17은 이 평면 컴퓨터의 기능들 중에서 조건 분기를 도시한다. IFDTC(5)의 제어 하에서, 명령 페치 유닛(2)은 레지스터의 값에 근거하여 조건 분기를 실행한다. 도 17에 도시된 실시예에서, DRAM(1) 내 평면 영역에 따라 계산되는 데이터(161)의 점(PTs)을 IFDTC(5) 내의 레지스터 #0으로 이동시키는 이동(Move) 명령이 실행될 때, 만일 레지스터 #0이 0과 같다면, 메인 메모리(7) 내 라벨 1로 분기가 실행된다. 따라서, 본 발명에 따른 평면 컴퓨터는 계산 결과에 따라 스위칭 처리할 수 있다. 즉, 본 발명에 따른 평면 컴퓨터는 IFDTC(5)의 명령 페치가 레지스터의 값에 따라 조건 분기하는 것을 가능하게 한다.
이 처리는 도 1의 화살표 (1)의 방향으로 수행된다. 조건 분기 처리의 제공은 평면 컴퓨터 프로그래밍을 촉진한다. 이에 더하여, 이 조건 분기 처리는 종래의 순차적 처리 내 "점프" 명령을 인계받은 병렬 처리이다.
( 간접 피연산 함수 )
도 18은 이 평면 컴퓨터의 간접 피연산 함수를 보여준다. 간접 피연산 함수는 원 피연산 함수가 다음 접근을 위한 실행 주소로서 원 피연산 함수의 값을 읽고 규정하도록 제공된다. 본 발명에 따른 평면 컴퓨터의 간접 피연산 함수에서, 평면 영역에 따라 계산되는 데이터(SD)를 특정하는 피연산 함수의 좌표는 평면 영역에 따라 계산되는 데이터(SD) 내 데이터로서 표현된다. 피연산 함수 영역이 얻어진다.
도 18에서, 원 피연산 함수 TRMs에 의해 특정되는 간접 피연산 함수 *TRMs 및 지정 피연산 함수 TRMd는 더해지고, 그 후에 결과 데이터가 TRMd로 설정된다. 처리기 배열(4) 및 전처리기(9)는 도 1의 화살표 (2)의 방향으로 도시된 이 간접 피연산 함수를 조작한다. 이 평면 컴퓨터에서, 한 번에 처리되는 데이터 양이 많은 경우에도, 이 미캐니즘에 의하여 처리의 총량이 보다 적어지기 때문에 간접 피연산 함수 미캐니즘이 효과적이다.
이 실시형태에서, 좌표 데이터는 32 비트 계열이고, 32 비트(고정 소숫점, 부동 소숫점), 16 비트×2(고정 소숫점), 10 비트×3(고정 소숫점) 또는 8 비트×4(고정 소숫점) 데이터로서 처리될 수 있다. 평면 영역 피연산 함수의 좌표가 평면 영역에 따라 계산되는 데이터(SD)에 의해 표현될 때, 2차원 좌표는 16 비트×2(고정 소숫점) 데이터를 이용하여 표현되고 반면 3차 보간을 위한 3차원 좌표는 10 비트×3(고정 소숫점)을 이용하여 표현된다. 좌표가 32 비트로 표현돌 때, 2차원 좌표를 표현하기 위하여 두 개의 피연산 함수가 필요하고 3차원 좌표를 표현하기 위하여 세 개의 피연산 함수가 필요하다.
[ 평면 컴퓨터의 구체적인 계산 실시예 ]
( 명령 세트 )
도 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에 도시된 실시예는 계수 행렬의 제 1 컬럼의 요소들(a00, a01, a02, a 03) 및 컬럼 백터의 대응하는 요소들(x, y, z, w)의 벡터곱(즉, a00*x, a01*y, a02*z, a 03*y)이 계산되고 그 후에 결과의 벡터곱의 총계가 계산되는 경우와 등가이다.
도 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: if(SPs > SPt) SPd = SPs
도 19d는 네 개의 피연산 함수의 계산 제어를 보여준다. 이 실시예에서, MADD 및 CMOV 명령은 피연산 함수들(SPd, SPs, Spt 및 SPc)의 각각에 적용된다. 여기서, SPs 및 SPt는 곱해지고, SPd는 결과의 벡터곱에 더해지고, 그 결과 및 SPc 가 비교된다. 만약 주어진 조건이 만족된다면, 위 벡터곱에 SPd를 더함으로써 얻어진 값이 SPd로 설정된다. 다음의 표현식이 얻어진다.
MADD.CMOV.GT: if(SPd + SPc × SPt > SPc)
SPt = SPd + SPs × Spt; else SPd = SPc
따라서, 평면 컴퓨터에서, 복합 피연산 함수가 이용되는 경우에도, 계산 데이터는 이 평면 영역을 따라 한 번에 전송되고 계산된다. 그러므로, 계산 효율성이 줄어들지 않는다. 상술한 바와 같이, 본 발명에 따른 평면 컴퓨터는 다수의 파이프라인에 적합한 다수의 피연산 함수를 갖도록 구성될 수 있다.
도 20은 프로그래밍 언어 C 내의 소위 "if-구문"이 실행되는 처리를 보여준다. SIMD형 컴퓨터의 기술에서 나타난 것처럼, 동일한 처리가 SIMD형 컴퓨터의 기술에서 나타난 단일 명령에 의해 실행되는 프로그래밍 내 복잡성이 인도된다. 그러므로, 제어 평면 피연산 함수를 제공함으로써, 처리가 제어된다. 도 20에서, 세 개의 피연산 함수들(SPd, SPc 및 SPt)의 조건 이동이 조건 이동 명령(CMOV 및 GT)을 이용하여 실행된다. CMOV는 조건 이동을 표현하고, GT는 보다 큼(비교)을 표현한다. 제어 평면 영역에 따라 계산되는 데이터(SPt) 및 원 평면 영역에 따라 계산되는 데이터(SPs)가 비교될 때, 만일 조건(SPs > SPt)이 만족되는 경우, 데이터는 지정 피연산 함수(SPd)로 이동된다. 따라서, 본 발명에 따른 평면 컴퓨터는 계산 결과에 따른 스위칭 처리를 할 수 있다. 상술한 것처럼, 이 조건 분기 처리는 종래의 "점프" 명령을 인계한 병렬 처리일 수 있다.
( 조건 분기 명령 )
도 21은 제어 평면 데이터 그 자체가 연산자를 제어하는 실시예를 보여준다. 이 실시예에 나타난 조건 분기 명령은 세 개의 피연산 함수들(SPd, SPs 및 SPt)을 갖는 평면 유효 명령(EXDT)이다. 제어 평면 데이터(SPt)에 의해 특정되는 두 개의 피연산 함수 명령이 실행된다. 따라서, 평면 컴퓨터가 병렬 처리를 수행할 때, 조건 분기 처리가 제어 평면 데이터를 이용하여 수행될 수 있다. 만약 제어 평면 데이터가 IFDTC(5)의 레지스터가 0에 등가임을 지시하는 조건으로서 이용되는 경우에 그리고 만약 결과 데이터의 지정 주소가 메인 메모리(7) 내 라벨 1인 경우에, 이 실시예는 도 17에 나타난 실시예와 동등하다.
이 실시형태에서, 본 발명에 따른 평면 컴퓨터는 자연과학의 다양한 분야에서 대규모의 계산에 이용된다. 이 평면 컴퓨터는 3차원 애니메이션에 따른 다양한 시물레이션 및 묘사 등에 이용될 수도 있으며, 처리 속도, 유용성 및 사용자의 만족도에서 개선을 이끌어낸다.

Claims (27)

  1. 적어도 하나의 저장 영역에 관련된 평면 영역에 따라 계산되는 데이터를 조정하기 위한 주소를 생성하는 주소 생성기; 및
    복수개의 단위 컴퓨터들을 갖고, 상기 주소 생성기의 후단(後段)에서 제공되는 병렬 컴퓨터
    를 포함하는 것을 특징으로 하는 평면 컴퓨터.
  2. 적어도 하나의 저장 영역에 관련된 평면 영역에 따라 계산되는 데이터를 조정하기 위한 주소를 생성하는 주소 생성기;
    복수개의 단위 컴퓨터들을 갖고, 상기 주소 생성기의 후단에서 제공되는 병렬 컴퓨터; 및
    상기 병렬 컴퓨터에 접속되는 저장 유닛
    을 포함하는 것을 특징으로 하는 평면 컴퓨터.
  3. 적어도 하나의 저장 영역에 관련된 평면 영역에 따라 계산되는 데이터를 조정하기 위한 주소를 생성하는 주소 생성기; 및
    복수개의 단위 컴퓨터들을 갖고, 상기 주소 생성기의 후단에서 제공되는 병렬 컴퓨터를 포함하며, 명령어를 구성하는 피연산 함수에 의해 특정되는 영역은 선(line)인 것을 특징으로 하는 평면 컴퓨터.
  4. 제 3 항에 있어서, 상기 병렬 컴퓨터에 접속되는 저장 유닛을 더 포함하는 것을 특징으로 하는 평면 컴퓨터.
  5. 적어도 하나의 저장 영역에 관련된 평면 영역에 따라 계산되는 데이터를 조정하기 위한 주소를 생성하는 주소 생성기; 및
    복수개의 단위 컴퓨터들을 갖고, 상기 주소 생성기의 후단에서 제공되는 병렬 컴퓨터를 포함하며, 명령어를 구성하는 피연산 함수에 의해 특정되는 영역은 2차원으로 펼쳐진 평면 영역인 것을 특징으로 하는 평면 컴퓨터.
  6. 제 5 항에 있어서, 상기 병렬 컴퓨터에 접속되는 저장 유닛을 더 포함하는 것을 특징으로 하는 평면 컴퓨터.
  7. 제 1 항, 제 2 항, 제 3 항 및 제 5 항 중 어느 한 항에 있어서, 상기 평면 컴퓨터는 단일 칩 LSI로서 구성된 것을 특징으로 하는 평면 컴퓨터.
  8. 제 2 항, 제 4 항 및 제 6 항 중 어느 한 항에 있어서, 상기 저장 유닛은 DRAM을 포함하는 것을 특징으로 하는 평면 컴퓨터.
  9. 제 8 항에 있어서, 상기 저장 유닛은 넓은 버스 폭을 갖는 데이터 버스를 통하여 상기 병렬 컴퓨터에 접속되는 것을 특징으로 하는 평면 컴퓨터.
  10. 단일 칩 내에 형성된 처리 블록과 저장 블록 사이에서 접속을 허용하도록, 넓은 버스 폭을 갖는 데이터 버스를 포함하는 평면 컴퓨터에 관한 것으로서,
    상기 처리 블록은:
    하나의 저장 영역에 관련된 평면 영역에 따라 계산되는 데이터를 조정하기 위한 주소를 생성하는 주소 생성기; 및
    복수개의 단위 컴퓨터들을 갖고, 상기 주소 생성기의 후단에서 제공되는 병렬 컴퓨터를 포함하며, 그리고
    상기 저장 블록은 DRAM을 포함하는 것을 특징으로 하는 평면 컴퓨터.
  11. 제 10 항에 있어서, 상기 처리 블록은:
    평면 컴퓨팅 명령의 페치(fetch) 및 CPU의 제어 하에서 메인 메모리로부터 평면 영역에 따라 계산되는 데이터의 이송을 제어하는 명령 페치 및 데이터 이송 제어기; 및
    상기 평면 컴퓨팅 명령과 관련하여 상기 DRAM으로 평면 영역 정보를 등록하는 전처리기
    를 더 포함하는 것을 특징으로 하는 평면 컴퓨터.
  12. 제 11 항에 있어서,
    상기 평면 컴퓨팅 명령은 선 영역(line region)을 특정하는 명령어 내에 포함된 피연산 함수를 포함하고, 그리고
    상기 평면 컴퓨팅 명령은 컴퓨팅 데이터로서 선 영역 데이터를 설정하는 것을 특징으로 하는 평면 컴퓨터.
  13. 제 11 항에 있어서,
    상기 평면 컴퓨팅 명령은 선 영역을 특정하는 명령어 내에 포함된 피연산 함수를 포함하고, 그리고
    상기 평면 컴퓨팅 명령은 컴퓨팅 데이터로서 평면 영역에 따라 계산되는 데이터를 설정하는 것을 특징으로 하는 평면 컴퓨터.
  14. 제 10 항에 있어서, 상기 주소 생성기는 컴퓨팅 평면 영역에 따라 계산되는 데이터에 관한 상기 평면 영역 위에서 확대/축소를 수행함으로써 상기 평면 영역에 따라 계산되는 데이터를 조정하는 것을 특징으로 하는 평면 컴퓨터.
  15. 제 10 항에 있어서, 컴퓨팅 영역 데이터 내에 대응되는 주소를 갖는 데이터가 존재하지 않는 경우에, 대응되는 주소를 갖는 데이터는 복사 처리, 2차 보간 처리 및 3차 보간 처리 중 하나를 이용함으로써 생성되는 것을 특징으로 하는 평면 컴퓨터.
  16. 제 10 항에 있어서, 상기 병렬 컴퓨터는 슈퍼파이프라인 구조를 이용하여 구성되는 것을 특징으로 하는 평면 컴퓨터.
  17. 제 10 항에 있어서, 상기 병렬 컴퓨터는 슈퍼스칼라 구조를 이용하여 구성되는 것을 특징으로 하는 평면 컴퓨터.
  18. 제 10 항에 있어서, 상기 평면 컴퓨터는 CPU 및 그 외부의 메인 메모리와 함께 제공되고, 상기 메인 메모리는 상기 CPU의 코프로세서로서 기능하는 것을 특징으로 하는 평면 컴퓨터.
  19. 주소 생성기, 복수의 단위 컴퓨터들을 포함하는 병렬 컴퓨터를 갖는 처리 블록, 저장 블록, 상기 처리 블록과 저장 블록 사이에서 접속을 허용하도록 넓은 버스 폭을 갖는 데이터 버스를 포함하는 평면 컴퓨터의 컴퓨팅 방법으로서,
    상기 컴퓨팅 방법은:
    상기 주소 생성기가 하나의 저장 영역에 관한 평면 영역에 따라 계산되는 데이터를 조정하기 위한 주소를 생성하도록 하는 주소 생성 단계; 및
    상기 병렬 컴퓨터가 상기 평면 영역에 따라 계산되는 데이터를 처리하도록 하는 처리 단계
    를 포함하는 것을 특징으로 하는 평면 컴퓨터의 컴퓨팅 방법.
  20. 제 19 항에 있어서, 상기 주소 생성기는 상기 평면 영역에서 확대/축소를 수행함으로써 상기 컴퓨팅 평면 영역에 따라 계산되는 데이터에 관한 상기 평면 영역에 따라 계산되는 데이터를 조정하기 위한 주소를 생성하는 것을 특징으로 하는 평면 컴퓨터의 컴퓨팅 방법.
  21. 제 19 항에 있어서, 상기 선 데이터 및 평면 영역에 따라 계산되는 데이터 중 하나는 명령어를 구성하는 피연산 함수에 의해 특정되는 것을 특징으로 하는 평면 컴퓨터의 컴퓨팅 방법.
  22. 제 19 항에 있어서, 상기 선 데이터는 피연산 함수에 의해 특정되는 가상의 다른 점들의 쌍에 의해 표현되는 것을 특징으로 하는 평면 컴퓨터의 컴퓨팅 방법.
  23. 제 19 항에 있어서, 상기 평면 영역에 따라 계산되는 데이터는 하나의 점과 하나의 선에 의해 표현되고, 상기 점은 기준점으로서 설정되며, 상기 점 및 상기 선은 피연산 함수에 의해 특정되는 것을 특징으로 하는 평면 컴퓨터의 컴퓨팅 방법.
  24. 제 19 항에 있어서, 상기 평면 영역에 따라 계산되는 데이터는 피연산 함수에 의해 특정되는 복수의 점들에 의해 표현되는 것을 특징으로 하는 평면 컴퓨터의 컴퓨팅 방법.
  25. 평면 영역에 따라 계산되는 데이터의 주소, 및 저장 영역 내에 저장된 평면 영역에 따라 계산되는 데이터를 조정하기 위한 정보를 생성하기 위한 주소 생성기; 및
    상기 주소 생성기의 후단에서 제공되며, 상기 주소 및 상기 평면 영역에 따라 계산되는 데이터를 처리하기 위한 정보에 반응하는 복수의 단위 컴퓨터를 갖는 병렬 컴퓨터를 포함하는 것을 특징으로 하는 평면 컴퓨터.
  26. 평면 영역에 의한 계산을 위한 한 세트의 데이터를 특정하고 상기 한 세트의 데이터를 평면 영역에 따라 계산되는 데이터로서 취급하기 위한 수단; 및
    명령에 따라 상기 평면 영역에 따라 계산되는 데이터의 적어도 두 부분에서 작업하기 위한 작업 수단을 포함하는 것을 특징으로 하는 컴퓨터.
  27. 명령의 제 1 피연산 함수를 표현하는 제 1 평면 영역 및 상기 명령의 제 2 피연산 함수를 표현하는 제 2 평면 영역을 생성하고, 상기 제 1 평면 영역에 대응하는 제 1 세트의 평면 영역에 따라 계산되는 데이터 및 상기 제 2 평면 영역에 대응하는 제 2 세트의 평면 영역에 따라 계산되는 데이터를 읽기 위한 수단;
    상기 명령에 따라 상기 제 1 세트의 평면 영역에 따라 계산되는 데이터 및 제 2 세트의 평면 영역에 따라 계산되는 데이터에 병렬로 작업하기 위한 수단; 및
    상기 제 1 평면 영역과 상기 제 2 평면 영역이 다른 크기를 가질 때에, 상기 제 1 평면 영역과 상기 제 2 평면 영역 중 적어도 하나의 크기는 상기 제 1 평면 영역에 따라 계산되는 데이터와 상기 제 2 평면 영역에 따라 계산되는 데이터에 작업하기 전에 변화하여 상기 제 1 평면 영역 및 상기 제 2 평면 영역 중 정해진 평면 영역의 크기가 상기 제 1 평면 영역 및 상기 제 2 평면 영역 중 다른 평면 영역의 크기에 미리 정해진 비율로 대응하도록 평면 영역 크기를 변화시키기 위한 수단을 포함하는 것을 포함하는 것을 특징으로 하는 컴퓨터.
KR1020027005616A 1999-11-01 2000-10-27 평면 컴퓨터 및 그를 이용한 컴퓨팅 방법 KR100734719B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP31115799A JP2001134539A (ja) 1999-11-01 1999-11-01 面計算機及び面計算機における演算処理方法
JPJP-P-1999-00311157 1999-11-01

Publications (2)

Publication Number Publication Date
KR20020049005A KR20020049005A (ko) 2002-06-24
KR100734719B1 true KR100734719B1 (ko) 2007-07-02

Family

ID=18013795

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027005616A KR100734719B1 (ko) 1999-11-01 2000-10-27 평면 컴퓨터 및 그를 이용한 컴퓨팅 방법

Country Status (9)

Country Link
US (2) US6631457B1 (ko)
EP (1) EP1242903B1 (ko)
JP (1) JP2001134539A (ko)
KR (1) KR100734719B1 (ko)
CN (1) CN1227607C (ko)
AT (1) ATE540363T1 (ko)
AU (1) AU7960300A (ko)
TW (1) TWI225202B (ko)
WO (1) WO2001033385A2 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
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 富士通株式会社 演算処理装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR200327901Y1 (ko) 2003-06-26 2003-09-26 에이취정보시스템(주) 클러스터 노드의 자원 사용량의 자동 체크 기능을포함하는 클러스터 시스템

Family Cites Families (22)

* Cited by examiner, † Cited by third party
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 日本電気株式会社 機能メモリ
US5809322A (en) * 1993-12-12 1998-09-15 Associative Computing Ltd. 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
US6266733B1 (en) * 1998-11-12 2001-07-24 Terarecon, Inc Two-level mini-block storage system for volume data sets
US6532017B1 (en) * 1998-11-12 2003-03-11 Terarecon, Inc. Volume rendering pipeline
US6714197B1 (en) * 1999-07-30 2004-03-30 Mips Technologies, Inc. Processor having an arithmetic extension of an instruction set architecture

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR200327901Y1 (ko) 2003-06-26 2003-09-26 에이취정보시스템(주) 클러스터 노드의 자원 사용량의 자동 체크 기능을포함하는 클러스터 시스템

Also Published As

Publication number Publication date
WO2001033385A3 (en) 2002-06-06
AU7960300A (en) 2001-05-14
KR20020049005A (ko) 2002-06-24
CN1387648A (zh) 2002-12-25
ATE540363T1 (de) 2012-01-15
WO2001033385A2 (en) 2001-05-10
TWI225202B (en) 2004-12-11
EP1242903B1 (en) 2012-01-04
US6631457B1 (en) 2003-10-07
EP1242903A2 (en) 2002-09-25
JP2001134539A (ja) 2001-05-18
US7035991B2 (en) 2006-04-25
CN1227607C (zh) 2005-11-16
US20040268080A1 (en) 2004-12-30

Similar Documents

Publication Publication Date Title
US6624819B1 (en) Method and system for providing a flexible and efficient processor for use in a graphics processing system
CN110149802B (zh) 用于在虚拟图像处理器指令集架构(isa)与具有二维移位阵列结构的目标硬件之间进行转译的编译器
KR100330604B1 (ko) 메모리어레이를사용한병렬연산장치
Apgar et al. A display system for the Stellar graphics supercomputer model GS1000
US7522171B1 (en) On-the-fly reordering of 32-bit per component texture images in a multi-cycle data transfer
US6762764B2 (en) System and method for processing image, and compiler for use in this system
KR20190139837A (ko) 처리 장치 및 처리 방법
US20090150648A1 (en) Vector Permute and Vector Register File Write Mask Instruction Variant State Extension for RISC Length Vector Instructions
JPWO2007049610A1 (ja) 画像処理装置
US8169439B2 (en) Scalar precision float implementation on the “W” lane of vector unit
US20160283549A1 (en) Value sorter
Moravánszky Dense matrix algebra on the GPU
KR100734719B1 (ko) 평면 컴퓨터 및 그를 이용한 컴퓨팅 방법
US8161271B2 (en) Store misaligned vector with permute
US20100332792A1 (en) Integrated Vector-Scalar Processor
Harrell et al. Graphics rendering architecture for a high performance desktop workstation
JPH10307720A (ja) ジオメトリ・アクセラレータ性能向上システム
CN101162523A (zh) 指令早期退休机制及其方法及使用该机制的像素处理系统
US20080122854A1 (en) Operand Multiplexor Control Modifier Instruction in a Fine Grain Multithreaded Vector Microprocessor
US11176083B2 (en) Switching crossbar for graphics pipeline
US20080100628A1 (en) Single Precision Vector Permute Immediate with "Word" Vector Write Mask
Bensaali et al. An FPGA implementation of 3D affine transformations
CN114675888A (zh) 用于加载矩阵操作加速器瓦片的指令的装置、方法和系统
JP2946490B2 (ja) ピクセル描画用データ・プロセッサ
JPH06309349A (ja) プログラム制御のプロセッサ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130531

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140603

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee