KR101478648B1 - Method for reconfiguring hardware and hardware reconfigurable system using it - Google Patents

Method for reconfiguring hardware and hardware reconfigurable system using it Download PDF

Info

Publication number
KR101478648B1
KR101478648B1 KR20080006700A KR20080006700A KR101478648B1 KR 101478648 B1 KR101478648 B1 KR 101478648B1 KR 20080006700 A KR20080006700 A KR 20080006700A KR 20080006700 A KR20080006700 A KR 20080006700A KR 101478648 B1 KR101478648 B1 KR 101478648B1
Authority
KR
South Korea
Prior art keywords
slot
state
memory
configuration information
hardware
Prior art date
Application number
KR20080006700A
Other languages
Korean (ko)
Other versions
KR20090023006A (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 삼성전자주식회사
Priority to US12/076,276 priority Critical patent/US8402410B2/en
Publication of KR20090023006A publication Critical patent/KR20090023006A/en
Application granted granted Critical
Publication of KR101478648B1 publication Critical patent/KR101478648B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)

Abstract

본 발명은 하드웨어 구성정보에 따라 하드웨어의 구성이 재구성되는 재구성 가능 하드웨어의 구성 메모리를 관리하는 방법 및 장치에 관한 것으로, 구성 메모리의 복수 개의 슬롯들 각각의 상태에 기초하여 하드웨어 구성정보를 저장할 수 있는 적어도 하나의 슬롯을 결정하고, 하드웨어 구성정보를 저장할 수 있는 것으로 결정된 슬롯에 외부 메모리에 저장된 하드웨어 구성 정보를 저장한다.The present invention relates to a method and an apparatus for managing a configuration memory of reconfigurable hardware in which hardware configuration is reconfigured according to hardware configuration information and is capable of storing hardware configuration information based on the status of each of a plurality of slots of the configuration memory Determines at least one slot, and stores hardware configuration information stored in an external memory in a slot determined to be able to store hardware configuration information.

재구성 가능 하드웨어, 구성 메모리 Reconfigurable hardware, configuration memory

Description

재구성 가능 하드웨어의 구성 메모리를 관리하는 방법 및 장치{Method for reconfiguring hardware and hardware reconfigurable system using it}METHOD AND APPARATUS FOR MANAGING CONFIGURATION MEMORY OF RECONFIGURABLE HARDWARE BACKGROUND OF THE INVENTION [0001]

본 발명은 재구성 가능 하드웨어의 구성 메모리를 관리하는 방법 및 장치에 관한 것으로, 특히 재구성 가능한 하드웨어의 구성 메모리(configuration memory)를 동적으로 관리하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for managing configuration memory of reconfigurable hardware, and more particularly to a method and apparatus for dynamically managing configuration memory of reconfigurable hardware.

특정한 전자, 정보통신 제품에 사용할 목적으로 설계된 비메모리 반도체 칩을 주문형 반도체(application specific integrated circuit,ASIC)라고 하며, 주문형 반도체 중에서도 논리 블럭(logic block)이라고 하는 프로그래밍이 가능한 논리 소자(Logic components)를 포함하고 있는 반도체를 FPGA(Field Programmable Gate Arry)라고 한다. 논리 블럭은 AND, XOR와 같은 기본적인 논리 게이트 외에도 디코더와 같은 복잡한 기능들을 수행하기 위해 프로그래밍 된다. FPGA의 경우에는 이미 설계된 하드웨어를 반도체로 생산하기 직전 최종적으로 하드웨어 동작 및 성능을 검증하기 위해 제작되기도 한다. FPGA(Field Programmable Gate Array)와 같은 반도체에서는 논리 소자들 간의 연결을 프로그램하는 것이 가능하기 때문에 매번 필요할 때, 논리 소자들 간의 연결을 프로그램하는 것이 가능하다. 여기에 한 발 더 나아가 최근에는 실시간으로 부분적인 회로가 다른 동작을 하도록 프로그램한다.A non-memory semiconductor chip designed for use in a specific electronic or information communication product is called an application specific integrated circuit (ASIC), and a programmable logic component called a logic block, The semiconductors they contain are called field programmable gate arrays (FPGAs). Logic blocks are programmed to perform complex functions such as decoders in addition to basic logic gates such as AND and XOR. In the case of an FPGA, it may be fabricated to verify the final hardware operation and performance just before manufacturing the already designed hardware into the semiconductor. In a semiconductor such as an FPGA (Field Programmable Gate Array), it is possible to program the connection between logic elements whenever necessary, since it is possible to program the connection between the logic elements. Going one step further, we recently programmed a partial circuit to perform different operations in real time.

예전에는 FPGA(Field Programmable Gate Arry) 또는 CGA(Coarse Grained array)를 이용한 재구성 가능한 시스템은 일반 회로보다 동작이 10배 이상 느리고 연결이 안된 불필요한 소자가 많기 때문에 면적에서도 낭비가 심했다. 그래서 시제품을 개발하기 전에 에뮬레이션용으로 본 회로의 동작을 프로그램해서 검증하는데 사용하거나, 소량의 제품을 단기간에 개발하기 위한 제한된 용도로 사용되었다. 그러나, 최근에는 기술의 발달로 이러한 하드웨어가 속도나 면적 면에서 경쟁력을 가지게 되었다. 또한 시스템의 검증이 날로 중요해지고, 제품의 사양이 점점 빠른 주기로 바뀌어 가면서 재구성 가능한 시스템의 적용 범위가 점점 늘고 있다.In the past, reconfigurable systems using field programmable gate arrays (FPGAs) or coarse grained arrays (CGAs) were 10 times slower than normal circuits and wasted area because there were many unneeded elements that were not connected. So it was used to program and verify the operation of the circuit for emulation before the prototype was developed, or to use it for a limited time to develop a small amount of product in a short time. However, in recent years, with the development of technology, such hardware has become competitive in terms of speed and area. In addition, system validation becomes increasingly important, and as product specifications change rapidly, the scope of reconfigurable systems is increasing.

하드웨어 재구성 가능 시스템(reconfigurable system)이란, 프로그래밍을 이용하여 하드웨어 내부를 재구성할 수 있는 시스템을 말한다. 프로그래밍은 구성 메모리라고 불리는 메모리에 저장된 하드웨어 구성 정보를 이용하여 수행한다. 따라서 구성 메모리에 서로 다른 기능을 수행하는 하드웨어를 구성할 수 있는 복수의 하드웨어 구성 정보가 저장되어 있다면, 하드웨어 재구성 가능 시스템은 필요한 하드웨어 구성 정보를 이용하여 다양한 기능을 수행한다. 이러한 하드웨어 재구성 가능 시스템은 하드웨어의 장점인 성능과 소프트웨어의 장점인 유연성을 모두 갖고 있어서, 오늘날 애플리케이션(application)의 요구 사항을 잘 만족한다. A hardware reconfigurable system is a system that can reconfigure hardware internally using programming. Programming is performed using hardware configuration information stored in a memory called configuration memory. Accordingly, if a plurality of pieces of hardware configuration information capable of configuring hardware performing different functions are stored in the configuration memory, the hardware reconfigurable system performs various functions using necessary hardware configuration information. These hardware reconfigurable systems have both the performance advantages of hardware and the flexibility of software advantages, satisfying the requirements of today's applications.

구성 메모리란(configuration memory), 하드웨어 재구성 가능 시스템에 포함된 하드웨어를 재구성할 수 있는 하드웨어 구성정보를 저장하고 있는 메모리로서, 재구성 가능한 하드웨어에 가장 빨리 접근할 수 있는 메모리를 말한다. 구성 메모 리에 새로운 하드웨어 구성정보를 저장하면, 하드웨어 재구성 가능 시스템은 구성 메모리에 저장된 새로운 하드웨어의 구성정보를 이용하여 하드웨어를 재구성한다. 일반적으로 M이 구성 메모리를 구성하고 있는 복수의 저장영역의 갯수를 나타내고, 각 저장영역을 슬롯(slot)이라고 하면, 구성 메모리의 전체 크기는 M×(슬롯의 크기)로 나타낸다. 구성 메모리를 M개의 슬롯(slot)으로 구성함으로써, 구성 메모리를 포함하는 하드웨어 재구성 가능 시스템은 다중 문맥(multi-context)을 지원한다.A configuration memory, a memory that stores hardware configuration information that can reconfigure hardware included in a hardware reconfigurable system, and refers to a memory that can be accessed the closest to the reconfigurable hardware. After storing the new hardware configuration information in the configuration memory, the hardware reconfigurable system reconfigures the hardware using the configuration information of the new hardware stored in the configuration memory. In general, M represents the number of storage areas constituting the constituent memory. When each storage area is referred to as a slot, the total size of the constituent memory is denoted by M x (slot size). By configuring the configuration memory with M slots, a hardware reconfigurable system including configuration memory supports multi-context.

다중 문맥이란, 하드웨어를 재구성할 때 사용하는 복수의 하드웨어 구성정보들을 메모리에 저장하여 두고, 필요할 때마다 저장된 하드웨어 구성정보들을 또 다른 하드웨어 구성정보들로 교체하여 재구성 가능 하드웨어를 교체된 하드웨어 구성정보를 이용하여 재구성하는 방법을 말한다. 다중 문맥을 이용하는 하드웨어 재구성 가능 시스템은 실제 하드웨어를 재구성하는 경우, 구성 메모리에 있는 하드웨어 구성정보들 간의 전환을 통해서 빠르게 하드웨어를 재구성한다. In the multiple context, a plurality of pieces of hardware configuration information used when reconfiguring the hardware are stored in a memory, and the reconfigurable hardware is replaced with another piece of hardware configuration information, And then reconstructing the image using the image. A hardware reconfigurable system using multiple contexts reconfigures hardware quickly by switching between hardware configuration information in the configuration memory when reconfiguring the actual hardware.

본 발명이 이루고자 하는 기술적 과제는 구성 메모리의 저장영역의 상태와 저장영역의 상태를 변경할 수 있는 명령어를 제공하여 하드웨어 구성정보를 저장할 저장영역의 위치를 동적으로 결정함으로써, 저장영역 결정이 데이타의 종류, 크기 등에 의존적인 경우이거나 여러 프로그램이 동시에 구성 메모리를 이용할 경우, 구성 메모리의 저장 위치 결정을 최적으로 할 수 있는 재구성 가능 하드웨어의 구성 메모리를 관리하는 방법 및 장치를 제공하는 데 있다. 또한, 상기된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 데 있다.According to an aspect of the present invention, there is provided a computer readable storage medium storing a program for causing a computer to execute a method for controlling a storage area of a storage device, Size and the like of the reconfigurable hardware, or a configuration memory of the reconfigurable hardware that can optimize the storage location of the configuration memory when multiple programs use the configuration memory at the same time. The present invention also provides a computer-readable recording medium on which a program for causing a computer to execute the above-described method is recorded.

상기 과제를 해결하기 위한 본 발명에 따른 재구성 가능 하드웨어의 구성 메모리를 관리하는 방법에 있어서, 상기 구성 메모리의 복수 개의 슬롯들 각각의 상태에 기초하여 상기 하드웨어 구성정보를 저장할 수 있는 적어도 하나의 슬롯을 결정하는 단계; 및 상기 하드웨어 구성정보를 저장할 수 있는 것으로 결정된 슬롯에 외부 메모리에 저장된 하드웨어 구성 정보를 저장하는 단계를 포함함을 특징으로 한다.According to an aspect of the present invention, there is provided a method for managing a configuration memory of a reconfigurable hardware, the method comprising: storing at least one slot capable of storing the hardware configuration information based on a state of each of a plurality of slots of the configuration memory Determining; And storing hardware configuration information stored in an external memory in a slot determined to be able to store the hardware configuration information.

상기 다른 과제를 해결하기 위한 본 발명에 따른 재구성 가능 하드웨어의 구성 메모리를 관리하는 장치는 상기 구성 메모리의 복수 개의 슬롯들 각각의 상태에 기초하여 상기 하드웨어 구성정보를 저장할 수 있는 적어도 하나의 슬롯을 결정하고, 상기 결정된 슬롯으로 외부 메모리에 저장된 하드웨어 구성정보를 저장하는 메모리 관리부; 및 상기 구성 메모리의 복수 개의 슬롯들 각각의 상태를 저장하는 저 장부를 포함함을 특징으로 한다.According to another aspect of the present invention, there is provided an apparatus for managing configuration memory of reconfigurable hardware according to the present invention, comprising at least one slot capable of storing the hardware configuration information based on a status of each of a plurality of slots of the configuration memory A memory management unit for storing hardware configuration information stored in the external memory in the determined slot; And a storage unit for storing a state of each of a plurality of slots of the configuration memory.

상기 또 다른 과제를 해결하기 위하여, 본 발명은 상기된 하드웨어를 재구성하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.According to another aspect of the present invention, there is provided a computer-readable recording medium storing a program for causing a computer to execute a method of reconfiguring the hardware.

본 발명이 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다. 이것은 본 발명이 속하는 기술 분야에서 통상을 지식을 가진 자들라면 아래의 기재로부터 명확하게 이해될 수 있다. The present invention is not limited to the above-described technical problems, and other technical problems may be present. This can be understood by those skilled in the art from the following description.

이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings.

도 1은 재구성 가능 하드웨어의 구성 메모리를 관리하는 방법 중 정적 할당 기술을 설명하기 위한 도면이다.1 is a diagram for explaining a static allocation technique among methods of managing configuration memories of reconfigurable hardware.

우선, 하드웨어를 재구성하는 과정을 살펴보기로 한다. 하드웨어를 재구성하여 소정 목적을 수행하기 위한 프로그램을 컴파일(compile)하면, 프로그램 컴파일 결과 생성된 코드를 저장하는 코드 메모리(미도시)에 소정 목적을 수행하기 위한 코드가 저장되고, 저장된 코드에 의해 하드웨어 구성정보를 제어하여 하드웨어가 재구성된다. First, let's look at the process of reconfiguring the hardware. When a program for performing a predetermined purpose is compiled by reconstructing hardware, a code for performing a predetermined purpose is stored in a code memory (not shown) for storing a code generated as a result of program compilation, Hardware is reconfigured by controlling configuration information.

정적 할당 기술은 하드웨어를 재구성하기 위한 하드웨어 구성정보를 저장할 구성 메모리 상의 슬롯의 위치를 프로그램 컴파일 시에 모두 결정하는 기술로서, 외부 메모리를 사용하지 않는 기술을 말한다. 도 1을 참조하면, 하드웨어 재구성 가능 시스템은 슬롯 1 내지 슬롯 M으로 구성된 구성 메모리(100), 멀티플렉서(110), 재구성 가능 하드웨어(120)를 포함한다.The static allocation technique refers to a technique for determining the position of a slot on a configuration memory for storing hardware configuration information for reconfiguring hardware at the time of program compilation, and does not use an external memory. Referring to FIG. 1, a hardware reconfigurable system includes a configuration memory 100 configured from Slots 1 through M, a multiplexer 110, and reconfigurable hardware 120.

멀티플렉서(110)를 통해 재구성 가능 하드웨어(120)로 입력되는 하드웨어 구성정보는 구성 메모리(100)를 구성하는 소정의 슬롯(slot)들에 저장되어 있다. 각각의 슬롯에 저장되어 있는 하드웨어 구성정보는 재구성 가능 하드웨어의 구성을 바꾸기 위한 데이타이다. 하드웨어 재구성 가능 시스템의 메모리 관리방법 중에 하나인 정적 할당기술을 이용하면, 프로그램 컴파일 시에 이미 하드웨어 재구성에 사용되는 모든 하드웨어 구성정보와 매핑되는 슬롯의 위치가 결정되나, 하드웨어 구성정보를 저장하는 외부 메모리를 이용하지는 않는다. 따라서 메모리 관리시에 이미 모든 하드웨어 구성정보가 저장될 슬롯이 정해져 있으므로, 구성 메모리(100) 상에 저장할 슬롯의 위치가 부족한 현상인 오버헤드(overhead)는 없는 반면 하드웨어 재구성 가능 시스템이 수행할 수 있는 하드웨어 기능이 구성 메모리(100)의 최대 크기에 영향을 받아 제약을 받게 된다.The hardware configuration information input to the reconfigurable hardware 120 through the multiplexer 110 is stored in predetermined slots constituting the configuration memory 100. The hardware configuration information stored in each slot is data for changing the configuration of the reconfigurable hardware. When the static allocation technology, which is one of the memory management methods of the hardware reconfigurable system, is used, the location of the slot to be mapped with all of the hardware configuration information already used for the hardware reconfiguration at the time of program compilation is determined. However, . Therefore, since there is already a slot in which all the hardware configuration information is to be stored at the time of memory management, there is no overhead, which is a phenomenon in which a slot to be stored in the configuration memory 100 is insufficient, while a hardware reconfigurable system The hardware function is affected by the maximum size of the configuration memory 100 and is limited.

도 2는 재구성 가능 하드웨어의 구성 메모리를 관리하는 방법 중 메모리 오버레이 기술을 설명하기 위한 도면이다. 도 2를 참조하면, 하드웨어 재구성 가능 시스템은 슬롯 1 내지 슬롯 M으로 구성된 구성 메모리(200), 멀티플렉서(210), 재구성 가능 하드웨어(220)를 포함한다. 외부 메모리는 N개(N은 자연수)의 저장영역으로 구성된다. 2 is a diagram for explaining a memory overlay technique among methods of managing configuration memories of reconfigurable hardware. Referring to FIG. 2, a hardware reconfigurable system includes a configuration memory 200 configured from Slots 1 through M, a multiplexer 210, and reconfigurable hardware 220. The external memory consists of N (N is a natural number) storage area.

메모리 오버레이(overlay) 기술은 서로 다른 기능을 수행하는 하드웨어 구성 정보들을 외부 메모리(230)에 저장하여 두고, 외부 메모리(230)에 저장된 하드웨어 구성정보들을 구성 메모리(200)의 슬롯으로 매핑한 후 매핑된 하드웨어 구성정보들을 하드웨어 재구성에 사용함으로써, 정적 할당 기술을 이용할 때보다 많은 하드웨어 구성정보를 하드웨어 재구성에 사용한다.In the memory overlay technology, hardware configuration information that performs different functions is stored in the external memory 230, the hardware configuration information stored in the external memory 230 is mapped to a slot of the configuration memory 200, By using the hardware configuration information for hardware reconfiguration, more hardware configuration information is used for hardware reconfiguration than when using static allocation technology.

도 2를 참조하면, 메모리 오버레이 기술은 하드웨어 구성정보를 저장하고 있는 외부 메모리(230)로부터 구성 메모리(200)로 하드웨어 구성정보를 필요할 때마다 저장한다. 이 경우 하드웨어 재구성 가능 시스템에서 수행하는 하드웨어 기능은 구성 메모리(200)의 저장 크기에 영향을 받는 정적 할당 기술과는 달리 외부 메모리(230)의 저장 크기에 영향을 받게 된다. 외부 메모리(230)의 저장영역 2와 저장영역 5에 저장되어 있는 하드웨어 구성정보를 구성 메모리(200)의 슬롯 2에 매핑할 수 있으므로, 하드웨어 구성정보를 저장하는 크기가 정적 할당 기술을 이용할 때보다 확장된다.Referring to FIG. 2, the memory overlay technology stores hardware configuration information from the external memory 230 storing hardware configuration information to the configuration memory 200 whenever necessary. In this case, the hardware function performed by the hardware reconfigurable system is affected by the storage size of the external memory 230, unlike the static allocation technique, which is influenced by the storage size of the configuration memory 200. Since the hardware configuration information stored in the storage area 2 and the storage area 5 of the external memory 230 can be mapped to the slot 2 of the configuration memory 200, the size for storing the hardware configuration information is larger than when the static allocation technology is used .

따라서 메모리 오버레이 기술을 이용하면, 하드웨어 재구성 가능 시스템이 수행하는 하드웨어 기능을 외부 메모리(230)의 크기 만큼 확장한다. 그러나, 하드웨어 구성정보를 저장할 구성 메모리(200) 상 슬롯의 위치를 하드웨어를 재구성하는 프로그램 컴파일 시에 모두 결정한다는 점에서는 정적 할당 기술과 차이가 없다. 구성 메모리(200) 상 슬롯의 위치를 모두 결정한다는 것은 프로그램 컴파일 결과인 코드들이 외부 메모리(230)의 저장영역들에 저장된 하드웨어 구성정보들을 구성 메모리(200)의 어떤 슬롯들과 매핑할 것인지에 대한 정보를 포함하고 있다는 의미이다. 상기의 예에서 외부 메모리(230)의 저장영역 2와 저장영역 5에 저장된 하 드웨어 구성정보는 구성 메모리(200)의 슬롯 2로 매핑되어 있으며, 이러한 매핑 정보는 컴파일 시에 이미 모두 결정되어 버린다. 따라서 정적 할당 기술과 메모리 오버레이 기술은 사용자가 저장영역과 슬롯 간의 매핑을 미리 결정할 수 있는 간단한 구조를 가진 프로그램을 작성할 때는 적합하나, 저장영역과 슬롯 간의 매핑이 데이타의 종류, 크기 등에 의존적인 경우이거나 여러 프로그램이 동시에 저장영역 및 슬롯을 이용할 경우에는 외부 메모리와 구성 메모리를 최적으로 이용할 수 없다.Thus, using the memory overlay technology, the hardware functions performed by the hardware reconfigurable system are extended by the size of the external memory 230. [ However, there is no difference from the static allocation technique in that the position of the slot on the configuration memory 200 for storing the hardware configuration information is determined at the time of compiling the program for reconfiguring the hardware. Determining all of the positions of the slots on the configuration memory 200 means that the codes resulting from the program compilation include information on which slots of the configuration memory 200 to map the hardware configuration information stored in the storage areas of the external memory 230 . In the above example, the hardware configuration information stored in the storage area 2 and the storage area 5 of the external memory 230 is mapped to the slot 2 of the configuration memory 200, and such mapping information is already determined at compile time. Therefore, the static allocation technique and the memory overlay technique are suitable when a user writes a program having a simple structure in which the mapping between the storage area and the slot can be determined in advance, but the mapping between the storage area and the slot is dependent on the type and size of the data If several programs use storage areas and slots at the same time, the external memory and the configuration memory can not be used optimally.

도 3은 재구성 가능 하드웨어의 구성 메모리를 관리하는 방법 중 본 발명에 따른 동적 할당 메모리 관리방법을 설명하기 위한 도면이다. 도 3을 참조하면, 하드웨어 재구성 가능 시스템은 구성 메모리(300), 멀티 플렉서(310), 재구성 가능 하드웨어(320)를 포함하여 구성된다. 구성 메모리(300)는 하드웨어 구성정보를 저장할 수 있는 복수의 슬롯(슬롯 1 내지 슬롯 M, M은 자연수)들로 구성되어 있다. 외부 메모리(330)는 N개(N은 자연수)의 저장영역으로 구성되어 있다.3 is a diagram for explaining a dynamic allocation memory management method according to the present invention among methods of managing configuration memories of reconfigurable hardware. Referring to FIG. 3, a hardware reconfigurable system is comprised of configuration memory 300, a multiplexer 310, and reconfigurable hardware 320. The configuration memory 300 is configured with a plurality of slots (slot 1 to slot M, M being natural numbers) capable of storing hardware configuration information. The external memory 330 is composed of N (N is a natural number) storage area.

동적 할당(dynamic allocation) 메모리 관리방법을 이용하는 하드웨어 재구성 가능 시스템은 외부 메모리(330)의 저장영역들마다 하드웨어 구성정보들을 저장하여 두고, 각각의 하드웨어 구성정보를 구성 메모리(300)의 어느 슬롯으로 매핑할 것인지에 대한 결정을 하드웨어를 재구성하는 프로그램을 컴파일한 결과인 코드를 실행하면서 실시간으로 한다. 메모리 오버레이 기술에서는 하드웨어를 재구성하는 프로그램의 컴파일 시에 이미 외부 메모리에 저장된 하드웨어 구성정보들이 구성 메모리의 어느 슬롯으로 매핑될 것인지를 결정하지만, 본 발명에 따른 동적 할당(dynamic allocation) 메모리 관리방법은 하드웨어를 재구성하는 프로그램을 컴 파일한 결과인 코드를 실행하면서 실시간으로 외부 메모리(330)에 저장된 하드웨어 정보들이 구성 메모리(300)의 어느 슬롯으로 매핑될 것인지를 결정한다. 이하, 동적 할당 메모리 관리방법을 이용한 하드웨어 재구성 가능 시스템에 대하여 상세히 살펴보기로 한다.A hardware reconfigurable system using a dynamic allocation memory management method stores hardware configuration information for each storage area of the external memory 330 and maps each hardware configuration information to a slot of the configuration memory 300 The result of compiling the hardware reconfigurable program is to run the code in real time. In the memory overlay technology, when a program for reconfiguring a hardware is compiled, the hardware allocation information already stored in the external memory is determined to which slot of the configuration memory, but the dynamic allocation memory management method according to the present invention is implemented by hardware And decides which slot of the configuration memory 300 the hardware information stored in the external memory 330 is to be mapped in real time while executing the code that is the result of compiling the program. Hereinafter, a hardware reconfigurable system using the dynamic allocation memory management method will be described in detail.

도 4는 하드웨어 재구성 가능한 시스템을 나타내는 구성도이다.Figure 4 is a block diagram illustrating a hardware reconfigurable system.

도 4를 참조하면, 하드웨어 재구성 가능한 시스템은 구성 메모리(410), 메모리 관리부(420), 외부 메모리 테이블(430), 구성 메모리 테이블(440), 멀티 플렉서(450), 및 재구성 가능 하드웨어(460)로 구성된다. 4, a hardware reconfigurable system includes a configuration memory 410, a memory manager 420, an external memory table 430, a configuration memory table 440, a multiplexer 450, and reconfigurable hardware 460 ).

외부 메모리(400)는 하드웨어 구성정보를 저장하고 있는 저장장치로서 하드웨어 재구성 가능한 시스템의 외부에 있는 메모리이다. 외부 메모리(400)는 복수의 저장영역들로 구분되어 있으며, 하드웨어를 재구성하기 위한 하드웨어 구성정보는 적어도 하나 이상의 저장영역을 필요로 한다.The external memory 400 is a storage device that stores hardware configuration information and is a memory external to the hardware reconfigurable system. The external memory 400 is divided into a plurality of storage areas, and hardware configuration information for reconfiguring the hardware requires at least one storage area.

구성 메모리(410)는 외부 메모리(400)로부터 수신한 하드웨어 구성정보를 저장하는 메모리이다. 구성 메모리(410)는 복수의 슬롯들로 구성되어 있으며, 각각의 슬롯들에 하드웨어 구성정보가 저장된다. 슬롯이란, 하드웨어 구성정보를 저장하는 구성 메모리(410) 상의 저장영역들을 의미한다.The configuration memory 410 is a memory for storing hardware configuration information received from the external memory 400. The configuration memory 410 is composed of a plurality of slots, and hardware configuration information is stored in each of the slots. A slot means storage areas on the configuration memory 410 for storing hardware configuration information.

외부 메모리 테이블(430)은 외부 메모리(400)의 저장상태에 대한 정보를 나타내는 테이블이다. 외부 메모리(400)의 저장상태에 대한 정보는 외부 메모리(400)를 구성하는 복수의 저장영역들 각각의 상태 정보, 저장영역이 매핑된 구성 메모리(410)의 슬롯의 인덱스 정보, 및 저장영역에 저장되는 하드웨어 구성정보의 크기 를 포함한다. 도 6에서 외부 메모리 테이블(430)을 자세히 살펴보기로 한다.The external memory table 430 is a table showing information on the storage state of the external memory 400. [ The information on the storage state of the external memory 400 includes information on the state of each of the plurality of storage areas constituting the external memory 400, index information on the slot of the configuration memory 410 to which the storage area is mapped, And the size of the hardware configuration information to be stored. The external memory table 430 will be described in detail with reference to FIG.

구성 메모리 테이블(440)은 구성 메모리(410)의 저장상태에 대한 정보를 나타내는 테이블이다. 구성 메모리(410)의 저장상태에 대한 정보는 구성 메모리(410)를 구성하는 복수의 슬롯들 각각의 상태 정보, 및 슬롯이 매핑된 외부 메모리(400)의 저장영역의 인덱스 정보를 포함한다. The configuration memory table 440 is a table that shows information on the storage status of the configuration memory 410. The information on the storage state of the configuration memory 410 includes the status information of each of the plurality of slots constituting the configuration memory 410 and the index information of the storage area of the external memory 400 to which the slot is mapped.

메모리 관리부(420)는 외부 메모리(400) 또는 구성 메모리(410)에 대한 명령어 실행신호를 코드들이 저장된 코드 메모리(미도시)로부터 수신하면, 명령어의 내용에 따른 관리를 수행하는 장치이다. 하드웨어를 재구성하는 프로그램을 컴파일한 결과 생성되는 코드들이 실행되면, 코드들이 메모리 관리부(420)에 저장된 명령어들을 이용하여, 외부 메모리(400)와 구성 메모리(410)를 관리하게 된다. 예를 들어 코드를 실행하면 코드들 중에 있는 소정의 명령어를 메모리 관리부(420)로 호출(call)하게 되고, 메모리 관리부(420)는 호출에 응답하여 소정의 명령어를 실제로 외부 메모리(400) 또는 구성 메모리(410)에 대하여 수행한다. 메모리 관리부(420)는 코드들에 의해 호출된 명령어를 실행하기 위해 외부 메모리 테이블(430) 및 구성 메모리 테이블(440)에 저장된 정보들을 이용한다. 이하에서는 메모리 관리부(420)가 수행하는 명령어들에 대한 실시예를 설명하기로 한다.The memory management unit 420 is a device that manages a command execution signal for the external memory 400 or the configuration memory 410 according to the contents of a command when the command execution signal is received from a code memory (not shown) in which codes are stored. When codes generated as a result of compiling a program for reconfiguring the hardware are executed, the codes manage the external memory 400 and the configuration memory 410 using the instructions stored in the memory management unit 420. For example, when the code is executed, a predetermined command in the codes is called to the memory management unit 420, and the memory management unit 420 responds to the call and actually sends a predetermined command to the external memory 400 or the configuration To the memory 410. The memory management unit 420 uses the information stored in the external memory table 430 and the configuration memory table 440 to execute the command called by the codes. Hereinafter, an embodiment of instructions executed by the memory management unit 420 will be described.

메모리 관리부(420)는 코드를 실행한 결과로써 코드들로부터 프리펫치(Prefetch) 명령어에 대하여 호출받으면, 외부 메모리(400)의 저장영역에 저장된 하드웨어 구성정보를 구성 메모리(410)의 슬롯에 저장한다. 본 발명에 따르면 프리펫치 명령어에 따라 하드웨어 구성정보를 구성 메모리(410)의 슬롯에 저장하기 위 해서는 외부 메모리(400)의 저장영역의 인덱스 값과 구성 메모리(410)의 슬롯의 인덱스 값이 필요하다.The memory management unit 420 stores the hardware configuration information stored in the storage area of the external memory 400 in a slot of the configuration memory 410 when receiving a prefetch command word from the codes as a result of executing the code . According to the present invention, in order to store the hardware configuration information in the slot of the configuration memory 410 according to the prefetch command, the index value of the storage area of the external memory 400 and the index value of the slot of the configuration memory 410 are required .

메모리 관리부(420)는 코드를 실행한 결과로써 코드들로부터 실행(Execute) 명령어에 대하여 호출받으면, 구성 메모리(410)의 슬롯에 저장된 하드웨어 구성정보를 멀티플렉서(450)로 출력한다.The memory management unit 420 outputs the hardware configuration information stored in the slots of the configuration memory 410 to the multiplexer 450 when the memory management unit 420 is called with respect to the execution command from the codes as a result of executing the code.

메모리 관리부(420)는 코드를 실행한 결과로써 코드들로부터 무효화(Invalidate) 명령어에 대하여 호출받으면, 외부 메모리 테이블(430)과 구성 메모리 테이블(440)의 무효화 명령어의 대상 저장영역 또는 슬롯의 상태정보를 무효 상태로 만든다. 무효 상태란 구성 메모리(410)의 슬롯과 외부 메모리(400)의 저장영역 간에 매핑되어 있지 않은 것을 의미한다. 슬롯과 저장영역 간에 매핑이 되어 있지 않다는 것은 슬롯에 저장된 하드웨어 구성정보를 하드웨어를 재구성하는데 사용할 수 없음을 나타낸다. 즉, 슬롯의 상태정보가 무효 상태가 되면, 메모리 관리부(420)는 하드웨어 구성정보가 슬롯에 저장되어 있다고 하더라도, 무효 상태의 슬롯에 저장된 하드웨어 구성정보를 재구성하는 데 사용하지 않도록 한다. 무효 상태의 슬롯에는 새로운 하드웨어 구성정보가 저장될 수 있으며, 반드시 무효 상태의 슬롯에 저장된 하드웨어 구성정보를 삭제할 필요는 없다. 메모리 관리부(420)는 외부 메모리 테이블(430)의 저장영역의 상태정보를 저장영역과 매핑된 구성 메모리 테이블(440)의 슬롯의 상태정보와 같도록 한다. 따라서, 외부 메모리 테이블(430)의 저장영역의 상태정보는 저장영역의 상태정보를 나타내는 것이 아니고, 메모리 관리의 편의상 구성 메모리(410)의 슬롯의 상태정보를 나타낸다.When the memory management unit 420 receives an invalidation command from the codes as a result of executing the code, the memory management unit 420 updates the state information of the target storage area or slot of the invalidation instruction in the external memory table 430 and the configuration memory table 440 To an invalid state. The invalid state means that the slot of the configuration memory 410 and the storage area of the external memory 400 are not mapped. The fact that there is no mapping between the slot and the storage area indicates that the hardware configuration information stored in the slot can not be used to reconstruct the hardware. That is, when the state information of the slot becomes invalid, the memory management unit 420 does not use the hardware configuration information stored in the invalid state slot to reconstruct the hardware configuration information even if the hardware configuration information is stored in the slot. New hardware configuration information may be stored in a slot in an invalid state and it is not necessarily necessary to delete hardware configuration information stored in a slot in an invalid state. The memory management unit 420 makes the state information of the storage area of the external memory table 430 the same as the state information of the slot of the configuration memory table 440 mapped with the storage area. Therefore, the state information of the storage area of the external memory table 430 does not indicate the state information of the storage area, but represents the state information of the slot of the configuration memory 410 for convenience of memory management.

메모리 관리부(420)는 코드를 실행한 결과로써 코드들로부터 제 1 저장영역과 제 1 슬롯을 대상으로 한 잠금(Lock) 명령어를 호출받으면, 외부 메모리(400)의 제 1 저장영역이 제 1 저장영역과 매핑된 구성 메모리(410)의 제 1 슬롯을 독점적으로 사용하도록 하는 독점적 상태 또는 독점적 로딩 상태로 외부 메모리 테이블(430)의 저장영역과 구성 메모리 테이블(440)의 슬롯의 상태정보를 변경한다. 메모리 관리부(420)가 잠금 명령어를 호출받았을 때 저장영역과 슬롯의 상태정보가 유효 상태이면, 독점적 상태로 저장영역과 슬롯의 상태정보를 변경하고, 저장영역과 슬롯의 상태정보가 로딩 상태이면, 독점적 로딩 상태로 저장영역과 슬롯의 상태정보를 변경한다. 제 1 저장영역이 제 1 슬롯을 독점적으로 사용하도록 설정한다는 것은 제 1 저장영역이 아닌 제 2 저장영역은 제 1 슬롯과 매핑할 수 없도록 한다는 것을 의미한다. 무효 상태, 로딩 상태, 유효 상태, 독점적 로딩 상태, 독점적 유효 상태에 대해서는 도 6에서 상세히 살펴보기로 한다.When the memory management unit 420 is called from the codes as a result of executing the code, the first storage area of the external memory 400 is stored in the first storage area The state of the storage area of the external memory table 430 and the state of the slot of the configuration memory table 440 are changed to an exclusive state or an exclusive loading state in which the first slot of the configuration memory 410 mapped with the area is exclusively used . When the state information of the storage area and the slot is valid when the memory management part 420 is called a lock instruction, the state information of the storage area and the slot is changed in a proprietary state. If the storage area and the state information of the slot are loaded, And changes the state information of the storage area and the slot in the exclusive loading state. Setting the first storage area to use the first slot exclusively means that the second storage area other than the first storage area can not be mapped to the first slot. The invalid state, the loading state, the valid state, the exclusive loading state, and the exclusive valid state will be described in detail with reference to FIG.

메모리 관리부(420)는 코드를 실행한 결과로써 코드들로부터 제 1 저장영역과 제 1 슬롯을 대상으로 한 풀림(Unlock) 명령어를 호출받으면, 제 1 저장영역과 제 1 슬롯의 상태정보를 외부 메모리 테이블(430)과 구성 메모리 테이블(440)로부터 읽고, 상태정보가 독점적 유효 상태이면 유효 상태로 변경하고, 상태정보가 독점적 로딩 상태이면 로딩 상태로 변경한다. 저장영역과 슬롯의 상태정보에 대해서는 도 6에서 상세히 살펴보기로 한다.As a result of executing the code, the memory management unit 420 receives the unlock command for the first storage area and the first slot from the codes, and stores the state information of the first storage area and the first slot in the external memory Reads from the table 430 and the configuration memory table 440, changes to a valid state if the state information is exclusively valid, and changes to a loaded state if the state information is exclusively loaded. The state information of the storage area and the slot will be described in detail with reference to FIG.

멀티플렉서(450)는 구성메모리(410)로부터 수신한 적어도 하나 이상의 하드웨어 구성정보들 중에서 메모리 관리부(420)의 제어를 받아 하나의 하드웨어 구성 정보를 재구성 가능 하드웨어(460)로 출력한다.The multiplexer 450 outputs one piece of hardware configuration information to the reconfigurable hardware 460 under the control of the memory management unit 420 among at least one hardware configuration information received from the configuration memory 410.

재구성 가능 하드웨어(460)는 FGA(Fine Grained Array) 또는 CGA(coarce grained array)와 같이 하드웨어 구성요소들을 재결합할 수 있는 장치를 말한다.Reconfigurable hardware 460 refers to a device that can recombine hardware components, such as a fine grain array (FGA) or a coarse grained array (CGA).

도 5는 본 발명의 바람직한 일 실시예에 따른 재구성 가능 하드웨어의 구성 메모리를 관리하는 장치를 나타내는 블록도이다.5 is a block diagram illustrating an apparatus for managing configuration memory of reconfigurable hardware in accordance with a preferred embodiment of the present invention.

도 5를 참조하면, 본 실시예에 따른 재구성 가능 하드웨어의 구성 메모리를 관리하는 장치는 메모리 관리부(510), 저장부(520)로 구성된다. Referring to FIG. 5, the apparatus for managing the configuration memory of the reconfigurable hardware according to the present embodiment includes a memory management unit 510 and a storage unit 520.

메모리 관리부(510)는 외부 메모리(530)에서 구성 메모리(540)로 하드웨어 구성정보를 전송할 때, 구성 메모리(540)를 구성하는 슬롯들의 상태를 고려하여 슬롯들 중 적어도 하나 이상의 슬롯을 결정한다. 적어도 하나 이상의 슬롯을 결정하는 방법은 다음과 같다. The memory management unit 510 determines at least one slot among the slots in consideration of the state of slots constituting the configuration memory 540 when the hardware configuration information is transmitted from the external memory 530 to the configuration memory 540. [ A method for determining at least one slot is as follows.

메모리 관리부(510)는 구성 메모리(540)를 구성하는 슬롯들 중에서 무효 상태인 슬롯을 우선적으로 선택하여 결정한다. 무효 상태란 구성 메모리(410)의 슬롯과 외부 메모리(400)의 저장영역 간에 매핑되어 있지 않은 것을 의미한다. 그러나 무효 상태인 슬롯이 없거나 무효 상태에 있는 슬롯의 크기보다 하드웨어 구성정보의 크기가 큰 경우에는 유효 상태인 슬롯을 더 포함하여 선택한다. 유효 상태란 구성 메모리(410)의 슬롯과 외부 메모리(400)의 저장영역 간에 매핑되어 있는 것을 의미한다.The memory management unit 510 preferentially selects and determines the invalid slot among the slots constituting the configuration memory 540. [ The invalid state means that the slot of the configuration memory 410 and the storage area of the external memory 400 are not mapped. However, if there is no invalid slot or the size of the hardware configuration information is larger than the slot size in the invalid state, the slot including the valid slot is further selected. The valid state means that a slot of the configuration memory 410 is mapped to a storage area of the external memory 400. [

메모리 관리부(510)는 코드를 실행한 결과로써 코드들로부터 호출받은 명령어들을 수행한다. 메모리 관리부(510)가 수행하는 명령어는 도 7를 참조하여 살펴 보기로 한다.The memory management unit 510 executes the commands received from the codes as a result of executing the code. The commands executed by the memory management unit 510 will be described with reference to FIG.

저장부(520)는 외부 메모리(530)를 구성하는 저장영역에 대한 정보와 구성 메모리(540)를 구성하는 슬롯에 대한 정보를 저장한다. 저장영역에 대한 정보는 저장영역에 매핑된 슬롯의 상태 정보, 매핑된 슬롯의 인덱스 정보, 하드웨어 구성정보의 크기를 포함하고, 슬롯에 대한 정보는 슬롯의 상태 정보, 매핑된 저장영역의 인덱스 정보를 포함하며, 저장영역에 대한 정보와 슬롯에 대한 정보는 테이블로 작성된다. 이에 대해서는 도 6에서 상세히 살펴보기로 한다.The storage unit 520 stores information on a storage area constituting the external memory 530 and information on a slot constituting the configuration memory 540. The information on the storage area includes the status information of the slot mapped to the storage area, the index information of the mapped slot, and the size of the hardware configuration information. The information on the slot includes the status information of the slot, And the information on the storage area and the information on the slot are created in a table. This will be described in detail with reference to FIG.

구성 메모리(540)는 외부 메모리(530)에 저장되어 있는 하드웨어 구성정보를 수신하여 저장한다. 구성 메모리는 복수의 슬롯들로 구성되어있으며, 슬롯들은 각각 구성 메모리(540)의 저장영역을 의미한다. 또한 슬롯들 각각은 외부 메모리(530)의 저장영역과 매핑된다.The configuration memory 540 receives and stores hardware configuration information stored in the external memory 530. The configuration memory includes a plurality of slots, and each of the slots represents a storage area of the configuration memory 540. Each of the slots is also mapped to a storage area of the external memory 530. [

하드웨어 재구성부(550)는 본 실시예에 따른 재구성 가능 하드웨어의 구성 메모리를 관리하는 장치의 구성 메모리(540)로부터 수신한 하드웨어 구성정보를 이용하여 하드웨어를 재구성한다. 하드웨어 재구성부(560)는 FPGA 또는 CGA일 수 있다.The hardware reconfiguration unit 550 reconfigures the hardware using the hardware configuration information received from the configuration memory 540 of the device managing the configuration memory of the reconfigurable hardware according to the present embodiment. The hardware reconfiguration unit 560 may be an FPGA or a CGA.

도 6은 도 5에 도시된 저장부(520)에 저장되는 외부 메모리 테이블과 구성 메모리 테이블의 일 실시예를 나타내는 도면이다. 도 5와 도 6을 참조하여 외부 메모리 테이블과 구성 메모리 테이블을 설명하기로 한다. 도 6(a)는 외부 메모리 테이블을 나타내고, 도 6(b)는 구성 메모리 테이블을 나타낸다.FIG. 6 is a diagram showing an embodiment of an external memory table and a configuration memory table stored in the storage unit 520 shown in FIG. The external memory table and the configuration memory table will be described with reference to FIGS. 5 and 6. FIG. 6 (a) shows an external memory table, and Fig. 6 (b) shows a configuration memory table.

도 6(a)를 참조하면, 외부 메모리 테이블은 저장영역의 번호, 상태 정보, 슬 롯의 인덱스 정보, 및 하드웨어 구성정보의 크기를 포함한다. Referring to FIG. 6A, the external memory table includes a storage area number, state information, index information of a slot, and size of hardware configuration information.

저장영역의 번호는 외부 메모리를 구성하는 복수의 저장영역들을 구분하기 위해 각 저장영역마다 할당된 것이다.The number of the storage area is allocated to each storage area to distinguish the plurality of storage areas constituting the external memory.

상태 정보는 외부 메모리(530)의 저장영역에 대응하는 구성 메모리(540)의 슬롯의 상태를 나타낸다. 구성 메모리(540)의 슬롯의 상태는 무효(Invalid), 로딩(Loading), 유효(Valid), 독점적 로딩(Ex_loading), 독점적 유효(Exclusive)로 나누어진다.The state information indicates the state of the slot of the configuration memory 540 corresponding to the storage area of the external memory 530. The state of the slot in the configuration memory 540 is divided into invalid, loading, valid, exclusive loading (Ex_loading), and exclusive (Exclusive).

슬롯의 상태가 무효(Invalid) 상태인 경우에는 슬롯에 저장된 하드웨어 구성정보들이 유효한 하드웨어 구성정보가 아닌 상태로서, 구성 메모리(410)의 슬롯과 외부 메모리(400)의 저장영역 간에 매핑되어 있지 않은 상태이다. 슬롯의 상태가 로딩(Loading) 상태인 경우에는 외부 메모리(530)의 저장영역에 저장된 하드웨어 구성정보를 구성 메모리(540)의 슬롯으로 전송 중인 것을 나타낸다. 슬롯의 상태가 유효(Valid) 상태인 경우에는 구성 메모리(410)의 슬롯과 외부 메모리(400)의 저장영역 간에 매핑되어 있는 상태이고, 슬롯에 저장된 하드웨어 구성정보를 이용하여 하드웨어를 재구성할 수 있음을 의미한다.When the slot is in an invalid state, the hardware configuration information stored in the slot is not valid hardware configuration information, and the slot is not mapped between the slot of the configuration memory 410 and the storage area of the external memory 400 to be. And indicates that the hardware configuration information stored in the storage area of the external memory 530 is being transferred to the slot of the configuration memory 540 when the slot is in a loading state. If the slot is in the valid state, it is mapped between the slot of the configuration memory 410 and the storage area of the external memory 400, and hardware can be reconfigured using the hardware configuration information stored in the slot .

슬롯의 상태가 독점적 로딩(Ex_loading) 상태인 경우에는 외부 메모리(530)의 저장영역에 있는 하드웨어 구성정보가 구성 메모리(540)의 슬롯으로 전송 중인 것을 나타내는 것으로, 특히 독점적 로딩 상태에 있는 슬롯이 매핑되어 있는 저장영역이 아닌 다른 저장영역으로는 매핑되지 않는 것을 나타낸다. 슬롯의 상태가 독점적 유효(Exclusive) 상태인 경우에는 독점적 유효 상태에 있는 구성 메모리(540) 의 슬롯이 매핑되어 있는 저장영역이 아닌 다른 저장영역과는 독점적 유효 상태에 있는 슬롯이 매핑되지 않도록 하면서, 상기 독점적 유효 상태에 있는 슬롯에 하드웨어를 재구성할 수 있는 하드웨어 구성정보를 저장하고 있음을 나타낸다.When the state of the slot is exclusively loaded (Ex_loading), it indicates that the hardware configuration information in the storage area of the external memory 530 is being transferred to the slot of the configuration memory 540. In particular, It is not mapped to a storage area other than the storage area in which the data is stored. In a case where the state of the slot is exclusively valid, a slot in the exclusively valid state is not mapped to a slot other than the storage area to which the slot of the configuration memory 540 in the exclusively valid state is mapped, Indicates that the hardware configuration information capable of reconfiguring the hardware is stored in the slot in the exclusively valid state.

슬롯의 인덱스 정보는 외부 메모리(510)의 저장영역의 번호에 대응하여 매핑되어 있는 구성 메모리(540)의 슬롯을 나타내는 인덱스이다.The index information of the slot is an index indicating a slot of the configuration memory 540 mapped to the number of the storage area of the external memory 510.

크기는 외부 메모리(510)의 저장영역에 저장되어 있는 하드웨어 구성정보의 크기를 나타내는 것이다. 하드웨어 구성정보의 크기는 하드웨어 구성정보가 저장되어 있는 외부 메모리의 저장영역의 갯수로 나타낸다.The size indicates the size of the hardware configuration information stored in the storage area of the external memory 510. The size of the hardware configuration information indicates the number of storage areas of the external memory in which the hardware configuration information is stored.

도 6(b)를 참조하면, 구성 메모리 테이블은 슬롯별로 슬롯의 번호, 상태 정보, 및 저장영역의 인덱스 정보를 포함한다. Referring to FIG. 6 (b), the configuration memory table includes slot number, status information, and index information of the storage area for each slot.

슬롯의 번호는 구성 메모리를 구성하는 복수의 저장영역들인 복수의 슬롯들을 구분하기 위해 각 슬롯마다 할당된 것이다.The number of the slots is allocated for each slot to distinguish a plurality of slots, which are a plurality of storage areas constituting the configuration memory.

상태 정보는 구성 메모리(540)의 슬롯의 상태를 나타낸다. 저장영역의 상태는 무효(Invalid), 로딩(Loading), 유효(Valid), 독점적 로딩(Ex_loading), 독점적 유효(Exclusive)로 나누어진다. 외부 메모리 테이블의 대응하는 상태 정보와 같은 값을 가지고, 의미하는 바도 외부 메모리 테이블의 상태 정보와 동일하다.The state information indicates the state of the slot in the configuration memory 540. The state of the storage area is divided into invalid, loading, valid, exclusive loading (Ex_loading), and exclusive (Exclusive). Has the same value as the corresponding status information of the external memory table, and the meaning is the same as the status information of the external memory table.

저장영역의 인덱스 정보는 구성 메모리(540)의 슬롯이 매핑되어 있는 외부 메모리(530)의 저장영역을 나타내는 인덱스이다.The index information of the storage area is an index indicating a storage area of the external memory 530 to which a slot of the configuration memory 540 is mapped.

도 7은 저장영역 또는 슬롯의 상태 정보의 실시예들과 상태 간의 천이도를 나타낸 도면이다. 도 5와 도 7을 참조하여, 명령어를 이용한 상태 간 천이 방법을 설명하기로 한다.7 is a diagram illustrating a transition between embodiments of state information of a storage area or a slot and states. Referring to FIG. 5 and FIG. 7, a transition method between states using an instruction will be described.

도 7에 도시된 무효 상태, 로딩 상태, 유효 상태, 독점적 로딩 상태, 및 독점적 유효 상태는 도 6에 도시된 외부 메모리 테이블 및 구성 메모리 테이블의 상태정보를 메모리 관리부가 변경함으로써, 상태 간 천이가 가능하다. 저장 영역 또는 슬롯의 초기 상태는 무효(Invalid) 상태이며, 수행하는 명령어에 따라 다른 상태로 변하게 된다.The invalid state, the loaded state, the valid state, the exclusive loading state, and the exclusive valid state shown in FIG. 7 are changed by the memory management unit in the state of the external memory table and the constituent memory table shown in FIG. 6, Do. The initial state of the storage area or slot is in an invalid state and changes to a different state depending on the command to be executed.

재구성 가능 하드웨어의 구성 메모리를 관리하는 장치는 슬롯의 상태가 무효인 상태에서 프리펫치(Prefetch) 명령어를 수행하면, 해당 슬롯과 저장영역의 외부 메모리 테이블과 구성 메모리 테이블의 상태 정보를 로딩 상태로 바꾸고, 외부 메모리(530)의 저장영역에 있는 하드웨어 구성정보를 구성 메모리(540)의 슬롯으로 전송한다. When the prefetch command is executed in a state where the slot status is invalid, the device managing the configuration memory of the reconfigurable hardware changes the status information of the external memory table and the configuration memory table of the corresponding slot and storage area to the loading state , And transmits the hardware configuration information in the storage area of the external memory 530 to the slot of the configuration memory 540.

재구성 가능 하드웨어의 구성 메모리를 관리하는 장치는 슬롯의 상태가 로딩 상태에서 프리펫치(Prefetch) 명령어의 수행이 완료되면, 해당 슬롯과 저장영역의 외부 메모리 테이블과 구성 메모리 테이블의 상태 정보를 유효 상태로 바꾼다.When the prefetch command is completed while the slot is in the loaded state, the apparatus for managing the configuration memory of the reconfigurable hardware sets the status information of the external memory table and the configuration memory table of the slot and the storage area to the valid state Change.

재구성 가능 하드웨어의 구성 메모리를 관리하는 장치는 슬롯의 상태가 유효 상태에서 잠금(Lock) 명령어를 수행하면, 해당 슬롯과 저장영역의 외부 메모리 테이블과 구성 메모리 테이블의 상태 정보를 독점적 유효(Exclusive) 상태로 바꾸고, 슬롯의 상태가 로딩 상태에서 잠금(Lock) 명령어를 수행하면, 해당 슬롯과 저장영역의 외부 메모리 테이블과 구성 메모리 테이블의 상태 정보를 독점적 로딩(Ex_loading) 상태로 바꾼다.When a device that manages the configuration memory of the reconfigurable hardware performs a lock command in the valid state of the slot, the state information of the external memory table and the configuration memory table of the corresponding slot and the storage area is exclusively used , And when a lock command is executed while the slot is in the loaded state, the status information of the external memory table and the configuration memory table of the corresponding slot and storage area is changed to the exclusive loading state (Ex_loading).

재구성 가능 하드웨어의 구성 메모리를 관리하는 장치는 슬롯의 상태가 독점적 로딩(Ex_loading) 상태에서 프리펫치(Prefetch) 명령어의 수행이 완료되면, 해당 슬롯과 저장영역의 외부 메모리 테이블과 구성 메모리 테이블의 상태 정보를 독점적 유효(Exclusive) 상태로 바꾼다.When a prefetch command is completed in a state in which the state of the slot is exclusively loaded (Ex_loading), the apparatus for managing the configuration memory of the reconfigurable hardware updates the state information of the external memory table and the configuration memory table To an exclusive state (Exclusive).

재구성 가능 하드웨어의 구성 메모리를 관리하는 장치는 슬롯의 상태가 독점적 유효 상태에서 풀림(Unlock) 명령어를 수행하면, 해당 슬롯과 저장영역의 외부 메모리 테이블과 구성 메모리 테이블의 상태 정보를 유효 상태(Valid)로 바꾸고, 독점적 로딩(Ex_loading) 상태에서 풀림(Unlock) 명령어를 수행하면, 해당 슬롯과 저장영역의 외부 메모리 테이블과 구성 메모리 테이블의 상태 정보를 로딩(Loading) 상태로 바꾼다.The apparatus for managing the configuration memory of the reconfigurable hardware is configured to validate the state information of the external memory table and the configuration memory table of the corresponding slot and the storage area when the slot state is in the exclusive valid state, And changes the status information of the external memory table and the configuration memory table of the corresponding slot and the storage area to the loading state when the unlock command is executed in the exclusive loading state (Ex_loading).

재구성 가능 하드웨어의 구성 메모리를 관리하는 장치는 슬롯의 상태가 유효(Valid) 상태 또는 독점적 유효(Exclusive) 상태에서 실행(Execute) 명령어 수행이 가능하고, 슬롯의 상태가 유효 상태 또는 독점적 유효 상태에서 무효화 명령어를 수행하면, 해당 슬롯과 저장영역의 외부 메모리 테이블과 구성 메모리 테이블의 상태 정보를 무효(Invalid) 상태로 바꾼다.A device that manages the configuration memory of the reconfigurable hardware is capable of executing an instruction in a valid state or an exclusive state of a slot and can invalidate the state of the slot in the valid state or the exclusive valid state When the instruction is executed, the status information of the external memory table and the configuration memory table of the corresponding slot and storage area is changed to the invalid state.

도 8은 본 발명에 따른 프리펫치(Prefetch) 명령어를 이용하여 재구성 가능 하드웨어의 구성 메모리를 관리하는 방법을 나타내는 흐름도이다. 도 5와 도 8을 이용하여 프리펫치(Prefetch) 명령어를 이용한 재구성 가능 하드웨어의 구성 메모리를 관리하는 방법을 살펴보기로 한다.8 is a flowchart illustrating a method of managing a configuration memory of a reconfigurable hardware using a prefetch command according to the present invention. 5 and 8, a method of managing a configuration memory of reconfigurable hardware using a prefetch command will be described.

800 단계에서 구성 메모리를 관리하는 장치는 외부 메모리(530)의 적어도 하 나 이상의 저장영역에 저장된 하드웨어 구성정보에 대하여 구성 메모리(540)의 슬롯들 중 무효 상태에 있는 적어도 하나 이상의 슬롯을 할당한다.The apparatus for managing the configuration memory allocates at least one slot in the invalid memory of the configuration memory 540 to the hardware configuration information stored in at least one or more storage areas of the external memory 530. [

810 단계에서 구성 메모리를 관리하는 장치는 무효 상태의 슬롯의 할당이 이루어진 경우에는 860 단계로 진행하고, 무효 상태의 슬롯의 할당이 이루어지지 않은 경우에는 820 단계로 진행한다.In step 810, the device managing the configuration memory proceeds to step 860 if the slot in the invalid state is allocated, and proceeds to step 820 if the slot in the invalid state is not allocated.

820 단계에서 구성 메모리를 관리하는 장치는 무효 상태의 슬롯과 유효 상태의 슬롯을 모두 고려하여 적어도 하나 이상의 슬롯을 할당한다. 슬롯을 할당함에 있어서, 우선적으로는 무효 상태의 슬롯을 할당하고, 무효 상태의 슬롯이 없거나 하드웨어 구성정보의 크기가 무효 상태의 슬롯보다 큰 경우에는 유효 상태의 슬롯을 할당한다. 유효 상태의 슬롯을 할당 시에는 소정의 기준에 따라 할당할 수 있을 것이다. 예를 들어, 소정의 기준은 슬롯에 저장된 하드웨어 구성정보의 이용 횟수가 가장 적은 슬롯을 우선적으로 선택할 수도 있고, 또는 랜덤(random)하게 선택할 수도 있다.In step 820, the apparatus for managing the configuration memory allocates at least one slot in consideration of both the slot in the invalid state and the slot in the valid state. In allocating a slot, a slot in an invalid state is preferentially allocated. In a case where there is no invalid slot or the size of the hardware configuration information is larger than a slot in an invalid state, a slot in a valid state is allocated. When a slot in the valid state is allocated, it can be allocated according to a predetermined criterion. For example, the predetermined criterion may preferentially select a slot having the smallest number of times of use of the hardware configuration information stored in the slot, or may randomly select the slot.

830 단계에서 구성 메모리를 관리하는 장치는 슬롯의 할당이 완료된 경우에는 840 단계로 진행하고, 슬롯의 할당이 완료되지 않은 경우에는 880 단계로 진행한 후, 에러값을 반환한다.If the allocation of slots is completed, the apparatus for managing the configuration memory in step 830 proceeds to step 840, and if the allocation of slots is not completed, the apparatus proceeds to step 880 and returns an error value.

840 단계에서 구성 메모리를 관리하는 장치는 820 단계에서 할당된 슬롯들 중 유효 상태의 슬롯을 무효 상태로 바꾼다. 만일 유효 상태의 슬롯이 없는 경우에는 840 단계를 수행하지 않는다.The device managing the configuration memory in step 840 changes the slot of the valid state among the slots allocated in step 820 to the invalid state. If there is no valid slot, step 840 is not performed.

850 단계에서 구성 메모리를 관리하는 장치는 외부 메모리(530)의 저장영역 과 820 단계에서 할당된 슬롯 간의 매핑 정보를 저장부(520)에 저장한다. 매핑 정보란 도 6을 참조하면, 외부 메모리 테이블의 슬롯의 인덱스 정보와 구성 메모리 테이블의 저장영역의 인덱스 정보를 말하는 것으로, 하드웨어 구성정보를 수신한 슬롯이 어느 저장영역으로부터 수신했는지 또는 저장영역의 하드웨어 구성정보를 어느 슬롯으로 전송했는지를 알 수 있는 정보이다.The apparatus for managing the configuration memory in step 850 stores the mapping information between the storage area of the external memory 530 and the slot allocated in step 820 in the storage unit 520. Referring to FIG. 6, the mapping information refers to the index information of the slot of the external memory table and the index information of the storage area of the configuration memory table. It is possible to determine from which storage area the slot received the hardware configuration information is received, And information on which slot the configuration information has been transmitted.

860 단계에서 구성 메모리를 관리하는 장치는 외부 메모리(530)의 저장영역에 저장된 하드웨어 구성정보를 820 단계에서 할당된 구성 메모리(540)의 슬롯으로 전송한다.The device managing the configuration memory in step 860 transfers the hardware configuration information stored in the storage area of the external memory 530 to the slot of the configuration memory 540 allocated in step 820. [

870 단계에서 구성 메모리를 관리하는 장치는 저장부(520)에 저장된 저장영역과 슬롯의 상태 정보를 로딩 상태로 변경한다.In step 870, the device managing the configuration memory changes the state of the storage area and the slot stored in the storage unit 520 to the loading state.

도 9는 본 발명에 따른 프리펫치(Prefetch) 명령어 수행이 완료된 경우 구성 메모리를 관리하는 방법을 나타내는 흐름도이다. 도 5와 도 9를 이용하여 프리펫치(Prefetch) 명령어 수행이 완료된 경우 구성 메모리를 관리하는 방법을 살펴보기로 한다.9 is a flowchart illustrating a method of managing a configuration memory when a prefetch command according to the present invention is completed. A method of managing the configuration memory when the prefetch command execution is completed will be described with reference to FIGS. 5 and 9. FIG.

900 단계에서 구성 메모리를 관리하는 장치는 외부 메모리(530)의 저장영역으로부터 구성 메모리(540)의 슬롯으로 하드웨어 구성정보의 전송이 완료되었는지 판단하고 하드웨어 구성정보의 전송이 완료될 때까지 대기한다.The device managing the configuration memory in step 900 determines whether the transfer of the hardware configuration information from the storage area of the external memory 530 to the slot of the configuration memory 540 is completed and waits until the transfer of the hardware configuration information is completed.

910 단계에서 구성 메모리를 관리하는 장치는 900 단계에서 하드웨어 구성정보의 전송이 완료되었다고 판단하면, 저장부(520)에 저장되어 있는 저장영역과 슬롯의 상태 정보를 유효 상태로 변경한다.If it is determined in step 900 that the transmission of the hardware configuration information is completed, the apparatus for managing the configuration memory in step 910 changes the status information of the storage area and the slot stored in the storage unit 520 to the valid state.

도 10은 본 발명에 따른 실행(Execute) 명령어를 이용하여 구성 메모리를 관리하는 방법을 나타내는 흐름도이다. 도 5와 도 10을 이용하여 실행(Execute) 명령어를 이용한 구성 메모리를 관리하는 방법을 살펴보기로 한다.10 is a flowchart illustrating a method of managing a configuration memory using Execute instructions according to the present invention. A method of managing a configuration memory using an execution command will be described with reference to FIGS. 5 and 10. FIG.

1000 단계에서 구성 메모리를 관리하는 장치는 저장부(520)에 저장되어 있는 외부 메모리 테이블과 구성 메모리 테이블로부터 슬롯의 상태가 무효 상태인지 판단하고, 그 결과 슬롯의 상태가 무효 상태이면 1010 단계로 진행하고, 슬롯의 상태가 무효 상태가 아니면 1020 단계로 진행한다.In operation 1000, the apparatus managing the configuration memory determines whether the state of the slot is invalid from the external memory table and the configuration memory table stored in the storage unit 520. If the state of the slot is invalid, the apparatus proceeds to operation 1010 And if the state of the slot is not invalid, the process proceeds to step 1020.

1010 단계에서 구성 메모리를 관리하는 장치는 프리펫치(Prefetch) 명령어를 수행한다. 하드웨어 재구성 가능한 시스템이 프리펫치 명령어를 수행하게 되면, 슬롯의 상태가 무효 상태에서 로딩 상태, 유효 상태, 독점적 로딩 상태, 독점적 유효 상태 중 어느 하나로 변경된다.In operation 1010, the apparatus for managing the configuration memory executes a prefetch command. When a hardware reconfigurable system performs a prefetch command, the slot state is changed from invalid to either a loading state, a valid state, a proprietary loading state, or a proprietary valid state.

1020 단계에서 구성 메모리를 관리하는 장치는 저장부(520)에 저장되어 있는 외부 메모리 테이블과 구성 메모리 테이블로부터 실행 명령어의 대상이 되는 슬롯의 상태가 유효 상태 또는 독점적 유효 상태 중 어느 하나에 해당하는지 판단하고, 그 결과 슬롯의 상태가 유효 상태 또는 독점적 유효 상태 중 어느 하나의 상태에 해당하는 경우에는 1060 단계로 진행하고, 슬롯의 상태가 유효 상태 또는 독점적 유효 상태 어디에도 해당하지 않으면, 1030 단계로 진행한다.In step 1020, the apparatus for managing the configuration memory determines whether the state of the slot to be the execution target of the external memory table stored in the storage unit 520 and the configuration memory table corresponds to the valid state or the exclusive valid state If the state of the slot corresponds to either the valid state or the exclusive valid state, the process proceeds to step 1060. If the slot state does not correspond to the valid state or the exclusive valid state, the process proceeds to step 1030 .

1030 단계에서 구성 메모리를 관리하는 장치는 저장부(520)에 저장되어 있는 외부 메모리 테이블과 구성 메모리 테이블로부터 실행 명령어의 대상이 되는 슬롯의 상태가 로딩 상태 또는 독점적 로딩 상태 중 어느 하나에 해당하는지 판단하고, 그 결과 슬롯의 상태가 로딩 상태 또는 독점적 로딩 상태 중 어느 하나의 상태에 해당하는 경우에는 1040 단계로 진행하고, 슬롯의 상태가 로딩 상태 또는 독점적 로딩 상태 어디에도 해당하지 않으면, 1070 단계로 진행한다.In step 1030, the device managing the configuration memory determines whether the state of the slot, which is the target of the execution command, is in the loading state or the exclusive loading state from the external memory table and the configuration memory table stored in the storage unit 520 If it is determined that the state of the slot corresponds to either the loading state or the exclusive loading state, the process proceeds to step 1040. If the state of the slot does not correspond to either the loading state or the exclusive loading state, the process proceeds to step 1070 .

1040 단계에서 구성 메모리를 관리하는 장치는 외부 메모리(530)의 저장영역으로부터 구성 메모리(540)의 슬롯으로 하드웨어 구성정보의 전송이 완료되었는지 판단하고, 하드웨어 구성정보의 전송이 완료될 때까지 대기한다.In step 1040, the device managing the configuration memory determines whether the transfer of the hardware configuration information from the storage area of the external memory 530 to the slot of the configuration memory 540 is completed, and waits until the transfer of the hardware configuration information is completed .

1050 단계에서 구성 메모리를 관리하는 장치는 저장부(520)에 저장되어 있는 외부 메모리 테이블과 구성 메모리 테이블로부터 판단한 결과, 구성 메모리(540)의 슬롯의 상태가 로딩 상태인 경우에는 슬롯의 상태를 유효 상태로 변경하고, 독점적 로딩 상태인 경우에는 슬롯의 상태를 독점적 유효 상태로 변경한다.If the state of the slot of the configuration memory 540 is the loading state, the apparatus managing the configuration memory in step 1050 determines that the state of the slot is valid, as a result of the determination from the external memory table and the configuration memory table stored in the storage unit 520 State, and changes the state of the slot to the exclusive valid state in the exclusive loading state.

1060 단계에서 하드웨어 재구성 가능 시스템은 실행 명령어의 대상이 되는 슬롯의 상태가 유효 상태 또는 독점적 유효 상태로 변경된 경우, 슬롯에 저장되어 있는 하드웨어 구성정보를 이용하여 재구성 가능한 시스템의 하드웨어를 재구성한다.In step 1060, the hardware reconfigurable system reconfigures the hardware of the reconfigurable system using the hardware configuration information stored in the slot when the slot of the execution command is changed to the valid state or the exclusive valid state.

도 11은 본 발명에 따른 무효화(Invalidate) 명령어를 이용하여 구성 메모리를 관리하는 방법을 나타내는 흐름도이다. 도 5와 도 11을 이용하여 무효화(Invalidate) 명령어를 이용한 구성 메모리를 관리하는 방법을 살펴보기로 한다.11 is a flowchart illustrating a method for managing a configuration memory using an invalidate instruction according to the present invention. A method of managing the configuration memory using the invalidate command will be described with reference to FIGS. 5 and 11. FIG.

1100 단계에서 구성 메모리를 관리하는 장치는 무효화 명령어의 대상이 되는 구성 메모리(540)의 슬롯의 상태를 무효 상태로 변경한다. 무효화 명령어를 이용하여 슬롯의 상태를 무효 상태로 변경함으로써, 해당 슬롯에 저장된 하드웨어 구성정 보들이 유효한 하드웨어 구성정보가 아닌 상태가 되고, 슬롯과 저장영역 간에 매핑이 되지 않은 상태가 된다. 구성 메모리를 관리하는 장치는 무효 상태의 슬롯에 그렇지 아니한 슬롯보다 우선적으로 하드웨어 구성정보를 입력할 수 있다.The device managing the configuration memory in step 1100 changes the state of the slot in the configuration memory 540, which is the object of the invalidation command, to the invalid state. By changing the state of the slot to the invalid state by using the invalidation command, the hardware configuration information stored in the corresponding slot becomes a state that is not valid hardware configuration information, and the state is not mapped between the slot and the storage area. The device managing the configuration memory may prefer to input hardware configuration information in a slot in an invalid state prior to a slot not in use.

도 12는 본 발명에 따른 잠금(Lock) 명령어를 이용하여 구성 메모리를 관리하는 방법을 나타내는 흐름도이다. 도 5와 도 12를 이용하여 잠금(Lock) 명령어를 이용한 구성 메모리를 관리하는 방법을 살펴보기로 한다.12 is a flowchart illustrating a method of managing a configuration memory using a lock command according to the present invention. A method of managing a configuration memory using a lock command will be described with reference to FIGS. 5 and 12. FIG.

1200 단계에서 구성 메모리를 관리하는 장치는 저장부(520)에 저장되어 있는 외부 메모리 테이블과 구성 메모리 테이블로부터 잠금 명령어의 대상이 되는 구성 메모리(540)의 슬롯의 상태가 로딩 상태인지 판단하고, 그 결과 슬롯의 상태가 로딩 상태가 아닌 경우에는 1210 단계로 진행하고, 슬롯의 상태가 로딩 상태인 경우에는 1230 단계로 진행한다.The device managing the configuration memory in step 1200 determines whether the state of the slot of the configuration memory 540 that is the object of the lock instruction is loaded from the external memory table and the configuration memory table stored in the storage unit 520, If the result of the slot is not the loading state, the process proceeds to step 1210. If the slot state is the loading state, the process proceeds to step 1230. [

1210 단계에서 구성 메모리를 관리하는 장치는 저장부(520)에 저장되어 있는 외부 메모리 테이블과 구성 메모리 테이블로부터 잠금 명령어의 대상이 되는 슬롯의 상태가 유효 상태인지 판단하고, 그 결과 슬롯의 상태가 유효 상태인 경우에는 1220 단계로 진행하고, 슬롯의 상태가 유효 상태가 아닌 경우에는 1240 단계로 진행한다.In step 1210, the device managing the configuration memory determines whether the state of the slot to be a lock instruction target is valid from the external memory table and the configuration memory table stored in the storage unit 520. As a result, The process proceeds to step 1220. If the state of the slot is not valid, the process proceeds to step 1240. [

1220 단계에서 구성 메모리를 관리하는 장치는 저장부(520)에 저장되어 있는 슬롯의 상태를 독점적 유효 상태로 변경한다.The device managing the configuration memory in step 1220 changes the state of the slot stored in the storage unit 520 to the exclusive valid state.

1230 단계에서 구성 메모리를 관리하는 장치는 저장부(520)에 저장되어 있는 슬롯의 상태를 독점적 로딩 상태로 변경한다.In step 1230, the device managing the configuration memory changes the state of the slot stored in the storage unit 520 to the exclusive loading state.

1240 단계에서 구성 메모리를 관리하는 장치는 에러값을 반환한다.The device managing the configuration memory in step 1240 returns an error value.

도 13은 본 발명에 따른 풀림(Unlock) 명령어를 이용하여 구성 메모리를 관리하는 방법을 나타내는 흐름도이다. 도 5와 도 13을 이용하여 풀림(Unlock) 명령어를 이용한 구성 메모리를 관리하는 방법을 살펴보기로 한다.13 is a flowchart illustrating a method of managing a configuration memory using a unlock command according to the present invention. A method of managing the configuration memory using the unlock command will be described with reference to FIG. 5 and FIG.

1300 단계에서 구성 메모리를 관리하는 장치는 저장부(520)에 저장되어 있는 외부 메모리 테이블과 구성 메모리 테이블로부터 풀림 명령어의 대상이 되는 구성 메모리(540)의 슬롯의 상태가 독점적 로딩 상태인지 판단하고, 그 결과 슬롯의 상태가 독점적 로딩 상태가 아닌 경우에는 1310 단계로 진행하고, 슬롯의 상태가 독점적 로딩 상태인 경우에는 1330 단계로 진행한다.The apparatus for managing the configuration memory in step 1300 determines whether the state of the slot of the configuration memory 540 to be a target of the release instruction from the external memory table and the configuration memory table stored in the storage unit 520 is the exclusive loading state, As a result, if the state of the slot is not exclusive, the process proceeds to step 1310. If the state of the slot is the exclusive state, the process proceeds to step 1330. [

1310 단계에서 구성 메모리를 관리하는 장치는 저장부(520)에 저장되어 있는 외부 메모리 테이블과 구성 메모리 테이블로부터 풀림 명령어의 대상이 되는 슬롯의 상태가 독점적 유효 상태인지 판단하고, 그 결과 슬롯의 상태가 독점적 유효 상태이면 1320 단계로 진행하고, 슬롯의 상태가 독점적 유효 상태가 아니라면 1340 단계로 진행한다.In step 1310, the apparatus managing the configuration memory determines whether the state of the slot to be the target of the release instruction is exclusively valid from the external memory table and the configuration memory table stored in the storage unit 520, If the state of the slot is not exclusively valid, the process proceeds to step 1340. Otherwise,

1320 단계에서 구성 메모리를 관리하는 장치는 저장부(520)에 저장되어 있는 슬롯의 상태를 유효 상태로 변경한다.In step 1320, the device managing the configuration memory changes the state of the slot stored in the storage unit 520 to the valid state.

1330 단계에서 구성 메모리를 관리하는 장치는 저장부(520)에 저장되어 있는 슬롯의 상태를 로딩 상태로 변경한다.In step 1330, the device managing the configuration memory changes the state of the slot stored in the storage unit 520 to the loading state.

1340 단계에서 구성 메모리를 관리하는 장치는 에러값을 반환한다.The device managing the configuration memory in step 1340 returns an error value.

이상에서 살펴본 바와 같은 하드웨어 재구성 가능 시스템을 이용한 또 다른 실시예를 살펴보기로 한다. 본 발명의 또 다른 실시예는 재구성 가능한 하드웨어의 구성을 바꿀 수 있는 하드웨어 구성 정보를 적어도 하나 이상을 포함하는 하나의 독립적인 기능단위인 태스크(task)가 복수 개 존재할 때, 본 실시예에 따른 하드웨어 재구성 가능 시스템을 이용하여 효과적으로 구성 메모리를 관리할 수 있도록 하는 실시예이다. 이하에서는 재구성 가능한 하드웨어를 이용하여 태스크 A와 태스크 B, 두 개의 태스크를 수행하는 경우를 예를 들어 설명하나, 둘 이상의 태스크가 포함된 경우에도 마찬가지로 생각할 수 있을 것이다.Another embodiment using the hardware reconfigurable system as described above will be described. In another embodiment of the present invention, when there are a plurality of tasks which are one independent functional unit including at least one hardware configuration information capable of changing the configuration of the reconfigurable hardware, So that the reconfigurable system can be used to effectively manage the configuration memory. Hereinafter, the case where two tasks, task A and task B, are performed using the reconfigurable hardware will be described by way of example, but the case where two or more tasks are included may be similarly considered.

태스크 A는 적어도 하나 이상의 하드웨어 구성정보 a1, a2, ....aN (N은 자연수)를 포함하고, 태스크 B도 적어도 하나 이상의 하드웨어 구성정보 b1, b2, ....bM (M은 자연수)를 포함하고 있다고 하기로 한다. 태스크 A와 태스크 B는 서로 독립적인 태스크일 수도 있으며, 서로 입출력을 주고 받는 의존적인 태스크일 수도 있다. 그런데 태스크 A, 태스크 B 각각의 하드웨어 구성정보들이 구성 메모리를 사용하여 하드웨어를 재구성하는데 사용될 때, 효율적인 구성 메모리 사용을 위해서는 태스크 A와 태스크 B 각각에 대응하는 구성 메모리를 사용 시간을 분배할 필요가 있다. 만일 태스크 A와 태스크 B가 서로 독립적인 태스크인 경우, 각 태스크에 대응하는 구성메모리(410) 또는 재구성 가능 하드웨어(460) 사용 시간을 계획(schedule)할 때, 태스크 A와 태스크 B 각각에 대응하는 시간은 균등하게 결정될 수도 있고, 각각 다르게 결정될 수도 있을 것이다. 한편, 만일 태스크 A와 태스크 B가 서로 의존적인 경우, 즉 태스크 A에 대응하는 출력이 태스크 B를 수행하는데 입력으로 사용되는 경우에는 태스크 A가 끝난 후 태스크 B를 수행하도록 태스크 각 각에 대응하는 시간이 결정될 수도 있다.The task A includes at least one or more hardware configuration information a1, a2, .... aN (N is a natural number), and the task B includes at least one hardware configuration information b1, b2, . ≪ / RTI > Task A and task B may be tasks that are independent of each other, or they may be dependent tasks that exchange input and output with each other. However, when the hardware configuration information of each of the task A and the task B is used for reconfiguring the hardware using the configuration memory, it is necessary to distribute the usage time of the configuration memory corresponding to the task A and the task B, respectively, . If task A and task B are independent tasks, when scheduling the use time of the reconfigurable hardware 460 or the configuration memory 410 corresponding to each task, The times may be determined equally or may be determined differently. On the other hand, if task A and task B depend on each other, that is, if the output corresponding to task A is used as an input to perform task B, the time corresponding to each task May be determined.

도 14A, 도 14B는 태스크 A와 태스크 B가 본 발명의 또 다른 일 실시예에 따라 수행될 경우의 흐름도를 도시한 것이다. 도 4를 참조하여 두 개의 태스크 A, B가 본 발명의 일 실시예에 따라 수행되는 과정을 살펴보기로 한다.14A and 14B show a flowchart when task A and task B are performed according to another embodiment of the present invention. Referring to FIG. 4, a process in which two tasks A and B are performed according to an embodiment of the present invention will be described.

1405 단계에서 구성 메모리를 관리하는 장치는 태스크 A가 포함하고 있는 하드웨어 구성정보 a1, a2, ....aN를 외부 메모리(400)로부터 구성 메모리(410)로 도 8 내지 도 13에 도시된 방법에 따라 저장한다. In step 1405, the device managing the configuration memory accesses the hardware configuration information a1, a2, .... aN included in the task A from the external memory 400 to the configuration memory 410 by the method shown in Figures 8 to 13 .

1410 단계에서 구성 메모리를 관리하는 장치는 구성 메모리(410)에 저장된 하드웨어 구성 정보들을 이용하여 재구성 가능 하드웨어(460)를 재구성한다.The device managing the configuration memory in step 1410 reconfigures the reconfigurable hardware 460 using the hardware configuration information stored in the configuration memory 410. [

1415 단계에서 구성 메모리를 관리하는 장치는 태스크 A를 수행할 시간을 설정한다.In step 1415, the device managing the configuration memory sets a time for performing the task A. [

1420 단계에서 구성 메모리를 관리하는 장치는 태스크 A에 설정된 시간이 경과하였는지 판단한다. 이 판단 결과 태스크 A에 설정된 시간이 경과하지 않은 경우에는 경과시까지 대기하고, 태스크 A에 설정된 시간이 경과하면 1425 단계로 진행한다.In step 1420, the device managing the configuration memory determines whether the time set in the task A has elapsed. If it is determined that the time set in the task A has not elapsed, the process waits until the elapsed time. If the time set in the task A has elapsed, the process proceeds to step 1425.

1425 단계에서 구성 메모리를 관리하는 장치는 태스크 B의 수행이 종료되었는지를 판단한다. 태스크의 수행이 종료되었다는 의미는 태스크를 실현하기 위해 재구성 가능 하드웨어(460)를 이용하지 않는다는 의미이다. 태스크 B의 수행이 종료되지 않은 경우에는 1430 단계로 진행하여 태스크 B를 수행한다. 한편, 태스크 B의 수행이 종료된 경우에는 1460 단계로 진행하여 태스크 A의 수행이 종료되었는지 여부를 판단한다.In step 1425, the device managing the configuration memory determines whether the execution of the task B is terminated. The termination of the task execution means that the reconfigurable hardware 460 is not used to realize the task. If the execution of the task B is not terminated, the process proceeds to step 1430 to perform the task B. On the other hand, if the execution of the task B is terminated, the process proceeds to step 1460 and it is determined whether the execution of the task A is terminated.

1430 단계에서 구성 메모리를 관리하는 장치는 외부 메모리(400)에 존재하는 태스크 B의 하드웨어 구성정보 b1, b2, .....bM을 구성 메모리(410)에 저장한다. 태스크 B의 하드웨어 구성정보를 구성 메모리(410)에 저장하기 위해서는 먼저 구성 메모리(440)를 구성하는 슬롯의 상태 정보를 무효 상태로 변경한다. 구성 메모리(440)를 구성하는 슬롯의 상태 정보를 무효 상태로 변경함으로써, 이미 슬롯에 저장되어 있는 태스크 A의 하드웨어 구성정보를 더 이상 사용되지 않도록 하고, 태스크 B의 하드웨어 구성정보를 저장할 수 있는 무효 상태의 슬롯을 확보하게 된다. 한편, 태스크 A의 하드웨어 구성정보들 중 일부가 태스크 B의 하드웨어 구성정보들 중 일부와 동일한 경우에는 태스크 A와 태스크 B의 하드웨어 구성정보 차이만을 새롭게 저장할 수도 있다.In step 1430, the device managing the configuration memory stores the hardware configuration information b1, b2, ..... bM of the task B existing in the external memory 400 in the configuration memory 410. [ In order to store the hardware configuration information of the task B in the configuration memory 410, the status information of the slot constituting the configuration memory 440 is changed to the invalid state. The hardware configuration information of the task A already stored in the slot can be prevented from being used any more by changing the state information of the slot constituting the configuration memory 440 to the invalid state and the invalidation of the hardware configuration information of the task B And the slot of the state is secured. On the other hand, if some of the hardware configuration information of the task A is the same as some of the hardware configuration information of the task B, only the difference between the hardware configuration information of the task A and the task B can be newly stored.

1435 단계에서 구성 메모리를 관리하는 장치는 구성 메모리(410)에 저장된 태스크 B의 하드웨어 구성정보를 재구성 가능 하드웨어(460)를 재구성하는데 사용한다.The device managing the configuration memory in step 1435 uses the hardware configuration information of task B stored in the configuration memory 410 to reconstruct the reconfigurable hardware 460. [

1440 단계에서 구성 메모리를 관리하는 장치는 태스크 B를 수행할 시간을 설정한다.In step 1440, the device managing the configuration memory sets a time for performing the task B. [

1445 단계에서 구성 메모리를 관리하는 장치는 태스크 B에 설정된 시간이 경과하였는지 판단한다. 이 판단 결과 태스크 B에 설정된 시간이 경과하지 않은 경우에는 경과시까지 대기하고, 태스크 B에 설정된 시간이 경과하면 1450 단계로 진행한다.In step 1445, the device managing the configuration memory determines whether the time set in the task B has elapsed. If it is determined that the time set in the task B has not elapsed, the process waits until the elapsed time. If the time set in the task B has elapsed, the process proceeds to step 1450.

1450 단계에서 구성 메모리를 관리하는 장치는 태스크 A와 태스크 B의 수행이 모두 종료되었는지를 판단한다. 태스크 A와 태스크 B를 수행하는 것이 더 이상 필요하지 않다면 종료하고, 태스크 A와 태스크 B 중 어느 하나라도 종료하지 않은 경우에는 1455 단계로 진행한다.In step 1450, the apparatus for managing the configuration memory determines whether the execution of the task A and the task B is completed. If it is determined that the task A and the task B are no longer needed, the process is terminated. If neither the task A nor the task B is terminated, the process proceeds to step 1455.

1455 단계에서 구성 메모리를 관리하는 장치는 태스크 A의 수행이 종료되었는지를 판단한다. 태스크 A의 수행이 종료되지 않았다고 판단되는 경우에는 1405 단계로 진행하여 태스크 A를 수행한다. 한편, 태스크 A의 수행이 종료되었다고 판단되는 경우에는 태스크 B의 수행이 종료되지 않은 것으로 판단되므로, 1440 단계로 진행하여 태스크 B를 수행할 시간을 설정한 후 태스크 B를 수행한다. 이때 이미 재구성 가능 하드웨어(460)는 태스크 B를 수행하도록 되어 있으므로, 별도의 하드웨어 재구성 절차는 불필요하다.In step 1455, the device managing the configuration memory determines whether the execution of the task A is terminated. If it is determined that the execution of the task A has not ended, the process proceeds to step 1405 and the task A is performed. On the other hand, if it is determined that the execution of the task A is completed, it is determined that the execution of the task B is not terminated. Therefore, the process proceeds to step 1440 to set the time to perform the task B, At this time, since the reconfigurable hardware 460 is already configured to perform the task B, a separate hardware reconfiguration procedure is unnecessary.

1460 단계에서 구성 메모리를 관리하는 장치는 1425 단계에서 태스크 B의 수행이 종료되었다고 판단되는 경우 태스크 A의 수행이 종료되었는지 여부를 판단한다. 이 판단 결과 태스크 A의 수행이 종료되지 않은 경우 1415 단계로 진행하여 태스 A를 수행할 시간을 설정한 후 태스크 A를 수행한다. 이때 이미 재구성 가능 하드웨어(460)는 태스크 A를 수행하도록 되어 있으므로, 별도의 하드웨어 재구성 절차는 불필요하다.If it is determined in step 1425 that the execution of the task B is terminated in step 1425, the apparatus for managing the configuration memory determines whether the execution of the task A is terminated. As a result of the determination, if the execution of task A is not terminated, the process proceeds to step 1415 to set a time for performing task A, and then task A is performed. At this time, since the reconfigurable hardware 460 is already configured to perform the task A, a separate hardware reconfiguration procedure is unnecessary.

이상 살펴본 본 발명의 일 실시예에 따른 구성 메모리를 관리하는 장치는 태스크 A를 재구성 가능 하드웨어(460)로 실현하게 되는 설정 시간이 지나면, 태스크 B로 재구성 가능 하드웨어(460)를 재구성한 후 태스크 B를 실현한다. 이후 마찬가 지로 태스크 B를 재구성 가능 하드웨어(460)로 실현하게 되는 설정 시간이 지나면 다시 태스크 A로 재구성 가능 하드웨어(460)를 재구성한 후 태스크 A를 실현한다. 태스크가 셋 이상인 경우에도 각 태스크 별로 시간 분배를 함으로써, 복수의 태스크가 존재하는 경우 하나의 재구성 가능 하드웨어(460)를 공유할 수 있다.In the apparatus for managing the configuration memory according to an embodiment of the present invention, after the set time for realizing the task A with the reconfigurable hardware 460, the reconfigurable hardware 460 is reconfigured to the task B, . Similarly, after the set time for realizing the task B with the reconfigurable hardware 460, the task A is reconfigured to the task A and the task A is realized. Even when the number of tasks is three or more, time sharing is performed for each task, so that one reconfigurable hardware 460 can be shared when a plurality of tasks exist.

결과적으로 복수의 하드웨어 구성정보들로 구성된 태스크가 복수 개 존재하는 경우 각각의 태스크가 구성메모리(410)와 재구성 가능 하드웨어(460)를 공유함으로써, 메모리를 효율적으로 사용할 수 있으며, 제어 흐름의 데이타 의존도가 높은 응용(application)이나 다중 태스크 응용 등의 동적인 환경에도 메모리 이용률을 높일 수 있는 효과가 있다. 또한 하드웨어 구성정보를 적재할 구성 메모리의 슬롯을 수행 중에 동적으로 결정함으로써, 슬롯 결정이 데이타의 종류, 크기 등에 의존적인 경우이거나 여러 프로그램이 동시에 구성 메모리를 이용할 경우, 구성 메모리의 슬롯 결정을 최적으로 할 수 있는 효과가 있다. 또한 본 발명의 일 실시예에 따르면, 구성 메모리의 슬롯의 상태를 나타내는 명령어와 슬롯의 상태를 변경할 수 있는 명령어를 제공함으로써, 사용자 API(application programming interface)를 통해서 구성 메모리를 관리하는 수단을 제공할 수 있다.As a result, when there are a plurality of tasks composed of a plurality of pieces of hardware configuration information, each task can efficiently use the memory by sharing the reconfigurable hardware 460 with the configuration memory 410, It is possible to increase the memory utilization rate even in a dynamic environment such as a high-application or multi-task application. In addition, when a slot of a configuration memory to be loaded with hardware configuration information is determined dynamically during execution, if the slot decision is dependent on the type and size of data, or when a plurality of programs use the configuration memory at the same time, There is an effect that can be done. According to an embodiment of the present invention, there is provided a method for managing a configuration memory through a user application programming interface (API) by providing an instruction word indicating a state of a slot in a configuration memory and an instruction for changing a state of a slot .

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이타의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예 를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.The above-described embodiments of the present invention can be embodied in a general-purpose digital computer that can be embodied as a program that can be executed by a computer and operates the program using a computer-readable recording medium. In addition, the structure of the data used in the above-described embodiments of the present invention can be recorded on a computer-readable recording medium through various means. The computer readable recording medium may be a magnetic storage medium such as a ROM, a floppy disk, a hard disk, etc., an optical reading medium such as a CD-ROM or a DVD and a carrier wave such as the Internet Lt; / RTI > transmission).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The present invention has been described with reference to the preferred embodiments. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.

도 1은 재구성 가능 하드웨어의 구성 메모리를 관리하는 방법 중 정적 할당 기술을 설명하기 위한 도면이다.1 is a diagram for explaining a static allocation technique among methods of managing configuration memories of reconfigurable hardware.

도 2는 재구성 가능 하드웨어의 구성 메모리를 관리하는 방법 중 메모리 오버레이 기술을 설명하기 위한 도면이다.2 is a diagram for explaining a memory overlay technique among methods of managing configuration memories of reconfigurable hardware.

도 3은 재구성 가능 하드웨어의 구성 메모리를 관리하는 방법 중 본 발명에 따른 동적 할당 메모리 관리방법을 설명하기 위한 도면이다.3 is a diagram for explaining a dynamic allocation memory management method according to the present invention among methods of managing configuration memories of reconfigurable hardware.

도 4는 하드웨어 재구성 가능한 시스템을 나타내는 구성도이다.Figure 4 is a block diagram illustrating a hardware reconfigurable system.

도 5는 본 발명의 바람직한 일 실시예에 따른 재구성 가능 하드웨어의 구성 메모리를 관리하는 장치를 나타내는 블록도이다.5 is a block diagram illustrating an apparatus for managing configuration memory of reconfigurable hardware in accordance with a preferred embodiment of the present invention.

도 6은 도 5에 도시된 저장부(520)에 저장되는 외부 메모리 테이블과 구성 메모리 테이블의 일 실시예를 나타내는 도면이다. FIG. 6 is a diagram showing an embodiment of an external memory table and a configuration memory table stored in the storage unit 520 shown in FIG.

도 7은 저장영역 또는 슬롯의 상태 정보의 실시예들과 상태 간의 천이도를 나타낸 도면이다.7 is a diagram illustrating a transition between embodiments of state information of a storage area or a slot and states.

도 8은 본 발명에 따른 프리펫치(Prefetch) 명령어를 이용하여 재구성 가능 하드웨어의 구성 메모리를 관리하는 방법을 나타내는 흐름도이다.8 is a flowchart illustrating a method of managing a configuration memory of a reconfigurable hardware using a prefetch command according to the present invention.

도 9는 본 발명에 따른 프리펫치(Prefetch) 명령어 수행이 완료된 경우 구성 메모리를 관리하는 방법을 나타내는 흐름도이다.9 is a flowchart illustrating a method of managing a configuration memory when a prefetch command according to the present invention is completed.

도 10은 본 발명에 따른 실행(Execute) 명령어를 이용하여 구성 메모리를 관리하는 방법을 나타내는 흐름도이다.10 is a flowchart illustrating a method of managing a configuration memory using Execute instructions according to the present invention.

도 11은 본 발명에 따른 무효화(Invalidate) 명령어를 이용하여 구성 메모리를 관리하는 방법을 나타내는 흐름도이다.11 is a flowchart illustrating a method for managing a configuration memory using an invalidate instruction according to the present invention.

도 12는 본 발명에 따른 잠금(Lock) 명령어를 이용하여 구성 메모리를 관리하는 방법을 나타내는 흐름도이다.12 is a flowchart illustrating a method of managing a configuration memory using a lock command according to the present invention.

도 13은 본 발명에 따른 풀림(Unlock) 명령어를 이용하여 구성 메모리를 관리하는 방법을 나타내는 흐름도이다.13 is a flowchart illustrating a method of managing a configuration memory using a unlock command according to the present invention.

도 14A, 도 14B는 태스크 A와 태스크 B가 본 발명의 또 다른 일 실시예에 따라 수행될 경우의 흐름도를 도시한 것이다.14A and 14B show a flowchart when task A and task B are performed according to another embodiment of the present invention.

Claims (18)

하드웨어 구성정보에 따라 하드웨어의 구성이 재구성되는 재구성 가능 하드웨어의 구성 메모리를 관리하는 방법에 있어서,A method for managing configuration memory of reconfigurable hardware in which configuration of hardware is reconfigured according to hardware configuration information, 상기 구성 메모리의 복수 개의 슬롯들 각각의 상태에 기초하여 상기 하드웨어 구성정보를 저장할 수 있는 적어도 하나의 슬롯을 결정하는 단계; 및Determining at least one slot capable of storing the hardware configuration information based on a state of each of a plurality of slots of the configuration memory; And 상기 하드웨어 구성정보를 저장할 수 있는 것으로 결정된 슬롯에 외부 메모리에 저장된 하드웨어 구성 정보를 저장하는 단계를 포함하고,Storing hardware configuration information stored in an external memory in a slot determined to be capable of storing the hardware configuration information, 상기 복수 개의 슬롯들 각각의 상태는,The status of each of the plurality of slots may include: 상기 구성 메모리의 슬롯과 상기 외부 메모리의 저장영역 간에 매핑되지 않은 상태인 무효 상태, 상기 구성 메모리의 슬롯과 상기 외부 메모리의 저장영역 간에 매핑되어 있는 상태인 유효 상태, 상기 외부 메모리의 저장영역에 저장된 하드웨어 구성정보를 상기 구성 메모리의 슬롯으로 전송 중인 상태인 로딩 상태, 상기 유효 상태에서 슬롯이 매핑되어 있는 저장 영역이 아닌 다른 저장영역으로는 매핑되지 않는 상태인 독점적 유효 상태 또는 상기 로딩 상태에서 슬롯이 매핑되어 있는 저장 영역이 아닌 다른 저장영역으로는 매핑되지 않는 상태인 독점적 로딩 상태 중 어느 하나의 상태인 것을 특징으로 하고,An invalid state in which a slot in the configuration memory is not mapped between a slot in the external memory and a storage area in the external memory, a valid state in which a slot in the configuration memory is mapped between a slot in the external memory and a storage area in the external memory, A hardware configuration information in a loading state in which the hardware configuration information is being transferred to a slot of the configuration memory; a monopoly valid state in which the mapping is not mapped to a storage area other than the storage area to which the slot is mapped in the valid state; And an exclusive loading state in which the storage area is not mapped to a storage area other than the mapped storage area. 상기 복수 개의 슬롯들 중 제 3 슬롯에 대한 잠금 명령어가 수신되면, 상기 제 3 슬롯의 상태를 독점적 로딩 상태 또는 독점적 유효 상태로 변경하는 것을 특징으로 하는 방법.And changing a state of the third slot to an exclusive loading state or an exclusive valid state when a lock command for a third slot among the plurality of slots is received. 제 1 항에 있어서,The method according to claim 1, 상기 슬롯을 결정하는 단계는 상기 슬롯들 각각의 상태가 상기 외부 메모리의 저장 영역들 각각에 매핑되어 있지 않은 무효 상태인지 여부를 확인하고, 상기 확인 결과에 기초하여 상기 하드웨어 구성정보를 저장할 수 있는 슬롯을 결정하는 것을 특징으로 하는 방법.Wherein the step of determining the slot includes checking whether a state of each of the slots is an invalid state that is not mapped to each of the storage areas of the external memory and storing the hardware configuration information in a slot ≪ / RTI > 제 2 항에 있어서,3. The method of claim 2, 상기 슬롯을 결정하는 단계는 상기 무효 상태인지 여부를 확인한 결과, 상기 확인된 무효 상태의 슬롯에 상기 하드웨어 구성정보를 모두 저장하지 못하는 경우 유효 상태에 있는 적어도 하나의 슬롯을 무효 상태의 슬롯으로 설정하는 것을 특징 으로 하는 방법.Wherein the step of determining the slot is to set at least one slot in a valid state as a slot in an invalid state when it is determined that the invalidated state is not satisfied and all the hardware configuration information can not be stored in the identified invalidated slot ≪ / RTI > 제 1 항에 있어서,The method according to claim 1, 상기 슬롯들 중 제 1 슬롯에 대한 프리펫치 명령어가 수신되면, 상기 제 1 슬롯의 상태를 상기 외부 메모리로부터 상기 하드웨어 구성정보를 수신 중인 로딩 상태로 변경하는 단계를 더 포함하는 것을 특징으로 하는 방법.Further comprising changing a state of the first slot from the external memory to a loading state in which the hardware configuration information is received when a prefetch command for the first one of the slots is received. 제 4 항에 있어서,5. The method of claim 4, 상기 제 1 슬롯에 대한 프리펫치 명령어의 수행이 완료되면, 상기 제 1 슬롯의 상태를 유효 상태로 변경하는 단계를 더 포함하는 단계를 더 포함하는 것을 특징으로 하는 방법.Further comprising changing the state of the first slot to a valid state upon completion of the prefetch command for the first slot. 제 1 항에 있어서,The method according to claim 1, 상기 슬롯들 중 제 2 슬롯에 대한 무효화 명령어가 수신되면, 상기 제 2 슬롯의 상태를 무효 상태로 변경하는 단계를 더 포함하는 것을 특징으로 하는 방법.Further comprising changing a state of the second slot to an invalid state when an invalidation instruction for a second slot of the slots is received. 삭제delete 제 1 항에 있어서,The method according to claim 1, 상기 슬롯들 중 제 4 슬롯에 대한 풀림 명령어가 수신되면, 상기 제 4 슬롯의 상태를 로딩 상태 또는 유효 상태로 변경하는 단계를 더 포함하는 것을 특징으로 하는 방법.Further comprising changing a state of the fourth slot to a loading state or a valid state when a release instruction for the fourth slot among the slots is received. 제 1 항에 있어서,The method according to claim 1, 상기 외부 메모리를 구성하는 저장영역에 대한 정보와 상기 구성 메모리를 구성하는 슬롯에 대한 정보를 저장하는 단계를 더 포함하고,Further comprising storing information on a storage area constituting the external memory and information on a slot constituting the configuration memory, 상기 적어도 하나의 슬롯을 결정하는 단계는 상기 저장된 정보를 이용하여 적어도 하나의 슬롯을 결정하는 단계임을 특징으로 하는 방법.Wherein determining the at least one slot comprises determining at least one slot using the stored information. 제 9 항에 있어서,10. The method of claim 9, 상기 저장영역에 대한 정보는 저장영역에 매핑된 슬롯의 상태 정보, 매핑된 슬롯의 인덱스 정보, 및 구성정보의 크기를 포함하고,The information on the storage area includes the status information of the slot mapped to the storage area, the index information of the mapped slot, and the size of the configuration information, 상기 슬롯에 대한 정보는 슬롯의 상태 정보, 및 매핑된 저장영역의 인덱스 정보를 포함하는 것을 특징으로 하는 방법.Wherein the information on the slot includes status information of a slot and index information of a mapped storage area. 제 1 항에 있어서,The method according to claim 1, 적어도 하나 이상의 하드웨어 구성정보로 구성된 태스크가 복수 개 존재하는 경우, When there are a plurality of tasks configured by at least one hardware configuration information, 상기 하드웨어 구성 정보를 저장하는 단계는 제 1 태스크의 제 1 하드웨어 구성정보를 상기 구성 메모리에 저장하는 단계이고,Wherein storing the hardware configuration information comprises storing first hardware configuration information of a first task in the configuration memory, 상기 제 1 태스크에 대응하는 시간이 경과 후, 제 2 태스크의 제 2 하드웨어 구성정보를 상기 구성 메모리의 복수 개의 슬롯들 각각의 상태에 기초하여 제 2 하드웨어 구성정보를 저장할 수 있는 적어도 하나의 슬롯을 결정하는 단계; 및After the time corresponding to the first task has elapsed, the second hardware configuration information of the second task is stored in at least one slot that can store the second hardware configuration information based on the status of each of the plurality of slots of the configuration memory Determining; And 상기 제 2 하드웨어 구성정보를 저장할 수 있는 것으로 결정된 슬롯에 제 2 하드웨어 구성정보를 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.Further comprising storing second hardware configuration information in a slot determined to be capable of storing the second hardware configuration information. 제 11 항에 있어서,12. The method of claim 11, 상기 제 2 하드웨어 구성정보를 저장할 수 있는 적어도 하나의 슬롯을 결정하는 단계는, 상기 슬롯들 각각의 상태가 상기 외부 메모리의 저장 영역들 각각에 매핑되어 있지 않은 무효 상태인지 여부를 확인하고, 상기 확인 결과에 기초하여 상기 제 2 하드웨어 구성정보를 저장할 수 있는 슬롯을 결정하는 것을 특징으로 하는 방법.Wherein the step of determining at least one slot capable of storing the second hardware configuration information is to check whether each state of the slots is in an invalid state not mapped to each of the storage areas of the external memory, And determine a slot in which to store the second hardware configuration information based on the result. 제 12 항에 있어서,13. The method of claim 12, 상기 제 2 하드웨어 구성정보를 저장할 수 있는 슬롯을 결정하는 단계는 상기 무효 상태인지 여부를 확인한 결과, 확인된 무효 상태의 슬롯에 상기 제 2 하드웨어 구성정보를 모두 저장하지 못하는 경우 유효 상태에 있는 적어도 하나의 슬롯 을 무효 상태의 슬롯으로 설정하는 것을 특징으로 하는 방법.Wherein the step of determining a slot capable of storing the second hardware configuration information comprises the steps of: determining whether the slot is in an invalid state, Is set to a slot in an invalid state. 하드웨어 구성정보에 따라 하드웨어의 구성이 재구성되는 재구성 가능 하드웨어의 구성 메모리를 관리하는 장치에 있어서,1. An apparatus for managing a configuration memory of reconfigurable hardware in which a configuration of a hardware is reconfigured according to hardware configuration information, 상기 구성 메모리의 복수 개의 슬롯들 각각의 상태에 기초하여 상기 하드웨어 구성정보를 저장할 수 있는 적어도 하나의 슬롯을 결정하고, 상기 결정된 슬롯으로 외부 메모리에 저장된 하드웨어 구성 정보를 저장하는 메모리 관리부; 및A memory management unit for determining at least one slot capable of storing the hardware configuration information based on a state of each of a plurality of slots of the configuration memory and storing hardware configuration information stored in the external memory in the determined slot; And 상기 구성 메모리의 복수 개의 슬롯들 각각의 상태를 저장하는 저장부를 포함하고,And a storage unit for storing a state of each of a plurality of slots of the configuration memory, 상기 복수 개의 슬롯들 각각의 상태는,The status of each of the plurality of slots may include: 상기 구성 메모리의 슬롯과 상기 외부 메모리의 저장영역 간에 매핑되지 않은 상태인 무효 상태, 상기 구성 메모리의 슬롯과 상기 외부 메모리의 저장영역 간에 매핑되어 있는 상태인 유효 상태, 상기 외부 메모리의 저장영역에 저장된 하드웨어 구성정보를 상기 구성 메모리의 슬롯으로 전송 중인 상태인 로딩 상태, 상기 유효 상태에서 슬롯이 매핑되어 있는 저장 영역이 아닌 다른 저장영역으로는 매핑되지 않는 상태인 독점적 유효 상태 또는 상기 로딩 상태에서 슬롯이 매핑되어 있는 저장 영역이 아닌 다른 저장영역으로는 매핑되지 않는 상태인 독점적 로딩 상태 중 어느 하나의 상태인 것을 특징으로 하고,An invalid state in which a slot in the configuration memory is not mapped between a slot in the external memory and a storage area in the external memory, a valid state in which a slot in the configuration memory is mapped between a slot in the external memory and a storage area in the external memory, A hardware configuration information in a loading state in which the hardware configuration information is being transferred to a slot of the configuration memory; a monopoly valid state in which the mapping is not mapped to a storage area other than the storage area to which the slot is mapped in the valid state; And an exclusive loading state in which the storage area is not mapped to a storage area other than the mapped storage area. 상기 메모리 관리부는, 상기 복수 개의 슬롯들 중 제 1 슬롯에 대한 잠금 명령어를 수신하는 경우, 상기 제 1 슬롯의 상태를 독점적 로딩 상태 또는 독점적 유효 상태로 변경하는 것을 특징으로 하는 장치.Wherein the memory management unit changes the state of the first slot to the exclusive loading state or the exclusive valid state when receiving the lock command for the first slot among the plurality of slots. 제 14 항에 있어서,15. The method of claim 14, 상기 메모리 관리부는 상기 슬롯들 각각의 상태가 상기 외부 메모리의 저장 영역들 각각에 매핑되어 있지 않은 무효 상태인지 여부를 상기 저장부를 검색하여 확인하고, 상기 확인 결과에 기초하여 상기 하드웨어 구성정보를 저장할 수 있는 슬롯을 결정하는 것을 특징으로 하는 장치.The memory management unit searches and confirms whether or not each state of the slots is in an invalid state that is not mapped to each of the storage areas of the external memory and stores the hardware configuration information based on the confirmation result Lt; RTI ID = 0.0 > 1, < / RTI > 제 15 항에 있어서,16. The method of claim 15, 상기 메모리 관리부는 상기 저장부를 검색한 결과, 상기 확인된 무효 상태의 슬롯에 상기 하드웨어 구성정보를 모두 저장하지 못하는 경우 유효 상태에 있는 적어도 하나의 슬롯을 무효 상태의 슬롯으로 설정하는 것을 특징으로 하는 장치.Wherein the memory management unit sets at least one slot in a valid state as a slot in an invalid state when the memory management unit fails to store all of the hardware configuration information in the validated slot as a result of searching the storage unit. . 제 14 항에 있어서,15. The method of claim 14, 적어도 하나 이상의 하드웨어 구성정보로 구성된 태스크가 복수 개 존재하는 경우, When there are a plurality of tasks configured by at least one hardware configuration information, 상기 메모리 관리부는 제 1 태스크의 제 1 하드웨어 구성정보를 상기 구성 메모리에 저장하고, 상기 제 1 태스크에 대응하는 시간이 경과 후, 제 2 태스크의 제 2 하드웨어 구성정보를 상기 구성 메모리의 복수 개의 슬롯들 각각의 상태에 기초하여 제 2 하드웨어 구성정보를 저장할 수 있는 적어도 하나의 슬롯을 결정하고, 상기 제 2 하드웨어 구성정보를 저장할 수 있는 것으로 결정된 슬롯에 제 2 하드웨어 구성정보를 저장하는 것을 특징으로 하는 장치.Wherein the memory management unit stores the first hardware configuration information of the first task in the configuration memory and after the time corresponding to the first task elapses the second hardware configuration information of the second task is stored in a plurality of slots And the second hardware configuration information is stored in a slot determined to be able to store the second hardware configuration information, wherein the second hardware configuration information is stored in a slot determined to be able to store the second hardware configuration information Device. 제 1 항 내지 제 6 항 및 제 8항 내지 제 13 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium storing a program for causing a computer to execute the method according to any one of claims 1 to 6 and 8 to 13.
KR20080006700A 2007-08-27 2008-01-22 Method for reconfiguring hardware and hardware reconfigurable system using it KR101478648B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/076,276 US8402410B2 (en) 2007-08-27 2008-03-14 Method and apparatus for managing configuration memory of reconfigurable hardware

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20070086276 2007-08-27
KR1020070086276 2007-08-27

Publications (2)

Publication Number Publication Date
KR20090023006A KR20090023006A (en) 2009-03-04
KR101478648B1 true KR101478648B1 (en) 2015-01-02

Family

ID=40692780

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20080006700A KR101478648B1 (en) 2007-08-27 2008-01-22 Method for reconfiguring hardware and hardware reconfigurable system using it

Country Status (1)

Country Link
KR (1) KR101478648B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102081167B1 (en) * 2012-11-13 2020-02-26 삼성전자주식회사 Apparatus and method for utilizing a memory device
CN114488927A (en) * 2021-12-31 2022-05-13 广东省离散智造科技创新有限公司 PLC hardware configuration method, system, device and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040117755A1 (en) 2002-12-13 2004-06-17 Xilinx, Inc. Reconfiguration of a programmable logic device using internal control
JP2005100509A (en) 2003-09-24 2005-04-14 Sony Corp File management device, file management method, program of file management method, and recording medium whereon program of file management method is recorded

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040117755A1 (en) 2002-12-13 2004-06-17 Xilinx, Inc. Reconfiguration of a programmable logic device using internal control
JP2005100509A (en) 2003-09-24 2005-04-14 Sony Corp File management device, file management method, program of file management method, and recording medium whereon program of file management method is recorded

Also Published As

Publication number Publication date
KR20090023006A (en) 2009-03-04

Similar Documents

Publication Publication Date Title
CN114816664B (en) GPU virtualization
US9195786B2 (en) Hardware simulation controller, system and method for functional verification
EP2216722B1 (en) Various methods and apparatus for configurable mapping of address regions onto one or more aggregate targets
US10168957B2 (en) Directed placemat of data in memory
US10353717B2 (en) Build-time memory management for multi-core embedded system
EP1138001A2 (en) Reconfigurable programmable logic device computer system
WO2000031652A9 (en) Reconfigurable programmable logic device computer system
WO2010116431A1 (en) Cache control device and cache control method
JP2004213634A (en) Method for configuring memory using fixed resource set to satisfy memory requirement fluctuating on programmable platform device
KR20110044465A (en) Configuration processor, configuration control apparatus and method, and thread modeling method
WO2022040230A1 (en) Reconfiguration of programmable integrated circuits
CN112955880B (en) Apparatus and method for processing address decoding in a system on chip
US20060265571A1 (en) Processor with different types of control units for jointly used resources
CN109901890A (en) A kind of method, apparatus, computer equipment and the storage medium of controller loading multi-core firmware
CN111666210A (en) Chip verification method and device
US20020010825A1 (en) Memory resource arbitrator for multiple gate arrays
US8402410B2 (en) Method and apparatus for managing configuration memory of reconfigurable hardware
US6779168B2 (en) Magnetoresistive memory for a complex programmable logic device
US6374338B1 (en) Method for performing configuration tasks prior to and including memory configuration within a processor-based system
CN103140834A (en) Processor support for filling memory regions
KR100781358B1 (en) System and method for data process
KR101478648B1 (en) Method for reconfiguring hardware and hardware reconfigurable system using it
Van Lunteren et al. Coherently attached programmable near-memory acceleration platform and its application to stencil processing
US9503096B1 (en) Multiple-layer configuration storage for runtime reconfigurable systems
JP2022054412A (en) Logic fabric based on microsector infrastructure

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
FPAY Annual fee payment

Payment date: 20171121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191115

Year of fee payment: 6