KR102534917B1 - 신경망 처리 회로를 구비하는 메모리 장치 및 이를 포함하는 메모리 시스템 - Google Patents

신경망 처리 회로를 구비하는 메모리 장치 및 이를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR102534917B1
KR102534917B1 KR1020170103575A KR20170103575A KR102534917B1 KR 102534917 B1 KR102534917 B1 KR 102534917B1 KR 1020170103575 A KR1020170103575 A KR 1020170103575A KR 20170103575 A KR20170103575 A KR 20170103575A KR 102534917 B1 KR102534917 B1 KR 102534917B1
Authority
KR
South Korea
Prior art keywords
neural network
network processing
circuit
memory
host
Prior art date
Application number
KR1020170103575A
Other languages
English (en)
Other versions
KR20190018888A (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 KR1020170103575A priority Critical patent/KR102534917B1/ko
Priority to US16/026,575 priority patent/US20190057302A1/en
Publication of KR20190018888A publication Critical patent/KR20190018888A/ko
Application granted granted Critical
Publication of KR102534917B1 publication Critical patent/KR102534917B1/ko

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks

Landscapes

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

Abstract

본 기술에 의한 메모리 장치는 메모리 셀 회로, 호스트에서 제공된 읽기 명령 및 쓰기 명령에 따라 상기 메모리 셀 회로를 제어하는 메모리 인터페이스 회로 및 호스트에서 제공된 신경망 처리 명령에 따라 신경망 처리 동작을 수행하되 신경망 처리 동작을 수행하는 도중에 메모리 셀 회로에 대해서 읽기 명령 및 쓰기 명령을 제공하는 신경망 처리 회로를 포함한다.

Description

신경망 처리 회로를 구비하는 메모리 장치 및 이를 포함하는 메모리 시스템{MEMORY DEVICE COMPRISING NEURAL NETWORK PROCESSOR AND MEMORY SYSTEM INCLUDING THE SAME}
본 발명은 내부에 신경망 프로세서를 구비하는 메모리 장치와 이를 포함하는 메모리 시스템에 관한 것이다.
이미지 인식, 자율 주행 자동차 등의 인공 지능 분야에서 중첩 신경망(Convolutional Neural Network: CNN)이 널리 이용되고 있다.
중첩 신경망은 입력 레이어, 출력 레이어, 및 그 사이의 하나 또는 둘 이상의 내부 레이어를 포함한다.
출력 레이어는 하나 또는 둘 이상의 뉴런을 포함하며 입력 레이어 및 내부 레이어는 각각 다수의 뉴런을 포함한다.
인접한 레이어에 포함된 뉴런들은 시냅스를 통해 다양하게 연결되며 각각의 시냅스에는 가중치가 주어진다.
입력 레이어에 포함된 뉴런들은 예를 들어 인식 대상이 되는 이미지와 같이 입력 신호에 따라 그 값이 정해진다.
내부 레이어와 출력 레이어에 포함된 뉴런들의 값은 그 이전 레이어에 포함된 뉴런과 시냅스에 따라 값이 연산된다.
이와 같이 연결된 중첩 신경망은 트레이닝 동작을 통해 시냅스의 가중치가 결정된다.
훈련이 완료된 중첩 신경망을 이용하여 이미지 인식을 수행하는 추론 동작을 예로 들면 입력 이미지는 입력 레이어의 다수의 뉴런들의 값을 결정하고 이후 다수의 연산을 통해 내부 레이어를 거쳐 출력 레이어의 뉴런에 인식 결과가 출력된다.
중첩 신경망을 트레이닝 하는 동작과 이를 이용한 추론 동작 모두에서 많은 연산을 수행해야 한다.
또한 연산 도중에 생성되는 임시 데이터를 저장하거나 저장된 임시 데이터를 읽기 위하여 많은 메모리 액세스 동작을 수행한다.
종래에는 신경망 연산을 수행하는 프로세서와 메모리 장치 사이의 데이터 입출력 동작에 걸리는 시간으로 인하여 전체 연산 성능이 저하되는 문제가 있다.
P. Chi et al., "A novel processing-in-memory architecture for neural network computation in ReRAM-based main memory", ISCA, 2016. L. Xu, D. Zhang, and N. Jayasena, "Scaling deep learning on multiple in-memory processors," in 3rd Workshop on Near-Data Processing (WoNDP), 2015. Mingyu Gao, Jing Pu, Xuan Yang, Mark Horowitz, Christos Kozyrakis, "TETRIS: Scalable and Efficient Neural Network Acceleration with 3D Memory", ACM SIGARCH Computer Architecture News, vol. 45, pp. 751, 2017, ISSN 01635964.
본 발명은 내부에 신경망 처리 회로를 구비하여 신경망의 트레이닝 및 신경망을 이용한 추론 동작을 수행하는 메모리 장치와 이를 포함하는 메모리 시스템을 제공한다.
본 발명은 외부의 호스트와 내부의 신경망 처리 회로가 동시에 접근할 수 있는 메모리 장치와 이를 포함하는 메모리 시스템을 제공한다.
본 발명의 일 실시예에 의한 메모리 장치는 메모리 셀 회로, 호스트에서 제공된 읽기 명령 및 쓰기 명령에 따라 상기 메모리 셀 회로를 제어하는 메모리 인터페이스 회로 및 호스트에서 제공된 신경망 처리 명령에 따라 신경망 처리 동작을 수행하되 신경망 처리 동작을 수행하는 도중에 메모리 셀 회로에 대해서 읽기 명령 및 쓰기 명령을 제공하는 신경망 처리 회로를 포함한다.
본 발명의 일 실시예에 의한 메모리 시스템은 호스트 및 호스트에서 제공되는 읽기 명령, 쓰기 명령 및 신경망 처리 명령에 따라 읽기 동작, 쓰기 동작 및 신경망 처리 동작을 수행하는 메모리 장치를 포함하고, 메모리 장치는 메모리 셀 회로, 호스트에서 제공된 읽기 명령 및 쓰기 명령에 따라 메모리 셀 회로를 제어하는 메모리 인터페이스 회로 및 신경망 처리 명령에 따라 신경망 처리 동작을 수행하되 신경망 처리 동작을 수행하는 도중에 메모리 셀 회로에 대해서 읽기 명령 및 쓰기 명령을 제공하는 신경망 처리 회로를 포함한다.
본 발명을 통해 메모리 장치 내에 신경망 처리 회로를 구비하여 신경망의 트레이닝 및 신경망을 이용한 추론 동작을 수행함으로써 메모리 장치를 접근하는데 필요한 시간을 줄이고 이에 따라 신경망 처리 동작의 성능을 향상시킬 수 있다.
본 발명에서는 외부의 호스트와 내부의 신경망 처리 회로가 메모리 장치에 동시에 접근할 수 있어 둘 중 하나가 메모리 장치를 점유함으로 인하여 발생하는 성능 저하를 방지할 수 있다.
도 1은 본 발명의 일 실시예에 의한 메모리 시스템의 블록도.
도 2는 도 1의 신경망 처리 회로의 상세 블록도.
도 3은 처리 회로의 블록도.
도 4는 메모리 셀 회로에 신경망 처리 회로 영역을 할당하는 동작을 나타낸 순서도.
도 5는 메모리 셀 회로에서 신경망 처리 회로 영역의 할당을 해제하는 동작을 나타낸 순서도.
도 6 내지 8은 본 발명의 일 실시예에 의한 메모리 시스템을 나타내는 블록도.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예를 개시한다.
도 1은 본 발명의 일 실시예에 의한 메모리 시스템의 블록도이다.
본 발명의 일 실시예에 의한 메모리 시스템은 메모리 장치(10) 및 호스트(20)를 포함한다.
메모리 장치(10)는 로직 회로(11)와 메모리 셀 회로(12)를 포함한다. 로직 회로(11)와 메모리 셀 회로(12)는 적층된 구조를 가질 수 있다.
메모리 셀 회로(12)는 DRAM, HBM, NAND 등의 다양한 기술로 구현될 수 있으며 특정한 종류의 메모리로 한정되지 않는다.
메모리 셀 회로(12)는 실시예에 따라 하나의 종류 또는 다양한 종류의 메모리 기술이 복합되어 구현될 수 있으며 이에 따라 메모리 인터페이스 회로(111)의 구현 역시 다양하게 변경될 수 있다.
이때 로직 회로(11)는 하나 또는 둘 이상의 로직 다이를 포함할 수 있으며 메모리 셀 회로(12) 역시 하나 또는 둘 이상의 셀 다이를 포함할 수 있다.
이 경우 로직 회로(11)와 메모리 셀 회로(12)는 TSV(Thru Silicon Via)를 통해 데이터 및 제어 신호를 송수신할 수 있다.
로직 회로(11)는 메모리 인터페이스 회로(111)와 신경망 처리 회로(100)를 포함한다.
메모리 인터페이스 회로(111)와 신경망 처리 회로(100)는 동일한 로직 다이에 배치될 수도 있고 서로 다른 로직 다이에 배치될 수도 있다.
메모리 인터페이스 회로(111)는 호스트(20)에서 전송된 읽기 명령, 쓰기 명령, 신경망 처리 명령에 따라 메모리 셀 회로(12), 신경망 처리 회로(100)를 제어할 수 있다.
메모리 셀 회로(12)는 종래의 메모리 회로에서와 마찬가지로 입력되는 제어 신호에 따라 데이터를 읽어 출력하거나 입력된 제어 신호에 따라 입력된 데이터를 기록할 수 있다.
신경망 처리 회로(100)는 신경망 처리 명령에 대응하여 메모리 인터페이스 회로(111)에서 출력된 제어 신호에 따라 신경망 처리 동작을 개시하고 종료할 수 있다.
신경망 처리 회로(100)는 신경망 처리 동작을 수행하는 동안 독자적으로 메모리 셀 회로(12)를 제어하여 데이터를 읽거나 기록할 수 있다.
이에 대해서는 도 2를 참조하여 구체적으로 설명한다.
호스트(20)는 메모리 컨트롤러 또는 이를 포함하는 프로세서를 지칭할 수 있다.
호스트(20)는 호스트 인터페이스 회로(21)와 호스트 코어(22)를 포함한다.
호스트 인터페이스 회로(21)는 호스트 코어(22)에서 출력된 메모리 읽기 및 쓰기 명령을 메모리 장치(10)에 출력할 수 있다.
호스트 코어(22)는 신경망 처리 명령을 메모리 장치(10)에 제공할 수 있다.
신경망 처리 명령은 메모리 인터페이스 회로(111)를 통해 신경망 처리 회로(100)에 전달된다.
신경망 처리 회로(100)는 이에 따라 신경망 처리 동작을 수행한다.
신경망 처리 회로(100)가 동작하는 동안 신경망 처리 회로(100)는 메모리 셀 회로(12)를 독자적으로 제어할 수 있다.
이때 메모리 인터페이스 회로(111)는 호스트(20)에서 출력된 읽기 명령 및 쓰기 명령에 따라 메모리 셀 회로(12)를 제어할 수 있다.
메모리 인터페이스 회로(111)와 신경망 처리 회로(100)가 메모리 셀 회로(12)를 제어하는 동작은 동시에 수행될 수 있다.
이를 위하여 메모리 셀 회로(12)의 주소 영역은 호스트 영역과 신경망 처리 회로 영역으로 구분될 수 있다.
이러한 구분은 영구적으로 고정될 수도 있고, 신경망 처리 동작이 수행되는 동안만 일시적으로 지속될 수 있다.
신경망 처리 동작이 수행되는 동안 호스트 영역과 구분되는 신경망 처리 회로 영역을 할당하는 동작과 이를 해제하는 동작에 대해서는 이하의 도 4 및 도 5를 참조하여 구체적으로 설명한다.
메모리 시스템은 캐시 메모리(30)를 더 포함할 수 있다.
캐시 메모리(30)는 메모리 장치(10)에 저장되는 데이터 중 일부를 저장하는 고속의 메모리이다.
본 실시예에서 캐시 메모리(30)는 호스트(20) 내부에서 호스트 인터페이스 회로(21)와 호스트 코어(22) 사이에 위치하나 반드시 이와 같은 실시예로 한정되는 것은 아니다.
캐시 메모리(30)와 이에 대한 제어 기술 자체는 공지된 것이므로 구체적인 설명을 생략한다.
본 실시예에서 메모리 셀 회로(12) 중 신경망 처리 회로(100)가 사용하는 영역의 데이터에 대해서는 캐시를 사용하지 않을 수 있다.
이에 대해서는 아래에서 다시 구체적으로 개시한다.
도 2는 도 1의 신경망 처리 회로(100)를 구체적으로 나타낸 블록도이다.
신경망 처리 회로(100)는 명령 큐(110), 제어 회로(120), 글로벌 버퍼(130), DMA 회로(140), FIFO 큐(150), 처리 회로 어레이(160)를 포함한다.
명령 큐(110)는 호스트에서 제공되는 신경망 처리 명령을 저장한다.
제어 회로(120)는 명령 큐(110)에서 출력되는 신경망 처리 명령에 따라 전체 신경망 처리 회로(100)를 제어하여 신경망 처리 동작을 수행한다.
신경망 처리 동작은 예를 들어 중첩 신경망 회로(CNN: Convolutional Neural Network)의 트레이닝 동작과 이를 이용한 추론 동작을 포함할 수 있다.
제어 회로(120)는 DMA 회로(140)를 제어하여 메모리 셀 회로(12)에 저장된 신경망 관련 데이터를 읽고 이를 글로벌 버퍼(130)에 저장한다.
예를 들어 신경망을 구성하는 시냅스의 가중치 등이 이러한 데이터에 포함될 수 있다.
글로벌 버퍼(130)는 SRAM으로 구현될 수 있으며 신경망 처리 동작에 필요한 데이터 및 처리 결과 데이터 등을 임시로 저장할 수 있다.
DMA 회로(140)는 메모리 인터페이스 회로(111)를 거치지 않고 메모리 셀 회로(12)에 직접 접근하여 읽기 및 쓰기 동작을 제어할 수 있다.
DMA 회로(140)는 글로벌 버퍼(130)를 거치지 않고 데이터를 직접 FIFO 큐(150)에 제공할 수 있다.
처리 회로 어레이(160)는 어레이 형태로 배열된 다수의 처리 회로(160)를 포함하며 예를 들어 컨벌루션 연산과 같은 다양한 연산을 수행할 수 있다.
처리 회로 어레이(160)에서 연산 대상이 되는 데이터 또는 연산 도중의 임시 데이터는 글로벌 버퍼(130), FIFO 큐(150)에 저장될 수 있다.
도 3은 처리 회로 어레이(160)에 포함된 처리 회로(161)를 설명하는 블록도이다.
처리 회로(161)는 처리 회로 내에서의 연산 동작을 제어하는 처리 회로 제어기(1611), 레지스터(1612), 연산 회로(1613)를 포함한다.
레지스터(1612)는 연산 대상이 되는 데이터와 연산 결과를 임시로 저장할 수 있으며 SRAM을 이용하여 구현될 수 있다.
레지스터(1612)에 저장되는 연산 결과는 글로벌 버퍼(130)에 저장되며 이는 다시 DMA 회로(140)를 통해 메모리 셀 회로(12)에 저장될 수 있다.
연산 회로(1613)는 다양한 연산 동작을 수행한다. 예를 들어 연산 회로(1613)는 덧셈, 곱셈, 누적 등의 연산을 수행할 수 있다.
신경망 처리 동작이 진행되지 않는 동안에 호스트(20)는 메모리 인터페이스 회로(111)를 통해 메모리 셀 회로(12)를 독점적으로 사용할 수 있다.
신경망 처리 동작이 진행되는 경우 호스트(20)와 신경망 처리 회로(100)는 메모리 셀 회로(12)를 함께 사용할 수 있다.
이를 위하여 메모리 셀 회로(12)는 호스트(20)가 사용하는 호스트 영역과 신경망 처리 회로(100)가 사용하는 신경망 처리 회로 영역을 구비한다.
전술한 바와 같이 호스트 영역과 신경망 처리 회로 영역은 고정적으로 구분되어 있을 수 있다.
그렇지 않은 경우 신경망 처리 회로의 동작 개시 및 완료 여부에 따라 호스트 영역의 일부를 신경망 처리 회로 영역으로 할당하는 제 1 동작과 신경망 처리 회로 영역의 사용 후에 할당을 해제하여 호스트 영역으로 환원하는 제 2 동작이 수행될 수 있다.
이러한 전환 동작은 호스트(20)가 메모리 인터페이스 회로(10)를 통해 메모리 셀 회로(12)를 제어함으로써 진행될 수 있다.
전환 동작을 위한 명령어는 미리 정의될 수 있다.
예를 들어 사용자가 소스 코드에 메모리 장치(10)에서 신경망 처리 동작을 수행하는 동작을 구현하고, 컴파일러가 이를 컴파일함으로써 미리 정의된 명령이 생성될 수 있다.
호스트(20)는 이러한 명령을 메모리 인터페이스 회로(11)를 통해 메모리 셀 회로(12)에 제공함으로써 전환 동작을 수행할 수 있다.
예를 들어 호스트에서 신경망 처리 회로(100)의 동작을 필요로 하는 신경망 처리 명령을 메모리 인터페이스 회로(11)를 거쳐 신경망 처리 회로(100)에 출력하는 경우 제 1 동작을 함께 또는 미리 수행할 수 있다.
또한 신경망 처리 회로(100)는 신경망 처리 동작이 모두 완료되는 경우 이를 호스트(20)에 알릴 수 있다.
이때 신경망 처리 회로(100)는 신경망 처리 결과가 저장된 주소를 호스트(20)에 제공할 수 있다.
이에 따라 호스트(20)는 제 2 동작을 수행할 수 있다.
도 4는 메모리 셀 회로에 신경망 처리 회로 영역을 할당하는 제 1 동작을 설명하는 순서도이다.
먼저 호스트는 신경망 처리 회로(100)가 사용할 주소 영역을 비캐시 영역으로 설정한다(S100).
이에 따라 호스트는 캐시 메모리(30)에서 신경망 처리 회로(100)가 사용할 주소 영역에 포함된 주소의 데이터를 추방한다(S110).
호스트는 메모리 장치(20)에서 신경망 처리 회로(100)가 사용할 주소 영역에 포함된 데이터를 그 외부의 영역으로 이주한다(S120).
이를 위하여 호스트는 이주 대상이 되는 데이터에 대해서 새로운 물리 주소를 사용하도록 논리 주소와 물리 주소 사이의 맵핑 관계를 변경한다.
주소 매핑 정보는 호스트(20) 내부에 저장될 수 있다.
이후 기존의 물리 주소에 저장된 데이터를 새로운 물리 주소로 이동하도록 메모리 셀 회로(12)를 제어한다.
마지막으로 메모리 장치(10)의 주소 영역을 호스트 영역과 신경망 처리 회로 영역으로 구분한다(S130).
신경망 처리 회로 영역에 대한 정보는 신경망 처리 회로(100)에 제공될 수 있다.
두 영역은 서로 배타적인 주소 범위를 가지며 각각 호스트(20) 또는 신경망 처리 회로(100) 만이 접근할 수 있다.
이에 따라 본 발명에서는 신경망 처리 회로(100)의 동작이 진행되는 동안에도 호스트(20)가 호스트 영역에 접근할 수 있어 성능 저하를 방지할 수 있다.
다만 메모리 인터페이스 회로(11)와 신경망 처리 회로(100)가 메모리 셀 회로(12) 사이에서 버스를 공유하는 경우에는 데이터의 충돌을 방지하기 위하여 동작을 대기할 수도 있을 것이나 이 경우에도 신경망 처리 회로(100)가 메모리 장치 외부에 존재하여 접근하는 종래의 기술에 비해서는 성능 향상을 기대할 수 있음은 자명하다.
신경망 처리 회로 영역이 특정한 영역으로 고정된다면 버스를 중복하여 배치함으로써 성능 향상을 도모할 수 있을 것이다.
도 5는 신경망 처리 회로 영역의 할당을 해제하는 제 2 동작을 설명하는 순서도이다.
먼저 신경망 처리 회로 영역의 데이터 중 호스트(20)가 사용하지 않는 데이터를 무효화하고(S200) 호스트가 사용할 데이터는 유지한다(S210).
전수한 바와 같이 호스트(20)가 사용할 데이터의 주소는 신경망 처리 동작이 종료되는 경우 신경망 처리 회로(100)에서 호스트(20)로 전송될 수 있다.
다른 실시예에서 호스트(20)가 사용할 데이터는 미리 약속된 주소에 저장될 수도 있다.
예를 들어 신경망을 이용한 추론 결과는 호스트(20)에서 사용할 수 있다. 호스트(20)는 신경망 처리 명령이 수행될 주소를 미리 지정할 수 있다.
이 경우 해당 주소의 데이터를 제외한 나머지는 모두 무효의 데이터로 처리할 수 있다.
호스트(20)는 신경망 처리 회로 영역을 캐시 가능한 영역을 설정한다(S220).
이후 신경망 처리 회로 영역을 호스트 영역으로 통합한다(S230).
호스트(20)는 일반적인 메모리 액세스 동작을 통해 신경망 처리 결과를 읽을 수 있다.
도 6 내지 도 8은 본 발명의 일 실시예에 의한 메모리 시스템을 나타낸 블록도이다.
도 6의 실시예에서 메모리 시스템은 호스트와 메모리 장치가 각각 인쇄 회로 기판 상에 장착되고 호스트와 메모리 장치가 인쇄 회로 기판의 배선을 통해 신호를 송수신하는 구조를 가진다.
이와 달리 도 7의 실시예에서 메모리 시스템은 호스트와 메모리 장치가 각각 인터포저 상에 배치되고 인터포저가 인쇄 회로 기판 상에 배치된다.
이 경우 호스트와 메모리 장치는 인터포저에 형성된 배선을 통해 신호를 송수신한다.
이때 호스트와 메모리 장치는 하나의 칩으로 패키징 될 수 있다.
도 6 및 도 7에서 메모리 셀 회로(12)는 4층의 셀 다이를 포함하고 로직 회로(11)는 2층의 로직 다이를 포함한다.
이 경우 메모리 인터페이스 회로와 신경망 처리 회로는 각각 별개의 로직 다이에 배치될 수 있다.
도 8의 실시예에서 메모리 시스템은 다수의 메모리 장치(10-1, 10-2. 10-3, 10-4)와 이들과 각각 연결된 호스트(20)를 포함한다.
다수의 메모리 장치 각각은 전술한 바와 같이 동일한 구성을 가질 수 있다.
호스트(20)는 CPU 또는 GPU일 수 있다.
도 8의 실시예에서 다수의 메모리 장치와 호스트는 별개의 칩으로 구현되어 도 6과 같이 하나의 인쇄 기판 회로 상에 배치될 수 있고, 도 7과 같이 하나의 인터포저 상에 배치되어 하나의 칩으로 패키징 될 수 있다.
일 실시예에서 호스트(20)는 각 메모리 장치에 별개의 신경망 처리 동작을 할당할 수 있다.
다른 실시예에서 호스트(20)는 각 메모리 장치에 하나의 신경망 처리 동작을 분할하여 할당하고 각 메모리 장치에서 출력된 결과를 조합하여 최종적인 결과를 도출할 수 있다.
후자의 경우에 동일한 신경망을 이용하여 다수의 신경망 처리 동작을 수행하는 경우라면 다수의 메모리 장치를 파이프라인으로 구성하여 신경망 처리 동작을 수행함으로써 쓰루풋을 향상시킬 수도 있다.
이상의 개시는 실시예를 예로 들어 본 발명을 설명하기 위한 것으로서 이상의 개시에 의해 본 발명의 권리범위가 제한되는 것은 아니다. 본 발명의 권리범위는 아래의 특허청구범위에 문언적으로 기재된 범위와 그 균등범위에 의해 결정된다.
10: 메모리 장치
20: 호스트
30: 캐시 메모리
21: 호스트 코어
22: 호스트 인터페이스 회로
11: 로직 회로
12: 메모리 셀 회로
111: 메모리 인터페이스 회로
100: 신경망 처리 회로
110: 명령 큐
120: 제어 회로
130: 글로벌 버퍼
140: DMA 회로
150: FIFO 큐
160: 처리 회로 어레이
161: 처리 회로
1611: 처리 회로 제어기
1612: 레지스터
1613: 연산 회로

Claims (22)

  1. 메모리 셀 회로;
    호스트에서 제공된 읽기 명령 및 쓰기 명령에 따라 상기 메모리 셀 회로를 제어하는 메모리 인터페이스 회로; 및
    상기 호스트에서 제공된 신경망 처리 명령에 따라 신경망 처리 동작을 수행하되 상기 신경망 처리 동작을 수행하는 도중에 상기 메모리 셀 회로에 대한 읽기 동작 및 쓰기 동작을 제어하는 신경망 처리 회로;
    를 포함하되,
    상기 신경망 처리 회로가 신경망 처리 동작을 수행하는 동안 상기 메모리 셀 회로는 상기 신경망 처리 회로가 사용하는 신경망 처리 회로 영역과 상기 호스트에서 사용하는 호스트 영역을 포함하는 메모리 장치.
  2. 청구항 1에 있어서, 상기 메모리 셀 회로, 상기 메모리 인터페이스 회로 및 상기 신경망 처리 회로는 적층 구조를 가지는 메모리 장치.
  3. 청구항 2에 있어서, 상기 적층 구조는 다수의 셀 다이와 하나 또는 둘 이상의 로직 다이를 포함하되, 상기 다수의 셀 다이에는 상기 메모리 셀 회로가 형성되고, 상기 하나 또는 둘 이상의 로직 다이는 상기 메모리 인터페이스 회로와 상기 신경망 처리 회로를 포함하는 메모리 장치.
  4. 청구항 3에 있어서, 상기 메모리 인터페이스 회로와 상기 신경망 처리 회로는 동일한 로직 다이에 형성되는 메모리 장치.
  5. 청구항 3에 있어서, 상기 메모리 인터페이스 회로와 상기 신경망 처리 회로는 서로 다른 로직 다이에 형성되는 메모리 장치.
  6. 청구항 1에 있어서, 상기 신경망 처리 회로는
    상기 메모리 인터페이스 회로에서 출력되는 신경망 처리 명령을 저장하는 명령 큐;
    상기 명령 큐에 저장된 신경망 처리 명령에 따라 신경망 처리 동작을 제어하는 제어 회로;
    상기 제어 회로의 제어에 따라 데이터를 임시 저장하는 글로벌 버퍼;
    상기 제어 회로의 제어에 따라 상기 메모리 셀 회로에 데이터를 입출력하는 DMA 회로; 및
    상기 글로벌 버퍼 및 상기 DMA 회로에서 출력되는 데이터를 이용하여 연산 동작을 수행하는 처리 회로 어레이
    를 포함하는 메모리 장치.
  7. 청구항 6에 있어서, 상기 신경망 처리 회로는 상기 DMA 회로에서 출력되는 데이터를 임시 저장하여 상기 처리 회로 어레이에 제공하는 FIFO 큐를 더 포함하는 메모리 장치.
  8. 청구항 6에 있어서, 상기 처리 회로 어레이는 다수의 처리 회로를 포함하고, 상기 다수의 처리 회로 각각은
    레지스터;
    상기 레지스터에 저장된 데이터에 대해서 연산을 수행하여 상기 레지스터에 저장하는 연산 회로; 및
    상기 연산 회로를 제어하는 처리 회로 제어기
    를 포함하는 메모리 장치.
  9. 청구항 8에 있어서, 상기 연산 회로에서 수행하는 연산은 덧셈, 곱셈 또는 누적 연산 중 적어도 하나를 포함하는 메모리 장치.
  10. 삭제
  11. 청구항 1에 있어서, 상기 신경망 처리 회로 영역은 상기 신경망 처리 동작을 수행하기 전에 상기 호스트에서 입력된 명령에 따라 할당되는 메모리 장치.
  12. 청구항 11에 있어서, 상기 신경망 처리 회로 영역은 상기 신경망 처리 동작이 종료된 후 상기 호스트에서 입력된 명령에 따라 할당이 해제되는 메모리 장치.
  13. 호스트 및
    상기 호스트에서 제공되는 읽기 명령, 쓰기 명령 및 신경망 처리 명령에 따라 읽기 동작, 쓰기 동작 및 신경망 처리 동작을 수행하는 메모리 장치
    를 포함하되, 상기 메모리 장치는
    메모리 셀 회로;
    상기 읽기 명령 및 상기 쓰기 명령에 따라 상기 메모리 셀 회로를 제어하는 메모리 인터페이스 회로; 및
    상기 신경망 처리 명령에 따라 상기 신경망 처리 동작을 수행하되 상기 신경망 처리 동작을 수행하는 도중에 상기 메모리 셀 회로에 대한 읽기 동작 및 쓰기 동작을 제어하는 신경망 처리 회로
    를 포함하되,
    상기 메모리 셀 회로는 상기 호스트가 사용하는 호스트 영역을 포함하고,
    상기 호스트에서 상기 신경망 처리 명령을 출력하는 경우, 상기 메모리 장치는 상기 호스트의 제어에 따라 상기 메모리 셀 회로에 상기 신경망 처리 회로가 전용으로 사용하는 신경망 처리 회로 영역을 할당하는 메모리 시스템.
  14. 청구항 13에 있어서, 상기 호스트 및 상기 메모리 장치가 장착되는 인터포저를 더 포함하고 상기 호스트 및 상기 메모리 장치는 하나의 칩으로 패키징되는 메모리 시스템.
  15. 청구항 13에 있어서, 상기 메모리 장치를 캐싱하는 캐시 메모리를 더 포함하는 메모리 시스템.
  16. 삭제
  17. 청구항 13에 있어서, 상기 메모리 장치는 상기 신경망 처리 회로 영역으로 할당되는 영역에 저장된 데이터를 상기 호스트 영역의 빈 공간으로 이주하는 메모리 시스템.
  18. 청구항 13에 있어서, 상기 호스트는 상기 신경망 처리 회로 영역에 대해서 캐싱을 수행하지 않는 메모리 시스템.
  19. 청구항 13에 있어서, 상기 신경망 처리 회로는 상기 신경망 처리 동작을 완료하는 경우 상기 호스트에 이를 통지하고 상기 메모리 장치는 상기 호스트의 제어에 따라 상기 신경망 처리 회로 영역의 할당을 해제하는 메모리 시스템.
  20. 청구항 19에 있어서, 상기 신경망 처리 회로는 상기 신경망 처리 동작의 결과를 저장하는 주소를 상기 호스트에 제공하고, 상기 신경망 처리 회로 영역의 할당이 해제되는 경우 상기 주소의 데이터를 무효화하지 않는 메모리 시스템.
  21. 청구항 20에 있어서, 상기 메모리 장치는 다수 개가 포함되고, 다수 개의 메모리 장치 각각은 상기 호스트의 제어에 따라 각각 서로 다른 신경망 처리 동작을 수행하는 메모리 시스템.
  22. 청구항 20에 있어서, 상기 메모리 장치는 다수 개가 포함되고, 다수 개의 메모리 장치 각각은 상기 호스트의 제어에 따라 동일한 신경망 처리 동작의 일부를 수행하는 메모리 시스템.

KR1020170103575A 2017-08-16 2017-08-16 신경망 처리 회로를 구비하는 메모리 장치 및 이를 포함하는 메모리 시스템 KR102534917B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170103575A KR102534917B1 (ko) 2017-08-16 2017-08-16 신경망 처리 회로를 구비하는 메모리 장치 및 이를 포함하는 메모리 시스템
US16/026,575 US20190057302A1 (en) 2017-08-16 2018-07-03 Memory device including neural network processor and memory system including the memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170103575A KR102534917B1 (ko) 2017-08-16 2017-08-16 신경망 처리 회로를 구비하는 메모리 장치 및 이를 포함하는 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20190018888A KR20190018888A (ko) 2019-02-26
KR102534917B1 true KR102534917B1 (ko) 2023-05-19

Family

ID=65359873

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170103575A KR102534917B1 (ko) 2017-08-16 2017-08-16 신경망 처리 회로를 구비하는 메모리 장치 및 이를 포함하는 메모리 시스템

Country Status (2)

Country Link
US (1) US20190057302A1 (ko)
KR (1) KR102534917B1 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11740932B2 (en) * 2018-05-04 2023-08-29 Apple Inc. Systems and methods for task switching in neural network processor
US11133059B2 (en) 2018-12-06 2021-09-28 Western Digital Technologies, Inc. Non-volatile memory die with deep learning neural network
CN109992225B (zh) * 2019-04-04 2022-02-22 中科寒武纪科技股份有限公司 数据输出方法及相关装置
KR102351087B1 (ko) 2019-06-04 2022-01-14 주식회사 딥엑스 인공신경망의 데이터 로컬리티 기반의 데이터 캐슁을 이용하여 고속의 인공신경망 오퍼레이션을 지원하는 데이터 관리 장치
KR102192325B1 (ko) 2019-06-04 2020-12-28 (주)딥엑스 인공신경망의 데이터 로컬리티 기반의 데이터 캐슁을 이용하여 고속의 인공신경망 오퍼레이션을 지원하는 데이터 관리 장치
US11520521B2 (en) * 2019-06-20 2022-12-06 Western Digital Technologies, Inc. Storage controller having data augmentation components for use with non-volatile memory die
US11501109B2 (en) * 2019-06-20 2022-11-15 Western Digital Technologies, Inc. Non-volatile memory die with on-chip data augmentation components for use with machine learning
US11004500B2 (en) 2019-08-28 2021-05-11 Micron Technology, Inc. Memory with artificial intelligence mode
US11017842B2 (en) 2019-08-29 2021-05-25 Micron Technology, Inc. Copy data in a memory system with artificial intelligence mode
US20210081353A1 (en) * 2019-09-17 2021-03-18 Micron Technology, Inc. Accelerator chip connecting a system on a chip and a memory chip
US11416422B2 (en) 2019-09-17 2022-08-16 Micron Technology, Inc. Memory chip having an integrated data mover
US11397694B2 (en) * 2019-09-17 2022-07-26 Micron Technology, Inc. Memory chip connecting a system on a chip and an accelerator chip
US11676010B2 (en) 2019-10-14 2023-06-13 Micron Technology, Inc. Memory sub-system with a bus to transmit data for a machine learning operation and another bus to transmit host data
US11769076B2 (en) 2019-10-14 2023-09-26 Micron Technology, Inc. Memory sub-system with a virtualized bus and internal logic to perform a machine learning operation
US11681909B2 (en) 2019-10-14 2023-06-20 Micron Technology, Inc. Memory component with a bus to transmit data for a machine learning operation and another bus to transmit host data
US20210110249A1 (en) * 2019-10-14 2021-04-15 Micron Technology, Inc. Memory component with internal logic to perform a machine learning operation
US11694076B2 (en) 2019-10-14 2023-07-04 Micron Technology, Inc. Memory sub-system with internal logic to perform a machine learning operation
KR20210060024A (ko) 2019-11-18 2021-05-26 에스케이하이닉스 주식회사 신경망 처리 회로를 포함하는 메모리 장치
TW202141290A (zh) 2020-01-07 2021-11-01 韓商愛思開海力士有限公司 記憶體中處理(pim)系統和pim系統的操作方法
US11908541B2 (en) 2020-01-07 2024-02-20 SK Hynix Inc. Processing-in-memory (PIM) systems
KR20210093127A (ko) 2020-01-17 2021-07-27 에스케이하이닉스 주식회사 Aim 장치
KR20220008376A (ko) 2020-03-02 2022-01-20 주식회사 딥엑스 특정 패턴을 가지는 인공신경망의 데이터 오퍼레이션의 순서를 모니터링하도록 구성된 컨트롤러 및 이를 포함하는 시스템
US20220101108A1 (en) * 2020-09-30 2022-03-31 International Business Machines Corporation Memory-mapped neural network accelerator for deployable inference systems
US11972137B2 (en) 2020-11-02 2024-04-30 Deepx Co., Ltd. System and memory for artificial neural network (ANN) optimization using ANN data locality
KR20220059409A (ko) * 2020-11-02 2022-05-10 주식회사 딥엑스 인공신경망을 위한 메모리 장치
US11922051B2 (en) 2020-11-02 2024-03-05 Deepx Co., Ltd. Memory controller, processor and system for artificial neural network
KR20220105940A (ko) 2021-01-21 2022-07-28 삼성전자주식회사 비휘발성 메모리 장치 및 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법
US11513720B1 (en) 2021-06-11 2022-11-29 Western Digital Technologies, Inc. Data storage device having predictive analytics
KR20230095775A (ko) 2021-12-22 2023-06-29 에스케이하이닉스 주식회사 Ndp 기능을 포함하는 메모리 확장 장치 및 이를 포함하는 가속기 시스템
US11630605B1 (en) 2022-08-10 2023-04-18 Recogni Inc. Methods and systems for processing read-modify-write requests

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160085690A1 (en) * 2014-09-18 2016-03-24 Samsung Electronics Co., Ltd. Host and computer system having the same

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9111222B2 (en) * 2011-11-09 2015-08-18 Qualcomm Incorporated Method and apparatus for switching the binary state of a location in memory in a probabilistic manner to store synaptic weights of a neural network
US20140040532A1 (en) 2012-08-06 2014-02-06 Advanced Micro Devices, Inc. Stacked memory device with helper processor
KR101803409B1 (ko) * 2015-08-24 2017-12-28 (주)뉴로컴즈 다중 계층 신경망 컴퓨팅 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160085690A1 (en) * 2014-09-18 2016-03-24 Samsung Electronics Co., Ltd. Host and computer system having the same

Also Published As

Publication number Publication date
KR20190018888A (ko) 2019-02-26
US20190057302A1 (en) 2019-02-21

Similar Documents

Publication Publication Date Title
KR102534917B1 (ko) 신경망 처리 회로를 구비하는 메모리 장치 및 이를 포함하는 메모리 시스템
US10824341B2 (en) Flash-based accelerator and computing device including the same
US11176438B2 (en) Neural network system, application processor having the same, and method of operating the neural network system
US20080189522A1 (en) Method and Apparatus for Enabling Resource Allocation Identification at the Instruction Level in a Processor System
US8566532B2 (en) Management of multipurpose command queues in a multilevel cache hierarchy
KR102428563B1 (ko) 수눕 작동을 관리하는 코히런트 인터커넥트와 이를 포함하는 데이터 처리 장치들
JP7242170B2 (ja) メモリープールを有するコンピューティングシステムのためのメモリー分割
US7765250B2 (en) Data processor with internal memory structure for processing stream data
US20230195645A1 (en) Virtual partitioning a processor-in-memory ("pim")
US11609879B2 (en) Techniques for configuring parallel processors for different application domains
CN114341805A (zh) 纯函数语言神经网络加速器系统及结构
CN115176236A (zh) 用于存储管理的系统和方法
JP2012008747A (ja) 集積装置、メモリ割り当て方法、および、プログラム
KR20240023642A (ko) 메모리-로컬 컴퓨팅을 위한 아토믹 메모리 동작들의 동적 병합
JP2023542935A (ja) 早期解放を伴うレジスタ圧縮
KR20230059536A (ko) 프로세스 스케줄링 방법 및 장치
US20040177224A1 (en) Local memory with ownership that is transferrable between neighboring processors
CN116483536B (zh) 数据调度方法、计算芯片及电子设备
US20220222511A1 (en) Method and system for feature-maps allocation in system-cache using prioritized linear scan for neural network acceleration
CN116450055B (zh) 一种多处理卡间的存储区域分配方法和系统
US20230101038A1 (en) Deterministic mixed latency cache
EP4155959A1 (en) Embedded programmable logic device for acceleration in deep learning-focused processors
US20240061806A1 (en) Multi-core processing and memory arrangement
KR20180036117A (ko) 캐시 부스팅과 경과시간 최소화를 통한 효율적인 멀티태스킹 그래픽처리장치
JP2023527770A (ja) メモリにおける推論

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant