KR20210008776A - 반도체 메모리 장치 및 이를 포함하는 전자 시스템 - Google Patents

반도체 메모리 장치 및 이를 포함하는 전자 시스템 Download PDF

Info

Publication number
KR20210008776A
KR20210008776A KR1020190085380A KR20190085380A KR20210008776A KR 20210008776 A KR20210008776 A KR 20210008776A KR 1020190085380 A KR1020190085380 A KR 1020190085380A KR 20190085380 A KR20190085380 A KR 20190085380A KR 20210008776 A KR20210008776 A KR 20210008776A
Authority
KR
South Korea
Prior art keywords
data
statistical
processor
semiconductor memory
memory core
Prior art date
Application number
KR1020190085380A
Other languages
English (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 KR1020190085380A priority Critical patent/KR20210008776A/ko
Priority to US16/790,189 priority patent/US11567690B2/en
Publication of KR20210008776A publication Critical patent/KR20210008776A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • 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
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Abstract

반도체 메모리 장치는 메모리 코어 및 통계적 특성 추출기를 포함한다. 메모리 코어는 외부의 프로세서로부터 제공되는 복수의 데이터들을 저장하는 복수의 메모리 셀들을 포함한다. 통계적 특성 추출기는 외부의 프로세서와 메모리 코어 사이의 데이터 경로 상에 배치되고, 외부의 프로세서로부터 입력되거나 메모리 코어로부터 출력되는 복수의 데이터들에 대한 통계적 특성을 분석하여 통계적 특성과 관련된 적어도 하나의 통계적 특성 값을 획득 및 저장하며, 적어도 하나의 통계적 특성 값을 외부의 프로세서로 전달한다.

Description

반도체 메모리 장치 및 이를 포함하는 전자 시스템{SEMICONDUCTOR MEMORY DEVICE AND ELECTRONIC SYSTEM THE SAME}
본 발명은 반도체 집적 회로에 관한 것으로서, 더욱 상세하게는 반도체 메모리 장치 및 상기 반도체 메모리 장치를 포함하는 전자 시스템에 관한 것이다.
종래의 컴퓨팅 시스템 구조에서는, 명령어(또는 프로그램) 및 데이터가 프로세서로부터 이격된 메모리 장치에 저장되고, 상기 명령어에 기초하여 상기 데이터에 대한 데이터 처리를 수행하기 위해서는 상기 명령어 및 상기 데이터가 전송되어 한다. 이에 따라, 프로세서의 처리 속도가 증가하더라도, 프로세서와 메모리 장치 사이의 데이터 전송 속도가 성능 향상의 장애물(bottleneck)로 작용하여 컴퓨팅 시스템의 처리량(throughput)을 제한할 수 있다. 이러한 문제를 해결하도록, 프로세서 로직이 메모리 셀들에 밀접하게 결합된 PIM(Processing-In-Memory) 장치가 개발되었다.
한편, 최근에는 인공 지능, 영상인식(Video/Motion Recognition), 딥러닝(Deep learning), 기계학습(Machine Learning) 등의 기술이 발전함으로써, 음성, 이미지, 동영상 또는 텍스트와 같은 데이터를 자동(Automation)으로 인식하여 데이터와 연관된 정보를 제공하거나 데이터와 관련된 서비스를 제공하는 지능형 서비스(Intelligent Service)가 다양한 분야에서 사용되고 있다.
본 발명의 일 목적은 저장된 데이터의 통계적 특성을 효과적으로 파악할 수 있고 데이터 프로세싱 효율을 향상시킬 수 있는 반도체 메모리 장치를 제공하는 것이다.
본 발명의 다른 목적은 상기 반도체 메모리 장치를 포함하여 데이터 프로세싱 효율을 향상시킬 수 있는 전자 시스템을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 반도체 메모리 장치는 메모리 코어 및 통계적 특성 추출기를 포함한다. 상기 메모리 코어는 외부의 프로세서로부터 제공되는 복수의 데이터들을 저장하는 복수의 메모리 셀들을 포함한다. 상기 통계적 특성 추출기는 상기 외부의 프로세서와 상기 메모리 코어 사이의 데이터 경로 상에 배치되고, 상기 외부의 프로세서로부터 입력되거나 상기 메모리 코어로부터 출력되는 상기 복수의 데이터들에 대한 통계적 특성을 분석하여 상기 통계적 특성과 관련된 적어도 하나의 통계적 특성 값을 획득 및 저장하며, 상기 적어도 하나의 통계적 특성 값을 상기 외부의 프로세서로 전달한다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 전자 시스템은 프로세서 및 복수의 반도체 메모리 장치들을 포함한다. 상기 복수의 반도체 메모리 장치들은 상기 프로세서로부터 제공되는 복수의 데이터들을 저장한다. 상기 복수의 반도체 메모리 장치들 중 제1 반도체 메모리 장치는 제1 메모리 코어 및 제1 통계적 특성 추출기를 포함한다. 상기 제1 메모리 코어는 상기 복수의 데이터들 중 제1 데이터들을 저장하는 복수의 메모리 셀들을 포함한다. 상기 제1 통계적 특성 추출기는 상기 프로세서와 상기 제1 메모리 코어 사이의 제1 데이터 경로 상에 배치되고, 상기 프로세서로부터 입력되거나 상기 제1 메모리 코어로부터 출력되는 상기 제1 데이터들에 대한 제1 통계적 특성을 분석하여 상기 제1 통계적 특성과 관련된 적어도 하나의 제1 통계적 특성 값을 획득 및 저장하며, 상기 적어도 하나의 제1 통계적 특성 값을 상기 프로세서로 전달한다.
상기와 같은 본 발명의 실시예들에 따른 반도체 메모리 장치 및 전자 시스템에서, 반도체 메모리 장치는 프로세서로부터 수신하거나 저장되어 있는 데이터들에 대한 통계적 특성을 분석하는 통계적 특성 추출기를 포함하여 구현될 수 있다. 통계적 특성이 필요한 경우에, 프로세서가 전체 데이터를 독출하여 통계적 특성을 분석/연산하는 대신에, 반도체 메모리 장치가 자체적으로 획득한 통계적 특성을 프로세서에 전달할 수 있다. 따라서, 프로세서와 반도체 메모리 장치 사이의 데이터 입출력 및 프로세서의 데이터 연산/처리에 대한 오버헤드를 감소시킬 수 있고, 데이터들의 통계적 특성을 빠르고 효과적으로 파악할 수 있으며, 데이터 프로세싱 효율을 향상시킬 수 있다.
도 1은 본 발명의 실시예들에 따른 반도체 메모리 장치를 포함하는 전자 시스템을 나타내는 블록도이다.
도 2a, 2b, 2c, 2d, 2e 및 2f는 본 발명의 실시예들에 따른 전자 시스템의 동작을 설명하기 위한 도면들이다.
도 3은 본 발명의 실시예들에 따른 반도체 메모리 장치의 일 예를 나타내는 블록도이다.
도 4a 및 4b는 본 발명의 실시예들에 따른 전자 시스템의 동작을 설명하기 위한 도면들이다.
도 5는 본 발명의 실시예들에 따른 반도체 메모리 장치의 동작을 설명하기 위한 도면이다.
도 6, 7, 8, 9a, 9b 및 9c는 본 발명의 실시예들에 따른 전자 시스템의 동작을 설명하기 위한 도면들이다.
도 10, 11 및 12는 본 발명의 실시예들에 따른 반도체 메모리 장치를 포함하는 전자 시스템을 나타내는 블록도들이다.
도 13a, 13b 및 13c는 도 12의 전자 시스템의 동작을 설명하기 위한 도면들이다.
도 14, 15 및 16은 본 발명의 실시예들에 따른 반도체 메모리 장치를 포함하는 전자 시스템을 나타내는 블록도들이다.
도 17은 본 발명의 실시예들에 따른 전자 시스템에 의해 구동되는 신경망 시스템의 일 예를 설명하기 위한 도면이다.
도 18은 본 발명의 실시예들에 따른 반도체 메모리 장치의 구동 방법을 나타내는 순서도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 반도체 메모리 장치를 포함하는 전자 시스템을 나타내는 블록도이다.
도 1을 참조하면, 전자 시스템(100)은 적어도 하나의 프로세서(200) 및 복수의 반도체 메모리 장치들(310, 320, ...)을 포함한다.
프로세서(200)는 전자 시스템(100)의 전반적인 동작을 제어하고, 복수의 데이터들(D11, D12, ..., D21, D22, ...)에 대한 연산, 처리 등을 수행한다. 예를 들어, 프로세서(200)는 전자 시스템(100)을 구동하기 위한 운영 체제(Operating System; OS)를 실행할 수 있다.
일 실시예에서, 프로세서(200)는 중앙 처리 장치(Central Processing Unit; CPU), 그래픽 처리 장치(Graphic Processing Unit; GPU), 신경 처리 장치(Neural Processing Unit; NPU), 디지털 신호 프로세서(Digital Signal Processor; DSP), 영상 신호 프로세서(Image Signal Processor; ISP) 및 특정 작업 전용 하드웨어(Dedicated Hardware, DHW) 중 적어도 하나를 포함할 수 있다. 예를 들어, 상기 특정 작업 전용 하드웨어는 비전 처리 장치(Vision Processing Unit; VPU), 비전 IP(Vision Intellectual Property; VIP) 등을 포함할 수 있다.
복수의 반도체 메모리 장치들(310, 320)은 제1 반도체 메모리 장치(MEM1)(310) 및 제2 반도체 메모리 장치(MEM2)(320)를 포함할 수 있다. 편의상 도 1에서는 2개의 반도체 메모리 장치들(310, 320)만을 도시하였으나, 본 발명은 이에 한정되지 않으며, 전자 시스템(100)에 포함되는 반도체 메모리 장치들의 개수는 실시예에 따라서 다양하게 변경될 수 있다.
복수의 반도체 메모리 장치들(310, 320)은 프로세서(200)로부터 제공되는 복수의 데이터들(D11, D12, D21, D22)을 저장한다. 이를 위하여, 복수의 반도체 메모리 장치들(310, 320) 각각은 복수의 메모리 셀들을 포함하는 메모리 코어 또는 메모리 코어 영역(Memory Core Region, MCR)을 포함한다.
구체적으로, 제1 반도체 메모리 장치(310)는 복수의 데이터들(D11, D12, D21, D22) 중 제1 데이터들(D11, D12, ...)을 저장하는 제1 메모리 코어(MCR1)(314)를 포함한다. 이와 유사하게, 제2 반도체 메모리 장치(320)는 복수의 데이터들(D11, D12, D21, D22) 중 제2 데이터들(D21, D22, ...)을 저장하는 제2 메모리 코어(MCR2)(324)를 포함한다.
또한, 복수의 반도체 메모리 장치들(310, 320)은 복수의 데이터들(D11, D12, D21, D22)에 대한 통계적 특성을 자체적/내부적으로 분석하여 통계적 특성 값을 획득 및 저장한다. 이를 위하여, 복수의 반도체 메모리 장치들(310, 320) 각각은 통계적 특성 추출기(Statistic Feature Extractor, SFE)를 포함한다. 상기 통계적 특성 추출기는 프로세싱 소자(Processing Unit; PU) 및 내부 캐시(Internal Cache, CAC)를 포함하여 구현될 수 있다. 상기 프로세싱 소자는 PU 레이어 또는 PU 로직이라 부를 수도 있다.
구체적으로, 제1 반도체 메모리 장치(310)는 제1 통계적 특성 추출기(SFE1)(312)를 포함한다. 제1 통계적 특성 추출기(312)는 프로세서(200)와 제1 메모리 코어(314) 사이의 제1 데이터 경로(DP1) 상에 배치되고, 프로세서(200)로부터 입력되거나 제1 메모리 코어(314)로부터 출력되는 제1 데이터들(D11, D12)에 대한 제1 통계적 특성을 분석하여 상기 제1 통계적 특성과 관련된 적어도 하나의 제1 통계적 특성 값을 획득 및 저장하며, 상기 적어도 하나의 제1 통계적 특성 값을 프로세서(200)로 전달한다.
제1 통계적 특성 추출기(312)는 제1 프로세싱 소자(PU1) 및 제1 내부 캐시(CAC1)를 포함할 수 있다. 제1 프로세싱 소자(PU1)는 프로세서(200)가 제1 데이터들(D11, D12)을 제1 메모리 코어(314)에 저장하고자 하는 경우에 제1 데이터 경로(DP1)를 통해 수신되는 제1 데이터들(D11, D12)을 이용하여 상기 제1 통계적 특성을 분석하거나 제1 데이터들(D11, D12)이 제1 메모리 코어(314)에 저장된 이후에 제1 메모리 코어(314)의 유휴(idle) 시간 동안에 제1 메모리 코어(314)에 저장되어 있는 제1 데이터들(D11, D12)을 독출하여 상기 제1 통계적 특성을 분석하고, 상기 적어도 하나의 제1 통계적 특성 값을 연산 및 획득할 수 있다. 제1 내부 캐시(CAC1)는 상기 적어도 하나의 제1 통계적 특성 값을 저장하고, 프로세서(200)의 요청에 의해 상기 적어도 하나의 제1 통계적 특성 값을 프로세서(200)로 전달할 수 있다. 다시 말하면, 프로세서(200)가 제1 데이터들(D11, D12)에 대한 상기 제1 통계적 특성을 요청하는 경우에, 제1 데이터들(D11, D12)을 프로세서(200)에 전달하는 대신에, 저장된 상기 적어도 하나의 제1 통계적 특성 값을 프로세서(200)에 전달할 수 있다.
이와 유사하게, 제2 반도체 메모리 장치(320)는 제2 통계적 특성 추출기(SFE2)(322)를 포함한다. 제2 통계적 특성 추출기(322)는 프로세서(200)와 제2 메모리 코어(324) 사이의 제2 데이터 경로(DP2) 상에 배치되고, 프로세서(200)로부터 입력되거나 제2 메모리 코어(324)로부터 출력되는 제2 데이터들(D21, D22)에 대한 제2 통계적 특성을 분석하여 상기 제2 통계적 특성과 관련된 적어도 하나의 제2 통계적 특성 값을 획득 및 저장하며, 상기 적어도 하나의 제2 통계적 특성 값을 프로세서(200)로 전달한다.
제2 통계적 특성 추출기(322)는 제2 프로세싱 소자(PU2) 및 제2 내부 캐시(CAC2)를 포함할 수 있다. 제2 프로세싱 소자(PU2)는 프로세서(200)가 제2 데이터들(D21, D22)을 제2 메모리 코어(324)에 저장하고자 하는 경우에 제2 데이터 경로(DP2)를 통해 수신되는 제2 데이터들(D21, D22)을 이용하여 상기 제2 통계적 특성을 분석하거나 제2 데이터들(D21, D22)이 제2 메모리 코어(324)에 저장된 이후에 제2 메모리 코어(324)의 유휴 시간 동안에 제2 메모리 코어(324)에 저장되어 있는 제2 데이터들(D21, D22)을 독출하여 상기 제2 통계적 특성을 분석하고, 상기 적어도 하나의 제2 통계적 특성 값을 연산 및 획득할 수 있다. 제2 내부 캐시(CAC2)는 상기 적어도 하나의 제2 통계적 특성 값을 저장하고, 프로세서(200)의 요청에 의해 상기 적어도 하나의 제2 통계적 특성 값을 프로세서(200)로 전달할 수 있다.
일 실시예에서, 프로세싱 소자들(PU1, PU2) 각각은 PIM(Processing-In-Memory) 장치 또는 FPGA(Field Programmable Gate Array) 장치를 포함할 수 있고, 그 밖에 반도체 메모리 장치 내에서 프로세싱을 수행하는 임의의 장치를 포함하여 구현될 수 있다.
일 실시예에서, 프로세싱 소자들(PU1, PU2) 각각에 의해 연산 및 획득되는 통계적 특성 값은 데이터들에 대한 데이터 수, 히스토그램, 최대값, 최소값, 평균값, 중간값, 분산, 표준편차, 소수점 길이(fractional length) 또는 상술한 값들을 계산하기 위한 중간 결과 값을 포함할 수 있고, 그 밖에 다양한 통계적 특성들을 더 포함할 수 있다.
일 실시예에서, 소수점 길이(fractional length)란 데이터의 정수부(integer part)와 소수부(fractional part)의 길이에 대한 값으로, 예를 들어 입력 데이터를 반도체 메모리 장치들(310, 320)에 저장하거나 또는 반도체 메모리 장치들(310, 320)에 저장된 데이터를 출력할 때 데이터 포맷을 Floating Point 32(FP32) 또는 Integer 16bit(INT16) 또는 Integer 32bit(INT32)로 변경하는 것을 포함할 수 있다.
실시예에 따라서, 각 프로세싱 소자는 각 반도체 메모리 장치와 동일한 패키지에 포함되거나 서로 다른 패키지에 포함될 수도 있고, 각 반도체 메모리 장치 내부에 메모리 버퍼 상에 존재하거나 이와 독립된 형태로 존재하는 등 다양한 형태로 구현될 수 있다.
실시예에 따라서, 도 2c, 2d, 2e 및 2f를 참조하여 후술하는 것처럼, 각 프로세싱 소자는 데이터 경로를 통해 수신되는 데이터와 동일 클럭 내에서 연산 처리할 수도 있다.
일 실시예에서, 복수의 반도체 메모리 장치들(310, 320) 각각은 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), TRAM(Thyristor Random Access Memory) 등과 같은 휘발성 메모리, 및 플래시 메모리(Flash Memory), PRAM(Phase change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등과 같은 비휘발성 메모리 중 적어도 하나를 포함할 수 있다. 또한, 실시예에 따라서, 복수의 반도체 메모리 장치들(310, 320) 각각은 3DS(Three Dimensional Stack) 모듈, HBM(High Bandwidth Memory) 모듈, HMC(Hybrid Memory Cube) 모듈 등과 같은 다양한 메모리 아키텍쳐로 구현되거나, SSD(solid state drive), eSSD(embedded SSD), MMC(multimedia card), eMMC(embedded MMC), UFS(universal flash storage) 등과 같은 저장 장치의 형태로 구현될 수도 있다.
일 실시예에서, 전자 시스템(100)은 휴대폰(mobile phone), 스마트 폰(smart phone), 태블릿(tablet) PC(Personal Computer), 노트북(laptop computer), PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 디지털 카메라(digital camera), 캠코더(camcorder), 휴대용 게임 콘솔(portable game console), 음악 재생기(music player), 동영상 재생기(video player), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(Internet of Things) 기기, e-북(e-book), VR(Virtual Reality) 기기, AR(Augmented Reality) 기기, PC(Personal Computer), 서버 컴퓨터(server computer), 워크스테이션(workstation), 디지털 TV(digital television), 셋-탑 박스(set-top box), 네비게이션 시스템 등의 임의의 컴퓨팅 시스템 및/또는 모바일 시스템일 수 있다.
일 실시예에서, 도 17을 참조하여 후술하는 것처럼, 전자 시스템(100)은 인공 신경망(Artificial Neural Network; ANN) 시스템, 컨볼루션 신경망(Convolutional Neural Network; CNN) 시스템, 심층 신경망(Deep Neural Network; DNN) 시스템, 딥 러닝(deep learning) 시스템 등과 같은 임의의 신경망(neural network) 시스템 및/또는 머신 러닝(machine learning) 시스템을 구동하는데 이용될 수 있다. 예를 들어, 영상 분류(image classify) 서비스, 생체 정보에 기초한 사용자 인증(authentication) 서비스, 운전 보조 시스템(Advanced Driver Assistance System; ADAS) 서비스, 음성 보조(voice assistant) 서비스, 자동 음성 인식(Automatic Speech Recognition; ASR) 서비스 등과 같은 다양한 서비스 및/또는 어플리케이션이 전자 시스템(100)에 의해 실행 및 처리될 수 있다. 이 경우, 프로세서(200)에 의해 처리되고 복수의 반도체 메모리 장치들(310, 320)에 저장되는 복수의 데이터들(D11, D12, D21, D22)은 신경망 시스템을 구성하는 복수의 레이어들에 포함되는 복수의 가중치들 또는 입출력 특성 맵들을 나타낼 수 있다.
도 2a, 2b, 2c, 2d, 2e 및 2f는 본 발명의 실시예들에 따른 전자 시스템의 동작을 설명하기 위한 도면들이다.
도 2a를 참조하면, 종래의 전자 시스템에서, 프로세서(20)는 데이터(DAT)에 대한 연산, 처리 등을 수행하고 데이터(DAT)를 반도체 메모리 장치(30)에 기입한다. 이후에, 데이터(DAT)에 대한 통계적 특성 값(SFV)이 필요한 경우에, 프로세서(20)는 반도체 메모리 장치(30)에 기입된 데이터(DAT)를 독출하고, 독출된 데이터(DAT)를 분석하여 통계적 특성 값(SFV)을 획득한다.
도 2a의 종래의 전자 시스템에서, 프로세서(20)와 반도체 메모리 장치(30) 사이의 전체 데이터 전송량은 데이터(DAT)의 크기의 2배가 되며, 프로세서(20)의 전체 데이터 처리 시간은 데이터(DAT)의 기입 시간, 독출 시간 및 통계적 특성 값(SFV)을 획득하는데 필요한 연산 시간의 합이 된다.
도 2b를 참조하면, 본 발명의 실시예들에 따른 전자 시스템에서, 프로세서(200)는 데이터(DAT)에 대한 연산, 처리 등을 수행하고 데이터(DAT)를 반도체 메모리 장치(300)에 기입한다. 반도체 메모리 장치(300)는 내부에 포함된 통계적 특성 추출기(예를 들어, 도 1의 312 또는 314)를 이용하여 데이터(DAT)에 대한 통계적 특성 값(SFV)을 자체적/내부적으로 획득 및 저장한다. 이후에, 데이터(DAT)에 대한 통계적 특성 값(SFV)이 필요한 경우에, 프로세서(200)는 반도체 메모리 장치(300)에 저장되어 있는(즉, 상기 통계적 특성 추출기에 저장되어 있는) 통계적 특성 값(SFV)을 독출한다.
도 2b의 본 발명의 실시예들에 따른 전자 시스템에서, 프로세서(200)와 반도체 메모리 장치(300) 사이의 전체 데이터 전송량은 데이터(DAT)의 크기 및 통계적 특성 값(SFV)의 크기의 합이 되며, 프로세서(200)의 전체 데이터 처리 시간은 데이터(DAT)의 기입 시간 및 통계적 특성 값(SFV)의 독출 시간의 합이 된다. 일반적으로 통계적 특성 값(SFV)의 크기는 데이터(DAT)의 크기보다 훨씬 작으며, 이에 따라 통계적 특성 값(SFV)의 독출 시간 또한 데이터(DAT)의 독출 시간보다 훨씬 짧으므로, 데이터 전송량 및 데이터 처리 시간이 감소할 수 있다.
본 발명의 실시예들에 따른 반도체 메모리 장치 및 이를 포함하는 전자 시스템에서, 반도체 메모리 장치는 프로세서로부터 수신하거나 저장되어 있는 데이터들에 대한 통계적 특성을 분석하는 통계적 특성 추출기를 포함하여 구현될 수 있다. 통계적 특성이 필요한 경우에, 프로세서가 전체 데이터를 독출하여 통계적 특성을 분석/연산하는 대신에, 반도체 메모리 장치가 자체적으로 획득한 통계적 특성을 프로세서에 전달할 수 있다. 따라서, 프로세서와 반도체 메모리 장치 사이의 데이터 입출력 및 프로세서의 데이터 연산/처리에 대한 오버헤드(overhead)를 감소시킬 수 있고, 데이터들의 통계적 특성을 빠르고 효과적으로 파악할 수 있으며, 데이터 프로세싱 효율을 향상시킬 수 있다.
특히, 본 발명의 실시예들에 따른 반도체 메모리 장치 및 전자 시스템이 신경망 시스템 및/또는 머신 러닝 시스템을 구동하는데 이용되는 경우에, 신경망 시스템을 구성하는 복수의 레이어들 각각에 대한 통계적 특성 및/또는 복수의 레이어들 모두의 특정 영역에 대한 통계적 특성을 빠르고 효과적으로 파악하여 추론(inference) 또는 트레이닝(training) 동작을 수행할 수 있다. 이에 따라, 본 발명의 실시예들은 신경망 시스템에서 영역별 특성을 이용한 다양한 동작에 적용될 수 있으며, 예를 들어 가중치 밀도 분포(weight density distribution)를 계산하여 전지 작업 비율(pruning rate)을 결정하는 방법, 전지 작업 비율/민감도(sensitivity)/가중치 등을 이용한 병합(interpolation) 계산 방법, 영역별 최소값/최대값을 이용한 양자화(quantization) 방법, 기입/독출 시 소수점 길이를 변경하는 방법, 이전 학습(Transfer Learning) 시 조기 중단(early stopping)하는 방법, ASR에서 어휘 이외의 음성(out of vocabulary)을 파악하여 다른 모델로 변경하는 방법 등에 적용될 수 있다.
도 2c를 참조하면, 종래의 반도체 메모리 장치(31)는 클럭 신호(CLK)에 기초하여 데이터(DAT)를 수신 및 저장하며, 이 때 반도체 메모리 장치(31)에 입력되는 데이터(DAT_MEM)와 메모리 코어(MCR)에 입력되는 데이터(DAT_MCR) 사이에는 데이터 입출력 버퍼(IOBUF)에 의한 제1 전체 지연 레이턴시(total delay latency)(T1)가 발생할 수 있다. 편의상 도 2c 및 이후의 도면에서 데이터 입출력 버퍼(IOBUF)만을 도시하였으나, 제1 전체 지연 레이턴시(T1)는 도 3에서 데이터와 메모리 코어 사이에 해당하는 데이터 입출력 버퍼(495), 입출력 게이팅 회로(490), 센스 앰프부(485) 등에 의한 레이턴시의 합을 나타낼 수 있다.
도 2d, 2e 및 2f를 참조하면, 본 발명의 실시예들에 따른 반도체 메모리 장치들(301, 302, 303) 또한 클럭 신호(CLK)에 기초하여 데이터(DAT)를 수신 및 저장하며, 이 때 반도체 메모리 장치들(301, 302, 303)에 포함되는 프로세싱 소자(PU)는 데이터 경로를 통해 수신되는 데이터와 동일 클럭 내에서 연산 처리할 수 있다.
도 2d의 예에서, 반도체 메모리 장치(301)에 입력되는 데이터(DAT_MEM)와 프로세싱 소자(PU) 사이에는 클럭 신호(CLK)의 0주기 또는 그 이상의 레이턴시(L1)가 존재하고, 레이턴시(L1)에 의해 프로세싱 소자(PU)에 입력되는 데이터(DAT_PU)는 레이턴시(L1)만큼 지연되고, 프로세싱 소자(PU)에서 출력되는 데이터(DAT_PU_OUT)는 클럭 신호(CLK)의 1주기보다 길고 프로세싱 소자(PU)에 의한 제1 지연 레이턴시(TP1)가 발생하며, 이후에 메모리 코어(MCR)까지의 레이턴시(T1L1)가 발생할 수 있다. 따라서 반도체 메모리 장치(301)에 입력되는 데이터(DAT_MEM)와 메모리 코어(MCR)에 입력되는 데이터(DAT_MCR) 사이에는 제1 전체 지연 레이턴시(T1)보다 긴 제2 전체 지연 레이턴시(T2)가 발생할 수 있다.
도 2e의 예에서, 반도체 메모리 장치(302)에 입력되는 데이터(DAT_MEM)와 프로세싱 소자(PU) 사이에는 클럭 신호(CLK)의 0주기 또는 그 이상의 레이턴시(L1)가 존재하고, 레이턴시(L1)에 의해 프로세싱 소자(PU)에 입력되는 데이터(DAT_PU)는 레이턴시(L1)만큼 지연되고, 프로세싱 소자(PU)에서 출력되는 데이터(DAT_PU_OUT)는 클럭 신호(CLK)의 1주기보다 짧고 프로세싱 소자(PU)에 의한 제2 지연 레이턴시(TP2)가 발생하며, 이 경우 메모리 코어(MCR)까지의 레이턴시(T1L1)에 숨길 수(즉, 포함될) 있다. 따라서 반도체 메모리 장치(302)에 입력되는 데이터(DAT_MEM)와 메모리 코어(MCR)에 입력되는 데이터(DAT_MCR) 사이에는 제1 전체 지연 레이턴시(T1)와 실질적으로 동일한 제3 전체 지연 레이턴시(T3)가 발생할 수 있다. 다시 말하면, 도 2e의 프로세싱 소자(PU)는 데이터의 이동에 지연이 발생하지 않도록 클럭 신호(CLK)의 1주기 이내에 동작하며, 따라서 추가적인 지연 없이 데이터를 수신/저장할 수 있다.
도 2f의 예에서, 반도체 메모리 장치(303)에 포함되는 프로세싱 소자(PU)에 의한 제1 지연 레이턴시(TP1)는 클럭 신호(CLK)의 1주기보다 길지만, 레지스터(register, REG)를 이용하여 입력과 메모리 코어 사이의 데이터(DAT)를 스누핑(snooping)하고, 프로세싱 소자(PU)는 스누핑 데이터(SDAT)를 수신하여 연산 동작을 수행할 수 있다. 이에 따라, 프로세싱 소자(PU)에 의한 레이턴시(TP1)와 관계없이 반도체 메모리 장치(303)에 입력되는 데이터(DAT_MEM)와 메모리 코어(MCR)에 입력되는 데이터(DAT_MCR) 사이에는 제1 전체 지연 레이턴시(T1)와 동일한 제4 전체 지연 레이턴시(T4)가 발생할 수 있다. 다시 말하면, 도 2f의 반도체 메모리 장치(303)는(즉, 통계적 특성 추출기(SFE)는) 스누핑 동작을 위한 레지스터(REG)를 더 포함하고, 프로세싱 소자(PU)는 데이터의 이동에 방해되지 않도록 데이터를 스누핑하여 통계적 특성을 계산하고, 통계를 추출할 때 데이터가 오고 가는(즉, 전달되는) 과정에서 데이터를 스누핑하여 별도의 레이턴시 없이 통계적 특성을 계산하며, 따라서 별도의 지연 없이 데이터를 수신/저장할 수 있다.
도 3은 본 발명의 실시예들에 따른 반도체 메모리 장치의 일 예를 나타내는 블록도이다.
도 3을 참조하여, 반도체 메모리 장치의 일 예로서 DRAM에 대해 설명하지만, 본 발명의 실시예들에 따른 반도체 메모리 장치는 DRAM, SRAM, TRAM 등과 같은 휘발성 메모리 아키텍쳐들 또는 플래시 메모리, PRAM, RRAM, MRAM, FRAM 등과 같은 비휘발성 메모리 아키텍쳐들을 포함하는 다양한 메모리 아키텍쳐로 구현될 수 있다.
도 3을 참조하면, 메모리 영역(400) 또는 메모리 장치의 내부 회로는 제어 로직(410), 어드레스 레지스터(420), 뱅크 제어 로직(430), 로우 어드레스 멀티플렉서(440), 리프레쉬 카운터(445), 컬럼 어드레스 래치(450), 로우 디코더(460), 컬럼 디코더(470), 메모리 셀 어레이(480), 센스 앰프부(485), 입출력 게이팅 회로(490), 데이터 입출력 버퍼(495) 및 통계적 특성 추출기(SFE)를 포함할 수 있다.
메모리 셀 어레이(480)가 도 1의 각 반도체 메모리 장치에 포함되는 메모리 코어에 대응하고, 통계적 특성 추출기(SFE)가 도 1의 각 반도체 메모리 장치에 포함되는 통계적 특성 추출기에 대응하며, 나머지 구성요소들은 상기 메모리 코어의 동작을 제어하는 제어 회로 또는 주변 회로를 형성할 수 있다.
메모리 셀 어레이(480)는 복수의 뱅크 어레이들(480a~480h)을 포함할 수 있다. 로우 디코더(460)는 복수의 뱅크 어레이들(480a~480h)에 각각 연결된 복수의 뱅크 로우 디코더들(460a~460h)을 포함하고, 컬럼 디코더(470)는 복수의 뱅크 어레이들(480a~480h)에 각각 연결된 복수의 뱅크 컬럼 디코더들(470a~470h)을 포함하며, 센스 앰프부(485)는 복수의 뱅크 어레이들(480a~480h)에 각각 연결된 복수의 센스 앰프들(485a~485h)을 포함할 수 있다.
어드레스 레지스터(420)는 외부의 프로세서 또는 메모리 컨트롤러로부터 뱅크 어드레스(BANK_ADDR), 로우 어드레스(ROW_ADDR) 및 컬럼 어드레스(COL_ADDR)를 포함하는 어드레스 신호(ADD)를 수신할 수 있다. 어드레스 레지스터(420)는 수신된 뱅크 어드레스(BANK_ADDR)를 뱅크 제어 로직(430)에 제공하고, 수신된 로우 어드레스(ROW_ADDR)를 로우 어드레스 멀티플렉서(440)에 제공하며, 수신된 컬럼 어드레스(COL_ADDR)를 컬럼 어드레스 래치(450)에 제공할 수 있다.
뱅크 제어 로직(430)은 뱅크 어드레스(BANK_ADDR)에 응답하여 뱅크 제어 신호들을 생성할 수 있다. 상기 뱅크 제어 신호들에 응답하여, 복수의 뱅크 로우 디코더들(460a~460h) 중 뱅크 어드레스(BANK_ADDR)에 상응하는 뱅크 로우 디코더가 활성화되고, 복수의 뱅크 컬럼 디코더들(470a~470h) 중 뱅크 어드레스(BANK_ADDR)에 상응하는 뱅크 컬럼 디코더가 활성화될 수 있다.
로우 어드레스 멀티플렉서(440)는 어드레스 레지스터(420)로부터 로우 어드레스(ROW_ADDR)를 수신하고, 리프레쉬 카운터(445)로부터 리프레쉬 로우 어드레스(REF_ADDR)를 수신할 수 있다. 로우 어드레스 멀티플렉서(440)는 로우 어드레스(ROW_ADDR) 또는 리프레쉬 로우 어드레스(REF_ADDR)를 로우 어드레스(RA)로서 선택적으로 출력할 수 있다. 로우 어드레스 멀티플렉서(440)로부터 출력된 로우 어드레스(RA)는 뱅크 로우 디코더들(460a~460h)에 각각 인가될 수 있다.
뱅크 로우 디코더들(460a~460h) 중 뱅크 제어 로직(430)에 의해 활성화된 뱅크 로우 디코더는 로우 어드레스 멀티플렉서(440)로부터 출력된 로우 어드레스(RA)를 디코딩하여 상기 로우 어드레스에 상응하는 워드 라인을 활성화할 수 있다. 예를 들어, 상기 활성화된 뱅크 로우 디코더는 로우 어드레스에 상응하는 워드 라인에 워드 라인 구동 전압을 인가할 수 있다.
컬럼 어드레스 래치(450)는 어드레스 레지스터(420)로부터 컬럼 어드레스(COL_ADDR)를 수신하고, 수신된 컬럼 어드레스(COL_ADDR)를 일시적으로 저장할 수 있다. 또한, 컬럼 어드레스 래치(450)는, 버스트 모드(burst mode)에서, 수신된 컬럼 어드레스(COL_ADDR)를 점진적으로 증가시킬 수 있다. 컬럼 어드레스 래치(450)는 일시적으로 저장된 또는 점진적으로 증가된 컬럼 어드레스(COL_ADDR)를 뱅크 컬럼 디코더들(470a~470h)에 각각 인가할 수 있다.
뱅크 컬럼 디코더들(470a~470h) 중 뱅크 제어 로직(430)에 의해 활성화된 뱅크 컬럼 디코더는 입출력 게이팅 회로(490)를 통하여 뱅크 어드레스(BANK_ADDR) 및 컬럼 어드레스(COL_ADDR)에 상응하는 센스 앰프를 활성화시킬 수 있다.
입출력 게이팅 회로(490)는 입출력 데이터를 게이팅하는 회로들과 함께, 입력 데이터 마스크 로직, 뱅크 어레이들(480a~480h)로부터 출력된 데이터를 저장하기 위한 독출 데이터 래치들, 및 뱅크 어레이들(480a~480h)에 데이터를 기입하기 위한 기입 드라이버들을 포함할 수 있다.
뱅크 어레이들(480a~480h) 중 하나의 뱅크 어레이에서 독출될 데이터(DQ)는 상기 하나의 뱅크 어레이에 상응하는 센스 앰프에 의해 감지되고, 상기 독출 데이터 래치들에 저장될 수 있다. 상기 독출 데이터 래치들에 저장된 데이터(DQ)는 데이터 입출력 버퍼(495)를 통하여 프로세서 또는 메모리 컨트롤러에 제공될 수 있다. 뱅크 어레이들(480a~480h) 중 하나의 뱅크 어레이에 기입될 데이터(DQ)는 상기 프로세서 또는 메모리 컨트롤러로부터 데이터 입출력 버퍼(495)에 제공될 수 있다. 데이터 입출력 버퍼(495)에 제공된 데이터(DQ)는 상기 기입 드라이버들을 통하여 상기 하나의 뱅크 어레이에 기입될 수 있다.
제어 로직(410)은 메모리 영역(400)의 동작을 제어할 수 있다. 제어 로직(410)은 메모리 영역(400)에 기입 동작 또는 독출 동작이 수행되도록 제어 신호들을 생성할 수 있다. 제어 로직(410)은 프로세서 또는 메모리 컨트롤러로부터 수신되는 커맨드(CMD)를 디코딩하는 커맨드 디코더(411) 및 모드 레지스터 세트(Mode Register Set; MRS)에 기초하여 메모리 영역(400)의 동작 모드를 설정하기 위한 모드 레지스터(412)를 포함할 수 있다. 예를 들어, 커맨드 디코더(411)는 기입 인에이블 신호, 로우 어드레스 스트로브 신호, 컬럼 어드레스 스트로브 신호, 칩 선택 신호 등을 디코딩하여 커맨드(CMD)에 상응하는 상기 제어 신호들을 생성할 수 있다.
통계적 특성 추출기(SFE)는 프로세서(200)와 메모리 코어(즉, 메모리 셀 어레이(480)) 사이의 데이터 경로 상에 배치되고, 프로세서(200)로부터 입력되거나 상기 메모리 코어로부터 출력되는 복수의 데이터들에 대한 통계적 특성을 분석하여 상기 통계적 특성과 관련된 적어도 하나의 통계적 특성 값을 획득 및 저장하며, 상기 적어도 하나의 통계적 특성 값을 프로세서(200)로 전달할 수 있다. 통계적 특성 추출기(SFE)는 프로세싱 소자(PU) 및 내부 캐시(CAC)를 포함할 수 있다.
도 4a 및 4b는 본 발명의 실시예들에 따른 전자 시스템의 동작을 설명하기 위한 도면들이다. 도 4a 및 4b는 도 1의 복수의 데이터들(D11, D12, D21, D22) 중 데이터(D11)에 대한 통계적 특성을 분석하는 동작을 나타낸다.
도 4a를 참조하면, 제1 반도체 메모리 장치(310)의 입출력을 이용하여 데이터(D11)에 대한 통계를 계산할 수 있다.
구체적으로, 프로세서(200)가 데이터(D11)를 제1 메모리 코어(314)에 저장하고자 하는 경우에, 제1 통계적 특성 추출기(312)는 제1 데이터 경로(DP1)를 통해 수신되는 데이터(D11)를 제1 메모리 코어(314)에 전달하면서 동시에 수신된 데이터(D11)를 제1 프로세싱 소자(PU1)에 전달할 수 있다. 제1 프로세싱 소자(PU1)는 수신된 데이터(D11)에 대한 통계적 특성을 분석하여 통계적 특성 값(SFV11)을 연산 및 획득할 수 있다. 통계적 특성 값(SFV11)은 제1 내부 캐시(CAC1)에 저장될 수 있다.
도 4b를 참조하면, 제1 반도체 메모리 장치(310)의 유휴 시간 동안에 데이터(D11)에 대한 통계를 계산할 수 있다.
구체적으로, 데이터(D11)가 프로세서(200)로부터 제1 데이터 경로(DP1)를 통해 제공되어 제1 메모리 코어(314)에 저장된 이후에, 제1 통계적 특성 추출기(312)는 제1 메모리 코어(314)의 유휴 시간 동안에 제1 메모리 코어(314)에 저장되어 있는 데이터(D11)를 독출하여 제1 프로세싱 소자(PU1)에 전달할 수 있다. 제1 프로세싱 소자(PU1)는 독출된 데이터(D11)에 대한 통계적 특성을 분석하여 통계적 특성 값(SFV11)을 연산 및 획득할 수 있다. 통계적 특성 값(SFV11)은 제1 내부 캐시(CAC1)에 저장될 수 있다.
상세하게 도시하지는 않았으나, 나머지 데이터들(D12, D21, D22) 중 적어도 일부에 대한 통계적 특성을 분석하는 동작 또한 상술한 두 가지 방식들 중 하나에 기초하여 수행될 수 있다.
도 5는 본 발명의 실시예들에 따른 반도체 메모리 장치의 동작을 설명하기 위한 도면이다. 편의상 도 5 및 이하의 도면에서, 통계적 특성 값이 히스토그램인 경우를 예시적으로 설명한다.
도 5를 참조하면, 반도체 메모리 장치(MEM)의 메모리 코어(MCR)에 저장되는 복수의 데이터들(A1, A2, ..., An, B1, ..., Bm)은 복수의 그룹들로 구분될 수 있다. 예를 들어, 복수의 데이터들(A1~An, B1~Bm)은 제1 그룹의 데이터들(A1~An) 및 제2 그룹의 데이터들(B1~Bm)로 구분될 수 있다. 첫 번째 영문자가 동일한 데이터들은 동일한 그룹의 데이터일 수 있다. 편의상 도 5에서는 2개의 데이터 그룹들만을 도시하였으나, 본 발명은 이에 한정되지 않으며, 데이터 그룹들의 개수는 실시예에 따라서 다양하게 변경될 수 있다.
통계적 특성 추출기(SFE)의 프로세싱 소자(PU)에 의해 연산 및 획득되어 내부 캐시(CAC)에 저장되는 복수의 통계적 특성 값들(SFVA, SFVB)은 제1 그룹의 데이터들(A1~An)에 대한 제1 통계적 특성 값(SFVA) 및 제2 그룹의 데이터들(B1~Bm)에 대한 제2 통계적 특성 값(SFVB)을 포함할 수 있다. 예를 들어, 제1 통계적 특성 값(SFVA)은 제1 히스토그램(HIS_A)을 포함하고, 제2 통계적 특성 값(SFVB)은 제2 히스토그램(HIS_B)을 포함할 수 있다. 편의상 도 5에서는 히스토그램들(HIS_A, HIS_B)을 분포 곡선과 유사하게 도시하였으나, 히스토그램들(HIS_A, HIS_B)은 도 9a, 9b 및 9c에 도시된 히스토그램일 수 있다.
일 실시예에서, 내부 캐시(CAC)는 복수의 데이터들(A1~An, B1~Bm)의 어드레스 정보를 추가적으로 저장하여 그룹으로 정의하고, 각 그룹에 포함되는 데이터에 대한 통계적 특성 값을 추출할 수 있다. 예를 들어, 내부 캐시(CAC)는 제1 그룹의 데이터들(A1~An)의 제1 어드레스 정보(MASK_ADDR_A) 및 제2 그룹의 데이터들(B1~Bm)의 제2 어드레스 정보(MASK_ADDR_B)를 추가적으로 저장할 수 있다. 어드레스 정보(MASK_ADDR_A, MASK_ADDR_B)는 어드레스 마스크(mask of address)라고 부를 수도 있다.
구체적으로, 메모리 코어(MCR) 내에 복수의 데이터들(A1~An, B1~Bm)이 저장되어 있는 영역에 대한 어드레스가 존재할 수 있다. 예를 들어, 데이터(A1)는 시작 어드레스(ADDR_A1_S)부터 종료 어드레스(ADDR_A1_E)까지의 영역에 저장되고, 데이터(A2)는 시작 어드레스(ADDR_A2_S)부터 종료 어드레스(ADDR_A2_E)까지의 영역에 저장되며, 데이터(An)는 시작 어드레스(ADDR_An_S)부터 종료 어드레스(ADDR_An_E)까지의 영역에 저장될 수 있다. 이와 유사하게, 데이터(B1)는 시작 어드레스(ADDR_B1_S)부터 종료 어드레스(ADDR_B1_E)까지의 영역에 저장되고, 데이터(Bm)는 시작 어드레스(ADDR_Bm_S)부터 종료 어드레스(ADDR_Bm_E)까지의 영역에 저장될 수 있다. 제1 어드레스 정보(MASK_ADDR_A)는 제1 그룹의 데이터들(A1~An)에 대한 시작 어드레스들(ADDR_A1_S~ADDR_An_S) 및 종료 어드레스들(ADDR_A1_E~ADDR_An_E)을 포함하며, 제2 어드레스 정보(MASK_ADDR_B)는 제2 그룹의 데이터들(B1~Bm)에 대한 시작 어드레스들(ADDR_B1_S~ADDR_Bm_S) 및 종료 어드레스들(ADDR_B1_E~ADDR_Bm_E)을 포함할 수 있다.
상술한 것처럼, 통계적 특성을 분석하는데 있어서, 반도체 메모리 장치(MEM) 내에 데이터들의 그룹을 정의하고 메모리 내에 주소를 분리하여 각 그룹의 데이터들에 대한 통계적 특성(예를 들어, 신경망 시스템의 각 레이어에 대한 가중치별 분포)을 계산할 수 있다. 실시예에 따라서, 각 그룹별 주소를 분리하는 방법은 프로세싱 소자(PU)에서 통계적 특성을 계산하기 위한 그룹별로 분류하는 방법과, 메모리 코어(MCR)에 정의되어 있는 물리적으로 분리된 각각의 주소에 대해 복수 개의 프로세싱 소자(PU)에서 분류하여 계산하는 방법이 있을 수 있다.
도 6, 7, 8, 9a, 9b 및 9c는 본 발명의 실시예들에 따른 전자 시스템의 동작을 설명하기 위한 도면들이다. 이하 도 4a와 중복되는 설명은 생략한다.
도 6을 참조하면, 제1 반도체 메모리 장치(310)의 입출력을 이용하여 데이터(D11)에 대한 통계를 계산하며, 이 때 조건 정보(CI)를 추가적으로 이용할 수 있다.
구체적으로, 제1 통계적 특성 추출기(312)는 제1 데이터 경로(DP1)를 통해 수신되는 데이터(D11) 및 조건 정보(CI)를 제1 프로세싱 소자(PU1)에 전달하고, 제1 프로세싱 소자(PU1)는 수신된 조건 정보(CI) 및 데이터(D11)에 기초하여 통계적 특성 값(SFV111)을 연산 및 획득하며, 통계적 특성 값(SFV111)은 제1 내부 캐시(CAC1)에 저장될 수 있다.
일 실시예에서, 통계적 특성 값(SFV111)은 데이터(D11)에 대한 히스토그램을 포함하며, 조건 정보(CI)는 상기 히스토그램과 관련된 조건을 포함할 수 있다. 예를 들어, 조건 정보(CI)는 데이터(D11) 중 일부를 상기 히스토그램에서 배제하기 위한 최소값, 최대값, 소수점 길이, 데이터 타입 등의 정보를 포함하며, 제1 프로세싱 소자(PU1)는 조건 정보(CI)를 반영하여 이에 적합한 히스토그램을 획득할 수 있다.
도 7을 참조하면, 제1 반도체 메모리 장치(310)의 입출력을 이용하여 데이터(D11)에 대한 통계를 계산하며, 이 때 형태 정보(TI)를 추가적으로 이용할 수 있다.
구체적으로, 제1 통계적 특성 추출기(312)는 제1 데이터 경로(DP1)를 통해 수신되는 데이터(D11) 및 형태 정보(TI)를 제1 프로세싱 소자(PU1)에 전달하고, 제1 프로세싱 소자(PU1)는 수신된 형태 정보(TI) 및 데이터(D11)에 기초하여 통계적 특성 값(SFV112)을 연산 및 획득하며, 통계적 특성 값(SFV112)은 제1 내부 캐시(CAC1)에 저장될 수 있다.
일 실시예에서, 통계적 특성 값(SFV112)은 데이터(D11)에 대한 히스토그램을 포함하며, 형태 정보(TI)는 입력되는 데이터의 타입(type)을 포함할 수 있다. 예를 들어, 형태 정보(TI)는 부호가 있는(signed) 데이터인지 부호가 없는(unsigned) 데이터인지에 대한 정보, 정수(integer) 데이터인지 소수(floating point) 데이터인지에 대한 정보, 비트 크기(bit size)에 대한 정보 등을 포함하며, 제1 프로세싱 소자(PU1)는 형태 정보(TI)를 반영하여 이에 적합한 히스토그램을 획득할 수 있다.
도 8을 참조하면, 제1 반도체 메모리 장치(310)의 입출력을 이용하여 데이터(D11)에 대한 통계를 계산하며, 이 때 추가 데이터(D11A)를 함께 이용할 수 있다.
구체적으로, 제1 통계적 특성 추출기(312)는 제1 데이터 경로(DP1)를 통해 수신되는 데이터(D11) 및 추가 데이터(D11A)를 제1 프로세싱 소자(PU1)에 전달하고, 제1 프로세싱 소자(PU1)는 수신된 데이터(D11) 및 추가 데이터(D11A)에 기초하여 통계적 특성 값(SFV11A)을 연산 및 획득하며, 통계적 특성 값(SFV11A)은 제1 내부 캐시(CAC1)에 저장될 수 있다.
일 실시예에서, 통계적 특성 값(SFV11A)은 데이터(D11)에 대한 히스토그램을 포함하며, 추가 데이터(D11A)는 데이터(D11) 이외에 상기 히스토그램에 추가적으로 포함하고자 하는 데이터일 수 있다. 도 9a, 9b 및 9c를 참조하여 후술하는 것처럼, 제1 프로세싱 소자(PU1)는 데이터(D11) 및 추가 데이터(D11A)를 반영하여 이에 적합한 히스토그램을 획득할 수 있다.
도 9a를 참조하면, 데이터(D11)에 기초한 히스토그램의 일 예를 도시하고 있다. 도 9a의 히스토그램은 V1~V2의 제1 구간, V2~V3의 제2 구간, V3~V4의 제3 구간, V4~V5의 제4 구간 및 V5~V6의 제5 구간을 포함하며, 전체 범위는 V1부터 V6까지 이다.
도 9b를 참조하면, 도 9a의 히스토그램에 추가 데이터(D11A)를 추가적으로 포함하고자 하는 경우에, 제1 프로세싱 소자(PU1)는 추가 데이터(D11A)에 기초하여 상기 히스토그램의 전체 범위를 조절할 수 있다. 도 9a의 히스토그램과 비교하였을 때, 도 9b의 히스토그램에는 V7~V1의 제6 구간 및 V6~V8의 제7 구간이 추가되었고, 전체 범위는 V7부터 V8까지로 증가하였으며, 다만 각 구간의 범위는 변경되지 않고 유지되었다. 다시 말하면, 도 9a의 히스토그램과 도 9b의 히스토그램은 동일한 정밀도(또는 해상도)를 가질 수 있다.
도 9c를 참조하면, 도 9a의 히스토그램에 추가 데이터(D11A)를 추가적으로 포함하고자 하는 경우에, 제1 프로세싱 소자(PU1)는 추가 데이터(D11A)에 기초하여 상기 히스토그램의 각 구간의 범위를 조절할 수 있다. 도 9a의 히스토그램과 비교하였을 때, 도 9c의 히스토그램은 V9~V1의 제8 구간, V1~V3의 제9 구간, V3~V5의 제10 구간, V5~V10의 제11 구간 및 V10~V11의 제12 구간을 포함하며, 전체 범위는 V9부터 V11까지로 증가하였다. 다시 말하면, 도 9a의 히스토그램과 도 9c의 히스토그램은 서로 다른 정밀도(또는 해상도)를 가질 수 있다. 히스토그램을 누계할 때, 입력 데이터의 상태에 따라 정밀도를 조절할 수 있으며, 예를 들어 현재 누적되어 있는 데이터의 범위 밖의 데이터가 들어오는 경우에, 정밀도를 조정하여 히스토그램의 누계를 변경하고 이를 다시 누적할 수 있다.
일 실시예에서, 추가 데이터(D11A)에 기초하여 상기 히스토그램의 각 구간의 범위를 조절하는데 있어서, 도 9a의 히스토그램의 복수의 구간들 중 서로 인접한 적어도 두 개의 구간을 병합하여 각 구간의 범위를 조절할 수 있다. 예를 들어, 도 9a의 히스토그램의 제1 구간(V1~V2) 및 제2 구간(V2~V3)을 병합하여 도 9c의 히스토그램의 제9 구간(V1~V3)을 형성할 수 있다.
도 9a, 9b 및 9c를 참조하여 히스토그램을 조절하는 예들을 설명하였으나, 본 발명은 이에 한정되지 않으며, 그 밖에 가능한 다양한 방식들 중 적어도 하나를 이용하여 히스토그램을 조절할 수 있다.
한편, 도시하지는 않았으나, 도 5를 참조하여 상술한 것처럼 입력된 데이터의 영역별 어드레스를 분류하여 히스토그램을 누적하는 경우에, 기존에 사용하고 있는 어드레스에 데이터를 다시 기입하는 경우 기존 영역의 히스토그램을 초기화(reset)할 수도 있다.
한편, 도 6, 7 및 8을 참조하여 제1 반도체 메모리 장치(310)의 입출력을 이용하는 실시예들을 설명하였으나, 본 발명은 이에 한정되지 않으며, 도 4b를 참조하여 상술한 제1 반도체 메모리 장치(310)의 유휴 시간을 이용하는 경우에도 도 6, 7 및 8의 실시예들이 적용될 수 있다. 또한, 도 6, 7 및 8의 실시예들 중 두 개 이상을 조합하여 본 발명의 실시예들에 따른 반도체 메모리 장치 및 전자 시스템이 동작할 수도 있다.
도 10, 11 및 12는 본 발명의 실시예들에 따른 반도체 메모리 장치를 포함하는 전자 시스템을 나타내는 블록도들이다. 이하 도 1과 중복되는 설명은 생략한다.
도 10을 참조하면, 전자 시스템(100a)은 적어도 하나의 프로세서(200) 및 복수의 반도체 메모리 장치들(310a, 320a, ...)을 포함한다.
복수의 반도체 메모리 장치들(310a, 320a)에 포함되는 통계적 특성 추출기들(312a, 322a)의 구성이 일부 변경되는 것을 제외하면, 도 10의 전자 시스템(100a)은 도 1의 전자 시스템(100)과 실질적으로 동일할 수 있다.
제1 통계적 특성 추출기(312a)는 제1 프로세싱 소자(PU1) 및 제1 내부 캐시(CAC1)를 포함할 수 있다. 제1 프로세싱 소자(PU1)는 제1 반도체 메모리 장치(310a)의 외부에 배치되고, 제1 내부 캐시(CAC1)는 제1 반도체 메모리 장치(310a)의 내부에 배치될 수 있다. 이와 유사하게, 제2 통계적 특성 추출기(322a)는 제2 반도체 메모리 장치(320a)의 외부에 배치되는 제2 프로세싱 소자(PU2) 및 제2 반도체 메모리 장치(320a)의 내부에 배치되는 제2 내부 캐시(CAC2)를 포함할 수 있다.
도 11을 참조하면, 전자 시스템(100b)은 적어도 하나의 프로세서(200) 및 복수의 반도체 메모리 장치들(310b, 320b, ...)을 포함한다.
복수의 반도체 메모리 장치들(310b, 320b)에 포함되는 통계적 특성 추출기들(312b, 322b)의 구성이 일부 변경되는 것을 제외하면, 도 11의 전자 시스템(100b)은 도 1의 전자 시스템(100)과 실질적으로 동일할 수 있다.
제1 통계적 특성 추출기(312b) 및 제2 통계적 특성 추출기(322b)는 일부 구성요소를 공유하며, 예를 들어 프로세싱 소자를 공유할 수 있다. 구체적으로, 제1 통계적 특성 추출기(312b)는 제1 반도체 메모리 장치(310b)의 외부에 배치되는 공유 프로세싱 소자(shared processing unit, SPU) 및 제1 반도체 메모리 장치(310b)의 내부에 배치되는 제1 내부 캐시(CAC1)를 포함할 수 있다. 제2 통계적 특성 추출기(322b)는 제2 반도체 메모리 장치(320b)의 외부에 배치되는 공유 프로세싱 소자(SPU) 및 제2 반도체 메모리 장치(320a)의 내부에 배치되는 제2 내부 캐시(CAC2)를 포함할 수 있다.
도 12를 참조하면, 전자 시스템(100c)은 적어도 하나의 프로세서(200) 및 복수의 반도체 메모리 장치들(310, 320, ...)을 포함하며, 연산기(500)를 더 포함할 수 있다.
연산기(500)를 더 포함하는 것을 제외하면, 도 12의 전자 시스템(100c)은 도 1의 전자 시스템(100)과 실질적으로 동일할 수 있다.
연산기(500)는 제1 반도체 메모리 장치(310)의 제1 내부 캐시(CAC1)에 저장된 상기 적어도 하나의 제1 통계적 특성 값 및 제2 반도체 메모리 장치(320)의 제2 내부 캐시(CAC2)에 저장된 상기 적어도 하나의 제2 통계적 특성 값을 병합할 수 있다. 예를 들어, 동일한 그룹의 데이터들이 제1 및 제2 반도체 메모리 장치들(310, 320) 각각에 일부 저장되는 경우에, 각각의 통계적 특성 값을 병합하여 하나의 통계적 특성 값을 획득할 필요가 있다. 이 때, 연산기(500)를 이용하여 통계적 특성 값들을 병합할 수 있다.
도 12의 실시예에서, 연산기(500)는 프로세서(200) 및 제1 및 제2 반도체 메모리 장치들(310, 320)의 외부에 배치될 수 있다.
도 13a, 13b 및 13c는 도 12의 전자 시스템의 동작을 설명하기 위한 도면들이다. 이하 도 5와 중복되는 설명은 생략한다.
도 13a를 참조하면, 제1 반도체 메모리 장치(MEM1)의 제1 메모리 코어(MCR1)에는 제1 그룹의 일부의 데이터들(A11, A12, ..., A1n) 및 제2 그룹의 데이터들(B11, ..., B1m)이 저장될 수 있다. 제1 반도체 메모리 장치(MEM1)의 제1 내부 캐시(CAC1)에는 제1 그룹의 일부의 데이터들(A11~A1n)에 대한 통계적 특성 값(SFVA1)(예를 들어, 히스토그램(HIS_A1)) 및 제2 그룹의 데이터들(B11~B1m)에 대한 통계적 특성 값(SFVB1)(예를 들어, 히스토그램(HIS_B1))이 저장될 수 있다. 또한, 제1 내부 캐시(CAC1)에는 제1 그룹의 일부의 데이터들(A11~A1n)의 어드레스 정보(MASK_ADDR_A1)(예를 들어, 시작 어드레스들(ADDR_A11_S, ADDR_A12_S, ..., ADDR_A1n_S) 및 종료 어드레스들(ADDR_A11_E, ADDR_A12_E, ..., ADDR_A1n_E)) 및 제2 그룹의 데이터들(B11~B1m)의 어드레스 정보(MASK_ADDR_B1)(예를 들어, 시작 어드레스들(ADDR_B11_S, ..., ADDR_B1m_S) 및 종료 어드레스들(ADDR_B11_E, ..., ADDR_B1m_E))가 추가 저장될 수 있다.
도 13b를 참조하면, 제2 반도체 메모리 장치(MEM2)의 제2 메모리 코어(MCR2)에는 제1 그룹의 다른 일부의 데이터들(A21, A22, ..., A2n)이 저장될 수 있다. 제2 반도체 메모리 장치(MEM2)의 제2 내부 캐시(CAC2)에는 제1 그룹의 다른 일부의 데이터들(A21~A2n)에 대한 통계적 특성 값(SFVA2)(예를 들어, 히스토그램(HIS_A2))이 저장될 수 있다. 또한, 제1 내부 캐시(CAC1)에는 제1 그룹의 다른 일부의 데이터들(A21~A2n)의 어드레스 정보(MASK_ADDR_A2)(예를 들어, 시작 어드레스들(ADDR_A21_S, ADDR_A22_S, ..., ADDR_A2n_S) 및 종료 어드레스들(ADDR_A21_E, ADDR_A22_E, ..., ADDR_A2n_E))가 추가 저장될 수 있다.
도 13c를 참조하면, 연산기는 제1 및 제2 내부 캐시들(CAC1, CAC2)로부터 제공되는 제1 그룹의 모든 데이터들(A11~A1n, A21~A2n)에 대한 통계적 특성 값들(SFVA1, SFVA2)을 나타내는 히스토그램들(HIS_A1, HIS_A2)을 병합하여 제1 병합 히스토그램(HIS_AM)을 획득할 수 있다. 제2 그룹의 모든 데이터들(B11~B1m)은 제1 반도체 메모리 장치(MEM1)에만 저장되어 있으므로, 연산기는 제1 내부 캐시(CAC1)에 저장된 통계적 특성 값(SFVB1)을 나타내는 히스토그램(HIS_B1)을 그대로 제2 병합 히스토그램(HIS_BM)으로 획득할 수 있다.
도 14, 15 및 16은 본 발명의 실시예들에 따른 반도체 메모리 장치를 포함하는 전자 시스템을 나타내는 블록도들이다. 이하 도 1 및 12와 중복되는 설명은 생략한다.
도 14를 참조하면, 전자 시스템(100d)은 적어도 하나의 프로세서(200d) 및 복수의 반도체 메모리 장치들(310, 320, ...)을 포함한다.
연산기(500d)의 배치가 변경되는 것을 제외하면, 도 14의 전자 시스템(100d)은 도 12의 전자 시스템(100c)과 실질적으로 동일할 수 있다.
도 14의 실시예에서, 연산기(500d)는 프로세서(200d)의 내부에 배치될 수 있다.
도 15를 참조하면, 전자 시스템(100e)은 적어도 하나의 프로세서(200) 및 복수의 반도체 메모리 장치들(310e, 320, ...)을 포함한다.
연산기(500e)의 배치가 변경되는 것을 제외하면, 도 15의 전자 시스템(100e)은 도 12의 전자 시스템(100c)과 실질적으로 동일할 수 있다.
도 15의 실시예에서, 연산기(500e)는 제1 반도체 메모리 장치(310e)의 내부에 배치될 수 있다. 도시하지는 않았으나, 실시예에 따라서 상기 연산기는 제2 반도체 메모리 장치(320)의 내부에 배치될 수도 있다.
도 16을 참조하면, 전자 시스템(100f)은 복수의 프로세서들(210, 220, ...) 및 복수의 반도체 메모리 장치들(310, 320, ...)을 포함하며, NoC(Network-on Chip)(600)를 더 포함할 수 있다.
복수의 프로세서들(210, 220)을 포함하고 NoC(600)를 더 포함하는 것을 제외하면, 도 16의 전자 시스템(100f)은 도 1의 전자 시스템(100)과 실질적으로 동일할 수 있다.
복수의 프로세서들(210, 220) 각각은 복수의 데이터들(D11, D12, D21, D22) 중 일부 또는 전부에 대한 연산, 처리 등을 수행한다. 실시예에 따라서, 복수의 프로세서들(210, 220)은 동종의(homogeneous) 리소스들이거나 이종의(heterogeneous) 리소스들일 수 있다.
프로세서들(210, 220), 하드웨어 가속기, 반도체 메모리 장치들(310, 320) 등과 같은 다양한 모듈들을 통합하여 구현하는 경우에, 각 모듈들 간에 서로 데이터를 주고 받기 위하여는 온-칩 통신 매개체가 필요하게 된다. NoC(600)는 칩 내부에 데이터 전송을 중계하는 라우터(router)들을 배치시켜 모듈들 간에 분산적인 데이터 전송을 가능하게 하는 기술 또는 그에 의해 구현된 칩/모듈을 나타낸다.
NoC(600)는 복수의 프로세서들(210, 220)과 복수의 반도체 메모리 장치들(310, 320) 사이에 배치되어 데이터 전송을 중계할 수 있다. NoC(600)는 반도체 메모리 장치들(310, 320)에 내부 캐시들(CAC1, CAC2)에 저장된 복수의 통계적 특성 값들 중 적어도 일부를 병합하는 연산기(610)를 포함할 수 있다. 연산기(610)는 도 12 내지 15를 참조하여 상술한 연산기와 유사한 동작을 수행할 수 있다.
도 17은 본 발명의 실시예들에 따른 전자 시스템에 의해 구동되는 신경망 시스템의 일 예를 설명하기 위한 도면이다.
도 17을 참조하면, 일반적인 신경망 시스템의 구조는 입력 레이어(IL), 복수의 히든 레이어들(HL1, HL2, ..., HLn) 및 출력 레이어(OL)를 포함할 수 있다.
입력 레이어(IL)는 i(i는 자연수)개의 입력 노드들(x1, x2, ..., xi)을 포함할 수 있고, 길이가 i인 벡터 입력 데이터(IDAT)가 각 입력 노드에 입력될 수 있다.
복수의 히든 레이어들(HL1, HL2, ..., HLn)은 n(n은 자연수)개의 히든 레이어들을 포함하며, 히든 노드들(h1 1, h1 2, h1 3, ..., h1 m, h2 1, h2 2, h2 3, ..., h2 m, hn 1, hn 2, hn 3, ..., hn m)을 포함할 수 있다. 예를 들어, 히든 레이어(HL1)는 m(m은 자연수)개의 히든 노드들(h1 1, h1 2, h1 3, ..., h1 m)을 포함할 수 있고, 히든 레이어(HL2)는 m개의 히든 노드들(h2 1, h2 2, h2 3, ..., h2 m)을 포함할 수 있으며, 히든 레이어(HLn)는 m개의 히든 노드들(hn 1, hn 2, hn 3, ..., hn m)을 포함할 수 있다.
출력 레이어(OL)는 분류할 클래스에 대응하는 j(j는 자연수)개의 출력 노드들(y1, y2, ..., yj)을 포함할 수 있고, 입력 데이터(IDAT)에 대하여 각 클래스 별로 결과(예를 들어, 점수 또는 class score)를 출력 데이터(ODAT)로서 출력할 수 있다. 출력 레이어(OL)는 fully connected 레이어라고 부를 수 있으며, 예를 들어 입력 데이터(IDAT)가 자동차에 대응할 확률을 수치로 나타낼 수 있다.
도 17에 도시된 네트워크 구조는, 두 개의 노드들 사이에 직선으로 도시된 노드들 간의 연결(branch)과, 각 연결에서 사용되는 가중치들(weight)(WO, W1, ..., Wn)을 포함할 수 있다. 이 때, 하나의 레이어 내의 노드들 간에는 연결이 되지 않을 수 있고, 서로 다른 레이어들에 포함되는 노드들은 완전하게 혹은 부분적으로 연결될 수 있다.
도 17의 각 노드(예를 들어, h1 1)는 이전 노드(예를 들어, x1)의 출력을 입력 받아 연산할 수 있고, 연산 결과를 이후 노드(예를 들어, h2 1)에 출력할 수 있다. 이 때, 각 노드는 입력된 값을 특정 함수, 예를 들어 비선형 함수에 적용하여 출력할 값을 연산할 수 있다.
일반적으로 신경망 시스템의 구조는 미리 결정되어 있으며, 노드들 간의 연결에 따른 가중치들은 이미 어떤 클래스에 속할지 정답이 알려진 데이터를 이용하여 적절한 값을 산정하게 된다. 이와 같이 이미 정답이 알려진 데이터들을 '학습 데이터'라고 하고, 가중치를 결정하는 과정을 '학습'이라고 한다. 또한, 독립적으로 학습이 가능한 구조와 가중치의 묶음을 '모델'이라고 가정하고, 가중치가 결정된 모델이 입력 데이터가 어느 클래스에 속할지를 예측하여 그 예측값을 출력하는 것을 '테스트' 과정이라고 한다.
상술한 것처럼, 본 발명의 실시예들에 따른 반도체 메모리 장치에 저장되는 데이터들은 가중치들(WO~Wn)에 대응하며, 따라서 본 발명의 실시예들에 따른 반도체 메모리 장치 및 전자 시스템을 이용하여 신경망 시스템을 구동하는 경우에 데이터 프로세싱 효율을 향상시킬 수 있다. 다만, 본 발명은 이에 한정되지 않으며, 본 발명의 실시예들에 따른 반도체 메모리 장치에 저장되는 데이터들은 각 레이어에 대한 입출력에 대응하고, 본 발명의 실시예들을 이용하여 통계적 특성을 계산하고 프로세서에서 사용할 수 있는 것은 가중치뿐만 아니라 입출력 특성 맵(feature map)에도 적용 가능할 수 있다.
도 18은 본 발명의 실시예들에 따른 반도체 메모리 장치의 구동 방법을 나타내는 순서도이다.
실시예로 통계적 특성을 프로세서로 전송하기 위한 인터페이스이다. 본 실시예로는 메모리 내부의 어드레스에 적어서 통계적 특성을 전송하거나, 별도의 시리얼 인터페이스를 통해서 전달하는 방법이 있다.
도 1 및 18을 참조하면, 본 발명의 실시예들에 따른 반도체 메모리 장치의 구동 방법에서, 외부의 프로세서(200)로부터 제공되는 복수의 데이터들(D11, D12)을 반도체 메모리 장치(310)에 포함되는 메모리 코어(314)에 저장한다(단계 S100). 반도체 메모리 장치(310)에 포함되고 외부의 프로세서(200)와 메모리 코어(314) 사이의 데이터 경로(DP1) 상에 배치되는 통계적 특성 추출기(312)를 이용하여, 외부의 프로세서(200)로부터 입력되거나 메모리 코어(314)로부터 출력되는 복수의 데이터들(D11, D12)에 대한 통계적 특성을 분석하여 상기 통계적 특성과 관련된 적어도 하나의 통계적 특성 값을 획득 및 저장한다(단계 S200). 외부의 프로세서(200)가 복수의 데이터들(D11, D12)에 대한 상기 통계적 특성을 요청하는 경우에, 복수의 데이터들(D11, D12)을 외부의 프로세서(200)에 전달하는 대신에 통계적 특성 추출기(312)에 저장된 상기 적어도 하나의 통계적 특성 값을 외부의 프로세서(200)에 전달한다(단계 S300).
이상 설명한 바와 같이, 본원발명에 따르면, 반도체 메모리 장치는 프로세서로부터 수신하거나 저장되어 있는 데이터들에 대한 통계적 특성을 분석하는 통계적 특성 추출기를 포함하여 구현되며, 따라서 프로세서와 반도체 메모리 장치 사이의 데이터 입출력 및 프로세서의 데이터 연산/처리에 대한 오버헤드를 감소시킬 수 있고, 데이터들의 통계적 특성을 빠르고 효과적으로 파악할 수 있으며, 데이터 프로세싱 효율을 향상시킬 수 있다.
본 발명의 실시예들은 반도체 메모리 장치 및/또는 신경망 시스템을 포함하는 임의의 전자 장치 및 시스템에 유용하게 이용될 수 있다. 예를 들어, 본 발명의 실시예들은 컴퓨터(computer), 서버 컴퓨터(server computer), 노트북(laptop), 핸드폰(cellular), 스마트 폰(smart phone), MP3 플레이어, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(Internet of Things) 기기, IoE(Internet of Everything) 기기, e-북(e-book), VR(Virtual Reality) 기기, AR(Augmented Reality) 기기 등과 같은 전자 기기에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 외부의 프로세서로부터 제공되는 복수의 데이터들을 저장하는 복수의 메모리 셀들을 포함하는 메모리 코어; 및
    상기 외부의 프로세서와 상기 메모리 코어 사이의 데이터 경로 상에 배치되고, 상기 외부의 프로세서로부터 입력되거나 상기 메모리 코어로부터 출력되는 상기 복수의 데이터들에 대한 통계적 특성을 분석하여 상기 통계적 특성과 관련된 적어도 하나의 통계적 특성 값을 획득 및 저장하며, 상기 적어도 하나의 통계적 특성 값을 상기 외부의 프로세서로 전달하는 통계적 특성 추출기를 포함하는 반도체 메모리 장치.
  2. 제 1 항에 있어서, 상기 통계적 특성 추출기는,
    상기 외부의 프로세서가 상기 복수의 데이터들을 상기 메모리 코어에 저장하고자 하는 경우에 상기 데이터 경로를 통해 수신되는 상기 복수의 데이터들을 이용하여 상기 통계적 특성을 분석하거나 상기 복수의 데이터들이 상기 메모리 코어에 저장된 이후에 상기 메모리 코어의 유휴 시간 동안에 상기 메모리 코어에 저장되어 있는 상기 복수의 데이터들을 독출하여 상기 통계적 특성을 분석하고, 상기 적어도 하나의 통계적 특성 값을 연산 및 획득하는 프로세싱 소자(Processing Unit; PU); 및
    상기 적어도 하나의 통계적 특성 값을 저장하고, 상기 외부의 프로세서의 요청에 의해 상기 적어도 하나의 통계적 특성 값을 상기 외부의 프로세서로 전달하는 내부 캐시를 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  3. 제 2 항에 있어서, 상기 내부 캐시는,
    상기 메모리 코어에 저장된 상기 복수의 데이터들의 어드레스 정보를 추가적으로 저장하여 그룹으로 정의하고, 각 그룹에 포함되는 데이터에 대한 통계적 특성 값을 추출하는 것을 특징으로 하는 반도체 메모리 장치.
  4. 제 3 항에 있어서,
    상기 통계적 특성 값을 추출하기 위해 상기 데이터가 전달되는 과정에서 상기 데이터를 스누핑(snooping)하여 별도의 레이턴시 없이 상기 통계적 특성 값을 계산하는 것을 특징으로 하는 반도체 메모리 장치.
  5. 제 1 항에 있어서, 상기 적어도 하나의 통계적 특성 값은,
    상기 복수의 데이터들에 대한 데이터 수, 히스토그램, 최대값, 최소값, 평균값, 중간값, 분산, 표준편차, 소수점 길이(fractional length), 또는 상기 데이터 수, 상기 히스토그램, 상기 최대값, 상기 최소값, 상기 평균값, 상기 중간값, 상기 분산, 상기 표준편차, 상기 소수점 길이를 계산하기 위한 중간 결과 값을 포함하는 것을 특징으로 하는 반도체 메모리 장치.
  6. 프로세서;
    상기 프로세서로부터 제공되는 복수의 데이터들을 저장하는 복수의 반도체 메모리 장치들을 포함하고,
    상기 복수의 반도체 메모리 장치들 중 제1 반도체 메모리 장치는,
    상기 복수의 데이터들 중 제1 데이터들을 저장하는 복수의 메모리 셀들을 포함하는 제1 메모리 코어; 및
    상기 프로세서와 상기 제1 메모리 코어 사이의 제1 데이터 경로 상에 배치되고, 상기 프로세서로부터 입력되거나 상기 제1 메모리 코어로부터 출력되는 상기 제1 데이터들에 대한 제1 통계적 특성을 분석하여 상기 제1 통계적 특성과 관련된 적어도 하나의 제1 통계적 특성 값을 획득 및 저장하며, 상기 적어도 하나의 제1 통계적 특성 값을 상기 프로세서로 전달하는 제1 통계적 특성 추출기를 포함하는 전자 시스템.
  7. 제 6 항에 있어서,
    상기 복수의 반도체 메모리 장치들 중 제2 반도체 메모리 장치는,
    상기 복수의 데이터들 중 제2 데이터들을 저장하는 복수의 메모리 셀들을 포함하는 제2 메모리 코어; 및
    상기 프로세서와 상기 제2 메모리 코어 사이의 제2 데이터 경로 상에 배치되고, 상기 프로세서로부터 입력되거나 상기 제2 메모리 코어로부터 출력되는 상기 제2 데이터들에 대한 제2 통계적 특성을 분석하여 상기 제2 통계적 특성과 관련된 적어도 하나의 제2 통계적 특성 값을 획득 및 저장하며, 상기 적어도 하나의 제2 통계적 특성 값을 상기 프로세서로 전달하는 제2 통계적 특성 추출기를 포함하는 것을 특징으로 하는 전자 시스템.
  8. 제 7 항에 있어서,
    상기 제1 통계적 특성 추출기 및 상기 제2 통계적 특성 추출기는 일부 구성요소를 공유하는 것을 특징으로 하는 전자 시스템.
  9. 제 7 항에 있어서,
    상기 제1 데이터들에 대한 상기 적어도 하나의 제1 통계적 특성 값 및 상기 제2 데이터들에 대한 상기 적어도 하나의 제2 통계적 특성 값을 병합하는 연산기를 더 포함하는 것을 특징으로 하는 전자 시스템.
  10. 제 6 항에 있어서,
    상기 프로세서와 상기 복수의 반도체 메모리 장치들 사이에 배치되는 NoC(Network-on Chip)를 더 포함하는 것을 특징으로 하는 전자 시스템.
KR1020190085380A 2019-07-15 2019-07-15 반도체 메모리 장치 및 이를 포함하는 전자 시스템 KR20210008776A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190085380A KR20210008776A (ko) 2019-07-15 2019-07-15 반도체 메모리 장치 및 이를 포함하는 전자 시스템
US16/790,189 US11567690B2 (en) 2019-07-15 2020-02-13 Semiconductor memory device and electronic system the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190085380A KR20210008776A (ko) 2019-07-15 2019-07-15 반도체 메모리 장치 및 이를 포함하는 전자 시스템

Publications (1)

Publication Number Publication Date
KR20210008776A true KR20210008776A (ko) 2021-01-25

Family

ID=74238089

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190085380A KR20210008776A (ko) 2019-07-15 2019-07-15 반도체 메모리 장치 및 이를 포함하는 전자 시스템

Country Status (2)

Country Link
US (1) US11567690B2 (ko)
KR (1) KR20210008776A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11645005B2 (en) * 2021-02-26 2023-05-09 PetaIO Inc. Near-memory computing systems and methods
US20230195618A1 (en) * 2021-12-21 2023-06-22 Advanced Micro Devices, Inc. Approach for performing efficient memory operations using near-memory compute elements

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240489B1 (en) * 1999-02-24 2001-05-29 International Business Machines Corporation Method for implementing a pseudo least recent used (LRU) mechanism in a four-way cache memory within a data processing system
US7298898B2 (en) 2003-04-15 2007-11-20 Honeywell International Inc. System and method for image segmentation
JP4631090B2 (ja) 2004-02-19 2011-02-16 株式会社 東北テクノアーチ 磁気抵抗効果素子を用いたロジックインメモリ回路
US7720636B1 (en) * 2007-02-14 2010-05-18 Xilinx, Inc. Performance monitors (PMs) for measuring performance in a system and providing a record of transactions performed
US11164033B2 (en) 2015-05-29 2021-11-02 Micron Technology, Inc. Histogram creation process for memory devices
US10074416B2 (en) * 2016-03-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for data movement
US20170357452A1 (en) 2016-06-10 2017-12-14 U.S.A. As Represented By The Administrator Of The National Aeronautics And Space Administration Hardware accelerated system and method for computing histograms
US11222260B2 (en) 2017-03-22 2022-01-11 Micron Technology, Inc. Apparatuses and methods for operating neural networks
US11416165B2 (en) 2018-10-15 2022-08-16 Intel Corporation Low synch dedicated accelerator with in-memory computation capability

Also Published As

Publication number Publication date
US20210019076A1 (en) 2021-01-21
US11567690B2 (en) 2023-01-31

Similar Documents

Publication Publication Date Title
US11482278B2 (en) Method of performing internal processing operation of memory device
US11482260B2 (en) Apparatuses and methods for scatter and gather
US10545860B2 (en) Intelligent high bandwidth memory appliance
US20230186957A1 (en) Parallel access to volatile memory by a processing device for machine learning
US11221953B2 (en) Memory device performing in-memory prefetching and system including the same
US20190057050A1 (en) Pipeline circuit architecture to provide in-memory computation functionality
JP2020512633A5 (ko)
US11461651B2 (en) System on a chip with deep learning accelerator and random access memory
CN111858023A (zh) 用于具有设置在存储器本地的人工智能逻辑的计算系统的架构增强
US11942135B2 (en) Deep learning accelerator and random access memory with a camera interface
CN114153373A (zh) 用于执行存储器设备内的数据操作的存储器系统及其操作方法
US11567690B2 (en) Semiconductor memory device and electronic system the same
US11830574B2 (en) Dual-port, dual-function memory device
US11455781B2 (en) Data reading/writing method and system in 3D image processing, storage medium and terminal
US20220188606A1 (en) Memory Configuration to Support Deep Learning Accelerator in an Integrated Circuit Device
US11281397B2 (en) Stacked memory device performing function-in-memory (FIM) operation and method of operating the same
Sudarshan et al. A critical assessment of dram-pim architectures-trends, challenges and solutions
US20220207334A1 (en) Neural network device including convolution sram and diagonal accumulation sram
US20230128183A1 (en) Backward compatible processing-in-memory (pim) protocol
WO2023240779A1 (zh) 一种图小样本学习的存内计算方法、装置及电子设备
US20230317140A1 (en) Providing Orthogonal Subarrays in A Dynamic Random Access Memory
US20230315334A1 (en) Providing fine grain access to package memory
WO2023184224A1 (en) Techniques to utilize near memory compute circuitry for memory-bound workloads
US20240096391A1 (en) Memory devices and methods thereof for managing row hammer events therein
신현승 McDRAM: Low Latency and Energy-Efficient Matrix Computation in DRAM

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal