KR102408966B1 - 뉴로모픽 메모리 관리 시스템 및 관리 방법 - Google Patents

뉴로모픽 메모리 관리 시스템 및 관리 방법 Download PDF

Info

Publication number
KR102408966B1
KR102408966B1 KR1020190097669A KR20190097669A KR102408966B1 KR 102408966 B1 KR102408966 B1 KR 102408966B1 KR 1020190097669 A KR1020190097669 A KR 1020190097669A KR 20190097669 A KR20190097669 A KR 20190097669A KR 102408966 B1 KR102408966 B1 KR 102408966B1
Authority
KR
South Korea
Prior art keywords
memory
data
data sets
management system
unit
Prior art date
Application number
KR1020190097669A
Other languages
English (en)
Other versions
KR20210017835A (ko
Inventor
이상엽
고재진
조인표
이재규
Original Assignee
한국전자기술연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자기술연구원 filed Critical 한국전자기술연구원
Priority to US16/537,293 priority Critical patent/US11449738B2/en
Priority to KR1020190097669A priority patent/KR102408966B1/ko
Publication of KR20210017835A publication Critical patent/KR20210017835A/ko
Application granted granted Critical
Publication of KR102408966B1 publication Critical patent/KR102408966B1/ko

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

본 발명의 일 면에 따른 메모리 관리 시스템은 다차원 격자 구조를 가지는 메모리와, 둘 이상의 데이터 세트 각각의 메모리 사용 정도를 예측하고 상기 메모리에 입력할 순서를 결정하는 예지부와, 상기 예지부의 예측 결과에 따라 상기 둘 이상의 데이터 세트를 저장할 메모리 영역을 할당하여 상기 데이터 세트를 저장하고 학습 및 추론시키는 관리부를 포함한다.
상기 메모리는, 상기 2차원 및 3차원 격자 구조 중 하나의 구조를 가지며, 각 차원에 따라 둘 이상의 방향에서 접근이 가능한 뉴로모픽 메모리이다.

Description

뉴로모픽 메모리 관리 시스템 및 관리 방법{Neuromorphic Memory Management System and Memory Allocation Method thereof}
본 발명은 메모리 관리에 관한 것으로서, 구체적으로는 저전력 디바이스 또는 독립운용이 필요한 디바이스 내에서 뉴로모픽 반도체 내 메모리를 관리하는 시스템 및 방법에 관한 것이다.
뉴로모픽 소자의 시냅스는 어레이 구조로 구성되어 있으며, 다양한 메모리 유닛을 이용하여 학습 기능을 구현하고 데이터를 연산한다.
이를 위한 뉴로모픽 메모리는 통상 뉴런당 128byte의 데이터를 저장하는데, 종래의 메모리 할당 방식은 도 1과 같이 데이지 체인(Daisy Chain) 방식으로 메모리의 첫 위치부터 데이터를 순차적으로 저장하고 처리한다. 예컨대, 640byte의 A 입력 데이터는 학습과 추론에 있어서 0~4번의 5개의 뉴런을 사용한다.
종래의 뉴로모픽 메모리는 한번에 하나의 입력 데이터를 받아서 처리하기 때문에, 만약 후속하여 B 입력 데이터(640byte)를 처리해야 하는 경우, 먼저 전체 메모리(뉴런)를 리셋시킨 다음 B 입력 데이터를 A 입력 데이터가 이용했던 0~4번 뉴런에 입력시킨다.
결국, 종래의 방식에서는 처리하고자 하는 어플리케이션 또는 서비스 데이터가 이종 또는 다른 데이터일 경우, 도 2에서와 같이 데이터 B(녹색으로 표시)를 학습하기 위해서는 이전에 저장하고 처리했던 어플리케이션 데이터 A(노란색으로 표시)를 리셋해야 하는데, 이 때 어플리케이션 데이터 A에 대한 학습 내용은 이후의 인식(추론)을 위해 모두 외부 메모리 유닛에 저장되며, 이러한 과정으로 인하여 외부 메모리 유닛의 종류, 처리속도, 액세스 속도에 따라 뉴로모픽 메모리의 데이터 처리 성능차이가 많이 발생한다.
양호한 처리 속도를 얻기 위해서는 시스템 버스의 속도와 외부 메모리 유닛과 시스템 코어간의 빠른 데이터 교환이 요구되는데, 따라서 저전력/저사양 디바이스는 위 데이터 속도가 현저히 떨어지며 이로 인한 데이터 병목현상이 발생할 수 있어서 외부 메모리 적용에 한계가 있을 수 있다.
더욱이, 전력 소모나 성능의 기준이 실제 뉴로모픽 반도체가 아니라, 외부 메모리 유닛에 종속적일 수 있게 된다.
이러한 문제는 학습 단계뿐만이 아니라, 학습된 결과를 입력 데이터의 인식 또는 추론을 위하여 외부 메모리로부터 불러오는 과정에서도 발생한다.
한편, 실제 뉴로모픽 반도체 내 메모리를 활용하는 측면에서는, 종래의 뉴로모픽 메모리는 역시 도 1에서와 같이 데이지 체인(Daisy Chain) 방식으로 메모리의 첫 위치부터 데이터를 순차적으로 저장하고 처리하는 특성으로 인하여, 어플리케이션에 따라, 사용하지 않는 메모리가 많은 경우 메모리 사용 측면에서 비효율성을 가지게 된다.
보다 구체적으로 설명하면, 도 1에서 보는 바와 같이 데이터 입력완료 후 비교 병렬 연산은 푸른색 화살표과 같이 동시 비교가 가능하지만, 이와 같은 뉴로모픽 반도체 내 병렬 연산을 위하여 데이터를 메모리에 쓰는 방식은 하늘색 선과 같이 데이지 체인방식을 사용하고 있다. 따라서, 학습이나 추론을 위해 저장하는 데이터가 적은 경우, 나머지 뉴런 메모리는 사용하지 않게 되며, 도 1의 예시와 같이 매우 적은 영역의 메모리만 활용되고 나머지 대부분의 영역은 활용되지 않는 일이 생길 수 있다.
이와 같이, 뉴로모픽 반도체 내 메모리를 활용하는 측면에서 사용하지 않는 메모리 부분에 대해 재활용이 어려운 문제점이 있다.
다른 한편으론, 종래의 뉴로모픽 반도체 특성상, 회귀 연산(Recursive 연산)에 대한 방식이 적용되지 않는 문제점이 있어, 딥러닝에 사용된 알고리즘이나, 머신러닝 내 회귀 연산이 필요한 알고리즘은 적용되지 못하는 한계가 있다.
본 발명의 목적은 획일적인 데이지체인 방식의 종래의 뉴로모픽 메모리 할당방식에서 벗어나 가변적으로 뉴로모픽 반도체 내 메모리 구조를 변경할 수 있는 메모리 관리 시스템 및 방법을 제공하는 데 있다.
본 발명의 다른 목적은, 메모리 사용에 관한 예측을 토대로 메모리 할당을 하며, 현재 사용하지 않는 메모리 영역을 사용하도록 할당함으로써 메모리의 사용 효율성을 높이는 메모리 관리 시스템 및 방법을 제공하는 것이다.
특히, 예상되는 메모리 사이즈가 부정확할 경우, 피드백을 통해 재조정할 수 있는 공간활용기능을 적용하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
본 발명은 뉴로모픽 반도체 내 메모리 구조를 변경하여 Prescience Estimator(PSE)관리자가 해당 어플리케이션에 대한 메모리 사용정도를 예상하고 Prescience Manager(PSM)전체 뉴로모픽 메모리 구조에서 일부를 할당하여 전술한 과제를 달성한다.
본 발명의 일 면에 따른 메모리 관리 시스템은 다차원 격자 구조를 가지는 메모리와, 둘 이상의 데이터 세트 각각의 메모리 사용 정도를 예측하고 상기 메모리에 입력할 순서를 결정하는 예지부와, 상기 예지부의 예측 결과에 따라 상기 둘 이상의 데이터 세트를 저장할 메모리 영역을 할당하여 상기 데이터 세트를 저장하고 학습 및 추론시키는 관리부를 포함한다.
상기 메모리는, 상기 2차원 및 3차원 격자 구조 중 하나의 구조를 가지며, 각 차원에 따라 둘 이상의 방향에서 접근이 가능한 뉴로모픽 메모리이다.
상기 예지부는, 미리 저장된 기준 정보 및 실행되는 어플리케이션 출력 데이터 정보 중 하나 이상을 토대로 소정 시간 구간에 입력되는 데이터의 종류와 크기를 예측하며, 상기 둘 이상의 데이터 세트에 대하여, 예측된 데이터 세트별 크기 순서대로 메모리 할당 순서를 결정한다.
또한, 상기 예지부는, 상기 둘 이상의 데이터 세트에 대하여, 예측된 데이터 세트별 크기와, 각 데이터 세트별로 가설정된 메모리의 영역의 어느 한 변의 셀 개수에 기초하여 메모리 할당 순서의 결정 및 메모리 영역의 재할당을 수행한다.
본 발명의 다른 면에 따른 메모리 관리 시스템은, 다차원 격자 구조를 가지는 메모리와, 둘 이상의 데이터 세트 각각의 메모리 사용 정도를 예측하는 예지부와, 상기 예지부의 예측 결과에 따라 상기 둘 이상의 데이터 세트를 저장할 메모리 영역을 람다 엘레먼트 기법에 따라 할당하여 상기 데이터 세트를 저장하고 학습 및 추론시키는 관리부를 포함한다.
상기 메모리는, 상기 둘 이상의 데이터 세트 및 연산에 이용할 기준 데이터를 저장하는 저장부와, 상기 데이터 세트를 상기 기준 데이터에 기초하여 연산하는 연산부를 포함한다.
상기 관리부는, 상기 메모리에 저장된 상기 둘 이상의 데이터에 대하여 학습을 수행하고 그 학습 결과를 저장하도록 상기 메모리를 제어하며, 상기 둘 이상의 데이터를 상기 메모리의 둘 이상의 축 방향에 대하여 교번적으로 저장한다.
본 발명의 또 다른 면에 따른 뉴로모픽 반도체 메모리 관리 방법은, 둘 이상의 입력 데이터 세트에 대하여 메모리 영역을 할당하고 저장하는 단계와, 상기 둘 이상의 입력 데이터 세트에 대하여 학습을 수행하는 단계와, 상기 학습 결과로서의 기준 데이터를 새로운 메모리 영역에 저장하는 단계와, 새로운 하나 이상의 입력 데이터 세트에 대하여 상기 기준 데이터와 비교 연산하는 단계를 포함한다.
입력 데이터의 저장은 상기 둘 이상의 입력 데이터 세트 각각의 크기를 예측하는 단계와, 상기 예측 결과에 따라 상기 입력 데이터 세트 중 크기가 큰 입력 데이터 세트에 대하여 우선적으로 메모리 영역을 할당하고 저장하는 단계를 포함하여 수행된다.
한편, 상기 연산 단계의 결과에 따라, 저장된 상기 기준 데이터 중에서 후속의 다른 새로운 입력 데이터 세트의 연산에 이용할 기준 데이터를 결정하는 단계가 더 포함될 수 있다.
본 발명에 따른 예측 기반의 메모리 관리 시스템은 기존에 단일 레이어 방식의 비교결정값을 다른 메모리에 재할당하는 방법을 통해, 시간차를 두고 다시 할당하여 기준 데이터를 재사용할 수 있다.
또한, 외부 메모리 접근없이 뉴로모픽 반도체 내부 코어 시스템에서 수행되기 때문에 처리 속도가 빠르고 이에 따른 전력 소모가 줄어드는 효과가 있다.
본 발명에 따르면, 뉴로모픽 메모리를 이용하여 멀티 레이어 방식과 회귀 연산이 가능한 가중치 방법을 동시에 활용할 수 있으므로 기존에 뉴로모픽 반도체 특성상 단일 레이어를 통한 간단한 알고리즘 적용 방식에서 다양한 딥러닝 알고리즘, 최적의 머신러닝 알고리즘 (예, Support Vector Machine(SVM))의 알고리즘을 적용할 수 있는 장점을 발휘한다.
또한, 입력되는 데이터를 사용하지 않는 뉴로모픽 메모리를 할당하여 사용하지 않은 영역을 재활용하며, 한번의 입력에 리셋과정 없이 다양한 데이터를 한번에 학습할 수 있는 장점이 있다. 따라서 다양한 데이터를 한번에 학습하기 때문에 융합된 정보를 이용한 하나의 인식 룰을 정의할 수 있고, 인식 룰에 대해서 한번의 저장이 요구되므로 시스템 버스에 의한 외부 메모리 유닛 저장 횟수를 줄일 수 있는 장점이 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 뉴로모픽 메모리의 구조 및 종래의 뉴로모픽 메모리가 입력 데이터를 저장하는 방식을 도시한 도면.
도 2는 종래의 뉴로모픽 메모리가 복수 개의 다른 입력 데이터를 저장하는 방식을 도시한 도면.
도 3은 본 발명에 따른 메모리 관리 시스템의 블록도.
도 4는 본 발명에 따른 가변형 메모리의 3차원 구현례를 도시한 도면.
도 5는 본 발명에 따른 가변형 메모리의 둘 이상의 데이터가 동시에 함께 저장되는 양상을 도시한 도면.
도 6은 본 발명에 따른 가변형 메모리의 둘 이상의 데이터의 할당 양상을 도시한 도면.
도 7은 본 발명에 따른 메모리 관리 시스템을 도시한 도면.
도 8은 본 발명에 따른 메모리 할당 방법의 기본 방식을 도시한 도면.
도 9는 본 발명에 따른 최적의 메모리 할당 양상을 예시한 도면.
도 10은 본 발명에 따른 데이터 연산을 하기 위하여 두 종류 이상의 데이터를 동시에 하나의 메모리에 저장하는 예를 도시한 도면.
도 11은 본 발명에 따른 다중 데이터 연산 방식에 대한 개념도.
도 12는 본 발명에 따른, 시간의 흐름에 따라 입력되는 데이터의 연산 방식에 대한 개념도.
도 13은 본 발명에 따른 복합 연산 방식에 대한 개념도.
도 14는 본 발명에 따라 단계적으로 정밀도를 높여가는 연산 방법을 설명하기 위한 도면.
본 발명의 이점 및 특징, 그리고 이들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 기술되어 있는 실시예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예는 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 기재에 의해 정의된다.
한편, 본 명세서에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자 이외의 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
한편, 어떤 실시예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 실행될 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.
이하, 본 발명의 바람직한 실시예를 첨부 도면을 참조하여 상세히 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가급적 동일한 부호를 부여하고 또한 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있는 경우에는 그 상세한 설명을 생략한다.
본 발명의 기본적 기술 사상은, 전술한 메모리 재할당 구조를 이용하기 위해서, 가변형 메모리 구조를 활용하여 메모리 격자형태의 메모리 쓰기 구조가 가능하도록 하는 것이다.
이를 위하여, 메모리 사용에 관한 예측이 가능한 예지부(Prescience Estimator; 이하, 본 명세서에서 PSE라 칭함)가 해당 어플리케이션에 대한 메모리 사용정도를 예상하고, 이를 토대로 관리부(Prescience Manager; 이하 PSM이라 칭함)가 전체 뉴로모픽 메모리 구조에서 일부를 할당하는 메모리 관리 시스템을 제공하여, 다른 어플리케이션이 사용하지 않는 메모리 영역을 재사용하여 메모리의 사용 효율성을 높일 수 있도록 하는 것이다.
도 3를 참조하여 본 발명의 바람직한 일 실시예에 따른 메모리 관리 시스템에 대하여 설명한다.
뉴로모픽 메모리 관리 시스템(300)은 메모리(330)를 이용할 각 어플리케이션에 대한 메모리 사용 정도를 예측하는 PSE(320; Prescience Estimator)와, 이를 토대로 전체 뉴로모픽 메모리의 일부 또는 전부를 할당하는 PSM(310; Prescience Manager)을 포함한다. PSE와 PSM은 뉴로모픽 칩의 시스템 코아의 내부에 소프트웨어 모듈로서 구현될 수 있는데, 별도의 하드웨어로 구현될 수도 있음은 물론이다
메모리(330)는 다차원 격자 구조를 가지며, 각 차원에 따라 여러 방향에서 메모리 접근이 가능한 가변형 메모리 구조를 가진다. 예컨대 2차원 격자 구조를 가지는 경우에는 상하좌우의 4개 방향에서 메모리 접근이 가능하며, 3차원 격자 구초를 가지는 경우에는 x, y, z의 각 축상에서 양방향(총 6방향)으로 접근 가능하도록 구성한다.
가변형 메모리 구조는 기존의 뉴로모픽 메모리를 논리적으로 다차원 구조를 가지도록 구성하여 구현될 수 있고, 둘 이상의 뉴로모픽 메모리를 스택구조로 쌓아 3차원 구조로 구성하거나, 또는 도 4에 도시된 바와 같이 반도체 공정방식에 따라 3차원 구조로 구현될 수 있다.
메모리의 할당은 도 5와 같이, 종래 뉴로모픽 반도체의 1차원 구조(데이지 체인 방식)과 달리, 2차원 평면 또는 3차원의 차원 구조(단일 격자 또는 다중 격자구조)를 가지도록 구성된다. 도 5에 도시된 바와 같이 본 발명에 따른 가변형 메모리는 파란색 선을 따라 데이터가 메모리가 할당되는 동시에 다른 경로인 주황색 선을 따라서 메모리가 할당될 수 있는 구조를 가진다.
결과적으로. 도 6과 같이 동시에 여러 종류의 데이터가 뉴로모픽 메모리에 저장될 수 있고, 동시에 여러 종류의 데이터가 처리될 수 있다.
도 7은 이러한 가변형 메모리 구조의 효율적 활용과 효과의 발휘를 모식적으로 나타내고 있다. 도시된 바와 같이, PSM(310) 및 PSE(320)의 제어/관리하에 가변형 다차원 메모리(300)가 가로, 세로, 높이 방향으로 쓰고 읽혀질 수 있다.
이와 같은 메모리 구조를 채택하여 얻을 수 있는 이점은 다음과 같다.
메모리 공간을 사용하는데 있어서, 해당 애플리케이션에 대한 메모리 사용 정도를 예상하고 전체 뉴로모픽 메모리 구조에서 그 사용 정도에 적합한 일부만을 할당하고, 사용하지 않은 영역에 대해서는 다른 어플리케이션이 사용할 수 있도록 재할당할 수 있다.
격자 구조의 가변 할당 메모리로 인하여, 학습을 위한 데이터 저장과 비교 연산을 동시에 할 수 있으므로 외부 메모리 유닛 접근에 따른 성능 저하를 방지할 수 있다.
격자 형태의 가변형 메모리 구조에 시간차를 두고 입력 데이터를 저장, 학습하는 경우, 회귀 연산이 가능한 가중치 방식을 적용할 수 있으므로, 단일 레이어를 통한 간단한 알고리즘 적용이 아니라, 다양한 딥러닝 알고리즘 효과를 볼 수 있는 알고리즘을 적용할 수 있다. 논리적 또는 물리적으로 적층되는 메모리 격자수에 따라, 또는 단일 격자 내에서도 동시에 처리되는 데이터 할당 공간을 다중화함으로써, 다중 레이어를 적용한 알고리즘을 모사하여 사용할 수 있다.
이와 같이, PSM(310)와 PSE(320)을 통해 확보된 메모리 영역에 맞게 각 데이터가 학습되며, 다양한 데이터에 대한 정보 융합 학습이 한 번에 일어나게 되므로, 뉴로모픽 칩 내의 적은 메모리 사이즈에도 학습이 가능한 장점이 있으며, 저전력으로 빠른 메모리 접근이 가능하다. 학습 결과는 별도로 저장되고 향후 학습 인식을 위해 사용된다.
인식(추론) 단계에서, PSM(310)은 학습된 영역의 데이터 상태를 알고 있으므로, 인식을 위해 여러 종류의 입력 데이터가 입력될 때 비교가 가능하도록 해당 데이터의 비교연산을 수행에 필요한 제반 절차를 진행한다.
PSM(310)과 PSE(320)가 공조하여 수행하는 본 발명에 따른 메모리 할당 방법에 대해서 아래의 몇 실시예를 들어 구체적으로 설명한다.
기본적으로, 입력되는 데이터 세트의 크기가 큰 순서대로 할당한다.
우선 PSE(320)는 사용 가능 메모리 공간을 파악한다. 사용 가능 메모리 공간의 파악은 데이터 입력이 요구되는 시점 직전에 해도 되지만, 부하의 안정성을 위해서는 상시적으로 수행되는 것이 바람직하다.
그 다음 입력되는 입력되는 데이터 세트들의 크기를 예측한다. 예컨대, 하나의 판단을 위하여 융합이 필요한 복수의 데이터, 예를 들면 화재 감지를 위한 온도, 습도, 먼지, CO2의 네 개 범주에 대한 감지 데이터가 소정 시간 구간에서 얼마큼씩 입력될 것인지를 예측한다.
예측의 방식은 현재 실행되는 어플리케이션의 종류에 따라서 미리 축적해 놓은 어플리케이션별 데이터 종류 및 크기 테이블(예컨대, 실내 화재 감시 어플리케이션의 경우 5종의 가스 농도 데이터에 대하여 1초당 한번의 샘플링을 한다거나, 또는 각 종류의 가스 농도 데이터가 각각 초당 몇 번의 샘플링을 한다는 등의 기본 정보를 저장)을 토대로 추정할 수도 있고, 실행되는 어플리케이션별로 입력 데이터의 종류와 각 크기를 전달받아 예측하는 방식을 취할 수 있다.
또는 소정시간 사전에 입력되는 데이터의 종류와 크기를 토대로 그 후에 입력되는 데이터의 종류와 크기를 (동일하게) 추정할 수도 있는 등, 예측 방식은 위 예시들에 한정되지는 않고, 본 발명의 기술적 사상의 범주 내에서 가능한 다양한 방식을 포괄한다.
PSE(320)이 각 입력 데이터 세트의 크기를 예측하면, PSM(310)은 예측된 입력 데이터 세트의 크기에 맞추어 해당 입력 데이터 세트를 저장할 메모리 영역을 할당한다. 메모리 영역의 할당과 저장은 각 입력 데이터 세트의 크기 순서대로 진행하는 것이 바람직하다.
또한, 메모리 관리 시스템(300)은 각 입력 데이터 세트가 적정하게 메모리에 할당되는지를 검증하고 재할당을 할 수 있다.
이를 위하여, PSM(310)은 각 입력 데이터가 필요로 하는 메모리 사이즈 B의 크기에 따라 뉴로모픽 메모리 내 각 메모리 영역을 설정하면, PSE(320)가 각 입력 데이터가 필요로 하는 메모리 사이즈 B의 크기에 따라 뉴로모픽 메모리 내 각 입력 데이터에 대하여 사용 가능한 열 또는 행(각 입력 데이터별로 가설정한 메모리 영역의 어느 한 변)에 해당하는 셀 개수(H)와 비교해서 활용 임계치(UT = B/H)를 정하고, 이어서 H/UT 값을 구한다.
H/UT가 2 라면, 가로 세로 영역이 1:2인 메모리 영역에 저장될 것으로 볼 수 있고, 1 이라면 정사각형 영역에 저장되는 것으로 간주할 수 있다. 즉, 1에 가까울수록 근처 메모리 셀에 군집된 정도가 크다고 판단한다.
한편, UT가 1 미만의 경우에는 하나의 행 또는 열에 해당하는 메모리 셀의 갯수 보다도 입력 데이터가 적은 것이므로 낭비되는 메모리 셀이 있을 수 있다고 추정할 수 있다.
따라서, 가급적 각 입력 데이터에 대한 H/UT의 비가 1에 근접하도록 H를 설정하는 것이 바람직할 것이고 10을 넘지 않은 것이 좋으며, 1 내지 5의 영역이 되는 것이 더 바람직하다.
본 발명에 따른 메모리 관리 시스템(300)은 위 H/UT의 값을 기초로 메모리를 재할당하고, 이에 따른 데이터별 메모리 영역 및 H 값에 따라 다시 H/UT를 계산하여 바람직하게는 이 값이 1 내지 5에 근접하는 수준까지 전술한 과정을 반복하여 메모리의 영역을 최종 설정하거나, 또는 각 메모리 할당 영역이 10 이내가 되도록 재할당과정에 H/UT 계산 과정을 반복하여 메모리 영역을 할당하는 방식을 취할 수 있다.
각 데이터 세트를 저장할 메모리 영역이 정해지면, UT의 크기 순서대로 또는 입력 데이터 세트의 크기 순서대로 데이터를 각 영역에 저장한다.
이와 같은 방식을 취할 경우 최적의 메모리 활용 효율을 얻을 수 있다.
도 8 및 도 9을 참조하여, 본 발명에 따른 메모리 할당에 대한 다른 실시예를 설명한다.
입력 데이터 세트 크기 순서대로 가장 큰 입력 데이터 세트부터 4개의 입력 데이터 세트를 메모리의 4변을 우선 할당하고 그 다음부터는 감마 엘레먼트 기법을 이용하여 할당 영역을 설정한다. 3차원 메모리의 경우에는 가장 큰 입력 데이터 세트부터 6개의 입력 데이터 세트를 메모리의 6면을 우선 할당하고 감마 엘레먼트 기법을 이용하여 나머지 할당 영역을 설정한다. 이하의 설명은 2차원 격자 메모리의 경우를 예로 들고 있으나, 3차원 이상의 고차원 메모리에도 적용될 수 있음은 물론이다.
구체적 방식은 다음과 같다.
1) 단일 메모리 사이즈를 확인 x축과 y축에 따른 뉴런 사이즈 및 뉴런 수(
Figure 112019082027991-pat00001
), 즉 메모리 영역의 각 변의 메모리 셀의 수를 확인한다.
이때, 가급적이면
Figure 112019082027991-pat00002
만족하는 것이 좋다. 즉, 각 메모리 영역은 정사각형에 근사한 영역이 할당되도록 하는 것이 좋다.
2) 도 8에 도시된 바와 같이, 입력 데이터 A,B,C,D 대해서 최대한 입력 가능한 순서로 메모리의 4면의 가장자리를 채운다.
3) 그 후, 중앙의 남은 부분에 대해서 겹칩이 없고 최대한으로 사용하기 위해
Figure 112019082027991-pat00003
엘레먼트 기법을 사용하여 ,
Figure 112019082027991-pat00004
,
Figure 112019082027991-pat00005
수식에 따라 각각 할당하고, ,
Figure 112019082027991-pat00006
,
Figure 112019082027991-pat00007
와 같은 방식으로, 순차적으로 해당 면적을 설정한다.
4) 위에서 정해진 영역에 각 데이터의 크기 순서대로 데이터를 할당한다.
4-1) 4면의 가장자리부를 채우는 최초의 4개의 데이터 A, B, C, D는 그 크기의 순서대로 할당을 한다.
4-2) 그 이후에는 입력 데이터의 크기 순서대로
Figure 112019082027991-pat00008
,
Figure 112019082027991-pat00009
,
Figure 112019082027991-pat00010
,
Figure 112019082027991-pat00011
의 영역을 채운다.
도 9는 본 발명의 제3 실시예에 따른 최적의 데이터 입력 방법을 예시한 도면인데, 도 9와 같은 경우에는, 우선 A > B > C > D 의 크기에 따라 이 순서대로 4면의 가장자리를 채우고, 그 다음 크기를 가지는 입력 데이터들에 대해서는
Figure 112019082027991-pat00012
>
Figure 112019082027991-pat00013
>
Figure 112019082027991-pat00014
>
Figure 112019082027991-pat00015
의 순서대로 해당 영역에 저장한다.
이를 위해서 PSM(310) 및 PSE(320)는 각 입력 데이터의 크기를 모두 알고 있거나 예측(추정)하고 있어야 함은 물론이다.
본 실시에에서, 만약 메모리 할당 중에 어떤 데이터 세트의 크기가 해당 순서로 할당된 메모리 영역보다 크게 될 경우에는, 우선 해당 데이터 세트를 분할하여 할당된 메모리 영역에 저장하고, 저장되지 않은 나머지 부분의 크기보다 큰 다른 메모리 영역들 중 가장 적은 메모리 영역에 해당 데이터 세트의 나머지 부분을 저장한다. 만약 해당 데이터 세트의 크기가 두 개의 메모리 영역의 크기의 합보다도 큰 경우에는 위와 같은 방식으로 셋 이상의 메모리 영역에 저장한다.
PSM(310)은 하나의 데이터 세트를 하나 이상의 메모리 영역에 저장할 경우, 해당 데이터 세트가 하나 이상의 어떤 메모리 영역에 저장되었는지를 항상 파악하고 관리한다.
전술한 실시예 공통적으로, 입력 데이터의 크기 순서대로 메모리를 할당하고 저장하며, 각 입력 데이터의 메모리 영역은 가급적 정사각형에 근사하게 설정하고, 같은 종류의 입력 데이터는 군집화하는 방향으로 영역을 설정하고 할당하는 방식을 취한다. 바꾸어 말하면, 할당되지 않고 남은 잔존 영역이, 여러 경우의 수 중에서 가능한 한 가장 큰 군집 영역이 되도록 메모리 영역을 설정한다.
즉, 크기가 큰 입력 데이터부터 가용 면적이 가장 큰 영역에 메모리를 할당하고자 하는 것이며, 이럼으로써 사용하지 않은 메모리 공간을 최소화하도록 한다.
또한, PSE(320)는 사용자가 필요로 하는 규칙을 정의할 수 있도록 소프트웨어 영역을 제공한다. 즉, 사용자가 복수개의 입력에 대해서 어떤 조합이 어떤 조건을 만족하는가를 정의할 수 있는 영역을 마련해두고, 조건이 완료되면 PSM(310)에서 해당 데이터를 어떤 메모리에 어떻게 할당할 것인지를 결정한다.
PSM(310)은 PSE(320)의 예측 결과에 기초하여 입력 데이터들을 메모리에 저장하는데, 2차원 메모리의 가로배열과 세로배열에 대하여 교번적으로 입력 데이터를 저장하여 최적의 메모리 사용 영역을 확보한다. 3차원 메모리의 경우에는 가로, 세로, 높이의 배열(즉, x, y, z의 3축)을 따라 교번적으로 입력데이터를 저장한다.
이와 같이, PSM(310) 및 PSE(320)를 통해 확보된 메모리 영역에 맞게 각 데이터가 학습되며, 다양한 데이터에 대한 정보 융합 학습이 한 번에 일어나게 되므로, 뉴로모픽 반도체 칩 내 메모리 사이즈 정도의 작은 메모리에서도 학습이 가능한 장점이 있으며, 저전력으로 빠른 접근이 가능하다.
학습 결과는 별도로 저장되고 향후 학습 인식을 위해 사용된다.
인식(추론) 단계에서, PSM(310)은 학습된 영역의 데이터 상태를 알고 있으므로, 인식을 위해 여러 종류의 입력 데이터가 입력될 때 비교가 가능하도록 해당 데이터의 비교연산을 수행에 필요한 제반 절차를 진행한다.
이와 같이, 본 발명에 따른 메모리 관리 시스템(300)은, 메모리 공간을 사용하는데 있어 PSM(310)과 PSE(320)를 이용하여 해당 애플리케이션에 대한 메모리 사용 정도를 예상하고 전체 뉴로모픽 메모리 구조에서 사용하지 않은 영역을 최대한 사용할 수 있도록 할당 또는 재할당하여 메모리 효율성을 높인다.
기존의 외부 메모리 유닛 사용방식에 비해, 학습을 위한 데이터 저장과 추론을 위한 비교 연산을 각각 여러 데이터 세트에 대해 동시에 할 수 있으므로 외부 메모리 유닛 접근에 따른 성능 저하를 방지할 수 있는 장점이 있다.
이하에서는, 본 발명에 따른 메모리 관리 시스템(300)에 의하여 수행할 수 있는 데이터 연산 방법에 대하여 구체적으로 설명한다.
종래의 뉴로모픽 메모리는 전술한 바와 같이 데이지체인 방식으로 데이터를 저장한 후 한번에 한 종의 데이터에 대해서만 연산이 가능하므로, 결과적으로 단일 레이어를 사용하게 되어 입력 데이터와 학습 데이터간의 단순한 1회의 데이터 비교만 가능하다. 결과적으로 비교 결과(추론 결과)에 있어서 정확도가 많이 떨어지는 단점이 있다.
물론 단일 레이어 방식의 학습과 인식에서도 비교량이 많은 경우에 인식률이 높아지는 경향을 나타낸다. 그러나, 메모리 제조공정의 특성상 메모리양을 늘릴 경우, 제조 비용이 높아지고 저전력을 유지하기 어려운 문제가 있다. 특히 비교학습에 필요한 충분한 입력데이터를 확보하고, 전처리해야하는 문제가 발생한다.
또한, 하나의 입력데이터가 아닌, 복수개의 입력 데이터(예를들어, 축센서 데이터 이후 온도 데이터를 학습하고 싶을 경우) 학습이 필요한 경우, 종래 방식에서는 단일 레이어 방식으로 인해, 하나의 데이터를 학습하고 학습한 결과를 외부 메모리에 저장, 새로운 데이터는 다시 학습하고 학습된 결과를 외부 메모리에 저장하고 비교하는 별도의 과정이 필요한 문제가 있다.
또한, 단일 레이어의 병렬비교연산 특성상, 기계학습에 필요한 다양한 알고리즘을 적용할 수 없는 한계가 있다. 예를들어, SVM(support vector machine)과 같은 알고리즘에는 복수개의 레이어가 적용되고 가중치 연산이 가능한 구조가 되어야한다.
따라서, 본 발명의 데이터 연산 방법은 우선, 전술한 가변형 메모리 구조 및 메모리 관리 시스템(300)을 이용하여 도 10과 같이 둘 이상의 데이터를 각각 다른 메모리 영역에 저장한다.
이러한 가변형 구조를 사용할 경우, 도 11와 같이 입력 데이터가 A,B 또는 A,B,C 이상이 될 때 회귀연산 형태의 효과를 가질 수 있다.
이러한 방법은 서로 다른 종류의 복수 개의 데이터에도 적용 가능하지만, 단일 데이터의 시간차에 따른 변화를 추적 비교할 때도 가능하다. 도 12는 단일 데이터의 시간차 변화 추적인 경우를 나타내고 있으며, 가중치 연산이 가능하므로 정확도 향상 뿐만아니라, 회귀연산 알고리즘을 적용할 수 있게 된다.
또한, 도 11에 도시된 실시예 및 도 12에 도시된 실시예가 결합한 형태로도 변형이 가능하며, 복수 데이터의 시간차에 따른 변화를 추적 비교할 때도 가능하다. 도 13은 이와 같은 복수 데이터의 시간차 변화 추적인 경우를 설명하고 있으며, 다양한 비교연산 알고리즘을 적용할 수 있다.
이하, 연산 방식에 대한 구체적인 몇 실시예를 들어 더 상세히 설명할 것이나, 본 발명에 따른 연산 방식이 이에 한정되는 것이 아님은 물론이다.
[연산 방식의 제1 실시예]
도 11과 같이 복수개의 서로 다른 데이터를 동시에 입력받게 되면, 예를 들어 운전자의 졸음운전을 방지하는 서비스를 구현하는 경우, 운전자의 생체 정보 중 심박, 눈깜박임을 각각 A,B 데이터로 입력받아 학습한 다음, 추론 단계에서 비교연산을 수행하고 그 결과를 주행시간별 데이터(C 데이터)와의 비교학습, 비교연산을 재수행하여 정확도를 향상시킬 수 있다. 즉, 일정 회수 이상의 심박 및/또는 눈깜박임만으로 획일적으로 졸음 여부를 판단하는 것이 아니라, 심박 및/또는 눈깜박임의 비교 결과에 주행시간 조건을 가미하여 졸음 여부를 판단하는 것이다.
가령, 주행시간이 1시간 미만일 경우의 심박수와 눈깜박임은, 주행시간이 3시간 이상인 경우의 심박수와 눈깜박임과 다른 특성을 가질 수 있다. 예컨대, 장시간 운전을 하게 되면 운전을 시작한 얼마안된 상태에 비하여 심박수와 눈깜박임이 낮아질 수 있고 또는 반대가 될 수 있다.
따라서, 졸음 상태로 볼 수 있는 범위의 복수의 심박수, 눈깜박임 수를 미리 학습하여 놓고(A, B 데이터), 아울러 주행시간별로 졸음상태로 볼 수 있는 심박수와 눈깜박임수를 학습하여 놓은 다음, 1차적으로 심박수와 눈깜박임이 졸음 범위에 해당하지 않으면 C 데이터에 대한 비교 연산을 수행하지 않지만, 만약 심박수와 눈깜박임이 졸음 범위에 해당한다면, C 데이터에 대한 비교 연산을 수행하여 주행시간별 졸음 상태로 볼 수 있는 심박수와 눈깜박임인지를 판별하여 최종적으로 졸음 여부를 판단한다.
또는 A, B 데이터에 대해서도 상관성이 있거나 우선적 판단이 가능하다면, A, B 중 하나의 데이터만을 먼저 비교하여, 졸음 영역에 있는 것으로 판단이 되면 후속하여 다른 데이터를 비교하고, 다른 데이터의 비교 결과 역시 졸음 영역에 해당할 경우 C 데이터를 비교하는 식으로 순차적으로 각 데이터를 비교연산하여 판단하는 방식으로 구성할 수도 있다.
이러한 A, B, C 데이터는 운전자 별로 학습하는 것이 바람직할 것이나, 개인별 학습이 어렵거나 불편한 경우, 여러 운전자의 데이터의 기준 데이터(학습값)을 저장시킨 후 해당 입력 데이터의 범위가 저장된 범용 데이터의 영역이나 각 조건을 만족하는지 여부를 판별하도록 구성할 수 있다.
또한, 도 12와 같이 시간차에 따른 입력 데이터의 변화를 따라서 상황을 인식하는 연산을 수행할 수 있다. 예를 들면 어떤 상황인지를 판단하기 위해서 시간에 따른 일정 패턴이 필요한 데이터인 경우, 시간 별로 데이터를 저장해놓고, 해당 데이터가 일정 패턴에 맞도록 변화하는지를 확인하는데 적용 가능하며, 데이터의 비교 순서에 따라 연산의 순서를 정하여 각 입력 데이터 세트 별로 가중치를 부여하는 효과를 낼 수 있다.
특히, 데이터의 비교 순서에 따라 우선순위가 정해진 경우, 즉 첫 번째 데이터의 변화가 중요한 경우, 입력 데이터와 학습 데이터 비교 후 인식결과에 실질적으로 가중치를 부여하는 효과를 내도록 하고, 가중치가 부여된 데이터와 다음 시간에 입력된 데이터를 다시 비교학습하는 효과를 발휘하도록 하여 인식률을 높일 수 있다.
예를 들어, 시간 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 이상의 시점에 대해서도 이와 같이 설정하여 다중 레이어를 구성할 수 있다.
이와 같은 설정하에서는 시간 t = 0 일때의 a 가스 농도는 시간 t = 1 일 때의 a 가스 농도에 비하여 가중치가 높게 된 것과 같은 효과가 발휘된다.
즉 하나의 임계값을 정해두고 넘어서면 위험, 안전이라고 판단했던 종래 기술과는 다르게, 제품의 특성에 따른 다양한 임계값을 설정해두고, 해당 범위를 만족할 때 추가로 판단하는 좀 더 정교화된 판단이 가능하다.
동일 시점에 입력된 다른 데이터(A 가스 농도, B 가스 농도)를 동일한 방식으로 순차적으로 연산하여 동일 효과를 얻을 수 있다.
본 발명에 따르면, 가변형 메모리 구조를 이용하여 입력 데이터에 대한 다중 레이어를 구성함으로써, 각 시점의 입력 데이터에 대한 가중치를 각각 다르게 부여하는 효과를 얻을 수 있다.
이러한 점을 뉴로모픽 메모리에 구현하는 방식은, 현재 연산 결과에 따라 다음 연산의 기준 데이터를 결정하는 방식으로 위와 같은 가중치 부여 효과를 발휘하도록 할 수 있다.
이러한 방식은 정확도를 높이고, 해당 결과가 오류가 나지 않도록 해주는 장점이 있다.
도 14는 연산 단계적으로 정밀도를 높여가는 방식을 나타내고 있다.
영상 기반으로 어떤 부품의 0도 내지 90도 사이의 기울어짐을 판단하는 경우, 종래의 단일 레이어 구조에서 1도 단위로 기울어짐을 판단하려면 각 기울어진 영상 데이터에 대한 적어도 90개의 학습 데이터(기준 데이터)를 마련하고 부품을 촬영한 영상과 90개의 기준 데이터를 각각 대비하여야 한다.
그런데, 이를 예컨대 3 단계로 나누어 판단하면 훨씬 적은 기준 데이터에 대한 비교연산 만으로 동일한 정밀도를 얻을 수 있다.
즉, 1 단계에서는 기울어진 정도가 0도 및 90도인 2개의 학습 데이터(기준 데이터)만을 대비하여 그 결과 회전각이 90도 보다는 0도에 가깝다고 판단하면 2단계에서 10도 단위로 5개의 기준 데이터를 마련하여 영상 데이터와 대비하고, 그 결과 이중에서 10도에 가장 가깝다고 판단되면 3단계에서 1도 단위의 11개 기준 데이터를 가지고 5도 내지 15도의 범위 내의 기준 데이터과 입력 영상 데이터를 대비하여 이중에서 가중 유사도가 높은 기준 데이터를 찾아 기울어진 각도를 판단한다.
이럴 경우, 1도 단위의 정밀도로 기울어짐을 판단하는데 있어서, 대비되는 기준 데이터는 3 단계 합쳐서 18개에 불과하다.
입력 데이터와 비교되는 학습 데이터가 적게 되면, 기준 데이터의 이동에 따른 처리 부하와 전력 소비를 현저히 줄일 수 있다.
또한, 본 발명에 따른 데이터 연산 방법은 가변형 뉴로모픽 메모리 구조하에서 처리되므로, 복수개의 입력 데이터를 가질 수 있고, 따라서 입력 데이터에 가중치 연산 후 가중치 연산 된 데이터를 새로운 입력 데이터로 보고 이에 대하여 비교 연산을 수행 후 결과를 도출할 수 있다. 그 결과, 1개의 은닉층(hidden layer)를 갖는 방식에 비해, 정확도가 높으며, 딥러닝과 같은 효과를 가질 수 있다.
특히, 여러 데이터 융합을 통해 새로운 데이터를 도출할 수 있으며, 도출된 새로운 데이터를 학습할 수 있는 장점이 있다. 이러한 방법은 단일 레이어를 멀티 레이어 방식으로 변환해, 회귀 연산이 가능하므로 복잡한 알고리즘도 적용할 수 있는 장점이 있다.
전술한 실시예에서 입력 데이터의 크기와 입력 시점의 예측은 PSE(220)이 수행하고, 입력 데이터 세트 및 기준 데이터 세트를 위한 메모리의 영역의 할당과 각 데이터 세터의 저장은 PSM(210)이 수행한다. 각 입력 데이터 세트에 대한 연산의 순서 및 시점 제어는 PSM(210)이 수행할 수도 있고 별도의 연산 제어기(미도시)가 수행할 수도 있다.
이상, 몇몇 실시예를 참조하여 본 발명의 구성에 대하여 상세히 설명하였으나, 이는 예시에 불과할 뿐 본 발명의 기술적 사상이 이에 한정되는 것은 아니다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다. 예컨대, 각 실시예에서 PSM 및 PSE는 별도의 소프트웨어 모듈 또는 하드웨어 모듈인 것으로 설명하였으나, 하나로 결합된 소프트에어 또는 하드웨어로서 구현되고 동작될 수 있다.
또한, 본 발명의 시스템 및 방법은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
특히, 이상의 실시예에서는 뉴로모픽 반도체 내의 메모리를 주된 대상으로 설명하였으나, 본 발명의 기술 사상 중 다른 유형의 메모리에 적용될 수 있는 구성은 다른 유형의 메모리 관리에 적용될 수 있음은 물론이다.
따라서, 본 발명의 범위는 후술하는 특허 청구범위에 의하여 정의되며 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (12)

  1. 다차원 격자 구조를 가지는 메모리와,
    둘 이상의 데이터 세트 각각의 메모리 사용 정도를 예측하고 상기 메모리에 입력할 순서를 결정하는 예지부와,
    상기 예지부의 예측 결과에 따라 상기 둘 이상의 데이터 세트를 저장할 메모리 영역을 할당하여 상기 데이터 세트를 저장하고 학습 및 추론시키는 관리부
    를 포함하는 메모리 관리 시스템.
  2. 제1항에 있어서, 상기 메모리는,
    2차원 및 3차원 격자 구조 중 하나의 구조를 가지며, 각 차원에 따라 둘 이상의 방향에서 접근이 가능한 것인 메모리 관리 시스템.
  3. 제1항에 있어서, 상기 예지부는,
    미리 저장된 기준 정보 및 실행되는 어플리케이션 출력 데이터 정보 중 하나 이상을 토대로 소정 시간 구간에 입력되는 데이터의 종류와 크기를 예측하는 것인 메모리 관리 시스템.
  4. 제1항에 있어서, 상기 예지부는,
    상기 둘 이상의 데이터 세트에 대하여, 예측된 데이터 세트별 크기 순서대로 메모리 할당 순서를 결정하는 것인 메모리 관리 시스템.
  5. 제1항에 있어서, 상기 예지부는,
    상기 둘 이상의 데이터 세트에 대하여, 예측된 데이터 세트별 크기와, 각 데이터 세트별로 가설정된 메모리의 영역의 어느 한 변의 셀 개수에 기초하여 메모리 할당 순서의 결정 및 메모리 영역의 재할당을 수행하는 것인 메모리 관리 시스템.
  6. 다차원 격자 구조를 가지는 메모리와,
    둘 이상의 데이터 세트 각각의 메모리 사용 정도를 예측하는 예지부와,
    상기 예지부의 예측 결과에 따라 상기 둘 이상의 데이터 세트를 저장할 메모리 영역을 람다 엘레먼트 기법에 따라 할당하여 상기 데이터 세트를 저장하고 학습 및 추론시키는 관리부
    를 포함하는 메모리 관리 시스템.
  7. 제6항에 있어서, 상기 메모리는,
    상기 둘 이상의 데이터 세트 및 연산에 이용할 기준 데이터를 저장하는 저장부와,
    상기 데이터 세트를 상기 기준 데이터에 기초하여 연산하는 연산부
    를 포함하는 것인 메모리 관리 시스템.
  8. 제6항에 있어서, 상기 관리부는,
    상기 메모리에 저장된 상기 둘 이상의 데이터 세트에 대하여 학습을 수행하고 그 학습 결과를 저장하도록 상기 메모리를 제어하는 것인 메모리 관리 시스템.
  9. 제6항에 있어서, 상기 관리부는,
    상기 둘 이상의 데이터 세트를 상기 메모리의 둘 이상의 축 방향에 대하여 교번적으로 저장하는 것인 메모리 관리 시스템.
  10. 삭제
  11. 삭제
  12. 삭제
KR1020190097669A 2019-08-09 2019-08-09 뉴로모픽 메모리 관리 시스템 및 관리 방법 KR102408966B1 (ko)

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 (ko) 2019-08-09 2019-08-09 뉴로모픽 메모리 관리 시스템 및 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190097669A KR102408966B1 (ko) 2019-08-09 2019-08-09 뉴로모픽 메모리 관리 시스템 및 관리 방법

Publications (2)

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

Family

ID=74731660

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190097669A KR102408966B1 (ko) 2019-08-09 2019-08-09 뉴로모픽 메모리 관리 시스템 및 관리 방법

Country Status (1)

Country Link
KR (1) KR102408966B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017033306A (ja) 2015-07-31 2017-02-09 ファナック株式会社 学習メモリの割り当てを最適化する機能を有する学習制御装置を備えたサーボ制御システム
JP2017138867A (ja) 2016-02-05 2017-08-10 富士通株式会社 演算処理回路、および情報処理装置
US20180349035A1 (en) * 2017-05-30 2018-12-06 Seagate Technology Llc Data Storage Device with Buffer Tenure Management
KR101969883B1 (ko) 2012-04-13 2019-04-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990019417A (ko) * 1997-08-29 1999-03-15 윤종용 메모리 관리방법
US8521986B2 (en) * 2009-10-29 2013-08-27 Condusiv Technologies Corporation Allocating storage memory based on future file size or use estimates
KR101876051B1 (ko) * 2016-08-31 2018-08-02 현대자동차주식회사 기계 학습 시스템 및 그의 사용자 제어 패턴 학습 방법
KR101997868B1 (ko) * 2017-02-14 2019-07-09 서울대학교 산학협력단 뉴로모픽 시스템, 및 기억 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101969883B1 (ko) 2012-04-13 2019-04-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP2017033306A (ja) 2015-07-31 2017-02-09 ファナック株式会社 学習メモリの割り当てを最適化する機能を有する学習制御装置を備えたサーボ制御システム
JP2017138867A (ja) 2016-02-05 2017-08-10 富士通株式会社 演算処理回路、および情報処理装置
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
KR20210017835A (ko) 2021-02-17

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
US9766818B2 (en) Electronic system with learning mechanism and method of operation thereof
US11556250B2 (en) Method and apparatus for temperature-gradient aware data-placement for 3D stacked DRAMs
US9256371B2 (en) Implementing reinforcement learning based flash control
CN110750351B (zh) 多核任务调度器、多核任务调度方法、装置及相关产品
EP3872638A1 (en) Operation method of an accelerator and system including the same
TWI533146B (zh) 虛擬資源調整裝置、方法及儲存其之電腦可讀取紀錄媒體
WO2020007336A1 (zh) 扩容方法及设备
US20200193268A1 (en) Multi-instance recurrent neural network prediction
CN114386560A (zh) 数据处理方法和设备
EP4071618B1 (en) Performance-centric cloud database virtual core sizing stack
KR102408966B1 (ko) 뉴로모픽 메모리 관리 시스템 및 관리 방법
US20200117449A1 (en) Accelerated Access to Computations Results Generated from Data Stored in Memory Devices
JP2006277637A (ja) 温度監視によってジョブを割り当てるマルチプロセッサ計算機システム、及びコンピュータプログラム
KR102362319B1 (ko) 메모리 할당 방법 및 이를 수행하기 위한 메모리 관리 시스템
KR102407263B1 (ko) 뉴로모픽 메모리 관리 시스템 및 이를 통한 가중치 연산 방법
CN113254256A (zh) 数据重构方法、存储设备及存储介质
US11449738B2 (en) Neuromorphic memory management system and method thereof
CN110415162B (zh) 大数据中面向异构融合处理器的自适应图划分方法
CN115222101A (zh) 一种流量数据处理方法及装置
US20230042773A1 (en) Neural network computing device and control method thereof
WO2023097424A1 (en) Method and apparatus for fusing layers of different models
KR20240084655A (ko) 뉴럴 네트워크 타일링을 위한 장치 및 방법
CN111158883B (zh) 用于操作系统任务分类的方法、装置及计算机
US20220236899A1 (en) Information processing apparatus, information processing method, and computer-readable recording medium storing information processing program

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