KR101795531B1 - Reconfiguable system on chip - Google Patents

Reconfiguable system on chip Download PDF

Info

Publication number
KR101795531B1
KR101795531B1 KR1020170112395A KR20170112395A KR101795531B1 KR 101795531 B1 KR101795531 B1 KR 101795531B1 KR 1020170112395 A KR1020170112395 A KR 1020170112395A KR 20170112395 A KR20170112395 A KR 20170112395A KR 101795531 B1 KR101795531 B1 KR 101795531B1
Authority
KR
South Korea
Prior art keywords
tiny
program code
processor
sensor signal
chip
Prior art date
Application number
KR1020170112395A
Other languages
Korean (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 KR1020170112395A priority Critical patent/KR101795531B1/en
Application granted granted Critical
Publication of KR101795531B1 publication Critical patent/KR101795531B1/en

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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Abstract

A reconfigurable system on chip is provided. A system on chip for processing and outputting an input sensor signal includes an external memory for receiving and storing program codes for system on chip driving stored in an external storage medium during a booting process; and a processing part including a plurality of tiny processors. Each of the tiny processor loads a program code corresponding to an address indicated by a CPU among the program codes stored in the external memory, processes a sensor signal according to a loaded program code, and outputs a sensor signal processed by another tiny processor defined in the loaded program code or a peripheral device. It is possible to easily cope with modification or change of an algorithm for processing the sensor signal.

Description

재구성 가능한 시스템 온 칩{Reconfiguable system on chip}Reconfigurable system on chip < RTI ID = 0.0 >

본 발명은 재구성 가능한 시스템 온 칩(Reconfiguable SoC)에 관한 것이다. The present invention relates to reconfigurable system-on-a-chip.

일반적으로 IoT(Internet of Things) 등의 시스템에서 센서 신호를 처리하는 시스템 온 칩(SoC)은 CPU(Central Processing Unit), DSP(Digital Signal Processor) 등의 프로세서와 주변 기기에 접속되는 버스 시스템을 구비하여, 입력값을 분석하여 미리 설정된 알고리즘을 적용하여 원하는 값을 출력하도록 하는 제품이다.A system-on-chip (SoC) that processes sensor signals in a system such as Internet of Things (IoT) generally includes a processor such as a CPU (Central Processing Unit) and a DSP (Digital Signal Processor) Analyzes the input value, and applies a predetermined algorithm to output a desired value.

도 1은 종래기술에 따른 시스템 온 칩의 구성을 개략적으로 나타낸 도면이다.1 is a diagram schematically showing a configuration of a system-on-chip according to the prior art.

도 1을 참조하면, 종래기술에 따른 시스템 온 칩(100)은 CPU(110), 외부 메모리(130)에 저장된 정보(즉, 데이터, 프로그램 등을 포함함) 중 CPU(110)의 구동 프로그램이 저장되고 또한 CPU(110)의 데이터 메모리로 이용되는 내부 메모리(120), 시스템 온 칩(100) 외부에 구비된 저장 매체(예를 들어, 외부 플래시 메모리)로부터 시스템 온 칩(100)의 구동에 필요한 정보를 제공받아 저장하는 외부 메모리(130), 시스템 온 칩(100) 외부의 센서 장치로부터 센서 신호를 입력받는 입력부(140), 및 CPU(110)에 포팅되어질 소프트웨어 프로그램이 하드웨어 구조로 구현된 하드웨어 엔진(150)을 포함한다. 도시되지는 않았으나, 내부 메모리(120) 및 외부 메모리(130) 각각의 동작을 제어하고 각 메모리가 CPU(110) 등 타 구성요소와 연동하여 기능하도록 제어하는 내부 메모리 제어기와 외부 메모리 제어기가 더 포함된다.Referring to FIG. 1, a system-on-chip 100 according to the related art includes a CPU 110, a drive program of the CPU 110 among information stored in the external memory 130 On chip 100 from a storage medium (for example, an external flash memory) provided outside the system-on-chip 100, an internal memory 120 which is stored in the system- An input unit 140 for receiving a sensor signal from a sensor device external to the system-on-chip 100, and a software program to be ported to the CPU 110. The external memory 130 receives and stores necessary information, Hardware engine 150. Although not shown, an internal memory controller and an external memory controller for controlling the operation of each of the internal memory 120 and the external memory 130 and controlling each memory to function in cooperation with other components such as the CPU 110 are further included do.

도시된 시스템 온 칩(100)은 센서 신호의 처리 및 출력을 위해 종래에 CPU(110) 자체에 포팅되어 구동되던 소프트웨어 프로그램을 하드웨어 엔진으로 구현함으로써, 상대적으로 저사양의 CPU(110)가 이용될 수 있고, 또한 상대적으로 낮은 클럭에서 동작할 수 있어 미세 공정이 불필요하며 전력 소모가 상대적으로 작아지는 장점이 있다. The illustrated system-on-chip 100 implements a software program, which has been conventionally ported to the CPU 110 itself for processing and outputting sensor signals, as a hardware engine, so that a relatively low-cost CPU 110 can be used And can operate at a relatively low clock speed, thereby eliminating the need for a fine process and reducing power consumption.

그러나 하드웨어 엔진(150)을 구비하는 시스템 온 칩(100)은 센서 신호의 처리를 위한 알고리즘이 수정되거나 변경되는 경우 대처가 어렵고, 또한 하나의 응용분야에만 제한적으로 적용되도록 설계되어 다른 응용분야에서의 사용이 불가능한 문제점이 있다. However, the system-on-chip 100 having the hardware engine 150 is difficult to cope with when the algorithm for processing the sensor signal is modified or changed, and is designed to be limited to only one application field, There is a problem that it can not be used.

한국공개특허 제10-2013-0028505호(재구성가능 프로세서, 재구성가능 프로세서의 코드 변환 장치 및 방법)Korean Patent Publication No. 10-2013-0028505 (reconfigurable processor, code conversion device and method of reconfigurable processor)

본 발명은 저사양의 MCU(Micro Controller Unit)들이 각각 로딩된 프로그램에 따라 개별 동작하되, 상호간에는 파이프라인 구조로 연동하도록 구성함으로써, 센서 신호 처리를 위한 알고리즘의 수정이나 변경에 용이하게 대처할 수 있고, 저가의 시스템으로 고사양의 센서 신호 처리를 가능하도록 하는 재구성 가능한 시스템 온 칩을 제공하기 위한 것이다.According to the present invention, microcontroller units (MCU) of low-grade are operated individually according to a loaded program, but they are interlocked with each other in a pipeline structure, so that it is possible to easily cope with modification or change of an algorithm for sensor signal processing, And to provide a reconfigurable system-on-chip that enables high-end sensor signal processing with a low-cost system.

본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.Other objects of the present invention will become readily apparent from the following description.

본 발명의 일 측면에 따르면, 입력된 센서 신호를 처리하여 출력하는 시스템 온 칩으로서, 부팅 과정에서 외부의 저장 매체에 저장된 시스템 온 칩 구동용 프로그램 코드를 제공받아 저장하는 외부 메모리; 및 복수의 타이니 프로세서들을 포함하는 처리 유닛을 포함하되, 각각의 타이니 프로세서는 상기 외부 메모리에 저장된 프로그램 코드 중 CPU에 의해 지시된 주소에 상응하는 프로그램 코드를 로딩하고, 로딩된 프로그램 코드에 따라 센서 신호를 처리하며, 상기 로딩된 프로그램 코드에서 규정된 다른 타이니 프로그램 또는 주변 장치로 처리된 센서 신호를 출력하는 것을 특징으로 하는 시스템 온 칩이 제공된다.According to an aspect of the present invention, there is provided a system-on-chip for processing and outputting an input sensor signal, the system comprising: an external memory for receiving and storing a program code for system-on-chip driving stored in an external storage medium during a booting process; And a processing unit including a plurality of Tiny processors, wherein each Tiny processor loads the program code corresponding to the address indicated by the CPU among the program codes stored in the external memory, And outputs a sensor signal processed by another Tiny program or peripheral device defined in the loaded program code.

상기 복수의 타이니 프로세서들은 각각 로딩된 프로그램 코드에 의해 입력된 센서 신호를 파이프라인 구조로 처리하도록 순서화될 수 있다.The plurality of Tiny processors may be ordered to process the sensor signals input by the respective loaded program codes into a pipeline structure.

상기 복수의 타이니 프로세서들 각각은, CPU에 의해 지시된 주소에 상응하는 프로그램 코드를 저장하는 커맨드 메모리; 센서 신호 또는 파이프라인 구조에서 선행하는 타이니 프로세서에 의해 처리된 센서 신호를 입력받는 입력 버퍼; 상기 입력 버퍼에 입력된 센서 신호를 상기 커맨드 메모리에 저장된 프로그램 코드에 따라 처리하는 처리기; 상기 처리기에 의해 처리된 센서 신호를 파이프라인 구조에서 후행하는 타이니 프로세서 또는 상기 주변 장치로 출력하는 출력 버퍼; 및 상기 처리기가 상기 커맨드 메모리에 저장된 프로그램 코드에 따른 처리를 수행하도록 컨트롤하는 처리 제어기를 포함할 수 있다.Wherein each of the plurality of Tiny processors comprises: a command memory for storing a program code corresponding to an address indicated by a CPU; An input buffer receiving a sensor signal or a sensor signal processed by a preceding Tiny processor in a pipeline structure; A processor for processing the sensor signal input to the input buffer according to a program code stored in the command memory; An output buffer for outputting sensor signals processed by the processor to a Tiny processor or a peripheral device that trails in a pipeline structure; And a processing controller for controlling the processor to perform processing according to the program code stored in the command memory.

상기 각각의 타이니 프로세서에는 각각 로딩된 프로그램 코드에 따른 처리가 완료되는 시간이 일치되도록 하는 클럭 주파수가 할당될 수 있다.Each of the Tiny processors may be assigned a clock frequency such that the processing time according to the loaded program code is completed.

상기 외부의 저장 매체에는 복수의 응용 분야 각각에서 각 타이니 프로세서에 로딩될 프로그램 코드를 포함하는 메모리 맵이 저장되며, 부팅 과정에서 상기 시스템 온 칩에 할당된 응용 분야에 해당되는 프로그램 코드가 상기 외부 메모리로 저장될 수 있다.The external storage medium stores a memory map including program codes to be loaded into each Tiny processor in each of a plurality of application fields. In a booting process, a program code corresponding to an application field allocated to the system- Lt; / RTI >

전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.Other aspects, features, and advantages will become apparent from the following drawings, claims, and detailed description of the invention.

본 발명의 실시예에 따르면, 저사양의 MCU들이 각각 로딩된 프로그램에 따라 개별 동작하되, 상호간에는 파이프라인 구조로 연동하도록 구성함으로써, 센서 신호 처리를 위한 알고리즘의 수정이나 변경에 용이하게 대처할 수 있고, 저가의 시스템으로 고사양의 센서 신호 처리를 가능하도록 하는 효과가 있다.According to the embodiment of the present invention, the low-level MCUs are individually operated according to the loaded programs, and are configured to interlock with each other in a pipeline structure, so that it is possible to easily cope with modification or change of the algorithm for sensor signal processing, It is possible to process high-level sensor signals with a low-cost system.

도 1은 종래기술에 따른 시스템 온 칩의 구성을 개략적으로 나타낸 도면.
도 2는 본 발명의 일 실시예에 따른 시스템 온 칩의 구성을 개략적으로 나타낸 도면.
도 3은 본 발명의 일 실시예에 따른 타이니 프로세서의 구성을 개략적으로 나타낸 도면.
도 4는 본 발명의 일 실시예에 따른 메모리 맵의 구성을 개략적으로 나타낸 도면.
도 5는 본 발명의 일 실시예에 따른 타이니 프로세서의 파이프라인 처리 구조의 다양성을 예시한 도면.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 schematically shows the configuration of a system-on-a-chip according to the prior art;
2 is a schematic diagram of a configuration of a system-on-chip according to an embodiment of the present invention.
3 schematically illustrates a configuration of a Tiny processor according to an embodiment of the present invention;
FIG. 4 schematically illustrates a configuration of a memory map according to an embodiment of the present invention; FIG.
5 illustrates a variety of pipeline processing structures of a Tiny processor in accordance with an embodiment of the present invention.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.BRIEF DESCRIPTION OF THE DRAWINGS The present invention is capable of various modifications and various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. It is to be understood, however, that the invention is not to be limited to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

또한, 각 도면을 참조하여 설명하는 실시예의 구성 요소가 해당 실시예에만 제한적으로 적용되는 것은 아니며, 본 발명의 기술적 사상이 유지되는 범위 내에서 다른 실시예에 포함되도록 구현될 수 있으며, 또한 별도의 설명이 생략될지라도 복수의 실시예가 통합된 하나의 실시예로 다시 구현될 수도 있음은 당연하다.It is to be understood that the components of the embodiments described with reference to the drawings are not limited to the embodiments and may be embodied in other embodiments without departing from the spirit of the invention. It is to be understood that although the description is omitted, multiple embodiments may be implemented again in one integrated embodiment.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일하거나 관련된 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail.

도 2는 본 발명의 일 실시예에 따른 시스템 온 칩의 구성을 개략적으로 나타낸 도면이고, 도 3은 본 발명의 일 실시예에 따른 타이니 프로세서의 구성을 개략적으로 나타낸 도면이다. 도 4는 본 발명의 일 실시예에 따른 메모리 맵의 구성을 개략적으로 나타낸 도면이고, 도 5는 본 발명의 일 실시예에 따른 타이니 프로세서의 파이프라인 처리 구조의 다양성을 예시한 도면이다.FIG. 2 is a schematic diagram illustrating a configuration of a system-on-chip according to an embodiment of the present invention. FIG. 3 is a diagram schematically illustrating a configuration of a Tiny processor according to an embodiment of the present invention. FIG. 4 is a schematic diagram of a memory map according to an embodiment of the present invention. FIG. 5 is a view illustrating a variety of pipeline processing structures of a Tiny processor according to an embodiment of the present invention.

도 2를 참조하면, 센서 장치(예를 들어 열영상 센서, 테라헤르츠 센서, 카메라 센서 등)에서 센서 신호를 입력받아 처리하기 위한 시스템 온 칩(200)은 CPU(110), 외부 메모리(130)에 저장된 정보(즉, 데이터, 프로그램 코드 등을 포함함) 중 CPU(110)의 구동을 위한 프로그램 코드가 저장되고 또한 CPU(110)의 데이터 메모리로 이용되는 내부 메모리(120), 외부에 구비된 저장 매체(예를 들어, 외부 플래시 메모리)로부터 시스템 온 칩(100)의 구동에 필요한 정보를 제공받아 저장하는 외부 메모리(130), 시스템 온 칩(100) 외부의 센서 장치로부터 센서 신호를 입력받는 입력부(140), 및 로딩된 프로그램 코드에 따라 지정된 동작을 수행하는 복수의 타이니 프로세서(220)들로 구성된 처리 유닛(210)을 포함할 수 있다. 도시되지는 않았으나, 내부 메모리(120) 및 외부 메모리(130) 각각의 동작을 제어하고 각 메모리가 CPU(110) 등 타 구성요소와 연동하여 기능하도록 제어하는 내부 메모리 제어기와 외부 메모리 제어기가 더 포함될 수 있다.2, a system-on-a-chip 200 for receiving and processing sensor signals in a sensor device (for example, a thermal image sensor, a terahertz sensor, a camera sensor, etc.) includes a CPU 110, an external memory 130, An internal memory 120 in which program codes for driving the CPU 110 are stored and which is used as a data memory of the CPU 110 among the information (i.e., data, program code, etc.) An external memory 130 for receiving and storing information necessary for driving the system-on-chip 100 from a storage medium (for example, external flash memory), a memory 130 for receiving a sensor signal from a sensor device external to the system- An input unit 140, and a processing unit 210 configured with a plurality of Tiny processors 220 performing an operation specified according to the loaded program code. Although not shown, an external memory controller and an internal memory controller for controlling the operation of each of the internal memory 120 and the external memory 130 and controlling each memory to function in cooperation with other components such as the CPU 110 are further included .

통상적으로 시스템 온 칩(200)에서의 센서 신호 처리는 필터링, 추출, 알고리즘에 의한 연산(예를 들어, 곱하기, 더하기, 쉬프트 연산) 등의 과정으로 이루어진다. Generally, the sensor signal processing in the system-on-chip 200 is performed by processes such as filtering, extraction, and algorithm-based calculation (for example, multiplication, addition, and shift operations).

종래기술에 따른 시스템 온 칩(100)은 외부의 저장 매체에서 프로그램 코드가 내부 메모리(120)나 외부 메모리(130)에 로딩된 후 CPU(110)가 해당 프로그램 코드에 따른 동작을 수행하도록 구현된다. The system on chip 100 according to the related art is implemented such that the program code is loaded from the external storage medium into the internal memory 120 or the external memory 130 and then the CPU 110 performs an operation according to the program code .

이에 비해, 본 실시예에 따른 시스템 온 칩(200)은 후술되는 바와 같이 처리 유닛(210) 내에 구비된 각각의 타이니 프로세서(220)에 할당된 처리 내용에 상응하는 프로그램 코드가 로딩되어 동작되고, 각각의 타이니 프로세서(220)가 파이프라인 처리를 수행하도록 구성된다. 외부 메모리(130)에는 시스템 온 칩(200)의 구동을 위한 전체 프로그램 코드가 저장될지라도, 내부 메모리(120)에는 CPU(110)의 구동을 위한 프로그램 코드만이 저장되기 때문에 종래의 내부 메모리(120)에 비해 적은 저장 용량을 가지는 장치로 대체되어도 무방한 특징이 있다.On the other hand, the system-on-chip 200 according to the present embodiment is loaded with program codes corresponding to processing contents assigned to each Tiny processor 220 provided in the processing unit 210 as described later, Each Tiny processor 220 is configured to perform pipeline processing. Even if the entire program code for driving the system-on-chip 200 is stored in the external memory 130, only the program code for driving the CPU 110 is stored in the internal memory 120, 120 may be replaced by a device having a smaller storage capacity.

처리 유닛(210)에는 저사양의 MCU인 타이니 프로세서(Tiny processor, TP)(220)들이 복수로 구비된다. 여기서, 저사양의 MCU란 곱하기나 더하기와 같은 통상적인 간단한 연산 등의 처리는 가능할지라도 고사양의 처리는 불가능하도록 처리 능력이 제한적인, 예를 들어 저가의 MCU 제품이거나 개발된 후 오랜 기간이 경과된 MCU 제품을 의미할 수 있다. The processing unit 210 is provided with a plurality of Tiny processors (TP) 220, which are low-end MCUs. Here, a low-end MCU may be a low-cost MCU product having a limited processing capability so that high-grade processing can not be performed even though it is possible to perform a simple simple operation such as multiplication or addition, or a long- It can mean a product.

각각의 타이니 프로세서(220)는 도 3에 예시된 바와 같이 커맨드 메모리(310), 처리 제어기(320), 입력 버퍼(330), 처리기(340) 및 출력 버퍼(350)를 포함할 수 있다. Each Tiny processor 220 may include a command memory 310, a processing controller 320, an input buffer 330, a processor 340 and an output buffer 350 as illustrated in FIG.

커맨드 메모리(310)에는 해당 타이니 프로세서(220)가 처리할 동작에 대한 프로그램 코드가 저장된다. 커맨드 메모리(310)에 저장되는 프로그램 코드는 외부 메모리(130)에 저장된 프로그램 코드들 중 메모리 맵 상에서 특정 주소에 위치하는 프로그램 코드일 수 있으며, 어떤 주소의 프로그램 코드를 커맨드 메모리(310)에 저장할 것인지는 CPU(110)에 의해 제어될 수 있다. 이때, 시스템 온 칩(200)이 어떤 응용분야를 처리할 것인지에 따라 각각의 타이니 프로세서(220)의 커맨드 메모리(310)에 저장되는 프로그램 코드는 상이해질 수 있다.In the command memory 310, a program code for an operation to be processed by the Tiny processor 220 is stored. The program code stored in the command memory 310 may be program code located at a specific address on the memory map among the program codes stored in the external memory 130. The program code stored in the command memory 310 may be stored in the command memory 310 And can be controlled by the CPU 110. At this time, the program codes stored in the command memory 310 of each Tiny processor 220 may be different depending on which application field the system-on-chip 200 is to process.

도 4에는 외부의 저장 매체에 저장된 다양한 응용 분야의 프로그램 코드를 포함하는 메모리 맵이 예시되어 있으나, 부팅 과정에서 외부 메모리(130)에 저장되는 메모리 맵은 해당 시스템 온 칩(200)의 구동에 필요한 일부의 메모리 맵이 저장될 수 있을 것이다. 외부 메모리(130)에 저장되는 메모리 맵은 해당 시스템 온 칩(200)이 어떤 응용분야에서 기능하도록 지정된 것인지에 따라 상이해질 수 있을 것이다.FIG. 4 illustrates a memory map including program codes of various application fields stored in an external storage medium. However, the memory map stored in the external memory 130 during the booting process is not necessary for driving the system-on-chip 200 Some of the memory maps may be stored. The memory map stored in the external memory 130 may be different depending on which application field the system-on-chip 200 is designated to function in.

처리 제어기(320)는 CPU(110)의 제어에 의해 지정된 프로그램 코드를 외부 메모리(130)에서 커맨드 메모리(310)로 저장하고, 처리기(340)가 커맨드 메모리(310)에 저장된 프로그램 코드에 상응하는 처리 동작을 진행하도록 컨트롤한다. The processing controller 320 stores the program code designated by the control of the CPU 110 in the external memory 130 in the command memory 310 and the processor 340 reads the program code corresponding to the program code stored in the command memory 310 And controls the processing operation to proceed.

예를 들어, 처리 제어기(320)는 입력 버퍼(330)로 입력된 데이터를 처리기(340)가 어떻게 처리(예를 들어, 16비트 곱하기, 더하기 및 쉬프트 등)하도록 할 것인지를 컨트롤하며, 처리기(340)에 의해 처리된 결과 데이터는 출력 버퍼(350)를 통해 후단의 구성요소(예를 들어 다른 타이니 프로세서 또는 주변 장치 등)로 출력된다.For example, the processing controller 320 controls how the processor 340 processes (e.g., 16-bit multiply, add, shift, and so on) the data input to the input buffer 330, 340 are output to the subsequent components (e.g., other Tiny processors or peripherals, etc.) through the output buffer 350.

각각의 타이니 프로세서(220)가 어떤 구성 요소로부터 데이터를 입력받고, 입력된 데이터에 대해 어떤 처리를 수행하며, 처리된 결과 데이터를 어떤 구성 요소로 출력할 것인지는 커맨드 메모리(310)에 저장되는 프로그램 코드 내에 미리 규정된다.Whether or not each of the Tyne processor 220 receives data from a component, performs a process on the input data, and outputs the processed result data to a component is determined by a program code stored in the command memory 310 .

각 타이니 프로세서(220)가 어떤 처리를 수행하고, 처리된 결과 데이터를 어떤 구성 요소로 출력할 것인지가 프로그램 코드로서 미리 규정되기 때문에, 도 5의 (a)와 (b)에 각각 예시된 바와 같이 다양한 파이프라인 구조가 형성될 수 있다. 다양한 형태의 파이프라인 구조로의 구성은 예를 들어 처리 유닛(210)에 미리 구비된 먹스(MUX)를 이용하여 변경될 수 있으며, 또한 경로 구성은 예를 들어 CPU(110)가 처리하도록 하거나 처리된 결과 데이터를 출력할 구성요소가 특정된 프로그램 코드에 의해 이루어지도록 할 수 있을 것이다.Since it is prescribed in advance as a program code which process each tinier processor 220 performs and which component to output the processed result data to, as shown in Figs. 5A and 5B, Various pipeline structures can be formed. The configuration of various types of pipeline structures can be changed using, for example, a MUX pre-installed in the processing unit 210, and the path configuration can be changed by, for example, So that the constituent elements for outputting the resultant data can be made by the specified program code.

이때, 파이프라인 처리를 수행하는 각각의 타이니 프로세서(220)는 전체 밴드폭(bandwidth)에 맞게 클럭 제어기(230)의 제어에 의해 상이한 주파수의 클럭을 공급받아 동작할 수도 있다.At this time, each Tiny processor 220 that performs the pipeline processing may operate by receiving clocks of different frequencies under the control of the clock controller 230 according to the total bandwidth.

일반적으로 파이프라인 처리는 한 클럭이 한 스테이지(stage)를 의미하며, 한 스테이지에서 걸리는 시간은 각 파이프라인 처리 중 최대 딜레이(maximum delay)를 가지는 스테이지의 딜레이로 결정된다.Generally, pipeline processing means that one clock is one stage, and the time taken in one stage is determined as the delay of the stage having the maximum delay during each pipeline processing.

따라서 복수의 타이니 프로세서(220)가 각각 할당된 처리를 수행함에 있어, 어떤 타이니 프로세서(220)는 연산량이 작아 일찍 할당된 처리가 완료될 수 있고, 다른 어떤 타이니 프로세서(220)는 연산량이 많아 오래 걸릴 수도 있다. Accordingly, when a plurality of Tiny processors 220 perform respective allocated processes, some of the Tiny processors 220 may have a small amount of computation, It may take.

그러나, 파이프라인 처리를 위해서는 각 타이니 프로세서(220)의 처리 시간이 동일하게 설정되어야 하기 때문에 어떤 타이니 프로세서(220)에는 빠른 클럭 주파수가 할당되고, 다른 타이니 프로세서(220)는 느린 클럭 주파수가 할당될 수도 있게 된다. However, since the processing time of each Tiny processor 220 must be set to be the same for pipeline processing, a fast clock frequency is allocated to some Tiny processor 220 and a slow clock frequency is allocated to another Tiny processor 220 It becomes possible.

이와 같이, 타이니 프로세서(220)들 각각에 적절한 클럭 주파수가 할당되도록 하는 처리가 클럭 제어기(230)에 의해 수행되며, 이러한 처리에 의해 저전력 시스템 온 칩(200) 구현이 가능해지는 특징도 있다. 물론 특정 연산 처리에 많은 시간이 필요로 하는 경우에는 해당 연산 처리가 분할되어 복수의 타이니 프로세서(220)들에 의해 수행되도록 할 수도 있음은 당연하다.In this manner, the processing for causing each of the Tiny processors 220 to be assigned an appropriate clock frequency is performed by the clock controller 230, and there is also a feature that the low power system-on-chip 200 can be implemented by this processing. Of course, in the case where a long time is required for a specific operation process, it is of course possible that the corresponding operation process is divided and performed by a plurality of Tiny processors 220.

또한 처리 유닛(210)에 포함된 타이니 프로세서(220)들 각각에 프로그램 코드가 로딩되지만, 모든 프로그램 코드가 연산 등의 처리를 수행하는 것으로 한정되지 않을 수 있다. Also, although the program code is loaded into each of the Tiny processors 220 included in the processing unit 210, all of the program codes may not be limited to performing processing such as an operation.

예를 들어, 처리 유닛(210)에는 5개의 타이니 프로세서(220)들이 구비되어 있으나 센서 신호를 처리하기 위해 4개의 타이니 프로세서(220)들의 동작만이 필요한 경우, 나머지 하나의 타이니 프로세서(220)는 연산없이 입력된 데이터를 후속하는 구성요소로 출력(Through)하는 처리만이 수행될 수도 있다(도 5의 (a)의 TP-8 참조). For example, if the processing unit 210 is provided with five Tiny processors 220, but only the operation of four Tiny processors 220 is required to process the sensor signals, the other Tiny processor 220 Only a process of outputting input data to a subsequent component without calculation may be performed (see TP-8 in FIG. 5 (a)).

물론 나머지 하나의 타이니 프로세서(220)가 어떠한 연산 처리도 불필요한 경우, 지정된 처리를 수행한 마지막 타이니 프로세서(220)가 처리한 결과 데이터를 나머지 하나의 타이니 프로세서(220)가 아닌 미리 지정된 후속하는 구성요소로 직접 출력할 수도 있음은 당연하다.Of course, if the other Tiny processor 220 does not need any operation processing, the resultant data processed by the last Tiny processor 220 that has performed the specified processing is transferred to the next predetermined component It is obvious that the output can be directly output.

전술한 바와 같이, 본 실시예에 따른 시스템 온 칩(200)은 저사양의 MCU인 타이니 프로세서(220)들이 서로 연결되어 동작하도록 파이프라인화하는 것이며, 각 타이니 프로세서(220)들은 레지스터로 미리 지정된 동작을 하는 것이 아니라, 부팅 과정에서 CPU(110)에 의해 제어되어 외부 메모리(130)에서 커맨드 메모리(310)로 저장된 프로그램 코드에 따른 동작을 수행한다. As described above, the system-on-chip 200 according to the present embodiment pipelines the Tiny processors 220, which are low-level MCUs, to operate in conjunction with each other, and each Tiny processor 220 has a pre- But performs an operation according to the program code stored in the command memory 310 in the external memory 130 by the CPU 110 in the booting process.

따라서, 각각의 타이니 프로세서(220)에 어떤 프로그램 코드가 저장되는지에 따라 시스템 온 칩(200)이 MP3 기능을 할 수도 있고, 영상 처리 기능도 할 수 있다. 영상 처리 기능을 수행하는 경우, 예를 들어 열영상 처리, 초음파 분석 처리, 테라비트 등 다양한 응용분야에 적용될 수도 있을 것이다. 이를 통해, 각 사용자는 메모리 맵을 다양하게 구성하고 변경함으로써 본 실시예에 따른 시스템 온 칩(200)이 다양한 응용분야에서 활용되도록 할 수 있을 것이다. Therefore, depending on which program code is stored in each Tiny processor 220, the system-on-chip 200 may perform an MP3 function and an image processing function. When the image processing function is performed, it may be applied to various application fields such as a thermal image processing, an ultrasonic analysis processing, and a terra bit. In this way, each user can configure and modify the memory map in various ways, so that the system-on-chip 200 according to the present embodiment can be utilized in various applications.

그리고, 도 4에 예시된 바와 같이, 외부의 저장 매체에 저장된 메모리 맵에는 여러 개의 응용분야에 대한 프로그램이 저장되어 있을 수 있다. 각각의 응용분야에 대한 프로그램 코드는 각각의 시스템 온 칩(200)에 제공되어 각각 구동되도록 할 수도 있으며, 하나의 시스템 온 칩(200)이 응용분야를 바꿔가며 다양하게 동작되도록 할 수도 있다. As illustrated in FIG. 4, a memory map stored in an external storage medium may store programs for a plurality of application fields. The program codes for the respective application fields may be provided to the respective system-on-chip 200 and may be respectively driven. Alternatively, one system-on-chip 200 may be operated in various application fields.

따라서, 본 실시예에 따른 시스템 온 칩(200)이 이미지 시그널 프로세서(ISP)로 구현되는 경우를 가정하면, 부팅 과정에서 각 타이니 프로세서(220)에 어떤 프로그램 코드가 저장되는지에 따라 열영상 ISP, 초음파 ISP, 테라비트 ISP 등으로 다양하게 구동될 수 있다. 이러한 특징은 사물인터넷(IoT, Internet of Thigs) 분야의 다양한 센서 장치에 연결되어 적용될 수 있는 다양성을 제공할 수 있다.Therefore, assuming that the system-on-chip 200 according to the present embodiment is implemented as an image signal processor (ISP), the thermal image ISP, Ultrasonic ISP, terabit ISP, and so on. This feature can provide diversity that can be applied to various sensor devices in the field of Internet (IoT, Internet of Thigs).

상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention as defined in the appended claims. It will be understood that the present invention can be changed.

100, 200 : 시스템 온 칩(SoC) 110 : CPU
120 : 내부 메모리 130 : 외부 메모리
140 : 입력부 150 : 하드웨어 엔진
210 : 처리 유닛 220 : 타이니 프로세서
310 : 커맨드 메모리 320 : 처리 제어기
330 : 입력 버퍼 340 : 처리기
350 : 출력 버퍼
100, 200: System On Chip (SoC) 110: CPU
120: internal memory 130: external memory
140: Input unit 150: Hardware engine
210: processing unit 220: Tiny processor
310: Command memory 320: Process controller
330: input buffer 340: processor
350: Output buffer

Claims (3)

입력된 센서 신호를 처리하여 출력하는 시스템 온 칩으로서,
부팅 과정에서 외부의 저장 매체에 저장된 시스템 온 칩 구동용 프로그램 코드를 제공받아 저장하는 외부 메모리; 및
복수의 타이니 프로세서들을 포함하는 처리 유닛을 포함하되,
각각의 타이니 프로세서는 상기 외부 메모리에 저장된 프로그램 코드 중 CPU에 의해 지시된 주소에 상응하는 프로그램 코드를 로딩하고, 로딩된 프로그램 코드에 따라 센서 신호를 처리하며, 상기 로딩된 프로그램 코드에서 규정된 다른 타이니 프로그램 또는 주변 장치로 처리된 센서 신호를 출력하고,
상기 복수의 타이니 프로세서들은 각각 로딩된 프로그램 코드에 의해 입력된 센서 신호를 파이프라인 구조로 처리하도록 순서화되며,
상기 각각의 타이니 프로세서에는 각각 로딩된 프로그램 코드에 따른 처리가 완료되는 시간이 일치되도록 하는 클럭 주파수가 할당되는 것을 특징으로 하는 시스템 온 칩.
A system-on-chip which processes and outputs an input sensor signal,
An external memory for receiving and storing a program code for driving a system-on-chip stored in an external storage medium during a booting process; And
A processing unit including a plurality of Tiny processors,
Each Tiny processor loads a program code corresponding to the address indicated by the CPU among the program codes stored in the external memory, processes the sensor signal according to the loaded program code, Outputting a sensor signal processed by a program or a peripheral device,
Wherein the plurality of Tiny processors are each arranged to process the sensor signal input by the loaded program code into a pipeline structure,
Wherein each of the Tiny processors is assigned a clock frequency such that the processing time according to each loaded program code is matched with a clock frequency.
제1항에 있어서,
상기 복수의 타이니 프로세서들 각각은,
CPU에 의해 지시된 주소에 상응하는 프로그램 코드를 저장하는 커맨드 메모리;
센서 신호 또는 파이프라인 구조에서 선행하는 타이니 프로세서에 의해 처리된 센서 신호를 입력받는 입력 버퍼;
상기 입력 버퍼에 입력된 센서 신호를 상기 커맨드 메모리에 저장된 프로그램 코드에 따라 처리하는 처리기;
상기 처리기에 의해 처리된 센서 신호를 파이프라인 구조에서 후행하는 타이니 프로세서 또는 상기 주변 장치로 출력하는 출력 버퍼; 및
상기 처리기가 상기 커맨드 메모리에 저장된 프로그램 코드에 따른 처리를 수행하도록 컨트롤하는 처리 제어기를 포함하는 것을 특징으로 하는 시스템 온 칩.
The method according to claim 1,
Wherein each of the plurality of Tiny processors comprises:
A command memory for storing a program code corresponding to the address designated by the CPU;
An input buffer receiving a sensor signal or a sensor signal processed by a preceding Tiny processor in a pipeline structure;
A processor for processing the sensor signal input to the input buffer according to a program code stored in the command memory;
An output buffer for outputting sensor signals processed by the processor to a Tiny processor or a peripheral device that trails in a pipeline structure; And
And a processing controller for controlling the processor to perform processing according to the program code stored in the command memory.
제1항에 있어서,
상기 외부의 저장 매체에는 복수의 응용 분야 각각에서 각 타이니 프로세서에 로딩될 프로그램 코드를 포함하는 메모리 맵이 저장되며, 부팅 과정에서 상기 시스템 온 칩에 할당된 응용 분야에 해당되는 프로그램 코드가 상기 외부 메모리로 저장되는 것을 특징으로 하는 시스템 온 칩.
The method according to claim 1,
The external storage medium stores a memory map including program codes to be loaded into each Tiny processor in each of a plurality of application fields. In a booting process, a program code corresponding to an application field allocated to the system- Gt; chip. ≪ / RTI >
KR1020170112395A 2017-09-04 2017-09-04 Reconfiguable system on chip KR101795531B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170112395A KR101795531B1 (en) 2017-09-04 2017-09-04 Reconfiguable system on chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170112395A KR101795531B1 (en) 2017-09-04 2017-09-04 Reconfiguable system on chip

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020160156280A Division KR101795528B1 (en) 2016-11-23 2016-11-23 Reconfiguable system on chip

Publications (1)

Publication Number Publication Date
KR101795531B1 true KR101795531B1 (en) 2017-11-10

Family

ID=60386677

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170112395A KR101795531B1 (en) 2017-09-04 2017-09-04 Reconfiguable system on chip

Country Status (1)

Country Link
KR (1) KR101795531B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060059387A1 (en) 1987-09-04 2006-03-16 Swoboda Gary L Processor condition sensing circuits, systems and methods
JP2007179358A (en) 2005-12-28 2007-07-12 Nec Corp Information processor and method of using reconfiguration device
KR100848589B1 (en) 2005-10-11 2008-07-28 노키아 코포레이션 An mobile camera telephone, method of recording an image and a camera module

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060059387A1 (en) 1987-09-04 2006-03-16 Swoboda Gary L Processor condition sensing circuits, systems and methods
KR100848589B1 (en) 2005-10-11 2008-07-28 노키아 코포레이션 An mobile camera telephone, method of recording an image and a camera module
JP2007179358A (en) 2005-12-28 2007-07-12 Nec Corp Information processor and method of using reconfiguration device

Similar Documents

Publication Publication Date Title
US9015390B2 (en) Active memory data compression system and method
US8612726B2 (en) Multi-cycle programmable processor with FSM implemented controller selectively altering functional units datapaths based on instruction type
EP1840742A2 (en) Method and apparatus for operating a computer processor array
JP2002509302A (en) A multiprocessor computer architecture incorporating multiple memory algorithm processors in a memory subsystem.
US8069333B2 (en) Converting logical to real number to access shared configuration information in event driven state transiting reconfigurable system
CN111158756B (en) Method and apparatus for processing information
WO2008116830A2 (en) Processor, method and computer program
EP1990718A1 (en) Method and apparatus for loading data and instructions into a computer
JP5178346B2 (en) Semiconductor device and data processing method using semiconductor device
US20170337246A1 (en) Big-data processing accelerator and big-data processing system thereof
US20060212613A1 (en) Data processor apparatus
KR102349138B1 (en) High-speed computer accelerators with pre-programmed functions
JP2009009550A (en) Communication for data
KR101795531B1 (en) Reconfiguable system on chip
KR20070004705A (en) Electronic circuit
KR101795528B1 (en) Reconfiguable system on chip
US11531638B2 (en) Reconfigurable circuit array using instructions including a fetch configuration data portion and a transfer configuration data portion
US10922146B1 (en) Synchronization of concurrent computation engines
JP2006302132A (en) Signal processor, reconfigurable logic circuit device and reconfigurable sequential circuit
US20080229063A1 (en) Processor Array with Separate Serial Module
US20130318324A1 (en) Minicore-based reconfigurable processor and method of flexibly processing multiple data using the same
JP5141151B2 (en) Dynamic reconfiguration circuit and loop processing control method
JP2023533795A (en) Erasing register data
US20090282223A1 (en) Data processing circuit
US20140237216A1 (en) Microprocessor

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant