KR100990526B1 - 혼합 모드 병렬 프로세서 시스템 및 방법과 혼합 모드 병렬 프로세서 프로그램이 기록되어 있는 컴퓨터 판독가능 기록매체 - Google Patents

혼합 모드 병렬 프로세서 시스템 및 방법과 혼합 모드 병렬 프로세서 프로그램이 기록되어 있는 컴퓨터 판독가능 기록매체 Download PDF

Info

Publication number
KR100990526B1
KR100990526B1 KR1020087018618A KR20087018618A KR100990526B1 KR 100990526 B1 KR100990526 B1 KR 100990526B1 KR 1020087018618 A KR1020087018618 A KR 1020087018618A KR 20087018618 A KR20087018618 A KR 20087018618A KR 100990526 B1 KR100990526 B1 KR 100990526B1
Authority
KR
South Korea
Prior art keywords
instruction
processing
processing elements
memory
instruction cache
Prior art date
Application number
KR1020087018618A
Other languages
English (en)
Other versions
KR20080083342A (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 KR20080083342A publication Critical patent/KR20080083342A/ko
Application granted granted Critical
Publication of KR100990526B1 publication Critical patent/KR100990526B1/ko

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은, 회로 규모의 대폭적인 증가 없이, SIMD 처리 시에서의 성능 저하를 발생하지 않는 혼합 모드 병렬 프로세서 시스템을 실현한다. N개의 SIMD 동작 가능한 프로세싱 엘리먼트 PE가, MIMD 동작하는 M(=N÷S)개의 프로세싱 유닛 PU로 그룹화된다. MIMD 동작 시에는, 각 PU 내의, 원래 각 PE에 속하는 합계 S개의 메모리 중 P개(P<S)는, 명령 캐시, 나머지의 메모리를 데이터 메모리 혹은 데이터 캐시로서 동작한다. 또한, 원래 각 PE에 속하는 합계 S세트의 범용 레지스터 중, 1세트는 그대로 PU의 범용 레지스터로서 동작한다. 남은 S-1세트 중 T세트(T<S-1), 또는 필요수를 명령 캐시의 태그의 저장용 레지스터로서 동작한다.
Figure R1020087018618
혼합 모드 병렬 프로세서 시스템, 프로세싱 엘리먼트, 프로세싱 유닛, 메모리, 범용 레지스터

Description

혼합 모드 병렬 프로세서 시스템 및 방법과 혼합 모드 병렬 프로세서 프로그램이 기록되어 있는 컴퓨터 판독가능 기록매체{PROCESSING ELEMENT, MIXED MODE PARALLEL PROCESSOR SYSTEM, PROCESSING ELEMENT METHOD, MIXED MODE PARALLEL PROCESSOR METHOD, PROCESSING ELEMENT PROGRAM, AND MIXED MODE PARALLEL PROCESSOR PROGRAM}
[관련 출원의 기재]
본 발명은, 일본 특허 출원:특원 제2006-225963호(평성 18년 8월 23일 출원)의 우선권 주장에 기초하는 것이며, 상기 출원의 전체 기재 내용은 인용으로써 본서에 삽입 기재되어 있는 것으로 한다.
본 발명은 프로세싱 엘리먼트, 혼합 모드 병렬 프로세서 시스템, 프로세싱 엘리먼트 방법, 혼합 모드 병렬 프로세서 방법, 프로세싱 엘리먼트 프로그램 및 혼합 모드 병렬 프로세서 프로그램에 관한 것으로, 특히 효율적인 프로세싱 엘리먼트, 혼합 모드 병렬 프로세서 시스템, 프로세싱 엘리먼트 방법, 혼합 모드 병렬 프로세서 방법, 프로세싱 엘리먼트 프로그램 및 혼합 모드 병렬 프로세서 프로그램에 관한 것이다.
다수의 프로세서(PE:프로세싱 엘리먼트) 혹은 연산 회로를 공통의 명령류로 병렬로 동작시키는, 소위 SIMD(Single Instruction Multiple Data) 방식의 병렬 프로세서가 제안되어 있다. 또한, 복수의 명령류로 각각에 대응한 복수의 프로세서(PU:프로세싱 유닛) 혹은 연산 회로를 동작시키는, 소위 MIMD(Multiple Instruction Multiple Data) 방식의 병렬 프로세서가 지금까지 제안되어 있다.
SIMD 방식의 병렬 프로세서는, 다수의 PE에 대해 동일한 단일의 명령류만을 생성하면 되므로, 명령류의 생성에 요하는 명령 캐시나 조건 분기의 실현에 요하는 시퀀스 제어 회로를 1개 가지면 된다. 따라서, SIMD 방식의 병렬 프로세서는, 높은 성능을 실현할 수 있음에 비해, 적은 제어 회로만으로 되어 회로 규모를 작게 억제할 수 있다고 하는 이점 및 전체 PE 사이에서 항상 동기가 취해져 있기 때문에, 연산 회로간에서 데이터의 교환을 매우 효율적으로 행할 수 있다고 하는 이점을 갖는다. 그러나, SIMD 방식의 병렬 프로세서는 명령류가 하나밖에 존재하지 않기 때문에 유효한 문제의 범위가 한정된다고 하는 결점을 갖는다.
한편, MIMD 방식의 병렬 프로세서는, 다수의 명령류를 동시에 유지할 수 있으므로 유효한 문제의 범위가 넓다고 하는 이점을 갖는다. 그러나, MIMD 방식의 병렬 프로세서는, PE수와 동수만큼의 제어 회로가 필요로 되어 회로 규모가 커진다고 하는 결점을 갖는다.
그러한 중에, SIMD 방식과 MIMD 방식의 쌍방의 이점을 조합하여, 동일 프로세서에서 SIMD 방식과 MIMD 방식의 양방을 동적으로 절환할 수 있는, 소위 「혼합 모드」병렬 프로세서의 구성이 제안되어 있다.
예를 들면, 처음부터 MIMD 모드에서 동작이 가능하도록 제어 회로와 PE의 쌍 을 둘 다 갖도록 각 처리 요소(PE)를 구성하고, SIMD 모드에서는 전체 PE가 외부 명령 버스를 통하여 방송되어 오는 명령류를 선택하여 실행하고, MIMD 모드에서는 각 PE가 로컬의 명령류를 선택하여 실행함으로써, MIMD 모드와 SIMD 모드를 동적으로 절환하는 방식이 개시되어 있다(예를 들면, 「특허 문헌 1」∼「특허 문헌 4」).
특허 문헌 1:일본 특허 공개 소59-16071호 공보
특허 문헌 2:일본 특허 공개 평5-20283호 공보
특허 문헌 3:일본 특허 제2647315호
특허 문헌 4:일본 특허 제3199205호
<발명의 개시>
<발명이 해결하고자 하는 과제>
특허 문헌 1∼4의 개시 사항은, 본서에 인용으로써 삽입 기재되어 있는 것으로 한다. 이하의 분석은, 본 발명에 의해 주어진 것이다.
전술한 종래의 MIMD 방식을 베이스로 하는 혼합 모드 병렬 프로세서의 주된 목적은, SIMD 모드로 절환함으로써, PE간에서의 데이터 교환을 매우 효율적으로 실현할 수 있게 된다고 하는 이점을 얻는 것이다.
그러나, 동일한 PE수를 갖는 종래의 혼합 모드 병렬 프로세서와 단순한 SIMD 방식에만 기초하는 병렬 프로세서를 비교하면, 전자는 PE마다에의 효율적인 명령류 공급에 불가결한 명령 캐시 메모리나 그 관련 제어 회로, 특히 회로 규모가 큰 명령 캐시 메모리나 명령 캐시의 태그 저장용 레지스터 자원이 PE 개수분만큼 필요하 게 된다. 그 결과, 대부분의 경우, 회로 규모가 동일하면, 집적 가능한 PE수는 전자가 후자의 약 절반 이하에 그치고, 즉 전자의 처리 성능이 후자의 절반 이하로까지 저하된다.
이러한 점으로부터, SIMD 처리와 MIMD 처리가 혼재되는 어플리케이션에 대해, 통상의 SIMD 프로세서와 비교하여 종래의 혼합 모드 병렬 프로세서가, 정말로 유효한지의 여부는, SIMD 처리와 MIMD 처리의 비율로 크게 의존하게 되어, SIMD 처리의 비율이 높아지면 높아질수록, 혼합 모드 병렬 프로세서의 유효성이 저하된다고 하는 문제점이 존재하고 있었다.
본 발명의 목적은, 동일 PE수를 갖는 단순한 SIMD 프로세서와 비교하여, 회로 규모의 대폭적인 증가 없이, SIMD 처리 시에서의 성능 저하를 발생시키지 않는 프로세싱 엘리먼트, 혼합 모드 병렬 프로세서 시스템, 프로세싱 엘리먼트 방법, 혼합 모드 병렬 프로세서 방법, 프로세싱 엘리먼트 프로그램 및 혼합 모드 병렬 프로세서 프로그램을 제공하는 것이다.
<과제를 해결하기 위한 수단>
본 발명의 프로세싱 엘리먼트는, SIMD 동작 시에는 다른 N-1개의 프로세싱 엘리먼트와 병렬 동작하고, MIMD 동작 시에는 다른 S(=N÷M)-1개(S, M은 2 이상의 자연수)의 프로세싱 엘리먼트와 병렬 동작한다.
본 발명의 제1 혼합 모드 병렬 프로세서 시스템은, N개의 프로세싱 엘리먼트를 구비하고, SIMD 동작 시에는 N개의 상기 프로세싱 엘리먼트가 병렬 동작하고, MIMD 동작 시에는 각각 S개의 프로세싱 엘리먼트를 포함하는 M(=N÷S)조(S, M은 2 이상의 자연수)의 프로세싱 유닛으로 그룹화하고, M조의 상기 프로세싱 유닛끼리 및 S개의 상기 프로세싱 엘리먼트끼리가 각각 병렬 동작한다.
본 발명의 제2 혼합 모드 병렬 프로세서 시스템은, 상기 제1 혼합 모드 병렬 프로세서 시스템으로서, MIMD 동작 시에는 상기 프로세싱 유닛의 메모리 자원의 일부가, 명령 캐시 메모리로서 동작하고, 범용 레지스터 자원이, 명령 캐시의 태그 저장용 영역으로서 동작한다.
본 발명의 제3 혼합 모드 병렬 프로세서 시스템은, 상기 제2 혼합 모드 병렬 프로세서 시스템으로서, 상기 프로세싱 유닛에, 명령 캐시 제어, 명령 시퀀스 제어를 행하는 1개의 제어 회로를 포함한다.
본 발명의 제4 혼합 모드 병렬 프로세서 시스템은, 상기 제2, 또는 제3 혼합 모드 병렬 프로세서 시스템으로서, MIMD 동작 시에는 각 상기 프로세싱 유닛 내의 각 상기 프로세싱 엘리먼트에 속하는 S개의 상기 메모리 자원 중 P개(P<S)가 명령 캐시, 나머지 S-P개의 메모리 자원이 데이터 메모리 혹은 데이터 캐시로서 동작하고, S세트의 상기 범용 레지스터 자원 중, 1세트가 그대로 상기 프로세싱 유닛의 상기 범용 레지스터 자원으로서 동작하고, 남은 S-1세트 중 T세트(T<S-1), 또는 일정수만큼이 명령 캐시의 태그 저장용 자원으로서 동작하고, 나머지는 데이터 캐시를 이용하는 경우에는 데이터 캐시의 태그 저장용 자원으로서 동작한다.
본 발명의 제5 혼합 모드 병렬 프로세서 시스템은, 상기 제2, 제3, 또는 제4 혼합 모드 병렬 프로세서 시스템으로서, 전체를 제어하는 제어 프로세싱 엘리먼트를 구비하고, 각 상기 프로세싱 유닛 내의 상기 명령 캐시 메모리를 포함하는 1개 의 상기 프로세싱 엘리먼트가, 상기 제어 회로와, 상기 제어 프로세싱 엘리먼트로부터의 명령, 상기 명령 캐시 메모리로부터의 명령 중 어느 쪽인가를 선택하는 명령류 선택 셀렉터를 포함하고, MIMD 동작 시에는, 상기 명령 캐시 메모리를 포함하지 않는 나머지의 상기 프로세싱 엘리먼트는, 상기 명령류 선택 셀렉터로부터의 명령을 입력받아 실행한다.
본 발명의 제6 혼합 모드 병렬 프로세서 시스템은, 상기 제2 혼합 모드 병렬 프로세서 시스템으로서, 전체를 제어하는 제어 프로세싱 엘리먼트를 구비하고, 각 상기 프로세싱 유닛 내의 모든 상기 프로세싱 엘리먼트가, 상기 제어 회로와, 명령류 선택 셀렉터를 갖고, MIMD 동작 시에는, 상기 명령 캐시 메모리를 포함하는 1개의 상기 프로세싱 엘리먼트의 상기 명령류 선택 셀렉터가 상기 제어 프로세싱 엘리먼트로부터의 명령, 상기 명령 캐시 메모리로부터의 명령 중 어느 쪽인가를 선택하고, 상기 명령 캐시 메모리를 포함하지 않는 나머지의 상기 프로세싱 엘리먼트는, 상기 명령 캐시 메모리를 포함하는 1개의 상기 프로세싱 엘리먼트의 상기 명령류 선택 셀렉터로부터의 명령을 입력받아 실행한다.
본 발명의 프로세싱 엘리먼트 방법은, 프로세싱 엘리먼트가, SIMD 동작 시에는 다른 N-1개의 프로세싱 엘리먼트와 병렬 동작하는 수순과, MIMD 동작 시에는 다른 S(=N÷M)-1개(S, M은 2 이상의 자연수)의 프로세싱 엘리먼트와 병렬 동작하는 수순을 포함한다.
본 발명의 제1 혼합 모드 병렬 프로세서 방법은, N개의 프로세싱 엘리먼트를 구비하고, MIMD 동작 시에는 각각 S개의 프로세싱 엘리먼트를 포함하는 M(=N÷S) 조(S, M은 2 이상의 자연수)의 프로세싱 유닛으로 그룹화되는 혼합 모드 병렬 프로세서 시스템에서의 혼합 모드 병렬 프로세서 방법으로서, SIMD 동작 시에는 N개의 상기 프로세싱 엘리먼트가 병렬 동작하는 수순과, MIMD 동작 시에는 M조의 상기 프로세싱 유닛끼리 및 S개의 상기 프로세싱 엘리먼트끼리가 각각 병렬 동작하는 수순을 포함한다.
본 발명의 제2 혼합 모드 병렬 프로세서 방법은, 상기 제1 혼합 모드 병렬 프로세서 방법으로서, MIMD 동작 시에는 상기 프로세싱 유닛의 메모리 자원의 일부가, 명령 캐시 메모리로서 동작하는 수순과, 범용 레지스터 자원이, 명령 캐시의 태그 저장용 영역으로서 동작하는 수순을 포함한다.
본 발명의 제3 혼합 모드 병렬 프로세서 방법은, 상기 제2 혼합 모드 병렬 프로세서 방법으로서, 상기 프로세싱 유닛의 1개의 제어 회로가, 명령 캐시 제어, 명령 시퀀스 제어를 행하는 수순을 포함한다.
본 발명의 제4 혼합 모드 병렬 프로세서 방법은, 상기 제2, 또는 제3 혼합 모드 병렬 프로세서 방법으로서, MIMD 동작 시에는 각 상기 프로세싱 유닛 내의 각 상기 프로세싱 엘리먼트에 속하는 S개의 상기 메모리 자원 중 P개(P<S)가 명령 캐시, 나머지 S-P개의 메모리 자원이 데이터 메모리 혹은 데이터 캐시로서 동작하는 수순과, S세트의 상기 범용 레지스터 자원 중, 1세트가 그대로 상기 프로세싱 유닛의 상기 범용 레지스터 자원으로서 동작하는 수순과, 남은 S-1세트 중 T세트(T<S-1), 또는 일정수만큼이 명령 캐시의 태그 저장용 자원으로서 동작하고, 나머지는 데이터 캐시를 이용하는 경우에는 데이터 캐시의 태그 저장용 자원으로서 동작하는 수순을 포함한다.
본 발명의 제5 혼합 모드 병렬 프로세서 방법은, 상기 제2, 제3, 또는 제4 혼합 모드 병렬 프로세서 방법으로서, 전체를 제어하는 제어 프로세싱 엘리먼트를 구비하는 상기 혼합 모드 병렬 프로세서 시스템에서의 혼합 모드 병렬 프로세서 방법으로서, 각 상기 프로세싱 유닛 내의 상기 명령 캐시 메모리를 포함하는 1개의 상기 프로세싱 엘리먼트의 명령류 선택 셀렉터가, 상기 제어 프로세싱 엘리먼트로부터의 명령, 상기 명령 캐시 메모리로부터의 명령 중 어느 쪽인가를 선택하는 수순과, MIMD 동작 시에는, 상기 명령 캐시 메모리를 포함하지 않는 나머지의 상기 프로세싱 엘리먼트는, 상기 명령류 선택 셀렉터로부터의 명령을 입력받아 실행하는 수순을 포함한다.
본 발명의 제6 혼합 모드 병렬 프로세서 방법은, 상기 제2 혼합 모드 병렬 프로세서 방법으로서, 전체를 제어하는 제어 프로세싱 엘리먼트를 구비하는 상기 혼합 모드 병렬 프로세서 시스템에서의 혼합 모드 병렬 프로세서 방법으로서, MIMD 동작 시에는, 상기 명령 캐시 메모리를 포함하는 1개의 상기 프로세싱 엘리먼트의 상기 명령류 선택 셀렉터가 상기 제어 프로세싱 엘리먼트로부터의 명령, 상기 명령 캐시 메모리로부터의 명령 중 어느 쪽인가를 선택하는 수순과, 상기 명령 캐시 메모리를 포함하지 않는 나머지의 상기 프로세싱 엘리먼트는, 상기 명령 캐시 메모리를 포함하는 1개의 상기 프로세싱 엘리먼트의 상기 명령류 선택 셀렉터로부터의 명령을 입력받아 실행하는 수순을 포함한다.
본 발명의 프로세싱 엘리먼트 프로그램은, 프로세싱 엘리먼트에, SIMD 동작 시에는 다른 N-1개의 프로세싱 엘리먼트와 병렬 동작하는 수순과, MIMD 동작 시에는 다른 S(=N÷M)-1개(S, M은 2 이상의 자연수)의 프로세싱 엘리먼트와 병렬 동작하는 수순을 실행시킨다.
본 발명의 제1 혼합 모드 병렬 프로세서 프로그램은, N개의 프로세싱 엘리먼트를 구비하고, MIMD 동작 시에는 각각 S개의 프로세싱 엘리먼트를 포함하는 M(=N÷S)조(S, M은 2 이상의 자연수)의 프로세싱 유닛으로 그룹화되는 혼합 모드 병렬 프로세서 시스템에서의 혼합 모드 병렬 프로세서 프로그램으로서, 상기 혼합 모드 병렬 프로세서 시스템에, SIMD 동작 시에는 N개의 상기 프로세싱 엘리먼트가 병렬 동작하는 수순과, MIMD 동작 시에는 M조의 상기 프로세싱 유닛끼리 및 S개의 상기 프로세싱 엘리먼트끼리가 각각 병렬 동작하는 수순을 실행시킨다.
본 발명의 제2 혼합 모드 병렬 프로세서 프로그램은, 상기 제1 혼합 모드 병렬 프로세서 프로그램으로서, MIMD 동작 시에는 상기 프로세싱 유닛의 메모리 자원의 일부에, 명령 캐시 메모리로서 동작하는 수순을 실행시키고, 범용 레지스터 자원에, 명령 캐시의 태그 저장용 영역으로서 동작하는 수순을 실행시킨다.
본 발명의 제3 혼합 모드 병렬 프로세서 프로그램은, 상기 제2 혼합 모드 병렬 프로세서 프로그램으로서, 상기 프로세싱 유닛의 1개의 제어 회로에, 명령 캐시 제어, 명령 시퀀스 제어를 행하는 수순을 실행시킨다.
본 발명의 제4 혼합 모드 병렬 프로세서 프로그램은, 상기 제2, 또는 제3 혼합 모드 병렬 프로세서 프로그램으로서, MIMD 동작 시에는 각 상기 프로세싱 유닛 내의 각 상기 프로세싱 엘리먼트에 속하는 S개의 상기 메모리 자원 중 P개(P<S)가 명령 캐시, 나머지 S-P개의 메모리 자원이 데이터 메모리 혹은 데이터 캐시로서 동작하는 수순과, S세트의 상기 범용 레지스터 자원 중, 1세트가 그대로 상기 프로세싱 유닛의 상기 범용 레지스터 자원으로서 동작하는 수순과, 남은 S-1세트 중 T세트(T<S-1), 또는 일정수만큼이 명령 캐시의 태그 저장용 자원으로서 동작하고, 나머지는 데이터 캐시를 이용하는 경우에는 데이터 캐시의 태그 저장용 자원으로서 동작하는 수순을 상기 혼합 모드 병렬 프로세서 시스템에 실행시킨다.
<발명의 효과>
본 발명은, 동일 PE수를 갖는 단순한 SIMD 프로세서와 비교하여, 회로 규모의 대폭적인 증가 없이, SIMD 처리 시에서의 성능 저하를 발생시키지 않는 혼합 모드 병렬 프로세서를 실현할 수 있다고 하는 효과를 갖는다.
그 이유는, 프로세싱 엘리먼트가, SIMD 동작 시에는 다른 N-1개의 프로세싱 엘리먼트와 병렬 동작하고, MIMD 동작 시에는 다른 (N÷S)-1개(S는 2 이상의 자연수)의 프로세싱 엘리먼트와 병렬 동작하기 때문이다.
도 1은 본 발명의 제1 실시 형태의 구성을 도시하는 블록도.
도 2는 본 발명의 제1 실시 형태의 프로세싱 유닛의 상세한 구성을 도시하는 블록도.
도 3은 본 발명의 제1 실시 형태의 동작을 설명하는 플로우차트.
도 4는 본 발명의 제1 실시 형태에서의 명령 캐시에 대한 액세스 정보의 내용을 나타내는 설명도.
도 5는 본 발명의 제1 실시 형태의 실시예의 구성을 도시하는 블록도.
도 6은 본 발명의 제2 실시 형태의 구성을 도시하는 블록도.
<부호의 설명>
PS : 혼합 모드 병렬 프로세서 시스템
CP : 제어 프로세싱 엘리먼트
PE1∼PEn : 프로세싱 엘리먼트
MEM : 주기억 장치
BUS : 공통 버스
PU1 : 프로세싱 유닛
PU1∼PUm : 프로세싱 유닛
RM1∼RAMn : 메모리
GPR1∼GPRn : 레지스터 자원
ALU1∼ALUn : 연산 회로
ISEL1∼ISELm : 명령류 선택 셀렉터
PC : 프로그램 카운터
MODE : 모드 지정 레지스터
CTR1∼CTRm : 제어 회로
CTR1 : 제어 회로
RAM0 : 메모리
GRP0 : 레지스터 자원
CTR0 : 제어 회로
ALU0 : 연산 회로
ARBT : 조정 회로
FF1∼FFr : 범용 레지스터
ID1, ID2 : 명령 디코더 회로
SELG1∼SELGr : 데이터 셀렉터
RSEL1∼RSEL2 : 오퍼랜드 읽어내기용 셀렉터
CSEL1 : 제어 셀렉터
SELAD1 : 어드레스 셀렉터
CMP1 : 비교 회로
<발명을 실시하기 위한 최량의 형태>
본 발명의 혼합 모드 병렬 프로세서 시스템은, 각각이 메모리(자원)나 연산의 도중 결과를 저장하는 범용 레지스터(자원)를 구비하는 합계 N개의 SIMD 동작 가능한 프로세싱 엘리먼트 PE를 포함한다. 또한, 혼합 모드 병렬 프로세서 시스템은, M개(N÷S=M, M, N, S는 모두 자연수)의 명령 캐시 태그 저장 영역을 포함하지 않는 명령 캐시 제어 회로 및 M개의 명령 시퀀스 제어용 회로를 포함한다.
서로 인접하는 S개의 프로세싱 엘리먼트 PE, 1개의 명령 캐시 제어 회로 및 1개의 명령 시퀀스 제어 회로로 이루어지는 그룹이, 1개의 MIMD 동작하는 프로세싱 유닛 PU를 구성한다. 명령 캐시 제어 회로 및 명령 시퀀스 제어 회로는, 1개의 프로세싱 엘리먼트 PE에 포함되는 구성도 가능하다.
MIMD 동작 시에는, 각 프로세싱 유닛 PU 내의 S개의 메모리(자원) 중 P개(P<S)가, 명령 캐시로서 동작하고, 나머지의 메모리(자원)가 데이터 메모리 혹은 데이터 캐시로서 동작한다. 또한, S세트의 범용 레지스터(자원) 중, 1세트는 그대로 PU의 범용 레지스터(자원)로서 동작한다.
남은 S-1세트 중 T세트(T<S-1)는, 명령 캐시 태그의 저장용 레지스터(디렉토리로서의 자원)로서 동작한다. 또한, 나머지 S-1-T세트는, 데이터 캐시의 태그 저장용 레지스터(자원)로서 동작하는 데이터 캐시의 구성도 가능하다.
또한, 혼합 모드 병렬 프로세서 시스템은, 각 메모리(자원)나 범용 레지스터(자원)에의 라이트 데이터나 각종 제어 신호를, SIMD 모드 시와 MIMD 모드 시에서 절환할 수 있도록 하기 위한 셀렉터류를 포함한다.
상기 구성을 취함으로써, 혼합 모드 병렬 프로세서의 실현에 요하는 추가 회로는 S개의 PE에 대하여, 1개의 명령 시퀀스 제어 회로, 몇 개의 셀렉터 및 그들에 대한 제어 신호 생성도 아울러 행하는(명령 캐시의 태그 저장용 영역 본체를 포함하지 않는) 1개의 명령 캐시 제어 회로만으로 된다.
즉, MIMD적 동작을 실현하는 데 있어서 가장 큰 회로 규모의 증대를 초래하는 「명령 캐시 메모리 및 그 명령 캐시 태그의 저장용 레지스터(자원)」의 신규 추가가 불필요하게 된다. 따라서, 본 발명의 혼합 모드 병렬 프로세서 시스템은, SIMD 모드 시에서는 N개의 PE에 의한 병렬 동작, MIMD 모드 시에서는 M(=N÷S)개의 PU에 의한 병렬 동작을 행하는 것이 가능하다. 또한, 본 발명의 혼합 모드 병렬 프로세서 시스템 PS는, N개의 PE로 구성되는 단순한 SIMD 프로세서와 비교하여도 매우 적은 회로 규모의 증가만으로 구성할 수 있다.
다음으로, 본 발명의 제1 실시 형태에 대해 도면을 참조하여 상세하게 설명한다. 도 1은, 본 발명의 제1 실시 형태의 혼합 모드 병렬 프로세서 시스템 PS의 구성을 도시하는 블록도이다. 도 1을 참조하면, 본 발명의 제1 실시 형태의 혼합 모드 병렬 프로세서 시스템 PS는, 전체의 제어를 행하는 제어 프로세싱 엘리먼트 CP와, n개의 프로세싱 엘리먼트 PE1, PE2, PE3, PE4, …, PEn-1, PEn과, 주기억 장치 MEM을 포함한다. 또한, 프로세싱 엘리먼트 PE1∼PEn은, 공통 버스 BUS에 의해, 제어 프로세싱 엘리먼트 CP에 접속된다.
혼합 모드 병렬 프로세서 시스템 PS는, S가 2, 따라서 M이 N/2, 즉 2개의 SIMD 동작하는 프로세싱 엘리먼트 PEi 및 프로세싱 엘리먼트 PEi+1로 하나의 MIMD 동작하는 프로세싱 유닛 PU1, PU2, …, PUm을 구성하는 경우이다.
프로세싱 엘리먼트 PE1∼PEn은, 각각 메모리 RAM1∼RAMn(자원), 레지스터 자원 GPR1∼GPRn 및 연산 회로 ALU1∼ALUn을 포함한다. 프로세싱 유닛 PU1∼PUm은, 각각 명령류 선택 셀렉터 ISEL1∼ISELm, 프로그램 카운터 PC 및 모드 지정 레지스터 MODE를 내장한 제어 회로 CTR1∼CTRm(명령 시퀀스 제어, 또한 명령 캐시 제어)을 포함한다. 명령류 선택 셀렉터 ISEL1∼ISELm, 제어 회로 CTR1∼CTRm은, 홀수번의 프로세싱 엘리먼트 PE1, PE3, …, PEn-1에 포함시키는 것이 가능하다.
또한, SIMD 모드 시에 PE 어레이 전체에의 명령류를 공급하는 제어 프로세싱 엘리먼트 CP는, 데이터 메모리 RAM0(자원), 레지스터 자원 GRP0, 제어 회로 CTR0, 연산 회로 ALU0 및 조정 회로 ARBT를 포함한다.
도 2는, 프로세싱 유닛 PU1의 상세한 구성을 도시하는 블록도이다. 도 2를 참조하면, 프로세싱 유닛 PU1은 프로세싱 엘리먼트 PE1, PE2를 포함한다. 프로세싱 엘리먼트 PE1의 명령류 선택 셀렉터 ISEL1은, 제어 프로세싱 엘리먼트 CP로부터의 명령과 메모리 RAM1로부터의 명령 워드를 선택하고, 프로세싱 엘리먼트 PE1 내부 및 프로세싱 엘리먼트 PE2에 출력한다.
명령 디코더 회로 ID1, ID2는 명령 워드를 디코드하여, 제어 신호를 생성한다. r개의 범용 레지스터 FF1∼FFr은 프로세싱 엘리먼트 PE1, PE2의 레지스터 자원이다.
데이터 셀렉터 SELG1∼SELGr은 프로세싱 엘리먼트 PE1의 개개의 범용 레지스터 FF1∼FFr에의 입력에, 「연산 회로 ALU1로부터의 라이트 백데이터」, 「메모리 RAM1로부터의 라이트 백데이터」 및 「제어 회로 CTR1이 생성하는 태그 갱신 데이터」 중 어느 하나를 선택한다.
어드레스 셀렉터 SELAD1은 제어 회로 CTR1과 레지스터 자원 GPR1 중 어느 것으로부터의 어드레스값을 메모리 RAM1의 액세스에 사용할 것인지를 선택한다. 오퍼랜드 읽어내기용 셀렉터 RSEL1∼RSEL2는 레지스터 자원 GPR1(레지스터 자원GPR2)의 출력 데이터 중으로부터 연산 회로 ALU1(연산 회로 ALU2)에 공급하는 소스 오퍼랜드를 선택한다.
이러한 구성을 토대로, 혼합 모드 병렬 프로세서는, SIMD 모드 시에서는 N병렬로, MIMD 모드에서는 M(=N/2)병렬로, 개략 다음과 같이 동작한다. 이하, 구성 요소의 명칭을 생략하고, 부호만으로 설명한다.
도 1을 참조하면, SIMD 모드 시에서는, CP로부터 방송되는 명령쪽을 선택하도록, CTR1∼CTRm이 명령류 셀렉터 ISEL1∼ISELm을 제어한다. 그에 의해, PE1∼PEn에는 동일한 명령이 방송되고, 그 결과 N개의 PE1∼PEn에 의한 SIMD 처리가 행해진다.
한편, 도 2를 참조하면, MIMD 모드 시에서는, PU1 내에서, CTR1이, CTR1로부터의 라이트 데이터(명령 캐시의 태그)를 PE1의 FF1∼FFr에 공급하도록 SELG1∼SELGr을 제어한다. 따라서, PE1의 FF1∼FFr은 명령 캐시의 태그의 저장에 이용 가능하게 된다. 또한, CTR1은 GPR1로부터가 아니라 CTR1로부터의 액세스 어드레스값(메모리 RAM1에의)을 선택하도록 SELAD1을 제어한다. 따라서, RAM1은 명령 캐시 메모리로서 이용 가능하게 된다.
한편, PE2에서는, MIMD 모드 시에서, GRP2부터 ALU2까지는 SIMD 모드 시와 마찬가지로, 명령 지정에 의한 연산 처리를 행하는 데이터 패스로서 기능한다. 그러나, 연산 동작은 RAM1로부터 읽어내어진 명령의 ID2에 의한 디코드 결과로 지정된다. 이와 같이, MIMD 모드에서는, 각 PU1∼PUm에서, 하나의 PE1(PE3, PE5, …) 내의 대부분의 하드웨어 자원이, MIMD 모드 시의 명령 발행의 동작의 실현에 필요하게 되는 하드웨어 요소로서 이용되어, 명령의 효율적 발행이 실현된다. 발행된 명령은, 또 하나의 PE2(PE4, PE6, …)에서 실행된다.
다음으로, 본 발명의 제1 실시 형태의 동작에 대해 도면을 참조하여 설명한다. 도 3은, 본 발명의 제1 실시 형태의 PU1의 동작을 설명하는 플로우차트이다. 또한, 본 실시 형태에서는 설명을 간결하게 하기 위해, PE1, PE2는, 각각 1개의 연 산 회로(ALU1, ALU2)를 갖고, 사이클마다 최대 1명령을 실행한다. 개개의 PE1, PE2가 연산 회로를 복수 갖고, 사이클마다 복수 명령을 동시에 실행할 수 있는 것이어도 무방하다.
마찬가지로, 설명을 간결하게 하기 위해, 본 실시 형태는 PU1이, 2개의 SIMD 동작하는 PE1, PE2가 하나의 MIMD 동작하는 구성이다. 또한, 본 실시 형태는, PE1, PE2의 RAM1, RAM2(메모리 자원)로부터 사이클마다 읽어낼 수 있는 데이터의 비트수 D가 명령어 길이 L과 일치하는 구성이다. D≥L이어도 되고, 그 경우에는 D 중의 L 비트만큼을 이용하면 된다.
혹은, D<L이면, D를 D≥L로 되도록 PE1, PE2의 RAM1, RAM2(메모리 자원)의 사양을 수정하는 구성이 가능하다. 혹은, 1개의 PU 내의 PE수를 늘리고, 예를 들면, 3∼4대의 PE가 하나의 MIMD 동작을 행하고, 그 중의 2∼3PE분의 메모리 자원을 합하여 명령 캐시 메모리로서 이용하는 구성도 가능하다.
도 3을 참조하면, PU1은 이하와 같이 동작함으로써, 원래 SIMD 동작을 행하는 2개의 PE1 및 PE2의 하드 자원을 이용하여 MIMD 동작을 실현한다. CTR1 내의 MODE는, CP에 의해 리드 라이트 가능하며, 그 값에 의해 SIMD 동작(MODE의 값이 "0"인 경우)과 MIMD 동작(MODE의 값이 "1"인 경우) 중 어느 것인지를 나타낸다.
CP는, PU1의 CTR1 내의 MODE에 "0"을 라이트함으로써, PU1의 동작을 SIMD 모드로 설정하거나, 혹은 MODE에 "1"을 라이트함으로써, PU1의 동작을 MIMD 모드로 설정한다.
이하, 도 3의 플로우차트를 따라서, PU1의 사이클마다 동작에 대해 설명한 다. 우선, ISEL1은 MODE="0"이면(도 3 스텝 S1/예), CP로부터 방송되는 명령을 선택하고(스텝 S2), MODE="1"이면(스텝 S1/아니오), RAM1로부터 읽어내어진 명령을 선택한다(스텝 S3).
다음으로, CRT1은 선택된 명령이 동작 정지를 지정하는 명령(HALT)인지의 여부를 판정하고, HALT 명령이면(스텝 S4/예), PE1, PE2의 동작을 정지한다(스텝 S5).
다음으로, ID1, ID2는 선택된 명령을 ISEL1로부터 입력받고(스텝 S6), 명령을 디코드하여 명령 실행을 위한 각종 제어 신호를 생성한다(스텝 S7). 그리고, PE2는 ID에서 생성된 제어 신호로 GPR2, ALU2 및 RAM2를 제어함으로써 명령을 실행한다(스텝 S8).
한편, PE1에서는 MODE="0"이면(스텝 S9/예), ID1로부터의 제어 신호(CP로부터의 명령에 기초함)에 따라서, GPR1의 SELG1∼SELGr은 RAM1로부터의 데이터, 또는 ALU1로부터의 데이터를 선택하고, 각각 FF1∼FFr에 출력한다(스텝 S10). 다음으로, ID1로부터의 제어 신호(CP로부터의 명령에 기초함)에 따라서, RAM1이 제어되어 명령이 실행된다(스텝 S11).
한편, MODE=1의 경우에는(스텝 S9/아니오), 이하에 설명하는 바와 같이, 다음 사이클에 실행되는 명령 워드의 읽어내기가 행해진다. 즉, CTR1은 PC의 값에 1을 가산한 값으로 PC를 갱신하고, 갱신된 PC의 값을 명령 캐시에 대한 액세스 정보 A로 하고, 명령 캐시(RAM1)를 액세스한다(스텝 S12).
여기서, 명령 캐시에 대한 액세스 정보 A에 대해 설명한다. 도 4는, 명령 캐시에 대한 액세스 정보 A의 내용을 나타내는 설명도이다. 도 4를 참조하면, 액세스 정보 A의 상위측 비트열이 X, 중간의 비트열이 Y, 그리고 하위측 비트열이 Z이다.
PE1의 CTR1은, Y로 지정되는 FF1∼FFr 중의 하나인 FFy에 저장되어 있는 캐시의 태그와 X가 일치하는지의 여부를 비교함으로써, 명령 캐시의 히트 미스 판정을 행한다(스텝 S13). FFy의 내용과 X가 일치하면, 즉 명령 캐시 히트이면(스텝 S14/예), CTR1은 Y와 Z를 연결한 비트열로 이루어지는 어드레스로 RAM1에 대해 명령 리드의 액세스를 행한다(스텝 S15).
한편, FFy의 내용과 X가 일치하지 않으면, 즉 명령 캐시 미스이면(스텝 S14/아니오), CTR1은 X와 Y를 연결한 비트열을 상위 어드레스, Z의 비트수분의 하위 어드레스가 제로인 값을 액세스 어드레스로 하여, CP에 명령 취출 요구를 출력한다(스텝 S16).
다음으로, CTR1은 MEM으로부터의 캐시 엔트리의 사이즈분만큼의 명령 워드를 CP의 ARBT 및 BUS를 통하여 PE1에 읽어들이는 제어를 행한다(스텝 S17). 다음으로, CTR1은 명령 캐시인 RAM1의 대응하는 엔트리에 BUS로부터의 명령 워드를 써넣는다(스텝 S18). 또한, CTR1은 SELGr을 통하여 FFr에 값 X를 저장한다(스텝 S19).
다음으로, CTR1은, 다시 명령 캐시에 대한 액세스 정보 A로 하여, 명령 캐시를 액세스하고(스텝 S20), 명령 캐시의 히트 미스를 판정한다(스텝 S13). 이번에는, FFy에 값 X가 저장되어 있으므로, 명령 캐시 히트로 되어(스텝 S14/예), CTR1은 Y와 Z를 연결한 비트열로 이루어지는 어드레스로 RAM1에 대해 명령 리드의 액세 스를 행한다(스텝 S15).
이들 동작에 의해, 다음 사이클에서 이용하는 명령 워드를 명령 캐시인 RAM1로부터 읽어낼 수 있다. 또한, MODE의 값에 따라서 PE1과 PE2를 동일 명령을 실행하는 SIMD 모드에서 동작시키거나, 혹은 PE1과 PE2로 하나의 PU를 구성하여 MIMD 모드에서 동작시키거나 하는 것이 가능하게 된다. 그 밖에, 본 실시 형태를 취함으로써, 일부의 PE를 SIMD 모드에서 동작시키면서, 동시에 일부의 PE는 PU를 형성시켜 MIMD 모드에서 동작시키는 것도 가능하다.
또한, 상기는, 1웨이 구성의 캐시 메모리로서 RAM1을 이용한 경우의 동작예이지만, GPR1 내의 범용 레지스터수에 여유가 있으면, 다웨이 구성의 캐시 메모리로서 동작시키는 것도 가능하다.
다음으로, 본 발명의 제1 실시 형태의 PE1의 실시예에 대해 도면을 참조하여 설명한다.
도 5는, 본 발명의 제1 실시 형태의 PE1의 실시예의 구성을 도시하는 블록도이다. 도 5를 참조하면, PE1은, 도 2에 도시되어 있지 않은 제어 셀렉터 CSEL1(이후, CSEL1이라고 약칭함) 및 비교 회로 CMP1(이후 CMP1이라고 약칭함)을 포함한다. 도 2의 PE1에 CSEL1, CMP1이 존재하지 않는다고 하는 것은 아니며, 도 2의 PE의 상세한 일례가 도 5에 도시하는 PE1이다.
CSEL1은, SIMD 모드에서는 ID1로부터의 제어 신호(선택 신호)를 선택하고, MIMD 모드에서는 CTR1로부터의 제어 신호(Y값에 대응하는 선택 신호)를 선택한다. CSEL1로부터의 선택 신호는 RSEL1의 선택 신호로서 사용된다.
SIMD 모드에서는, RSEL1의 출력은 ALU1, 또는 RAM1에의 데이터이다. MIMD 모드에서는, RSEL1의 출력은 명령 캐시의 태그이며, CMP1에 출력된다. CMP1은 RSEL1로부터의 태그와, CTR1로부터의 X값과 비교하고, 비교 결과를 CTR1에 출력한다. 일치한 비교 결과는, 명령 캐시 히트를 의미하고, 불일치한 비교 결과는, 명령 캐시 미스를 의미한다.
다음으로, 더 구체적인 실시예를 이용하여, 실제의 동작 및 그 효과를 설명한다. 각 PE1∼PEn은, 16비트의 범용 레지스터 FF1∼FF16과, 각각 32비트 워드로 합계 4K 워드의 RAM1∼RAMn을 갖는 SIMD형 병렬 프로세서이다.
PE1은, PE2와 비교하여, FF1∼FF16에 대응하는 SELG1∼SELG16과, RAM1에 대응하는 SELAD1과, CP로부터의 명령과 RAM1로부터의 읽어내기 명령 워드를 선택하는 ISEL1과, PC 및 모드 레지스터 MODE를 포함하는 CTR1과, RSEL1의 선택을 제어하는 CSEL1과, 명령 캐시의 히트 미스를 판정하는 CMP1이 추가되어 있다.
PE1과 PE2를 합하여, 1개의 MIMD 동작 가능한 PU로 동적으로 절환되도록 하기 위한 구성예는 이하와 같다.
PE1의 4K 워드의 RAM1은, 명령 캐시로서 사용된다. 그리고, 16개의 FF1∼FF16이, 그대로 명령 캐시의 태그 저장용 레지스터로서 사용된다. CTR1 내의 PC를 28비트로 한 경우에, FF1∼FF16의 비트수 16에 맞추도록, 28비트의 명령 캐시 액세스 정보 A의 상위 16비트(=X)를 캐시 엔트리의 태그로 하고, 명령 캐시를 16엔트리, 256워드/엔트리 구성으로 한다. 그리고, 남은 12(=28-16)비트 중 상위 4비트(=Y) GS 엔트리 번호를 지정하고, 하위 8비트(=Z)가, 엔트리 내 워드 위치를 지 정한다(도 4 참조).
이에 의해, 동시에 16개의 범용 레지스터를 각각, 명령 캐시의 각 엔트리에 대응하는 태그의 저장 레지스터로서 이용할 수 있다. 이러한 할당 하에서, 도 3의 플로우차트에서의 스텝 S12∼S20을 실시한 경우의 동작은 이하와 같이 된다.
MODE의 값이 "1"인 경우에는, ISEL1은 RAM1로부터의 읽어내기 결과를 명령으로서 선택한다. 명령 워드를 사이클마다 지체없이, MEM 상에 있는 프로그램 영역으로부터 효율적으로 읽어낼 수 있도록 하기 위해서는, 명령 캐시 제어를 실현할 필요가 있다. 본 실시예에서는, 그것을 기존의 PE1의 하드웨어 자원을 유용함으로써 이하와 같이 하여 행한다.
우선, Y의 4비트값에 의해 지정되는 16개의 범용 레지스터 중의 1개인 FFy의 내용의 16비트값과, X의 16비트값을 비교함으로써, 명령 캐시의 히트 미스 판정이 행해진다. 여기서, FFy를 읽어내기 위한 셀렉터는 통상적으로, PE1의 데이터 패스 상에 존재하는 RSEL1을 그대로 이용하면 된다.
FFy의 내용과 X를 비교한 결과, 일치한 경우에는 명령 캐시의 히트를 의미하므로, Y와 Z를 연결한 12비트열이 RAM1에의 액세스 어드레스로 된다. 액세스 어드레스는 SELAD1을 통하여 RAM1에 출력되어, 명령 캐시 메모리로서 기능하는 RAM1로부터, 다음 사이클의 명령이 읽어내어진다.
한편, 비교의 결과, 불일치로 된 경우에는, X의 16비트와 Y의 4비트를 연결한 20비트를 상위로 하고, 하위를 제로로 하는 28비트의 액세스 어드레스가 이용된다. CP1은 액세스 어드레스를 CP에 출력한다. CP에 접속되는 MEM으로부터, 캐시 엔트리의 워드수의 256(Z가 8비트임)의 명령 워드가, ABRT, BUS를 통해, RAM1에 출력된다.
그리고, MEM으로부터의 명령 워드는, 대응하는 캐시 엔트리의 어드레스 위치(12비트 중 상위 4비트가 Y, 하위 8비트(=Z와 동일한 비트수)가 제로인 어드레스 위치를 선두로 하는 RAM1의 영역)에 써넣어진다. 또한, RSELGy를 통하여, FFy의 내용이 X의 값으로 변경된다.
다음으로, Y와 Z를 연결한 12비트의 액세스 어드레스가 SELAD1을 통하여 RAM1에 출력되고, 다음 사이클의 명령이, 명령 캐시 메모리로서 기능하는 RAM1로부터 읽어내어진다.
이에 의해, SIMD형 병렬 프로세서에서의 2개의 PE(여기서는 PE1과 PE2)로 이루어지는 하나의 PU가, 28비트의 메모리 공간으로부터 MIMD 동작을 실현하는 데에 불가결한 명령을 사이클마다 읽어낼 수 있게 된다.
또한, SIMD 동작 시에서는 PE1이 데이터 메모리로서 이용하고 있던 RAM1 및 범용 레지스터로서 이용하고 있던 FF1∼FF16이, 명령 캐시 및 명령 캐시의 태그 저장 레지스터로 유용된다. 이 때문에 추가된 ISEL1, CTR1, SELAD1, CSEL1 및 CMP1은 하드웨어적으로 소량이다.
또한, 상기 실시예에서는, 범용 레지스터 상에서 실현하고 있는 각 명령 캐시의 태그에 유효 비트를 부수시키고 있지 않다. 이 경우에는, 태그가 제로값이면 그 태그가 무효라고 간주하면 된다. 이 경우, SIMD 모드로부터 MIMD 모드로 절환할 때에, 우선 명령 캐시 엔트리의 태그값을 제로 클리어하고, 또한 PC의 값이 제 로로 되는 것을 소프트웨어적으로 방지할 필요가 있다.
이에 대해, 다른 방법으로서는, 태그 저장 레지스터를 1비트 확장하고, 그것을 그 태그가 유효한지의 여부를 나타내는 정보, 즉 유효 비트로서 이용하는 구성도 있다. 그 경우, 유효 비트가 "1"이면, 그 태그가 유효한 것으로 하고, SIMD 모드로부터 MIMD 모드로 절환할 때에, 전체 태그의 그 유효 비트를 일제히 제로로 리세트하면 된다. 이 경우, PC의 값이 제로로 되는 것을 소프트웨어적으로 방지할 필요는 없어진다.
본 실시예에 의한 작용 효과를, 종래 기술의 MIMD 동작 가능한 PE를 베이스에 혼합 모드 병렬 프로세서를 구성하는 방법과 비교하여, 이하에 설명한다.
즉, 종래 기술 그대로, 본 발명의 실시예의 경우와 마찬가지로, 28비트의 메모리 공간으로부터 명령 워드를 읽어낼 수 있도록 하고, 또한 4K 워드의 명령 캐시를 이용할 수 있도록 하기 위해서는, 처음부터 각 PE에, 원래 존재하는 4K 워드의 메모리 외에, 또 하나의 4K 워드의 명령 워드 저장용 메모리를 추가할 필요가 있다. 또한, 본 발명의 실시예의 경우와 마찬가지로 명령 캐시 제어를 행할 수 있도록 하기 위해, 범용 레지스터 세트와는 별도로, 명령 캐시의 태그 저장용의 레지스터로서 16비트×16개=256비트의 플립플롭을 추가할 필요가 있다.
일반적으로, 하나의 SIMD 동작을 행하는 PE의 대부분의 면적을 점유하고 있는 것이, 범용 레지스터(자원)와 메모리(자원)인 것을 고려하면, 종래 기술에 기초하는 혼합 모드 병렬 프로세서의 각 PE는, 본 발명과 비교하여 PE마다의 회로 규모가 2배 정도로 팽창되는 계산으로 된다.
따라서, SIMD 모드 시의 PE수가 동일한 혼합 모드 병렬 프로세서에서 생각하면, 종래 기술에 기초하는 것은 본 발명에 기초하는 것과 비교하면, 2배의 회로 규모가 필요하면서 피크 성능은 SIMD 동작 시에서는 본 발명과 동등한 정도이다. 또한, MIMD 동작 시에서는 종래 기술에 기초하는 것은 본 발명에 기초하는 것과 비교하면 2배의 피크 성능이 얻어지지만, 회로 규모가 약 2배인 것을 생각하면, 코스트 성능비의 관점에서는 본 발명과 비교하여 종래 기술의 우위성은 인정되지 않는다.
본 발명의 본 실시예의 제1 효과는, 적은 회로 규모의 증가만으로, SIMD 모드만을 서포트하는 기존의 단순한 SIMD형 병렬 프로세서를, 적용 가능한 문제의 범위가 보다 넓은, MIMD형 병렬 프로세서로 동적으로 재구성할 수 있도록 되는 것이다.
그 이유는, SIMD 동작하는 기존의 PE 복수개를 하나의 그룹으로 하여, 개개의 그룹 내에서의 기존의 메모리 자원이나 레지스터 자원을 명령 캐시 메모리나 명령 캐시 엔트리마다 태그 저장용 스페이스로서 재이용할 수 있도록 구성함으로써, MIMD 동작 시에 필요로 되는 그들의 회로 규모가 큰 부품의 신규 추가가 불필요하게 되기 때문이다.
본 발명의 실시예의 제2 효과는, SIMD 처리 태스크와 MIMD 처리 태스크의 양방을 모두 포함하는 어플리케이션을, 종래의 혼합 모드 병렬 프로세서와 비교하여 보다 효과적으로 처리 성능을 향상시킬 수 있도록 되는 것이다.
그 이유는, SIMD 처리 태스크와 MIMD 처리 태스크의 양방을 모두 포함하는 어플리케이션에서는 통상적으로, 후자보다도 전자쪽이 높은 병렬성을 갖지만, 동일 정도의 회로 규모 하에서는 본 발명의 혼합 모드 병렬 프로세서쪽이 기존의 MIMD형 병렬 프로세서를 베이스로 한 혼합 모드 병렬 프로세서와 비교하여, 보다 높은 SIMD형 병렬 동작을 실현할 수 있기 때문이다.
이상에 의해, 본 발명의 실시예의 동일한 사양의 프로세서 구성으로 한 경우에서는, 본 발명의 구성은 종래 기술과 비교하여, MIMD 동작 시의 코스트 성능비를 유지하면서, SIMD 동작 시의 코스트 성능비를 2배 정도 높일 수 있다고 하는 효과가 얻어진다.
또한, S개의 SIMD 동작하는 PE로 하나의 MIMD 동작하는 PU를 구성하는 경우, PU 내에서는 원래 각각의 PE에 속하는 연산기의 일부가, 그대로 이용되지 않고 존재한다.
그들 연산기를 연결시켜, 예를 들면 제산기나 초월 함수 연산기 등의 보다 복잡한 연산기를 구성하고, PU로부터 이용할 수 있도록 함으로써, PU의 연산 성능을 하나의 PE의 그것보다도, 더 향상시키도록 고안하는 것이 가능하다.
다음으로, 본 발명의 제2 실시 형태에 대해 도면을 참조하여 상세하게 설명한다. 도 6은, 본 발명의 제2 실시 형태의 혼합 모드 병렬 프로세서 시스템 PS의 구성을 도시하는 블록도이다. 도 6을 참조하면, 본 발명의 제2 실시 형태의 혼합 모드 병렬 프로세서 시스템 PS는, 동일 하드웨어 구성의 PE1과 PE2를 구비한다. 또한, PE1은, 본 발명의 제1 실시 형태의 PE1과 마찬가지로 동작한다. PE1의 ISEL1의 출력은 PE2의 ISEL1의 입력으로 된다. PE2의 ISEL1은, 항상 PE1의 ISEL1로부터의 출력을 선택한다.
또한, PE2에서는, CTR1이, PE1의 ISEL1로부터의 출력인 명령 워드를 사용하여 동작하도록 제어를 행한다. 예를 들면, PE1, PE2의 CTR1에 클램프 단자를 설치하고, 1클램프인 경우에는 PE1로서 동작하고, 0클램프인 경우에는 PE2로서 동작하는 구성이 가능하다.
상기 구성에 의해, 본 발명의 제2 실시 형태는, 동일한 구성의 PE1, PE2를 제작하면 되므로, 본 발명의 제2 실시 형태는 원가 저감이 가능하게 된다고 하는 효과를 갖는다.
또한, 상기에서는, 본 발명의 제1 실시 형태, 본 발명의 제2 실시 형태를 마이크로프로그램에 의한 펌웨어 제어로 하는 것이 가능하다.
본 발명은, SIMD 동작과 MIMD 동작을 동적으로 절환 가능한 혼합 모드 병렬 프로세서를 저코스트로 실현하는 용도에 적용할 수 있다.
이상, 본 발명을 상기 실시예에 의거하여 설명하였지만, 본 발명은 상기 실시예의 구성에만 제한되는 것이 아니라, 본 발명의 범위 내에서 당업자이면 이룰 수 있는 각종 변형, 수정을 포함하는 것은 물론이다.

Claims (15)

  1. N개의 프로세싱 엘리먼트를 구비하고,
    SIMD 동작 시에는, N개의 상기 프로세싱 엘리먼트가 병렬 동작하고,
    MIMD 동작 시에는, N개의 상기 프로세싱 엘리먼트는, 각각이 S개의 프로세싱 엘리먼트를 포함하는 M(=N÷S)조(S, M은 2 이상의 자연수)의 프로세싱 유닛으로 그룹화되고, M조의 상기 프로세싱 유닛끼리 및 S개의 상기 프로세싱 엘리먼트끼리가 각각 병렬 동작하고,
    MIMD 동작 시에는, 상기 프로세싱 유닛의 메모리 자원의 일부가, 명령 캐시 메모리로서 동작하고, 상기 프로세싱 유닛의 범용 레지스터 자원이, 명령 캐시의 태그 저장용 영역으로서 동작하고,
    MIMD 동작 시에는, M조의 상기 프로세싱 유닛의 각각에서,
    S개의 상기 프로세싱 엘리먼트에 속하는 S개의 상기 메모리 자원 중 P개(P<S)가 명령 캐시 메모리, 나머지 S-P개의 메모리 자원이 데이터 메모리 혹은 데이터 캐시로서 동작하고,
    S개의 상기 프로세싱 엘리먼트에 각각 속하는 S세트의 상기 범용 레지스터 자원 중, 1세트가 그대로 대응하는 1개의 상기 프로세싱 유닛의 상기 범용 레지스터 자원으로서 동작하고, 남은 S-1세트 중 T세트(T<S-1), 또는 미리 정해진 일정수가, 명령 캐시의 태그 저장용 자원으로서 동작하고, 나머지는 데이터 캐시를 이용하는 경우에는 데이터 캐시의 태그 저장용 자원으로서 동작하는 것을 특징으로 하는 혼합 모드 병렬 프로세서 시스템.
  2. 제1항에 있어서,
    상기 프로세싱 유닛이, 명령 캐시 제어, 명령 시퀀스 제어를 행하는 하나의 제어 회로를 포함하는 것을 특징으로 하는 혼합 모드 병렬 프로세서 시스템.
  3. 삭제
  4. N개의 프로세싱 엘리먼트를 구비하고,
    SIMD 동작 시에는, N개의 상기 프로세싱 엘리먼트가 병렬 동작하고,
    MIMD 동작 시에는, N개의 상기 프로세싱 엘리먼트는, 각각이 S개의 프로세싱 엘리먼트를 포함하는 M(=N÷S)조(S, M은 2 이상의 자연수)의 프로세싱 유닛으로 그룹화되고, M조의 상기 프로세싱 유닛끼리 및 S개의 상기 프로세싱 엘리먼트끼리가 각각 병렬 동작하고,
    MIMD 동작 시에는, 상기 프로세싱 유닛의 메모리 자원의 일부가, 명령 캐시 메모리로서 동작하고, 상기 프로세싱 유닛의 범용 레지스터 자원이, 명령 캐시의 태그 저장용 영역으로서 동작하고,
    상기 프로세싱 유닛이, 명령 캐시 제어, 명령 시퀀스 제어를 행하는 하나의 제어 회로를 포함하고,
    전체를 제어하는 제어 프로세싱 엘리먼트를 구비하고,
    M조의 상기 프로세싱 유닛의 각각에서,
    S개의 상기 프로세싱 엘리먼트 중, MIMD 동작 시에 상기 명령 캐시 메모리로서 동작하는 메모리 자원을 갖는 1개의 상기 프로세싱 엘리먼트에 대응시켜,
    상기 제어 회로와,
    상기 제어 프로세싱 엘리먼트로부터의 명령과, 상기 명령 캐시 메모리로부터의 명령 중 어느 쪽인가를 선택하는 명령류 선택 셀렉터
    를 포함하고,
    MIMD 동작 시에는, S개의 상기 프로세싱 엘리먼트 중, 상기 명령 캐시 메모리를 포함하지 않는 나머지의 상기 프로세싱 엘리먼트는, 상기 명령류 선택 셀렉터로부터의 명령을 입력받아 실행하는 것을 특징으로 하는 혼합 모드 병렬 프로세서 시스템.
  5. N개의 프로세싱 엘리먼트를 구비하고,
    SIMD 동작 시에는, N개의 상기 프로세싱 엘리먼트가 병렬 동작하고,
    MIMD 동작 시에는, N개의 상기 프로세싱 엘리먼트는, 각각이 S개의 프로세싱 엘리먼트를 포함하는 M(=N÷S)조(S, M은 2 이상의 자연수)의 프로세싱 유닛으로 그룹화되고, M조의 상기 프로세싱 유닛끼리 및 S개의 상기 프로세싱 엘리먼트끼리가 각각 병렬 동작하고,
    MIMD 동작 시에는, 상기 프로세싱 유닛의 메모리 자원의 일부가, 명령 캐시 메모리로서 동작하고, 상기 프로세싱 유닛의 범용 레지스터 자원이, 명령 캐시의 태그 저장용 영역으로서 동작하고,
    상기 프로세싱 유닛이, 명령 캐시 제어, 명령 시퀀스 제어를 행하는 하나의 제어 회로를 포함하고,
    전체를 제어하는 제어 프로세싱 엘리먼트를 구비하고,
    M조의 상기 프로세싱 유닛의 각각에서,
    S개의 상기 프로세싱 엘리먼트의 각각이,
    상기 제어 회로와,
    명령류 선택 셀렉터
    를 갖고,
    MIMD 동작 시에는, S개의 상기 프로세싱 엘리먼트 중, 상기 명령 캐시 메모리를 포함하는 1개의 상기 프로세싱 엘리먼트의 상기 명령류 선택 셀렉터가, 상기 제어 프로세싱 엘리먼트로부터의 명령과, 상기 명령 캐시 메모리로부터의 명령 중 어느 쪽인가를 선택하고, 상기 명령 캐시 메모리를 포함하지 않는 나머지의 상기 프로세싱 엘리먼트는, 상기 명령 캐시 메모리를 포함하는 1개의 상기 프로세싱 엘리먼트의 상기 명령류 선택 셀렉터로부터의 명령을 입력받아 실행하는 것을 특징으로 하는 혼합 모드 병렬 프로세서 시스템.
  6. N개의 프로세싱 엘리먼트를 구비하고, MIMD 동작 시에는 각각 S개의 프로세싱 엘리먼트를 포함하는 M(=N÷S)조(S, M은 2 이상의 자연수)의 프로세싱 유닛으로 그룹화되는 혼합 모드 병렬 프로세서 시스템에서의 혼합 모드 병렬 프로세서 방법으로서,
    SIMD 동작 시에는, N개의 프로세싱 엘리먼트가 병렬 동작하는 수순과,
    MIMD 동작 시에는, M조의 상기 프로세싱 유닛끼리 및 S개의 상기 프로세싱 엘리먼트끼리가 각각 병렬 동작하는 수순
    을 포함하고,
    MIMD 동작 시에는, 상기 프로세싱 유닛의 메모리 자원의 일부가, 명령 캐시 메모리로서 동작하는 수순과,
    상기 프로세싱 유닛의 범용 레지스터 자원이, 명령 캐시의 태그 저장용 영역으로서 동작하는 수순
    을 포함하고,
    MIMD 동작 시에는, M조의 상기 프로세싱 유닛의 각각에서,
    S개의 상기 프로세싱 엘리먼트에 각각 속하는 S개의 상기 메모리 자원 중 P개(P<S)가, 명령 캐시 메모리, 나머지 S-P개의 메모리 자원이 데이터 메모리 혹은 데이터 캐시로서 동작하는 수순과,
    S개의 상기 프로세싱 엘리먼트에 각각 속하는 S세트의 상기 범용 레지스터 자원 중, 1세트가 그대로 상기 프로세싱 유닛의 상기 범용 레지스터 자원으로서 동작하는 수순과,
    데이터 캐시의 태그 저장용 자원으로서 동작하는 수순
    을 포함하는 것을 특징으로 하는 혼합 모드 병렬 프로세서 방법.
  7. 제6항에 있어서,
    상기 프로세싱 유닛의 1개의 제어 회로가, 명령 캐시 제어, 명령 시퀀스 제어를 행하는 수순을 포함하는 것을 특징으로 하는 혼합 모드 병렬 프로세서 방법.
  8. N개의 프로세싱 엘리먼트를 구비하고, MIMD 동작 시에는 각각 S개의 프로세싱 엘리먼트를 포함하는 M(=N÷S)조(S, M은 2 이상의 자연수)의 프로세싱 유닛으로 그룹화되는 혼합 모드 병렬 프로세서 시스템에서의 혼합 모드 병렬 프로세서 방법으로서,
    SIMD 동작 시에는, N개의 프로세싱 엘리먼트가 병렬 동작하는 수순과,
    MIMD 동작 시에는, M조의 상기 프로세싱 유닛끼리 및 S개의 상기 프로세싱 엘리먼트끼리가 각각 병렬 동작하는 수순
    을 포함하고,
    MIMD 동작 시에는, 상기 프로세싱 유닛의 메모리 자원의 일부가, 명령 캐시 메모리로서 동작하는 수순과,
    상기 프로세싱 유닛의 범용 레지스터 자원이, 명령 캐시의 태그 저장용 영역으로서 동작하는 수순
    을 포함하고,
    상기 프로세싱 유닛에서, 상기 명령 캐시 메모리를 포함하는 1개의 상기 프로세싱 엘리먼트의 명령류 선택 셀렉터가, 전체를 제어하는 제어 프로세싱 엘리먼트로부터의 명령과, 상기 명령 캐시 메모리로부터의 명령 중 어느 쪽인가를 선택하는 수순과,
    MIMD 동작 시에는, 상기 명령 캐시 메모리를 포함하지 않는 나머지의 상기 프로세싱 엘리먼트는, 상기 명령류 선택 셀렉터로부터의 명령을 입력받아 실행하는 수순
    을 포함하는 것을 특징으로 하는 혼합 모드 병렬 프로세서 방법.
  9. N개의 프로세싱 엘리먼트를 구비하고, MIMD 동작 시에는 각각 S개의 프로세싱 엘리먼트를 포함하는 M(=N÷S)조(S, M은 2 이상의 자연수)의 프로세싱 유닛으로 그룹화되는 혼합 모드 병렬 프로세서 시스템에서의 혼합 모드 병렬 프로세서 방법으로서,
    SIMD 동작 시에는, N개의 프로세싱 엘리먼트가 병렬 동작하는 수순과,
    MIMD 동작 시에는, M조의 상기 프로세싱 유닛끼리 및 S개의 상기 프로세싱 엘리먼트끼리가 각각 병렬 동작하는 수순
    을 포함하고,
    MIMD 동작 시에는, 상기 프로세싱 유닛의 메모리 자원의 일부가, 명령 캐시 메모리로서 동작하는 수순과,
    상기 프로세싱 유닛의 범용 레지스터 자원이, 명령 캐시의 태그 저장용 영역으로서 동작하는 수순
    을 포함하고,
    상기 프로세싱 유닛의 1개의 제어 회로가, 명령 캐시 제어, 명령 시퀀스 제어를 행하는 수순을 포함하고,
    상기 프로세싱 유닛에서, 상기 명령 캐시 메모리를 포함하는 1개의 상기 프로세싱 엘리먼트의 명령류 선택 셀렉터가, 전체를 제어하는 제어 프로세싱 엘리먼트로부터의 명령과, 상기 명령 캐시 메모리로부터의 명령 중 어느 쪽인가를 선택하는 수순과,
    MIMD 동작 시에는, 상기 명령 캐시 메모리를 포함하지 않는 나머지의 상기 프로세싱 엘리먼트는, 상기 명령류 선택 셀렉터로부터의 명령을 입력받아 실행하는 수순
    을 포함하는 것을 특징으로 하는 혼합 모드 병렬 프로세서 방법.
  10. N개의 프로세싱 엘리먼트를 구비하고, MIMD 동작 시에는 각각 S개의 프로세싱 엘리먼트를 포함하는 M(=N÷S)조(S, M은 2 이상의 자연수)의 프로세싱 유닛으로 그룹화되는 혼합 모드 병렬 프로세서 시스템에서의 혼합 모드 병렬 프로세서 방법으로서,
    SIMD 동작 시에는, N개의 프로세싱 엘리먼트가 병렬 동작하는 수순과,
    MIMD 동작 시에는, M조의 상기 프로세싱 유닛끼리 및 S개의 상기 프로세싱 엘리먼트끼리가 각각 병렬 동작하는 수순
    을 포함하고,
    MIMD 동작 시에는, 상기 프로세싱 유닛의 메모리 자원의 일부가, 명령 캐시 메모리로서 동작하는 수순과,
    상기 프로세싱 유닛의 범용 레지스터 자원이, 명령 캐시의 태그 저장용 영역으로서 동작하는 수순
    을 포함하고,
    MIMD 동작 시에는, 상기 프로세싱 유닛에서, 상기 명령 캐시 메모리를 포함하는 1개의 상기 프로세싱 엘리먼트의 명령류 선택 셀렉터가, 전체를 제어하는 제어 프로세싱 엘리먼트로부터의 명령과 상기 명령 캐시 메모리로부터의 명령 중 어느 쪽인가를 선택하는 수순과,
    상기 명령 캐시 메모리를 포함하지 않는 나머지의 상기 프로세싱 엘리먼트가, 상기 명령 캐시 메모리를 포함하는 1개의 상기 프로세싱 엘리먼트의 상기 명령류 선택 셀렉터로부터의 명령을 입력받아 실행하는 수순
    을 포함하는 것을 특징으로 하는 혼합 모드 병렬 프로세서 방법.
  11. N개의 프로세싱 엘리먼트를 구비하고, MIMD 동작 시에는 각각 S개의 프로세싱 엘리먼트를 포함하는 M(=N÷S)조(S, M은 2 이상의 자연수)의 프로세싱 유닛으로 그룹화되는 혼합 모드 병렬 프로세서 시스템에서의 혼합 모드 병렬 프로세서 프로그램이 기록되어 있는 컴퓨터 판독가능 기록매체로서,
    상기 혼합 모드 병렬 프로세서 시스템에, SIMD 동작 시에는 N개의 상기 프로세싱 엘리먼트가 병렬 동작하는 수순과,
    MIMD 동작 시에는 M조의 상기 프로세싱 유닛끼리 및 S개의 상기 프로세싱 엘리먼트끼리가 각각 병렬 동작하는 수순을 실행시키고,
    MIMD 동작 시에는, 상기 프로세싱 유닛의 메모리 자원의 일부에, 명령 캐시 메모리로서 동작하는 수순과,
    상기 프로세싱 유닛의 범용 레지스터 자원에, 명령 캐시의 태그 저장용 영역으로서 동작하는 수순을 실행시키고,
    MIMD 동작 시에는, M조의 상기 프로세싱 유닛에서, S개의 상기 프로세싱 엘리먼트에 각각 속하는 S개의 상기 메모리 자원 중 P개(P<S)가 명령 캐시 메모리, 나머지 S-P개의 메모리 자원이 데이터 메모리 혹은 데이터 캐시로서 동작하는 수순과,
    S개의 상기 프로세싱 엘리먼트에 각각 속하는 S세트의 상기 범용 레지스터 자원 중, 1세트가 그대로 상기 프로세싱 유닛의 상기 범용 레지스터 자원으로서 동작하는 수순과,
    남은 S-1세트 중 T세트(T<S-1), 또는 미리 정해진 일정수가 명령 캐시의 태그 저장용 자원으로서 동작하고, 나머지는 데이터 캐시를 이용하는 경우에는 데이터 캐시의 태그 저장용 자원으로서 동작하는 수순
    을 상기 혼합 모드 병렬 프로세서 시스템에 실행시키는 것을 특징으로 하는 혼합 모드 병렬 프로세서 프로그램이 기록되어 있는 컴퓨터 판독가능 기록매체.
  12. 제11항에 있어서,
    상기 프로세싱 유닛의 1개의 제어 회로에, 명령 캐시 제어, 명령 시퀀스 제어를 행하는 수순을 실행시키는 것을 특징으로 하는 혼합 모드 병렬 프로세서 프로그램이 기록되어 있는 컴퓨터 판독가능 기록매체.
  13. 삭제
  14. 각각이, 복수의 프로세싱 엘리먼트를 포함하는 복수의 프로세싱 유닛을 갖고,
    상기 프로세싱 유닛은, 상기 프로세싱 유닛에 속하는 상기 복수의 프로세싱 엘리먼트에 대응시켜 적어도 1개의 명령류 선택 셀렉터와,
    명령 캐시 제어, 명령 시퀀스 제어를 행하는 적어도 하나의 제어 회로
    를 구비하고,
    MIMD 모드에서의 동작 시,
    상기 프로세싱 유닛에서,
    상기 제어 회로는, 적어도 1개의 프로세싱 엘리먼트의 메모리와 레지스터 자원을 각각 상기 프로세싱 유닛의 명령 캐시와 명령 캐시의 태그 저장용 영역으로서 이용하고, 상기 1개의 프로세싱 엘리먼트는 MIMD 명령 발행에 필요한 하드웨어 요소로서 기능하고,
    상기 명령류 선택 셀렉터는, 상기 제어 회로로부터의 제어에 기초하여, 상기 1개의 프로세싱 엘리먼트의 상기 메모리를 명령 캐시로 하고, 그 명령 캐시로부터 읽어내어진 명령을 선택하고,
    상기 명령류 선택 셀렉터에서 선택된 명령은, 상기 프로세싱 유닛 내의 나머지의 프로세싱 엘리먼트 중 적어도 1개에 공급되고, 상기 나머지의 프로세싱 엘리먼트 중 적어도 1개는 명령 지정에 의한 연산 처리를 행하는 데이터 패스로서 기능하고,
    SIMD 모드에서의 동작 시에는,
    상기 프로세싱 유닛에서,
    상기 명령류 선택 셀렉터는, 상기 제어 회로로부터의 제어에 기초하여, 제어 프로세싱 엘리먼트로부터의 명령을 선택하고, 복수의 프로세싱 엘리먼트에는, 동일한 명령이 주어져, 병렬 처리가 행해지는 것을 특징으로 하는 혼합 모드 병렬 프로세서 시스템.
  15. 제14항에 있어서,
    상기 프로세싱 유닛이,
    적어도 제1, 제2 프로세싱 엘리먼트를 구비하고,
    상기 제1, 제2 프로세싱 엘리먼트는,
    명령 디코더와,
    연산 유닛과,
    써넣기 읽어내기 가능한 메모리와,
    각각이 상기 연산 유닛의 출력과 상기 메모리의 출력 중 한쪽을 선택하는 셀렉터군과,
    상기 셀렉터군의 출력을 받는 레지스터군과,
    상기 레지스터군의 출력 중으로부터 상기 연산 유닛에 공급하는 출력을 선택하는 셀렉터
    를 각각 구비하고,
    상기 제1 프로세싱 엘리먼트에 대응시켜,
    상기 명령류 선택 셀렉터와,
    상기 제어 회로
    를 구비하고,
    상기 제어 회로는, 상기 제어 프로세싱 엘리먼트에 의해 설정되고, SIMD와 MIMD 중 어느 모드에서 동작할지를 정하는 모드 레지스터와, 프로그램 카운터를 포함하고,
    MIMD 모드에서의 동작 시,
    상기 제1 프로세싱 엘리먼트의 상기 메모리와 상기 레지스터군의 일부는, 명령 캐시와 명령 캐시의 태그 저장 영역으로서 기능하고,
    상기 명령류 선택 셀렉터는, 상기 제어 회로의 제어에 기초하여, 상기 제1 프로세싱 엘리먼트의 상기 메모리로부터 읽어내어진 명령을 선택하고,
    상기 제1, 제2 프로세싱 엘리먼트의 상기 명령 디코더는, 각각 상기 명령류 선택 셀렉터에서 선택된 명령을 입력받아 그 명령을 디코드하여, 명령 실행을 위한 제어 신호를 생성하고,
    상기 제2 프로세싱 엘리먼트는, 상기 제2 프로세싱 엘리먼트의 상기 명령 디코더에서 생성된 제어 신호에 따라서 레지스터군, 연산 유닛, 메모리를 제어하여 명령을 실행하고,
    상기 제어 회로는 어드레스 정보를 생성하고, 그 어드레스 정보의 태그 필드와 상기 제1 프로세싱 엘리먼트의 상기 레지스터군의 1부의 태그 정보를 비교하여 명령 캐시의 히트 미스 판정을 행하고, 명령 캐시의 히트 시에는, 상기 제1 프로세 싱 엘리먼트의 상기 메모리로부터 명령의 읽어내기를 행하고, 명령 캐시 미스 시에는, 상기 제어 프로세싱 엘리먼트에 요구하여 얻은 명령을 상기 제1 프로세싱 엘리먼트의 상기 메모리에 써넣고, 그 메모리로부터 명령의 읽어내기를 행하고,
    SIMD 모드에서의 동작 시, 상기 명령류 선택 셀렉터는, 상기 제어 회로의 제어에 기초하여, 상기 제어 프로세싱 엘리먼트로부터 방송되는 명령을 선택하고,
    상기 제1, 제2 프로세싱 엘리먼트는, 동일한 명령을 디코드하여 연산 처리를 행하는 것을 특징으로 하는 혼합 모드 병렬 프로세서 시스템.
KR1020087018618A 2006-08-23 2007-08-09 혼합 모드 병렬 프로세서 시스템 및 방법과 혼합 모드 병렬 프로세서 프로그램이 기록되어 있는 컴퓨터 판독가능 기록매체 KR100990526B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006225963 2006-08-23
JPJP-P-2006-00225963 2006-08-23

Publications (2)

Publication Number Publication Date
KR20080083342A KR20080083342A (ko) 2008-09-17
KR100990526B1 true KR100990526B1 (ko) 2010-10-29

Family

ID=39106662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087018618A KR100990526B1 (ko) 2006-08-23 2007-08-09 혼합 모드 병렬 프로세서 시스템 및 방법과 혼합 모드 병렬 프로세서 프로그램이 기록되어 있는 컴퓨터 판독가능 기록매체

Country Status (6)

Country Link
US (3) US7853775B2 (ko)
EP (1) EP2056212B1 (ko)
JP (1) JP4424443B2 (ko)
KR (1) KR100990526B1 (ko)
CN (1) CN101379481A (ko)
WO (1) WO2008023576A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101359717B1 (ko) 2010-11-08 2014-02-07 한국전자통신연구원 에너지 타일 프로세서

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7474488B2 (en) * 2005-08-30 2009-01-06 International Business Machines Corporation Magnetic head, tape drive system, and method
US7979674B2 (en) * 2007-05-16 2011-07-12 International Business Machines Corporation Re-executing launcher program upon termination of launched programs in MIMD mode booted SIMD partitions
US7814295B2 (en) * 2007-05-18 2010-10-12 International Business Machines Corporation Moving processing operations from one MIMD booted SIMD partition to another to enlarge a SIMD partition
US7831803B2 (en) * 2007-07-19 2010-11-09 International Business Machines Corporation Executing multiple instructions multiple date (‘MIMD’) programs on a single instruction multiple data (‘SIMD’) machine
US7831802B2 (en) * 2007-07-19 2010-11-09 International Business Machines Corporation Executing Multiple Instructions Multiple Data (‘MIMD’) programs on a Single Instruction Multiple Data (‘SIMD’) machine
KR100960148B1 (ko) * 2008-05-07 2010-05-27 한국전자통신연구원 데이터 프로세싱 회로
US8135941B2 (en) * 2008-09-19 2012-03-13 International Business Machines Corporation Vector morphing mechanism for multiple processor cores
WO2010122746A1 (ja) * 2009-04-22 2010-10-28 パナソニック株式会社 情報処理装置
GB0907559D0 (en) * 2009-05-01 2009-06-10 Optos Plc Improvements relating to processing unit instruction sets
US9535876B2 (en) 2009-06-04 2017-01-03 Micron Technology, Inc. Conditional operation in an internal processor of a memory device
JP5495707B2 (ja) * 2009-10-16 2014-05-21 三菱電機株式会社 並列信号処理装置
CN102200961B (zh) * 2011-05-27 2013-05-22 清华大学 一种动态可重构处理器内子单元的扩展方法
JP2012252374A (ja) 2011-05-31 2012-12-20 Renesas Electronics Corp 情報処理装置
WO2013106210A1 (en) 2012-01-10 2013-07-18 Intel Corporation Electronic apparatus having parallel memory banks
KR101603752B1 (ko) 2013-01-28 2016-03-28 삼성전자주식회사 멀티 모드 지원 프로세서 및 그 프로세서에서 멀티 모드를 지원하는 방법
GB2516995B (en) * 2013-12-18 2015-08-19 Imagination Tech Ltd Task execution in a SIMD processing unit
JP2015176245A (ja) 2014-03-13 2015-10-05 株式会社東芝 情報処理装置及びデータ構造
JP6396715B2 (ja) * 2014-08-07 2018-09-26 ルネサスエレクトロニクス株式会社 データ処理装置
JP2016057763A (ja) 2014-09-08 2016-04-21 株式会社東芝 キャッシュ装置、及びプロセッサ
US9928076B2 (en) 2014-09-26 2018-03-27 Intel Corporation Method and apparatus for unstructured control flow for SIMD execution engine
RU2571376C1 (ru) * 2014-11-21 2015-12-20 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ и устройство для параллельной обработки цифровой информации в вычислительной системе
US9684602B2 (en) 2015-03-11 2017-06-20 Kabushiki Kaisha Toshiba Memory access control device, cache memory and semiconductor device
CN115280297A (zh) * 2019-12-30 2022-11-01 星盟国际有限公司 用于可配置并行计算的处理器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100330604B1 (ko) 1993-11-19 2002-08-24 가부시끼가이샤 히다치 세이사꾸쇼 메모리어레이를사용한병렬연산장치
US20040133765A1 (en) 2002-10-16 2004-07-08 Takeshi Tanaka Parallel execution processor and instruction assigning method

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5916071A (ja) 1982-07-19 1984-01-27 Toshiba Corp 並列処理システム
US4891787A (en) * 1986-12-17 1990-01-02 Massachusetts Institute Of Technology Parallel processing system with processor array having SIMD/MIMD instruction processing
US5197140A (en) * 1989-11-17 1993-03-23 Texas Instruments Incorporated Sliced addressing multi-processor and method of operation
US5239654A (en) * 1989-11-17 1993-08-24 Texas Instruments Incorporated Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
JP2836875B2 (ja) 1989-12-27 1998-12-14 株式会社クラレ イミド化アクリル樹脂の製造方法
JPH04291659A (ja) * 1991-03-20 1992-10-15 Hitachi Ltd 並列コンピュータシステムおよびその動作方法
US5361367A (en) * 1991-06-10 1994-11-01 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Highly parallel reconfigurable computer architecture for robotic computation having plural processor cells each having right and left ensembles of plural processors
JPH0520283A (ja) 1991-07-11 1993-01-29 Mitsubishi Electric Corp 並列データ処理装置
CA2073516A1 (en) 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
JP2642039B2 (ja) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
JPH0668053A (ja) 1992-08-20 1994-03-11 Toshiba Corp 並列計算機
US5475850A (en) * 1993-06-21 1995-12-12 Intel Corporation Multistate microprocessor bus arbitration signals
US5420809A (en) * 1993-11-30 1995-05-30 Texas Instruments Incorporated Method of operating a data processing apparatus to compute correlation
WO1995028686A1 (en) * 1994-04-15 1995-10-26 David Sarnoff Research Center, Inc. Parallel processing computer containing a multiple instruction stream processing architecture
US5680597A (en) * 1995-01-26 1997-10-21 International Business Machines Corporation System with flexible local control for modifying same instruction partially in different processor of a SIMD computer system to execute dissimilar sequences of instructions
US6766437B1 (en) * 2000-02-28 2004-07-20 International Business Machines Corporation Composite uniprocessor
JP4184224B2 (ja) * 2002-10-16 2008-11-19 松下電器産業株式会社 並列実行プロセッサ、命令割当方法
JP4291659B2 (ja) 2003-09-30 2009-07-08 パナソニック株式会社 送信装置及び送信方法
US20070083870A1 (en) * 2005-07-29 2007-04-12 Tomochika Kanakogi Methods and apparatus for task sharing among a plurality of processors
US7730280B2 (en) * 2006-06-15 2010-06-01 Vicore Technologies, Inc. Methods and apparatus for independent processor node operations in a SIMD array processor
JP4232838B2 (ja) * 2007-03-29 2009-03-04 日本電気株式会社 再構成可能なsimd型プロセッサ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100330604B1 (ko) 1993-11-19 2002-08-24 가부시끼가이샤 히다치 세이사꾸쇼 메모리어레이를사용한병렬연산장치
US20040133765A1 (en) 2002-10-16 2004-07-08 Takeshi Tanaka Parallel execution processor and instruction assigning method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101359717B1 (ko) 2010-11-08 2014-02-07 한국전자통신연구원 에너지 타일 프로세서

Also Published As

Publication number Publication date
EP2056212A4 (en) 2011-07-27
US20110047348A1 (en) 2011-02-24
US20110138151A1 (en) 2011-06-09
JP4424443B2 (ja) 2010-03-03
US7853775B2 (en) 2010-12-14
US8051273B2 (en) 2011-11-01
US20090049275A1 (en) 2009-02-19
JPWO2008023576A1 (ja) 2010-01-07
EP2056212A1 (en) 2009-05-06
KR20080083342A (ko) 2008-09-17
CN101379481A (zh) 2009-03-04
WO2008023576A1 (fr) 2008-02-28
EP2056212B1 (en) 2013-04-10
US8112613B2 (en) 2012-02-07

Similar Documents

Publication Publication Date Title
KR100990526B1 (ko) 혼합 모드 병렬 프로세서 시스템 및 방법과 혼합 모드 병렬 프로세서 프로그램이 기록되어 있는 컴퓨터 판독가능 기록매체
US5872987A (en) Massively parallel computer including auxiliary vector processor
US7941648B2 (en) Methods and apparatus for dynamic instruction controlled reconfigurable register file
US5233694A (en) Pipelined data processor capable of performing instruction fetch stages of a plurality of instructions simultaneously
JP4156794B2 (ja) iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置
JP3101560B2 (ja) プロセッサ
JPH08249293A (ja) 代理命令を用いる並列処理システム及び方法
US10599586B2 (en) Information processing apparatus, memory control circuitry, and control method of information processing apparatus
US10496540B2 (en) Processor and control method of processor
US10437594B2 (en) Apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank
KR19990082423A (ko) 멀티포트메모리 및 그것을 액세스하는 데이타처리장치
US11314516B2 (en) Issuing instructions based on resource conflict constraints in microprocessor
JPH1165844A (ja) パイプラインバイパス機能を有するデータ処理装置
US20060095746A1 (en) Branch predictor, processor and branch prediction method
US11327768B2 (en) Arithmetic processing apparatus and memory apparatus
US5752271A (en) Method and apparatus for using double precision addressable registers for single precision data
US6654870B1 (en) Methods and apparatus for establishing port priority functions in a VLIW processor
US6704855B1 (en) Method and apparatus for reducing encoding needs and ports to shared resources in a processor
JPH08263289A (ja) 複数命令流パイプライン計算機
JPH06149563A (ja) データ処理装置
JP2001184339A (ja) ベクトル演算装置
JPH04160654A (ja) 主記憶装置書込方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20131001

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141002

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150917

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170920

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee