KR20230115012A - 메모리 장치 - Google Patents

메모리 장치 Download PDF

Info

Publication number
KR20230115012A
KR20230115012A KR1020220011466A KR20220011466A KR20230115012A KR 20230115012 A KR20230115012 A KR 20230115012A KR 1020220011466 A KR1020220011466 A KR 1020220011466A KR 20220011466 A KR20220011466 A KR 20220011466A KR 20230115012 A KR20230115012 A KR 20230115012A
Authority
KR
South Korea
Prior art keywords
memory cell
memory
data
internal processing
pim
Prior art date
Application number
KR1020220011466A
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 KR1020220011466A priority Critical patent/KR20230115012A/ko
Priority to US17/975,250 priority patent/US20230236732A1/en
Priority to CN202310086667.7A priority patent/CN116504289A/zh
Publication of KR20230115012A publication Critical patent/KR20230115012A/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address 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/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)

Abstract

메모리 장치 및 메모리 시스템이 제공된다. 메모리 장치는, 데이터를 저장하는 메모리 셀 어레이, 외부로부터 커맨드를 수신하여 제1 메모리 셀 제어 신호를 생성하는 커맨드 디코더, 내부에 저장된 인스트럭션을 기초로 내부 프로세싱 동작을 수행하기 위한 커맨드를 포함하는 제2 메모리 셀 제어 신호를 생성하고, 제2 메모리 셀 제어 신호에 기초하여 내부 프로세싱 동작을 수행하는 PIM(Processor In Memory) 블록, 및 제1 메모리 셀 제어 신호 또는 제2 메모리 셀 제어 신호 중 어느 하나를 출력하여 메모리 셀 어레이에 제공하는 동작 모드 멀티플렉서를 포함한다.

Description

메모리 장치{Memory Device}
본 발명은 메모리 장치에 관한 것이다. 구체적으로, PIM(Processor In Memory) 블록을 포함하는 메모리 장치에 관한 것이다.
데이터를 저장하기 위한 반도체 메모리 장치는 크게 휘발성(volatile) 메모리 장치와 비휘발성(non-volatile) 메모리 장치로 대별될 수 있다. 셀 캐패시터의 충전 또는 방전에 의해 데이터가 저장되는 디램(DRAM: Dynamic Random Access Memory) 등의 휘발성 메모리 장치는 전원이 인가되는 동안에는 저장된 데이터가 유지되지만 전원이 차단되면 저장된 데이터가 손실된다. 한편, 비휘발성 메모리 장치는 전원이 차단되어도 데이터를 저장할 수 있다. 휘발성 메모리 장치는 주로 컴퓨터 등의 메인 메모리로 사용되고, 비휘발성 메모리 장치는 컴퓨터, 휴대용 통신기기 등 넓은 범위의 응용 기기에서 프로그램 및 데이터를 저장하는 대용량 메모리로 사용되고 있다.
한편 휘발성 메모리 장치 중 DRAM은 휘발성 메모리 장치 중에서 상대적으로 빠른 응답 속도 및 빠른 동작 속도의 특성을 가질 수 있다. 이에 따라, 메모리 시스템에 있어서 시스템의 동작 메모리 또는 메인 메모리로서 DRAM을 널리 사용하는 추세이다.
한편, 호스트에서 수행되는 컴퓨터 동작은 상대적으로 빠른 데 반해, DRAM으로부터 인스트럭션들 또는 데이터를 검색하고 라이트하는 동작은 상대적으로 느리기 때문에, 전체적인 메모리 시스템의 성능이 둔화될 수 있다.
이에 따라, 메모리 시스템의 성능 개선을 위하여 호스트의 연산 동작 중 일부를 내부 프로세싱으로 수행하도록 내부 프로세서가 포함된 메모리 장치가 개발되고 있으며, 메모리 장치의 내부 프로세싱을 통해 호스트의 컴퓨터 동작 부담이 감소될 수 있다.
하지만, 내부 프로세싱 동작을 수행하는데 있어 필요한 메모리 장치의 메모리 셀에 저장된 데이터를 리드 혹은 라이트하는 동작의 성능이 향상될 필요가 있다.
본 발명이 해결하고자 하는 기술적 과제는 메모리 장치의 내부에서 수행되는 데이터 내부 프로세싱 동작의 성능이 향상된 메모리 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 메모리 장치의 내부에서 수행되는 데이터 내부 프로세싱 동작의 성능이 향상된 메모리 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예에 따른 메모리 장치는, 데이터를 저장하는 메모리 셀 어레이, 외부로부터 커맨드를 수신하여 제1 메모리 셀 제어 신호를 생성하는 커맨드 디코더, 내부에 저장된 인스트럭션을 기초로 내부 프로세싱 동작을 수행하기 위한 커맨드를 포함하는 제2 메모리 셀 제어 신호를 생성하고, 제2 메모리 셀 제어 신호에 기초하여 내부 프로세싱 동작을 수행하는 PIM(Processor In Memory) 블록, 및 제1 메모리 셀 제어 신호 또는 제2 메모리 셀 제어 신호 중 어느 하나를 출력하여 메모리 셀 어레이에 제공하는 동작 모드 멀티플렉서를 포함한다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예에 따른 메모리 장치는, 특정한 내부 프로세싱 동작 각각을 수행하는 것을 지시하는 인스트럭션을 미리 코딩된 상태로 저장하는 인스트럭션 레지스터와, 인스트럭션 레지스터로부터 인스트럭션을 수신하고 인스트럭션을 기초로 제1 메모리 셀 제어 신호를 생성하는 커맨드 제너레이터를 포함하는 PIM(Processor In Memory) 블록을 포함하되, PIM 블록은, 제1 메모리 셀 제어 신호에 기초하여 내부 프로세싱 동작을 수행하기 위한 데이터를 메모리 셀 어레이로부터 리드하고, 내부 프로세싱 동작을 수행하고, 내부 프로세싱 동작이 완료된 데이터를 메모리 셀 어레이에 라이트한다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예에 따른 메모리 시스템은, 커맨드와 어드레스를 제공하는 메모리 컨트롤러, 및 메모리 컨트롤러로부터 커맨드와 어드레스를 제공받아 메모리 컨트롤러와 데이터를 송수신하는 메모리 장치를 포함하고, 메모리 장치는, 데이터를 저장하는 메모리 셀 어레이와, 내부에 저장된 인스트럭션을 기초로 내부 프로세싱 동작을 수행하기 위한 커맨드를 포함하는 제1 메모리 셀 제어 신호를 생성하고, 제1 메모리 셀 제어 신호에 기초하여 내부 프로세싱 동작을 수행하는 PIM(Processor In Memory) 블록을 포함하되, PIM 블록은 제1 메모리 셀 제어 신호에 기초하여 내부 프로세싱 동작을 수행하기 위한 데이터를 메모리 셀 어레이로부터 리드하거나, 내부 프로세싱 동작이 완료된 데이터를 메모리 셀 어레이에 라이트한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 몇몇 실시예에 따른 메모리 시스템을 설명하기 위한 예시적인 블록도이다.
도 2는 도 1의 몇몇 실시예에 따른 메모리 장치를 설명하기 위한 예시적인 블록도이다.
도 3은 몇몇 실시예에 따른 메모리 장치를 설명하기 위한 예시적인 블록도이다.
도 4는 몇몇 실시예에 따른 PIM 블록을 설명하기 위한 예시적인 블록도이다.
도 5는 몇몇 실시예에 따른 PIM 블록의 동작을 설명하기 위한 예시적인 도면이다.
도 6은 몇몇 실시예에 따른 메모리 장치의 동작을 설명하기 위한 예시적인 도면이다.
도 7은 다른 몇몇 실시예에 따른 PIM 블록을 설명하기 위한 예시적인 블록도이다.
도 8은 몇몇 실시예에 따른 메모리 시스템의 동작을 설명하기 위한 예시적인 흐름도이다.
도 9는 다른 몇몇 실시예들에 따른 메모리 시스템을 설명하기 위한 예시적인 블록도이다.
도 10은 몇몇 실시예들에 따른 데이터 센터를 설명하기 위한 예시적인 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 기술적 사상에 따른 실시예들에 대해 설명한다.
도 1은 몇몇 실시예에 따른 메모리 시스템을 설명하기 위한 예시적인 블록도이다.
도 1을 참조하면, 메모리 시스템은 호스트(20) 및 메모리 저장 장치(1)를 포함할 수 있다. 메모리 저장 장치(1)는 메모리 장치(100) 및 메모리 컨트롤러(10)를 포함할 수 있다.
메모리 컨트롤러(10)는 메모리 장치(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 메모리 컨트롤러(10)는 외부의 호스트(20)와 메모리 장치(100) 간의 데이터 교환을 제어할 수 있다. 예를 들어, 메모리 컨트롤러(10)는 호스트(20)의 요청에 따라서 메모리 장치(100)를 제어할 수 있고, 이를 통해 데이터를 라이트하거나, 데이터를 리드할 수 있다.
메모리 컨트롤러(10)와 메모리 장치(100)는 메모리 인터페이스(MEM I/F)를 통해 통신할 수 있다. 또한, 메모리 컨트롤러(10)와 외부의 호스트(20)는 호스트 인터페이스를 통해 통신할 수 있다. 즉, 메모리 컨트롤러(10)는 메모리 장치(100)와 호스트(20) 간의 신호를 중개할 수 있다. 메모리 컨트롤러(10)는 메모리 장치(100)를 제어하기 위한 커맨드(CMD)를 인가하여, 메모리 장치(100)의 동작을 제어할 수 있다.
여기서, 메모리 장치(100)는 동적 메모리 셀들을 포함할 수 있다. 예를 들어, 메모리 장치(100)는 DRAM(dynamic random access memory), DDR4(double data rate 4) SDRAM(synchronous DRAM), LPDDR4(low power DDR4) SDRAM 또는 LPDDR5 SDRAM 등을 포함할 수 있다.
하지만, 본 발명의 기술적 사상에 따른 실시예는 이에 제한되지 않으며, 메모리 장치(100)는 비휘발성 메모리 장치를 포함할 수도 있다. 하지만 본 실시예에서, 메모리 장치(100)가 휘발성 메모리 장치인 것으로 설명한다.
메모리 컨트롤러(10)는 메모리 장치(100)에 클럭 신호(CLK), 커맨드(CMD), 어드레스(ADDR) 등을 전송할 수 있다. 메모리 컨트롤러(10)는 메모리 장치(100)에 데이터(DQ)를 제공할 수 있고, 메모리 장치(100)로부터 데이터(DQ)를 수신할 수 있다. 메모리 장치(100)는 데이터(DQ)가 저장되는 메모리 셀 어레이(180), 제어 로직 회로(115) 및 데이터 입출력 버퍼(195) 등을 포함할 수 있다.
도 2는 도 1의 몇몇 실시예에 따른 메모리 장치를 설명하기 위한 예시적인 블록도이다.
도 2를 참조하면, 메모리 장치(100)는 제어 로직 회로(115), 어드레스 레지스터(125), 뱅크 제어 로직 회로(135), 로우 어드레스 멀티플렉서(140), 리프레시 카운터(145), 컬럼 어드레스 래치(150), 로우 디코더(160), 컬럼 디코더(170), 메모리 셀 어레이(180), 센스 앰프부(185), 입출력 게이팅 회로(190), ECC 엔진(191), 데이터 입출력 버퍼(195) 등을 포함할 수 있다.
메모리 셀 어레이(180)는 복수 개의 뱅크 어레이들을 포함할 수 있다. 로우 디코더(160)는 복수 개의 뱅크 어레이들에 연결될 수 있다. 컬럼 디코더(170)는 복수 개의 뱅크 어레이들에 연결될 수 있다. 센스 앰프부(185)는 복수 개의 뱅크 어레이들에 각각 연결될 수 있다. 메모리 셀 어레이(180)는 복수의 워드 라인, 복수의 비트 라인 및 워드 라인과 비트 라인이 교차하는 지점에 형성되는 복수의 메모리 셀을 포함할 수 있다.
어드레스 레지스터(125)는 메모리 컨트롤러(10)로부터 어드레스(ADDR)를 제공받을 수 있다. 어드레스(ADDR)는 뱅크 어드레스(BANK_ADDR), 로우 어드레스(ROW_ADDR) 및 컬럼 어드레스(COL_ADDR) 등을 포함할 수 있다. 어드레스 레지스터(125)는 뱅크 어드레스 뱅크 어드레스(BANK_ADDR)를 뱅크 제어 로직 회로(135)에 제공할 수 있다. 어드레스 레지스터(125)는 로우 어드레스(ROW_ADDR)를 로우 어드레스 멀티플렉서(140)에 제공할 수 있다. 어드레스 레지스터(125)는 컬럼 어드레스(COL_ADDR)를 컬럼 어드레스 래치(150)에 제공할 수 있다.
뱅크 제어 로직 회로(135)는 뱅크 어드레스(BANK_ADDR)에 응답하여 뱅크 제어 신호를 생성할 수 있다. 로우 디코더(160)는 뱅크 제어 신호에 응답하여 활성화될 수 있다. 또한, 컬럼 디코더(170)는 뱅크 어드레스(BANK_ADDR)에 대응되는 뱅크 제어 신호에 응답하여 활성화될 수 있다.
로우 어드레스 멀티플렉서(140)는 어드레스 레지스터(125)로부터 로우 어드레스(ROW_ADDR)를 수신하고, 리프레시 카운터(145)로부터 리프레시 로우 어드레스(REF_ADDR)를 수신할 수 있다. 로우 어드레스 멀티플렉서(140)는 로우 어드레스(ROW_ADDR) 또는 리프레시 로우 어드레스(REF_ADDR) 중 하나를 선택하여, 로우 어드레스(RA)로 출력할 수 있다. 로우 어드레스(RA)는 로우 디코더(160)에 전달될 수 있다.
리프레시 카운터(145)는 제어 로직 회로(115)의 제어에 따라서 리프레시 로우 어드레스(REF_ADDR)를 순차적으로 출력할 수 있다.
뱅크 제어 로직 회로(135)에 의해 활성화된 로우 디코더(160)는 로우 어드레스 멀티플렉서(140)로부터 출력된 로우 어드레스(RA)를 디코딩하여 로우 어드레스(RA)에 상응하는 워드 라인을 활성화할 수 있다. 예를 들어, 로우 디코더(160)는 로우 어드레스(RA)에 상응하는 워드 라인에 워드 라인 구동 전압을 인가할 수 있다.
컬럼 어드레스 래치(150)는 어드레스 레지스터(125)로부터 컬럼 어드레스(COL_ADDR)를 수신하고, 수신받은 컬럼 어드레스(COL_ADDR)를 일시적으로 저장할 수 있다. 컬럼 어드레스 래치(150)는 버스트 모드에서 수신된 컬럼 어드레스(COL_ADDR)를 점진적으로 증가시킬 수 있다. 컬럼 어드레스 래치(150)는 일시적으로 저장된 컬럼 어드레스(COL_ADDR) 또는 점진적으로 증가된 컬럼 어드레스(COL_ADDR)를 컬럼 디코더(170)에 제공할 수 있다.
컬럼 디코더(170) 중 뱅크 제어 로직 회로(135)에 의해 활성화된 컬럼 디코더(170)는 상응하는 입출력 게이팅 회로(190)를 통하여 뱅크 어드레스(BANK_ADDR), 컬럼 어드레스(COL_ADDR)에 대응되는 센스 앰프부(185)를 활성화시킬 수 있다.
입출력 게이팅 회로(190)는 입출력 데이터를 게이팅하는 회로, 입력 데이터 마스크 로직, 메모리 셀 어레이(180)로부터 출력된 데이터를 저장하는 리드 데이터 래치들 및 메모리 셀 어레이(180)에 데이터를 라이트하는 라이트 드라이버들을 포함할 수 있다.
메모리 셀 어레이(180)의 뱅크 어레이로부터 리드된 코드워드(CW)는 뱅크 어레이에 상응하는 센스 앰프부(185)에 의해 감지될 수 있다. 또한, 코드워드(CW)는 리드 데이터 래치에 저장될 수 있다. 리드 데이터 래치에 저장된 코드워드(CW)는 ECC 엔진(191)에 의해 ECC 디코딩이 수행될 수 있고, ECC 디코딩이 수행된 데이터(DQ)는 데이터 입출력 버퍼(195)를 통하여 메모리 컨트롤러(10)에 제공될 수 있다.
데이터 입출력 버퍼(195)는 라이트 동작에서 클럭 신호(CLK)에 기초하여 데이터(DQ)를 ECC 엔진(191)에 제공할 수 있다. 데이터 입출력 버퍼(195)는 리드 동작에서 클럭 신호(CLK)에 기초하여 ECC 엔진(191)으로부터 제공되는 데이터(DQ)를 메모리 컨트롤러(10)에 제공할 수 있다.
도 3은 몇몇 실시예에 따른 메모리 장치를 설명하기 위한 예시적인 블록도이다.
도 3을 참조하면, 메모리 장치(100)는 커맨드 디코더(110)(Command Decoder), PIM 블록(120)(Processor In Memory Block), 동작 모드 멀티플렉서(130), 및 메모리 셀 어레이(180)를 포함할 수 있다.
커맨드 디코더(110)는 커맨드/어드레스(CA)를 수신할 수 있다. 예를 들어, 커맨드 디코더(110)는 도 1에 도시된 메모리 컨트롤러(10)로부터 커맨드/어드레스(CA)를 수신할 수 있다.
커맨드 디코더(110)는 수신한 커맨드/어드레스(CA)를 기초로, 동작 모드 신호(Sgn_MODE)와 제1 메모리 셀 제어 신호(Sgn_CONT1)를 출력할 수 있다. 커맨드 디코더(110)는 동작 모드 신호(Sgn_MODE)와 제1 메모리 셀 제어 신호(Sgn_CONT1)를 동작 모드 멀티플렉서(130)에 제공할 수 있다.
PIM 블록(120)은 연산 집약적인 코어, GPU 가속기 또는 FPGA(Field Programmable Gate Array) 등으로 구현될 수 있다. 또는, PIM 블록(120)은 병렬 컴퓨팅, 데이터 재사용, 데이터 값의 국지성(locality) 또는 딥뉴럴 네트워크를 수행하는 NPU(Neural Processing Unit)로 구현될 수 있나, 실시예가 이에 제한되는 것은 아니다.
PIM 블록(120)은 외부로부터 커맨드/어드레스(CA)를 수신할 수 있다. 예를 들어, PIM 블록(120)은 도 1에 도시된 메모리 컨트롤러(10)로부터 커맨드/어드레스(CA)를 직접 수신할 수 있다.
PIM 블록(120)은 수신한 커맨드/어드레스(CA)를 기초로, 내부에서 생성한 제2 메모리 셀 제어 신호(Sgn_CONT2)를 출력할 수 있다. PIM 블록(120)은 제2 메모리 셀 제어 신호(Sgn_CONT2)를 동작 모드 멀티플렉서(130)에 제공할 수 있다.
한편 도 3에는 PIM 블록(120)이 커맨드/어드레스(CA)를 수신하고 이를 기초로 제2 메모리 셀 제어 신호(Sgn_CONT2)를 출력하는 것으로 도시되었으나 실시예가 이에 제한되는 것은 아니다. 예를 들어, PIM 블록(120)은 커맨드/어드레스(CA)를 외부로부터 수신하지 않고, 내부에 저장된 인스트럭션을 이용하여 내부 프로세싱 동작을 수행하기 위한 커맨드를 생성할 수 있다. 이 때, 내부 프로세싱 동작을 수행하기 위한 커맨드는 상기 제2 메모리 셀 제어 신호(Sgn_CONT2)를 의미할 수 있다. 상기 인스트럭션은 PIM 블록(120) 내부의 인스터럭션 레지스터에 저장될 수 있다. 구체적인 내용은 후술한다.
본 발명의 몇몇 실시예에 따른 메모리 장치는, 상기와 같이 PIM 블록(120)이 외부로부터 커맨드/어드레스(CA)를 수신하지 않고 자체적으로 및 내부적으로 내부 프로세싱 동작을 수행하기 위한 커맨드를 생성함으로써, 기존의 외부로부터 수신한 커맨드와 내부의 인스트럭션이 반드시 매치(match)되어야 하는 문제점을 해결할 수 있다.
동작 모드 멀티플렉서(130)는 커맨드 디코더(110)로부터 제1 메모리 셀 제어 신호(Sgn_CONT1)를 제공받고, PIM 블록(120)로부터 제2 메모리 셀 제어 신호(Sgn_CONT2)를 제공받을 수 있다.
동작 모드 멀티플렉서(130)는 커맨드 디코더(110)로부터 수신한 동작 모드 신호(Sgn_MODE)를 기초로, 메모리 셀 제어 신호(Sgn_CONT)를 출력할 수 있다. 예를 들어, 동작 모드 멀티플렉서(130)는 동작 모드 신호(Sgn_MODE)에 기초하여, 제1 메모리 셀 제어 신호(Sgn_CONT1)와 제2 메모리 셀 제어 신호(Sgn_CONT2) 중 어느 하나를 메모리 셀 제어 신호(Sgn_CONT)로서 출력할 수 있다. 동작 모드 멀티플렉서(130)는 메모리 셀 제어 신호(Sgn_CONT)를 메모리 셀 어레이(180)에 제공할 수 있다.
한편, 도 3에서는 동작 모드 멀티플렉서(130)가 커맨드 디코더(110)로부터 수신한 동작 모드 신호(Sgn_MODE)를 기초로 메모리 셀 제어 신호(Sgn_CONT)를 출력하는 것으로 도시되었으나, 실시예가 이에 제한되는 것은 아니다. 예를 들어, 커맨드 디코더(110)는 데이터 트랜잭션을 수행하기 위한 제1 메모리 셀 제어 신호(Sgn_CONT1)를 직접 메모리 셀 어레이(180)에 제공할 수도 있으며, PIM 블록(120) 또한 내부 프로세싱 동작을 수행하기 위한 제2 메모리 셀 제어 신호(Sgn_CONT2)를 직접 메모리 셀 어레이(180)에 제공할 수도 있다.
메모리 셀 어레이(180)는 도 1 및 도 2에서 설명한 바와 동일할 수 있다. 메모리 셀 어레이(180)는 예를 들어, 캐패시터와 트랜지스터를 포함하는 DRAM 메모리 셀을 포함할 수 있으나, 실시예가 이에 제한되는 것은 아니다.
메모리 장치(100)는 상술한 데이터의 리드 및 라이트 동작의 데이터 트랜잭션 동작을 수행하는 일반 동작 모드와, 내부 프로세싱 동작을 수행하는 내부 프로세싱 동작 모드 중 어느 하나로 동작할 수 있다. 즉, 메모리 장치(100)는 내부 프로세싱 동작을 수행하는 프로세서-인-메모리(Processor In Memory)를 포함하는 PIM 타입의 메모리 장치(100)일 수 있다.
예를 들어, 메모리 장치(100)는 일반 동작 모드에서 외부로부터 제공받은 데이터(DQ)를 메모리 셀 어레이(180)에 라이트하거나, 메모리 셀 어레이(180)에 저장된 데이터(DQ)를 리드하여 외부로 전송할 수 있다. 즉, 도 3에 도시된 커맨드 디코더(110)는 도 1 및 도 2에서 설명한 제어 로직 회로(115) 등과 같이 데이터의 리드 및 라이트 동작을 수행하기 위한 여러 구성들을 포함하는 것일 수 있다.
한편 예를 들어, 메모리 장치(100)는 내부 프로세싱 동작 모드에서, PIM 블록(120)을 통해 메모리 셀 어레이(180)에 저장된 데이터에 대한 처리 동작을 수행할 수 있다. 즉, 도 3에서 커맨드 디코더(110)와 PIM 블록(120)이 수신하는 커맨드/어드레스(CA)는 커맨드 디코더(110)를 통해 메모리 셀 어레이(180)에 대한 데이터의 리드 또는 라이트의 동작을 지시하는 것뿐만 아니라, PIM 블록(120)이 내부 프로세싱 동작을 수행하도록 지시하는 신호를 포함할 수 있다. 또는, PIM 블록(120)은 상기와 같이 내부 프로세싱 동작을 수행하도록 지시하는 커맨드/어드레스(CA)를 수신하는 것뿐만 아니라 내부에 저장된 인스트럭션을 이용하여 내부 프로세싱 동작을 수행하기 위한 커맨드 또한 생성할 수 있음은 상기 설명한 바와 동일하다.
또한, 메모리 셀 어레이(180)는 내부 프로세싱 정보를 저장할 수 있다. 예를 들어, 메모리 셀 어레이(180)는 PIM 블록(120)에 의해 수행되는 내부 프로세싱 동작을 위한 정보인 내부 프로세싱 정보를 저장할 수 있다. 내부 프로세싱 정보는 예를 들어, 내부 프로세싱 동작 커맨드, 내부 프로세싱 데이터를 포함할 수 있으나, 실시예가 이에 제한되는 것은 아니다.
또한, PIM 블록(120)의 내부 프로세싱 동작을 수행하도록 하기 위하여, 커맨드/어드레스(CA)는 내부 프로세싱 리드 커맨드 또는 내부 프로세싱 라이트 커맨드와 같은 커맨드를 포함할 수 있다. 또는 PIM 블록(120)은 자체적으로 및 내부적으로 내부 프로세싱 리드 커맨드 또는 내부 프로세싱 라이트 커맨드와 같은 커맨드를 생성할 수 있음은 상술한 바와 동일하다.
PIM 블록(120)은 MAC (Multiplying-Accumulating) 연산이나, 데이터 반전(invert), 데이터 시프트(shift), 데이터 스왑(swap), 데이터 비교(compare), 및 다양한 논리 연산들(logical operations, AND, XOR 등), 수치 연산들(mathematical operations, 덧셈, 뺄셈, 등) 등과 같은 처리 동작을 수행할 수 있다.
메모리 장치(100)는 일반 동작 모드와 내부 프로세싱 동작 모드에서 서로 다른 동작을 수행하며, 동작 모드 멀티플렉서(130)는 동작 모드 신호(Sgn_MODE)에 기초하여 메모리 셀 제어 신호(Sgn_CONT)를 출력할 수 있다.
예를 들어, 동작 모드 신호(Sgn_MODE)가 일반 동작 모드인 것에 대응하여, 동작 모드 멀티플렉서(130)는 커맨드 디코더(110)로부터 출력된 제1 메모리 셀 제어 신호(Sgn_CONT1)를 메모리 셀 제어 신호(Sgn_CONT)로서 출력할 수 있다. 이에 따라 메모리 셀 어레이(180)에 데이터(DQ)를 라이트하거나, 메모리 셀 어레이(180)에 저장된 데이터(DQ)를 리드할 수 있다.
한편 예를 들어, 동작 모드 신호(Sgn_MODE)가 내부 프로세싱 동작 모드인 것에 대응하여, 동작 모드 멀티플렉서(130)는 PIM 블록(120)으로부터 출력된 제2 메모리 셀 제어 신호(Sgn_CONT2)를 메모리 셀 제어 신호(Sgn_CONT)로서 출력할 수 있다. 이에 따라 PIM 블록(120)은 내부 프로세싱 동작을 수행하기 위한 데이터(DQ)를 메모리 셀 어레이(180)로부터 리드하거나, 내부 프로세싱 동작이 완료된 데이터(DQ)를 메모리 셀 어레이에 라이트할 수 있다.
동작 모드 신호(Sgn_MODE)는 커맨드 조합, 모드 레지스터 셋(MRS; Mode Register Set), 어드레스 조합 등과 같이 여러 신호들의 조합으로 구성될 수 있으나, 실시예가 이에 제한되는 것은 아니다. 또한, 도 3에서는 동작 모드 신호(Sgn_MODE)가 커맨드 디코더(110)로부터 출력되는 것으로 도시되었으나, 실시예가 이에 제한되는 것은 아니며, 동작 모드 신호(Sgn_MODE)는 도 1의 메모리 컨트롤러(10) 등과 같이 외부에서 출력되어 동작 모드 멀티플렉서(130)에 제공될 수도 있다.
기존에 PIM 블록(120)과 메모리 셀 어레이(180) 사이의 데이터 흐름은 커맨드 디코더(110)에서 디코딩된 커맨드에 의해 결정되었으나, 본 발명의 몇몇 실시예에 따른 메모리 장치(100)는 PIM 블록(120)에서 내부 프로세싱 동작을 수행하는 경우 PIM 블록(120) 내부에서 직접 메모리 셀 제어 신호를 생성하여, 메모리 셀 어레이(180)를 제어할 수 있다. 이에 따라, 기존의 PIM을 포함하는 메모리 장치와 달리, 내부 프로세싱 동작을 수행하는 경우 메모리 셀 어레이(180)와 외부로부터의 데이터 흐름을 커맨드 디코더(110)와 무관하게 PIM 블록(120)이 제어할 수 있으므로, 메모리 장치(100)의 PIM 블록(120)을 이용한 내부 프로세싱 동작 성능이 향상될 수 있다.
도 4는 몇몇 실시예에 따른 PIM 블록을 설명하기 위한 예시적인 블록도이다.
도 4를 참조하면, PIM 블록(120)은 인스트럭션 레지스터(121)(Instruction Register)와 커맨드 제너레이터(122)(Command Generator)를 포함할 수 있다.
인스트럭션 레지스터(121)는 미리 코딩된 인스트럭션을 저장할 수 있다. 인스트럭션 레지스터(121)는 저장한 인스트럭션을 커맨드 제너레이터(122)에 제공할 수 있다.
커맨드 제너레이터(122)는 외부로부터 커맨드/어드레스(CA)를 수신하고, 이를 기초로 제2 메모리 셀 제어 신호(Sgn_CONT2)를 생성할 수 있다. 또는 커맨드 제너레이터(122)는 인스트럭션 레지스터(121)로부터 인스트럭션을 수신하고, 이를 기초로 제2 메모리 셀 제어 신호(Sgn_CONT2)를 생성할 수 있다. 즉, 커맨드 제너레이터(122)는 외부로부터의 커맨드/어드레스(CA) 제공 없이 자체적으로 및 내부적으로 내부 프로세싱 동작을 수행하기 위한 커맨드를 생성할 수 있다.
즉, 인스트럭션 레지스터(121)는 PIM 블록(120)이 내부 프로세싱 동작을 수행하는 경우, 내부 프로세싱 동작 각각에 대응되는 인스트럭션을 미리 코딩된 상태로 저장할 수 있다. 커맨드 제너레이터(122)는 상기 인스트럭션의 순서 또는 종류에 기초하여 PIM 블록(120)이 특정한 내부 프로세싱 동작을 수행하도록 메모리 셀 어레이(180)를 제어하는 제2 메모리 셀 제어 신호(Sgn_CONT2)를 출력할 수 있다.
한편, 도시되지는 않았으나 PIM 블록(120)은 내부 프로세싱 동작을 수행하는 오퍼레이터(operator)를 포함할 수 있다. 오퍼레이터는 내부 프로세싱 동작, 예를 들어 MAC 연산과 같은 동작을 수행할 수 있다.
도 5는 몇몇 실시예에 따른 PIM 블록의 동작을 설명하기 위한 예시적인 도면이며, 도 6은 몇몇 실시예에 따른 메모리 장치의 동작을 설명하기 위한 예시적인 도면이다.
도 5 및 도 6을 참조하면, 먼저 도 5에 도시된 바와 같이 인스트럭션 레지스터(121)에 3개의 인스트럭션이 저장되어 있다고 가정하자. 이 때, 3개의 인스트럭션은 각각 MAC, Broadcast, RMW로 명명될 수 있다고 가정하자.
인스트럭션 레지스터(121)는 3개의 인스트럭션을 저장하고, 인스트럭션은 미리 결정된 순서를 가질 수 있다. 예를 들어, MAC 인스트럭션에 대응되는 내부 프로세싱 동작이 수행된 후 Broadcast 인스트럭션에 대응되는 내부 프로세싱 동작이 수행되며, Broadcast 인스트럭션에 대응되는 내부 프로세싱 동작이 수행된 후 RMW 인스트럭션에 대응되는 내부 프로세싱 동작이 수행될 수 있다.
예를 들어 도 6을 함께 참조하면, 제1 시점(T1)에서 MAC 인스트럭션에 대응되는 제0 내부 프로세싱 동작(PIM_0)이 수행될 수 있다. 이어서, MAC 인스트럭션에 대응되는 제0 내부 프로세싱 동작(PIM_0)이 수행된 후 제2 시점(T2)에서 Broadcast 인스트럭션에 대응되는 제1 내부 프로세싱 동작(PIM_1)이 수행될 수 있다. 이어서, Broadcast 인스트럭션에 대응되는 제1 내부 프로세싱 동작(PIM_1)이 수행된 후 제3 시점(T3)에서 RMW 인스트럭션에 대응되는 제2 내부 프로세싱 동작(PIM_2)이 수행될 수 있다.
한편 다시 도 5를 참조하면, MAC 인스트럭션은 메모리 셀 어레이로부터 데이터를 리드하고, 외부로부터의 데이터를 PIM 블록에 라이트하는 동작을 포함하는 내부 프로세싱 동작을 지시할 수 있다.
Broadcast 인스트럭션은 내부 프로세싱 동작을 통해 연산이 수행된 데이터를 메모리 셀 어레이에 라이트하고, 외부로부터의 데이터를 PIM 블록에 라이트하는 동작을 포함하는 내부 프로세싱 동작을 지시할 수 있다.
RMW 인스트럭션은 메모리 셀 어레이로부터 데이터를 리드하고, 내부 프로세싱 동작을 통해 연산이 수행된 데이터를 메모리 셀 어레이에 다시 라이트하는 동작을 포함하는 내부 프로세싱 동작을 지시할 수 있다.
예를 들어 도 6을 함께 참조하면, 제1 시점(T1)에서 MAC 인스트럭션에 대응되는 제0 내부 프로세싱 동작(PIM_0)이 수행될 수 있다. 즉, 제0 내부 프로세싱 동작(PIM_0)은 메모리 셀 어레이(Cell)로부터 PIM 블록(PIM)으로 데이터를 리드하고, 외부로부터의 데이터(DQ)를 PIM 블록(PIM)에 라이트하는 동작을 의미할 수 있다.
이어서 제2 시점(T2)에서 Broadcast 인스트럭션에 대응되는 제1 내부 프로세싱 동작(PIM_1)이 수행될 수 있다. 즉, 제1 내부 프로세싱 동작(PIM_1)은 PIM 블록(PIM) 내부에서 내부 프로세싱 동작을 통해 연산이 수행된 데이터를 메모리 셀 어레이(Cell)에 라이트하고, 외부로부터의 데이터(DQ)를 PIM 블록(PIM)에 라이트하는 동작을 의미할 수 있다.
이어서 제3 시점(T3)에서 RMW 인스트럭션에 대응되는 제2 내부 프로세싱 동작(PIM_2)이 수행될 수 있다. 즉, 제2 내부 프로세싱 동작(PIM_2)은 메모리 셀 어레이(Cell)로부터 PIM 블록(PIM)으로 데이터를 리드하고, PIM 블록(PIM) 내부에서 내부 프로세싱 동작을 통해 연산이 수행된 데이터를 다시 메모리 셀 어레이(Cell)에 라이트하는 동작을 의미할 수 있다.
하지만 설명의 편의를 위한 것일 뿐 실시예가 상술한 내용에 제한되는 것은 아니다. 예를 들어, PIM 블록은 다른 수의 인스트럭션을 포함할 수도 있으며, 인스트럭션에 대응되는 내부 프로세싱 동작은 다양하게 존재할 수 있다. 또한, 도 5 및 6에서는 미리 정해진 인스트럭션의 순서에 따라 내부 프로세싱 동작이 수행되는 것으로 도시되었으나, 실시예가 이에 제한되는 것 또한 아님은 자명하다.
상기와 같이 PIM 블록(PIM)이 내부 프로세싱 동작을 수행하는 경우에 인스트럭션 레지스터에 저장된 인스트럭션을 이용하여, 외부의 커맨드/어드레스의 제공 없이 내부 프로세싱 동작을 위한 커맨드를 생성할 수 있다. 이를 통해, PIM 블록(PIM)에서의 내부 프로세싱 동작을 수행하기 위해 필요한 외부에서 전달되는 데이터와, 메모리 셀 어레이로부터 리드하는 데이터를 동시에 사용할 수 있게 되어, 메모리 장치의 전체적인 성능이 향상될 수 있다.
도 7은 다른 몇몇 실시예에 따른 PIM 블록을 설명하기 위한 예시적인 블록도이다. 도 4와 중복되는 내용은 설명하고 차이점을 위주로 설명한다.
도 7을 참조하면, PIM 블록(120)은 데이터 출력부(123)(DQ Output Unit)를 더 포함할 수 있다.
데이터 출력부(123)는 커맨드 제너레이터(122)의 제어에 의해 내부 프로세싱 동작이 완료된 데이터(DQ)를 외부(ext) 또는 메모리 셀 어레이(cell) 중 어느 하나에 전송할 수 있다.
예를 들어, PIM 블록(120)이 내부 프로세싱 동작을 수행하고, 내부 프로세싱 동작이 완료된 데이터(DQ)를 전송하는 경우, 데이터 출력부(123)는 커맨드 제너레이터(122)의 제어에 의해 데이터(DQ)를 외부(ext) 또는 메모리 셀 어레이(cell) 중 어느 하나에 전송하기 위한 멀티플렉서(MUX; Multiplexer)를 포함할 수 있다.
도 8은 몇몇 실시예에 따른 메모리 시스템의 동작을 설명하기 위한 예시적인 흐름도이다.
도 8을 참조하면, 메모리 컨트롤러(10)로부터 출력된 커맨드/어드레스(CA)를 커맨드 디코더(110)와 PIM 블록(120)이 수신할 수 있다(S110).
이어서, 커맨드 디코더(110)는 수신한 커맨드/어드레스(CA)를 기초로 제1 메모리 셀 제어 신호(Sgn_CONT1)를 생성할 수 있고(S120), PIM 블록(120)은 수신한 커맨드/어드레스(CA)를 기초로 제2 메모리 셀 제어 신호(Sgn_CONT2)를 생성할 수 있다(S130).
한편, 도 8에는 PIM 블록(120)이 수신한 커맨드/어드레스(CA)를 기초로 제2 메모리 셀 제어 신호(Sgn_CONT2)를 생성하는 것으로 도시되었으나, 실시예가 이에 제한되지 않으며 PIM 블록(120)은 커맨드/어드레스(CA)를 수신하지 않고 제2 메모리 셀 제어 신호(Sgn_CONT2)를 생성할 수 있음은 도 3 내지 도 7에서 설명한 바와 동일하므로 생략한다.
이어서, 메모리 장치(100)의 동작 모드가 내부 프로세싱 동작 모드인지 여부를 판단할 수 있다(S140). 예를 들어, 동작 모드 멀티플렉서(130)는 커맨드 디코더(110)로부터 동작 모드 신호(Sgn_MODE)를 수신할 수 있고, 이에 기초하여 제1 메모리 셀 제어 신호(Sgn_CONT1)와 제2 메모리 셀 제어 신호(Sgn_CONT2) 중 어느 하나를 메모리 셀 어레이(180)에 출력할 수 있다.
예를 들어, 메모리 장치(100)의 동작 모드가 내부 프로세싱 동작 모드인 경우(S140의 YES), 메모리 장치(100)는 커맨드 제너레이터(122)에 의해 생성된 커맨드, 즉 제2 메모리 셀 제어 신호(Sgn_CONT2)에 기초하여 내부 프로세싱 동작을 수행할 수 있다(S150). 즉, PIM 블록(120)은 인스트럭션 레지스터(121)에 저장된 인스트럭션에 따라, 인스트럭션에 대응되는 내부 프로세싱 동작을 수행할 수 있고, 이는 도 5 및 도 6에서 설명한 바와 동일하므로 이하 생략한다.
한편 예를 들어, 메모리 장치(100)의 동작 모드가 일반 모드인 경우(S140의 NO), 메모리 장치(100)는 커맨드 디코더(110)에 의해 디코딩된 커맨드에 기초하여 데이터 트랜잭션을 수행할 수 있다. 즉, 커맨드 디코더(110)에 의해 디코딩된 커맨드에 기초하여, 메모리 컨트롤러(10)로부터 제공된 데이터를 메모리 셀 어레이(180)에 라이트하거나, 또는 메모리 셀 어레이(180)에 저장된 데이터를 리드하여 메모리 컨트롤러(10)로 제공할 수 있다(S160).
한편, PIM 블록(120)은 내부 프로세싱 동작이 수행된 후 생성된 데이터를 외부 또는 메모리 셀 어레이 중 어디로 전송할지 여부를 결정할 수 있다(S170). 즉, 데이터 출력부(123)는 커맨드 제너레이터(122)의 제어 하에 내부 프로세싱 동작이 수행된 데이터를 메모리 셀 어레이(180)나 외부 중 어느 하나로 전송할 수 있다.
이어서, 내부 프로세싱 동작이 완료되면 메모리 컨트롤러(10)로부터 수신한 다른 커맨드/어드레스(CA)가 있는지 여부를 판단한다(S180). 그 결과 다른 커맨드/어드레스(CA)가 존재하는 경우, 해당 커맨드/어드레스(CA)가 일반 동작 모드와 내부 프로세싱 동작 모드 중 어느 것인지 여부를 판단하고, 이에 대응되는 동작이 수행될 수 있다(S180의 YES). 한편, 다른 커맨드/어드레스(CA)가 존재하지 않는 경우, 메모리 장치(100)는 메모리 컨트롤러(10)에 완료 신호를 전송할 수 있다(S190).
도 9는 다른 몇몇 실시예들에 따른 메모리 시스템을 설명하기 위한 예시적인 블록도이다.
도 9를 참조하면, 메모리 시스템(2000)은 기본적으로 휴대용 통신 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기 또는 IOT(internet of things) 기기와 같은 모바일(mobile) 시스템일 수 있다.
하지만 도 9의 메모리 시스템(2000)은 반드시 모바일 시스템에 한정되는 것은 아니고, 개인용 컴퓨터(personal computer), 랩탑(laptop) 컴퓨터, 서버(server), 미디어 재생기(media player) 또는 내비게이션(navigation)과 같은 차량용 장비(automotive device) 등이 될 수도 있다.
도 9를 참조하면, 메모리 시스템(2000)은 메인 프로세서(main processor)(2100), 메모리(2200a, 2200b) 및 스토리지 장치(2300a, 2300b)를 포함할 수 있으며, 추가로 촬영 장치(image capturing device)(2410), 사용자 입력 장치(user input device)(2420), 센서(2430), 통신 장치(2440), 디스플레이(2450), 스피커(2460), 전력 공급 장치(power supplying device)(2470) 및 연결 인터페이스(connecting interface)(2480) 중 하나 이상을 포함할 수 있다.
메모리(2200a, 2200b)는 도 1 내지 도 8에서 설명한 메모리 장치(100)와실질적으로 동일할 수 있다.
메인 프로세서(2100)는 메모리 시스템(2000)의 전반적인 동작, 보다 구체적으로는 메모리 시스템(2000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(2100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다.
메인 프로세서(2100)는 하나 이상의 CPU 코어(2110)를 포함할 수 있으며, 메모리(2200a, 2200b) 및/또는 스토리지 장치(2300a, 2300b)를 제어하기 위한 컨트롤러(2120)를 더 포함할 수 있다.
컨트롤러(2120)는 도 1 및 도 2에서 설명한 메모리 컨트롤러(10)와 실질적으로 동일할 수 있다.
실시예에 따라서는, 메인 프로세서(2100)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator)(2130)를 더 포함할 수 있다. 이와 같은 가속기(2130)는 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 및/또는 DPU(Data Processing Unit) 등을 포함할 수 있으며, 메인 프로세서(2100)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.
메모리(2200a, 2200b)는 메모리 시스템(2000)의 주기억 장치로 사용될 수 있으며, SRAM 및/또는 DRAM 등의 휘발성 메모리를 포함할 수 있으나, 플래시 메모리, PRAM 및/또는 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(2200a, 2200b)는 메인 프로세서(2100)와 동일한 패키지 내에 구현되는 것도 가능하다.
스토리지 장치(2300a, 2300b)는 전원 공급 여부와 관계없이 데이터를 저장하는 비휘발성 저장 장치로서 기능할 수 있으며, 메모리(2200a, 2200b)에 비해 상대적으로 큰 저장 용량을 가질 수 있다. 스토리지 장치(2300a, 2300b)는 스토리지 컨트롤러(2310a, 2310b)와, 스토리지 컨트롤러(2310a, 2310b)의 제어 하에 데이터를 저장하는 비휘발성 메모리(non-volatile memory, NVM)(2320a, 2320b)를 포함할 수 있다. 비휘발성 메모리(2320a, 2320b)는 2D(2-dimensional) 구조 혹은 3D(3-dimensional) V-NAND(Vertical NAND) 구조의 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다.
스토리지 장치(2300a, 2300b)는 메인 프로세서(2100)와는 물리적으로 분리된 상태로 메모리 시스템(2000)에 포함될 수도 있고, 메인 프로세서(2100)와 동일한 패키지 내에 구현될 수도 있다. 또한, 스토리지 장치(2300a, 2300b)는 SSD(solid state device) 혹은 메모리 카드(memory card)와 같은 형태를 가짐으로써, 후술할 연결 인터페이스(2480)와 같은 인터페이스를 통해 메모리 시스템(2000)의 다른 구성 요소들과 탈부착 가능하도록 결합될 수도 있다. 이와 같은 스토리지 장치(2300a, 2300b)는 UFS(Universal Flash Storage), eMMC(embedded multi-media card) 혹은 NVMe(non-volatile memory express)와 같은 표준 규약이 적용되는 장치일 수 있으나, 반드시 이에 한정되는 건 아니다.
촬영 장치(2410)는 정지 영상 또는 동영상을 촬영할 수 있으며, 카메라(camera), 캠코더(camcorder) 및/또는 웹캠(webcam) 등일 수 있다.
사용자 입력 장치(2420)는 메모리 시스템(2000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keyboard), 키보드(keyboard), 마우스(mouse) 및/또는 마이크(microphone) 등일 수 있다.
센서(2430)는 메모리 시스템(2000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(2430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 및/또는 자이로스코프(gyroscope) 센서 등일 수 있다.
통신 장치(2440)는 다양한 통신 규약에 따라 메모리 시스템(2000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(2440)는 안테나, 트랜시버(transceiver) 및/또는 모뎀(MODEM) 등을 포함하여 구현될 수 있다.
디스플레이(2450) 및 스피커(2460)는 메모리 시스템(2000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.
전력 공급 장치(2470)는 메모리 시스템(2000)에 내장된 배터리(도시 안함) 및/또는 외부 전원으로부터 공급되는 전력을 적절히 변환하여 메모리 시스템(2000)의 각 구성 요소들에게 공급할 수 있다.
연결 인터페이스(2480)는 메모리 시스템(2000)과, 메모리 시스템(2000)에 연결되어 메모리 시스템(2000과 데이터를 주고받을 수 있는 외부 장치 사이의 연결을 제공할 수 있다. 연결 인터페이스(2480)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe, IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC, UFS, eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.
도 10은 몇몇 실시예들에 따른 데이터 센터를 설명하기 위한 예시적인 블록도이다.
도 10을 참조하면, 데이터 센터(3000)는 각종 데이터를 모아두고 서비스를 제공하는 시설로서, 데이터 스토리지 센터라고 지칭될 수도 있다.
데이터 센터(3000)는 검색 엔진 및 데이터 베이스 운용을 위한 시스템일 수 있으며, 은행 등의 기업 또는 정부기관에서 사용되는 컴퓨팅 시스템일 수 있다. 데이터 센터(3000)는 애플리케이션 서버들(3100 내지 3100n) 및 스토리지 서버들(3200 내지 3200m)을 포함할 수 있다. 애플리케이션 서버들(3100 내지 3100n)의 개수 및 스토리지 서버들(3200 내지 3200m)의 개수는 실시예에 따라 다양하게 선택될 수 있고, 애플리케이션 서버들(3100 내지 3100n)의 개수 및 스토리지 서버들(3200 내지 3200m)의 개수는 서로 다를 수 있다.
애플리케이션 서버(3100) 또는 스토리지 서버(3200)는 프로세서(3110, 3210) 및 메모리(3120, 3220) 중 적어도 하나를 포함할 수 있다. 스토리지 서버(3200)를 예시로 설명하면, 프로세서(3210)는 스토리지 서버(3200)의 전반적인 동작을 제어할 수 있고, 메모리(3220)에 액세스하여 메모리(3220)에 로딩된 명령어 및/또는 데이터를 실행할 수 있다.
메모리(3220)는 DDR SDRAM(Double Data Rate Synchronous DRAM), HBM(High Bandwidth Memory), HMC(Hybrid Memory Cube), DIMM(Dual In-line Memory Module), Optane DIMM 및/또는 NVMDIMM(Non-Volatile DIMM)일 수 있다.
메모리(3220)는 도 1 내지 도 8에서 설명한 메모리 장치(100)와 실질적으로 동일할 수 있다.
실시예에 따라, 스토리지 서버(3200)에 포함되는 프로세서(3210)의 개수 및 메모리(3220)의 개수는 다양하게 선택될 수 있다. 일 실시예에서, 프로세서(3210)와 메모리(3220)는 프로세서-메모리 페어를 제공할 수 있다. 일 실시예에서, 프로세서(3210)와 메모리(3220)의 개수는 서로 다를 수도 있다. 프로세서(3210)는 단일 코어 프로세서 또는 다중 코어 프로세서를 포함할 수 있다.
스토리지 서버(3200)에 대한 상기 설명은, 애플리케이션 서버(3100)에도 유사하게 적용될 수 있다. 실시예에 따라, 애플리케이션 서버(3100)는 스토리지 장치(3150)를 포함하지 않을 수도 있다. 스토리지 서버(3200)는 적어도 하나 이상의 스토리지 장치(3250)를 포함할 수 있다. 스토리지 서버(3200)에 포함되는 스토리지 장치(3250)의 개수는 실시예에 따라 다양하게 선택될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1: 메모리 저장 장치
10 : 메모리 컨트롤러
100 : 메모리 장치
110 : 커맨드 디코더
120 : PIM 블록
121 : 인스트럭션 레지스터
122 : 커맨드 제너레이터
123 : 데이터 출력부
130 : 동작 모드 멀티플렉서
180 : 메모리 셀 어레이
CA : 커맨드/어드레스
DQ : 데이터

Claims (10)

  1. 데이터를 저장하는 메모리 셀 어레이;
    외부로부터 커맨드를 수신하여 제1 메모리 셀 제어 신호를 생성하는 커맨드 디코더;
    내부에 저장된 인스트럭션을 기초로 내부 프로세싱 동작을 수행하기 위한 커맨드를 포함하는 제2 메모리 셀 제어 신호를 생성하고, 상기 제2 메모리 셀 제어 신호에 기초하여 내부 프로세싱 동작을 수행하는 PIM(Processor In Memory) 블록; 및
    상기 제1 메모리 셀 제어 신호 또는 상기 제2 메모리 셀 제어 신호 중 어느 하나를 출력하여 상기 메모리 셀 어레이에 제공하는 동작 모드 멀티플렉서를 포함하는 메모리 장치.
  2. 제1항에 있어서,
    상기 동작 모드 멀티플렉서가 상기 제1 메모리 셀 제어 신호를 출력하는 것에 대응하여, 상기 커맨드 디코더는 상기 제1 메모리 셀 제어 신호에 기초하여 외부로부터 제공받은 데이터를 상기 메모리 셀 어레이에 라이트하거나, 상기 메모리 셀 어레이에 저장된 데이터를 리드하여 외부에 제공하는 메모리 장치.
  3. 제1항에 있어서,
    상기 동작 모드 멀티플렉서가 상기 제2 메모리 셀 제어 신호를 출력하는 것에 대응하여, 상기 PIM 블록은 상기 제2 메모리 셀 제어 신호에 기초하여 상기 내부 프로세싱 동작을 수행하기 위한 데이터를 상기 메모리 셀 어레이로부터 리드하거나, 상기 내부 프로세싱 동작이 완료된 데이터를 상기 메모리 셀 어레이에 라이트하는 메모리 장치.
  4. 제3항에 있어서,
    상기 PIM 블록은 외부로부터 데이터를 수신하는 것을 더 포함하고,
    상기 PIM 블록이 외부로부터 상기 데이터를 수신하는 것과 상기 메모리 셀 어레이로부터 저장된 데이터를 리드하는 것은 실질적으로 동일한 시점에 수행되는 메모리 장치.
  5. 제1항에 있어서,
    상기 PIM 블록은,
    특정한 내부 프로세싱 동작 각각을 수행하는 것을 지시하는 상기 인스트럭션을 미리 코딩된 상태로 저장하는 인스트럭션 레지스터와,
    상기 인스트럭션 레지스터로부터 상기 인스트럭션을 수신하고, 상기 인스트럭션을 기초로 상기 제2 메모리 셀 제어 신호를 생성하는 커맨드 제너레이터를 포함하는 메모리 장치.
  6. 제5항에 있어서,
    상기 PIM 블록은 데이터 출력부를 더 포함하고,
    상기 데이터 출력부는 상기 커맨드 제너레이터의 제어에 의해 상기 내부 프로세싱 동작이 완료된 데이터를 외부 또는 상기 메모리 셀 어레이 중 어느 하나에 전송하는 메모리 장치.
  7. 특정한 내부 프로세싱 동작 각각을 수행하는 것을 지시하는 인스트럭션을 미리 코딩된 상태로 저장하는 인스트럭션 레지스터와, 상기 인스트럭션 레지스터로부터 상기 인스트럭션을 수신하고 상기 인스트럭션을 기초로 제1 메모리 셀 제어 신호를 생성하는 커맨드 제너레이터를 포함하는 PIM(Processor In Memory) 블록을 포함하되,
    상기 PIM 블록은,
    상기 제1 메모리 셀 제어 신호에 기초하여 내부 프로세싱 동작을 수행하기 위한 데이터를 메모리 셀 어레이로부터 리드하고,
    상기 내부 프로세싱 동작을 수행하고,
    상기 내부 프로세싱 동작이 완료된 데이터를 상기 메모리 셀 어레이에 라이트하는 메모리 장치.
  8. 제7항에 있어서,
    상기 PIM 블록은 데이터 출력부를 더 포함하고,
    상기 데이터 출력부는 상기 커맨드 제너레이터의 제어에 의해 상기 내부 프로세싱 동작이 완료된 데이터를 외부 또는 상기 메모리 셀 어레이 중 어느 하나에 전송하는 메모리 장치.
  9. 커맨드와 어드레스를 제공하는 메모리 컨트롤러; 및
    상기 메모리 컨트롤러로부터 상기 커맨드와 상기 어드레스를 제공받아 상기 메모리 컨트롤러와 데이터를 송수신하는 메모리 장치를 포함하고,
    상기 메모리 장치는,
    데이터를 저장하는 메모리 셀 어레이와,
    내부에 저장된 인스트럭션을 기초로 내부 프로세싱 동작을 수행하기 위한 커맨드를 포함하는 제1 메모리 셀 제어 신호를 생성하고, 상기 제1 메모리 셀 제어 신호에 기초하여 내부 프로세싱 동작을 수행하는 PIM(Processor In Memory) 블록을 포함하되,
    상기 PIM 블록은 상기 제1 메모리 셀 제어 신호에 기초하여 상기 내부 프로세싱 동작을 수행하기 위한 데이터를 상기 메모리 셀 어레이로부터 리드하거나, 상기 내부 프로세싱 동작이 완료된 데이터를 상기 메모리 셀 어레이에 라이트하는 메모리 시스템.
  10. 제9항에 있어서,
    상기 메모리 장치는 DRAM(Dynamic Random Access Memory)을 포함하는 메모리 시스템.
KR1020220011466A 2022-01-26 2022-01-26 메모리 장치 KR20230115012A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220011466A KR20230115012A (ko) 2022-01-26 2022-01-26 메모리 장치
US17/975,250 US20230236732A1 (en) 2022-01-26 2022-10-27 Memory device
CN202310086667.7A CN116504289A (zh) 2022-01-26 2023-01-18 存储器件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220011466A KR20230115012A (ko) 2022-01-26 2022-01-26 메모리 장치

Publications (1)

Publication Number Publication Date
KR20230115012A true KR20230115012A (ko) 2023-08-02

Family

ID=87314052

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220011466A KR20230115012A (ko) 2022-01-26 2022-01-26 메모리 장치

Country Status (3)

Country Link
US (1) US20230236732A1 (ko)
KR (1) KR20230115012A (ko)
CN (1) CN116504289A (ko)

Also Published As

Publication number Publication date
CN116504289A (zh) 2023-07-28
US20230236732A1 (en) 2023-07-27

Similar Documents

Publication Publication Date Title
US20230360693A1 (en) Method of performing internal processing operation of memory device
US10769066B2 (en) Nonvolatile memory device, data storage device including the same and operating method thereof
KR20220031793A (ko) 메모리 장치, 그것을 포함하는 메모리 시스템, 그것을 제어하는 제어기 및 그것의 동작 방법
US10545689B2 (en) Data storage device and operating method thereof
US11200113B2 (en) Auto-increment write count for nonvolatile memory
US20220121398A1 (en) Perfect row hammer tracking with multiple count increments
KR20210122942A (ko) 메모리 장치 및 그것의 테스트 방법
US20180239557A1 (en) Nonvolatile memory device, data storage device including the same, and operating method of data storage device
KR102555452B1 (ko) 반도체 메모리 장치, 이의 동작 방법 및 이를 포함하는 시스템
US20230376414A1 (en) Memory systems and controllers for generating a command address and methods of operating same
US20230305706A1 (en) Memory device, operation method of a memory device, and operation method of a memory controller
US20200192605A1 (en) Data storage device and operating method thereof
US20200176062A1 (en) Memory devices and methods of processing security data thereof
US11688453B2 (en) Memory device, memory system and operating method
CN116805867A (zh) 存储器件、存储器件和存储器控制器的操作方法
US10013180B1 (en) Operating methods of nonvolatile memory device and data storage device including the same
CN107301872B (zh) 半导体存储器装置的操作方法
US20230236732A1 (en) Memory device
US20230112776A1 (en) Operation method of memory module, operation method of memory controller, and operation method of memory system
EP4160419A1 (en) Operation method of memory module, operation method of memory controller, and operation method of memory system
KR20200034312A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20230145230A1 (en) Multiplexer
KR20200015260A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20240144988A1 (en) Memory device, memory system including memory device, and method of operating memory device
EP4250124A1 (en) Memory device, operation method of a memory device, and operation method of a memory controller