KR20180083268A - 하드웨어 구성 가능 논리 유닛 및 상기 하드웨어 구성 가능 논리 유닛을 구비한 마이크로컨트롤러 - Google Patents

하드웨어 구성 가능 논리 유닛 및 상기 하드웨어 구성 가능 논리 유닛을 구비한 마이크로컨트롤러 Download PDF

Info

Publication number
KR20180083268A
KR20180083268A KR1020180003993A KR20180003993A KR20180083268A KR 20180083268 A KR20180083268 A KR 20180083268A KR 1020180003993 A KR1020180003993 A KR 1020180003993A KR 20180003993 A KR20180003993 A KR 20180003993A KR 20180083268 A KR20180083268 A KR 20180083268A
Authority
KR
South Korea
Prior art keywords
hardware
logic unit
control element
configurable logic
configuration
Prior art date
Application number
KR1020180003993A
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 로베르트 보쉬 게엠베하
Publication of KR20180083268A publication Critical patent/KR20180083268A/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/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • G06F7/785Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components

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

Abstract

본 발명은, 복수의 코스-그레인드 하드웨어 요소(110, 120, 130, 140, 150, 160, 170, 180) 및 하나의 제어 요소를 구비한 하드웨어 구성 가능 논리 유닛(100)에 관한 것으로, 상기 제어 요소는 코스-그레인드 하드웨어 요소(110, 120, 130, 140, 150, 160, 170, 180)의 구성을 변경할 수 있도록 설계된다.

Description

하드웨어 구성 가능 논리 유닛 및 상기 하드웨어 구성 가능 논리 유닛을 구비한 마이크로컨트롤러{HARDWARE CONFIGURABLE LOGIC UNIT AND MICROCONTROLLER WITH A SUCH HARDWARE CONFIGURABLE LOGIC UNIT}
본 발명은, 하드웨어 구성 가능 논리 유닛 및 이와 같은 하드웨어 구성 가능 논리 유닛을 구비하는 마이크로컨트롤러에 관한 것이다.
종래의 디지털 하드웨어는 런 타임 동안 변경될 수 없다. 하지만, 상이한 소프트웨어를 실행함으로써, 종래 하드웨어의 상이한 기능성에 도달할 수 있다. 특히, 이와 같은 관계에서는 프로세서 유닛(소위 마이크로프로세서 또는 CPU)이 종래의 디지털 하드웨어로서 이해될 수 있다. 이와 같은 프로세서 유닛은 목적에 부합하는 프로세서 혹은 프로세서 코어 또는 복수의 (2개 이상의) 프로세서 코어로 이루어진 멀티 코어 프로세서를 포함할 수 있다. 하나의 프로세서 코어는 대부분 산술적인 그리고 논리적인 기능을 계산하기 위한 산술 논리 유닛(ALU) 및 또한 로컬 메모리를 구비한다. 이와 마찬가지로, 종래의 디지털 하드웨어에는 프로세서의 구성 부품으로서 또는 별개의 부품으로서 하드웨어 가속 장치가 할당될 수 있다. 하지만, 소프트웨어를 실행하는 프로세서에 대하여, 하드웨어 가속 장치의 기능이 고정 배선되어(hardwired) 있음으로써, 결과적으로 하드웨어 가속 장치에서는 어떤 프로그램 코드도 실행될 수 없다.
그와 달리, 하드웨어를 구성할 수 있는 논리 회로의 하드웨어는 변경될 수 없지 않고, 오히려 언제든지 변경될 수 있으며, 특히 하드웨어 기술 언어(HDL: Hardware Description Language)에 의해 하드웨어 평면에서 새로이 프로그래밍 될 수 있거나 새로이 구성될 수 있다. 이로써, 하드웨어를 구성할 수 있는 논리 회로에는 상이한 기능성이 배분될 수 있다. 하드웨어를 구성할 수 있는 논리 회로에 대한 예는, 구성 가능한 논리 블록(Configurable Logic Block, CLB)으로 이루어지고 상대적으로 더 복잡한 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array, FPGAs) 및 프로그래밍 가능한 AND-매트릭스 및 OR-매트릭스로 이루어지고 상대적으로 더 간단하게 구성된 (콤플렉스) 프로그래머블 로직 디바이스[(Complex) Programmable Logic Device, CPLD] 그리고 이하에서 FPGA로 간략히 지칭되는 입·출력 블록이다.
FPGA를 새로이 구성하기 위해, 일 FPGA의 개별 회로 영역들이 상이하게 상호 연결될 수 있다. 이 경우에는, 개별 회로 영역들 내에서 하드웨어 요소들의 구성이 변경된다. 이와 같은 상이한 구성을 이용해서, 회로 영역의 상이한 기능 또는 기능성에 그리고 이로써 FPGA의 상이한 기능 또는 기능성에 도달하게 된다. 상기와 같은 하드웨어 요소들은 예를 들어 룩업 테이블(Lookup Table, LUT), 멀티플렉서(Multiplexer, MUX), 논리 인스턴스[예컨대 프로그래머블 인터커넥트 포인트(Programmable Interconnect Point)]들 사이에 있는 그리고/또는 글로벌 리소스(Clock, Vcc, GND)들 사이에 있는 신호 라인일 수 있다.
본 발명에 따라, 독립 특허 청구항들의 특징들을 갖는, 하드웨어 구성 가능 논리 유닛 및 이와 같은 하드웨어 구성 가능 논리 유닛을 구비하는 마이크로컨트롤러가 제안된다. 바람직한 실시예들은 종속 청구항들의 그리고 이하의 상세한 설명의 대상이다.
하드웨어 구성 가능 논리 유닛은 복수의 코스-그레인드(coarse-grained) 하드웨어 요소, 다시 말해 하나 이상의 논리 게이트를 갖는 하드웨어 요소 및 하나의 제어 요소를 구비한다. 이때, 게이트는 기능 및 상호 연결에 있어서 변경될 수 없다. 제어 요소는, 특히 정상 작동 동안 코스-그레인드 하드웨어 요소의 구성을 변경할 수 있도록 설계되어 있다. 이 경우, 하드웨어 구성 가능 논리 유닛은 특히 하나의 구조적인 유닛이고, 더 나아가서는 특히 집적 회로의 일 부분이다.
일반적으로, 입자성(granularity)이란, 하나의 시스템이 서로 상이할 수 있는 개별 유닛들로부터 어느 정도까지 결집되어 있는가를 의미한다. 코스-그레인드 시스템은 비교적 적은 수의 비교적 크기가 큰 코스-그레인드 요소들로부터 결집되어 있는 반면, 파인-그레인드 시스템은 비교적 많은 수의 비교적 크기가 작은 파인-그레인드 요소들로부터 결집되어 있다.
특별히, 컴퓨터-아키텍처(computer architecture) 분야에서의 입자성은, 논리 게이트의 개수에 의해서 그리고 이와 관련하여 특히 산술 연산 혹은 실행 시간과 통신 혹은 데이터 교환 간의 비율에 의해서 기술될 수 있다. 파인-그레인드 헤드웨어 요소(각각 하나의 논리 게이트) 내에서는 간단한 논리 연산이 비교적 짧은 실행 시간 안에 신속하게 실시되지만, 개별 요소들 사이에서는 자주 데이터가 교환된다. 그와 달리, 코스-그레인드 하드웨어 요소(각각 복수의 논리 게이트) 내에서는 특히 각각 복잡한 연산이 비교적 긴 실행 기간으로써 실시되고, 개별 요소들 사이에서는 드물게 데이터가 교환된다.
따라서, 코스-그레인드 하드웨어 요소란, 특히 복잡한 산술 연산을 위해 상호 데이터를 교환하지 않고서도 이와 같은 복잡한 산술 연산을 각각 자발적으로 실시할 수 있는 요소들로 이해할 수 있다. 바람직한 방식으로, 개별 코스-그레인드 하드웨어 요소들은 각각 다음의 요소들, 즉 산술 논리 유닛(ALU), 메모리 액세스 유닛, 통신 인터페이스와 같은 고도로 복잡한 요소들 및/또는 비교기, 덧셈기, 곱셈기, 나눗셈기, 시프트 레지스터, 배럴 시프터(barrel shifter), 곱셈 누산 유닛(Multiply-Accumulate-Unit), 레지스터 또는 레지스터 블록, 메모리 유닛(예컨대 RAM, 플래시 등), 멀티플렉서(예컨대 2:1-MUX, M:N-MUX)와 같은 덜 복잡한 유닛들 중 하나로서 형성되어 있다.
ALU는 특히 산술적인 그리고 논리적인 기능을 계산한다. 유용하게, ALU는 산술적인 기능으로서 하나 이상의 덧셈(ADD)을 실시할 수 있고, 논리적인 기능으로서 하나 이상의 부정(NOT) 및 논리곱(그리고-연산, AND)을 실시할 수 있다. 바람직하게, ALU는 산술 기능으로서 또한 뺄셈(SUB) 및/또는 비교(compare, CMP) 및/또는 곱셈(MUL) 및/또는 나눗셈 및/또는 덧셈 후의 10진 보정(Decimal Adjust after Addition)도 실행할 수 있다. 바람직하게, ALU는 논리 기능으로서 또한 논리합(또는-연산, OR) 및/또는 반대(배타적-또는-연산, XOR, EOR) 및/또는 우측 이동 및 좌측 이동(우측 시프트, 좌측 시프트, ASR - 우측으로의 산술적인 시프트, ASL - 좌측으로의 산술적인 시프트, LSR - 우측으로의 논리적인 이동, LSL - 좌측으로의 논리적인 이동) 및/또는 좌측 회전 및 우측 회전(ROL, ROR) 및/또는 레지스터 조작 및/또는 비트 변경(비트 설정, 소거 및 테스팅) 및/또는 비트 및 바이트의 재배열 및/또는 AES-명령 및/또는 CRC-명령도 실행할 수 있다.
서로 연결된 개별적인 코스-그레인드 하드웨어 요소에 의해서는, 복잡한 계산 유닛이 준비된다. 코스-그레인드 하드웨어 요소의 구성이란, 이용 가능한 가능성으로부터 코스-그레인드 하드웨어 요소의 기능을 구체화하는 것 그리고 특히 또한 개별 요소들의 연결 구조를 구체화하는 것으로서 이해될 수 있다. 이로써, 구성의 변경에 의해서는, 상기 계산 유닛이 하드웨어 평면에서 요소들의 기능을 (재-)구성할 수 있고, 요소들을 상이한 방식으로 서로 (새로이) 연결할 수 있으며, 이렇게 함으로써 하드웨어 평면에 있는 다양한 알고리즘에 대한 계산 유닛의 적응을 가능하게 한다.
FPGA 또는 CPLD와 같은 하드웨어를 구성할 수 있는 종래의 논리 회로는 대부분 다만 파인-그레인드 하드웨어 요소만을 구비하며, 이와 같은 파인-그레인드 하드웨어 요소의 구성은 또한 다만 외부 사전 설정에 의해서만 변경될 수 있다. 이로써, 하드웨어를 구성할 수 있는 이와 같은 종래의 논리 회로는, 하드웨어 평면에서 특별한 프로그래밍 단계에서 프로그래밍 될 수 있는 (집적) 스위칭 회로로서 간주될 수 있다. 이와 같은 내용은 또한 부분 방식의 (부분적인) 재구성 가능성을 갖는 FPGA에 대해서도 적용된다. FPGA에서는, 기능을 결정하는 상응하는 개수의 재구성 가능성이 계속해서 이용될 수 있지만, 이 경우에도 외부 사전 설정에 의해서 그 가능성이 변경될 수 있으며, 이때 관련 FPGA 부분들은 각각 특별한 재-프로그래밍 단계에서 부분적인 재구성을 이용하여 상응하게 새로이 프로그래밍 될 수 있고 상호 접속될 수 있다. 이때, 재구성된 FPGA-부분들은 논리 기능 자체를 변경시킨다.
그와 달리, 하드웨어를 구성할 수 있는 본 발명에 따른 논리 유닛은 복잡한 계산 유닛이며, 이와 같은 복잡한 계산 유닛의 코스-그레인드 하드웨어 요소들은 내부에서 제어 요소에 의해 그 기능이 구성될 수 있고, 서로 새로이 상호 접속될 수 있다. 이 경우에는, 개별적인 코스-그레인드 하드웨어 요소의 내부 논리 기능이 각각 고정 배선되어 있고, 이로써 하드웨어를 구성할 수 있는 종래의 논리 회로와 달리 변경되지 않으며, 내부 논리 기능은 다만 사전에 결정된 유연성의 범위 안에서만 구성 및 작동될 수 있다.
하드웨어를 구성할 수 있는 종래 논리 회로의 새로운 구성 또는 재구성은, 논리 회로 자체의 부분이 아니라 오히려 외부로부터 상응하는 제어 신호를 종래의 논리 회로로 전송하는 추가의 외부 유닛인 추가 유닛에 의해서 제어되고, 실행되며, 모니터링 된다. 이로써, 하드웨어를 구성할 수 있는 이와 같은 종래의 논리 회로는 예컨대 마이크로컨트롤러와 같은 복잡한 계산 유닛 내에 많은 비용을 들여서 집적될 수 있는데, 그 이유는 상응하는 계산 유닛이 자신의 또 다른 과제에 추가하여 논리 회로의 새로운 구성 또는 재구성의 제어를 실행해야만 하기 때문이다.
그와 달리, 하드웨어를 구성할 수 있는 본 발명에 따른 논리 유닛의 새로운 구성 또는 재구성은 제어 요소에 의해서 그리고 이로써 논리 유닛 자체에 의해서, 더 상세하게 말하자면 내부로부터 제어되고, 실행되며 모니터링 된다. 이로써, 논리 유닛은 독립적으로 그리고 자동으로 스스로 재구성될 수 있다. 하드웨어를 구성할 수 있는 종래 논리 회로의 프로그래밍과 달리, 본 발명에 따른 논리 유닛은 특별하고 명시적인 프로그래밍 사이클을 갖지 않는다. 그 대신, (재-)구성은 정상 작동 중에 전체 알고리즘의 구성 부분으로서 이루어진다. 이로써, 하드웨어 구성 가능 논리 유닛은 특히 바람직하게, (재-)구성을 정상 작동 동안 실행할 수 있도록, 특히 내부로부터 정상 작동의 구성 부분으로서 실행할 수 있도록, 그리고 특히 외부로부터의 재구성에 대한 필연성 없이도 실행할 수 있도록 설계되어 있다.
하드웨어 구성 가능 논리 유닛은 특히 바람직하게 예컨대 마이크로컨트롤러와 같은 상위 계산 유닛 내에 구현될 수 있다. 하드웨어 구성 가능 논리 유닛은 스스로 새로이 구성할 수 있는 가능성으로 인해 바람직하게는 상위 계산 유닛의 변경되는 요구 조건에 또는 이 상위 계산 유닛에 의해서 실행될 적용 예에 스스로 적응될 수 있거나, 처리할 데이터를 참조해서 스스로 적응될 수 있다.
하드웨어 구성 가능 논리 유닛은 상위 계산 유닛 내에서 목적에 부합하게 변경될 수 없는 하드웨어와 조합될 수 있고, 이와 같은 하드웨어와 특히 데이터 또는 신호를 교환할 수 있다. 이와 같은 조합에 의해서는, 구성할 수 있는 하드웨어와 구성할 수 없는 하드웨어의 장점들이 통합될 수 있다. 소프트웨어를 실행하기 위한 변경될 수 없는 하드웨어는 최대 유연성의 장점을 갖고, 상이한 문제 제기를 위해서 적용될 수 있는데, 그 이유는 상이한 적용 분야에 상응하는 소프트웨어가 유연하게 개발될 수 있기 때문이다. 하지만, 이와 같은 소프트웨어의 성능을 구현하는 하드웨어는 제한되어 있다. 프로세서 구성 부품으로서의 또는 별도 부품으로서의 하드웨어 가속 장치도 마찬가지로, 일반적으로 성능이 매우 우수하지만 적은 유연성을 갖는 변경될 수 없는 하드웨어를 구비하는데, 그 이유는 이와 같은 하드웨어 가속 장치의 기능이 고정 배선되어 있음으로써, 결과적으로 이 경우에는 프로그램 코드가 전혀 실행될 수 없기 때문이다.
하드웨어 구성 가능 논리 유닛에 의해서는, 높은 유연성에도 불구하고 높은 효율에 도달할 수 있는데, 그 이유는 이 논리 유닛이 하드웨어 평면에서 구체적으로는 특별한 문제 제기를 처리하도록 구성될 수 있고, 코스-그레인드 하드웨어 요소의 상이한 구성으로써 상이한 과제 또는 적용을 독자적으로, 다시 말하자면 복잡한 알고리즘의 실행 동안 외부로부터 제어되는 시간 집약적인 재구성의 필연성 없이, 그리고 이로써 높은 효율로 수행할 수 있기 때문이다.
바람직하게, 제어 요소는, 코스-그레인드 하드웨어 요소들 중 하나 이상의 하드웨어 요소의 (현재의) 구성 또는 현재의 상태를 체크하도록 그리고 이와 같은 체크의 결과로서 코스-그레인드 하드웨어 요소의 (현재의) 구성을 변경하도록 설계되어 있다. 코스-그레인드 하드웨어 요소의 현재의 구성에 대한 정보는 특히 코스-그레인드 하드웨어 요소의 상태의 구성 부분이고, 이 경우에는 목적에 부합하게 상응하게 존재한다. 그러나 이 정보는 또한 제어 요소 내에 저장될 수도 있다. 이하에서는, 특히 다만 제1의 경우만 상세하게 기술되나, 마지막 경우는 유사한 방식으로 마찬가지로 포함되어야 한다.
상기와 같은 코스-그레인드 하드웨어 요소의 현재의 구성 또는 현재의 상태의 체크 또는 평가에 의해, 제어 요소는 또한 평가 회로로서 간주될 수도 있다. 특히, 제어 요소는 상기 체크 과정의 진행 중에 저장된 패턴 구성을 상기 체크의 결과에 상응하게 선택하며, 현재의 구성이 새로이 선택된 패턴 구성에 상응하도록 현재의 구성을 변경한다. 이로써, 저장된 패턴 구성의 변경에 의해서 논리 유닛의 구성이 변경될 수 있다.
특히, 제어 요소도 구성될 수 있다. 이와 같은 구성에 의해서는, 제어 요소가 유연하게 제어될 수 있는데, 특히 논리 유닛에 대한 변하는 요구 조건 또는 논리 유닛이 실행해야 하는 적용에 따라서 유연하게 제어될 수 있다. 특히 제어 요소는 이와 같은 구성에 의해, 논리 유닛의 구성을 변경하기 위해서 제어될 수 있다.
바람직하게, 하드웨어 구성 가능 논리 유닛은 제2 제어 요소를 구비하며, 이 제2 제어 요소는, 제어 요소의 구성을 변경하도록 설계되어 있다. 차이를 명확하게 하기 위해, 지금까지 제어 요소로서 지칭된 요소는 일반성의 제한 없이 이하에서 "제1 제어 요소"로서 지칭된다. 이로써, 제2 제어 요소는 바람직하게 제1 제어 요소를 제어하도록 설계되어 있다. 특히, 제1 제어 요소는 제2 제어 요소의 현재의 고유한 구성 또는 현재의 상태, 특히 제2 제어 요소의 구성 사전 설정을 체크한다. 제1 제어 요소의 현재의 구성이 제2 제어 요소의 구성 사전 설정과 상이하면, 제1 제어 요소는 자신의 구성을 목적에 부합하게 제2 제어 요소의 구성 사전 설정에 적응시킨다. 예를 들면, 이와 같은 방식에 의해서는 저장된 패턴 구성이 변경될 수 있음으로써, 결과적으로 제1 제어 요소는 이와 같은 제어에 의해 논리 유닛의 구성을 상응하게 변경하라는 지시를 받게 된다.
제2 제어 요소는 재차 목적에 부합하게 논리 유닛 자체에 의해서, 더 상세하게 말하자면 내부로부터 구성 또는 제어될 수 있으며 그리고/또는 외부로부터, 더 상세하게 말하자면 논리 유닛과 연결된 외부 유닛에 의해서 구성 또는 제어될 수 있다. 이와 같은 제2 제어 요소의 구성 또는 제어에 의해서는, 제1 제어 요소를 상응하게 제어하라는 지시가 제2 제어 유닛에 내려진다.
바람직하게, 하드웨어 구성 가능 논리 유닛은 제2 제어 요소를 구비하며, 이 제3 제어 요소는, 코스-그레인드 하드웨어 요소들 중 하나 이상의 하드웨어 요소의 구성 및 상태를 체크하도록 그리고/또는 제2 제어 요소의 구성을 체크하도록 그리고 이와 같은 체크의 결과로서 제2 제어 요소의 구성을 변경하도록 설계되어 있다. 이로써, 제2 제어 요소는 내부로부터, 더 상세하게 말하자면 논리 유닛 자체에 의해서 재구성될 수 있다. 특히, 제3 제어 요소는 개별적인 코스-그레인드 하드웨어 요소들의 현재의 구성 및 현재의 상태 그리고 제2 제어 요소의 현재의 구성을 체크한다. 이 경우, 제2 제어 요소의 구성의 변경 또는 그에 상응하게 제3 제어 요소에 의한 제2 제어 요소의 제어는 목적에 부합하게 논리 유닛의 작동 중에 동적으로 이루어질 수 있다.
단독적인 제2 제어 요소가 제1 제어 요소에 각각 한 가지 구성을 특히 준-정적으로 사전 설정하는 동안, 제3 제어 요소는 제2 제어 요소의 동적인 제어 또는 구성 변경으로 인해, 특히 바람직한 방식으로, 이로 인해 야기되는 하드웨어 구성 가능 논리 유닛의 동적인 구성 변경을 이 논리 유닛의 코스-그레인드 하드웨어 요소로써 내부로부터 가능하게 한다.
제2 제어 요소를 구성하기 위해, 제3 제어 요소 내에서 구성 파라미터가 평가될 수 있음으로써, 결과적으로 예를 들면 예컨대 중간 결과에 따라 동적인 임계값이 설정되는데, 입력 패턴의 추적(tracking)이 실행될 수 있으며, 예컨대 마찬가지로 중간 결과에 따라 대안적인 계산 방법이 선택될 수 있으며, 동적으로 개별 상태들의 논리적인 연산이 변경될 수 있고/변경될 수 있거나 다단계의 평가가 실행될 수 있다.
상기와 같은 방식에 의해서는 목적에 부합하게, 논리 유닛이 자신의 하드웨어 구성을 런 타임에 또는 작동 동안에 자발적으로 자동으로 변경할 수 있는 상황이 실현될 수 있다. 특히 코스-그레인드 하드웨어 요소의 현재의 구성 또는 현재의 상태에 따라, 제3 제어 요소에 의해서 제2 제어 요소를 상응하게 구성/제어함으로써는, 제2 제어 요소가 논리 유닛으로부터 제1 제어 요소를 상응하게 구성 또는 제어하라는 지시를 받게 되며, 그 결과 제1 제어 요소는 논리 유닛의 하드웨어 구성을 상응하게 변경하게 된다.
바람직하게, 하드웨어 구성 가능 논리 유닛은 제어 신호를 수신하기 위한 인터페이스를 구비하며, 이 경우 하드웨어 구성 가능 논리 유닛은, 제어 신호의 수신을 목적으로 제2 제어 요소의 구성을 변경하도록 설계되어 있다. 이로써, 제2 제어 요소는, 상응하는 외부 유닛이 이와 같은 제어 신호를 전송함으로써 외부로부터 구성될 수 있다. 목적에 부합하게는, 이 목적을 위해, 또한 제3 제어 요소에 의해서 평가된 구성 값도 제어 신호에 의해 간접적으로 전달될 수 있다. 제2 제어 요소에 대해 추가로 또는 대안적으로, 제3 제어 요소 자체가 또한 상기와 같은 인터페이스를 구비할 수 있음으로써, 결과적으로 구성 값은 외부 유닛으로부터 제3 제어 요소로 직접 전달되어 그곳에서 평가된다. 이하에서는, 특히 다만 제1의 경우만 상세하게 기술되나, 마지막 경우는 유사한 방식으로 마찬가지로 포함되어야 한다. 특히, 이와 같은 구성에 의해서는, 임계값 및/또는 소수의 연속 순환(continuous loop)이 설정될 수 있고/설정될 수 있거나 평가할 개별 상태들 및 이들 상태의 논리 연산이 선택될 수 있다. 따라서, 목적에 부합하게는 마찬가지로, 논리 유닛의 하드웨어 구성이 내부로부터 논리 유닛 자체에 의해서 변경될 수 있을 뿐만 아니라 또한 외부로부터 추가의 유닛에 의해서 변경될 수 있는 상황도 가능해진다.
3개 제어 요소의 복잡성을 줄이기 위하여, 이들 3개 제어 요소는 분리될 수 있다. 특히, 각각의 코스-그레인드 하드웨어 요소에 정확하게 하나의 제1, 제2 및 제3 제어 요소를 할당하는 것이 바람직하다. 이때, 제어 요소들은 코스-그레인드 하드웨어 요소 외부에 있을 수 있거나 코스-그레인드 하드웨어 요소의 구성 부품이 될 수 있다.
상황에 따라 분리에 의해 결합 해제된 제어 요소들에는 특히 입력 인터페이스 및 출력 인터페이스 그리고 동기화 기계 장치가 제공되어 있다. 입력 인터페이스는 특히 다른 제어 요소들의 입력 데이터를 검출 및 판독할 수 있고, 계산의 개시 요망(start wish)을 검출 및 실행할 수 있다. 출력 인터페이스는 목적에 부합하게, 출력 데이터를 다른 제어 요소들로 발송할 수 있고, 상황에 따라서는 계산의 상태 및 종료를 전달할 수 있다. 동기화 기계 장치는 기능적으로 그리고 시간상으로 올바른 시퀀스, 특히 입력 데이터의 수신, 계산의 개시, 경우에 따라서는 추가 데이터의 요구, 내부적인 진행의 제어, 계산의 종료, 계산 결과의 출력 및 출력 인터페이스로의 계산 진행을 보증해준다.
결합 해제된 제어 요소들은 바람직하게 입력 인터페이스 및 출력 인터페이스를 통해서 다음과 같은 정보들, 즉 현재의 상태, 예컨대 새로운 계산을 채택하기 위한 준비 상태의 신호화, 입력 데이터 인수의 실행, 계산 방법의 진행, 계산의 (비-)종료, 출력 데이터의 이용 가능성, 오류의 발생, 예컨대 명확한 ID의 할당 또는 유지, ID의 개시 또는 지속적인 계수에 의한 상태 또는 데이터의 명확한 식별 또는 계산 단계들에 대한 상태 또는 데이터의 할당과 같은 정보들을 서로 교환한다.
특히 바람직한 일 실시예에 따라, 하드웨어 구성 가능 논리 유닛은, 하나의 마이크로컨트롤러 내에 구성 요소로서 집적될 수 있도록 설계되어 있다. 이 경우에는, 하드웨어 구성 가능 논리 유닛이 특히 정규 주변 장치로서 집적됨으로써, 결과적으로 하드웨어 구성 가능 논리 유닛과 예를 들어 프로세서 또는 멀티 코어 프로세서, 메모리 유닛(RAM, Flash 등), 다른 주변 모듈[보조 프로세서(Coprocessor), DSP, 인터페이스 컨트롤러 등) 등과 같은 마이크로컨트롤러의 또 다른 구성 요소들 간에 통신이 가능해진다. 특히 변경될 수 없는 또 다른 하드웨어 유닛들과 논리 유닛의 조합에 의해서는, 마이크로컨트롤러의 높은 효율 및 유연성에 도달할 수 있다. 이로써, 목적에 부합하게는, 변경되는 요구 조건에 또는 프로젝트 특유의 적용에 반응할 수 있기 위하여, 마이크로컨트롤러의 하드웨어의 하나 이상의 부분이 계속해서 변경될 수 있다. 따라서, 예를 들어 개발 공정의 후속 단계들에서는, 하드웨어 평면에서 직접 큰 효율로 실행될 수 있는 기능들이 마이크로컨트롤러 내로 편입될 수 있다.
바람직하게, 하드웨어 구성 가능 논리 유닛은, 하드웨어 구성 가능 논리 유닛을 마이크로컨트롤러의 내부 통신 시스템과 데이터 전달 방식으로 연결하도록 설계되어 있는 인터페이스를 구비한다. 목적에 부합하게, 상기 내부 통신 시스템은 예컨대 마이크로컨트롤러 버스, 시스템 버스 및 인터럽트 라인(interrupt line) 또는 예를 들어 오류 출력 라인과 같은 버스 시스템으로서 그리고/또는 신호 라인으로서 형성되어 있다. 이 경우, 하드웨어 구성 가능 논리 유닛은 통신 시스템 내에 슬레이브(slave)로서 또는 마스터(master)로서도 집적될 수 있으며, 특히 다이렉트 메모리 액세스(Direct Memory Access, DMA)를 이용해서 직접 통신 시스템을 경유하여 예컨대 마이크로컨트롤러의 메모리 요소(작업 메모리, RAM), 다른 주변 장치 등에 액세스할 수 있다.
바람직하게, 하드웨어 구성 가능 논리 유닛은, 하드웨어 구성 가능 논리 유닛을 마이크로컨트롤러의 외부 통신 시스템과 데이터 전달 방식으로 연결하도록 설계되어 있는 인터페이스를 구비한다. 목적에 부합하게, 상기 외부 통신 시스템은 버스 시스템으로서 그리고/또는 예컨대 SPI, CAN, FlexRay, 이서넷과 같은 I/O 핀에 의해서 직접 형성되어 있고/형성되어 있거나 예를 들어 인풋 핀(Input Pin) 또는 아웃풋 핀(Output Pin) 또는 조합된 인풋/아웃풋 핀으로서 형성되어 있다. 이 경우, 하드웨어 구성 가능 논리 유닛은 통신 시스템 내에 슬레이브로서 또는 마스터로서도 집적될 수 있다.
바람직하게, 내부 및 외부 인터페이스는 또한 또 다른 구성 요소들과 데이터 및/또는 제어 신호를 교환하기 위해 마이크로컨트롤러 내부에 또는 외부에 위치하도록 설계되어 있다. 이로써, 출력 데이터가 논리 유닛으로부터 인터페이스를 경유하여 또 다른 구성 요소로 전달되고, 입력 데이터가 또 다른 구성 요소에 의해서 수신된다. 인터페이스에 의해서는, 어드레스 기반의 그리고/또는 비-어드레스 기반의 액세스를 이용하여, 특히 데이터 레지스터 및/또는 제어 레지스터, 내부 메모리 유닛, 인터럽트 라인, 기타 신호 라인으로부터의 데이터 수신 및 이들로의 데이터 송신이 가능해진다. 인터페이스를 통해서 교환된 데이터는 논리 유닛의 제어를 위해 이용될 수 있고/이용될 수 있거나 계산의 입력 데이터 또는 출력 데이터일 수 있다.
목적에 부합하게는, 필요한 전체 계산 명령이 생성될 수 있도록 그리고 실행할 계산 연산에 대한 효율이 충분히 높도록, 그리고 대기 시간이 전체 시스템 요구 조건을 충족하기에 충분히 적도록, 하드웨어 구성 가능 논리 유닛이 설계되었거나 개별적인 코스-그레인드 하드웨어 요소들이 기능, 효율 및 개수 측면에서 선택되었다. 예를 들어, 코스-그레인드 하드웨어 요소들은, 예컨대 평행한 구조 또는 명령의 병행 실행 또는 실행할 명령을 부분 명령으로 분해하는 소위 파이프 라인 구조에 의해서, 바람직하게 효율을 높이고/높이거나 대기 시간을 줄이도록 제공되고 구조화될 수 있다.
하드웨어 구성 가능 논리 유닛의 구조적인 구성, 특히 코스-그레인드 하드웨어 요소들 전체 그리고 이들 요소의 설정 가능한 구성 가능성, 특히 이들 요소의 개별 요소들의 연결 구조는 목적에 부합하게 데이터 흐름 다이어그램에 그리고/또는 상태 기계("state machine")에 의존한다. 이 경우에는, 데이터 흐름 다이어그램의 일 기능 요소가 하드웨어 구성 가능 논리 유닛의 일 코스-그레인드 하드웨어 요소에 상응한다. 데이터 흐름 다이어그램의 데이터 흐름은 하드웨어 구성 가능 논리 유닛의 연결 구조에 상응한다. 이 경우, 하드웨어 구성 가능 논리 유닛은 바람직하게 동시에 이용되는 전체 기능 요소들을 등가의 코스-그레인드 하드웨어 요소의 형태로 계속 이용할 수 있고, 데이터 흐름 다이어그램의 데이터 흐름을 등가의 연결 구조의 형태로 계속 이용할 수 있다. 이로써, 하드웨어 구성 가능 논리 유닛이 완전하게 생성될 수 있고, 나머지 마이크로컨트롤러에 상응하는 인터페이스를 포함하여 자체적으로 폐쇄된 상태로 도시될 수 있다.
조절 기술적인 알고리즘은 전형적으로 데이터 흐름 다이어그램으로서 그리고/또는 상태 기계로서 모델링 되어 있다. 이와 같은 목적을 위해서는, 데이터 흐름으로서 도시되었거나 데이터 흐름과 유사하게 도시된 상응하는 알고리즘 또는 조절기 구조를 직접 매핑하거나 이미징하기 위한 방법이 특히 바람직하며, 그 결과 상기 매핑 또는 이미징은 (예컨대 코드 생성에 의해서) 특히 자동화된다. 이와 같은 방식에 의해서는, 초기 모델링(예컨대 Simulink로, ASCET)을 개시하는 개발 공정이 가능해진다. 알고리즘의 확정 그리고 데이터 흐름 다이어그램 및/또는 상태 기계 내로의 알고리즘의 매핑 후에는, 하드웨어 구성 가능 논리 유닛의 구조, 코스-그레인드 하드웨어 요소들 전체 및 이들의 구성 가능성이 도출될 수 있으며, 특히 프로그램의 지원을 받아서 그리고 이로써 자동으로 작성될 수 있다.
본 발명에 따른 마이크로컨트롤러는 하드웨어를 구성할 수 있는 본 발명에 따른 논리 유닛을 구비한다. 본 발명에 따른 마이크로컨트롤러의 장점들 및 바람직한 실시예들은 이전의 상세한 설명으로부터 유사한 방식으로 나타난다. 마이크로컨트롤러는 목적에 부합하게 제어 장치 내에, 특히 자동차의 제어 장치 내에 사용하기 위해 제공되었다.
본 발명의 또 다른 장점들 및 실시예들은 이하의 상세한 설명 및 첨부 도면으로부터 나타난다.
본 발명은, 실시예들을 참조하여 도면에 개략적으로 도시되어 있고, 도면을 참조하여 이하에서 기술된다.
도 1은 하드웨어를 구성할 수 있는 본 발명에 따른 논리 유닛의 바람직한 일 실시예를 개략적으로 도시한다.
도 2는 본 발명에 따른 마이크로컨트롤러의 바람직한 일 실시예를 개략적으로 도시한다.
도 3은 하드웨어를 구성할 수 있는 본 발명에 따른 논리 유닛의 바람직한 일 실시예를 다른 시각에서 바라본 도면을 개략적으로 도시한다.
도 1에는, 하드웨어를 구성할 수 있는 본 발명에 따른 논리 유닛의 바람직한 일 실시예가 개략적으로 도시되어 있고, 논리 유닛은 참조 부호 (100)으로 표기되어 있다.
하드웨어 구성 가능 논리 유닛(100)은 복수의 코스-그레인드 하드웨어 요소, 다시 말해 하나 이상의 논리 게이트를 갖는 하드웨어 요소, 예를 들어 제1 ALU(110), 제2 ALU(120), 제1 연결 구조(130), 제2 연결 구조(140), 비교기(150), 메모리 유닛(160), 제1 인터페이스(170) 및 제2 인터페이스(180)를 구비한다.
메모리 유닛(160)은 예를 들어 RAM으로서 형성되어 있다. 제1 연결 구조(130)는 예를 들어 2:1 멀티플렉서로서 형성되어 있고, 제2 연결 구조(140)는 M:N 멀티플렉서로서 형성되어 있다. 제2 연결 구조(140)는 예를 들어 버스 시스템으로서도 형성될 수 있다.
개별적인 코스-그레인드 하드웨어 요소(110 내지 180)의 구성 또는 연결 구조가 변경될 수 있음으로써, 결과적으로 하드웨어 구성 가능 논리 유닛(100)은 하드웨어 평면에서 새로이 결정될 수 있다. 이와 같은 목적으로, 논리 유닛(100)은 제어 요소(190)로 이루어진 시스템을 구비하며, 이 시스템은 추후에 도 3을 참조하여 상세하게 설명되는 바와 같이 코스-그레인드 하드웨어 요소(110 내지 180)의 구성을 변경하도록 설계되어 있다.
하드웨어 구성 가능 논리 유닛(100)은 특히 바람직하게 마이크로컨트롤러 내에 구성 요소로서 집적될 수 있다.
도 2에는, 상기와 같은 본 발명에 따른 마이크로컨트롤러의 바람직한 일 실시예가 개략적으로 도시되어 있고, 참조 부호 (200)으로 표기되어 있다.
마이크로컨트롤러(200)는 예를 들어 자동차의 제어 장치 내에 사용될 수 있다. 마이크로컨트롤러(200)는, 예를 들어 마이크로컨트롤러 버스로서 형성되어 있는 내부 통신 시스템(201)을 구비한다. 통신 시스템(201)을 통해 복수의 내부 구성 요소가 데이터 전달 방식으로 서로 연결되어 있다.
상기와 같은 구성 요소들은 예를 들어 프로세서 유닛(또는 프로세서 코어)(211, 212, 213) 그리고 예컨대 RAM 메모리 형태의 메모리 유닛(221), 센서와 마이크로컨트롤러(200)를 연결하기 위한 입력(222)(예컨대 버스 인터페이스, 디지털 입력, ADC 등) 및 액추에이터와 마이크로컨트롤러(200)를 연결하기 위한 출력(223)(예컨대 버스 인터페이스, 디지털 출력, DAC 등)과 같은 또 다른 주변 요소이다.
마이크로컨트롤러(200)는 또한, 예를 들어 버스 시스템으로서 그리고/또는 직접 I/O 핀에 의해서 형성되어 있는 외부 통신 시스템(202)을 구비할 수 있다. 통신 시스템(202)을 통해 복수의 마이크로컨트롤러 외부 구성 요소가 데이터 전달 방식으로 서로 연결되어 있다. 이와 같은 구성 요소들은 예를 들어 또 다른 마이크로컨트롤러(300), ASIC(400) 및 또 다른 별도의 부품(500)이다.
또 다른 주변 요소들로서, 하드웨어를 구성할 수 있는 도 1에 따른 논리 유닛(100)은 자체 인터페이스(170)를 통해서는 통신 시스템(201)과 데이터 전달 방식으로 연결되어 있고, 또 다른 인터페이스(180)를 통해서는 통신 시스템(202)과 데이터 전달 방식으로 연결되어 있다.
인터페이스(170 및 180)를 통해서는, 하드웨어 구성 가능 논리 유닛(100)이 마이크로컨트롤러(200)의 또 다른 구성 요소들과 그리고 외부 구성 요소(300, 400, 500)와 데이터 및 신호를 교환할 수 있다. 특히, 하드웨어 구성 가능 논리 유닛(100)은 인터페이스(170)를 통해, 코스-그레인드 하드웨어 요소(110 내지 180)의 구성을 변경할 수 있는 제어 신호를 수신할 수 있다. 추가로, 하드웨어 구성 가능 논리 유닛(100)은 또한, 이하에서 도 3을 참조하여 기술되는 바와 같이 자발적으로 구성을 변경할 수도 있다.
도 3에는, 하드웨어를 구성할 수 있는 도 1에 따른 논리 유닛(100)이 다른 시각에서 개략적으로 도시되어 있다. 코스-그레인드 하드웨어 요소들은 도 3에서 도면에 대한 개관을 명확하게 할 목적으로 명시적으로 개별적으로 도시되어 있지 않고, 오히려 요소(101)에 의해서 지시되어 있다.
도 3에 도시되어 있는 바와 같이, 제어 요소(190)로 이루어진 시스템은 제1 제어 요소(310), 제2 제어 요소(320) 및 제3 제어 요소(330)를 구비한다.
제1 제어 요소(310)는, 참조 부호 (311a)에 의해서 지시되어 있는 바와 같이, 코스-그레인드 하드웨어 요소(101)의 현재 구성 또는 현재 상태를 체크한다. 이와 같은 체크의 결과로서, 제1 제어 요소(310)는, 참조 부호 (311b)에 의해서 지시되어 있는 바와 같이, 코스-그레인드 하드웨어 요소(101)의 현재 구성을 변경할 수 있다. 제1 제어 요소(310)는 상기와 같은 재구성을 제어하고, 모니터링하며, 실행한다.
제2 제어 요소(320)는 제1 제어 요소(310)를 변경할 수 있고, 참조 부호 (321)에 의해서 지시되어 있는 바와 같이, 상응하게 제어할 수 있다. 제1 제어 요소(310)는 특히 마찬가지로 제2 제어 요소(320)의 현재의 구성 사전 설정을 체크한다. 제1 제어 요소(310)의 현재 구성과 제2 제어 요소(320)의 구성 사전 설정이 상이하면, 제1 제어 요소(310)가 목적에 부합하게 자신의 구성을 제2 제어 요소(320)의 구성 사전 설정에 맞추어 조정한다.
이로써, 제2 제어 요소(320)는 제1 제어 요소(310)에 코스-그레인드 하드웨어 요소(101)의 구성을 변경하라는 지시를 내릴 수 있다.
이로써, 제2 제어 요소(320)의 구성 변경에 의해서는, 제1 제어 요소(310)에 코스-그레인드 하드웨어 요소(101)의 재구성에 대한 지시가 내려질 수 있다. 이와 같은 제2 제어 요소(320)의 구성 및 이로써 코스-그레인드 하드웨어 요소(101)의 재구성은 하드웨어 구성 가능 논리 유닛(100) 자체에 의해서 내부로부터 실행될 수 있거나 또한 마이크로컨트롤러(200)의 또 다른 구성 요소들에 의해서도 실행될 수 있다.
후자의 경우를 위해, 마이크로컨트롤러(200)의 상응하는 구성 요소들, 예컨대 프로세서 유닛(211)이 상응하는 제어 신호(322)를 하드웨어 구성 가능 논리 유닛(100)으로 전송할 수 있다. 상기 신호에 응답하여, 예를 들어 임계값 또는 연속 순환의 횟수가 설정됨으로써 그리고 평가할 개별 상태들 및 이들의 논리 연산이 선택됨으로써, 제2 제어 요소(320)가 상응하게 외부로부터 구성된다.
제2 제어 요소(320)를 내부로부터 논리 유닛(100) 자체에 의해서 구성하기 위하여, 제3 제어 요소(330)가 제공되어 있다. 제3 제어 요소(330)는, 참조 부호 (331)에 의해 지시된 바와 같이 개별적인 코스-그레인드 하드웨어 요소(101)의 현재의 구성 및 상태를 그리고 참조 부호 (332a)에 의해 지시된 바와 같이 제2 제어 요소(320)의 현재의 구성을 체크하고, 이와 같은 체크를 토대로 하여, 예를 들어 임계값의 동적인 설정, 입력 패턴의 추적, 대안적인 계산 방법의 선택, 개별 상태들의 논리 연산의 동적인 변경 등에 의해서, 참조 부호 (332b)에 의해 지시된 바와 같이 논리 유닛(100)의 작동 중에 제2 제어 요소(320)를 동적으로 구성할 수 있다.

Claims (13)

  1. 복수의 코스-그레인드(coarse-grained) 하드웨어 요소(110, 120, 130, 140, 150, 160, 170, 180) 및 하나의 제어 요소(310)를 구비한 하드웨어 구성 가능 논리 유닛(100)으로서,
    상기 제어 요소(310)가 코스-그레인드 하드웨어 요소(110, 120, 130, 140, 150, 160, 170, 180)의 구성을 변경할 수 있도록 설계되는, 하드웨어 구성 가능 논리 유닛(100).
  2. 제1항에 있어서, 하드웨어 구성 가능 논리 유닛(100)의 정상 작동 동안 코스-그레인드 하드웨어 요소(110, 120, 130, 140, 150, 160, 170, 180)의 구성을 변경할 수 있도록 설계되는, 하드웨어 구성 가능 논리 유닛(100).
  3. 제1항 또는 제2항에 있어서, 제어 요소(310)는, 코스-그레인드 하드웨어 요소(110, 120, 130, 140, 150, 160, 170, 180) 중 하나 이상의 하드웨어 요소의 구성 및 상태를 체크(311a)하도록 그리고 상기 체크의 결과로서 상기 코스-그레인드 하드웨어 요소(110, 120, 130, 140, 150, 160, 170, 180)의 구성을 변경(311b)하도록 설계되는, 하드웨어 구성 가능 논리 유닛(100).
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 제어 요소(310)의 구성을 변경(321) 하도록 설계된 제2 제어 요소(320)를 구비한, 하드웨어 구성 가능 논리 유닛(100).
  5. 제4항에 있어서, 제어 신호(322)를 수신하기 위한 인터페이스(170, 180)를 구비하며, 하드웨어 구성 가능 논리 유닛(100)은, 상기 제어 신호의 수신을 목적으로 제2 제어 요소(320)의 구성을 변경하도록 설계되는, 하드웨어 구성 가능 논리 유닛(100).
  6. 제4항 또는 제5항에 있어서, 코스-그레인드 하드웨어 요소(110, 120, 130, 140, 150, 160, 170, 180) 중 하나 이상의 하드웨어 요소의 구성 및 상태를 체크(331)하도록, 그리고/또는 제2 제어 요소(320)의 구성을 체크(332a)하도록, 그리고 상기 체크의 결과로서 제2 제어 요소(320)의 구성을 변경(332b)하도록 설계되는, 하드웨어 구성 가능 논리 유닛(100).
  7. 제6항에 있어서, 복수의 코스-그레인드 하드웨어 요소(110, 120, 130, 140, 150, 160, 170, 180)의 각각의 코스-그레인드 하드웨어 요소에 각각 제어 요소(310), 제2 제어 요소(320) 및 제3 제어 요소(330)가 할당되는, 하드웨어 구성 가능 논리 유닛(100).
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 마이크로컨트롤러(200) 내에 구성 요소로서 집적되도록 설계되는, 하드웨어 구성 가능 논리 유닛(100).
  9. 제8항에 있어서, 하드웨어 구성 가능 논리 유닛(100)을 마이크로컨트롤러(200)의 내부 통신 시스템(201) 및/또는 마이크로컨트롤러(200)의 외부 통신 시스템(202)과 연결하도록 설계된 인터페이스(170, 180)를 구비한 하드웨어 구성 가능 논리 유닛(100).
  10. 제9항에 있어서, 인터페이스(170, 180)가 마이크로컨트롤러(200)의 또 다른 구성 요소(211, 212, 213, 221, 222, 223) 및/또는 또 다른 외부 구성 요소(300, 400, 500)와 데이터 및/또는 제어 신호를 교환하도록 설계되는, 하드웨어 구성 가능 논리 유닛(100).
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 복수의 코스-그레인드 하드웨어 요소의 개별 코스-그레인드 하드웨어 요소들이 각각 산술 논리 유닛(110, 120), 레지스터, 멀티플렉서(130), 버스(140), 비교기(150), 메모리 유닛(160), 덧셈기, 곱셈기, 나눗셈기, 시프트 레지스터, 배럴 시프터, 곱셈 누산 유닛, 레지스터 블록, 인터페이스(170, 180)로서 형성되는, 하드웨어 구성 가능 논리 유닛(100).
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 데이터 흐름으로서 또는 데이터 흐름과 유사하게 형성된 알고리즘이 하드웨어 구성 가능 논리 유닛 내에 재현되도록 설계된 하드웨어 구성 가능 논리 유닛(100).
  13. 제1항 내지 제12항 중 어느 한 항에 따른 하드웨어 구성 가능 논리 유닛(100)을 구비한 마이크로컨트롤러(200).
KR1020180003993A 2017-01-12 2018-01-11 하드웨어 구성 가능 논리 유닛 및 상기 하드웨어 구성 가능 논리 유닛을 구비한 마이크로컨트롤러 KR20180083268A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102017200457.6A DE102017200457A1 (de) 2017-01-12 2017-01-12 Hardwarekonfigurierbare Logikeinheit und Mikrocontroller mit einer derartigen hardwarekonfigurierbaren Logikeinheit
DE102017200457.6 2017-01-12

Publications (1)

Publication Number Publication Date
KR20180083268A true KR20180083268A (ko) 2018-07-20

Family

ID=62636923

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180003993A KR20180083268A (ko) 2017-01-12 2018-01-11 하드웨어 구성 가능 논리 유닛 및 상기 하드웨어 구성 가능 논리 유닛을 구비한 마이크로컨트롤러

Country Status (4)

Country Link
US (1) US20180196908A1 (ko)
KR (1) KR20180083268A (ko)
CN (1) CN108304345A (ko)
DE (1) DE102017200457A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11048661B2 (en) 2018-04-16 2021-06-29 Simple Machines Inc. Systems and methods for stream-dataflow acceleration wherein a delay is implemented so as to equalize arrival times of data packets at a destination functional unit

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5805300A (en) * 1999-06-10 2001-01-02 Pact Informationstechnologie Gmbh Sequence partitioning in cell structures
JP6372250B2 (ja) * 2014-08-25 2018-08-15 サンケン電気株式会社 演算処理装置

Also Published As

Publication number Publication date
DE102017200457A1 (de) 2018-07-12
US20180196908A1 (en) 2018-07-12
CN108304345A (zh) 2018-07-20

Similar Documents

Publication Publication Date Title
US10970245B2 (en) Processor with reconfigurable pipelined core and algorithmic compiler
US6081903A (en) Method of the self-synchronization of configurable elements of a programmable unit
US7822881B2 (en) Process for automatic dynamic reloading of data flow processors (DFPs) and units with two- or three-dimensional programmable cell architectures (FPGAs, DPGAs, and the like)
US6088795A (en) Process for automatic dynamic reloading of data flow processors (DFPs) and units with two or three-dimensional programmable cell architectures (FPGAs, DPGAs and the like)
US7036036B2 (en) Method of self-synchronization of configurable elements of a programmable module
CN111566623A (zh) 用于可配置空间加速器中的集成性能监视的装置、方法和系统
EP1713007A1 (en) A dynamically reconfigurable System-on-Chip comprising a plurality of reconfigurable gate array devices, related methods and computer program product
JP7183197B2 (ja) 高スループットプロセッサ
US9584130B1 (en) Partial reconfiguration control interface for integrated circuits
US20080189514A1 (en) Reconfigurable Logic in Processors
US8990455B1 (en) Offloading tasks from a central processing unit to peripheral function engines
KR20180083268A (ko) 하드웨어 구성 가능 논리 유닛 및 상기 하드웨어 구성 가능 논리 유닛을 구비한 마이크로컨트롤러
Kamaleldin et al. Agiler: An adaptive heterogeneous tile-based many-core architecture for risc-v processors
Najem et al. A cost-effective approach for efficient time-sharing of reconfigurable architectures
Vázquez et al. Extending RISC-V Processor Datapaths with Multi-Grain Reconfigurable Overlays
Horta et al. Accelerating linux bash commands on fpgas using partial reconfiguration
US9081901B2 (en) Means of control for reconfigurable computers
Adário et al. Reconfigurable computing: Viable applications and trends
Chauhan et al. Reconfiguration of fpga for domain specific applications using embedded system approach
CN115826948A (zh) 用于软件和硬件组件配置和内容生成的方法、系统和设备
KR100836807B1 (ko) 외부개발 단계 프로그램 메모리를 갖는 에이에스아이씨 마이크로 컴퓨터
YUE FPGA OVERLAY ARCHITECTURES ON THE XILINX ZYNQ AS PROGRAMMABLE ACCELERATORS
ITMI20082354A1 (it) Architettura digitale e relativo metodo di calcolo per il calcolo riconfigurabile nell' elaborazione digitale di segnale