KR20210017835A - Neuromorphic Memory Management System and Memory Allocation Method thereof - Google Patents

Neuromorphic Memory Management System and Memory Allocation Method thereof Download PDF

Info

Publication number
KR20210017835A
KR20210017835A KR1020190097669A KR20190097669A KR20210017835A KR 20210017835 A KR20210017835 A KR 20210017835A KR 1020190097669 A KR1020190097669 A KR 1020190097669A KR 20190097669 A KR20190097669 A KR 20190097669A KR 20210017835 A KR20210017835 A KR 20210017835A
Authority
KR
South Korea
Prior art keywords
memory
data
data sets
neuromorphic
input data
Prior art date
Application number
KR1020190097669A
Other languages
Korean (ko)
Other versions
KR102408966B1 (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 US16/537,293 priority Critical patent/US11449738B2/en
Priority to KR1020190097669A priority patent/KR102408966B1/en
Publication of KR20210017835A publication Critical patent/KR20210017835A/en
Application granted granted Critical
Publication of KR102408966B1 publication Critical patent/KR102408966B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)

Abstract

According to one aspect of the present invention, a memory management system comprises: a memory having a multidimensional lattice structure; a prediction unit predicting the memory usage level of each of two or more data sets and determining the order to be inputted to the memory; and a management unit allocating a memory area to store the two or more data sets according to a prediction result of the prediction unit to store, learn, and infer the data sets. The memory has one of the two-dimensional and three-dimensional lattice structures, and the memory can be accessed from two or more directions according to each dimension. Therefore, the power consumption can be reduced.

Description

뉴로모픽 메모리 관리 시스템 및 관리 방법{Neuromorphic Memory Management System and Memory Allocation Method thereof} Neuromorphic Memory Management System and Memory Allocation Method thereof

본 발명은 메모리 관리에 관한 것으로서, 구체적으로는 저전력 디바이스 또는 독립운용이 필요한 디바이스 내에서 뉴로모픽 반도체 내 메모리를 관리하는 시스템 및 방법에 관한 것이다.The present invention relates to memory management, and more particularly, to a system and method for managing a memory in a neuromorphic semiconductor within a low power device or a device requiring independent operation.

뉴로모픽 소자의 시냅스는 어레이 구조로 구성되어 있으며, 다양한 메모리 유닛을 이용하여 학습 기능을 구현하고 데이터를 연산한다. The synapse of a neuromorphic device is composed of an array structure, and a learning function is implemented and data is calculated using various memory units.

이를 위한 뉴로모픽 메모리는 통상 뉴런당 128byte의 데이터를 저장하는데, 종래의 메모리 할당 방식은 도 1과 같이 데이지 체인(Daisy Chain) 방식으로 메모리의 첫 위치부터 데이터를 순차적으로 저장하고 처리한다. 예컨대, 640byte의 A 입력 데이터는 학습과 추론에 있어서 0~4번의 5개의 뉴런을 사용한다. Neuromorphic memory for this purpose generally stores 128 bytes of data per neuron, and the conventional memory allocation method sequentially stores and processes data from the first location of the memory in a daisy chain method as shown in FIG. 1. For example, 640 bytes of A input data uses 5 neurons 0-4 for learning and inference.

종래의 뉴로모픽 메모리는 한번에 하나의 입력 데이터를 받아서 처리하기 때문에, 만약 후속하여 B 입력 데이터(640byte)를 처리해야 하는 경우, 먼저 전체 메모리(뉴런)를 리셋시킨 다음 B 입력 데이터를 A 입력 데이터가 이용했던 0~4번 뉴런에 입력시킨다. Since conventional neuromorphic memory receives and processes one input data at a time, if B input data (640 bytes) is to be processed subsequently, the entire memory (neuron) is reset first, and then B input data is converted to A input data. Input to neurons 0-4 used by

결국, 종래의 방식에서는 처리하고자 하는 어플리케이션 또는 서비스 데이터가 이종 또는 다른 데이터일 경우, 도 2에서와 같이 데이터 B(녹색으로 표시)를 학습하기 위해서는 이전에 저장하고 처리했던 어플리케이션 데이터 A(노란색으로 표시)를 리셋해야 하는데, 이 때 어플리케이션 데이터 A에 대한 학습 내용은 이후의 인식(추론)을 위해 모두 외부 메모리 유닛에 저장되며, 이러한 과정으로 인하여 외부 메모리 유닛의 종류, 처리속도, 액세스 속도에 따라 뉴로모픽 메모리의 데이터 처리 성능차이가 많이 발생한다. In the end, in the conventional method, when the application or service data to be processed is heterogeneous or different data, to learn data B (indicated in green) as shown in FIG. 2, the previously stored and processed application data A (indicated in yellow). ) Must be reset. At this time, the learning contents of application data A are all stored in the external memory unit for later recognition (inference), and due to this process, new data is updated according to the type, processing speed, and access speed of the external memory unit. There is a lot of difference in data processing performance of the Lomorphic memory.

양호한 처리 속도를 얻기 위해서는 시스템 버스의 속도와 외부 메모리 유닛과 시스템 코어간의 빠른 데이터 교환이 요구되는데, 따라서 저전력/저사양 디바이스는 위 데이터 속도가 현저히 떨어지며 이로 인한 데이터 병목현상이 발생할 수 있어서 외부 메모리 적용에 한계가 있을 수 있다. In order to obtain good processing speed, the speed of the system bus and fast data exchange between the external memory unit and the system core are required. Therefore, the above data rate is significantly lowered for low-power/low-spec devices, which may cause a data bottleneck. There may be limitations.

더욱이, 전력 소모나 성능의 기준이 실제 뉴로모픽 반도체가 아니라, 외부 메모리 유닛에 종속적일 수 있게 된다. Moreover, the standard of power consumption or performance may be dependent on an external memory unit rather than an actual neuromorphic semiconductor.

이러한 문제는 학습 단계뿐만이 아니라, 학습된 결과를 입력 데이터의 인식 또는 추론을 위하여 외부 메모리로부터 불러오는 과정에서도 발생한다.This problem occurs not only in the learning stage, but also in the process of retrieving the learned result from an external memory for recognition or inference of input data.

한편, 실제 뉴로모픽 반도체 내 메모리를 활용하는 측면에서는, 종래의 뉴로모픽 메모리는 역시 도 1에서와 같이 데이지 체인(Daisy Chain) 방식으로 메모리의 첫 위치부터 데이터를 순차적으로 저장하고 처리하는 특성으로 인하여, 어플리케이션에 따라, 사용하지 않는 메모리가 많은 경우 메모리 사용 측면에서 비효율성을 가지게 된다.On the other hand, in terms of utilizing the memory in the actual neuromorphic semiconductor, the conventional neuromorphic memory also has the characteristic of sequentially storing and processing data from the first location of the memory in a daisy chain method as shown in FIG. Therefore, depending on the application, when there are many unused memories, inefficiency may occur in terms of memory usage.

보다 구체적으로 설명하면, 도 1에서 보는 바와 같이 데이터 입력완료 후 비교 병렬 연산은 푸른색 화살표과 같이 동시 비교가 가능하지만, 이와 같은 뉴로모픽 반도체 내 병렬 연산을 위하여 데이터를 메모리에 쓰는 방식은 하늘색 선과 같이 데이지 체인방식을 사용하고 있다. 따라서, 학습이나 추론을 위해 저장하는 데이터가 적은 경우, 나머지 뉴런 메모리는 사용하지 않게 되며, 도 1의 예시와 같이 매우 적은 영역의 메모리만 활용되고 나머지 대부분의 영역은 활용되지 않는 일이 생길 수 있다. More specifically, as shown in FIG. 1, after data input is completed, comparison parallel operation can be performed simultaneously as indicated by a blue arrow, but the method of writing data to memory for parallel operation in a neuromorphic semiconductor Together, they are using the daisy chain method. Therefore, when there is little data to be stored for learning or inference, the remaining neuron memory is not used, and as shown in the example of FIG. 1, only a very small area of memory is used and most of the remaining areas may not be used. .

이와 같이, 뉴로모픽 반도체 내 메모리를 활용하는 측면에서 사용하지 않는 메모리 부분에 대해 재활용이 어려운 문제점이 있다. In this way, in terms of utilizing the memory in the neuromorphic semiconductor, there is a problem in that it is difficult to recycle the unused memory portion.

다른 한편으론, 종래의 뉴로모픽 반도체 특성상, 회귀 연산(Recursive 연산)에 대한 방식이 적용되지 않는 문제점이 있어, 딥러닝에 사용된 알고리즘이나, 머신러닝 내 회귀 연산이 필요한 알고리즘은 적용되지 못하는 한계가 있다.On the other hand, due to the characteristics of the conventional neuromorphic semiconductor, there is a problem that the method for recursive operation is not applied, so the algorithm used for deep learning or the algorithm requiring regression operation in machine learning cannot be applied. There is.

본 발명의 목적은 획일적인 데이지체인 방식의 종래의 뉴로모픽 메모리 할당방식에서 벗어나 가변적으로 뉴로모픽 반도체 내 메모리 구조를 변경할 수 있는 메모리 관리 시스템 및 방법을 제공하는 데 있다.An object of the present invention is to provide a memory management system and method capable of variably changing a memory structure in a neuromorphic semiconductor, deviating from the conventional neuromorphic memory allocation method of a uniform daisy chain method.

본 발명의 다른 목적은, 메모리 사용에 관한 예측을 토대로 메모리 할당을 하며, 현재 사용하지 않는 메모리 영역을 사용하도록 할당함으로써 메모리의 사용 효율성을 높이는 메모리 관리 시스템 및 방법을 제공하는 것이다.Another object of the present invention is to provide a memory management system and method for increasing memory use efficiency by allocating memory based on predictions about memory usage and allocating to use a memory area that is not currently used.

특히, 예상되는 메모리 사이즈가 부정확할 경우, 피드백을 통해 재조정할 수 있는 공간활용기능을 적용하고자 한다.In particular, when the expected memory size is incorrect, we intend to apply a space utilization function that can be readjusted through feedback.

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical problem to be achieved by the present embodiment is not limited to the technical problem as described above, and other technical problems may exist.

본 발명은 뉴로모픽 반도체 내 메모리 구조를 변경하여 Prescience Estimator(PSE)관리자가 해당 어플리케이션에 대한 메모리 사용정도를 예상하고 Prescience Manager(PSM)전체 뉴로모픽 메모리 구조에서 일부를 할당하여 전술한 과제를 달성한다. In the present invention, by changing the memory structure in the neuromorphic semiconductor, the Prescience Estimator (PSE) manager predicts the degree of memory usage for the application, and allocates a part from the entire neuromorphic memory structure of the Prescience Manager (PSM) to solve the above problems. Achieve.

본 발명의 일 면에 따른 메모리 관리 시스템은 다차원 격자 구조를 가지는 메모리와, 둘 이상의 데이터 세트 각각의 메모리 사용 정도를 예측하고 상기 메모리에 입력할 순서를 결정하는 예지부와, 상기 예지부의 예측 결과에 따라 상기 둘 이상의 데이터 세트를 저장할 메모리 영역을 할당하여 상기 데이터 세트를 저장하고 학습 및 추론시키는 관리부를 포함한다. A memory management system according to an aspect of the present invention includes a memory having a multidimensional lattice structure, a prediction unit that predicts a memory usage degree of each of two or more data sets and determines an order of input to the memory, and a prediction result of the prediction unit. And a management unit for storing, learning, and reasoning by allocating a memory area to store the at least two data sets according to the data set.

상기 메모리는, 상기 2차원 및 3차원 격자 구조 중 하나의 구조를 가지며, 각 차원에 따라 둘 이상의 방향에서 접근이 가능한 뉴로모픽 메모리이다. The memory has one of the two-dimensional and three-dimensional lattice structures, and is a neuromorphic memory that can be accessed from two or more directions according to each dimension.

상기 예지부는, 미리 저장된 기준 정보 및 실행되는 어플리케이션 출력 데이터 정보 중 하나 이상을 토대로 소정 시간 구간에 입력되는 데이터의 종류와 크기를 예측하며, 상기 둘 이상의 데이터 세트에 대하여, 예측된 데이터 세트별 크기 순서대로 메모리 할당 순서를 결정한다. The prediction unit predicts the type and size of data input in a predetermined time interval based on one or more of pre-stored reference information and application output data information to be executed, and for the two or more data sets, the predicted size order of each data set The order of memory allocation is determined.

또한, 상기 예지부는, 상기 둘 이상의 데이터 세트에 대하여, 예측된 데이터 세트별 크기와, 각 데이터 세트별로 가설정된 메모리의 영역의 어느 한 변의 셀 개수에 기초하여 메모리 할당 순서의 결정 및 메모리 영역의 재할당을 수행한다. In addition, the prediction unit may determine the order of memory allocation and determine the memory area based on the predicted size of each data set and the number of cells on one side of the memory area temporarily set for each data set. Perform reallocation.

본 발명의 다른 면에 따른 메모리 관리 시스템은, 다차원 격자 구조를 가지는 메모리와, 둘 이상의 데이터 세트 각각의 메모리 사용 정도를 예측하는 예지부와, 상기 예지부의 예측 결과에 따라 상기 둘 이상의 데이터 세트를 저장할 메모리 영역을 람다 엘레먼트 기법에 따라 할당하여 상기 데이터 세트를 저장하고 학습 및 추론시키는 관리부를 포함한다.A memory management system according to another aspect of the present invention includes a memory having a multidimensional lattice structure, a prediction unit that predicts a memory usage degree of each of two or more data sets, and the two or more data sets according to a prediction result of the prediction unit. And a management unit for storing, learning, and inferring the data set by allocating a memory area to be stored according to a lambda element technique.

상기 메모리는, 상기 둘 이상의 데이터 세트 및 연산에 이용할 기준 데이터를 저장하는 저장부와, 상기 데이터 세트를 상기 기준 데이터에 기초하여 연산하는 연산부를 포함한다. The memory includes a storage unit that stores the two or more data sets and reference data to be used for calculation, and an operation unit that calculates the data set based on the reference data.

상기 관리부는, 상기 메모리에 저장된 상기 둘 이상의 데이터에 대하여 학습을 수행하고 그 학습 결과를 저장하도록 상기 메모리를 제어하며, 상기 둘 이상의 데이터를 상기 메모리의 둘 이상의 축 방향에 대하여 교번적으로 저장한다.The management unit performs learning on the two or more data stored in the memory and controls the memory to store the learning result, and alternately stores the two or more data in two or more axial directions of the memory.

본 발명의 또 다른 면에 따른 뉴로모픽 반도체 메모리 관리 방법은, 둘 이상의 입력 데이터 세트에 대하여 메모리 영역을 할당하고 저장하는 단계와, 상기 둘 이상의 입력 데이터 세트에 대하여 학습을 수행하는 단계와, 상기 학습 결과로서의 기준 데이터를 새로운 메모리 영역에 저장하는 단계와, 새로운 하나 이상의 입력 데이터 세트에 대하여 상기 기준 데이터와 비교 연산하는 단계를 포함한다. A method for managing a neuromorphic semiconductor memory according to another aspect of the present invention includes the steps of allocating and storing memory regions for two or more input data sets, performing learning on the two or more input data sets, and And storing reference data as a learning result in a new memory area, and performing a comparison operation with the reference data on one or more new input data sets.

입력 데이터의 저장은 상기 둘 이상의 입력 데이터 세트 각각의 크기를 예측하는 단계와, 상기 예측 결과에 따라 상기 입력 데이터 세트 중 크기가 큰 입력 데이터 세트에 대하여 우선적으로 메모리 영역을 할당하고 저장하는 단계를 포함하여 수행된다. Storing the input data includes predicting the size of each of the two or more input data sets, and first allocating and storing a memory area for an input data set having a larger size among the input data sets according to the prediction result. Is performed by

한편, 상기 연산 단계의 결과에 따라, 저장된 상기 기준 데이터 중에서 후속의 다른 새로운 입력 데이터 세트의 연산에 이용할 기준 데이터를 결정하는 단계가 더 포함될 수 있다.Meanwhile, the step of determining reference data to be used for a subsequent calculation of another new input data set among the stored reference data may be further included according to the result of the calculation step.

본 발명에 따른 예측 기반의 메모리 관리 시스템은 기존에 단일 레이어 방식의 비교결정값을 다른 메모리에 재할당하는 방법을 통해, 시간차를 두고 다시 할당하여 기준 데이터를 재사용할 수 있다. The prediction-based memory management system according to the present invention can reuse the reference data by re-allocating the comparison decision value of the single layer method to another memory at a time difference.

또한, 외부 메모리 접근없이 뉴로모픽 반도체 내부 코어 시스템에서 수행되기 때문에 처리 속도가 빠르고 이에 따른 전력 소모가 줄어드는 효과가 있다.In addition, since it is performed in a core system inside a neuromorphic semiconductor without accessing an external memory, processing speed is fast and power consumption is reduced accordingly.

본 발명에 따르면, 뉴로모픽 메모리를 이용하여 멀티 레이어 방식과 회귀 연산이 가능한 가중치 방법을 동시에 활용할 수 있으므로 기존에 뉴로모픽 반도체 특성상 단일 레이어를 통한 간단한 알고리즘 적용 방식에서 다양한 딥러닝 알고리즘, 최적의 머신러닝 알고리즘 (예, Support Vector Machine(SVM))의 알고리즘을 적용할 수 있는 장점을 발휘한다. According to the present invention, since a multi-layer method and a weight method capable of regression operation can be simultaneously used using a neuromorphic memory, various deep learning algorithms can be optimized from a simple algorithm application method through a single layer due to the characteristics of the existing neuromorphic semiconductor. It shows the advantage of being able to apply the algorithm of a machine learning algorithm (e.g., Support Vector Machine (SVM)).

또한, 입력되는 데이터를 사용하지 않는 뉴로모픽 메모리를 할당하여 사용하지 않은 영역을 재활용하며, 한번의 입력에 리셋과정 없이 다양한 데이터를 한번에 학습할 수 있는 장점이 있다. 따라서 다양한 데이터를 한번에 학습하기 때문에 융합된 정보를 이용한 하나의 인식 룰을 정의할 수 있고, 인식 룰에 대해서 한번의 저장이 요구되므로 시스템 버스에 의한 외부 메모리 유닛 저장 횟수를 줄일 수 있는 장점이 있다. In addition, there is an advantage in that an unused area can be recycled by allocating a neuromorphic memory that does not use input data, and various data can be learned at once without a reset process in a single input. Therefore, since various data are learned at a time, one recognition rule can be defined using fused information, and since one storage of the recognition rule is required, there is an advantage of reducing the number of storage of external memory units by the system bus.

본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

도 1은 뉴로모픽 메모리의 구조 및 종래의 뉴로모픽 메모리가 입력 데이터를 저장하는 방식을 도시한 도면.
도 2는 종래의 뉴로모픽 메모리가 복수 개의 다른 입력 데이터를 저장하는 방식을 도시한 도면.
도 3은 본 발명에 따른 메모리 관리 시스템의 블록도.
도 4는 본 발명에 따른 가변형 메모리의 3차원 구현례를 도시한 도면.
도 5는 본 발명에 따른 가변형 메모리의 둘 이상의 데이터가 동시에 함께 저장되는 양상을 도시한 도면.
도 6은 본 발명에 따른 가변형 메모리의 둘 이상의 데이터의 할당 양상을 도시한 도면.
도 7은 본 발명에 따른 메모리 관리 시스템을 도시한 도면.
도 8은 본 발명에 따른 메모리 할당 방법의 기본 방식을 도시한 도면.
도 9는 본 발명에 따른 최적의 메모리 할당 양상을 예시한 도면.
도 10은 본 발명에 따른 데이터 연산을 하기 위하여 두 종류 이상의 데이터를 동시에 하나의 메모리에 저장하는 예를 도시한 도면.
도 11은 본 발명에 따른 다중 데이터 연산 방식에 대한 개념도.
도 12는 본 발명에 따른, 시간의 흐름에 따라 입력되는 데이터의 연산 방식에 대한 개념도.
도 13은 본 발명에 따른 복합 연산 방식에 대한 개념도.
도 14는 본 발명에 따라 단계적으로 정밀도를 높여가는 연산 방법을 설명하기 위한 도면.
1 is a diagram showing a structure of a neuromorphic memory and a method of storing input data in a conventional neuromorphic memory.
2 is a diagram showing a method of storing a plurality of different input data in a conventional neuromorphic memory.
3 is a block diagram of a memory management system according to the present invention.
4 is a diagram showing a three-dimensional implementation example of a variable memory according to the present invention.
5 is a diagram illustrating an aspect in which two or more data of a variable memory according to the present invention are simultaneously stored together.
6 is a diagram showing an aspect of allocation of two or more data in a variable memory according to the present invention.
7 is a diagram showing a memory management system according to the present invention.
8 is a diagram showing a basic method of a memory allocation method according to the present invention.
9 is a diagram illustrating an optimal memory allocation pattern according to the present invention.
10 is a diagram showing an example of storing two or more types of data in one memory at the same time to perform a data operation according to the present invention.
11 is a conceptual diagram for a multiple data operation method according to the present invention.
12 is a conceptual diagram of a method of calculating input data over time according to the present invention.
13 is a conceptual diagram for a complex operation method according to the present invention.
14 is a view for explaining an operation method for increasing precision step by step according to the present invention.

본 발명의 이점 및 특징, 그리고 이들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 기술되어 있는 실시예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예는 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 기재에 의해 정의된다. Advantages and features of the present invention, and a method of achieving them will become apparent with reference to the embodiments described in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in various forms different from each other, only this embodiment makes the disclosure of the present invention complete, and those skilled in the art to which the present invention pertains. It is provided to fully inform the scope of the invention to the person, and the invention is defined by the description of the claims.

한편, 본 명세서에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자 이외의 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.On the other hand, terms used in the present specification are for explaining examples and are not intended to limit the present invention. In this specification, the singular form also includes the plural form unless specifically stated in the phrase. As used herein, "comprises" or "comprising" refers to the presence of one or more other components, steps, actions and/or elements other than the recited elements, steps, actions and/or elements, or Does not rule out addition.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs.

한편, 어떤 실시예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 실행될 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.Meanwhile, when a certain embodiment can be implemented differently, functions or operations specified in a specific block may be executed differently from the order specified in the flowchart. For example, two consecutive blocks may actually be executed at the same time, or the blocks may be executed in reverse depending on a related function or operation.

이하, 본 발명의 바람직한 실시예를 첨부 도면을 참조하여 상세히 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가급적 동일한 부호를 부여하고 또한 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있는 경우에는 그 상세한 설명을 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In adding reference numerals to elements of each drawing, even though they are indicated on different drawings, the same elements are assigned the same reference numerals as much as possible, and in describing the present invention, a detailed description of related known configurations or functions If the gist of the present invention may be obscured, a detailed description thereof will be omitted.

본 발명의 기본적 기술 사상은, 전술한 메모리 재할당 구조를 이용하기 위해서, 가변형 메모리 구조를 활용하여 메모리 격자형태의 메모리 쓰기 구조가 가능하도록 하는 것이다. The basic technical idea of the present invention is to enable a memory write structure in the form of a memory grid by using a variable memory structure in order to use the above-described memory reallocation structure.

이를 위하여, 메모리 사용에 관한 예측이 가능한 예지부(Prescience Estimator; 이하, 본 명세서에서 PSE라 칭함)가 해당 어플리케이션에 대한 메모리 사용정도를 예상하고, 이를 토대로 관리부(Prescience Manager; 이하 PSM이라 칭함)가 전체 뉴로모픽 메모리 구조에서 일부를 할당하는 메모리 관리 시스템을 제공하여, 다른 어플리케이션이 사용하지 않는 메모리 영역을 재사용하여 메모리의 사용 효율성을 높일 수 있도록 하는 것이다.To this end, the Prescience Estimator (hereinafter referred to as PSE in this specification) predicts the degree of memory usage for the application, and based on this, the Prescience Manager (hereinafter referred to as PSM) A memory management system that allocates a part of the entire neuromorphic memory structure is provided to reuse a memory area that is not used by other applications to increase the efficiency of memory use.

도 3를 참조하여 본 발명의 바람직한 일 실시예에 따른 메모리 관리 시스템에 대하여 설명한다. A memory management system according to an exemplary embodiment of the present invention will be described with reference to FIG. 3.

뉴로모픽 메모리 관리 시스템(300)은 메모리(330)를 이용할 각 어플리케이션에 대한 메모리 사용 정도를 예측하는 PSE(320; Prescience Estimator)와, 이를 토대로 전체 뉴로모픽 메모리의 일부 또는 전부를 할당하는 PSM(310; Prescience Manager)을 포함한다. PSE와 PSM은 뉴로모픽 칩의 시스템 코아의 내부에 소프트웨어 모듈로서 구현될 수 있는데, 별도의 하드웨어로 구현될 수도 있음은 물론이다The neuromorphic memory management system 300 includes a PSE 320 (Prescience Estimator) that predicts the degree of memory use for each application that will use the memory 330, and a PSM that allocates part or all of the entire neuromorphic memory based on this. (310; Prescience Manager). PSE and PSM can be implemented as software modules inside the system core of the neuromorphic chip, but of course they can also be implemented as separate hardware.

메모리(330)는 다차원 격자 구조를 가지며, 각 차원에 따라 여러 방향에서 메모리 접근이 가능한 가변형 메모리 구조를 가진다. 예컨대 2차원 격자 구조를 가지는 경우에는 상하좌우의 4개 방향에서 메모리 접근이 가능하며, 3차원 격자 구초를 가지는 경우에는 x, y, z의 각 축상에서 양방향(총 6방향)으로 접근 가능하도록 구성한다. The memory 330 has a multidimensional lattice structure, and has a variable memory structure in which memory access is possible in various directions according to each dimension. For example, if you have a two-dimensional grid structure, you can access memory in four directions, up, down, left, and right, and if you have a three-dimensional grid structure, you can access them in both directions (a total of six directions) on each axis of x, y, and z. do.

가변형 메모리 구조는 기존의 뉴로모픽 메모리를 논리적으로 다차원 구조를 가지도록 구성하여 구현될 수 있고, 둘 이상의 뉴로모픽 메모리를 스택구조로 쌓아 3차원 구조로 구성하거나, 또는 도 4에 도시된 바와 같이 반도체 공정방식에 따라 3차원 구조로 구현될 수 있다. The variable memory structure may be implemented by configuring an existing neuromorphic memory to have a logical multidimensional structure, and constructing a three-dimensional structure by stacking two or more neuromorphic memories in a stack structure, or as shown in FIG. Likewise, it can be implemented in a three-dimensional structure according to a semiconductor process method.

메모리의 할당은 도 5와 같이, 종래 뉴로모픽 반도체의 1차원 구조(데이지 체인 방식)과 달리, 2차원 평면 또는 3차원의 차원 구조(단일 격자 또는 다중 격자구조)를 가지도록 구성된다. 도 5에 도시된 바와 같이 본 발명에 따른 가변형 메모리는 파란색 선을 따라 데이터가 메모리가 할당되는 동시에 다른 경로인 주황색 선을 따라서 메모리가 할당될 수 있는 구조를 가진다. As shown in FIG. 5, memory allocation is configured to have a two-dimensional plane or three-dimensional dimensional structure (single lattice or multiple lattice structure), unlike a one-dimensional structure (daisy chain method) of a conventional neuromorphic semiconductor. As shown in FIG. 5, the variable memory according to the present invention has a structure in which data is allocated along a blue line and memory is allocated along an orange line, which is another path.

결과적으로. 도 6과 같이 동시에 여러 종류의 데이터가 뉴로모픽 메모리에 저장될 수 있고, 동시에 여러 종류의 데이터가 처리될 수 있다.As a result. As shown in FIG. 6, several types of data may be simultaneously stored in the neuromorphic memory, and several types of data may be processed at the same time.

도 7은 이러한 가변형 메모리 구조의 효율적 활용과 효과의 발휘를 모식적으로 나타내고 있다. 도시된 바와 같이, PSM(310) 및 PSE(320)의 제어/관리하에 가변형 다차원 메모리(300)가 가로, 세로, 높이 방향으로 쓰고 읽혀질 수 있다. Fig. 7 schematically shows the effective utilization and effect of such a variable memory structure. As shown, the variable multidimensional memory 300 can be written and read in the horizontal, vertical, and height directions under the control/management of the PSM 310 and the PSE 320.

이와 같은 메모리 구조를 채택하여 얻을 수 있는 이점은 다음과 같다.The advantages that can be obtained by adopting such a memory structure are as follows.

메모리 공간을 사용하는데 있어서, 해당 애플리케이션에 대한 메모리 사용 정도를 예상하고 전체 뉴로모픽 메모리 구조에서 그 사용 정도에 적합한 일부만을 할당하고, 사용하지 않은 영역에 대해서는 다른 어플리케이션이 사용할 수 있도록 재할당할 수 있다. In using the memory space, it is possible to predict the degree of memory use for the application, allocate only a portion suitable for the degree of use in the entire neuromorphic memory structure, and reallocate the unused area for use by other applications. have.

격자 구조의 가변 할당 메모리로 인하여, 학습을 위한 데이터 저장과 비교 연산을 동시에 할 수 있으므로 외부 메모리 유닛 접근에 따른 성능 저하를 방지할 수 있다. Due to the variable allocation memory of the lattice structure, data storage for learning and comparison operations can be performed at the same time, thereby preventing performance degradation due to access to an external memory unit.

격자 형태의 가변형 메모리 구조에 시간차를 두고 입력 데이터를 저장, 학습하는 경우, 회귀 연산이 가능한 가중치 방식을 적용할 수 있으므로, 단일 레이어를 통한 간단한 알고리즘 적용이 아니라, 다양한 딥러닝 알고리즘 효과를 볼 수 있는 알고리즘을 적용할 수 있다. 논리적 또는 물리적으로 적층되는 메모리 격자수에 따라, 또는 단일 격자 내에서도 동시에 처리되는 데이터 할당 공간을 다중화함으로써, 다중 레이어를 적용한 알고리즘을 모사하여 사용할 수 있다. In the case of storing and learning input data with a time difference in a lattice-type variable memory structure, a weighting method capable of regression operation can be applied, so that the effect of various deep learning algorithms can be seen rather than a simple algorithm application through a single layer. Algorithm can be applied. Algorithms to which multiple layers are applied can be simulated and used according to the number of logically or physically stacked memory grids, or by multiplexing data allocation spaces simultaneously processed even within a single grid.

이와 같이, PSM(310)와 PSE(320)을 통해 확보된 메모리 영역에 맞게 각 데이터가 학습되며, 다양한 데이터에 대한 정보 융합 학습이 한 번에 일어나게 되므로, 뉴로모픽 칩 내의 적은 메모리 사이즈에도 학습이 가능한 장점이 있으며, 저전력으로 빠른 메모리 접근이 가능하다. 학습 결과는 별도로 저장되고 향후 학습 인식을 위해 사용된다.In this way, each data is learned according to the memory area secured through the PSM 310 and PSE 320, and since information fusion learning about various data occurs at once, it is learned even with a small memory size in the neuromorphic chip. This is possible, and fast memory access is possible with low power. Learning results are stored separately and used for future learning recognition.

인식(추론) 단계에서, PSM(310)은 학습된 영역의 데이터 상태를 알고 있으므로, 인식을 위해 여러 종류의 입력 데이터가 입력될 때 비교가 가능하도록 해당 데이터의 비교연산을 수행에 필요한 제반 절차를 진행한다. In the recognition (inference) step, since the PSM 310 knows the state of the data in the learned area, the PSM 310 performs all the necessary procedures for performing the comparison operation of the corresponding data so that when various types of input data are input for recognition. Proceed.

PSM(310)과 PSE(320)가 공조하여 수행하는 본 발명에 따른 메모리 할당 방법에 대해서 아래의 몇 실시예를 들어 구체적으로 설명한다. A memory allocation method according to the present invention performed by the PSM 310 and the PSE 320 will be described in detail with reference to several examples below.

기본적으로, 입력되는 데이터 세트의 크기가 큰 순서대로 할당한다. Basically, the size of the input data set is allocated in the order of the largest.

우선 PSE(320)는 사용 가능 메모리 공간을 파악한다. 사용 가능 메모리 공간의 파악은 데이터 입력이 요구되는 시점 직전에 해도 되지만, 부하의 안정성을 위해서는 상시적으로 수행되는 것이 바람직하다.First, the PSE 320 determines the usable memory space. The usable memory space may be determined immediately before the time when data input is required, but it is desirable to perform it at all times for stability of the load.

그 다음 입력되는 입력되는 데이터 세트들의 크기를 예측한다. 예컨대, 하나의 판단을 위하여 융합이 필요한 복수의 데이터, 예를 들면 화재 감지를 위한 온도, 습도, 먼지, CO2의 네 개 범주에 대한 감지 데이터가 소정 시간 구간에서 얼마큼씩 입력될 것인지를 예측한다.Then, the size of input data sets is predicted. For example, it is predicted how many pieces of data that need to be fused for one determination, for example, detection data for four categories of temperature, humidity, dust, and CO2 for fire detection, will be input in a predetermined time interval.

예측의 방식은 현재 실행되는 어플리케이션의 종류에 따라서 미리 축적해 놓은 어플리케이션별 데이터 종류 및 크기 테이블(예컨대, 실내 화재 감시 어플리케이션의 경우 5종의 가스 농도 데이터에 대하여 1초당 한번의 샘플링을 한다거나, 또는 각 종류의 가스 농도 데이터가 각각 초당 몇 번의 샘플링을 한다는 등의 기본 정보를 저장)을 토대로 추정할 수도 있고, 실행되는 어플리케이션별로 입력 데이터의 종류와 각 크기를 전달받아 예측하는 방식을 취할 수 있다.The prediction method is a table of data types and sizes for each application accumulated in advance according to the type of application currently being executed (e.g., in the case of an indoor fire monitoring application, 5 types of gas concentration data are sampled once per second, or each It can also be estimated based on basic information such as how many times per second of each type of gas concentration data is sampled), or it can be estimated by receiving the type and size of input data for each application being executed.

또는 소정시간 사전에 입력되는 데이터의 종류와 크기를 토대로 그 후에 입력되는 데이터의 종류와 크기를 (동일하게) 추정할 수도 있는 등, 예측 방식은 위 예시들에 한정되지는 않고, 본 발명의 기술적 사상의 범주 내에서 가능한 다양한 방식을 포괄한다.Alternatively, based on the type and size of data inputted in advance for a predetermined time, the type and size of data to be input thereafter may be (equally) estimated. The prediction method is not limited to the above examples, and the technical It covers the various ways possible within the scope of thought.

PSE(320)이 각 입력 데이터 세트의 크기를 예측하면, PSM(310)은 예측된 입력 데이터 세트의 크기에 맞추어 해당 입력 데이터 세트를 저장할 메모리 영역을 할당한다. 메모리 영역의 할당과 저장은 각 입력 데이터 세트의 크기 순서대로 진행하는 것이 바람직하다. When the PSE 320 predicts the size of each input data set, the PSM 310 allocates a memory area to store the input data set according to the predicted size of the input data set. It is preferable to allocate and store memory areas in order of size of each input data set.

또한, 메모리 관리 시스템(300)은 각 입력 데이터 세트가 적정하게 메모리에 할당되는지를 검증하고 재할당을 할 수 있다. Further, the memory management system 300 may verify whether each input data set is properly allocated to the memory and perform reallocation.

이를 위하여, PSM(310)은 각 입력 데이터가 필요로 하는 메모리 사이즈 B의 크기에 따라 뉴로모픽 메모리 내 각 메모리 영역을 설정하면, PSE(320)가 각 입력 데이터가 필요로 하는 메모리 사이즈 B의 크기에 따라 뉴로모픽 메모리 내 각 입력 데이터에 대하여 사용 가능한 열 또는 행(각 입력 데이터별로 가설정한 메모리 영역의 어느 한 변)에 해당하는 셀 개수(H)와 비교해서 활용 임계치(UT = B/H)를 정하고, 이어서 H/UT 값을 구한다. To this end, if the PSM 310 sets each memory area in the neuromorphic memory according to the size of the memory size B required for each input data, the PSE 320 determines the memory size B required for each input data. Depending on the size, the utilization threshold (UT = B/) is compared with the number of cells (H) corresponding to the available columns or rows (one side of the memory area temporarily set for each input data) for each input data in the neuromorphic memory. H) is determined, and then the H/UT value is calculated.

H/UT가 2 라면, 가로 세로 영역이 1:2인 메모리 영역에 저장될 것으로 볼 수 있고, 1 이라면 정사각형 영역에 저장되는 것으로 간주할 수 있다. 즉, 1에 가까울수록 근처 메모리 셀에 군집된 정도가 크다고 판단한다. If H/UT is 2, it can be considered to be stored in a memory area with a horizontal and vertical area of 1:2, and if it is 1, it can be regarded as being stored in a square area. That is, it is determined that the closer to 1, the greater the degree of clustering in nearby memory cells.

한편, UT가 1 미만의 경우에는 하나의 행 또는 열에 해당하는 메모리 셀의 갯수 보다도 입력 데이터가 적은 것이므로 낭비되는 메모리 셀이 있을 수 있다고 추정할 수 있다.On the other hand, if the UT is less than 1, it can be estimated that there may be wasted memory cells because input data is less than the number of memory cells corresponding to one row or column.

따라서, 가급적 각 입력 데이터에 대한 H/UT의 비가 1에 근접하도록 H를 설정하는 것이 바람직할 것이고 10을 넘지 않은 것이 좋으며, 1 내지 5의 영역이 되는 것이 더 바람직하다.Therefore, it is preferable to set H so that the ratio of H/UT for each input data is close to 1, and it is preferable not to exceed 10, and it is more preferable to be in the range of 1 to 5.

본 발명에 따른 메모리 관리 시스템(300)은 위 H/UT의 값을 기초로 메모리를 재할당하고, 이에 따른 데이터별 메모리 영역 및 H 값에 따라 다시 H/UT를 계산하여 바람직하게는 이 값이 1 내지 5에 근접하는 수준까지 전술한 과정을 반복하여 메모리의 영역을 최종 설정하거나, 또는 각 메모리 할당 영역이 10 이내가 되도록 재할당과정에 H/UT 계산 과정을 반복하여 메모리 영역을 할당하는 방식을 취할 수 있다.The memory management system 300 according to the present invention reallocates the memory based on the above H/UT value, and calculates the H/UT again according to the memory area and H value for each data. A method of allocating a memory area by repeating the above-described process to a level close to 1 to 5 to finally set the memory area, or repeating the H/UT calculation process in the reallocation process so that each memory allocation area is within 10 Can take.

각 데이터 세트를 저장할 메모리 영역이 정해지면, UT의 크기 순서대로 또는 입력 데이터 세트의 크기 순서대로 데이터를 각 영역에 저장한다. When a memory area to store each data set is determined, data is stored in each area in the order of the size of the UT or the size of the input data set.

이와 같은 방식을 취할 경우 최적의 메모리 활용 효율을 얻을 수 있다.In this way, optimal memory utilization efficiency can be obtained.

도 8 및 도 9을 참조하여, 본 발명에 따른 메모리 할당에 대한 다른 실시예를 설명한다. Another embodiment of memory allocation according to the present invention will be described with reference to FIGS. 8 and 9.

입력 데이터 세트 크기 순서대로 가장 큰 입력 데이터 세트부터 4개의 입력 데이터 세트를 메모리의 4변을 우선 할당하고 그 다음부터는 감마 엘레먼트 기법을 이용하여 할당 영역을 설정한다. 3차원 메모리의 경우에는 가장 큰 입력 데이터 세트부터 6개의 입력 데이터 세트를 메모리의 6면을 우선 할당하고 감마 엘레먼트 기법을 이용하여 나머지 할당 영역을 설정한다. 이하의 설명은 2차원 격자 메모리의 경우를 예로 들고 있으나, 3차원 이상의 고차원 메모리에도 적용될 수 있음은 물론이다.Four sides of the memory are first allocated to the four input data sets starting from the largest input data set in the order of the size of the input data set, and then the allocation area is set using a gamma element technique. In the case of a 3D memory, 6 sides of the memory are first allocated from the largest input data set to the 6 input data sets, and the remaining allocated areas are set using a gamma element technique. The following description takes the case of a two-dimensional lattice memory as an example, but it can be applied to a high-dimensional memory of three or more dimensions.

구체적 방식은 다음과 같다.The specific method is as follows.

1) 단일 메모리 사이즈를 확인 x축과 y축에 따른 뉴런 사이즈 및 뉴런 수(

Figure pat00001
), 즉 메모리 영역의 각 변의 메모리 셀의 수를 확인한다. 1) Check the size of a single memory neuron size and number of neurons along the x-axis and y-axis (
Figure pat00001
), that is, check the number of memory cells on each side of the memory area.

이때, 가급적이면

Figure pat00002
만족하는 것이 좋다. 즉, 각 메모리 영역은 정사각형에 근사한 영역이 할당되도록 하는 것이 좋다. At this time, if possible
Figure pat00002
It is good to be satisfied. That is, it is preferable to allocate an area approximate to a square for each memory area.

2) 도 8에 도시된 바와 같이, 입력 데이터 A,B,C,D 대해서 최대한 입력 가능한 순서로 메모리의 4면의 가장자리를 채운다. 2) As shown in Fig. 8, the edges of the four sides of the memory are filled in the order in which input data A, B, C, D can be input as much as possible.

3) 그 후, 중앙의 남은 부분에 대해서 겹칩이 없고 최대한으로 사용하기 위해

Figure pat00003
엘레먼트 기법을 사용하여 ,
Figure pat00004
,
Figure pat00005
수식에 따라 각각 할당하고, ,
Figure pat00006
,
Figure pat00007
와 같은 방식으로, 순차적으로 해당 면적을 설정한다.3) After that, there is no overlapping chip for the remaining part of the center and to use it to the maximum
Figure pat00003
Using the element technique,
Figure pat00004
,
Figure pat00005
Assign each according to the formula, and,
Figure pat00006
,
Figure pat00007
In the same way as, set the area sequentially.

4) 위에서 정해진 영역에 각 데이터의 크기 순서대로 데이터를 할당한다. 4) Allocate data in the order of size of each data to the area specified above.

4-1) 4면의 가장자리부를 채우는 최초의 4개의 데이터 A, B, C, D는 그 크기의 순서대로 할당을 한다.4-1) The first four data A, B, C, and D filling the edges of the four sides are allocated in the order of their size.

4-2) 그 이후에는 입력 데이터의 크기 순서대로

Figure pat00008
,
Figure pat00009
,
Figure pat00010
,
Figure pat00011
의 영역을 채운다. 4-2) After that, in the order of input data size
Figure pat00008
,
Figure pat00009
,
Figure pat00010
,
Figure pat00011
Fill the area.

도 9는 본 발명의 제3 실시예에 따른 최적의 데이터 입력 방법을 예시한 도면인데, 도 9와 같은 경우에는, 우선 A > B > C > D 의 크기에 따라 이 순서대로 4면의 가장자리를 채우고, 그 다음 크기를 가지는 입력 데이터들에 대해서는

Figure pat00012
>
Figure pat00013
>
Figure pat00014
>
Figure pat00015
의 순서대로 해당 영역에 저장한다.FIG. 9 is a diagram illustrating an optimal data input method according to a third embodiment of the present invention. In the case of FIG. 9, first, the edges of the four sides are in this order according to the size of A>B>C> D. Fill, then for input data with the next size
Figure pat00012
>
Figure pat00013
>
Figure pat00014
>
Figure pat00015
Save in the corresponding area in the order of.

이를 위해서 PSM(310) 및 PSE(320)는 각 입력 데이터의 크기를 모두 알고 있거나 예측(추정)하고 있어야 함은 물론이다.To this end, the PSM 310 and the PSE 320 must all know or predict (estimate) the size of each input data.

본 실시에에서, 만약 메모리 할당 중에 어떤 데이터 세트의 크기가 해당 순서로 할당된 메모리 영역보다 크게 될 경우에는, 우선 해당 데이터 세트를 분할하여 할당된 메모리 영역에 저장하고, 저장되지 않은 나머지 부분의 크기보다 큰 다른 메모리 영역들 중 가장 적은 메모리 영역에 해당 데이터 세트의 나머지 부분을 저장한다. 만약 해당 데이터 세트의 크기가 두 개의 메모리 영역의 크기의 합보다도 큰 경우에는 위와 같은 방식으로 셋 이상의 메모리 영역에 저장한다. In this embodiment, if the size of a data set becomes larger than the memory area allocated in the corresponding order during memory allocation, the data set is first divided and stored in the allocated memory area, and the size of the remaining portion that is not stored It stores the rest of the data set in the smallest of the other, larger memory areas. If the size of the data set is larger than the sum of the sizes of the two memory areas, the data is stored in three or more memory areas in the same manner as above.

PSM(310)은 하나의 데이터 세트를 하나 이상의 메모리 영역에 저장할 경우, 해당 데이터 세트가 하나 이상의 어떤 메모리 영역에 저장되었는지를 항상 파악하고 관리한다. When storing one data set in one or more memory areas, the PSM 310 always identifies and manages in which memory areas the data set is stored in one or more memory areas.

전술한 실시예 공통적으로, 입력 데이터의 크기 순서대로 메모리를 할당하고 저장하며, 각 입력 데이터의 메모리 영역은 가급적 정사각형에 근사하게 설정하고, 같은 종류의 입력 데이터는 군집화하는 방향으로 영역을 설정하고 할당하는 방식을 취한다. 바꾸어 말하면, 할당되지 않고 남은 잔존 영역이, 여러 경우의 수 중에서 가능한 한 가장 큰 군집 영역이 되도록 메모리 영역을 설정한다.In common in the above-described embodiments, memory is allocated and stored in the order of size of input data, and the memory area of each input data is set as close as possible to a square, and the area is set and allocated in the direction of clustering of the same type of input data. Take the way to do it. In other words, the memory area is set so that the remaining unallocated area becomes the largest cluster area possible among the number of cases.

즉, 크기가 큰 입력 데이터부터 가용 면적이 가장 큰 영역에 메모리를 할당하고자 하는 것이며, 이럼으로써 사용하지 않은 메모리 공간을 최소화하도록 한다. In other words, it is intended to allocate memory to an area having the largest usable area from input data having a large size, thereby minimizing unused memory space.

또한, PSE(320)는 사용자가 필요로 하는 규칙을 정의할 수 있도록 소프트웨어 영역을 제공한다. 즉, 사용자가 복수개의 입력에 대해서 어떤 조합이 어떤 조건을 만족하는가를 정의할 수 있는 영역을 마련해두고, 조건이 완료되면 PSM(310)에서 해당 데이터를 어떤 메모리에 어떻게 할당할 것인지를 결정한다.In addition, the PSE 320 provides a software area to define rules required by the user. That is, an area in which a user can define which combination satisfies which condition for a plurality of inputs is prepared, and when the condition is completed, the PSM 310 determines how and in which memory the corresponding data is to be allocated.

PSM(310)은 PSE(320)의 예측 결과에 기초하여 입력 데이터들을 메모리에 저장하는데, 2차원 메모리의 가로배열과 세로배열에 대하여 교번적으로 입력 데이터를 저장하여 최적의 메모리 사용 영역을 확보한다. 3차원 메모리의 경우에는 가로, 세로, 높이의 배열(즉, x, y, z의 3축)을 따라 교번적으로 입력데이터를 저장한다.The PSM 310 stores input data in a memory based on the prediction result of the PSE 320, and secures an optimal memory usage area by alternately storing input data for the horizontal and vertical arrays of the 2D memory. . In the case of a 3D memory, input data is alternately stored along an array of horizontal, vertical, and height (ie, three axes of x, y, and z).

이와 같이, PSM(310) 및 PSE(320)를 통해 확보된 메모리 영역에 맞게 각 데이터가 학습되며, 다양한 데이터에 대한 정보 융합 학습이 한 번에 일어나게 되므로, 뉴로모픽 반도체 칩 내 메모리 사이즈 정도의 작은 메모리에서도 학습이 가능한 장점이 있으며, 저전력으로 빠른 접근이 가능하다. In this way, each data is learned according to the memory area secured through the PSM 310 and PSE 320, and information fusion learning for various data occurs at once, so that the memory size of the neuromorphic semiconductor chip It has the advantage of being able to learn even in a small memory, and quick access with low power is possible.

학습 결과는 별도로 저장되고 향후 학습 인식을 위해 사용된다.Learning results are stored separately and used for future learning recognition.

인식(추론) 단계에서, PSM(310)은 학습된 영역의 데이터 상태를 알고 있으므로, 인식을 위해 여러 종류의 입력 데이터가 입력될 때 비교가 가능하도록 해당 데이터의 비교연산을 수행에 필요한 제반 절차를 진행한다. In the recognition (inference) step, since the PSM 310 knows the state of the data in the learned area, the PSM 310 performs all the necessary procedures for performing the comparison operation of the corresponding data so that when various types of input data are input for recognition. Proceed.

이와 같이, 본 발명에 따른 메모리 관리 시스템(300)은, 메모리 공간을 사용하는데 있어 PSM(310)과 PSE(320)를 이용하여 해당 애플리케이션에 대한 메모리 사용 정도를 예상하고 전체 뉴로모픽 메모리 구조에서 사용하지 않은 영역을 최대한 사용할 수 있도록 할당 또는 재할당하여 메모리 효율성을 높인다. As described above, in using the memory space, the memory management system 300 according to the present invention estimates the degree of memory use for the application by using the PSM 310 and PSE 320, and in the entire neuromorphic memory structure. Increases memory efficiency by allocating or reallocating unused areas to maximize use.

기존의 외부 메모리 유닛 사용방식에 비해, 학습을 위한 데이터 저장과 추론을 위한 비교 연산을 각각 여러 데이터 세트에 대해 동시에 할 수 있으므로 외부 메모리 유닛 접근에 따른 성능 저하를 방지할 수 있는 장점이 있다. Compared to the conventional method of using an external memory unit, since data storage for learning and comparison operation for inference can be performed on several data sets at the same time, there is an advantage in that performance degradation due to access to the external memory unit can be prevented.

이하에서는, 본 발명에 따른 메모리 관리 시스템(300)에 의하여 수행할 수 있는 데이터 연산 방법에 대하여 구체적으로 설명한다. Hereinafter, a data operation method that can be performed by the memory management system 300 according to the present invention will be described in detail.

종래의 뉴로모픽 메모리는 전술한 바와 같이 데이지체인 방식으로 데이터를 저장한 후 한번에 한 종의 데이터에 대해서만 연산이 가능하므로, 결과적으로 단일 레이어를 사용하게 되어 입력 데이터와 학습 데이터간의 단순한 1회의 데이터 비교만 가능하다. 결과적으로 비교 결과(추론 결과)에 있어서 정확도가 많이 떨어지는 단점이 있다.Conventional neuromorphic memory stores data in a daisy-chain method as described above, and can then operate on only one type of data at a time. As a result, a single layer is used, and a simple one-time data between input data and training data. Only comparison is possible. As a result, there is a disadvantage that the accuracy of the comparison result (inference result) is very poor.

물론 단일 레이어 방식의 학습과 인식에서도 비교량이 많은 경우에 인식률이 높아지는 경향을 나타낸다. 그러나, 메모리 제조공정의 특성상 메모리양을 늘릴 경우, 제조 비용이 높아지고 저전력을 유지하기 어려운 문제가 있다. 특히 비교학습에 필요한 충분한 입력데이터를 확보하고, 전처리해야하는 문제가 발생한다.Of course, even in the single layer method of learning and recognition, the recognition rate tends to increase when the amount of comparison is large. However, due to the nature of the memory manufacturing process, when the amount of memory is increased, manufacturing cost increases and it is difficult to maintain low power. In particular, a problem arises in that sufficient input data required for comparative learning must be secured and pre-processed.

또한, 하나의 입력데이터가 아닌, 복수개의 입력 데이터(예를들어, 축센서 데이터 이후 온도 데이터를 학습하고 싶을 경우) 학습이 필요한 경우, 종래 방식에서는 단일 레이어 방식으로 인해, 하나의 데이터를 학습하고 학습한 결과를 외부 메모리에 저장, 새로운 데이터는 다시 학습하고 학습된 결과를 외부 메모리에 저장하고 비교하는 별도의 과정이 필요한 문제가 있다. In addition, when learning is necessary, not one input data, but a plurality of input data (for example, when you want to learn temperature data after axis sensor data), in the conventional method, because of the single layer method, one data is learned. There is a problem that a separate process of storing the learned result in an external memory, learning new data again, and storing and comparing the learned result in an external memory is required.

또한, 단일 레이어의 병렬비교연산 특성상, 기계학습에 필요한 다양한 알고리즘을 적용할 수 없는 한계가 있다. 예를들어, SVM(support vector machine)과 같은 알고리즘에는 복수개의 레이어가 적용되고 가중치 연산이 가능한 구조가 되어야한다. In addition, due to the characteristics of a single layer parallel comparison operation, there is a limitation in that various algorithms required for machine learning cannot be applied. For example, an algorithm such as a support vector machine (SVM) must have a structure in which a plurality of layers is applied and weight calculation is possible.

따라서, 본 발명의 데이터 연산 방법은 우선, 전술한 가변형 메모리 구조 및 메모리 관리 시스템(300)을 이용하여 도 10과 같이 둘 이상의 데이터를 각각 다른 메모리 영역에 저장한다.Accordingly, in the data operation method of the present invention, first, two or more data are stored in different memory areas as shown in FIG. 10 using the above-described variable memory structure and memory management system 300.

이러한 가변형 구조를 사용할 경우, 도 11와 같이 입력 데이터가 A,B 또는 A,B,C 이상이 될 때 회귀연산 형태의 효과를 가질 수 있다. In the case of using such a variable structure, as shown in FIG. 11, when the input data is A, B, or A, B, C or more, the effect of a regression operation may be obtained.

이러한 방법은 서로 다른 종류의 복수 개의 데이터에도 적용 가능하지만, 단일 데이터의 시간차에 따른 변화를 추적 비교할 때도 가능하다. 도 12는 단일 데이터의 시간차 변화 추적인 경우를 나타내고 있으며, 가중치 연산이 가능하므로 정확도 향상 뿐만아니라, 회귀연산 알고리즘을 적용할 수 있게 된다.This method can be applied to a plurality of different types of data, but it is also possible to track and compare changes in single data over time. 12 shows a case of tracking time difference change of single data, and since weight calculation is possible, not only accuracy improvement but also a regression calculation algorithm can be applied.

또한, 도 11에 도시된 실시예 및 도 12에 도시된 실시예가 결합한 형태로도 변형이 가능하며, 복수 데이터의 시간차에 따른 변화를 추적 비교할 때도 가능하다. 도 13은 이와 같은 복수 데이터의 시간차 변화 추적인 경우를 설명하고 있으며, 다양한 비교연산 알고리즘을 적용할 수 있다. In addition, the embodiment shown in FIG. 11 and the embodiment shown in FIG. 12 can be modified in a combined form, and it is also possible to track and compare changes according to time differences of a plurality of data. 13 illustrates a case of tracking change in time difference of such a plurality of data, and various comparison algorithms may be applied.

이하, 연산 방식에 대한 구체적인 몇 실시예를 들어 더 상세히 설명할 것이나, 본 발명에 따른 연산 방식이 이에 한정되는 것이 아님은 물론이다.Hereinafter, some specific embodiments of the calculation method will be described in more detail, but it is a matter of course that the calculation method according to the present invention is not limited thereto.

[연산 방식의 제1 실시예][Embodiment 1 of the calculation method]

도 11과 같이 복수개의 서로 다른 데이터를 동시에 입력받게 되면, 예를 들어 운전자의 졸음운전을 방지하는 서비스를 구현하는 경우, 운전자의 생체 정보 중 심박, 눈깜박임을 각각 A,B 데이터로 입력받아 학습한 다음, 추론 단계에서 비교연산을 수행하고 그 결과를 주행시간별 데이터(C 데이터)와의 비교학습, 비교연산을 재수행하여 정확도를 향상시킬 수 있다. 즉, 일정 회수 이상의 심박 및/또는 눈깜박임만으로 획일적으로 졸음 여부를 판단하는 것이 아니라, 심박 및/또는 눈깜박임의 비교 결과에 주행시간 조건을 가미하여 졸음 여부를 판단하는 것이다.When a plurality of different data are simultaneously input as shown in FIG. 11, for example, when implementing a service that prevents the driver from drowsy driving, the heart rate and the blinking of the driver's biometric information are input as A and B data, respectively, and learn. Then, in the inference step, the comparison operation is performed, and the result is compared with the driving time data (C data), and the comparison operation is performed again to improve accuracy. That is, not uniformly determining whether a person is drowsy only with a certain number of heartbeats and/or blinking, but determining whether he is drowsy by adding a driving time condition to the comparison result of the heartbeat and/or blinking.

가령, 주행시간이 1시간 미만일 경우의 심박수와 눈깜박임은, 주행시간이 3시간 이상인 경우의 심박수와 눈깜박임과 다른 특성을 가질 수 있다. 예컨대, 장시간 운전을 하게 되면 운전을 시작한 얼마안된 상태에 비하여 심박수와 눈깜박임이 낮아질 수 있고 또는 반대가 될 수 있다. For example, the heart rate and blinking when the driving time is less than 1 hour may have different characteristics from the heart rate and blinking when the driving time is 3 hours or more. For example, when driving for a long time, the heart rate and blinking may be lowered or vice versa compared to the state in which the driving started shortly.

따라서, 졸음 상태로 볼 수 있는 범위의 복수의 심박수, 눈깜박임 수를 미리 학습하여 놓고(A, B 데이터), 아울러 주행시간별로 졸음상태로 볼 수 있는 심박수와 눈깜박임수를 학습하여 놓은 다음, 1차적으로 심박수와 눈깜박임이 졸음 범위에 해당하지 않으면 C 데이터에 대한 비교 연산을 수행하지 않지만, 만약 심박수와 눈깜박임이 졸음 범위에 해당한다면, C 데이터에 대한 비교 연산을 수행하여 주행시간별 졸음 상태로 볼 수 있는 심박수와 눈깜박임인지를 판별하여 최종적으로 졸음 여부를 판단한다. Therefore, after learning in advance a plurality of heart rates and number of blinks in the range that can be seen as a drowsy state (data A, B), and learning the heart rate and blink rate that can be seen as a drowsy state by driving time, Primaryly, if the heart rate and blinking are not within the drowsiness range, the comparison operation is not performed on the C data, but if the heart rate and blinking are within the drowsiness range, the comparison operation is performed on the C data and drowsiness by driving time. It determines whether the heart rate and blinking of eyes can be seen as a result of the determination of drowsiness.

또는 A, B 데이터에 대해서도 상관성이 있거나 우선적 판단이 가능하다면, A, B 중 하나의 데이터만을 먼저 비교하여, 졸음 영역에 있는 것으로 판단이 되면 후속하여 다른 데이터를 비교하고, 다른 데이터의 비교 결과 역시 졸음 영역에 해당할 경우 C 데이터를 비교하는 식으로 순차적으로 각 데이터를 비교연산하여 판단하는 방식으로 구성할 수도 있다. Or, if there is a correlation or preferential determination for A and B data, only one of A and B is first compared, and if it is determined that it is in the drowsy area, then other data are compared, and the comparison result of the other data is also In the case of the drowsiness region, the C data may be compared, and each data may be sequentially compared and calculated to be determined.

이러한 A, B, C 데이터는 운전자 별로 학습하는 것이 바람직할 것이나, 개인별 학습이 어렵거나 불편한 경우, 여러 운전자의 데이터의 기준 데이터(학습값)을 저장시킨 후 해당 입력 데이터의 범위가 저장된 범용 데이터의 영역이나 각 조건을 만족하는지 여부를 판별하도록 구성할 수 있다. It would be desirable to learn these A, B, and C data for each driver, but if individual learning is difficult or inconvenient, after storing the reference data (learning value) of the data of several drivers, the range of the corresponding input data is stored. It can be configured to determine whether an area or each condition is satisfied.

또한, 도 12와 같이 시간차에 따른 입력 데이터의 변화를 따라서 상황을 인식하는 연산을 수행할 수 있다. 예를 들면 어떤 상황인지를 판단하기 위해서 시간에 따른 일정 패턴이 필요한 데이터인 경우, 시간 별로 데이터를 저장해놓고, 해당 데이터가 일정 패턴에 맞도록 변화하는지를 확인하는데 적용 가능하며, 데이터의 비교 순서에 따라 연산의 순서를 정하여 각 입력 데이터 세트 별로 가중치를 부여하는 효과를 낼 수 있다. In addition, as shown in FIG. 12, an operation for recognizing a situation may be performed according to a change in input data according to a time difference. For example, in the case of data that requires a certain pattern over time to determine a situation, it can be stored by time and applied to check whether the data changes to fit a certain pattern, and according to the order of comparison of the data. By setting the order of operations, it is possible to have the effect of assigning weights to each input data set.

특히, 데이터의 비교 순서에 따라 우선순위가 정해진 경우, 즉 첫 번째 데이터의 변화가 중요한 경우, 입력 데이터와 학습 데이터 비교 후 인식결과에 실질적으로 가중치를 부여하는 효과를 내도록 하고, 가중치가 부여된 데이터와 다음 시간에 입력된 데이터를 다시 비교학습하는 효과를 발휘하도록 하여 인식률을 높일 수 있다. In particular, when the priority is determined according to the order of comparison of data, that is, when the change of the first data is important, after comparing the input data and the training data, the recognition result is substantially weighted, and the weighted data The recognition rate can be increased by exerting the effect of comparing and learning the input data again at and next time.

예를 들어, 시간 t = 0에 입력된 a 가스 농도에 대한 입력 데이터 세트 A를 기학습된 결과(기준 데이터)와 비교하여 유사도를 기초로 가스 농도를 파악한다. 예컨대 a 가스 농도를 30ppm으로 파악했다면 다음의 측정 시간 t=1 에서 입력된 농도값이 11ppm 내지 35ppm에 해당하면 위험경고를 내도록 하고, 시간 t=0 에서 가스 농도가 예컨대 10ppm 범주로 파악했다면 다음의 측정 시간 t=1 에서 측정된 가스 농도가 17ppm 내지 22ppm에 해당해야만 위험경고를 내도록 설정할 수 있다. 이러한 설정은 시간 t=2 에 대해서도 시간 t=0 및 시간 t=1간의 관계와 같은 방식으로 설정될 수 있으며 t > 2 이상의 시점에 대해서도 이와 같이 설정하여 다중 레이어를 구성할 수 있다.For example, the input data set A for the gas concentration a input at time t = 0 is compared with the previously learned result (reference data) to determine the gas concentration based on the similarity. For example, if a gas concentration is determined to be 30 ppm, a danger warning is issued if the input concentration value at the next measurement time t=1 falls between 11 ppm and 35 ppm, and if the gas concentration at time t = 0 is determined as, for example, in the 10 ppm category, the following The danger warning can be set only when the gas concentration measured at the measurement time t=1 falls between 17 ppm and 22 ppm. This setting can be set in the same manner as the relationship between time t=0 and time t=1 for time t=2, and multiple layers can be configured by setting in this manner for time points t> 2 or more.

이와 같은 설정하에서는 시간 t = 0 일때의 a 가스 농도는 시간 t = 1 일 때의 a 가스 농도에 비하여 가중치가 높게 된 것과 같은 효과가 발휘된다.Under such a setting, the gas concentration a at time t = 0 has the same effect as having a higher weight compared to the gas concentration a at time t = 1.

즉 하나의 임계값을 정해두고 넘어서면 위험, 안전이라고 판단했던 종래 기술과는 다르게, 제품의 특성에 따른 다양한 임계값을 설정해두고, 해당 범위를 만족할 때 추가로 판단하는 좀 더 정교화된 판단이 가능하다. In other words, different from the prior art, which determined that one threshold value was determined as risk and safety when exceeded, it is possible to set various threshold values according to the characteristics of the product, and make more sophisticated judgments that additionally determine when the corresponding range is satisfied. Do.

동일 시점에 입력된 다른 데이터(A 가스 농도, B 가스 농도)를 동일한 방식으로 순차적으로 연산하여 동일 효과를 얻을 수 있다.The same effect can be obtained by sequentially calculating different data (A gas concentration, B gas concentration) input at the same time in the same manner.

본 발명에 따르면, 가변형 메모리 구조를 이용하여 입력 데이터에 대한 다중 레이어를 구성함으로써, 각 시점의 입력 데이터에 대한 가중치를 각각 다르게 부여하는 효과를 얻을 수 있다. According to the present invention, by configuring multiple layers for input data using a variable memory structure, it is possible to obtain an effect of giving different weights to input data at each viewpoint.

이러한 점을 뉴로모픽 메모리에 구현하는 방식은, 현재 연산 결과에 따라 다음 연산의 기준 데이터를 결정하는 방식으로 위와 같은 가중치 부여 효과를 발휘하도록 할 수 있다.The method of implementing this point in the neuromorphic memory can exert the above weighting effect by determining reference data for the next operation according to the current operation result.

이러한 방식은 정확도를 높이고, 해당 결과가 오류가 나지 않도록 해주는 장점이 있다. This method has the advantage of increasing accuracy and preventing errors in the result.

도 14는 연산 단계적으로 정밀도를 높여가는 방식을 나타내고 있다.14 shows a method of increasing the precision in stages of computation.

영상 기반으로 어떤 부품의 0도 내지 90도 사이의 기울어짐을 판단하는 경우, 종래의 단일 레이어 구조에서 1도 단위로 기울어짐을 판단하려면 각 기울어진 영상 데이터에 대한 적어도 90개의 학습 데이터(기준 데이터)를 마련하고 부품을 촬영한 영상과 90개의 기준 데이터를 각각 대비하여야 한다. When determining the inclination of a part between 0 and 90 degrees based on an image, in order to determine the inclination in units of 1 degree in a conventional single layer structure, at least 90 training data (reference data) for each inclined image data Prepared and contrasted with the image of the parts and 90 reference data, respectively.

그런데, 이를 예컨대 3 단계로 나누어 판단하면 훨씬 적은 기준 데이터에 대한 비교연산 만으로 동일한 정밀도를 얻을 수 있다. However, if this is determined by dividing it into, for example, three steps, the same precision can be obtained with only a comparison operation for much less reference data.

즉, 1 단계에서는 기울어진 정도가 0도 및 90도인 2개의 학습 데이터(기준 데이터)만을 대비하여 그 결과 회전각이 90도 보다는 0도에 가깝다고 판단하면 2단계에서 10도 단위로 5개의 기준 데이터를 마련하여 영상 데이터와 대비하고, 그 결과 이중에서 10도에 가장 가깝다고 판단되면 3단계에서 1도 단위의 11개 기준 데이터를 가지고 5도 내지 15도의 범위 내의 기준 데이터과 입력 영상 데이터를 대비하여 이중에서 가중 유사도가 높은 기준 데이터를 찾아 기울어진 각도를 판단한다. That is, in step 1, if only two training data (reference data) with an inclination of 0 degrees and 90 degrees are compared, and as a result, if the rotation angle is determined to be closer to 0 degrees than 90 degrees, five reference data in increments of 10 degrees in step 2 Is prepared and compared with the image data, and as a result, if it is determined that it is the closest to 10 degrees, in step 3, the reference data within the range of 5 to 15 degrees and the input image data are compared with 11 reference data in units of 1 degree. Find reference data with high weighted similarity and determine the inclination angle.

이럴 경우, 1도 단위의 정밀도로 기울어짐을 판단하는데 있어서, 대비되는 기준 데이터는 3 단계 합쳐서 18개에 불과하다. In this case, in determining the inclination with a precision of 1 degree, there are only 18 contrasting reference data in total of 3 steps.

입력 데이터와 비교되는 학습 데이터가 적게 되면, 기준 데이터의 이동에 따른 처리 부하와 전력 소비를 현저히 줄일 수 있다.When the number of training data compared to the input data decreases, processing load and power consumption due to movement of the reference data can be significantly reduced.

또한, 본 발명에 따른 데이터 연산 방법은 가변형 뉴로모픽 메모리 구조하에서 처리되므로, 복수개의 입력 데이터를 가질 수 있고, 따라서 입력 데이터에 가중치 연산 후 가중치 연산 된 데이터를 새로운 입력 데이터로 보고 이에 대하여 비교 연산을 수행 후 결과를 도출할 수 있다. 그 결과, 1개의 은닉층(hidden layer)를 갖는 방식에 비해, 정확도가 높으며, 딥러닝과 같은 효과를 가질 수 있다. In addition, since the data operation method according to the present invention is processed under a variable neuromorphic memory structure, it is possible to have a plurality of input data. Therefore, after calculating a weight on the input data, the weighted data is viewed as new input data and a comparison operation is performed. You can derive results after performing As a result, compared to a method having one hidden layer, the accuracy is high, and the same effect as deep learning can be obtained.

특히, 여러 데이터 융합을 통해 새로운 데이터를 도출할 수 있으며, 도출된 새로운 데이터를 학습할 수 있는 장점이 있다. 이러한 방법은 단일 레이어를 멀티 레이어 방식으로 변환해, 회귀 연산이 가능하므로 복잡한 알고리즘도 적용할 수 있는 장점이 있다. In particular, it has the advantage of being able to derive new data through fusion of multiple data and to learn new data derived from it. This method has the advantage of being able to apply complex algorithms because it can convert a single layer into a multi-layer method and perform regression operations.

전술한 실시예에서 입력 데이터의 크기와 입력 시점의 예측은 PSE(220)이 수행하고, 입력 데이터 세트 및 기준 데이터 세트를 위한 메모리의 영역의 할당과 각 데이터 세터의 저장은 PSM(210)이 수행한다. 각 입력 데이터 세트에 대한 연산의 순서 및 시점 제어는 PSM(210)이 수행할 수도 있고 별도의 연산 제어기(미도시)가 수행할 수도 있다.In the above-described embodiment, the prediction of the size of the input data and the input timing is performed by the PSE 220, and the allocation of the memory area for the input data set and the reference data set and the storage of each data setter are performed by the PSM 210. do. The order and timing of operations for each input data set may be controlled by the PSM 210 or a separate operation controller (not shown).

이상, 몇몇 실시예를 참조하여 본 발명의 구성에 대하여 상세히 설명하였으나, 이는 예시에 불과할 뿐 본 발명의 기술적 사상이 이에 한정되는 것은 아니다.In the above, the configuration of the present invention has been described in detail with reference to some embodiments, but this is only an example and the technical idea of the present invention is not limited thereto.

본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. Those of ordinary skill in the art to which the present invention pertains will appreciate that it is possible to easily transform into other specific forms without changing the technical spirit or essential features of the present invention. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not limiting.

예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다. 예컨대, 각 실시예에서 PSM 및 PSE는 별도의 소프트웨어 모듈 또는 하드웨어 모듈인 것으로 설명하였으나, 하나로 결합된 소프트에어 또는 하드웨어로서 구현되고 동작될 수 있다. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as being distributed may also be implemented in a combined form. For example, although it has been described that the PSM and PSE are separate software modules or hardware modules in each embodiment, they may be implemented and operated as a combined soft air or hardware.

또한, 본 발명의 시스템 및 방법은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.In addition, although the systems and methods of the present invention have been described in connection with specific embodiments, some or all of their components or operations may be implemented using a computer system having a general-purpose hardware architecture.

특히, 이상의 실시예에서는 뉴로모픽 반도체 내의 메모리를 주된 대상으로 설명하였으나, 본 발명의 기술 사상 중 다른 유형의 메모리에 적용될 수 있는 구성은 다른 유형의 메모리 관리에 적용될 수 있음은 물론이다.In particular, in the above embodiments, a memory in a neuromorphic semiconductor has been described as a main target, but it is a matter of course that a configuration applicable to other types of memory among the technical concepts of the present invention can be applied to other types of memory management.

따라서, 본 발명의 범위는 후술하는 특허 청구범위에 의하여 정의되며 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다. Accordingly, the scope of the present invention is defined by the claims to be described later, and all changes or modified forms derived from the equivalent concept should be interpreted as being included in the scope of the present invention.

Claims (12)

다차원 격자 구조를 가지는 메모리와,
둘 이상의 데이터 세트 각각의 메모리 사용 정도를 예측하고 상기 메모리에 입력할 순서를 결정하는 예지부와,
상기 예지부의 예측 결과에 따라 상기 둘 이상의 데이터 세트를 저장할 메모리 영역을 할당하여 상기 데이터 세트를 저장하고 학습 및 추론시키는 관리부
를 포함하는 메모리 관리 시스템.
A memory having a multidimensional lattice structure,
A prediction unit that predicts a degree of memory usage of each of two or more data sets and determines an order of input to the memory;
A management unit that stores, learns, and infers the data set by allocating a memory area to store the two or more data sets according to the prediction result of the prediction unit
Memory management system comprising a.
제1항에 있어서, 상기 메모리는,
상기 2차원 및 3차원 격자 구조 중 하나의 구조를 가지며, 각 차원에 따라 둘 이상의 방향에서 접근이 가능한 것인 메모리 관리 시스템.
The method of claim 1, wherein the memory comprises:
A memory management system that has one of the two-dimensional and three-dimensional lattice structures and can be accessed from two or more directions according to each dimension.
제1항에 있어서, 상기 예지부는,
미리 저장된 기준 정보 및 실행되는 어플리케이션 출력 데이터 정보 중 하나 이상을 토대로 소정 시간 구간에 입력되는 데이터의 종류와 크기를 예측하는 것인 메모리 관리 시스템.
The method of claim 1, wherein the prediction unit,
A memory management system to predict the type and size of data input in a predetermined time interval based on at least one of pre-stored reference information and executed application output data information.
제1항에 있어서, 상기 예지부는,
상기 둘 이상의 데이터 세트에 대하여, 예측된 데이터 세트별 크기 순서대로 메모리 할당 순서를 결정하는 것
인 메모리 관리 시스템.
The method of claim 1, wherein the prediction unit,
For the two or more data sets, determining the order of memory allocation in the order of the size of each predicted data set
In-memory management system.
제1항에 있어서, 상기 예지부는,
상기 둘 이상의 데이터 세트에 대하여, 예측된 데이터 세트별 크기와, 각 데이터 세트별로 가설정된 메모리의 영역의 어느 한 변의 셀 개수에 기초하여 메모리 할당 순서의 결정 및 메모리 영역의 재할당을 수행하는 것
인 메모리 관리 시스템.
The method of claim 1, wherein the prediction unit,
Determining a memory allocation order and reallocating a memory region based on the predicted size of each data set and the number of cells on one side of the memory region temporarily set for each data set for the two or more data sets
In-memory management system.
다차원 격자 구조를 가지는 메모리와,
둘 이상의 데이터 세트 각각의 메모리 사용 정도를 예측하는 예지부와,
상기 예지부의 예측 결과에 따라 상기 둘 이상의 데이터 세트를 저장할 메모리 영역을 람다 엘레먼트 기법에 따라 할당하여 상기 데이터 세트를 저장하고 학습 및 추론시키는 관리부
를 포함하는 메모리 관리 시스템.
A memory having a multidimensional lattice structure,
A prediction unit that predicts the degree of memory usage of each of two or more data sets,
A management unit that stores, learns, and infers the data set by allocating a memory area to store the two or more data sets according to the lambda element technique according to the prediction result of the prediction unit
Memory management system comprising a.
제6항에 있어서, 상기 메모리는,
상기 둘 이상의 데이터 세트 및 연산에 이용할 기준 데이터를 저장하는 저장부와,
상기 데이터 세트를 상기 기준 데이터에 기초하여 연산하는 연산부
를 포함하는 것인 메모리 관리 시스템.
The method of claim 6, wherein the memory,
A storage unit for storing the two or more data sets and reference data to be used for calculation,
An operation unit that calculates the data set based on the reference data
A memory management system comprising a.
제6항에 있어서, 상기 관리부는,
상기 메모리에 저장된 상기 둘 이상의 데이터에 대하여 학습을 수행하고 그 학습 결과를 저장하도록 상기 메모리를 제어하는 것인 메모리 관리 시스템.
The method of claim 6, wherein the management unit,
And controlling the memory to perform learning on the two or more data stored in the memory and store the learning result.
제6항에 있어서, 상기 관리부는,
상기 둘 이상의 데이터를 상기 메모리의 둘 이상의 축 방향에 대하여 교번적으로 저장하는 것인 메모리 관리 시스템.
The method of claim 6, wherein the management unit,
And storing the two or more data alternately with respect to the two or more axial directions of the memory.
뉴로모픽 반도체 메모리 관리 방법에 있어서,
둘 이상의 입력 데이터 세트에 대하여 메모리 영역을 할당하고 저장하는 단계와,
상기 둘 이상의 입력 데이터 세트에 대하여 학습을 수행하는 단계와,
상기 학습 결과로서의 기준 데이터를 새로운 메모리 영역에 저장하는 단계와,
새로운 하나 이상의 입력 데이터 세트에 대하여 상기 기준 데이터와 비교 연산하는 단계
를 포함하는 뉴로모픽 메모리 관리 방법.
In the neuromorphic semiconductor memory management method,
Allocating and storing a memory area for two or more input data sets,
Performing learning on the two or more input data sets,
Storing reference data as the learning result in a new memory area,
Comparing and calculating the reference data on one or more new input data sets.
Neuromorphic memory management method comprising a.
제10항에 있어서, 상기 저장하는 단계는,
상기 둘 이상의 입력 데이터 세트 각각의 크기를 예측하는 단계와,
상기 예측 결과에 따라 상기 입력 데이터 세트 중 크기가 큰 입력 데이터 세트에 대하여 우선적으로 메모리 영역을 할당하고 저장하는 단계
를 포함하는 것인 뉴로모픽 메모리 관리 방법.
The method of claim 10, wherein the storing comprises:
Predicting the size of each of the two or more input data sets; and
First allocating and storing a memory area for an input data set having a large size among the input data sets according to the prediction result
Neuromorphic memory management method comprising a.
제10항에 있어서,
상기 연산 단계의 결과에 따라, 저장된 상기 기준 데이터 중에서 후속의 다른 새로운 입력 데이터 세트의 연산에 이용할 기준 데이터를 결정하는 단계
를 더 포함하는 뉴로모픽 메모리 관리 방법.
The method of claim 10,
Determining reference data to be used for a subsequent calculation of another new input data set among the stored reference data according to the result of the calculation step
Neuromorphic memory management method further comprising a.
KR1020190097669A 2019-08-09 2019-08-09 Neuromorphic Memory Management System and Memory Allocation Method thereof KR102408966B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/537,293 US11449738B2 (en) 2019-08-09 2019-08-09 Neuromorphic memory management system and method thereof
KR1020190097669A KR102408966B1 (en) 2019-08-09 2019-08-09 Neuromorphic Memory Management System and Memory Allocation Method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190097669A KR102408966B1 (en) 2019-08-09 2019-08-09 Neuromorphic Memory Management System and Memory Allocation Method thereof

Publications (2)

Publication Number Publication Date
KR20210017835A true KR20210017835A (en) 2021-02-17
KR102408966B1 KR102408966B1 (en) 2022-06-15

Family

ID=74731660

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190097669A KR102408966B1 (en) 2019-08-09 2019-08-09 Neuromorphic Memory Management System and Memory Allocation Method thereof

Country Status (1)

Country Link
KR (1) KR102408966B1 (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990019417A (en) * 1997-08-29 1999-03-15 윤종용 Memory Management
KR20120102664A (en) * 2009-10-29 2012-09-18 콘두시브 테크놀로지스 코포레이션 Allocating storage memory based on future use estimates
JP2017033306A (en) * 2015-07-31 2017-02-09 ファナック株式会社 Servo control system with learning control device having function to optimize learning memory allocation
JP2017138867A (en) * 2016-02-05 2017-08-10 富士通株式会社 Arithmetic processing circuit, and information processing unit
KR20180024660A (en) * 2016-08-31 2018-03-08 현대자동차주식회사 Machine learning system and method for learning user controlling pattern thereof
KR20180093687A (en) * 2017-02-14 2018-08-22 서울대학교산학협력단 neuromorphic system, and memory device
US20180349035A1 (en) * 2017-05-30 2018-12-06 Seagate Technology Llc Data Storage Device with Buffer Tenure Management
KR101969883B1 (en) * 2012-04-13 2019-04-17 에스케이하이닉스 주식회사 Data storage device and operating method thereof

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990019417A (en) * 1997-08-29 1999-03-15 윤종용 Memory Management
KR20120102664A (en) * 2009-10-29 2012-09-18 콘두시브 테크놀로지스 코포레이션 Allocating storage memory based on future use estimates
KR101969883B1 (en) * 2012-04-13 2019-04-17 에스케이하이닉스 주식회사 Data storage device and operating method thereof
JP2017033306A (en) * 2015-07-31 2017-02-09 ファナック株式会社 Servo control system with learning control device having function to optimize learning memory allocation
JP2017138867A (en) * 2016-02-05 2017-08-10 富士通株式会社 Arithmetic processing circuit, and information processing unit
KR20180024660A (en) * 2016-08-31 2018-03-08 현대자동차주식회사 Machine learning system and method for learning user controlling pattern thereof
KR20180093687A (en) * 2017-02-14 2018-08-22 서울대학교산학협력단 neuromorphic system, and memory device
US20180349035A1 (en) * 2017-05-30 2018-12-06 Seagate Technology Llc Data Storage Device with Buffer Tenure Management

Also Published As

Publication number Publication date
KR102408966B1 (en) 2022-06-15

Similar Documents

Publication Publication Date Title
US10642500B2 (en) Methods, systems and computer readable media for intelligent fetching of data storage device commands from submission queues
US9256371B2 (en) Implementing reinforcement learning based flash control
CN106873907B (en) Multi-controller storage array read-write load balancing method and device
US20160092109A1 (en) Performance of de-clustered disk array
US11556250B2 (en) Method and apparatus for temperature-gradient aware data-placement for 3D stacked DRAMs
CN113196303A (en) Inappropriate neural network input detection and processing
CN108717460A (en) A kind of method and device reached common understanding in block chain
CN105808339A (en) Big data parallel computing method and device
US20200193268A1 (en) Multi-instance recurrent neural network prediction
KR20210108749A (en) Accelerator, method for operating the same and accelerator system including the same
CN114386560A (en) Data processing method and device
CN116467082A (en) Big data-based resource allocation method and system
US11755245B2 (en) Method, device, and computer program product for managing access workload of storage system
US20200117449A1 (en) Accelerated Access to Computations Results Generated from Data Stored in Memory Devices
KR102362319B1 (en) Memory Allocation Method and System
KR102408966B1 (en) Neuromorphic Memory Management System and Memory Allocation Method thereof
US11599181B1 (en) Systems and methods for reducing power consumption of convolution operations of artificial neural networks
US11449738B2 (en) Neuromorphic memory management system and method thereof
KR102407263B1 (en) Neuromorphic Memory Management System and Data Operation Method thereof
CN113254256A (en) Data reconstruction method, storage device and storage medium
CN110415162B (en) Adaptive graph partitioning method facing heterogeneous fusion processor in big data
CA3153073A1 (en) Detection and treatment of dermatological conditions
US20230042773A1 (en) Neural network computing device and control method thereof
KR102491202B1 (en) Method, system and non-transitory computer-readable recording medium for performing operations of artificial neural network
CN111158883B (en) Method, device and computer for classifying tasks of operating system

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right