KR100730280B1 - 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법 - Google Patents
재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법 Download PDFInfo
- 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
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 27
- 238000003672 processing method Methods 0.000 claims description 8
- 238000012546 transfer Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 229920001690 polydopamine Polymers 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
도 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항에 있어서, 상기 딜레이 제어부는,루프 내의 딜레이 연산의 수에 의하여 결정된 반복 횟수만큼 카운트하여 상기 루프 버퍼의 구성 비트들이 한번씩 출력되도록 제어하는 것을 특징으로 하는 재구성 프로세서.
- 제3항에 있어서, 상기 반복 횟수는,수학식VLDINST = II - 딜레이 연산의 수 - 1(여기서, VLDINST는 상기 반복 횟수, II는 초기화 간격)에 의하여 결정되는 것을 특징으로 하는 재구성 프로세서.
- 제2항에 있어서, 상기 딜레이 제어부는,상기 비트 정보와 상기 싸이클을 알리는 클럭 신호를 비교하여 제1 제어 신호를 생성하는 로직; 및상기 제1 제어 신호에 따라 선택적으로 카운트하여 제2 제어 신호를 생성하는 루프 카운터를 포함하고,상기 루프 버퍼는 상기 제2 제어 신호에 따라 선택적으로 구성 비트들을 출력하고, 상기 프로세싱 엘리먼트는 상기 제1 제어 신호에 따라 선택적으로 상기 구성의 전환과 실행을 실시하는 것을 특징으로 하는 재구성 프로세서.
- 제5항에 있어서, 상기 로직은 논리곱 로직을 수행하는 로직인 것을 특징으로 하는 재구성 프로세서.
- 제2항에 있어서, 상기 루프 버퍼는,상기 딜레이 연산을 지정하는 구성 비트들을 저장하지 않는 것을 특징으로 하는 재구성 프로세서.
- 제1항에 있어서, 상기 유효 정보 메모리는,상기 루프 내의 각 연산이 상기 딜레이 연산인지 여부에 따라 서로 다른 2진 논리 상태 데이터를 저장하는 것을 특징으로 하는 재구성 프로세서.
- 제1항에 있어서, 상기 구성 메모리는,상기 루프 내에 존재하는 딜레이 연산을 위한 구성 비트들이 포함된 데이터를 저장하는 것을 특징으로 하는 재구성 프로세서.
- 제1항에 있어서, 상기 구성 메모리는,상기 루프 내에 존재하는 딜레이 연산을 위한 구성 비트들을 포함하지 않는 것을 특징으로 하는 재구성 프로세서.
- 복수의 프로세싱 엘리먼트들을 가지는 재구성 프로세서에서, 적어도 하나의 루프 구성을 위한 구성 비트들을 저장하는 구성 메모리를 이용한 재구성 프로세싱 방법에 있어서,루프 내에 존재하는 연산들이 딜레이 연산인지를 알려주는 비트 정보를 저장하는 유효 정보 메모리로부터 다음 싸이클 연산을 위한 해당 비트 정보를 읽는 단계;상기 읽어온 비트 정보를 참조하여 다음 싸이클의 연산이 딜레이 연산인지를 결정하는 단계; 및각 프로세싱 엘리먼트에서 상기 결정 결과에 따라 선택적으로 상기 구성 메모리로부터의 구성 비트들에 따른 구성의 전환과 실행을 실시하는 단계를 포함하는 것을 특징으로 하는 재구성 프로세싱 방법.
- 제11항에 있어서,상기 구성 메모리로부터 적어도 하나의 루프 구성을 위한 구성 비트들을 받아 루프 버퍼에 임시 저장하는 단계;상기 유효 정보 메모리로부터 전달되는 비트 정보를 참조하여 다음 싸이클의 연산이 딜레이 연산인지를 나타내는 신호들을 생성하는 단계; 및상기 딜레이 연산인지를 나타내는 신호들에 따라 선택적으로 상기 루프 버퍼에서 해당 구성 비트들을 출력하는 단계; 및상기 딜레이 연산인지를 나타내는 신호들에 따라 선택적으로 상기 프로세싱 엘리먼트에서 상기 루프 버퍼로부터의 구성 비트들에 따른 상기 구성의 전환과 실행을 실시하는 단계를 포함하는 것을 특징으로 하는 재구성 프로세싱 방법.
- 제12항에 있어서,루프 내의 딜레이 연산의 수에 의하여 결정된 반복 횟수만큼 카운트하여 상기 루프 버퍼의 구성 비트들이 한번씩 출력되도록 제어하는 단계를 더 포함하는 것을 특징으로 하는 재구성 프로세싱 방법.
- 제13항에 있어서, 상기 반복 횟수는,수학식VLDINST = II - 딜레이 연산의 수 - 1(여기서, VLDINST는 상기 반복 횟수, II는 초기화 간격)에 의하여 결정되는 것을 특징으로 하는 재구성 프로세싱 방법.
- 제12항에 있어서,상기 비트 정보와 상기 싸이클을 알리는 클럭 신호를 비교하여 제1 제어 신호를 생성하는 단계; 및상기 제1 제어 신호에 따라 선택적으로 카운트하여 제2 제어 신호를 생성하는 단계;상기 루프 버퍼에서 상기 제2 제어 신호에 따라 선택적으로 구성 비트들을 출력하는 단계; 및상기 프로세싱 엘리먼트에서 상기 제1 제어 신호에 따라 선택적으로 상기 구성의 전환과 실행을 실시하는 단계를 포함하는 것을 특징으로 하는 재구성 프로세싱 방법.
- 제12항에 있어서, 상기 루프 버퍼는 상기 딜레이 연산을 지정하는 구성 비트들을 저장하지 않는 것을 특징으로 하는 재구성 프로세싱 방법.
- 제11항에 있어서, 상기 유효 정보 메모리는 상기 루프 내의 각 연산이 상기 딜레이 연산인지 여부에 따라 서로 다른 2진 논리 상태 데이터를 저장하는 것을 특징으로 하는 재구성 프로세싱 방법.
- 제11항에 있어서, 상기 구성 메모리는 상기 루프 내에 존재하는 딜레이 연산을 위한 구성 비트들이 포함된 데이터를 저장하는 것을 특징으로 하는 재구성 프로세싱 방법.
- 제11항에 있어서, 상기 구성 메모리는 상기 루프 내에 존재하는 딜레이 연산을 위한 구성 비트들을 포함하지 않는 것을 특징으로 하는 재구성 프로세싱 방법.
- 제11항 내지 제19항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체.
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)
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)
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)
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 |
-
2005
- 2005-12-06 KR KR1020050117868A patent/KR100730280B1/ko active IP Right Grant
-
2006
- 2006-09-25 US US11/525,913 patent/US7478227B2/en active Active
Patent Citations (4)
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 |