KR101101993B1 - 프로세싱 장치 및 프로세싱 요소 제어 장치 및 방법 - Google Patents

프로세싱 장치 및 프로세싱 요소 제어 장치 및 방법 Download PDF

Info

Publication number
KR101101993B1
KR101101993B1 KR1020100085492A KR20100085492A KR101101993B1 KR 101101993 B1 KR101101993 B1 KR 101101993B1 KR 1020100085492 A KR1020100085492 A KR 1020100085492A KR 20100085492 A KR20100085492 A KR 20100085492A KR 101101993 B1 KR101101993 B1 KR 101101993B1
Authority
KR
South Korea
Prior art keywords
sleep
processing element
state
instruction
command
Prior art date
Application number
KR1020100085492A
Other languages
English (en)
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 광운대학교 산학협력단
Priority to KR1020100085492A priority Critical patent/KR101101993B1/ko
Application granted granted Critical
Publication of KR101101993B1 publication Critical patent/KR101101993B1/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • 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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

본 발명은, 프로세싱 장치 및 프로세싱 요소 제어 장치 및 방법에 관한 것으로서, 조건 정보 및 슬립 사이클 값을 포함하는 슬립 명령어를 입력받아, 조건 정보에 따라 프로세싱 요소의 상태를 변경하고, 이러한 프로세싱 요소의 상태에 따라 프로세싱 요소의 명령어 처리를 제어함으로써, 동일한 명령어를 받아 여러 개의 프로세싱 요소를 통해 처리하는 SIMD 머신에서도 조건 실행(predication execution)을 지원할 수 있게 하고, 특히, 조건 실행 방법 중 전부 조건 실행(full predication) 방식을 사용하여 중첩된 조건문 구조를 보다 효율적으로 처리할 수 있게 한다.

Description

프로세싱 장치 및 프로세싱 요소 제어 장치 및 방법{Processing apparatus and processing element control apparatus and method}
본 발명은, 프로세싱 장치 및 프로세싱 요소 제어 장치 및 방법에 관한 것으로서, 보다 상세하게는, 조건 정보 및 슬립 사이클 값을 포함하는 슬립 명령어를 입력받아, 조건 정보에 따라 프로세싱 요소의 상태를 변경하고, 이러한 프로세싱 요소의 상태에 따라 프로세싱 요소의 명령어 처리를 제어함으로써, 조건 실행(predication execution)을 지원하는 프로세싱 장치 및 프로세싱 요소 제어 장치 및 방법에 관한 것이다.
본 발명은 교육과학기술부, 한국과학재단 및 서울대학교 산학협력단의 도약연구지원사업[과제고유번호: 2010-0019522, 과제명: 재구성형 MP-SoC 설계기술] 과, 서울특별시 및 광운대학교 산학협력단의 서울시 산학연 협력사업[과제고유번호: 10560, 과제명: 나노SoC 산업육성을 위한 산학협력 혁신 클러스터]의 일환으로 수행한 연구로부터 도출된 것이다.
마이크로 프로세서의 처리속도를 향상시키기 위한 방법으로서, 명령 수준 병렬성(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)은 본래 스칼라 프로세서(scalar processor)에서 이러한, 분기 명령에 의한 분기 연산(branch operation)을 줄임으로써 그 성능을 향상시키기 위한 방법으로, 간단한 분기 구조를 분기가 아닌 구조로 변경한다. 조건 실행(predicated execution)은 입력받은 명령어(instruction)를 모두 페치(fetch)하되, 페치된 명령어의 발행(issue) 여부는 조건 정보에 따라 결정하게 함으로써, 분기와 같은 효과를 낼 수 있는 것이다.
특히, 도 1과 같은 프로세싱 요소를 여러 개를 갖는 단일 명령어 다중 데이터(Single Instruction Multiple Data, SIMD) 머신에서는 이러한 분기 연산으로 인한 성능 제약이 더욱더 심각하다. SIMD 머신의 프로세싱 요소들은 일반적으로 서로 동일한 명령어를 수신하고, 이러한 명령어에 분기(branch)가 있어 프로세싱 요소들이 각각 서로 다른 명령어를 원하게 되면 SIMD 머신에서 그 실행이 불가능해지며, 따라서, 분기연산은 성능 상의 큰 제약이 된다.
따라서, SIMD 머신에서도 분기 연산을 줄이기 위한 조건 실행을 지원하기 위한 기술이 필요하다.
조건 실행에는 크게 두 가지 방식이 있는데, 그 중 하나는 명령어이 페치된 이후에 발행할 때, 모든 명령어의 실행여부가 조건의 영향을 받는 전부 조건 실행(full predication)이 있고, 다른 하나는 대부분의 명령어는 무조건 발행되며 일부 명령어만 조건의 영향을 받는 부분 조건 실행(partial predication)이 있다.
부분 조건 실행은 일반적으로 if-else 구조가 있을 때, 양쪽의 흐름을 전부 계산하고, 두 결과 중 하나를 선택하는 방식인데, 중첩된 조건문 구조를 처리하기 위해서는 중첩된 조건문이 끝날 때까지 모든 조건값을 보관하고 있어야 하며, 모든 중첩된 조건문의 흐름에 대한 결과값을 별도로 보관하고 있어야 하므로, 많은 수의 레지스터를 요구하게 되어 레지스터 스필(spill)을 야기하고, 이에 따라 성능이 크게 저하된다.
또한 부분 조건 실행은 수행하지 않아도 되었을 흐름에서의 로드(load)나 저장(store)을 수행함에 따른 성능 저하 등도 문제될 수 있다.
이러한 문제들은 중첩된 조건문 구조에서 훨씬 복잡해지기 때문에, 부분 조건 실행 방식은 중첩된 조건문 구조에서 사용하기에 일정한 한계가 있다.
따라서, 중첩된 조건문 구조에서 조건 실행을 지원하기 위한 전부 조건 실행(full predication) 방식 기반의 조건 실행 기술이 필요하다.
본 발명이 이루고자 하는 기술적 과제는, 조건 실행(predication execution)을 지원하는 프로세싱 장치 및 프로세싱 요소 제어 장치 및 방법을 제공하는 데에 있다.
상기의 기술적 과제를 이루기 위한, 본 발명에 의한 프로세싱 장치는 제어 신호에 따라 연산을 수행하는 프로세싱 요소; 및 외부로부터 입력되는 명령어를 기초로 생성된 제어 신호를 프로세싱 요소에 전송하는 프로세싱요소제어부를 포함하고, 프로세싱요소제어부는, 입력되는 명령어가 조건 정보 및 슬립 사이클 값을 포함하는 슬립 명령어인 경우에, 슬립 명령어의 조건정보와 프로세싱 요소에서 수행된 이전의 연산결과를 비교한 결과에 따라 슬립 사이클 값의 사이클 동안에 입력되는 명령어에 따른 제어 신호의 전송을 차단한다.
보다 바람직하게는, 프로세싱요소제어부는 프로세싱 요소에서 수행된 이전의 연산결과가 슬립 명령어의 조건 정보의 조건에 합치하는 경우에, 슬립 사이클 값의 사이클 동안에 입력되는 명령어에 따른 제어 신호의 전송을 차단한다.
보다 바람직하게는, 프로세싱 요소 및 프로세싱요소제어부에 연결되어, 프로세싱 요소의 상태를 저장하는 상태저장부를 더 포함하고, 프로세싱요소제어부는 입력된 명령어가 슬립 명령어인 경우에, 슬립 명령어의 조건정보와 프로세싱 요소에서 수행된 이전의 연산결과를 비교한 결과에 따라 프로세싱 요소의 상태를 프로세싱 요소의 동작을 차단함을 가리키는 슬립 상태로 전환하고, 슬립 사이클 값을 저장한다.
보다 바람직하게는, 프로세싱요소제어부는 명령어가 입력될 때마다 프로세싱 요소의 상태를 확인하여, 프로세싱 요소의 상태가 슬립 상태인 경우에는, 저장된 슬립 사이클 값에 따라, 저장된 슬립 사이클 값을 차감하거나 프로세싱 요소의 상태를 프로세싱 요소의 동작을 재개함을 가리키는 어웨이크 상태로 전환한다.
보다 바람직하게는, 슬립 명령어의 슬립 사이클 값은 프로세싱 요소의 로컬 레지스터에 저장되고, 프로세싱요소제어부는 확인된 프로세싱 요소의 상태가 슬립 상태이고, 저장된 슬립 사이클 값이 기정의된 기준값 이상인 경우에는, 저장된 슬립 명령어의 슬립 사이클 값을 차감하는 제어 신호를 프로세싱 요소에 전송한다.
상기의 기술적 과제를 이루기 위한, 본 발명에 의한 프로세싱 요소 제어 방법은, 외부로부터 명령어를 입력받는 단계; 입력받은 명령어가 조건 정보 및 슬립 사이클 값을 포함하는 슬립 명령어인 경우에, 슬립 명령어의 조건정보와 프로세싱 요소에서 수행된 이전의 연산결과를 비교한 결과에 따라 슬립 사이클 값의 사이클 동안에 입력되는 명령어에 따른 제어 신호의 프로세싱 요소로의 전송을 차단하는 슬립제어단계를 포함한다.
보다 바람직하게는, 슬립제어단계는 프로세싱 요소에서 수행된 이전의 연산결과가 슬립 명령어의 조건 정보의 조건에 합치하는 경우에, 슬립 사이클 값의 사이클 동안에 입력되는 명령어에 따른 제어 신호의 프로세싱 요소로의 전송을 차단한다.
보다 바람직하게는, 슬립제어단계는 입력받은 명령어가 슬립 명령어인 경우에, 슬립 명령어의 조건정보와 프로세싱 요소에서 수행된 이전의 연산결과를 비교하는 단계; 및 비교의 결과에 따라 프로세싱 요소의 상태를 프로세싱 요소의 동작을 차단함을 가리키는 슬립 상태로 전환하고, 슬립 사이클 값을 저장하는 단계를 포함한다.
보다 바람직하게는, 슬립제어단계는 명령어가 입력되면 프로세싱 요소의 상태를 확인하는 단계; 및 프로세싱 요소의 상태가 슬립 상태인 경우에는 저장된 슬립 사이클 값에 따라, 저장된 슬립 사이클 값을 차감하거나 프로세싱 요소의 상태를 프로세싱 요소의 동작을 재개함을 가리키는 어웨이크 상태로 전환하는 슬립상태처리단계를 포함한다.
보다 바람직하게는, 슬립상태처리단계는, 저장된 슬립 사이클 값이 기정의된 기준값 이상인 경우에는 저장된 슬립 사이클 값을 차감하는 단계; 및 저장된 슬립 사이클 값이 기정의된 기준값보다 작은 경우에는 프로세싱 요소의 상태를 프로세싱 요소의 동작을 재개함을 가리키는 어웨이크 상태로 전환하는 단계를 포함한다.
상기의 기술적 과제를 이루기 위한, 본 발명에 의한 프로세싱 요소 제어 장치는, 외부로부터 명령어를 입력받는 명령어입력부; 및 입력받은 명령어가 조건 정보 및 슬립 사이클 값을 포함하는 슬립 명령어인 경우에, 슬립 명령어의 조건정보와 프로세싱 요소에서 수행된 이전의 연산결과를 비교한 결과에 따라, 슬립 사이클 값의 사이클 동안에 입력되는 명령어에 따른 제어 신호의 프로세싱 요소로의 전송을 차단하는 슬립제어부를 포함한다.
보다 바람직하게는, 슬립제어부는, 프로세싱 요소에서 수행된 이전의 연산결과가 슬립 명령어의 조건 정보의 조건에 합치하는 경우에, 슬립 사이클 값의 사이클 동안에 입력되는 명령어에 따른 제어 신호의 프로세싱 요소로의 전송을 차단한다.
보다 바람직하게는슬립제어부는 입력받은 명령어가 슬립 명령어인 경우에 슬립 명령어의 조건정보와 프로세싱 요소에서 수행된 이전의 연산결과를 비교한 결과에 따라 프로세싱 요소의 상태를 프로세싱 요소의 동작을 차단함을 가리키는 슬립 상태로 전환하고, 슬립 사이클 값을 저장하는 슬립명령어처리부를 포함한다.
보다 바람직하게는, 슬립제어부는 명령어가 입력될 때마다 프로세싱 요소의 상태를 확인하여, 프로세싱 요소의 상태가 슬립 상태인 경우에는 저장된 슬립 사이클 값에 따라, 저장된 슬립 사이클 값을 차감하거나 프로세싱 요소의 상태를 프로세싱 요소의 동작을 재개함을 가리키는 어웨이크 상태로 전환하는 슬립상태처리부를 포함한다.
보다 바람직하게는, 슬립상태처리부는, 저장된 슬립 사이클 값이 기정의된 기준값 이상인 경우에는 저장된 슬립 사이클 값을 차감하고, 저장된 슬립 사이클 값이 기정의된 기준값보다 작은 경우에는 프로세싱 요소의 상태를 프로세싱 요소의 동작을 재개함을 가리키는 어웨이크 상태로 전환한다.
상기의 기술적 과제를 이루기 위한, 본 발명은 프로세싱 요소 제어 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명에 의하면, 프로세싱 요소 제어 장치에서 조건 정보 및 슬립 사이클 값을 포함하는 슬립 명령어를 입력받아 조건 정보에 따라 프로세싱 요소의 상태를 변경함으로써, 동일한 명령어를 받아 여러 개의 프로세싱 요소를 통해 처리하는 SIMD 머신에서도 조건 실행(predication execution)을 지원할 수 있게 한다.
특히, 조건 실행 방법 중 전부 조건 실행(full predication) 방식을 사용하여 중첩된 조건문 구조를 보다 효율적으로 처리할 수 있게 한다.
도 1은 SIMD 머신을 구성하는 하나의 프로세싱 요소의 구조를 예시한 도면이다.
도 2a는 본 발명에 따른 프로세싱 장치의 구조를 도시한 도면이다.
도 2b는 본 실시예에 따른 프로세싱 장치에서 사용되는 슬립 명령어를 어셈블리어로 구현한 예를 도시한 도면이다.
도 3은 본 발명에 따른 프로세싱 요소의 일 구성요소인 프로세싱 요소 제어 장치를 예시한 블록도이다.
도 4a 및 도 4b는 본 발명에 따른 프로세싱 요소 제어 장치에서 프로세싱 요소를 제어하는 방법의 흐름을 도시한 도면이다.
도 5a 내지 도 5c는 본 발명에 따른 프로세싱 요소를 실제 SIMD 기계에 적용한 예를 도시한 것이다.
이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다. 또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한, 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다.
따라서, 프로세서 또는 이와 유사한 개념으로 표시된 기능 블럭을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 상기 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다. 또한, 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니 되고, 제한 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 롬(ROM), 램(RAM) 및 비휘발성 메모리를 암시적으로 포함하는 것으로 이해되어야 한다. 주지 관용의 다른 하드웨어도 포함될 수 있다.
상술한 목적, 특징 및 장점들은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 더욱 분명해 질 것이다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략하거나 간략하게 설명하는 것으로 한다.
한편 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 첨부된 도면을 참조하여 바람직한 실시예에 따른 본 발명을 상세히 설명하기로 한다.
도 1은 SIMD 머신을 구성하는 하나의 프로세싱 요소의 구조를 예시한 도면이다.
도 1을 참조하면, 프로세싱 요소(100)는 멀티플렉서들(120, 130), 산술논리유닛(140), 로컬레지스터파일(150), 출력레지스터(160) 및 연산결과저장부 (170)를 포함한다.
프로세싱 요소 외부의 디코더(110)는 외부로부터 명령어를 입력받아 명령어의 피연산자(operand) 및 연산자(operater)를 분리하고, 명령어에 따른 제어 신호를 생성하여, 멀티플렉서들(120, 130) 및 산술논리유닛(140)에 보내어 명령어를 실행한다.
멀티플렉서들(120, 130)은 디코더(110)로부터 제어 신호를 수신하여, 이로부터 명령어의 피연산자(operand)를 선택하여 산술논리유닛(140)으로 출력한다.
산술논리유닛(ALU and shifter, 140)은 디코더(110)로부터 제어 신호를 수신하여, 이로부터 명령어의 연산자(operator)를 선택하여, 멀티플렉서들(120, 130)로부터 출력된 피연산자들에 대해 연산을 수행하고, 그 연산 결과를 로컬레지스터파일(150), 출력레지스터(160) 및 연산결과저장부(170)에 전송한다.
로컬레지스터파일(150)은 산술논리유닛(140)에서의 연산 결과를 임시로 저장하고, 멀티플렉서들(120, 130)에 인가함으로써, 피드백 데이터로써 활용하고, 출력레지스터(160)는 산술논리유닛(140)에서의 연산 결과를 임시로 저장하고, 프로세싱 요소 외부의 구성요소 예컨데, 이웃하는 프로세싱 요소나 메모리 버스 등에 인가한다.
연산결과저장부(170)는 산술논리유닛(140)에서의 연산 결과를 디코더(110)에 인가한다. 이를 통해, 디코더(110)에서 제어 신호를 생성하는 과정에서, 산술논리유닛(140)에서의 연산 결과를 피드백 데이터로써 활용할 수 있게 한다.
도 2a는 본 발명에 따른 프로세싱 장치의 구조를 도시한 도면이고, 도 2b는 본 실시예에 따른 프로세싱 장치에서 사용되는 슬립 명령어를 어셈블리어로 구현한 예를 도시한다.
도 2a를 참조하면, 본 발명에 따른 프로세싱 장치는 프로세싱요소제어부(210) 및 적어도 하나 이상의 프로세싱 요소(200)를 포함한다.
본 발명에 따른 프로세싱 장치로는 SIMD 머신이 바람직하나, 이에 한정되지 아니하며, ARM 프로세서 등과 같은 스칼라 프로세서에도 적용이 가능하다.
본 발명에 따른 프로세싱요소제어부(210)는 도 1에 도시된 프로세싱 장치의 디코더(110)를 포함하여 구성될 수 있으나, 디코더(110)와 달리, 조건 정보 및 슬립 사이클 값을 포함하는 슬립 명령어를 처리할 수 있도록 구현된다.
도 2b를 참조하면, 본 실시예에 따른 슬립 명령어(201)는, 어셈블리어를 기준으로, 슬립 명령어임을 가리키는 부분(202)과 프로세싱 요소(200)에서 수행된 이전의 연산결과와 비교할 조건을 가리키는 조건정보(203)를 포함하는 명령어 니모닉(instruction mnemonic, 204)를 구비하고, 슬립 명령어(201)의 피연산자(operand)로, 슬립사이클 값(205)을 포함하도록 구현될 수 있다.
예컨대, 프로세싱요소제어부(210)는 프로세싱 요소(200)에서 수행된 이전의 연산결과가 슬립 명령어의 조건 정보(203)의 조건에 합치하는 경우에, 슬립 사이클 값(205) 만큼의 사이클 동안에 입력되는 명령어에 따른 제어 신호의 프로세싱 요소로의 전송을 차단하도록 구현할 수 있다.
프로세싱요소제어부(210)는 외부로부터 입력받은 명령어가 슬립 명령어(201)인 경우에는, 슬립 명령어의 조건정보(203)와 프로세싱 요소(200)에서 수행된 이전의 연산결과(206)를 비교하고, 비교한 결과에 따라 슬립 사이클 값(205)의 사이클 동안에 입력되는 명령어에 따른 제어 신호를 프로세싱 요소(200)에 전송하지 않음으로써, 전부 조건 실행(full predication)을 지원한다.
바람직하게는, 슬립 사이클 값(205)의 사이클 동안에 입력되는 명령어에 따른 제어 신호 대신 프로세싱 요소(200)의 상태를 슬립 상태로 전환시키고, 프로세싱 요소(200)의 로컬 레지스터 파일(250)에 슬립 사이클 값(205)을 저장하는 제어 신호를 프로세싱 요소(200)에 전송하도록 구현할 수 있다.
본 발명에서의 프로세싱 요소(200)는 멀티플렉서들(220, 230), 산술논리유닛(240), 로컬레지스터파일(250), 출력레지스터(260), 연산결과저장부(270) 및 상태저장부(280)를 포함한다.
본 발명에 따른 프로세싱 장치의 구성요소들 중 멀티플렉서들(220, 230), 산술논리유닛(240), 로컬레지스터파일(250), 출력레지스터(260), 연산결과저장부(270)는 도 1에 도시된 프로세싱 요소의 멀티플렉서들(120, 130), 산술논리유닛(140), 로컬레지스터파일(150), 출력레지스터(160) 및 연산결과저장부 (170)와 동일한 기능을 수행한다.
상태저장부(280)는 프로세싱요소제어부(210)와 연결되어, 프로세싱 요소(200)의 상태(state)를 저장하는 구성요소로, 도 2에는 프로세싱 요소(200) 내에 포함되도록 구성되었으나, 반드시 프로세싱 요소(200) 내에 포함될 필요는 없다.
본 실시예에서, 프로세싱 요소(200)의 상태는, 프로세싱 요소(200)의 동작을 차단함을 가리키는 슬립 상태와, 프로세싱 요소(200)의 동작을 재개함을 가리키는 어웨이크 상태로 구분될 수 있다.
이를 통해 프로세싱 요소(200)는 조건(predication)에 해당하는 상태(state)를 가지고 있으며, 입력되는 모든 명령어들은 이러한 프로세싱 요소(200)의 상태에 영향을 받으며, 슬립 상태인 경우에는 모든 명령어에 따른 프로세싱 요소에서의 동작을 차단시키게 되고, 어웨이크 상태에서는 정상적으로 동작하게 함으로써, 조건 실행 방법 중에서도 전부 조건 실행(full predication) 방식을 사용하여 중첩된 조건문 구조를 보다 효율적으로 처리할 수 있게 한다.
이러한 프로세싱 요소(200)의 상태를 표시하기 위해서는 1 bit만을 필요로 하기 때문에, 상태저장부(280)는 1 bit의 레지스터로 구현할 수 있다.
따라서, 본 실시예에 따른 프로세싱 장치의 경우에는 도 1에 개시된 것과 같은 프로세싱 요소(100)에 1 bit의 레지스터(상태저장부, 280)를 추가하고, 디코더(110)에서 슬립 명령어를 처리할 수 있는 모듈을 추가하여 구현할 수 있으므로, 종래의 프로세싱 장치에 대하여 하드웨어의 추가 내지 변형을 줄이면서 구현할 수 있다는 장점이 있다.
도 3은 본 발명에 따른 프로세싱 요소의 일 구성요소인 프로세싱 요소 제어 장치를 예시한 블록도이다.
도 3을 참조하면, 본 실시예에 따른 프로세싱 요소 제어 장치(300)는 명령어입력부(310), 슬립제어부(320)를 포함한다.
명령어입력부(310)는 프로세싱 장치 외부의 구성요소, 예컨대, 명령어 페쳐(instruction fetcher) 등으로부터 명령어를 입력받아 슬립 명령어를 제외한 나머지인 일반 명령어에 따른 제어 신호를 생성하는 기능을 수행한다.
본 실시예에서, 일반 명령어란, 슬립 명령어를 제외한 나머지 명령어를 가리키는 개념으로, 이에 따라 제어 신호를 생성하는 부분에 있어서는 종래의 기술에 따라 구현할 수 있다.
따라서, 명령어입력부(310)는 도 1에 개시된 디코더(110)에서 생성된 제어 신호를 바로 프로세싱 요소에 전송하지 않고, 슬립제어부(320)를 거치도록 디코더(110)의 구성을 변형하여 구성할 수 있다.
슬립제어부(320)는 입력받은 명령어가 조건 정보 및 슬립 사이클 값을 포함하는 슬립 명령어인 경우에, 슬립 명령어의 조건정보와 프로세싱 요소에서 수행된 이전의 연산결과(301)를 비교한 결과에 따라, 슬립 사이클 값의 사이클 동안에 입력되는 명령어에 따른 제어 신호의 프로세싱 요소로의 전송을 차단한다.
즉, 슬립제어부(320)는, 명령어입력부(310)에 수신된 명령어가 슬립 명령어인 경우에 슬립 명령어에 따른 제어 신호를 생성하거나, 프로세싱 요소의 상태가 슬립상태인 경우에 슬립 사이클 값의 사이클 동안에 명령어입력부(310)에 수신된 명령어를 대체하는 제어 신호를 생성할 수 있다.
이를 위해, 슬립제어부(320)는 명령어입력부(310)에 수신된 명령어가 슬립 명령어인 경우의 제어 신호를 생성하는 구성요소인 슬립명령어처리부(321) 및 프로세싱 요소의 상태가 슬립상태인 경우의 제어 신호를 생성하는 구성요소인 슬립상태처리부(322)를 구비한다.
슬립명령어처리부(321)는 입력받은 명령어가 슬립 명령어인 경우에 슬립 명령어의 조건정보와 프로세싱 요소에서 수행된 이전의 연산결과를 비교한 결과에 따라 프로세싱 요소의 상태를 슬립 상태로 전환하고, 슬립 사이클 값을 저장한다.
예컨대, 프로세싱 요소에서 수행된 이전의 연산결과는 도 2a에 도시된 연산결과저장부(270)와 같이, 프로세싱 요소 제어 장치(300)에 연결된, 프로세싱 요소 내부의 저장공간에 저장되고, 프로세싱 요소 제어 장치(300)에서 이를 인가받아 슬립 명령어의 조건정보와의 비교에 이용하도록 구현될 수 있다.
그리고, 슬립명령어처리부(321)는 조건정보비교부(320)에서의 비교 결과가 슬립 명령어의 조건정보의 조건이 프로세싱 요소에서 수행된 이전의 연산결과(301)에 합치하는 경우에 한해, 프로세싱 요소의 상태를 슬립 상태로 전환시키고 슬립 사이클 값을 저장하도록 구현될 수 있다.
슬립상태처리부(322)는 명령어가 입력될 때마다 프로세싱 요소의 상태(302)를 확인하여, 프로세싱 요소의 상태(302)가 슬립 상태인 경우에는 저장된 슬립 사이클 값에 따라, 저장된 슬립 사이클 값을 차감하거나 프로세싱 요소의 상태를 프로세싱 요소의 동작을 재개함을 가리키는 어웨이크 상태로 전환한다.
슬립상태처리부(322)는 저장된 슬립 사이클 값이 기정의된 기준값 이상인 경우에는, 저장된 슬립 사이클 값을 차감하고, 저장된 슬립 사이클 값이 기정의된 기준값보다 작은 경우에는 프로세싱 요소의 상태를 슬립 상태에서 어웨이크 상태로 전환한다.
도 4a 및 도 4b는 본 발명에 따른 프로세싱 요소 제어 장치에서 프로세싱 요소를 제어하는 방법의 흐름을 도시한 도면이다.
먼저, 도 4a 및 도 4b를 참조하면, 외부의 구성요소 예컨대, 명령어 페쳐(instruction fetcher)로부터 명령어를 입력받는다(S400).
명령어를 입력받은 후의 처리 단계는, 입력받은 명령어가 슬립 명령어인 경우의 제어 신호를 생성하는 슬립명령어처리단계(S410) 및 프로세싱 요소의 상태가 슬립상태인 경우의 제어 신호를 생성하는 슬립상태처리단계(S420)으로 크게 구분되는데, 도 4a는 S410 단계 이후에 S420 단계를 수행하는 것이고, 도 4b는 S420 단계 이후에 S410 단계를 수행하는 것으로, S410 및 S420 단계는 S400 단계와 S430 단계 사이에 위치하면 족하고, 양자 간의 선후 관계는 어느 한쪽으로도 제한되지 않는다.
슬립명령어처리단계(S410)에서는, 입력받은 명령어가 슬립 명령어인지를 확인하여(S411), 슬립 명령어가 아닌 경우에는 입력받은 명령어를 수행하는 제어 신호를 생성한다(S412).
그리고, 프로세싱 요소에서 수행된 이전의 연산결과가 슬립 명령어의 조건정보의 조건에 합치하는지를 판단하여(S413), 합치하는 경우에는 프로세싱 요소의 상태를 슬립 상태로 전환하고 슬립 명령어의 슬립 사이클 값을 저장하는 제어 신호를 생성한다(S414).
슬립상태처리단계(S420)에서는, 프로세싱 요소의 상태가 슬립 상태인지를 확인한다(S421).
슬립 상태인 경우에는 저장된 슬립 사이클 값이 기준값 이상인지를 확인하여(S422), 기준값 이상인 경우에는 저장된 슬립 사이클 값을 차감하는 제어 신호로 대체하고(S423-1), 그렇지 않은 경우에는 프로세싱 요소의 상태를 어웨이크 상태로 전환하는 제어 신호로 대체한다(S424-1).
만약에, 도 4b와 같이, 슬립상태처리단계(S420)가 슬립명령어처리단계(S410)보다 앞서서 위치하는 경우에는, 슬립 상태인 경우에는 저장된 슬립 사이클 값이 기준값 이상인지를 확인하여(S422), 기준값 이상인 경우에는 저장된 슬립 사이클 값을 차감하는 제어 신호를 생성하고(S423-2), 그렇지 않은 경우에는 프로세싱 요소의 상태를 어웨이크 상태로 전환하는 제어 신호를 생성한다(S424-2).
즉, 도 4a와 같이, 슬립명령어처리단계(S410)가 슬립상태처리단계(S420)보다 앞서서 위치하는 경우에는, 슬립상태처리단계(S420)에서, 슬립상태에 해당되는 경우에, 슬립명령어처리단계(S410)에서 생성된 제어 신호를 슬립 상태를 위한 별도의 제어 신호로 대체하는 방식으로 구현할 수 있으나, 도 4b와 같이, 슬립상태처리단계(S420)가 슬립명령어처리단계(S410)보다 앞서서 위치하는 경우에는, 슬립상태에 해당되는 경우에, 아예 슬립명령어처리단계(S410)를 거치지 않고, 슬립 상태를 위한 제어 신호를 그대로 프로세싱 요소에 전송(S430)하도록 구현할 수 있다.
도 5a 내지 도 5c는 본 발명에 따른 프로세싱 요소를 실제 SIMD 기계에 적용한 예를 도시한 것이다.
도 5a는 중첩된 조건 구조를 갖는 컴퓨터 프로그램의 예로서, C 프로그래밍 언어로 기술된 예이며, 도 5b는 도 5a에 도시된 컴퓨터 프로그램을 SIMD 기계에서 실제로 수행하기 위해 어셈블리어로 변환한 예이다.
도 5a을 참조하면, 본 실시예에 따른 컴퓨터 프로그램은, i가 0부터 7까지 증가하는 동안, cond0 배열의 i번째 구성요소가 1이 아니면 x 배열의 i번째 구성요소에 c의 변수 값을 저장하고, cond0 배열의 i번째 구성요소 및 cond1 배열의 i번째 구성요소가 모두 1인 경우에는, x 배열의 i번째 구성요소에 a의 변수 값을 저장하고, cond0 배열의 i번째 구성요소가 1이나 cond1 배열의 i번째 구성요소가 1이 아닌 경우에는, x 배열의 i번째 구성요소에 b의 변수 값을 저장하는 중첩된 조건 구조를 갖는다.
도 5b에서는 if-else 문을 cmp 명령어와 sleep 명령어로 변환함으로써, 중첩된 조건 구조에서의 조건실행을 지원한다.
본 실시예에서, if-else 문를 변환한 어셈블리어 중 “sleep”은 본 실시예에서 새롭게 추가된 슬립 명령어를 가리키는 것으로, “sleep [조건정보] [슬립 사이클]”의 형태로 구성된다.
그리고, “cmp”는 종래의 어셈블리어에서 기정의된 비교 연산자로써, 두 개의 피연산자 간의 대소 관계를 비교하여, 연산결과저장부(flag, 도 5c 참조) 등에 저장한다.
이러한 “cmp” 명령어에서의 비교 연산의 결과를 나타내는 어셈블리어 표기로서, “eq”는 비교대상이 되는 두 피연산자가 일치하는(equal) 경우를 나타내며, “gt”는 비교대상이 되는 두 피연산자 중 앞쪽에 위치한 연산자가 뒤쪽에 위치한 연산자보다 큰(greater than) 경우를 나타내며, “lt”는 비교대상이 되는 두 피연산자 중 앞쪽에 위치한 연산자가 뒤쪽에 위치한 연산자보다 작은(less than) 경우를 나타낸다.
sleep 명령어에서의 조건 정보등을 나타내는 어셈블리어 표기로서, “eq”는 비교대상이 되는 두 피연산자가 일치하는(equal) 경우를 나타내며, “neq”는 비교대상이 되는 두 피연산자가 일치하지 않는(not equal) 경우를 나타내며, “gt”는 비교대상이 되는 두 피연산자 중 앞쪽에 위치한 연산자가 뒤쪽에 위치한 연산자보다 큰(greater than) 경우를 나타내며, “ge”는 비교대상이 되는 두 피연산자 중 앞쪽에 위치한 연산자가 뒤쪽에 위치한 연산자와 일치(equal)하거나 뒤쪽에 위치한 연산자보다 큰(greater than) 경우를 나타내며, “lt”는 비교대상이 되는 두 피연산자 중 앞쪽에 위치한 연산자가 뒤쪽에 위치한 연산자보다 작은(less than) 경우를 나타내며, “le”는 비교대상이 되는 두 피연산자 중 앞쪽에 위치한 연산자가 뒤쪽에 위치한 연산자와 일치(equal)하거나 뒤쪽에 위치한 연산자보다 작은(less than) 경우를 나타낸다.
도 5b를 참조하면,“sleep”명령어는 이전의 “cmp”명령어를 통해 수행된 비교연산 결과가 “sleep”명령어의 조건정보의 조건이 합치하지 않는 경우에는 슬립 사이클을 설정하여 슬립 사이클 구간의 명령어를 수행하지 않도록 한다.
예컨대, 이전의 “cmp”명령어를 통해 수행된 비교연산 결과가 "gt", "lt" 혹은 "neq"인 경우에는,“sleep”명령어의 조건정보가 "neq"”이면, 세 경우 모두 합치하는 것으로 볼 수 있다.
본 실시예에서의 슬립 사이클 값은 컴파일러 등에서 분기문(control flow)가 있는 부분을 컴파일하는 과정에서 해당 분기문이 가리키는 명령어가 현재의 명령어로부터 얼마나 떨어져 있는지를 계산하여 조건 실행을 위한 연산자의 피연산자로 자동으로 넣어주는 값으로 구현될 수 있으며, 이는 종래의 if-conversion 기술에 따른다.
도 5c는 도 5a 내지 도 5b에 기술된 컴퓨터 프로그램이 서로 다른 조건을 갖고 있는 프로세싱 요소에서 실행되는 예를 도시함으로써, 본 발명에 따를 경우에, 중첩된 조건 구조를 복수의 프로세싱 요소를 갖는 SIMD 기계에서 용이하게 처리할 수 있음을 보여주기 위한 도면이다.
도 5c를 참조하면, m번째 프로세싱 요소는 cond0 값이 1이고, cond1 값이 0이기 때문에, 2번째 슬립 연산에 의해 슬립 상태로 전환되지 않으며, 5번째 슬립 연산에 의해 슬립 상태로 전환된다, 이와 동시에 슬립 명령어의 피연산자인 슬립 사이클 값 3을 카운터(counter)에 저장하여, 다음 사이클부터 1씩 차감해나간다. 그러다가, 7번째 사이클에서 슬립 사이클 값이 2가 되면, 프로세싱 요소는 8번째 사이클에서 어웨이크 상태로 전환된다.
본 실시예에서는 슬립 사이클 값이 2가 되면, 프로세싱 요소 내의 상태저장부(status)에 저장된 정보를 슬립 상태에서 어웨이크 상태로 변경하여, 어웨이트 상태로 전환하도록 구현하고 있는데, 이는 슬립 상태로 들어가고, 다시 어웨이크 상태로 나오는 과정에 각각 1 사이클씩 소요되므로, 슬립 사이클 값이 2일 때, 프로세싱 요소 내의 상태저장부(status)에 저장된 정보를 슬립 상태에서 어웨이크 상태로 변경하도록 구현한다.
n번째 프로세싱 요소는 cond0 값이 0이고, cond1 값이 1이기 때문에, 2번째 슬립 연산에 의해 슬립 상태로 전환된다, 이와 동시에 슬립 명령어의 피연산자인 슬립 사이클 값 8을 카운터에 저장하여, 다음 사이클부터 1씩 차감해나간다. 그러다가, 7번째 사이클에서 슬립 사이클 값이 2가 되면, 프로세싱 요소는 8번째 사이클에서 어웨이크 상태로 전환된다.
본 실시예에 따르면, SIMD 기계에 속한 모든 프로세싱 요소가 동일한 명령어를 입력받으면서도 각자의 조건에 따라 서로 다른 동작을 하는 것을 확인할 수 있으며, 또한, 기존의 스칼라 코드를 위한 디코더에 본 발명에서 새롭게 정의된 슬립 명령어에 관한 처리 모듈을 추가하여 사용하면 족하고, 별도의 새로운 컴파일 기법을 요구하지 않는다.
특히, 조건 실행 방법 중 전부 조건 실행(full predication) 방식을 사용하여 중첩된 조건문 구조를 보다 효율적으로 처리할 수 있게 한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 케리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 첨부된 도면에 도시된 일 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 수 있을 것이다. 따라서, 본 발명의 진정한 보호 범위는 첨부된 청구 범위에 의해서만 정해져야 할 것이다.

Claims (16)

  1. 제어 신호에 따라 연산을 수행하는 프로세싱 요소; 및
    외부로부터 입력되는 명령어를 기초로 생성된 제어 신호를 상기 프로세싱 요소에 전송하는 프로세싱요소제어부를 포함하고,
    상기 프로세싱요소제어부는, 상기 입력되는 명령어가 조건 정보 및 슬립 사이클 값을 포함하는 슬립 명령어인 경우에, 상기 슬립 명령어의 조건정보와 상기 프로세싱 요소에서 수행된 이전의 연산결과를 비교한 결과에 따라 상기 슬립 사이클 값의 사이클 동안에 입력되는 명령어에 따른 제어 신호의 전송을 차단하는 것을 특징으로 하는 프로세싱 장치.
  2. 제1항에 있어서,
    상기 프로세싱요소제어부는 상기 프로세싱 요소에서 수행된 이전의 연산결과가 상기 슬립 명령어의 조건 정보의 조건에 합치하는 경우에, 상기 슬립 사이클 값의 사이클 동안에 입력되는 명령어에 따른 제어 신호의 전송을 차단하는 것을 특징으로 하는 프로세싱 장치.
  3. 제1항에 있어서,
    상기 프로세싱 요소 및 상기 프로세싱요소제어부에 연결되어, 상기 프로세싱 요소의 상태를 저장하는 상태저장부를 더 포함하고,
    상기 프로세싱요소제어부는 상기 입력된 명령어가 상기 슬립 명령어인 경우에, 상기 슬립 명령어의 조건정보와 상기 프로세싱 요소에서 수행된 이전의 연산결과를 비교한 결과에 따라 상기 프로세싱 요소의 상태를 상기 프로세싱 요소의 동작을 차단함을 가리키는 슬립 상태로 전환하고, 상기 슬립 사이클 값을 저장하는 것을 특징으로 하는 프로세싱 장치.
  4. 제3항에 있어서,
    상기 프로세싱요소제어부는 상기 명령어가 입력될 때마다 상기 프로세싱 요소의 상태를 확인하여, 상기 프로세싱 요소의 상태가 상기 슬립 상태인 경우에는, 상기 저장된 슬립 사이클 값에 따라, 상기 저장된 슬립 사이클 값을 차감하거나 상기 프로세싱 요소의 상태를 상기 프로세싱 요소의 동작을 재개함을 가리키는 어웨이크 상태로 전환하는 것을 특징으로 하는 프로세싱 장치.
  5. 제4항에 있어서,
    상기 슬립 명령어의 슬립 사이클 값은 상기 프로세싱 요소의 로컬 레지스터에 저장되고,
    상기 프로세싱요소제어부는 상기 확인된 프로세싱 요소의 상태가 상기 슬립 상태이고, 상기 저장된 슬립 사이클 값이 기정의된 기준값 이상인 경우에는, 상기 저장된 슬립 명령어의 슬립 사이클 값을 차감하는 제어 신호를 상기 프로세싱 요소에 전송하는 것을 특징으로 하는 프로세싱 장치.
  6. 외부로부터 명령어를 입력받는 단계; 및
    상기 입력받은 명령어가 조건 정보 및 슬립 사이클 값을 포함하는 슬립 명령어인 경우에, 상기 슬립 명령어의 조건정보와 프로세싱 요소에서 수행된 이전의 연산결과를 비교한 결과에 따라 상기 슬립 사이클 값의 사이클 동안에 입력되는 명령어에 따른 제어 신호의 상기 프로세싱 요소로의 전송을 차단하는 슬립제어단계를 포함하는 것을 특징으로 하는 프로세싱 요소 제어 방법.
  7. 제6항에 있어서,
    상기 슬립제어단계는 상기 프로세싱 요소에서 수행된 이전의 연산결과가 상기 슬립 명령어의 조건 정보의 조건에 합치하는 경우에, 상기 슬립 사이클 값의 사이클 동안에 입력되는 명령어에 따른 제어 신호의 상기 프로세싱 요소로의 전송을 차단하는 것을 특징으로 하는 프로세싱 요소 제어 방법.
  8. 제6항에 있어서,
    상기 슬립제어단계는
    상기 입력받은 명령어가 상기 슬립 명령어인 경우에, 상기 슬립 명령어의 조건정보와 상기 프로세싱 요소에서 수행된 이전의 연산결과를 비교하는 단계; 및
    상기 비교의 결과에 따라 상기 프로세싱 요소의 상태를 상기 프로세싱 요소의 동작을 차단함을 가리키는 슬립 상태로 전환하고, 상기 슬립 사이클 값을 저장하는 단계를 포함하는 것을 특징으로 하는 프로세싱 요소 제어 방법.
  9. 제8항에 있어서,
    상기 슬립제어단계는
    상기 명령어가 입력되면 상기 프로세싱 요소의 상태를 확인하는 단계; 및
    상기 프로세싱 요소의 상태가 상기 슬립 상태인 경우에는 상기 저장된 슬립 사이클 값에 따라, 상기 저장된 슬립 사이클 값을 차감하거나 상기 프로세싱 요소의 상태를 상기 프로세싱 요소의 동작을 재개함을 가리키는 어웨이크 상태로 전환하는 슬립상태처리단계를 포함하는 것을 특징으로 하는 프로세싱 요소 제어 방법.
  10. 제9항에 있어서,
    상기 슬립상태처리단계는,
    상기 저장된 슬립 사이클 값이 기정의된 기준값 이상인 경우에는 상기 저장된 슬립 사이클 값을 차감하는 단계; 및
    상기 저장된 슬립 사이클 값이 상기 기정의된 기준값보다 작은 경우에는 상기 프로세싱 요소의 상태를 상기 프로세싱 요소의 동작을 재개함을 가리키는 어웨이크 상태로 전환하는 단계를 포함하는 것을 특징으로 하는 프로세싱 요소 제어 방법.
  11. 외부로부터 명령어를 입력받는 명령어입력부; 및
    상기 입력받은 명령어가 조건 정보 및 슬립 사이클 값을 포함하는 슬립 명령어인 경우에, 상기 슬립 명령어의 조건정보와 프로세싱 요소에서 수행된 이전의 연산결과를 비교한 결과에 따라, 상기 슬립 사이클 값의 사이클 동안에 입력되는 명령어에 따른 제어 신호의 상기 프로세싱 요소로의 전송을 차단하는 슬립제어부를 포함하는 것을 특징으로 하는 프로세싱 요소 제어 장치.
  12. 제11항에 있어서,
    상기 슬립제어부는 상기 프로세싱 요소에서 수행된 이전의 연산결과가 상기 슬립 명령어의 조건 정보의 조건에 합치하는 경우에, 상기 슬립 사이클 값의 사이클 동안에 입력되는 명령어에 따른 제어 신호의 상기 프로세싱 요소로의 전송을 차단하는 것을 특징으로 하는 프로세싱 요소 제어 장치.
  13. 제11항에 있어서,
    상기 슬립제어부는 상기 입력받은 명령어가 상기 슬립 명령어인 경우에 상기 슬립 명령어의 조건정보와 상기 프로세싱 요소에서 수행된 이전의 연산결과를 비교한 결과에 따라 상기 프로세싱 요소의 상태를 상기 프로세싱 요소의 동작을 차단함을 가리키는 슬립 상태로 전환하고, 상기 슬립 사이클 값을 저장하는 슬립명령어처리부를 포함하는 것을 특징으로 하는 프로세싱 요소 제어 장치.
  14. 제13항에 있어서,
    상기 슬립제어부는 상기 명령어가 입력될 때마다 상기 프로세싱 요소의 상태를 확인하여, 상기 프로세싱 요소의 상태가 상기 슬립 상태인 경우에는 상기 저장된 슬립 사이클 값에 따라, 상기 저장된 슬립 사이클 값을 차감하거나 상기 프로세싱 요소의 상태를 상기 프로세싱 요소의 동작을 재개함을 가리키는 어웨이크 상태로 전환하는 슬립상태처리부를 포함하는 것을 특징으로 하는 프로세싱 요소 제어 장치.
  15. 제14항에 있어서,
    상기 슬립상태처리부는 상기 저장된 슬립 사이클 값이 기정의된 기준값 이상인 경우에는 상기 저장된 슬립 사이클 값을 차감하고, 상기 저장된 슬립 사이클 값이 상기 기정의된 기준값보다 작은 경우에는 상기 프로세싱 요소의 상태를 상기 프로세싱 요소의 동작을 재개함을 가리키는 어웨이크 상태로 전환하는 것을 특징으로 하는 프로세싱 요소 제어 장치.
  16. 제6항 내지 제10항 중 어느 한 항에 기재된 프로세싱 요소 제어 방법을 수행하는 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020100085492A 2010-09-01 2010-09-01 프로세싱 장치 및 프로세싱 요소 제어 장치 및 방법 KR101101993B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100085492A KR101101993B1 (ko) 2010-09-01 2010-09-01 프로세싱 장치 및 프로세싱 요소 제어 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100085492A KR101101993B1 (ko) 2010-09-01 2010-09-01 프로세싱 장치 및 프로세싱 요소 제어 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101101993B1 true KR101101993B1 (ko) 2012-01-13

Family

ID=45613657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100085492A KR101101993B1 (ko) 2010-09-01 2010-09-01 프로세싱 장치 및 프로세싱 요소 제어 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101101993B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990012409A (ko) * 1997-07-29 1999-02-25 윤종용 레지스터 제어 방법
KR20080078164A (ko) * 2007-02-22 2008-08-27 삼성전자주식회사 액정 표시 장치의 제조 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990012409A (ko) * 1997-07-29 1999-02-25 윤종용 레지스터 제어 방법
KR20080078164A (ko) * 2007-02-22 2008-08-27 삼성전자주식회사 액정 표시 장치의 제조 방법

Similar Documents

Publication Publication Date Title
US11687346B2 (en) Providing code sections for matrix of arithmetic logic units in a processor
KR100309566B1 (ko) 파이프라인프로세서에서다중명령어를무리짓고,그룹화된명령어를동시에발행하고,그룹화된명령어를실행시키는방법및장치
US9612840B2 (en) Method and apparatus for implementing a dynamic out-of-order processor pipeline
EP3103302B1 (en) Method and apparatus for enabling a processor to generate pipeline control signals
TWI728068B (zh) 複數乘法指令
US9015656B2 (en) Mapping vector representations onto a predicated scalar multi-threaded system
KR20140131472A (ko) 상수 저장 레지스터를 구비하는 재구성 가능 프로세서
US20220035635A1 (en) Processor with multiple execution pipelines
KR102458467B1 (ko) 벡터 생성 명령
Etsion et al. Task superscalar: Using processors as functional units
US6079010A (en) Multiple machine view execution in a computer system
JP2874351B2 (ja) 並列パイプライン命令処理装置
KR101101993B1 (ko) 프로세싱 장치 및 프로세싱 요소 제어 장치 및 방법
JP4771079B2 (ja) Vliw型プロセッサ
US20030145190A1 (en) Compiler algorithm to implement speculative stores
KR100231852B1 (ko) 듀얼 파이프라인 프로세서에서 로드 명령의 병렬 수행 장치
Koizumi et al. Reduction of instruction increase overhead by STRAIGHT compiler
KR101118593B1 (ko) Vliw 명령어 처리 장치 및 방법
KR20060009872A (ko) 프로세싱 시스템, 이 프로세싱 시스템에 의해서인스트럭션의 집합을 수행하는 방법 및 컴파일러 프로그램제품
CN118295712B (zh) 数据处理方法、装置、设备和介质
EP4202664A1 (en) System, apparatus and method for throttling fusion of micro-operations in a processor
US20140089645A1 (en) Processor with execution unit interoperation
JP2000029696A (ja) プロセッサおよびパイプライン処理制御方法
FitzRoy-Dale The VLIW and EPIC processor architectures
JP2861234B2 (ja) 命令処理装置

Legal Events

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

Payment date: 20141216

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151006

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161101

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171124

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181203

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191203

Year of fee payment: 9