KR100730280B1 - 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법 - Google Patents

재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법 Download PDF

Info

Publication number
KR100730280B1
KR100730280B1 KR1020050117868A KR20050117868A KR100730280B1 KR 100730280 B1 KR100730280 B1 KR 100730280B1 KR 1020050117868 A KR1020050117868 A KR 1020050117868A KR 20050117868 A KR20050117868 A KR 20050117868A KR 100730280 B1 KR100730280 B1 KR 100730280B1
Authority
KR
South Korea
Prior art keywords
configuration
loop
delay
memory
configuration bits
Prior art date
Application number
KR1020050117868A
Other languages
English (en)
Other versions
KR20070059238A (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 삼성전자주식회사
Priority to KR1020050117868A priority Critical patent/KR100730280B1/ko
Priority to US11/525,913 priority patent/US7478227B2/en
Publication of KR20070059238A publication Critical patent/KR20070059238A/ko
Application granted granted Critical
Publication of KR100730280B1 publication Critical patent/KR100730280B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Logic Circuits (AREA)

Abstract

본 발명은 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및 방법에 관한 것으로서, 상기 재구성 프로세서는, 각 PU(Processing Unit)에 일정 연산의 수행을 위한 구성 비트들을 제공하는 구성 메모리 이외에 딜레이 연산 여부를 알려주는 유효 정보 메모리를 가진다. 상기 PU에서는 딜레이 제어부가 상기 유효 정보 메모리로부터 전달되는 비트 정보(VALID)를 참조하여 다음 연산이 딜레이 연산인지를 결정함에 따라, 딜레이 연산에 대하여는 PE(Processing Element)의 실행이 디스에이블되고, 또한 루프 버퍼가 상기 구성 메모리에서 전달된 구성 비트들을 상기 PE로 전달하지 않는다. 따라서, 딜레이 연산을 지정하는 구성 비트들을 상기 루프 버퍼에 저장할 필요가 없다.
재구성 프로세서(Reconfigurable Processor), 루프 버퍼, 구성 메모리, 루프 카운터

Description

재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및 방법{Apparatus and Method for Optimizing Loop Buffer in Reconfigurable Processor}
도 1은 일반적인 재구성 프로세서를 설명하기 위한 도면이다.
도 2는 종래의 6 연산에 대한 II=1의 스케줄링을 설명하기 위한 도면이다.
도 3은 종래의 6 연산에 대한 II=2의 스케줄링을 설명하기 위한 도면이다.
도 4는 4개의 PE들을 이용한 6 연산의 재구성 처리를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 재구성 프로세서를 설명하기 위한 도면이다.
도 6은 도 5의 재구성 프로세서의 동작 설명을 위한 흐름도이다.
도 7은 본 발명의 일 실시 예에 따라 딜레이 연산을 위한 구성 비트들이 루프 버퍼로 전달될 필요 없음을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시 예에 따른 딜레이 연산 적용율과 루프 버퍼 억세스 오버헤드 간의 관계를 나타내는 그래프이다.
<도면의 주요 부분에 대한 부호의 설명>
510: 프로세싱 유닛(Processing Unit: PU)
511: 프로세싱 엘리먼트(Processing Element: PE)
512: 루프 버퍼(loop buffer)
513: 딜레이 제어부
520: 구성 메모리(configuration memory)
530: 유효 정보 메모리(valid information memory)
본 발명은 재구성 프로세서(reconfigurable processor)에 관한 것으로서, 더욱 상세하게는 구성 비트들(configuration bits)에 의하여 일정 기능들을 수행하도록 준비된 각 회로 유닛(unit)의 접속 구성과 동작 설정을 지정하기 위한 루프 버퍼(loop buffer)를 억세스하는 오버헤드(overhead)를 줄여서 시스템 성능을 최적화한 복구성 프로세서 및 그 방법에 관한 것이다.
일반적으로 범용의 디지털 신호 프로세서나 마이크로프로세서는 소프트웨어를 변경시켜서 다양한 기능들을 실현할 수 있도록 되어있다. 그러나, 이와 같은 고성능 프로세서를 이용하여 모든 기능들을 수행함에 따라, 프로세서에 걸리는 부하가 커지고 소비전력이 증가되고 있다.
각 기능을 수행하는 별도의 전용 회로들을 두는 경우에, 중앙 프로세서의 부하를 줄일 수 있고, 이에 따라 소비 전력의 저하도 기대할 수 있다. 그러나, 전용 회로 방식에서는 시스템 사양에 따라 프로세서나 전용 회로를 설계/개발 해야 하므로 효율성이 떨어진다.
이에 따라, 휴대폰, DMB 폰, PDA 등 고속 무선 데이터의 송수신을 위한 시스템이나, 유비쿼터스(ubiquitous) 시스템 등 최근의 고속 멀티미디어 기기에 재구성 프로세서를 채용하려는 시도가 활발하다. 상기 재구성 프로세서에서는 준비된 다수의 회로 유닛들, 즉, PE들(Processing Elements)의 구성(configuration), 즉, 접속 구성과 동작 설정 등이 소프트웨어로 변경될 수 있다. 하나의 회로 유닛이 소프트웨어에 의하여 변경되는 설정에 따라 여러 가지 구성(configuration)으로 수행할 수 있으므로, 여러 가지 다양한 모델에 적용될 수 있다. 이에 따라, 효율성이 증대되고, 중앙 프로세서의 부하를 줄이며, 소비 전력을 절감할 수 있다.
도 1은 일반적인 재구성 프로세서(100)를 설명하기 위한 도면이다. 도 1을 참조하면, 상기 재구성 프로세서(100)는 구성 메모리(configuration memory)(110) 및 다중 구성(multi configurations)을 위한 PE들(121)을 가지는 회로 어레이, 일명 CGA(Coarse Grained Array)(120)를 포함한다. 상기 CGA(120)를 구성하는 PE들(121)은 기능 유닛(Function Unit: FU)과 레지스터 파일(Register File: RF) 등을 구비하고, 상기 구성 메모리(110)로부터 전달되는 구성 비트들(configuration bits)에 따라 다중 구성(multi configurations)을 지원한다. 상기 CGA(120)의 PE들(121)은 다른 소스(source)로부터 데이터를 받을 수 있으며, 다른 목적지(destination)로 처리 결과를 전달할 수 있다. 이와 같이 상기 구성 메모리(110)의 구성 데이터에 따라 상기 CGA(120)의 PE들(121)이 여러 가지 기능을 수행하고, 중앙 프로세서(미도시)는 다른 중요 기능들을 수행함으로써, 중앙 프로세서의 부하를 줄일 수 있다.
상기 CGA(120) 내의 PE들이 일정 루프 연산을 반복적 수행하는 경우에, 각 PE의 연산 스케줄링을 위한 한 예가 도 2에 도시되어 있다. 도 2와 같은 루프 연산 {A, B, C, D, E, F}을 II=1 방식에서 시간에 따라 분석해 보면, 매 시간마다 PE들에서 동일하게 수행되는 커널(kernel)(210)은 연산 F, E, C, D, A, B로 구성된다. II 는 각 PE에서 루프 연산의 초기화 간격(Initiation Interval)으로서, II=1 은 매 싸이클 마다 루프의 새로운 반복이 시작됨을 나타낸다. II=1 인 경우 상기 커널(210)의 6 연산이 같은 시간에 이루어지도록 하기 위하여, 6개의 PE들이 요구된다.
위와 같은 루프 연산 {A, B, C, D, E, F}을 II=2 인 경우, 시간에 따라 분석해 보면, 도 3과 같이 매 시간마다 PE들에서 동일하게 수행되는 커널(kernel)(310)은 연산 {E, A, B}, {F, C, D}로 구성된다. 도 3과 같이 II=2 일 때, 도 4와 같이 4개의 PE들(411~414)에서 이루어질 수 있다. 즉, 제1 싸이클(410)에서 먼저, 제1 PE(411), 제2 PE(412) 및 제3 PE(413)가 A, B, E 연산을 수행하고, 제4 PE(414)는 딜레이 연산을 수행한다. 다음에, 제2 싸이클(420)에서, 제1 PE(411), 제4 PE(414) 및 제3 PE(413)가 C, D, F 연산을 수행하고, 제2 PE(412)는 딜레이 연산을 수행한다.
상기 구성 메모리(110)로부터 전달되는 구성 비트들(configuration bits)에 따라, 이와 같은 두 싸이클 동작에 따른 루프 연산이 상기 CGA(120) 내의 PE들에서 반복되도록 할 수 있다. 이와 같은 루프 연산 이외에도 상기 구성 비트들(configuration bits)의 변경에 따라 다양한 기능 연산이 가능할 것이다.
그러나, 도 4와 같이 제2 PE(412) 및 제4 PE(414)에서는 제1 싸이클(410) 또 는 제2 싸이클(420) 동안에 딜레이 연산이 수행된다. 즉, 도 4에 도시하지는 않았지만 딜레이 연산을 나타내는 구성 비트들이 상기 구성 메모리(110)로부터 전달되어, 각 PE의 루프 버퍼로 전달되어야 하고, 또한, 루프 버퍼로부터 전달된 상기 딜레이 연산을 위한 구성 비트들에 따라, 상기 제2 PE(412) 및 상기 제4 PE(414)가 해당 연산을 실행해야 한다. 이와 같이 II(루프 연산의 초기화 간격)가 증가하게 됨에 따라 저장해야 하는 구성 비트들이 증가하게 되어 루프 버퍼의 사이즈를 크게 해야 하며 딜레이 연산일 경우에도 계속 구성 비트들을 PE에 보내주어야 하기 때문에, 이를 억세스 하기 위한 부담과 이에 따른 소비 전력의 증가라는 문제점을 안고 있다.
따라서, 본 발명의 목적은 상술한 문제점을 해결하기 위한 것으로서, 루프 버퍼의 억세스 부담과 사이즈를 줄이기 위하여 유효(valid) 여부의 연산 정보를 저장한 메모리를 사용하여 딜레이 연산이 각 회로 유닛에서 실행될 필요가 없도록 한 재구성 프로세서를 제공하는 데 있다.
본 발명의 다른 목적은, 딜레이 연산을 고려하여 구성 비트들(configuration bits)을 설정하고, 딜레이 연산이 무효(invalid)가 되도록 설정하여 각 회로 유닛의 연산 수행이 디스에이블 되도록 하는 재구성 프로세싱 방법을 제공하는 데 있다.
상기와 같은 본 발명의 목적을 달성하기 위한 본 발명에 따른 재구성 프로세 서는, 적어도 하나의 루프 구성을 위한 구성 비트들을 저장하는 구성 메모리; 루프 내에 존재하는 연산들이 딜레이 연산인지를 알려주는 비트 정보를 저장하는 유효 정보 메모리; 및 상기 유효 정보 메모리로부터 전달되는 비트 정보를 참조하여 다음 싸이클의 연산이 딜레이 연산인지를 결정하고, 상기 결정 결과에 따라 상기 구성 메모리로부터의 구성 비트들에 따른 구성의 전환과 실행을 선택적으로 실시하는 적어도 하나의 프로세싱 유닛을 포함한다.
상기 적어도 하나의 프로세싱 유닛은, 상기 구성 메모리로부터 적어도 하나의 루프 구성을 위한 구성 비트들을 받아 임시 저장하는 루프 버퍼; 상기 유효 정보 메모리로부터 전달되는 비트 정보를 참조하여 다음 싸이클의 연산이 딜레이 연산인지를 나타내는 신호들을 생성하는 딜레이 제어부; 및 다른 소스로부터 데이터를 받아 상기 루프 버퍼로부터의 구성 비트들에 따른 구성의 전환과 실행을 실시하여 실시 결과를 다른 목적지로 출력하는 프로세싱 엘리먼트를 포함하고, 상기 딜레이 제어부에서 생성된 신호들에 따라 선택적으로 상기 루프 버퍼는 해당 구성 비트들을 출력하고, 상기 프로세싱 엘리먼트는 상기 구성의 전환과 실행을 실시하는 것을 특징으로 한다.
상기 딜레이 제어부는 루프 내의 딜레이 연산의 수에 의하여 결정된 반복 횟수만큼 카운트하여 상기 루프 버퍼의 구성 비트들이 한번씩 출력되도록 제어하는 것을 특징으로 한다.
상기 루프 버퍼는 상기 딜레이 연산을 지정하는 구성 비트들을 저장하지 않으므로, 프리 페치(prefetch) 등 다른 목적으로 활용될 유휴 공간이 확보될 수 있 다.
상기 유효 정보 메모리는 상기 루프 내의 각 연산이 상기 딜레이 연산인지 여부에 따라 서로 다른 2진 논리 상태 데이터를 저장한다.
상기 구성 메모리는 상기 루프 내에 존재하는 딜레이 연산을 위한 구성 비트들이 포함된 데이터를 저장할 수 있고, 또는 상기 루프 내에 존재하는 딜레이 연산을 위한 구성 비트들을 포함하지 않을 수도 있다.
상기와 같은 본 발명의 다른 목적을 달성하기 위한 본 발명에 따른 복수의 프로세싱 엘리먼트들을 가지는 재구성 프로세서에서, 적어도 하나의 루프 구성을 위한 구성 비트들을 저장하는 구성 메모리를 이용한 재구성 프로세싱 방법에 있어서, 루프 내에 존재하는 연산들이 딜레이 연산인지를 알려주는 비트 정보를 저장하는 유효 정보 메모리로부터 다음 싸이클 연산을 위한 해당 비트 정보를 읽는 단계; 상기 읽어온 비트 정보를 참조하여 다음 싸이클의 연산이 딜레이 연산인지를 결정하는 단계; 및 각 프로세싱 엘리먼트에서 상기 결정 결과에 따라 선택적으로 상기 구성 메모리로부터의 구성 비트들에 따른 구성의 전환과 실행을 실시하는 단계를 포함하는 것을 특징으로 한다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 5는 본 발명의 일 실시 예에 따른 재구성 프로세서(500)를 설명하기 위한 도면이다. 도 5를 참조하면, 상기 재구성 프로세서(500)는 PU(Processing Unit: 프로세싱 유닛)(510), 구성 메모리(520) 및 유효 정보 메모리(530)을 포함한다.
상기 재구성 프로세서(500)는 상기 구성 메모리(520)에서 회로 유닛(unit), 즉, 상기 PU(510) 내부 회로의 구성, 즉, 접속 구성과 동작 설정을 지정함에 따라, 상기 PU(510)에서 여러 가지 다양한 구성들(configurations)이 수행되도록 한 다중 모델/컨텍스트(context)에 적응 적인 효율적인 프로세서이다. 특히, 본 발명에서는 중앙 프로세서(미도시)의 부하를 줄여서 소비 전력을 절감시키는 것 이외에도, 상기 PU(510) 내부에서 루프 연산을 위하여 사용되는 루프 버퍼를 억세스하는 오버헤드(overhead)를 줄이기 위하여 상기 유효 정보 메모리(530)를 사용한다.
도 5에서 설명의 편의상 상기 PU(510)가 하나로 도시되어 있지만, 상기 재구성 프로세서(500)는 일반적으로 CGA(Coarse Grained Array) 또는 FGA(Fine Grained Array) 등의 형태로 복수의 PU들을 가진다. 상기 재구성 프로세서(500)가 복수의 PU들을 가지는 경우에, 상기 구성 메모리(520) 및 상기 유효 정보 메모리(530)는 그만큼 할당된 영역에 상기 복수의 PU들에 필요한 정보를 저장하여 상기 PU들의 구성을 지원할 수 있다.
여기서, 상기 구성 메모리(520)로부터 다양한 구성을 받는 기본 회로 유닛을 PU라고 하였고, 이와 같은 명칭은 일반적으로 불리는 PE(Processing Element)와 유사하며, 상기 PU(510) 내의 PE(511)와 구분되도록 하였다.
상기 PE(511)는 기능 유닛(Function Unit: FU)과 레지스터 파일(Register File: RF) 등을 구비하고, 다양한 구성 비트들(configuration bits)에 따라 다중 구성(multi configurations)을 지원한다. 상기 PE(511)는 다른 소스(source), 즉, PU 또는 중앙 레지스터 파일(미도시) 등으로부터 데이터를 받을 수 있으며, 다른 목적지(destination)로 처리 결과를 전달할 수 있다.
이하, 도 5의 재구성 프로세서(500)의 동작 설명을 위하여 도 6의 흐름도가 참조된다.
먼저, 상기 구성 메모리(520)에 지원하고자 하는 다양한 구성들을 위한 구성 비트들을 저장한다(S610). 여기에는 루프 연산이 스케줄링되어 해당 연산이 반복적으로 수행되도록 하는 구성 비트들이 포함될 수 있다. 예를 들어, 상기 PU(510)는 워드 단위의 덧셈, 곱셈, 축적(MAC) 기능 등만을 반복적으로 수행할 수 있다. 도 4의 예에서, 루프내의 연산들 A, B, C, D, E, F 각각도 덧셈, 곱셈, 축적(MAC) 기능 등을 나타낸다.
상기 유효 정보 메모리(530)에도 상기 구성 메모리(520)에 저장된 구성들과 함께 상기 다양한 구성들을 지원할 비트 정보(VALID)를 저장한다(S620). 상기 유효 정보 메모리(530)에 저장되는 비트 정보(VALID)는 상기 구성 메모리(520)로부터의 구성 비트들에 따라 상기 PU(510)가 실시할 연산들이 딜레이 연산인지를 알려주는 정보로서, 루프 연산 내의 어떤 싸이클에서의 연산이 특정 기능을 수행하는 연산인지 또는 노 오퍼레이션(No Operation: NOP)인지를 알려준다. 예를 들어, 다음 싸이클에서 상기 PU(510)가 실시할 연산이 딜레이 연산(NOP)인지 여부에 따라 상기 유효 정보 메모는 1/0 과 같이 서로 다른 2진 논리 상태 데이터를 출력할 수 있다.
이와 함께, 딜레이 연산 시에 상기 PU(510)의 실행을 디스에이블하기 위하 여, 상기 PU(510)에서 루프 연산이 이루어질 반복(iteration) 횟수(VLDINST)가 [수학식 1]과 같이 정해져야 한다. [수학식 1]에서 II(Initiation Interval)은 상기 PU(510)에서 루프 연산의 초기화 간격(Initiation Interval)으로서, 도 2와 같은 스케줄링에서II=1 은 매 싸이클마다 루프의 새로운 반복이 시작됨을 나타내고, 도 3과 같은 스케줄링에서II=2 는 두 싸이클마다 루프의 새로운 반복이 시작됨을 나타낸다.
[수학식 1]
VLDINST = II - 딜레이 연산의 수 - 1
이와 같은 상기 구성 메모리(520)의 설정, 상기 유효 정보 메모리(530)의 설정, 및 상기 반복 횟수(VLDINST)의 결정 등은 소스 코드를 컴파일 하는 단계에서 정해 질 수 있다.
이와 같이, 상기 구성 메모리(520) 및 상기 유효 정보 메모리(530)가 설정되고, 도 5의 회로 구성이 준비되면, 상기 재구성 프로세서(500)는 상기 유효 정보 메모리(530)를 이용하는 본 발명에 따라 상기 PU(510) 내부에서 사용되는 루프 버퍼(512)를 억세스하는 오버헤드를 줄이면서 동작시킬 수 있다(S630).
즉, 상기 PU(510)는 상기 유효 정보 메모리(530)로부터 전달되는 비트 정보(VALID)가 유효(valid=1)인지 무효(invalid=1 또는 valid=0) 인지를 참조하여 다음 싸이클의 연산이 딜레이 연산인지를 결정한다(S640). 이에 따라, 상기 PU(510)는 상기 결정 결과에 따라 상기 구성 메모리(520)로부터의 구성 비트들에 따른 구성의 전환과 실행을 선택적으로 실시한다. 예를 들어, 상기 비트 정보(VALID)가 유효(valid=1)인 경우에, 상기 PU(510)는 상기 구성 메모리(520)로부터 전달 받아 임시 저장한 상기 루프 버퍼(512)의 구성 비트들에 따라 구성을 전환하고 해당 구성을 실행하지만, 그렇지 않은 경우에는 구성의 전환 및 실행 없이 디스에이블 상태로 있게 된다. 이하 상기 PU(510)의 동작이 구체적으로 설명된다.
도 5에서, 상기 PU(510)는 PE(Processing Element: 프로세싱 엘리먼트)(511), 루프 버퍼(512) 및 딜레이 제어부(513)를 포함한다.
상기 루프 버퍼(512)는 상기 구성 메모리(520)로부터 루프 연산 구성을 위한 구성 비트들을 받아 임시 저장한다. 상기 PE(511)는 다른 소스로부터 데이터를 받아 상기 루프 버퍼(512)로부터의 구성 비트들에 따른 구성의 전환과 실행을 실시하여 실시 결과를 다른 목적지로 출력한다.
본 발명에서, 상기 루프 버퍼(512)와 상기 PE(511)는 상기 딜레이 제어부(513)의 제어를 받는다. 상기 딜레이 제어부(513)는 상기 유효 정보 메모리(530)로부터 전달되는 비트 정보(VALID)를 참조하여 다음 싸이클의 연산이 딜레이 연산인지를 나타내는 신호들(CON1, CON2)을 생성한다.
상기 딜레이 제어부(513)는 논리곱(AND) 로직(515) 및 루프 카운터(516)을 포함한다. 상기 논리곱 로직(515)은 상기 비트 정보(VALID)와 싸이클을 알리는 클럭 신호(CLK)를 비교하여 제1 제어 신호(CON1)를 생성한다. 상기 제1 제어 신호(CON1)의 논리 상태에 따라 상기 PE(511)는 선택적으로 상기 구성의 전환과 실행을 실시한다.
상기 루프 카운터(516)는 상기 제1 제어 신호(CON1)의 논리 상태에 따라 선택적으로 카운트하여 제2 제어 신호(CON2)를 생성하고, 이에 따라, 상기 루프 버퍼(512)는 상기 카운트 값인 상기 제2 제어 신호(CON2)에 따라 선택적으로 해당 싸이클의 구성 비트들을 상기 PE(511)로 출력한다.
예를 들어, 다음 싸이클에서 상기 비트 정보(VALID)가 유효(valid=1)인 경우에, 상기 루프 카운터(516)는 카운트 값이 하나 증가된 상기 제2 제어 신호(CON2)를 상기 루프 버퍼(512)로 전달하고, 이에 따라 상기 루프 버퍼(512)로부터 다음 연산을 위한 구성 비트들이 읽어져 상기 PE(511)로 전달된다(S650). 상기 루프 버퍼(512)로부터 다음 연산을 위한 구성 비트들을 전달 받은 상기 PE(511)는 해당 구성으로 전환하여 실행한다(S660).
그러나, 다음 싸이클에서 상기 비트 정보(VALID)가 무효(invalid=1 또는 valid=0)인 경우에, 상기 논리곱 로직(515)은 비활성화된(non-activation) 상기 제1 제어 신호(CON1)를 출력하고, 이때 상기 루프 카운터(516)의 카운트 동작도 디스에이블 된다(S670). 이에 따라, 상기 루프 버퍼(512)는 다음 연산을 위한 구성 비트들을 출력하지 않으며, 상기 PE(511)도 디스에이블되어 실행을 실시하지 않는다(S680).
도 3과 같은 II=2 인 경우의 루프 연산 {A, B, C, D, E, F}을 다시 한번 살펴보자. 도 3에서, 연산 E, A, B, F, C, D로 구성된 커널(kernel)(310)은 본 발명에 따른 도 5의 PU 4개에서 실행될 수 있다.
도 7과 같이, 본 발명에서는 제1 싸이클에서 먼저, 제1 PU(710), 제2 PU(720) 및 제3 PU(730) 각각의 PE는 각각의 루프 버퍼(711/721/731)로부터 연산A, B, E 을 위한 구성 비트들을 받아 해당 연산을 수행한다. 이때, 제4 PU(740)의 PE는 해당 루프 버퍼(741)로부터 딜레이 연산을 위한 구성 비트들을 받지도 않고, 디스에이블된다. 도 3과 같이, 제4 PU(740)의 PE에서는 딜레이 연산으로 전환과 실행이 없다.
다음 싸이클에서도, 제1 PU(710), 제4 PU(740) 및 제3 PU(730) 각각의 PE는 각각의 루프 버퍼(711/741/731)로부터 연산 C, D, F 연산을 위한 구성 비트들을 받아 해당 연산을 수행한다. 이때, 제2 PU(720)의 PE는 해당 루프 버퍼(721)로부터 딜레이 연산을 위한 구성 비트들을 받지도 않고, 디스에이블된다. 여기서도, 제2 PU(720)의 PE에서는 딜레이 연산으로 전환과 실행이 없다.
결국, 상기 딜레이 제어부(513)는 루프 내의 딜레이 연산의 수에 의하여 결정된 [수학식 1]의 반복 횟수(VALIDINST)만큼 카운트하여 상기 루프 버퍼(512)의 구성 비트들이 한번씩 출력되도록 제어함을 알 수 있다. 즉, 위의 예에서, 상기 제1 PU(710) 및 상기 제3 PU(730)에서는 딜레이 연산이 포함되지 않으므로, VALIDINST=1 값 만큼 카운트 0과 1에서 모두 해당 루프 버퍼의 구성 비트들이 해당 PE로 출력된다. 그러나, 상기 제2 PU(720) 및 상기 제4 PU(740)에서는 딜레이 연산이 포함되어 있으므로, VALIDINST=0 값 만큼 카운트 0에서만 해당 루프 버퍼의 구성 비트들이 해당 PE로 출력된다.
이와 같이 본 발명에서는 루프 버퍼(512)에 딜레이 연산을 지정하는 구성 비 트들을 저장하지 않아도 된다. 이에 따라 그만큼 프리페치(prefetch) 등 다른 목적으로 활용될 유휴 공간이 확보될 수 있다. 또한, 딜레이 연산의 경우 해당 구성 비트들을 읽기 위해 루프 버퍼를 매번 억세스 하는 종전 방법에 비해 소비 전력의 절약을 기대 할 수 있다.
따라서, 도 8과 같이, 딜레이 연산을 항상 실행하는 종래 기술(810)에서는 루프 버퍼 억세스 오버헤드가 크지만, 본 발명(820)에서는 딜레이 연산의 수가 많아 질수록 루프 버퍼 억세스 오버헤드는 그 만큼 상대적으로 줄어든다.
도 5에서, 상기 구성 메모리(520)는 상기 루프 내에 존재하는 딜레이 연산을 위한 구성 비트들이 포함된 데이터를 저장할 수 있지만, 상기 루프 내에 존재하는 딜레이 연산을 위한 구성 비트들을 포함하지 않을 수도 있다. 상기 구성 메모리(520)에 상기 루프 내에 존재하는 딜레이 연산을 위한 구성 비트들을 포함시키지 않으면, 상기 구성 메모리(520)에 해당 구성 비트들을 읽고 쓰는 부담이 더욱 줄어 들고, 유휴 공간이 더욱 더 확보될 수 있다. 상기 구성 메모리(520)에 딜레이 연산을 위한 구성 비트들을 저장하지 않는 경우에, 상기 구성 메모리(520)의 출력을 제어하는 소정 프로그램 카운터를 적절히 제어(예를 들어, 딜레이 연산시 카운트하지 않음)하는 것에 의하여, 필요한 데이터가 상기 구성 메모리(520)로부터 상기 루프 버퍼(512)로 전달되도록 할 수 있음은, 이 분야에서 통상의 지식을 가진 자에게 자명하다 할 것이다.
위에서 기술한 바와 같이, 본 발명의 일실시예에 따른 재구성 프로세서(500)는, 각 PU(510)에 일정 연산의 수행을 위한 구성 비트들을 제공하는 구성 메모리 (520) 이외에 딜레이 연산 여부를 알려주는 유효 정보 메모리(530)를 가진다. 상기 PU(510)에서는 딜레이 제어부(513)가 상기 유효 정보 메모리(530)로부터 전달되는 비트 정보(VALID)를 참조하여 다음 연산이 딜레이 연산인지를 결정함에 따라, 딜레이 연산에 대하여는 PE(511)의 실행이 디스에이블되고, 또한 루프 버퍼(512)가 상기 구성 메모리(520)에서 전달된 구성 비트들을 상기 PE(511)로 전달하지 않는다. 따라서, 딜레이 연산을 지정하는 구성 비트들을 상기 루프 버퍼(512)에 저장할 필요가 없다.
본 명세서에서 개시된 방법 및 장치에서 사용되는 기능은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명에 따른 재구성 프로세서 및 방법에서는, 딜레이 연산이 각 프로세싱 유닛에서 실행될 필요가 없도록 하여 루프 버퍼의 억세스 부담과 사이즈를 줄일 수 있고, 이에 따라 소비전력을 줄일 수 있는 효과가 있다. 따라서, 휴대폰, DMB 폰, PDA 등 고속 무선 데이터의 송수신을 위한 시스템이나, 유비쿼터스(ubiquitous) 시스템 등 최근의 고속 멀티미디어 기기의 재구성 가능한 프로세서에 적용되어 시스템의 성능을 높일 수 있다.

Claims (20)

  1. 적어도 하나의 루프 구성을 위한 구성 비트들을 저장하는 구성 메모리;
    루프 내에 존재하는 연산들이 딜레이 연산인지를 알려주는 비트 정보를 저장하는 유효 정보 메모리; 및
    상기 유효 정보 메모리로부터 전달되는 비트 정보를 참조하여 다음 싸이클의 연산이 딜레이 연산인지를 결정하고, 상기 결정 결과에 따라 상기 구성 메모리로부터의 구성 비트들에 따른 구성의 전환과 실행을 선택적으로 실시하는 적어도 하나의 프로세싱 유닛
    을 포함하는 것을 특징으로 하는 재구성 프로세서.
  2. 제1항에 있어서, 상기 적어도 하나의 프로세싱 유닛은,
    상기 구성 메모리로부터 적어도 하나의 루프 구성을 위한 구성 비트들을 받아 임시 저장하는 루프 버퍼;
    상기 유효 정보 메모리로부터 전달되는 비트 정보를 참조하여 다음 싸이클의 연산이 딜레이 연산인지를 나타내는 신호들을 생성하는 딜레이 제어부; 및
    다른 소스로부터 데이터를 받아 상기 루프 버퍼로부터의 구성 비트들에 따른 구성의 전환과 실행을 실시하여 실시 결과를 다른 목적지로 출력하는 프로세싱 엘리먼트
    를 포함하고,
    상기 딜레이 제어부에서 생성된 신호들에 따라 선택적으로 상기 루프 버퍼는 해당 구성 비트들을 출력하고, 상기 프로세싱 엘리먼트는 상기 구성의 전환과 실행을 실시하는 것을 특징으로 하는 재구성 프로세서.
  3. 제2항에 있어서, 상기 딜레이 제어부는,
    루프 내의 딜레이 연산의 수에 의하여 결정된 반복 횟수만큼 카운트하여 상기 루프 버퍼의 구성 비트들이 한번씩 출력되도록 제어하는 것을 특징으로 하는 재구성 프로세서.
  4. 제3항에 있어서, 상기 반복 횟수는,
    수학식
    VLDINST = II - 딜레이 연산의 수 - 1
    (여기서, VLDINST는 상기 반복 횟수, II는 초기화 간격)
    에 의하여 결정되는 것을 특징으로 하는 재구성 프로세서.
  5. 제2항에 있어서, 상기 딜레이 제어부는,
    상기 비트 정보와 상기 싸이클을 알리는 클럭 신호를 비교하여 제1 제어 신호를 생성하는 로직; 및
    상기 제1 제어 신호에 따라 선택적으로 카운트하여 제2 제어 신호를 생성하는 루프 카운터
    를 포함하고,
    상기 루프 버퍼는 상기 제2 제어 신호에 따라 선택적으로 구성 비트들을 출력하고, 상기 프로세싱 엘리먼트는 상기 제1 제어 신호에 따라 선택적으로 상기 구성의 전환과 실행을 실시하는 것을 특징으로 하는 재구성 프로세서.
  6. 제5항에 있어서, 상기 로직은 논리곱 로직을 수행하는 로직인 것을 특징으로 하는 재구성 프로세서.
  7. 제2항에 있어서, 상기 루프 버퍼는,
    상기 딜레이 연산을 지정하는 구성 비트들을 저장하지 않는 것을 특징으로 하는 재구성 프로세서.
  8. 제1항에 있어서, 상기 유효 정보 메모리는,
    상기 루프 내의 각 연산이 상기 딜레이 연산인지 여부에 따라 서로 다른 2진 논리 상태 데이터를 저장하는 것을 특징으로 하는 재구성 프로세서.
  9. 제1항에 있어서, 상기 구성 메모리는,
    상기 루프 내에 존재하는 딜레이 연산을 위한 구성 비트들이 포함된 데이터를 저장하는 것을 특징으로 하는 재구성 프로세서.
  10. 제1항에 있어서, 상기 구성 메모리는,
    상기 루프 내에 존재하는 딜레이 연산을 위한 구성 비트들을 포함하지 않는 것을 특징으로 하는 재구성 프로세서.
  11. 복수의 프로세싱 엘리먼트들을 가지는 재구성 프로세서에서, 적어도 하나의 루프 구성을 위한 구성 비트들을 저장하는 구성 메모리를 이용한 재구성 프로세싱 방법에 있어서,
    루프 내에 존재하는 연산들이 딜레이 연산인지를 알려주는 비트 정보를 저장하는 유효 정보 메모리로부터 다음 싸이클 연산을 위한 해당 비트 정보를 읽는 단계;
    상기 읽어온 비트 정보를 참조하여 다음 싸이클의 연산이 딜레이 연산인지를 결정하는 단계; 및
    각 프로세싱 엘리먼트에서 상기 결정 결과에 따라 선택적으로 상기 구성 메모리로부터의 구성 비트들에 따른 구성의 전환과 실행을 실시하는 단계
    를 포함하는 것을 특징으로 하는 재구성 프로세싱 방법.
  12. 제11항에 있어서,
    상기 구성 메모리로부터 적어도 하나의 루프 구성을 위한 구성 비트들을 받아 루프 버퍼에 임시 저장하는 단계;
    상기 유효 정보 메모리로부터 전달되는 비트 정보를 참조하여 다음 싸이클의 연산이 딜레이 연산인지를 나타내는 신호들을 생성하는 단계; 및
    상기 딜레이 연산인지를 나타내는 신호들에 따라 선택적으로 상기 루프 버퍼에서 해당 구성 비트들을 출력하는 단계; 및
    상기 딜레이 연산인지를 나타내는 신호들에 따라 선택적으로 상기 프로세싱 엘리먼트에서 상기 루프 버퍼로부터의 구성 비트들에 따른 상기 구성의 전환과 실행을 실시하는 단계
    를 포함하는 것을 특징으로 하는 재구성 프로세싱 방법.
  13. 제12항에 있어서,
    루프 내의 딜레이 연산의 수에 의하여 결정된 반복 횟수만큼 카운트하여 상기 루프 버퍼의 구성 비트들이 한번씩 출력되도록 제어하는 단계
    를 더 포함하는 것을 특징으로 하는 재구성 프로세싱 방법.
  14. 제13항에 있어서, 상기 반복 횟수는,
    수학식
    VLDINST = II - 딜레이 연산의 수 - 1
    (여기서, VLDINST는 상기 반복 횟수, II는 초기화 간격)
    에 의하여 결정되는 것을 특징으로 하는 재구성 프로세싱 방법.
  15. 제12항에 있어서,
    상기 비트 정보와 상기 싸이클을 알리는 클럭 신호를 비교하여 제1 제어 신호를 생성하는 단계; 및
    상기 제1 제어 신호에 따라 선택적으로 카운트하여 제2 제어 신호를 생성하는 단계;
    상기 루프 버퍼에서 상기 제2 제어 신호에 따라 선택적으로 구성 비트들을 출력하는 단계; 및
    상기 프로세싱 엘리먼트에서 상기 제1 제어 신호에 따라 선택적으로 상기 구성의 전환과 실행을 실시하는 단계
    를 포함하는 것을 특징으로 하는 재구성 프로세싱 방법.
  16. 제12항에 있어서, 상기 루프 버퍼는 상기 딜레이 연산을 지정하는 구성 비트들을 저장하지 않는 것을 특징으로 하는 재구성 프로세싱 방법.
  17. 제11항에 있어서, 상기 유효 정보 메모리는 상기 루프 내의 각 연산이 상기 딜레이 연산인지 여부에 따라 서로 다른 2진 논리 상태 데이터를 저장하는 것을 특징으로 하는 재구성 프로세싱 방법.
  18. 제11항에 있어서, 상기 구성 메모리는 상기 루프 내에 존재하는 딜레이 연산을 위한 구성 비트들이 포함된 데이터를 저장하는 것을 특징으로 하는 재구성 프로세싱 방법.
  19. 제11항에 있어서, 상기 구성 메모리는 상기 루프 내에 존재하는 딜레이 연산을 위한 구성 비트들을 포함하지 않는 것을 특징으로 하는 재구성 프로세싱 방법.
  20. 제11항 내지 제19항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체.
KR1020050117868A 2005-12-06 2005-12-06 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법 KR100730280B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050117868A KR100730280B1 (ko) 2005-12-06 2005-12-06 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법
US11/525,913 US7478227B2 (en) 2005-12-06 2006-09-25 Apparatus and method for optimizing loop buffer in reconfigurable processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050117868A KR100730280B1 (ko) 2005-12-06 2005-12-06 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법

Publications (2)

Publication Number Publication Date
KR20070059238A KR20070059238A (ko) 2007-06-12
KR100730280B1 true KR100730280B1 (ko) 2007-06-19

Family

ID=38195294

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050117868A KR100730280B1 (ko) 2005-12-06 2005-12-06 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법

Country Status (2)

Country Link
US (1) US7478227B2 (ko)
KR (1) KR100730280B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4911022B2 (ja) * 2007-12-27 2012-04-04 富士通セミコンダクター株式会社 カウンタ制御回路、動的再構成回路およびループ処理制御方法
KR101581414B1 (ko) * 2009-02-05 2015-12-30 삼성전자주식회사 전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법
KR101581882B1 (ko) 2009-04-20 2015-12-31 삼성전자주식회사 재구성 가능한 프로세서 및 그 재구성 방법
WO2013031394A1 (ja) * 2011-09-02 2013-03-07 日本電気株式会社 電池制御システム、電池制御装置、電池制御方法、および記録媒体
KR20130066402A (ko) * 2011-12-12 2013-06-20 삼성전자주식회사 트레이스 데이터 저장 장치 및 방법
CN103984560B (zh) * 2014-05-30 2017-09-19 东南大学 基于大规模粗粒度嵌入式可重构系统及其处理方法
KR102277439B1 (ko) * 2014-10-21 2021-07-14 삼성전자주식회사 재구성 가능 프로세서 및 그 동작 방법
CN106775599B (zh) * 2017-01-09 2019-03-01 南京工业大学 递归神经网络的多计算单元粗粒度可重构系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1124925A (ja) * 1997-06-30 1999-01-29 Nec Ic Microcomput Syst Ltd パイプライン制御回路
US6122719A (en) * 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
KR20010020545A (ko) * 1997-06-27 2001-03-15 카멜레온 시스템즈, 인크 재구성 가능한 컴퓨팅을 위한 집적 프로세서 및프로그래머블 데이터 경로 칩
JP2005293342A (ja) * 2004-04-01 2005-10-20 Renesas Technology Corp 動的再構成可能プロセッサおよびコンパイラ装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2557712B1 (fr) * 1983-12-30 1988-12-09 Trt Telecom Radio Electr Processeur pour traiter des donnees en fonction d'instructions provenant d'une memoire-programme
JPS62180427A (ja) * 1986-02-03 1987-08-07 Nec Corp プログラム制御回路
JPH07253922A (ja) * 1994-03-14 1995-10-03 Texas Instr Japan Ltd アドレス生成回路
US5727194A (en) * 1995-06-07 1998-03-10 Hitachi America, Ltd. Repeat-bit based, compact system and method for implementing zero-overhead loops
US6941539B2 (en) * 2002-10-31 2005-09-06 Src Computers, Inc. Efficiency of reconfigurable hardware
JP2006018413A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd プロセッサおよびパイプライン再構成制御方法
US7913069B2 (en) * 2006-02-16 2011-03-22 Vns Portfolio Llc Processor and method for executing a program loop within an instruction word

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010020545A (ko) * 1997-06-27 2001-03-15 카멜레온 시스템즈, 인크 재구성 가능한 컴퓨팅을 위한 집적 프로세서 및프로그래머블 데이터 경로 칩
JPH1124925A (ja) * 1997-06-30 1999-01-29 Nec Ic Microcomput Syst Ltd パイプライン制御回路
US6122719A (en) * 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
JP2005293342A (ja) * 2004-04-01 2005-10-20 Renesas Technology Corp 動的再構成可能プロセッサおよびコンパイラ装置

Also Published As

Publication number Publication date
US20070150710A1 (en) 2007-06-28
KR20070059238A (ko) 2007-06-12
US7478227B2 (en) 2009-01-13

Similar Documents

Publication Publication Date Title
KR100730280B1 (ko) 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법
US10042641B2 (en) Method and apparatus for asynchronous processor with auxiliary asynchronous vector processor
EP1868094B1 (en) Multitasking method and apparatus for reconfigurable array
US20130117543A1 (en) Low overhead operation latency aware scheduler
JP2006509290A (ja) マイクロプロセッサ電力消費低減のためのレジスタファイルゲーティング
WO2001022216A1 (en) Selective writing of data elements from packed data based upon a mask using predication
US20140047218A1 (en) Multi-stage register renaming using dependency removal
JP2005004736A (ja) データ処理装置用バス相互接続ブロックの設計に関するフレキシビリティの改善
US20150169494A1 (en) Data path configuration component, signal processing device and method therefor
KR101581414B1 (ko) 전력 소모 감소를 위한 재구성 가능 프로세서 및 그 동작 방법
US20230195526A1 (en) Graph computing apparatus, processing method, and related device
US7287151B2 (en) Communication path to each part of distributed register file from functional units in addition to partial communication network
WO2014202825A1 (en) Microprocessor apparatus
US8291396B1 (en) Scheduling optimization of aliased pointers for implementation on programmable chips
US7577824B2 (en) Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution
US20040225868A1 (en) An integrated circuit having parallel execution units with differing execution latencies
US6957319B1 (en) Integrated circuit with multiple microcode ROMs
US7519794B2 (en) High performance architecture for a writeback stage
US8677099B2 (en) Reconfigurable processor with predicate signal activated operation configuration memory and separate routing configuration memory
CN101042641B (zh) 一种具有动态提交流水线功能的数字信号处理器
JP7259961B2 (ja) 高位合成装置、高位合成方法及びプログラム
US20070106877A1 (en) Single-chip multiple-microcontroller architecture and timing control method for the same
CN116324741A (zh) 用于可配置硬件加速器的方法和装置

Legal Events

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

Payment date: 20130522

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140522

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150522

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160518

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 13