KR100722770B1 - 조건실행을 지원하는 재구성 가능한 프로세싱 요소의배열구조 - Google Patents
조건실행을 지원하는 재구성 가능한 프로세싱 요소의배열구조 Download PDFInfo
- Publication number
- KR100722770B1 KR100722770B1 KR1020050008689A KR20050008689A KR100722770B1 KR 100722770 B1 KR100722770 B1 KR 100722770B1 KR 1020050008689 A KR1020050008689 A KR 1020050008689A KR 20050008689 A KR20050008689 A KR 20050008689A KR 100722770 B1 KR100722770 B1 KR 100722770B1
- Authority
- KR
- South Korea
- Prior art keywords
- processing elements
- bus
- execution
- condition
- processing element
- Prior art date
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B42—BOOKBINDING; ALBUMS; FILES; SPECIAL PRINTED MATTER
- B42D—BOOKS; BOOK COVERS; LOOSE LEAVES; PRINTED MATTER CHARACTERISED BY IDENTIFICATION OR SECURITY FEATURES; PRINTED MATTER OF SPECIAL FORMAT OR STYLE NOT OTHERWISE PROVIDED FOR; DEVICES FOR USE THEREWITH AND NOT OTHERWISE PROVIDED FOR; MOVABLE-STRIP WRITING OR READING APPARATUS
- B42D5/00—Sheets united without binding to form pads or blocks
- B42D5/003—Note-pads
- B42D5/005—Supports for note-pads
- B42D5/006—Supports for note-pads combined with auxiliary devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B43—WRITING OR DRAWING IMPLEMENTS; BUREAU ACCESSORIES
- B43K—IMPLEMENTS FOR WRITING OR DRAWING
- B43K23/00—Holders or connectors for writing implements; Means for protecting the writing-points
- B43K23/001—Supporting means
- B43K23/002—Supporting means with a fixed base
Landscapes
- Advance Control (AREA)
Abstract
본 발명은 조건실행(predicated execution)을 지원할 수 있는 재구성 가능한 프로세싱 요소의 배열구조에 관한 것이다. 더욱 상세하게는, 프로세서 내의 각 프로세싱 요소에서 조건 연산을 수행한 후, 조건실행 버스(predicated bus)를 통해 조건 정보를 교환하는 방식으로 루프(loop)내부의 조건 분기 실행을 지원하는 재구성 가능한 프로세싱 요소의 배열구조에 관한 것이다.
본 발명에서는 프로세서 내의 각 프로세싱 요소를, 조건정보의 전송 기능을 수행하는 조건실행 버스를 통해 상호 연결함으로써, 공유 레지스터 파일 없이도 조건실행을 지원하는 것이 가능하다. 본 발명에 의한 조건실행을 지원하는 프로세싱 요소의 배열 구성에 의해, 프로세서의 처리 속도 향상 및 프로세서의 전체 크기를 줄이는 것이 가능하다.
프로세싱 요소, ALU, 배열, 재구성, 조건실행, 연결구조
Description
도 1은 종래 프로세싱 요소의 내부 구성을 나타낸 것이다.
도 2는 본 발명에 따라 확장된 내부 구성을 갖는 프로세싱 요소를 나타낸 것이다.
도 3은 도 2의 프로세싱 요소에서 지원하는 연산의 일실시예를 나타낸 표이다.
도 4는 도 2의 프로세싱 요소를 통해 조건실행을 지원하는 구체적인 일실시예를 나타낸 것이다.
도 5는 본 발명에 따라 조건 정보를 상호 전송하기 위해 광역버스(Global Bus) 방식으로 연결된 프로세싱 요소의 배열구조를 나타낸 것이다.
도 6은 본 발명에 따라 조건 정보를 상호 전송하기 위해 NN(Nearest Neighbor) 방식으로 연결된 프로세싱 요소의 배열구조를 나타낸 것이다.
도 7은 본 발명에 따라 조건 정보를 상호 전송하기 위해 칼럼 버스(column bus) 방식으로 연결된 프로세싱 요소의 배열구조를 나타낸 것이다.
도 8은 본 발명에 따라 조건 정보를 상호 전송하기 위해 하프 칼럼 버스 (half column bus) 방식으로 연결된 프로세싱 요소의 배열구조를 나타낸 것이다.
도 9는 도 7에 도시된 칼럼 버스 방식에서 입력신호 및 출력신호를 분리하여 표현한 것이다.
본 발명은 조건실행(predicated execution)을 지원할 수 있는 재구성 가능한 프로세싱 요소의 배열구조에 관한 것이다. 더욱 상세하게는, 프로세서 내의 각 프로세싱 요소에서 조건 연산을 수행한 후, 조건실행 버스(predicated bus)를 통해 조건 정보를 교환하는 방식으로 루프(loop)내부의 조건 분기 실행을 지원하는 재구성 가능한 프로세싱 요소의 배열구조에 관한 것이다.
마이크로 프로세서의 처리속도를 향상시키기 위한 방법으로서, 명령 수준 병렬성(Instruction-Level Parallelism; 이하 “ILP”라 한다.)을 이용하여 다수의 명령을 한 싸이클에 실행시키는 방법이 이용되고 있다.
이와 같이 한 싸이클에 다중 명령을 이슈(issue)하여 명령을 병렬로 실행하는 대표적인 기법으로는, 수행되는 명령의 수를 줄이는 VLIW(Very Long Instruction Word)와, 명령당 평균 싸이클을 줄이는 슈퍼스칼라 등이 있다.
이러한 슈퍼스칼라와 VLIW프로세서들은, 이용가능한 명령 수준 병렬성이 프 로그램 내에 충분히 존재한다면, 예상 실행(speculative execution)이나 명령 윈도우를 사용하여 성능향상을 얻을 수 있다. 그러나 이용가능한 명령 수준 병렬성이 부족한 경우에는 프로세서들의 잠재적인 성능에 큰 타격을 미친다.
명령 수준 병렬성의 추출을 제한하는 요인으로는, 프로그램 내에서 명령 상호간의 데이터종속(data dependency), 분기명령에 의한 제어종속(control dependency), 자원충돌(resource conflict) 등이 있는데, 그 중에서도 대표적인 것이 분기명령(branch instruction)이다. 분기명령은 기본 블록(basic block)내에서 명령 수준 병렬성의 양을 제한한다. 또한 조건 분기명령인 경우에는 조건을 판정하는 동안 처리시간이 지연되어 지속적인 파이프라인 처리를 방해하는 요인으로 작용한다.
따라서 분기명령에 기인한 성능 제한을 극복하려는 많은 연구가 진행되고 있는데, 그 중의 하나로서, 조건실행(predicated execution) 방법이 있다. 이 방법은, 명령의 조건으로 참조되는 2진 피연산자(operand)의 값을 토대로 명령의 조건적 실행 여부를 참조하여 분기명령을 제거하는 기법이다.
이러한 조건실행에 있어서의 조건(predicate)은, 예컨대 조건 분기(conditional branch)와 같은 흐름 제어 명령(flow control instruction)의 제어정보(control information)를 표현하고, 그에 뒤따르는 명령들(the following instructions)을 조건부로 실행하기 위해 사용되는 이진 변수(Boolean variable)에 해당하는 것이다. 마이크로 프로세서 상에서 위와 같은 조건실행을 지원하기 위해서는, 프로세서의 명령어 설정 구성이 다음과 같이 수정되어야 한다.
첫째, 원래의 비조건부 명령어들(non-predicated instructions)이 조건부 명령어들(predicated instructions)로 대체되어야 한다. 조건부 명령어는, 원래의 비조건부 명령어와 동일한 작동을 수행한다. 그러나, 조건부 명령어는, 만약 그 관련된 조건 변수(predicate variable)가 그 실행시에 거짓(false)으로 평가되면 그것은 해당 명령어들을 수행하지 않는다.
예컨대, 조건실행에서는, 조건실행 피연산자의 값을 평가하여, 만약 해당 조건이 참(true)이면 그 명령을 실행하고, 그렇지 않으면(false) 그 명령을 NOP(no-operation)로 처리한다.
상기한 조건실행의 일예로서, 다음과 같은 조건명령을 고려한다.
SUB dst, src, opr IF p_cond
위 명령에서 만약 p_cond의 조건이 참이면 src에서 opr을 뺀 결과를 dst에 저장하고 만약 p_cond가 거짓이면 SUB 명령은 NOP로 처리되어 프로그램 실행에 아무 영향을 주지 않는다. 즉 조건 실행은 조건 분기(conditional branch)를 이용하지 않고도 조건적으로 실행되는 프로그램의 구조를 표현할 수 있으며 올바른 결과만이 해당 명령어들을 실행시킬 수 있다.
둘째, 마이크로 프로세서 상에서 위와 같은 조건실행을 지원하기 위해서는, 조건 정의 명령어들(predicate defining instructions)이 추가되어야 한다. 조건 정의 명령어들의 역할은, 그 조건 변수들을 적절한 이진 변수들로 설정함으로써, 그 조건 변수에 뒤따르는 명령어들이 올바르게 수행되도록 하는 것이다.
상기한 바와 같은 종래의 조건실행 방법은, 모든 명령어가 조건화 될 수 있 고, 또한 하나의 분리된 레지스터 파일(separate predicate register file)이 존재하는 프로세싱 요소를 가질 것을 필요로 한다.
도 1은 종래 재구성 가능한 프로세싱 요소(PE; Processing Element)의 내부 구성을 나타낸 것이다. 도시된 바와 같이, 종래 재구성 가능한 프로세싱 요소(10)는 산술논리장치(2), 멀티플렉서(3,4), 출력 레지스터(6), 레지스터 파일(8)을 포함하여 구성된다.
각각의 멀티플렉서(3,4)는 이웃하는 프로세싱 요소 또는 메모리 버스로부터 데이터를 입력받아서 그 중 하나의 피연산자를 선택하여 산술논리장치(2)로 전송한다. 산술논리장치(2)의 연산 결과값은 각각 출력 레지스터(6)와 레지스터 파일(8)로 전송된다. 상기 출력 레지스터(6)는 상기 연산 결과값을 이웃하는 프로세싱 요소 또는 메모리 버스에 인가하고, 상기 레지스터 파일(8)은 상기 연산 결과값을 멀티플렉서(4)에 인가함으로써 피드백 데이터로서 활용한다.
도 1의 프로세싱 요소(10)에서, 상기 레지스터 파일(8)은 제어흐름정보를 조건 정의 명령들(predicate defining instructions)에서부터 조건 명령들(predicated instructions)로 패스시키기 위한 매개체 역할을 함으로써 조건 실행을 지원한다.
이와 같은 레지스터 파일(8)은, 조건실행을 지원하는 전통적인 구성을 갖는 프로세서 내에서, 모든 산술논리장치들에 의해 공유되는 데, 예컨대, 모포시스(Morposys) 프로세서의 경우에는 일반적으로 많은 수의 프로세싱 요소를 가지기 때문에(64개), 하나의 레지스터 파일을 공유할지라도 이를 위해서는 아주 많은 수의 포트들을 요구한다.
또는, 모든 프로세싱 요소들이 레지스터 파일에 접근할 수 있도록, 연결 구조와 조합(combination)되어 사용되어져야 하는 데, 이 역시 전체 배열 구조를 복잡하게 하는 문제점이 있다. 그러므로 배열 구조에서 레지스터 파일을 공유할 경우 전체적인 시스템의 복잡도가 증가하고 면적 및 지연시간 측면에서 효율적이지 못하게 된다.
즉, 도 1의 프로세싱 요소(10)들로 구성된 환경에서 조건실행을 지원하기 위해서는 컴파일러 등을 새로 제작해야 하는 등 전체적인 프로세서의 구성을 새로이 제작해야 한다.
그러나, 프로세서의 이러한 근본적인 변화(radical change)는, 그 설계에 있어서 설계자의 많은 노력과 그에 따른 비용상승을 가져온다는 단점이 있다. 따라서 위와 같은 프로세서의 전체적인 구성 변경 대신에 프로세서의 부분적인 변경만으로 조건실행을 지원할 수 있는 방법이 요청되고 있는 실정이다.
따라서 본 발명은, 레지스터 파일을 공유하는 대신, 프로세싱 요소들 간에 조건 정보를 서로 전달할 수 있는 버스를 형성함으로써 효율적인 조건실행을 지원할 수 있는 프로세싱 요소들의 배열 구조를 제공하는 것을 목적으로 한다.
본 발명의 다른 목적은, 상기 버스와 연결되어 조건 실행을 지원할 수 있도록 확장된 구성을 갖는 프로세싱 요소를 제공하는 것이다.
본 발명의 다른 목적은, 조건실행을 지원하기 위한 각 프로세싱 요소의 버스 연결방식에 있어서 다양한 연결방식을 각각의 작업환경에 적합하게 사용될 수 있는 프로세싱 요소들의 배열구조를 제공하는 것이다.
본 발명은 조건실행을 지원하는 프로세싱 요소 및 그 배열구조를 프로세서(processor)에 구현함으로써, 처리속도가 향상되고 보다 작은 크기를 갖는 프로세서를 제공하는 것을 또 다른 목적으로 한다.
상기한 목적을 달성하기 위해 본 발명에서는, 재구성 가능한 프로세싱 요소들과; 상기 프로세싱 요소가 조건정보를 상호 송수신할 수 있도록 상기 프로세싱 요소를 연결시키는 조건실행 버스를 포함하되, 상기 프로세싱 요소는, 상기 조건실행 버스에 의해 연결된 다른 프로세싱 요소로부터 조건정보를 수신하고, 상기 조건정보에 따라 명령실행여부를 결정하기 위한 조건의 만족 여부를 판단하며, 상기 판단 결과값을 상기 조건실행 버스를 통해 다른 프로세싱 요소로 전송하는 산술논리장치(ALU)를 포함하는 것을 특징으로 하는 재구성 가능한 프로세싱 요소의 배열구조를 제공한다.
이하 첨부도면을 참조하여 본 발명에 따른 프로세싱 요소의 배열구조에 대해 상세히 설명한다. 도 2는 본 발명에 따라 확장된 구성을 갖는 프로세싱 요소를 나타낸 것이다.
도시된 바와 같이, 본 발명에 따른 프로세싱 요소(20)는, 이웃하는 프로세싱 요소들 또는 메모리버스로부터 수신하는 다수의 데이터 중에서 어느 하나를 선택하여 산술논리장치(12)에 제공하는 멀티플렉서(13,14), 산술논리장치의 연산결과값을 임시로 저장하였다가 이웃하는 프로세싱 요소 및/또는 메모리 버스에 기록(write)하는 출력레지스터(16), 산술논리장치의 연산결과값을 임시로 저장하였다가 상기 멀티플렉서(14)에 피드백하는 레지스터 파일(18)을 비롯하여, 산술논리장치(12), 조건정보를 선택하는 멀티플렉서(22), 조건 정보의 동기화 전송을 위한 레지스터(15), 상기 출력레지스터(16)에 저장된 값을 메모리 버스에 기록할 것인지의 여부를 결정하기 위한 AND 연산기(17)를 포함한다.
도 2의 프로세싱 요소(100)의 산술논리장치(12)는 조건정보를 송수신하는 조건실행 버스와 연결된다. 즉, 상기 산술논리장치(12)는 조건실행 버스로부터 조건정보를 수신하거나, 조건 만족 여부를 판단한 결과를 다른 프로세싱 요소에서 조건정보로서 활용할 수 있도록 조건실행 버스를 통해 전송한다.
상기 산술논리장치(12)는 조건정보와 관련된 하나의 신호(c)를 입력받고, 두 개의 신호(t,w)를 출력하도록 구성할 수 있다. 입력신호 c는 조건실행 버스를 통해 다른 프로세싱 요소로부터 전송되는 조건정보이다. 출력신호 t는 상기 산술논리장치(12)가 주어진 조건의 만족 여부를 판단한 결과값으로서, 상기 조건실행 버스에 의해 연결된 다른 프로세싱 요소에 전송되어 또 다른 조건정보로서 활용된다.
또 다른 출력신호 w는, 상기 입력신호 c와 동일한 값을 갖도록 구성할 수 있다. 출력신호 w는, 상기 프로세싱 요소 내의 구성캐시(configuration cache)(도시 하지 않음)에서 출력하는 메모리 라이트 플랙 신호(memory write flag signal)(9)와 함께 AND연산기(17)의 피연산자로서 입력된다. 상기 AND연산기(17)의 연산결과 값은, 상기 산술논리장치(12)의 출력값 Y를 메모리 버스(도시하지 않음)에 기록(write)할지 여부를 결정한다.
예컨대, 상기 입력값 c가 “0”이면 출력값 w 역시 “0”이 되고, 이 경우에는 출력 레지스터(16)에 저장된 값이 메모리 버스에 기록되지 않도록 구성할 수 있다.
입력신호 c(condition)에 관하여, 만약 입력신호 c로서 입력될 수 있는 신호들이 여러 개 존재한다면, 하나 이상의 입력 포트들이 요구될지 모른다. 이는 하나의 프로세싱 요소에 조건실행 버스가 2이상 다수 연결되어 있는 경우이다. 즉, 다양한 조건을 설정할 필요가 있는 경우 하나의 프로세싱 요소에는 다수의 조건실행 버스가 연결될 수 있고, 상기 다수의 조건실행 버스를 통해 전송되는 다수의 조건정보 중에서 프로세싱 요소(20)는 어느 하나의 조건정보만을 선택하여 수신한다.
프로세싱 요소(20)내에 멀티플렉서(22)를 구현함으로써 상기 다수의 조건정보 중 어느 하나를 선택할 수 있다. 이 경우, 도 3의 표에서 그 구성데이터의 Csel 필드는 여러 개의 신호들로부터 하나의 신호를 선택하는 데에 사용될 것이다.
도 3은 상기 도 2의 프로세싱 요소의 산술논리장치에서 지원하는 연산의 일실시예를 나타낸 표이다. 도시된 바와 같이, 표의 상부에는 일반적인 산술논리 장치에서 기본적으로 제공하는 연산들(Baseline)이 기재되어 있고, 하부에는 조건실행을 지원하기 위해 새로이 추가되는 연산들(Added operations)에 관하여 기재되어 있다.
입력 A, B에 관하여 선택 가능한 여러 개의 피연산자들이 존재하기 때문에, 그 구성 데이터(configuration data)의 Asel 과 Bsel 필드들은 여러 피연산자들로부터 A와 B를 선택하는 데 이용된다. 산술논리장치(12)에서 제공하는 연산 정의 역시 새롭게 추가된 신호들을 사용하여 확장된다. 새로이 추가되는 연산들은 다음과 같다.
첫째, 상기 조건입력(predicate input) c를 활용할 수 있는 새로운 연산(operation)들이 산술논리장치(12)의 기능에 추가된다. 도 3의 표에서, c와 관련하여 새로 추가된 연산은, "SELECT" 및 "C-WRITE" 이다. 도 3의 표에서 "SELECT"가 수행하는 연산은, "Y=c?A:B"로 기재되어 있는데, 이는 주어진 조건정보 c가 1일 경우 Y에 A가 할당되고, c가 0이면 Y에 B를 할당한다는 의미이다.
둘째, 조건 만족 여부에 대한 판단결과 값, 즉 출력신호 t를 생성(generate)하기 위한 새로운 작동들이 산술논리장치(12)의 기능으로서 추가된다. 이들은, 예컨대, 비교(comparisons) 또는 논리부정(logical negation)을 수행하는 “test" 연산들이다. 도 3의 표에서 이들은, ”LT", "LEQ", "NOT" 로서 상징되어 있다.
셋째, 그 연산들은, t 신호를 생성(generate)하기 위해 그들의 산술논리 연산 결과 값이 사용된다. 이는 산술 연산의 결과를 논리 연산의 피연산자로 사용함으로써 새롭게 정의된 연산들의 개수를 최소로 유지할 수 있다.
또한 복합 조건수행(Complex tests)은, 위에서 설명한 연산들을 이용하여 실행될 수 있다. 예컨대, 다음과 같은 - 0<_A<256 논리 연산을 수행하기 위해 3 번의 논리연산 과정을 거친다. 첫째 연산은 0<_A 논리 값(말하자면, Y1)을 출력하고, 둘째 연산은 다시 A<256의 논리 값(Y2)을 출력한다. 셋째 연산은 두 출력 Y1, Y2 에 AND 연산을 수행한다. 그러면, 셋째 연산의 t 출력은 주어진 테스트의 결과이다.
재구성가능한 프로세싱 요소의 배열 구조에서 조건실행을 지원하기 위해, 본 발명에서는 조건실행 버스를 제공한다. 조건실행 버스는, 조건 정보(control information)의 생성으로부터 그 사용에 이르기까지의 경로를 제공하기 위한 것이다. 이 경우, 상기 조건 정보는, 상기 확장된 프로세싱 요소의 추가 요소 중 t 출력에서 생성되고, c 입력에서 사용된다.
도 2의 확장된 구성을 갖는 프로세싱 요소를 통해 조건실행을 지원하는 구체적인 실시예를 살펴본다. 예컨대, 아래와 같은 C 언어로 작성된 코드를 조건수행이 가능한 재구성가능한 프로세싱 요소의 배열 구조에 매핑한다고 가정한다.
/********배열 내에서 절대값의 최대값 구하기 **********/
MAX = 0;
for(i=0;i<100;i++)
{
A=result[i];
if(A<0) A=-A;
B=MAX;
if(A>B)
{
Y=A;
MAX=Y;
}
}
위의 코드중 하나의 반복(iteration)은, 도 4에 도시된 바와 같이, 조건수행이 가능한 재구성가능한 프로세싱 요소의 배열 구조의 프로세싱 요소에 매핑할 수 있다.도 4의 실시예에서, 일반적인 데이터의 흐름은 실선으로, 조건 정보의 흐름은 점선의 화살표로 표시하였다. 한편, 타이밍을 맞추기 위해 중간에 바이패스(Bypass) 역할을 하는 프로세싱 요소(73)를 삽입하였다.
프레임 버퍼(71)로부터 수신한 피연산자 A는 첫 번째 프로세싱 요소(72)에서 절대값(Absolute)으로 변환된 후, 각각 바이패스 역할을 하는 프로세싱 요소(73)와 조건만족 여부를 판단하는 프로세싱 요소(75)로 전송된다. 조건 만족 여부를 판단하는 상기 프로세싱 요소(75)에서는 A 값과 B값을 비교하고 그 결과를 조건실행 버스를 통해 선택(SELECT) 기능을 수행하는 프로세싱 요소(74)로 전송한다. 선택(SELECT) 기능을 수행하는 프로세싱 요소(74)는, 상기 비교 결과에 따라 A 또는 B 중 어느 하나의 값을 상기 조건 만족 여부를 판단하는 프로세싱 요소(75)로 전송한다.
예컨대 "A>B" 조건을 만족하지 않는 경우에는 t=c=0 이 되므로 Y=B 로 되어 MAX값은 변하지 않고, 따라서 프로세싱 요소(75)에서 B값도 변하지 않는다. 반면 "A>B" 조건을 만족하게 되면 t=c=1이 되므로 Y=A로 되어 새로운 MAX값 A가 프로세싱 요소(75)에 B값으로 갱신된다.
도 4의 실시예에서 최대 절대값(maximum absolute value)를 찾는 명령 루프는, 조건 수행이 지원되지 않는 기존의 배열구조에서는 매핑이 불가능하다. 그러나, 도 4에 도시된 바와 같이, 본 발명에 따른 확장된 구성을 갖는 프로세싱 요소의 배열구조에서는 4개의 프로세싱 요소를 사용하여 매핑하는 것이 가능하다.
도 2의 확장된 구성을 갖는 각각의 프로세싱 요소(20)는 조건실행 버스로 상호 연결됨으로써, 프로세싱 요소 레벨에서 조건실행을 지원할 수 있다. 조건실행 버스는 1비트 버스로 구성할 수 있는데, 이는 조건정보가 기본적으로 0과 1의 두 값만을 가지기 때문이다. 조건실행 버스는 읽기(read) 및 쓰기(write)가 모두 가능하다.
이러한 프로세싱 요소들 간의 연결을 위한 조건정보버스는 다양한 방식으로 구성될 수 있는 데, 본 발명에서는 광역연결, NN연결, 칼럼연결 하프 칼럼연결의 4가지 방식을 소개한다.
1.광역 방식(A set of global buses)
조건실행을 지원하기 위한 각 프로세싱 요소의 연결 구조를 구성하는 방법으로서, 각각의 버스(bus)가 모든 프로세싱 요소에 공유되도록 구성하는 방법이다.
도 5는 8 ×8 배열, 즉 64개의 프로세싱 요소(31)를 2개의 광역버스(33, 35) 로 연결한 구성을 나타낸 것이다. 도 5에서는 조건실행을 지원하기 위한 조건실행 버스(33, 35)만을 도시하였고, 발명의 명확한 표현을 위해 기타 데이터 버스나 메모리 버스 등은 도시하지 않았다(이하 다른 연결방식에 관한 도면에 있어서도 마찬가지이다).
도 5에 도시된 바와 같이, 2개의 광역버스(33, 35)는 각각 모든 프로세싱 요소(31)들에 의해 공유된다. 버스 구조이므로, 하나의 광역 버스에 데이터를 쓰는 것은 하나의 프로세싱 요소만 가능하고 모든 프로세싱 요소들이 버스로부터 데이터를 수신하여 읽을 수 있다. 조건정보의 송신 및 수신은 2개의 버스(33, 35) 중 어느 버스를 통해서도 모두 가능하다.
한편, 도 5에 도시된 것처럼, 하나의 프로세싱 요소마다 두 개의 버스가 연결되어 있는 경우에는, 각 프로세싱 요소마다 2개의 조건정보를 수신할 수 있고, 각 프로세싱 요소는 이 중 어느 하나의 값을 선택하여 조건정보로서 이용하면 된다. 도 2의 확장된 프로세싱 구성에서 살펴본 것처럼, 조건정보의 선택을 위해서 멀티플렉서(22)를 이용할 수 있다.
도 5에서는 버스의 개수가 2개로 제시되어 있으나, 그 개수는 필요에 따라 얼마든지 조절할 수 있다. 다만 버스의 개수의 증감에 따른 프로세서의 수행효율을 고려하면서 조절해야 한다. 이는, 이하에서 설명하는 다른 연결방식에서도 마찬가지이다.
2.NN(Nearest Neighbor) 방식
조건실행을 지원하기 위한 각 프로세싱 요소의 연결 구조의 또 다른 방법으로서, NN(Nearest Neighbor) 연결 방식이 있다. 도 6은 본 발명에 따라 각각의 프로세싱 요소가 NN방식으로 구성된 도선을 통해 연결된 것을 나타낸 것이다. 도시된 바와 같이 NN방식에서는, 각 프로세싱 요소(41)가 도선(43)을 통해 바로 이웃하는 모든 프로세싱 요소와 직접 연결되어 있고, 바로 이웃하지 않는 프로세싱 요소와는 직접 연결되지 않은 상태로 구성되어 있다.
도 6에 도시된 NN 방식에 있어서, 하나의 프로세싱 요소는 이웃하는 프로세싱 요소로부터 2개, 3개 또는 4개의 조건정보를 수신할 수 있다. 이 경우, 광역버스 방식과 마찬가지로, 멀티플렉서(22)를 이용하여 다수의 조건정보 중에서 어느 하나를 선택하여 조건정보로서 이용할 수 있다.
3.칼럼 방식(A set of column-wide buses)
칼럼 방식에서 각각의 버스는, 하나의 칼럼(column)에 속하는 프로세싱 요소들 사이에서만 공유된다. 칼럼 방식은, 확대/축소의 유연성과 컴파일 과정의 용이성을 둘 다 갖추기 위한 절충안이라 볼 수 있다. 도 7은 본 발명에 따라 각각의 프로세싱 요소가 칼럼 방식의 조건실행 버스를 통해 연결된 것을 나타낸 것이다. 도시된 바와 같이, 하나의 버스(53)는 하나의 칼럼(또는 하나의 행)에 속하는 프로세싱 요소(51)들 사이에서만 공유된다.
도 7에서 하나의 칼럼에 배열되어 있는 프로세싱 요소의 개수는 8개이므로, 각각의 버스는 8개의 프로세싱 요소들에 의해 공유된다. 칼럼 방식에서는, 칼럼 당 버스들 개수에 관한 파라미터를 가진다.
도 9는 도 7에 도시된 칼럼 버스 방식에서 입력신호 및 출력신호를 분리하여 표현한 것이다. 이는 본 발명에 따른 프로세싱 요소와 조건실행 버스와의 연결관계를 보다 구체적으로 나타내기 위한 것이다.
도 9에 도시된 바와 같이, 각 프로세싱 요소(81)는 각각 2개의 버스와 연결되어 있으며, 각 버스(83)로부터 조건정보에 관한 입력신호 (c1,c2)를 수신하거나, 또는 각 버스(83)에 조건정보에 관한 출력신호 t를 송신할 수 있다.
도 7에서는, 프로세싱 요소와 조건실행 버스 간에 조건정소의 송신 및 수신이 가능하다는 의미로서 상호간에 쌍방향 화살표를 표시한 것에 비해, 도 9에서는 송신 및 수신에 관한 흐름을 분리하여 표시하였다.
4.하프 칼럼 방식(A set of half column-wide buses)
하프 칼럼 방식은 상기 칼럼 방식과 유사하지만, 단지 칼럼 절반 길이의 버스들을 가진다. 즉, 하프 칼럼 방식에서는, 하나의 칼럼에 속하는 프로세싱 요소들 중에서 절반이 하나의 버스를 공유하고, 나머지 절반은 또 다른 하나의 버스를 공유한다.
도 8은 본 발명에 따라 각각의 프로세싱 요소가 하프 칼럼 방식의 조건실행 버스를 통해 연결된 것을 나타낸 것이다. 도시된 바와 같이, 각각의 버스(63)의 길이는, 칼럼의 절반 길이이다. 도 8에서 하나의 칼럼에 속하는 프로세싱 요소(61)의 개수는 8개이므로, 각각의 버스는 4개의 프로세싱 요소들에 의해 공유된다. 칼럼 방식에서는, 하프 칼럼 당 버스들의 개수에 관한 파라미터를 가진다. 또 각 프로세싱 요소는 하나의 조건실행 버스에만 연결되어 있으므로, 하나의 조건정보만을 수신하며, 따라서 조건정보를 선택하기 위한 멀티플렉서(22)를 필요로 하지 않는다.
이상 살펴본 바와 같이, 본 발명에서는 조건 실행을 지원하는 재구성 가능한 프로세싱 요소의 배열 구조를 제공한다. 본 발명에 의해 파이프라인에서 구동하는 프로세싱 요소들 간에 조건정보가 전송될 수 있다. 본 발명에서는, 조건정보(Predicate information)의 전송 경로가 되는 연결버스의 다양한 구성 방식을 제공하였고, 조건실행을 지원하기 위해 프로세싱 요소가 수행하는 추가 연산들을 제안하였다.
이상 본 발명의 특정 실시예에 대해 설명하였으나, 본 발명의 정신에 위배됨이 없이 본 발명이 속하는 분야에서 숙련된 기술자에 의해 본 발명이 다양하게 변형될 수 있을 것이다. 예컨대 상기 실시예에서는 8 ×8 배열의 프로세싱 요소들에 대해 설명하였으나, 2 ×2, 4 ×4 등의 프로세싱 요소의 배열에도 본 발명이 적용될 수 있을 것이다. 또한 조건실행 버스의 연결방식에 있어서도 필요에 따라 버스의 개수를 조절할 수 있을 것이다. 이러한 변형된 실시예들은, 본 발명의 정신에 위배되지 않는 범위 내에서 본 발명의 특허청구범위의 권리범위에 포함된다고 해석되어야 할 것이다.
상기한 바와 같이, 본 발명에서는, 프로세싱 요소의 구성을 확장하고 각 프로세싱 요소 간에 조건실행 버스를 통해 조건정보를 송수신함으로써, 재구성가능한 프로세싱 요소의 배열 구조에서의 조건실행을 지원하다.
이와 같이, 본 발명에서는 레지스터 파일의 공유없이 조건실행을 지원할 수 있으므로, 프로세서의 전체적인 설계변경이 불필요하게 되어 그에 따른 노력 및 비용을 줄일 수 있다.
또한 본 발명에 의해 확장된 구성을 갖는 프로세싱 요소 및 그 배열구조를 갖는 프로세서는 공유 레지스터 파일을 이용하지 않고 조건실행 버스를 통해 조건실행을 지원하기 때문에 보다 빠른 처리시간과 작은 크기를 가지게 된다.
Claims (9)
- 재구성 가능한 2이상의 프로세싱 요소들과;상기 프로세싱 요소들이 조건정보를 상호 송수신할 수 있도록 상기 프로세싱 요소를 연결시키는 하나 이상의 1비트 조건실행 버스를 포함하되,상기 프로세싱 요소는,메모리 버스 또는 다른 프로세싱 요소들로부터 수신한 데이터 중에서 하나의 피연산자를 출력하는 멀티플렉서; 및상기 조건실행 버스와 연결된 산술논리장치(ALU)를 포함하되,상기 산술논리장치(ALU)는, 상기 조건실행 버스에 의해 연결된 다른 프로세싱 요소로부터 조건정보를 입력신호(c)로서 수신하고, 상기 수신된 입력신호(c)에 따라 상기 멀티플렉서로부터 수신한 피연산자들이 조건을 만족하는지 여부를 판단하며, 상기 판단 결과값을 다른 프로세싱 요소의 조건정보로 이용하기 위해 상기 조건실행 버스에 의해 연결된 다른 프로세싱 요소로 제1 출력신호(t)로서 출력하는 것을 특징으로 하는 재구성 가능한 프로세싱 요소의 배열구조.
- 제 1 항에 있어서,상기 프로세싱 요소는,상기 조건실행 버스로부터 수신하는 조건정보가 2이상인 경우 어느 하나의 조건정보만을 선택하는 기능을 수행하는 멀티플렉서를 더 포함하는 것을 특징으로 하는 재구성 가능한 프로세싱 요소의 배열구조.
- 제 1 항에 있어서,상기 프로세싱 요소는,상기 산술논리장치에서 출력되는 조건만족 여부의 판단결과의 전송을 동기화시키기 위한 레지스터를 더 포함하는 것을 특징으로 하는 재구성 가능한 프로세싱 요소의 배열구조.
- 제 1 항에 있어서,상기 산술논리장치는,상기 조건만족 여부의 판단결과를 메모리 버스로 전송할 것인지 여부를 결정하는 신호를 제2 출력신호(w)로서 출력하는 것을 특징으로 하는 재구성 가능한 프로세싱 요소의 배열구조.
- 제 1 항에 있어서,상기 조건실행 버스는,각각 상기 모든 프로세싱 요소를 상호 연결하는 하나 이상의 1비트 버스로 구성된 것을 특징으로 하는 재구성 가능한 프로세싱 요소의 배열구조.
- 제 1 항에 있어서,상기 조건실행 버스는,상기 모든 프로세싱 요소를 각각 바로 이웃하는 프로세싱 요소들에 상호 연 결시키는 1비트 버스로 구성된 것을 특징으로 하는 재구성 가능한 프로세싱 요소의 배열구조.
- 제 1 항에 있어서,상기 조건실행 버스는,각각 동일한 칼럼(column) 또는 동일한 로우(row) 상에 배열되어 있는 모든 프로세싱 요소들을 상호 연결하는 1비트 버스로 구성된 것을 특징으로 하는 재구성 가능한 프로세싱 요소의 배열구조.
- 제 1 항에 있어서,상기 조건실행 버스는,동일한 칼럼(column) 또는 동일한 로우(row) 상에 배열되어 있는 프로세싱 요소들 중에서, 각각 한쪽 절반의 프로세싱 요소들을 상호연결하는 1비트 버스와, 다른쪽 절반의 프로세싱 요소들을 상호 연결하는 1비트 버스로 구성된 것을 특징으로 하는 재구성 가능한 프로세싱 요소의 배열구조.
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050008689A KR100722770B1 (ko) | 2005-01-31 | 2005-01-31 | 조건실행을 지원하는 재구성 가능한 프로세싱 요소의배열구조 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050008689A KR100722770B1 (ko) | 2005-01-31 | 2005-01-31 | 조건실행을 지원하는 재구성 가능한 프로세싱 요소의배열구조 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060087836A KR20060087836A (ko) | 2006-08-03 |
KR100722770B1 true KR100722770B1 (ko) | 2007-05-30 |
Family
ID=37176512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050008689A KR100722770B1 (ko) | 2005-01-31 | 2005-01-31 | 조건실행을 지원하는 재구성 가능한 프로세싱 요소의배열구조 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100722770B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100662873B1 (ko) * | 2006-01-03 | 2007-01-02 | 삼성전자주식회사 | 루프가속기 및 이를 포함하는 데이터 처리 시스템 |
KR101756820B1 (ko) | 2010-10-21 | 2017-07-12 | 삼성전자주식회사 | 중첩 루프를 처리하기 위한 재구성 가능 프로세서 및 방법 |
KR102032895B1 (ko) | 2013-01-28 | 2019-11-08 | 삼성전자주식회사 | 기능 유닛들 간의 기능 로직 공유 장치, 방법 및 재구성 가능 프로세서 |
KR101764302B1 (ko) | 2015-03-25 | 2017-08-03 | 고등기술연구원연구조합 | 제강 슬래그를 이용한 타르 개질 방법 및 시스템 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05506998A (ja) * | 1990-07-11 | 1993-10-14 | ジェネタイプ アクチエンゲゼルシャフト | イントロン配列分析法を用いた直接ハプロタイピングによるゲノム地図作成方法 |
US20040049664A1 (en) * | 1998-01-28 | 2004-03-11 | Pts Corporation | Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution |
-
2005
- 2005-01-31 KR KR1020050008689A patent/KR100722770B1/ko not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05506998A (ja) * | 1990-07-11 | 1993-10-14 | ジェネタイプ アクチエンゲゼルシャフト | イントロン配列分析法を用いた直接ハプロタイピングによるゲノム地図作成方法 |
US20040049664A1 (en) * | 1998-01-28 | 2004-03-11 | Pts Corporation | Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution |
Non-Patent Citations (1)
Title |
---|
05506998 |
Also Published As
Publication number | Publication date |
---|---|
KR20060087836A (ko) | 2006-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10387319B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features | |
US10469397B2 (en) | Processors and methods with configurable network-based dataflow operator circuits | |
US11449342B2 (en) | Hybrid block-based processor and custom function blocks | |
US10445451B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features | |
US20190102179A1 (en) | Processors and methods for privileged configuration in a spatial array | |
US20190101952A1 (en) | Processors and methods for configurable clock gating in a spatial array | |
Parashar et al. | Triggered instructions: A control paradigm for spatially-programmed architectures | |
US5333280A (en) | Parallel pipelined instruction processing system for very long instruction word | |
US20190102338A1 (en) | Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator | |
US7076638B2 (en) | Processor, compiler and compilation method | |
US6948158B2 (en) | Retargetable compiling system and method | |
KR100284789B1 (ko) | N-지로 분기를 갖는 슈퍼스칼라 또는 초장 명령어 워드컴퓨터에서 다음 명령어를 선택하는 방법 및 장치 | |
US5764943A (en) | Data path circuitry for processor having multiple instruction pipelines | |
US9329866B2 (en) | Methods and apparatus for adapting pipeline stage latency based on instruction type | |
US6754809B1 (en) | Data processing apparatus with indirect register file access | |
US6839831B2 (en) | Data processing apparatus with register file bypass | |
US20060101237A1 (en) | Data flow machine | |
US11037050B2 (en) | Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator | |
KR100316078B1 (ko) | 파이프라인방식프로세서 | |
KR100722770B1 (ko) | 조건실행을 지원하는 재구성 가능한 프로세싱 요소의배열구조 | |
JP5326314B2 (ja) | プロセサおよび情報処理装置 | |
US9201657B2 (en) | Lower power assembler | |
US7937572B2 (en) | Run-time selection of feed-back connections in a multiple-instruction word processor | |
US20190095208A1 (en) | SYSTEMS AND METHODS FOR MIXED INSTRUCTION MULTIPLE DATA (xIMD) COMPUTING | |
Forsell et al. | REPLICA MBTAC: multithreaded dual-mode processor |
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 | ||
G170 | Publication of correction | ||
FPAY | Annual fee payment |
Payment date: 20130508 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140507 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20150430 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |