KR102251241B1 - 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치 - Google Patents

재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치 Download PDF

Info

Publication number
KR102251241B1
KR102251241B1 KR1020130147988A KR20130147988A KR102251241B1 KR 102251241 B1 KR102251241 B1 KR 102251241B1 KR 1020130147988 A KR1020130147988 A KR 1020130147988A KR 20130147988 A KR20130147988 A KR 20130147988A KR 102251241 B1 KR102251241 B1 KR 102251241B1
Authority
KR
South Korea
Prior art keywords
read
register
read port
command
address value
Prior art date
Application number
KR1020130147988A
Other languages
English (en)
Other versions
KR20150062877A (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 KR1020130147988A priority Critical patent/KR102251241B1/ko
Priority to US15/100,452 priority patent/US10185565B2/en
Priority to PCT/KR2014/011595 priority patent/WO2015080534A1/ko
Publication of KR20150062877A publication Critical patent/KR20150062877A/ko
Application granted granted Critical
Publication of KR102251241B1 publication Critical patent/KR102251241B1/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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • 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
    • 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/30098Register arrangements
    • 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
    • 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
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Logic Circuits (AREA)

Abstract

재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치가 제공된다. 메모리로부터 레지스터의 복수개의 리드 포트 각각에 대한 명령어를 획득하고, 획득한 명령어로부터 복수개의 리드 포트 각각의 활성화 정보를 획득하며, 획득한 활성화 정보에 기초하여, 복수개의 리드 포트 각각의 주소값을 결정함으로써 레지스터의 전력을 효율적으로 사용할 수 있다.

Description

재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치 {Method and apparatus for controlling register of configurable processor and method and apparatus for generating instruction for controlling register of configurable processor and record medium thereof}
본 발명은 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치에 관한 것이다.
프로세서를 기반으로 하는 디바이스의 전력 효율은 점차 중요해지고 있으며, 특히 배터리로 동작하는 디바이스에서 전력 효율은 고려되어야 하는 핵심적인 문제이다. 따라서 최근 들어 디바이스의 전력 효율을 높이기 위한 다양한 연구가 행해지고 있다.
프로세서의 연산을 수행하는데 필요한 정보들을 저장하고 있는 레지스터에는 적어도 하나의 연산을 동시에 실행할 수 있도록 복수개의 입출력 포트가 포함되어 있다. 복수개의 입출력 포트 중에서 프로세서가 연산을 수행하는 과정에 필요한 일부 포트들만이 사용될 수 있다. 종래에는 복수개의 입출력 포트 중에서도 리드 포트는 연산에 사용되지 않는 경우에도 항상 모든 리드 포트들이 임의의 주소값을 할당 받아서 의미 없는 연산을 수행한다는 문제점이 있다.
본 발명은 재구성 가능 프로세서의 레지스터에서 리드 포트에 할당되는 주소값을 제어함으로써, 레지스터에서 사용되는 전력을 효율적으로 활용할 수 있는 재구성 가능 프로세서의 레지스터를 제어하는 방법을 제공하는데 목적이 있다.
본 발명의 일 실시예에 따른 재구성 가능 프로세서의 레지스터를 제어하는 방법은, 메모리로부터 상기 레지스터의 복수개의 리드 포트 각각에 대한 명령어를 획득하는 단계; 상기 획득한 명령어로부터 상기 복수개의 리드 포트 각각의 활성화 정보를 획득하는 단계; 및 상기 획득한 활성화 정보에 기초하여, 상기 복수개의 리드 포트 각각의 주소값을 결정하는 단계를 포함한다.
본 발명의 일 실시예에 따른 재구성 가능 프로세서의 레지스터를 제어하는 방법에 있어서, 상기 주소값을 결정하는 단계는, 상기 획득한 활성화 정보에 기초하여 소정 사이클에 사용되는 적어도 하나의 리드 포트를 결정하는 단계; 상기 결정된 적어도 하나의 리드 포트 각각에 대해 상기 획득한 명령어로부터 주소값을 추출하는 단계; 및 상기 추출된 주소값을 각각 상기 결정된 적어도 하나의 리드 포트에 할당하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 재구성 가능 프로세서의 레지스터를 제어하는 방법에 있어서, 상기 리드 포트를 결정하는 단계는, 활성화 정보가 제 1 값인 제 1 리드 포트의 경우, 상기 제 1 리드 포트가 소정 사이클에 사용되는 것으로 결정하는 단계; 및 활성화 정보가 제 2 값인 제 2 리드 포트의 경우, 상기 제 2 리드 포트가 소정 사이클에 사용되지 않는 것으로 결정하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 재구성 가능 프로세서의 레지스터를 제어하는 방법에 있어서, 상기 소정 사이클 이후의 사이클에서, 사용되지 않는 레지스터의 리드 포트는 상기 소정 사이클에서의 주소값을 유지하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 재구성 가능 프로세서의 레지스터를 제어하는 방법에 있어서, 상기 레지스터의 복수의 리드 포트 각각에 기설정된 주소값을 할당하는 단계; 및 상기 사용되지 않는 레지스터의 적어도 하나의 리드 포트는 상기 기설정된 주소값을 유지하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법에 있어서, 상기 레지스터의 복수개의 리드 포트들 중에서 소정 사이클에 사용되는 적어도 하나의 리드 포트를 검출하는 단계; 및 상기 소정 사이클에서 상기 검출된 적어도 하나의 리드 포트 각각에 할당되는 주소값 및 활성화 코드를 포함하는 명령어를 생성하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법에 있어서, 상기 소정 사이클에서 사용되지 않는 리드 포트에 대해 비활성화 코드를 포함하는 명령어를 생성하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 재구성 가능 프로세서의 레지스터를 제어하는 장치에 있어서, 메모리로부터 상기 레지스터의 복수개의 리드 포트 각각에 대한 명령어를 획득하는 입출력부; 상기 획득한 명령어로부터 상기 복수개의 리드 포트 각각의 활성화 정보를 획득하는 활성화 정보 획득부; 및 상기 획득한 활성화 정보에 기초하여, 상기 복수개의 리드 포트 각각의 주소값을 결정하는 제어부를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 재구성 가능 프로세서의 레지스터를 제어하는 장치에 있어서, 상기 제어부는, 상기 획득한 활성화 정보에 기초하여 소정 사이클에 사용되는 적어도 하나의 리드 포트를 결정하고, 상기 결정된 적어도 하나의 리드 포트 각각에 대해 상기 획득한 명령어로부터 주소값을 추출하여 상기 추출된 주소값을 각각 상기 결정된 적어도 하나의 리드 포트에 할당하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 재구성 가능 프로세서의 레지스터를 제어하는 장치에 있어서, 상기 제어부는, 상기 획득한 활성화 정보가 제 1 값인 제 1 리드 포트의 경우, 상기 제 1 리드 포트가 소정 사이클에 사용되는 것으로 결정하고, 상기 획득한 활성화 정보가 제 2 값인 제 2 리드 포트의 경우, 상기 제 2 리드 포트가 소정 사이클에 사용되지 않는 것으로 결정하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 재구성 가능 프로세서의 레지스터를 제어하는 장치에 있어서, 상기 제어부는. 상기 소정 사이클 이후의 사이클에서, 사용되지 않는 레지스터의 리드 포트는 상기 소정 사이클에서의 주소값을 유지하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 재구성 가능 프로세서의 레지스터를 제어하는 장치에 있어서, 상기 제어부는. 상기 레지스터의 복수의 리드 포트 각각에 기설정된 주소값을 할당하고, 상기 사용되지 않는 레지스터의 적어도 하나의 리드 포트는 상기 기설정된 주소값을 유지하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 장치에 있어서, 상기 레지스터의 복수개의 리드 포트들 중에서 소정 사이클에 사용되는 적어도 하나의 리드 포트를 검출하는 제어부; 및 상기 소정 사이클에서 상기 검출된 적어도 하나의 리드 포트 각각에 할당되는 주소값 및 활성화 코드를 포함하는 명령어를 생성하는 명령어 생성부를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 장치에 있어서, 상기 명령어 생성부는, 상기 소정 사이클에서 사용되지 않는 리드 포트에 대해 비활성화 코드를 포함하는 명령어를 생성하는 것을 특징으로 한다.
도 1 은 본 발명의 일 실시예에 따른 레지스터를 제어하는 시스템을 설명하기 위한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 레지스터를 제어하는 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 레지스터를 제어하는 방법을 보다 상세하게 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 재구성 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시예에 따라 레지스터의 리드 포트에 할당되는 주소값을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 레지스터 제어 장치의 블록도를 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 명령어 생성 장치의 블록도를 도시한 도면이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1 은 본 발명의 일 실시예에 따른 레지스터를 제어하는 시스템(10)을 설명하기 위한 개념도이다.
도 1에 도시된 레지스터를 제어하는 시스템(10)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 1을 참고하면, 레지스터를 제어하는 시스템(10)은 구성 메모리(20), 재구성 가능 프로세서의 레지스터를 제어하는 장치(100, 이하, 레지스터 제어 장치) 및 레지스터(30)를 포함할 수 있다.
구성 메모리(20)는 재구성 가능 프로세서에 포함되는 재구성 어레이(미도시)의 구성 정보를 저장한다. 구성 정보는 재구성 어레이에서 독립적으로 동작하는 각각의 FU에 할당되는 인스트럭션 정보 및 복수개의 FU 간의 연결 상태에 대한 정보를 포함할 수 있다. 따라서, 각 FU에 매핑되는 인스트럭션 및 복수개의 FU간의 연결 상태는 구성 메모리(20)에 저장된 구성 정보에 따라 달라질 수 있다.
한편, 본 발명의 일 실시예에 따른 구성 메모리(20)는 레지스터(30)를 제어하는 명령어를 저장할 수 있다. 여기에서, 레지스터(30)를 제어하는 명령어는 컴파일러는 외부 디바이스에서 생성될 수 있다. 구성 메모리(20)는 레지스터 제어 장치(100)에 저장된 레지스터(30)를 제어하는 명령어를 전송할 수 있다.
레지스터 제어 장치(100)는 구성 메모리(20)로부터 레지스터(30)를 제어하는 명령어를 획득할 수 있다. 레지스터 제어 장치(100)는 획득한 레지스터(30)를 제어하는 명령어를 기초로, 레지스터(30)에 포함되어 있는 포트들의 사용을 제어할 수 있다. 본 발명의 일 실시예에 따르면, 레지스터 제어 장치(100)는 레지스터(30)를 제어하는 명령어로부터 레지스터(30)의 각각의 포트들의 사용 여부를 판단할 수 있는 활성화 정보를 획득할 수 있다.
도 1을 참고하면, raddr#(raddr0, raddr1, raddr2, raddr3)은 레지스터(30)에 포함되는 적어도 하나의 리드 포트일 수 있다. 또한, stage_cnt는 스테이지 카운터(stage counter)를 의미하는 것으로서, 리드 포트의 사용 여부에 상관없이 연산의 반복(iteration)이 수행될 때마다 증가하는 값이다. raddr#_i(raddr0_i, raddr1_i, raddr2_i, raddr3_i)는 연산이 반복적으로 실행될 때마다 구성 메모리(20)로부터 출력되는 값이다. 레지스터 제어 장치(100)는 raddr#_i를 기초로, 레지스터(30)에 포함되어 있는 리드 포트들의 사용을 제어할 수 있다. 예를 들어, re#(re0, re1, re2, re3)은 리드 포트(raddr#)에 대한 활성화 정보로서, 레지스터(30)의 적어도 하나의 리드 포트들의 사용 여부에 대한 정보를 포함할 수 있다.
활성화 정보에 대해서는 도 2 및 도 3을 참고하여 구체적으로 후술하도록 한다.
본 발명의 일 실시예에 따른 레지스터 제어 장치(100)는 사용하지 않는 포트들에서 수행되는 무의미한 연산들에 사용되는 전력을 감소시킴으로써, 레지스터(30)가 전력을 효율적으로 사용할 수 있도록 제어할 수 있다.
레지스터(30)는 CRF(Control Register File), DRF(Data Register File) 및 LDRF(Local Data Register File)을 포함할 수 있다. 레지스터(30)에 포함되는 포트 수는 연산을 수행할 때 필요한 최대의 포트 수를 기초로 결정될 수 있다. 따라서, 일반적으로. 연산 수행을 수행할 때 레지스터(30) 내에 사용되지 않는 포트들이 존재할 수 있다.
예를 들어, 리드(read) 포트의 경우, 사용되지 않는 경우에도, 구성 메모리(10)에 저장되어 있는 임의의 주소값을 할당 받을 수 있다. 또한, 연산이 수행되는 매 주기마다 사용되지 않는 리드 포트에 서로 다른 임의의 주소값이 할당될 수 있다, 연산에 사용되지 않는 리드 포트에 매 주기마다 다른 주소값이 할당되는 경우, 무의미한 연산임에도 불구하고, 매 주기마다 다른 주소값에 접근하게 되어 전력이 무의미하게 소비될 수 있다.
이하에서는 레지스터(30) 내에 포함된 적어도 하나의 포트들 중에서 리드(read) 포트에 대해 설명하도록 한다. 다만 이는 발명의 일 실시예일 뿐, 다른 종류의 포트에 대해서도 본 발명의 일 실시예에 다른 레지스터를 제어하는 방법이 적용 가능할 수 있다.
도 2는 본 발명의 일 실시예에 따른 레지스터(30)를 제어하는 방법을 설명하기 위한 흐름도이다.
단계 210에서, 레지스터 제어 장치(100)는 구성 메모리(20)로부터 레지스터(30)의 복수개의 리드 포트 각각에 대한 명령어를 획득할 수 있다. 레지스터 제어 장치(100)는 획득한 명령어를 기초로 레지스터(30)를 제어할 수 있다. 여기에서, 명령어는 대응되는 리드 포트를 식별할 수 있는 정보, 리드 연산을 수행하기 위한 코드 및 레지스터(30)내의 소정 위치를 읽어 들이는데 필요한 주소값 정보를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 명령어는 복수개의 리드 포트 각각에 대해 각 리드 포트가 연산을 수행하는지에 대한 정보를 포함하고 있는 활성화 정보를 포함할 수 있다.
한편, 레지스터 제어 장치(100)는 도 1과 같이 레지스터(30)의 외부에 연결될 수 있다. 다만, 이는 본 발명의 일 실시예일 뿐, 레지스터 제어 장치(100)는 레지스터(30)의 내부에 포함될 수도 있다.
단계 220에서, 레지스터 제어 장치(100)는 획득한 명령어로부터 복수개의 리드 포트 각각의 활성화 정보를 획득할 수 있다.
레지스터 제어 장치(100)는 명령어에서 리드 포트에 대한 활성화 정보를 포함하고 있는 영역을 복호화할 수 있다. 예를 들어, 32 비트로 구성된 명령어에서 활성화 정보를 포함하고 있는 17번째 비트를 복호화하여, 활성화 정보를 획득할 수 있다.
본 발명의 일 실시예에 따라 소정 명령어의 17번째 비트가 제 1 값을 갖는 경우, 소정 명령어에 대응되는 리드 포트는 연산에 사용된다는 것을 확인할 수 있다. 한편, 소정 명령어의 17번째 비트가 제 2 값을 갖는 경우, 소정 명령어에 대응되는 리드 포트는 연산에 사용되지 않는다는 것을 확인할 수 있다. 여기에서, 제 1 값 및 제 2 값은 사용자의 설정에 따라 달라질 수 있다.
단계 230에서, 레지스터 제어 장치(100)는 획득한 활성화 정보에 기초하여, 복수개의 리드 포트 각각의 주소값을 결정할 수 있다.
레지스터 제어 장치(100)는 레지스터(30)의 리드 포트에 할당되는 주소값을 리드 포트가 연산에서 사용되는지 여부에 기초하여 결정할 수 있다. 예를 들어, 레지스터 제어 장치(100)는 소정 명령어가 대응되는 리드 포트가 연산에서 사용되고, 소정 명령어가 할당되는 리드 포트가 제 3 리드 포트라는 것을 확인할 수 있다. 이러한 경우, 레지스터 제어 장치(100)는 제 3 리드 포트에 할당되는 주소값을 소정 명령어에 포함되어 있는 주소값으로 변경할 수 있다.
한편, 레지스터 제어 장치(100)는 소정 명령어에 대응되는 리드 포트가 연산에서 사용되지 않고, 소정 명령어가 할당되는 리드 포트가 제 2 리드 포트인 것을 확인할 수 있다. 이러한 경우, 레지스터 제어 장치(100)는 제 2 리드 포트의 주소값을 변경하지 않고 유지할 수 있다.
레지스터 제어 장치(100)는 연산에서 사용되지 않는 리드 포트의 주소값을 연산이 수행되는 매 주기마다 변경되지 않도록 고정함으로써, 레지스터(30)에서 소비하는 전력을 줄일 수 있다.
도 3은 본 발명의 일 실시예에 따른 레지스터(30)를 제어하는 방법을 보다 상세하게 설명하기 위한 흐름도이다.
단계 310에서, 레지스터 제어 장치(100)는 구성 메모리(20)로부터 레지스터(30)의 복수개의 리드 포트 각각에 대한 명령어를 획득할 수 있다. 레지스터 제어 장치(100)는 획득한 명령어를 기초로 레지스터(30)를 제어할 수 있다. 여기에서, 단계 310은 도 2의 단계 210과 대응될 수 있다.
단계 320에서, 레지스터 제어 장치(100)는 획득한 명령어로부터 복수개의 리드 포트 각각의 활성화 정보를 획득할 수 있다. 레지스터 제어 장치(100)는 활성화 정보를 기초로 획득한 명령어가 대응되는 리드 포트가 연산을 수행하는데 사용되는지 여부를 판단할 수 있다. 여기에서, 단계 320은 도 2의 단계 220과 대응될 수 있다.
단계 330에서, 레지스터 제어 장치(100)는 레지스터(30)의 각각의 리드 포트가 연산을 수행하는데 사용되는지 여부를 판단할 수 있다.
레지스터 제어 장치(100)는 명령어에서 추출한 활성화 정보가 제 1 값을 갖는 경우, 제 1 값의 활성화 정보를 갖는 명령어가 할당되는 리드 포트는 연산에서 사용된다고 판단할 수 있다. 또한, 명령어에서 추출한 활성화 정보가 제 2 값을 갖는 경우, 제 2 값의 활성화 정보를 갖는 명령어가 할당되는 리드 포트는 연산에서 사용되지 않는다고 판단할 수 있다.
단계 340에서, 레지스터 제어 장치(100)는 명령어와 대응되는 리드 포트에 명령어로부터 추출한 주소값을 할당할 수 있다.
본 발명의 일 실시예에 따른, 레지스터 제어 장치(100)는 명령어와 대응되는 리드 포트가 연산에서 사용되는 경우, 명령어로부터 추출한 주소값을 할당할 수 있다. 예를 들어, 레지스터 제어 장치(100)는 명령어의 활성화 정보가 제 1 값을 갖는 경우, 리드 포트의 주소값을 명령어로부터 추출한 주소값으로 결정할 수 있다.
단계 350에서, 레지스터 제어 장치(100)는 명령어와 대응되는 리드 포트의 주소값을 변경하지 않고, 원래의 값으로 유지할 수 있다.
본 발명의 일 실시예에 따른, 레지스터 제어 장치(100)는 명령어와 대응되는 리드 포트가 연산에서 사용되지 않는 경우, 기존의 주소값을 유지할 수 있다.
예를 들어, 레지스터 제어 장치(100)는 명령어의 활성화 정보가 제 2 값을 갖는 경우, 리드 포트의 주소값을 기설정된 값으로 유지할 수 있다. 여기에서, 기설정된 값은 레지스터(30)의 각각의 리드 포트의 초기화된 주소값 일 수 있다. 예를 들어, 레지스터(30)의 각각의 리드 포트에 모두 주소값 0이 할당되도록 레지스터(30)가 초기화될 수 있다. 이러한 경우, 레지스터 제어 장치(100)는 연산에서 사용되지 않는 리드 포트의 주소값을 0으로 유지할 수 있다.
다른 예에 따르면, 레지스터 제어 장치(100)는 연산에서 사용되지 않는 리드 포트의 주소값을 레지스터 제어 장치(100)에 저장되어 있는 임의의 값으로 결정할 수 있다. 예를 들어, 레지스터 제어 장치(100)는 연산이 수행되는 매 주기마다 사용되지 않는 리드 포트의 주소값을 n으로 결정할 수 있다.
도 4는 본 발명의 일 실시예에 따른 재구성 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법을 설명하기 위한 흐름도이다.
단계 410에서, 재구성 프로세서의 레지스터를 제어하는 명령어를 생성하는 장치(이하, 명령어 생성 장치)는 레지스터(30)의 복수개의 리드 포트들 중에서 소정 사이클에 사용되는 적어도 하나의 리드 포트를 검출할 수 있다.
여기에서, 명령어 생성 장치는 재구성 프로세서에서 수행 가능한 연산 코드를 생성하는 컴파일러일 수 있다. 한편, 이는 본 발명의 일 실시예일 뿐, 명령어 생성 장치는 재구성 프로세서에서 수행 가능한 연산 코드를 생성하는 기능을 수행하는 디바이스일 수 있다.
또한, 소정 사이클에 사용되는 적어도 하나의 리드 포트는 소정 사이클에, 즉 동시에 수행되는 연산에 관한 명령어가 할당되는 리드 포트를 포함할 수 있다.
단계 420에서, 명령어 생성 장치는 소정 사이클에서 검출된 적어도 하나의 리드 포트 각각에 할당되는 주소값 및 활성화 코드를 포함하는 명령어를 생성할 수 있다. 또한, 명령어에는 명령어가 대응되는 리드 포트를 식별할 수 있는 정보 역시 포함될 수 있다.
명령어 생성 장치는 동시에 수행되는 연산들 각각에 대한 연산 코드와 레지스터(30)를 제어하는 활성화 정보를 결합하여, 명령어를 생성할 수 있다. 여기에서, 활성화 정보는 명령어가 대응되는 리드 포트가 연산에 사용되는 경우 제 1 값을 갖고, 명령어가 대응되지 않는 리드 포트가 연산에 사용되지 않는 경우 제 2 값을 갖을 수 있다.
도 5는 본 발명의 일 실시예에 따라 레지스터(30)의 리드 포트에 할당되는 주소값을 설명하기 위한 도면이다.
도 5의 (a)는 일반적인 레지스터에서 각 리드 포트에 할당되는 주소값을 나타내고 있다. 여기에서, raddr2에 대응되는 리드 포트 2와 raddr3에 대응되는 리드 포트 3은 연산에 사용되지 않는다고 가정할 수 있다.
도 5의 (a)를 참고하면, 레지스터의 모든 리드 포트에 할당되는 주소값이 3 사이클이 지날 때마다 변하는 것을 확인할 수 있다. 리드 포트 2와 리드 포트 3의 경우, 연산에 사용되지 않음에도 불구하고, 각각의 주소값이 0에서 1로, 1에서 2로 계속해서 변하고 있다.
일반적인 레지스터는 사용하지 않는 리드 포트에도 연산이 수행될 때마다 다른 주소값이 할당되어, 연산에 의미 없는 데이터임에도 불구하고, 매번, 다른 주소값에 대응되는 데이터를 리드해야 한다.
도 5의 (b)는 본 발명의 일 실시예에 따른 레지스터에서 각 리드 포트에 할당되는 주소값을 나타내고 있다. 또한, 도 5의 (b)에는 각각의 리드 포트에 대한 활성화 정보(re#)가 함께 도시되어 있다.
레지스터 제어 장치(100)는 리드 포트에 대한 활성화 정보를 이용하여, raddr2에 대응되는 리드 포트 2와 raddr3에 대응되는 리드 포트 3은 연산에 사용되지 않는다는 것을 확인할 수 있다.
도 5의 (b)를 참고하면, 연산에 사용되지 않는 리드 포트 2와 리드 포트 3에 할당되는 주소값이 변하지 않고 0으로 고정되어 있는 것을 확인할 수 있다. 여기에서, 레지스터 제어 장치(100)가 주소값을 0으로 고정하는 것은 본 발명의 일 실시예일 뿐, 본 발명이 이에 한정되는 것은 아니다.
본 발명의 일 실시예에 따른 레지스터 제어 장치(100)는 리드 포트의 주소값을 기설정된 값으로 유지할 수 있다. 여기에서, 기설정된 값은 레지스터(30)의 각각의 리드 포트의 초기화된 주소값 일 수 있다. 예를 들어, 레지스터(30)의 각각의 리드 포트에 모두 주소값 0이 할당되도록 레지스터(30)가 초기화될 수 있다. 이러한 경우, 레지스터 제어 장치(100)는 연산에서 사용되지 않는 리드 포트의 주소값을 0으로 유지할 수 있다.
다른 예에 따르면, 레지스터 제어 장치(100)는 연산에서 사용되지 않는 리드 포트의 주소값을 레지스터 제어 장치(100)에 저장되어 있는 임의의 값으로 결정할 수 있다. 예를 들어, 레지스터 제어 장치(100)는 연산이 수행되는 매 주기마다 사용되지 않는 리드 포트의 주소값을 n으로 결정할 수 있다.
도 6은 본 발명의 일 실시예에 따른 레지스터 제어 장치(100)의 블록도를 도시한 도면이다.
도 6에 도시된 레지스터 제어 장치(10)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 6에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 6을 참고하면, 레지스터 제어 장치(100)는 입출력부(110), 활성화 정보 획득부(120) 및 제어부(130)를 포함할 수 있다.
입출력부(110)는 구성 메모리(20)로부터 레지스터(30)의 복수개의 리드 포트 각각에 대한 명령어를 획득할 수 있다. 입출력부(110)는 획득한 명령어를 기초로 레지스터(30)를 제어할 수 있다. 여기에서, 명령어는 대응되는 리드 포트를 식별할 수 있는 정보, 리드 연산을 수행하기 위한 코드 및 레지스터(30)내의 소정 위치를 읽어 들이는데 필요한 주소값 정보를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 명령어는 복수개의 리드 포트 각각에 대해 각 리드 포트가 연산을 수행하는지에 대한 정보를 포함하고 있는 활성화 정보를 포함할 수 있다.
활성화 정보 획득부(120)는 획득한 명령어로부터 복수개의 리드 포트 각각의 활성화 정보를 획득할 수 있다.
활성화 정보 획득부(120)는 명령어에서 리드 포트에 대한 활성화 정보를 포함하고 있는 영역을 복호화할 수 있다. 예를 들어, 32 비트로 구성된 명령어에서 활성화 정보를 포함하고 있는 17번째 비트를 복호화하여, 활성화 정보를 획득할 수 있다.
본 발명의 일 실시예에 따라 소정 명령어의 17번째 비트가 제 1 값을 갖는 경우, 소정 명령어에 대응되는 리드 포트는 연산에 사용된다는 것을 확인할 수 있다. 한편, 소정 명령어의 17번째 비트가 제 2 값을 갖는 경우, 소정 명령어에 대응되는 리드 포트는 연산에 사용되지 않는다는 것을 확인할 수 있다. 여기에서, 제 1 값 및 제 2 값은 사용자의 설정에 따라 달라질 수 있다.
제어부(130)는 획득한 활성화 정보에 기초하여, 복수개의 리드 포트 각각의 주소값을 결정할 수 있다. 제어부(130)는 레지스터(30)의 리드 포트에 할당되는 주소값을 리드 포트가 연산에서 사용되는지 여부에 기초하여 결정할 수 있다.
제어부(130)는 명령어와 대응되는 리드 포트가 연산에서 사용되는 경우, 명령어로부터 추출한 주소값을 할당할 수 있다. 예를 들어, 레지스터 제어 장치(100)는 명령어의 활성화 정보가 제 1 값을 갖는 경우, 리드 포트의 주소값을 명령어로부터 추출한 주소값으로 결정할 수 있다.
제어부(130)는 명령어와 대응되는 리드 포트가 연산에서 사용되지 않는 경우, 기존의 주소값을 유지할 수 있다. 예를 들어, 제어부(130)는 명령어의 활성화 정보가 제 2 값을 갖는 경우, 리드 포트의 주소값을 기설정된 값으로 유지할 수 있다. 여기에서, 기설정된 값은 레지스터(30)의 각각의 리드 포트의 초기화된 주소값 일 수 있다. 예를 들어, 레지스터(30)의 각각의 리드 포트에 모두 주소값 0이 할당되도록 레지스터(30)가 초기화될 수 있다. 이러한 경우, 제어부(130)는 연산에서 사용되지 않는 리드 포트의 주소값을 0으로 유지할 수 있다.
다른 예에 따르면, 제어부(130)는 연산에서 사용되지 않는 리드 포트의 주소값을 제어부(130)에 저장되어 있는 임의의 값으로 결정할 수 있다. 예를 들어, 제어부(130)는 연산이 수행되는 매 주기마다 사용되지 않는 리드 포트의 주소값을 n으로 결정할 수 있다.
도 7은 본 발명의 일 실시예에 따른 명령어를 생성 장치(700)의 블록도를 도시한 도면이다.
도 7에 도시된 명령어를 생성 장치(700)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 7에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 7을 참고하면, 명령어를 생성하는 장치(700)는 제어부(710) 및 명령어 생성부(720)를 포함할 수 있다. 여기에서 명령어를 생성하는 장치(700)는 재구성 프로세서에서 수행 가능한 연산 코드를 생성하는 컴파일러일 수 있다. 한편, 이는 본 발명의 일 실시예일 뿐, 명령어 생성 장치는 재구성 프로세서에서 수행 가능한 연산 코드를 생성하는 기능을 수행하는 디바이스일 수 있다.
명령어를 생성하는 장치(700)는 생성된 명령어를 도 1 의 구성 메모리(20)에 전송할 수 있다. 구성 메모리(20)는 명령어를 생성하는 장치(700)로부터 수신한 명령어를 저장할 수 있다.
제어부(710)는 레지스터(30)의 복수개의 리드 포트들 중에서 소정 사이클에 사용되는 적어도 하나의 리드 포트를 검출할 수 있다. 여기에서, 소정 사이클에 사용되는 적어도 하나의 리드 포트는 소정 사이클에, 즉 동시에 수행되는 연산에 관한 명령어가 할당되는 리드 포트를 포함할 수 있다.
명령어 생성부(720)는 소정 사이클에서 검출된 적어도 하나의 리드 포트 각각에 할당되는 주소값 및 활성화 코드를 포함하는 명령어를 생성할 수 있다. 또한, 명령어에는 명령어가 대응되는 리드 포트를 식별할 수 있는 정보 역시 포함될 수 있다.
명령어 생성부(720)는 동시에 수행되는 연산들 각각에 대한 연산 코드와 레지스터(30)를 제어하는 활성화 정보를 결합하여, 명령어를 생성할 수 있다. 여기에서, 활성화 정보는 명령어가 대응되는 리드 포트가 연산에 사용되는 경우 제 1 값을 갖고, 명령어가 대응되지 않는 리드 포트가 연산에 사용되지 않는 경우 제 2 값을 갖을 수 있다.
본 발명에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다.  소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다.  여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다.  컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다.  매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 발명에서 인용하는 공개 문헌, 특허 출원, 특허 등을 포함하는 모든 문헌들은 각 인용 문헌이 개별적으로 및 구체적으로 병합하여 나타내는 것 또는 본 발명에서 전체적으로 병합하여 나타낸 것과 동일하게 본 발명에 병합될 수 있다.
본 발명의 이해를 위하여, 도면에 도시된 바람직한 실시 예들에서 참조 부호를 기재하였으며, 본 발명의 실시 예들을 설명하기 위하여 특정 용어들을 사용하였으나, 특정 용어에 의해 본 발명이 한정되는 것은 아니며, 본 발명은 당업자에 있어서 통상적으로 생각할 수 있는 모든 구성 요소들을 포함할 수 있다.
본 발명은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다.  이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다.  예를 들어, 본 발명은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다.  본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다.  기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.  또한, 본 발명은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다.  “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.  상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다.  명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다.  또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다.  또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
10: 레지스터를 제어하는 시스템
20: 구성 메모리
30: 레지스터
100: 재구성 가능 프로세서의 레지스터를 제어하는 장치

Claims (16)

  1. 재구성 가능 프로세서의 레지스터를 제어하는 방법에 있어서,
    상기 레지스터의 복수개의 리드(read) 포트 각각에 대한 명령어를 획득하는 단계;
    상기 획득한 명령어로부터 상기 복수개의 리드 포트 각각의 활성화 정보를 획득하는 단계; 및
    상기 획득한 활성화 정보에 기초하여, 상기 복수개의 리드 포트 각각이 오퍼레이션(operation)에 사용되는지 여부를 판단하는 단계;
    상기 복수개의 리드 포트 중 상기 오퍼레이션에 사용되지 않는 제 1 리드 포트에 기 설정된 주소값을 할당하고, 상기 복수개의 리드 포트 중 상기 오퍼레이션에 사용되는 제 2 리드 포트에 상기 명령어로부터 획득한 주소값을 할당하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1항에 있어서,
    상기 오퍼레이션에 사용되는 것으로 결정된 적어도 하나의 리드 포트 각각에 대해, 상기 획득한 명령어로부터 주소값을 추출하는 단계를 포함하고,
    상기 추출된 주소값 각각은 상기 결정된 적어도 하나의 리드 포트에 할당되는 것을 특징으로 하는 방법.
  3. 제 2항에 있어서, 상기 복수개의 리드 포트 각각이 오퍼레이션(operation)에 사용되는지 여부를 판단하는 단계는,
    활성화 정보가 제 1 값인 상기 제 1 리드 포트의 경우, 상기 제 1 리드 포트가 소정 사이클의 상기 오퍼레이션에 사용되지 않는 것으로 결정하는 단계; 및
    활성화 정보가 제 2 값인 상기 제 2 리드 포트의 경우, 상기 제 2 리드 포트가 상기 소정 사이클의 상기 오퍼레이션에 사용되는 것으로 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제 2항에 있어서,
    소정 사이클 이후의 사이클의 오퍼레이션에서, 사용되지 않는 레지스터의 리드 포트는 상기 소정 사이클에서의 주소값을 유지하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 삭제
  6. 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법에 있어서,
    상기 레지스터의 복수개의 리드 포트들 중에서 소정 사이클의 오퍼레이션에 사용되는 적어도 하나의 리드 포트를 검출하는 단계; 및
    상기 소정 사이클의 오퍼레이션에서 상기 검출된 적어도 하나의 리드 포트 각각에 할당되는 주소값 및 활성화 코드를 포함하는 명령어를 생성하는 단계를 포함하고,
    상기 복수개의 리드 포트 중 상기 오퍼레이션에 사용되지 않는 제 1 리드 포트에 기 설정된 주소값이 할당되고, 상기 복수개의 리드 포트 중 상기 오퍼레이션에 사용되는 제 2 리드 포트에 상기 명령어에 포함된 주소값이 할당되는 것을 특징으로 하는 방법.
  7. 제 6항에 있어서,
    상기 소정 사이클의 오퍼레이션에서 사용되지 않는 리드 포트에 대해 비활성화 코드를 포함하는 명령어를 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 재구성 가능 프로세서의 레지스터를 제어하는 장치에 있어서,
    상기 레지스터의 복수개의 리드 포트 각각에 대한 명령어를 획득하는 입출력부;
    상기 획득한 명령어로부터 상기 복수개의 리드 포트 각각의 활성화 정보를 획득하는 활성화 정보 획득부; 및
    상기 획득한 활성화 정보에 기초하여, 상기 복수개의 리드 포트 각각이 오퍼레이션(operation)에 사용되는지 여부를 판단하고, 상기 복수개의 리드 포트 중 상기 오퍼레이션에 사용되지 않는 제 1 리드 포트에 기 설정된 주소값을 할당하고, 상기 복수개의 리드 포트 중 상기 오퍼레이션에 사용되는 제 2 리드 포트에 상기 명령어로부터 획득한 주소값을 할당하는제어부를 포함하는 것을 특징으로 하는 장치.
  9. 제 8항에 있어서, 상기 제어부는,
    상기 오퍼레이션에 사용되는 것으로 결정된 적어도 하나의 리드 포트 각각에 대해 상기 획득한 명령어로부터 주소값을 추출하고,
    상기 추출된 주소값 각각은 상기 결정된 적어도 하나의 리드 포트에 할당되는 것을 특징으로 하는 장치.
  10. 제 9항에 있어서, 상기 제어부는,
    상기 획득한 활성화 정보가 제 1 값인 상기 제 1 리드 포트의 경우, 상기 제 1 리드 포트가 소정 사이클의 상기 오퍼레이션에 사용되지 않는 것으로 결정하고, 상기 획득한 활성화 정보가 제 2 값인 상기 제 2 리드 포트의 경우, 상기 제 2 리드 포트가 상기 소정 사이클의 상기 오퍼레이션에 사용되지 않는 것으로 결정하는 것을 특징으로 하는 장치.
  11. 제 9항에 있어서, 상기 제어부는,
    소정 사이클 이후의 사이클의 오퍼레이션에서, 사용되지 않는 레지스터의 리드 포트는 상기 소정 사이클에서의 주소값을 유지하는 것을 특징으로 하는 장치.
  12. 삭제
  13. 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 장치에 있어서,
    상기 레지스터의 복수개의 리드 포트들 중에서 소정 사이클의 오퍼레이션에 사용되는 적어도 하나의 리드 포트를 검출하는 제어부; 및
    상기 소정 사이클의 오퍼레이션에서 상기 검출된 적어도 하나의 리드 포트 각각에 할당되는 주소값 및 활성화 코드를 포함하는 명령어를 생성하는 명령어 생성부를 포함하고,
    상기 복수개의 리드 포트 중 상기 오퍼레이션에 사용되지 않는 제 1 리드 포트에 기 설정된 주소값이 할당되고, 상기 복수개의 리드 포트 중 상기 오퍼레이션에 사용되는 제 2 리드 포트에 상기 명령어에 포함된 주소값이 할당되는 것을 특징으로 하는 장치.
  14. 제 13항에 있어서, 상기 명령어 생성부는,
    상기 소정 사이클의 오퍼레이션에서 사용되지 않는 리드 포트에 대해 비활성화 코드를 포함하는 명령어를 생성하는 것을 특징으로 하는 장치.
  15. 제 1항 내지 제 4항 중 어느 하나의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  16. 제 6항 내지 제 7항 중 어느 하나의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020130147988A 2013-11-29 2013-11-29 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치 KR102251241B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130147988A KR102251241B1 (ko) 2013-11-29 2013-11-29 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치
US15/100,452 US10185565B2 (en) 2013-11-29 2014-11-28 Method and apparatus for controlling register of reconfigurable processor, and method and apparatus for creating command for controlling register of reconfigurable processor
PCT/KR2014/011595 WO2015080534A1 (ko) 2013-11-29 2014-11-28 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130147988A KR102251241B1 (ko) 2013-11-29 2013-11-29 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20150062877A KR20150062877A (ko) 2015-06-08
KR102251241B1 true KR102251241B1 (ko) 2021-05-12

Family

ID=53199408

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130147988A KR102251241B1 (ko) 2013-11-29 2013-11-29 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치

Country Status (3)

Country Link
US (1) US10185565B2 (ko)
KR (1) KR102251241B1 (ko)
WO (1) WO2015080534A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102225838B1 (ko) * 2018-12-20 2021-03-09 한양대학교 에리카산학협력단 안드로이드 앱 보호를 위한 안티 에뮬레이션 방법 및 장치

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4491937A (en) * 1982-02-25 1985-01-01 Trw Inc. Multiport register file
JPH06195476A (ja) 1992-07-21 1994-07-15 Advanced Micro Devicds Inc マイクロコントローラを組入れる集積回路およびそれによる電力消費を減じるための方法
EP0605927B1 (en) * 1992-12-29 1999-07-28 Koninklijke Philips Electronics N.V. Improved very long instruction word processor architecture
US5434818A (en) * 1993-12-23 1995-07-18 Unisys Corporation Four port RAM cell
US6564331B1 (en) 1999-09-24 2003-05-13 Intel Corporation Low power register file
US20020046251A1 (en) * 2001-03-09 2002-04-18 Datacube, Inc. Streaming memory controller
EP1220226B1 (en) * 2000-12-20 2005-08-17 Fujitsu Limited Multi-port memory based on DRAM core
JP4024502B2 (ja) 2001-09-18 2007-12-19 株式会社日立製作所 情報処理装置の制御方法
JP4225749B2 (ja) * 2002-08-07 2009-02-18 株式会社ルネサステクノロジ 半導体記憶装置
JP4502792B2 (ja) 2004-12-09 2010-07-14 富士通セミコンダクター株式会社 データバッファ回路
US7328315B2 (en) * 2005-02-03 2008-02-05 International Business Machines Corporation System and method for managing mirrored memory transactions and error recovery
US20060277425A1 (en) 2005-06-07 2006-12-07 Renno Erik K System and method for power saving in pipelined microprocessors
US7865587B1 (en) * 2008-04-29 2011-01-04 Netapp, Inc. System and method for reassigning port names on storage controller to minimize host traffic disruption
US8549234B2 (en) * 2011-10-14 2013-10-01 Renesas Mobile Corporation Memory controller and methods
US20130117476A1 (en) * 2011-11-08 2013-05-09 William V. Miller Low-power high-speed data buffer

Also Published As

Publication number Publication date
KR20150062877A (ko) 2015-06-08
US20160321073A1 (en) 2016-11-03
WO2015080534A1 (ko) 2015-06-04
US10185565B2 (en) 2019-01-22

Similar Documents

Publication Publication Date Title
KR101606622B1 (ko) Fsm을 구현하기 위한 특수 목적 요소의 이용
CN104169897B (zh) Pci高速地址解码的方法
US8880871B2 (en) Hash table organization
US20140317628A1 (en) Memory apparatus for processing support of long routing in processor, and scheduling apparatus and method using the memory apparatus
US9632708B2 (en) Method, apparatus, and system for reading and writing data
US10409350B2 (en) Instruction optimization using voltage-based functional performance variation
KR102251241B1 (ko) 재구성 가능 프로세서의 레지스터를 제어하는 방법 및 장치와 재구성 가능 프로세서의 레지스터를 제어하는 명령어를 생성하는 방법 및 장치
JP6246239B2 (ja) 素数生成のための方法およびデバイス
US20170177064A1 (en) Dynamic Workload Frequency Optimization
US10223260B2 (en) Compiler-generated memory mapping hints
US9081635B2 (en) Provision to an application of a random number not generated by an operating system
CN107832086B (zh) 计算机设备、程序写入方法及程序读取方法
US10956159B2 (en) Method and processor for implementing an instruction including encoding a stopbit in the instruction to indicate whether the instruction is executable in parallel with a current instruction, and recording medium therefor
KR102210997B1 (ko) Vliw 명령어를 처리하는 방법 및 장치와 vliw 명령어를 처리하기 위한 명령어를 생성하는 방법 및 장치
US10776077B2 (en) Method, apparatus and recording medium for processing division calculation
KR101981628B1 (ko) 버스 통신 기반의 프레임 스케줄링 방법 및 그를 위한 장치
US20170017610A1 (en) Method and apparatus for controlling reconfigurable processor
KR20160134323A (ko) 스레드를 실행하는 방법, 프로세서 및 기록매체
JP2016153930A (ja) 設定情報管理装置、設定情報管理方法、及び、設定情報管理プログラム
US10140247B2 (en) Electronic device, reconfigurable processor and controlling methods thereof
WO2017212547A1 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
KR102202211B1 (ko) 애플리케이션의 로딩 성능 개선을 위한 입출력 최적화 장치 및 방법
US10078586B2 (en) Out-of-range reference detection device, method, and recording medium
CN112463214A (zh) 数据处理方法及装置、计算机可读存储介质以及电子设备
KR20120098324A (ko) 반도체 메모리 시스템 및 그의 제어 방법

Legal Events

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