KR20200108768A - Memory Device performing calculation process and Operation Method thereof - Google Patents

Memory Device performing calculation process and Operation Method thereof Download PDF

Info

Publication number
KR20200108768A
KR20200108768A KR1020190151617A KR20190151617A KR20200108768A KR 20200108768 A KR20200108768 A KR 20200108768A KR 1020190151617 A KR1020190151617 A KR 1020190151617A KR 20190151617 A KR20190151617 A KR 20190151617A KR 20200108768 A KR20200108768 A KR 20200108768A
Authority
KR
South Korea
Prior art keywords
bank
data
memory
processing
memory device
Prior art date
Application number
KR1020190151617A
Other languages
Korean (ko)
Inventor
오성일
강신행
김남승
손교민
이석한
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US16/810,344 priority Critical patent/US11094371B2/en
Priority to CN202010165077.XA priority patent/CN111694514B/en
Publication of KR20200108768A publication Critical patent/KR20200108768A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • 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/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • 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/0608Saving storage space on 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/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Computing Systems (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Disclosed are a memory device for performing operation processing to prevent data collisions by providing an optimized data transfer path therein, and an operation method thereof. According to one aspect of the technical idea of the present disclosure, the memory device comprises: a memory bank including at least one bank group, wherein each bank group includes a plurality of banks; a PIM circuit including a first processing element disposed to correspond to the bank group; a processing element input/output (PEIO) gating circuit for controlling electrical connection between a bank local input/output line (IO) disposed for each of the plurality of banks and a bank group input/output line (IO) disposed for the bank group; and a control logic for performing a control operation to perform a memory operation on the memory bank or perform operation processing by the PIM circuit, wherein the PEIO gating circuit cuts off the electrical connection between the bank local IO and the bank group IO when the operation processing is performed by the first processing element.

Description

연산 처리를 수행하는 메모리 장치 및 메모리 장치의 동작방법{Memory Device performing calculation process and Operation Method thereof}TECHNICAL FIELD [0001] A memory device performing calculation process and an operation method of the memory device TECHNICAL FIELD

본 개시의 기술적 사상은 메모리 장치에 관한 것으로서, 상세하게는 연산 처리를 수행하는 메모리 장치 및 그 동작방법에 관한 것이다.The technical idea of the present disclosure relates to a memory device, and more particularly, to a memory device that performs arithmetic processing and an operating method thereof.

고성능 전자 시스템에 널리 사용되고 있는 반도체 메모리 장치(semiconductor memory device)는 그 용량 및 속도가 증가하고 있다. 메모리 장치의 일 예로서 DRAM(Dynamic Random Access Memory)은 휘발성 메모리(volatile-memory)로서, 커패시터에 저장되어 있는 전하(charge)에 의해 데이터를 판정하는 메모리이다.Semiconductor memory devices widely used in high-performance electronic systems are increasing in capacity and speed. As an example of a memory device, a DRAM (Dynamic Random Access Memory) is a volatile memory and is a memory that determines data based on a charge stored in a capacitor.

DRAM을 포함하는 메모리 장치는 다양한 용도로 이용될 수 있으며, 일 예로서 뉴럴 네트워크(neural network) 연산 등 다양한 종류의 연산 처리에 이용되는 데이터를 저장하거나 연산 처리 결과를 저장하기 위해 이용될 수 있다. 이 때, 방대한 양의 연산을 효율적으로 수행하기 위해 적어도 일부의 연산 동작이 메모리 장치 내의 PIM (Processor in Memory) 회로에서 수행되는 방안이 제안되고 있다.A memory device including a DRAM may be used for various purposes, and as an example, may be used to store data used for various types of operation processing, such as a neural network operation, or to store operation results. In this case, in order to efficiently perform a vast amount of operations, a scheme in which at least some of the operation operations are performed in a PIM (Processor in Memory) circuit in a memory device has been proposed.

본 발명의 기술적 사상이 해결하려는 과제는, 연산 처리를 수행하는 메모리 장치에서 최적화된 데이터 전달 경로를 제공함으로써 데이터의 충돌을 방지할 수 있는 연산 처리를 수행하는 메모리 장치 및 그 동작방법을 제공하는 데 있다.The problem to be solved by the technical idea of the present invention is to provide a memory device that performs calculation processing capable of preventing data collisions by providing an optimized data transfer path in a memory device that performs calculation processing, and an operating method thereof. have.

상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 메모리 장치는, 적어도 하나의 뱅크 그룹을 포함하고, 각각의 뱅크 그룹은 다수의 뱅크들을 포함하는 메모리 뱅크와, 상기 뱅크 그룹에 대응하여 배치되는 제1 프로세싱 소자를 포함하고, 상기 제1 프로세싱 소자는 호스트로부터 제공된 데이터 및 상기 뱅크 그룹으로부터 독출된 데이터 중 적어도 하나를 이용하여 연산 처리를 수행하는 PIM 회로와, 상기 뱅크 그룹의 상기 다수의 뱅크들 각각에 대해 배치되는 뱅크 로컬 입출력 라인(IO)과, 상기 뱅크 그룹에 대해 배치되는 뱅크 그룹 입출력 라인(IO) 사이의 전기적 연결을 제어하는 프로세싱 소자 입출력(PEIO) 게이팅 회로 및 상기 호스트로부터 수신된 커맨드/어드레스에 대한 디코딩 결과에 기반하여, 상기 메모리 뱅크에 대한 메모리 동작이 수행되거나 상기 PIM 회로에 의한 연산 처리가 수행되도록 제어 동작을 수행하는 제어 로직을 구비하고, 상기 제1 프로세싱 소자에 의해 연산 처리가 수행될 때, 상기 PEIO 게이팅 회로는 상기 뱅크 로컬 IO와 상기 뱅크 그룹 IO 사이의 전기적 연결을 차단하는 것을 특징으로 한다.In order to achieve the above object, a memory device according to an aspect of the inventive concept includes at least one bank group, each bank group including a memory bank including a plurality of banks, and the bank group And a first processing element disposed in correspondence with the first processing element, wherein the first processing element includes a PIM circuit that performs an operation process using at least one of data provided from a host and data read from the bank group, and the bank group A processing element input/output (PEIO) gating circuit for controlling electrical connection between a bank local input/output line (IO) disposed for each of the plurality of banks and a bank group input/output line (IO) disposed for the bank group, and the A control logic for performing a control operation such that a memory operation for the memory bank is performed or an operation processing by the PIM circuit is performed based on a result of decoding a command/address received from the host, and the first processing When arithmetic processing is performed by an element, the PEIO gating circuit is characterized in that it blocks an electrical connection between the bank local IO and the bank group IO.

한편, 본 개시의 기술적 사상의 다른 일측면에 따른 메모리 장치는, 뱅크 그룹을 포함하고, 상기 뱅크 그룹은 제1 및 제2 뱅크들을 포함하는 메모리 뱅크와, 상기 뱅크 그룹에 대응하여 배치되고, 외부의 호스트와 상기 뱅크 그룹 사이에서의 데이터 전달 경로를 포함하는 뱅크 그룹 입출력 라인(IO)과, 상기 제1 뱅크에 대응하여 배치되고, 상기 제1 뱅크로 제공되는 데이터 및 상기 제1 뱅크로부터 독출된 데이터의 전달 경로를 포함하는 제1 뱅크 로컬 입출력 라인(IO)과, 상기 뱅크 그룹 IO 및 상기 제1 뱅크 로컬 IO에 연결되고, 상기 호스트로부터 제공된 데이터 및 상기 제1 뱅크로부터 독출된 데이터 중 적어도 하나를 이용하여 연산 처리를 수행하는 제1 프로세싱 소자 및 상기 제1 프로세싱 소자에 의한 연산 처리가 수행되는 경우, 상기 호스트로부터의 데이터가 상기 메모리 뱅크로 제공됨이 없이 상기 제1 프로세싱 소자로 제공되도록 데이터 전달 경로를 제어하는 제1 프로세싱 소자 입출력(PEIO) 게이팅 회로를 구비하는 것을 특징으로 한다.Meanwhile, a memory device according to another aspect of the technical idea of the present disclosure includes a bank group, wherein the bank group is a memory bank including first and second banks, and is disposed corresponding to the bank group, and A bank group input/output line (IO) including a data transfer path between the host of the host and the bank group, and data provided to the first bank and read from the first bank, arranged corresponding to the first bank. At least one of a first bank local input/output line (IO) including a data transfer path, and connected to the bank group IO and the first bank local IO, and data provided from the host and data read from the first bank When the first processing element and the first processing element to perform an operation process are performed, data is transferred so that data from the host is provided to the first processing element without being provided to the memory bank. And a first processing element input/output (PEIO) gating circuit for controlling the path.

본 발명의 기술적 사상의 연산 처리를 수행하는 메모리 장치 및 그 동작방법에 따르면, 메모리 장치 내에서의 연산 처리를 호스트가 제어할 수 있으므로, 메모리 동작과 연산 처리 동작 사이의 충돌을 감소함으로써 메모리 동작이 과도하게 딜레이되는 문제를 방지할 수 있다.According to a memory device for performing arithmetic processing according to the technical idea of the present invention and an operation method thereof, since the host can control the arithmetic processing in the memory device, the memory operation is reduced by reducing the collision between the memory operation and the arithmetic processing operation. It can prevent the problem of excessive delay.

또한, 본 발명의 기술적 사상의 연산 처리를 수행하는 메모리 장치 및 그 동작방법에 따르면, 연산 처리에 이용되는 데이터의 전달 경로를 최적화할 수 있으므로 연산 처리에 이용되는 데이터들이 서로 충돌하는 것을 방지할 수 있는 효과가 있다.In addition, according to the memory device for performing computational processing according to the technical idea of the present invention and the operating method thereof, it is possible to optimize a transmission path of data used for computational processing, and thus data used for computational processing can be prevented from colliding with each other There is an effect.

도 1은 본 발명의 예시적인 실시예에 따른 메모리 장치를 포함하는 메모리 시스템을 나타내는 블록도이다.
도 2는 도 1의 메모리 장치의 일 구현 예를 나타내는 블록도이다.
도 3은 본 발명의 예시적인 실시예의 메모리 장치를 포함하는 데이터 처리 시스템을 나타내는 블록도이다.
도 4는 본 발명의 예시적인 실시예에 따른 메모리 시스템의 동작 예를 나타내는 개념도이다.
도 5는 메모리 장치에 구비되는 다양한 구성 요소들의 일 예를 나타내는 블록도이다.
도 6 및 도 7은 연산 처리에 관련하여 메모리 장치에 포함되는 구성들의 일 예를 나타내는 블록도이다.
도 8은 본 발명의 예시적인 실시예의 메모리 장치가 HBM을 포함하는 예를 나타내는 블록도이다.
도 9는 본 발명의 예시적인 실시예에 따른 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 10a,b,c는 본 발명의 일 실시예에 따른 메모리 장치에서 정의되는 연산 커맨드들의 일 예를 나타내는 도면이다.
도 11은 본 발명의 실시예들에 따른 메모리 장치에서 일련하게 수행되는 연산 처리의 예를 나타내는 파형도이다.
도 12a,b 내지 도 14a,b는 본 발명의 다양한 실시예들에 따른 메모리 장치의 구현 예들을 나타내는 도면이다.
도 15는 본 발명의 변형 가능한 실시예에 따른 메모리 장치의 일 구현 예를 나타내는 도면이다.
도 16은 본 발명의 실시예에 따른 데이터 처리 시스템을 포함하는 서버 시스템을 나타내는 블록도이다.
1 is a block diagram illustrating a memory system including a memory device according to an exemplary embodiment of the present invention.
FIG. 2 is a block diagram illustrating an example implementation of the memory device of FIG. 1.
3 is a block diagram showing a data processing system including a memory device according to an exemplary embodiment of the present invention.
4 is a conceptual diagram illustrating an example of an operation of a memory system according to an exemplary embodiment of the present invention.
5 is a block diagram illustrating an example of various components included in a memory device.
6 and 7 are block diagrams illustrating examples of configurations included in a memory device in relation to operation processing.
8 is a block diagram illustrating an example in which a memory device according to an exemplary embodiment of the present invention includes an HBM.
9 is a flowchart showing a method of operating a memory device according to an exemplary embodiment of the present invention.
10A, B, and C are diagrams illustrating examples of operation commands defined in a memory device according to an embodiment of the present invention.
11 is a waveform diagram illustrating an example of operation processing sequentially performed in a memory device according to embodiments of the present invention.
12A,B through 14A,B are diagrams illustrating implementation examples of a memory device according to various embodiments of the present disclosure.
15 is a diagram illustrating an example implementation of a memory device according to a deformable embodiment of the present invention.
16 is a block diagram showing a server system including a data processing system according to an embodiment of the present invention.

이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 예시적인 실시예에 따른 메모리 장치를 포함하는 메모리 시스템을 나타내는 블록도이다. 1 is a block diagram illustrating a memory system including a memory device according to an exemplary embodiment of the present invention.

도 1을 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(100) 및 메모리 장치(200)를 포함할 수 있다. 메모리 컨트롤러(100)는 메모리 인터페이스(110)를 포함할 수 있으며, 메모리 인터페이스(110)를 통해 각종 신호를 메모리 장치(200)로 제공하여 기록 및 독출 등의 메모리 동작을 제어할 수 있다. 예컨대, 메모리 컨트롤러(100)는 커맨드(CMD) 및 어드레스(ADD)를 메모리 장치(200)로 제공하여 메모리 장치(200)의 데이터(DATA)를 억세스할 수 있다. Referring to FIG. 1, the memory system 10 may include a memory controller 100 and a memory device 200. The memory controller 100 may include a memory interface 110, and may control memory operations such as writing and reading by providing various signals to the memory device 200 through the memory interface 110. For example, the memory controller 100 may provide a command CMD and an address ADD to the memory device 200 to access the data DATA of the memory device 200.

메모리 컨트롤러(100)는 호스트(HOST)로부터의 요청에 따라 메모리 장치(200)를 억세스할 수 있으며, 메모리 인터페이스(110)는 메모리 장치(200)와 인터페이스를 제공할 수 있다. 메모리 컨트롤러(100)는 다양한 프로토콜을 사용하여 호스트와 통신할 수 있으며, 예컨대 메모리 컨트롤러(100)는 PCI-E(Peripheral Component Interconnect - Express), ATA(Advanced Technology Attachment), SATA(Serial ATA), PATA(Parallel ATA) 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 호스트와 통신할 수 있다. 이외에도, USB(Universal Serial Bus), MMC(Multi-Media Card), ESDI(Enhanced Small Disk Interface) 또는 IDE(Integrated Drive Electronics) 등과 같은 다른 다양한 인터페이스 프로토콜들이 호스트와 메모리 컨트롤러(100) 사이의 프로토콜에 적용될 수 있다. The memory controller 100 may access the memory device 200 according to a request from the host HOST, and the memory interface 110 may provide an interface with the memory device 200. The memory controller 100 may communicate with a host using various protocols, for example, the memory controller 100 may be configured with PCI-E (Peripheral Component Interconnect-Express), ATA (Advanced Technology Attachment), SATA (Serial ATA), and PATA. It is possible to communicate with the host using an interface protocol such as (Parallel ATA) or serial attached SCSI (SAS). In addition, various other interface protocols such as USB (Universal Serial Bus), MMC (Multi-Media Card), ESDI (Enhanced Small Disk Interface), or IDE (Integrated Drive Electronics) are applied to the protocol between the host and the memory controller 100. I can.

예시적인 실시예들에 따라, 메모리 컨트롤러(100)는 호스트(HOST)에 상응하거나, 또는 메모리 컨트롤러(100)는 호스트(HOST) 내부에 구비되는 구성에 해당할 수도 있을 것이다. 호스트(HOST)와 메모리 장치(200)는 데이터 처리 시스템을 구성할 수 있으며, 이에 따라 메모리 시스템(10)은 데이터 처리 시스템에 상응하거나, 또는 데이터 처리 시스템에 포함되는 구성으로 정의될 수 있을 것이다.According to exemplary embodiments, the memory controller 100 may correspond to a host, or the memory controller 100 may correspond to a configuration provided inside the host HOST. The host and the memory device 200 may configure a data processing system, and accordingly, the memory system 10 may correspond to a data processing system or be defined as a configuration included in the data processing system.

메모리 장치(200)는 메모리 뱅크(210), PIM (Processor in Memory) 회로(220), 프로세싱 소자 입출력 게이팅 회로(이하, PEIO 게이팅 회로로 지칭됨(230)) 및 제어 로직(240)을 포함할 수 있으며, 제어 로직(240)은 커맨드/어드레스 디코더(241)를 포함할 수 있다. 또한, 메모리 뱅크(210)는 다수 개의 뱅크들(BANK 0 ~ BANK N-1)을 포함할 수 있으며, 뱅크들(BANK 0 ~ BANK N-1) 각각은 다수의 메모리 셀들을 포함하는 셀 어레이를 구비할 수 있다. 뱅크는 다양하게 정의될 수 있으며, 일 예로서 메모리 셀들을 포함하는 구성으로 정의될 수 있고, 또는 메모리 셀들과 함께 하나 이상의 주변 회로들을 포함하는 구성으로 정의될 수도 있을 것이다. The memory device 200 includes a memory bank 210, a processor in memory (PIM) circuit 220, a processing element input/output gating circuit (hereinafter referred to as a PEIO gating circuit 230), and a control logic 240. In addition, the control logic 240 may include a command/address decoder 241. In addition, the memory bank 210 may include a plurality of banks BANK 0 to BANK N-1, and each of the banks BANK 0 to BANK N-1 comprises a cell array including a plurality of memory cells. Can be equipped. The bank may be defined in various ways, and as an example, may be defined as a configuration including memory cells, or may be defined as a configuration including one or more peripheral circuits together with the memory cells.

한편, 두 개 이상의 뱅크들이 하나의 뱅크 그룹으로 분류될 수 있고, 동일한 뱅크 그룹에 포함되는 뱅크들은 공통한 뱅크 그룹 입출력 라인(이하, 뱅크 그룹 IO로 지칭됨)을 통해 메모리 컨트롤러(100)와 데이터(DATA)를 송수신할 수 있다. 또한, 셀 어레이를 억세스하기 위한 로컬 경로로서, 뱅크들(BANK 0 ~ BANK N-1) 각각에 대응하여 뱅크 로컬 입출력 라인(이하, 뱅크 로컬 IO로 지칭됨)이 배치될 수 있다. Meanwhile, two or more banks may be classified into one bank group, and the banks included in the same bank group are provided with the memory controller 100 and data through a common bank group input/output line (hereinafter referred to as bank group IO). (DATA) can be transmitted and received. In addition, as a local path for accessing the cell array, a bank local input/output line (hereinafter referred to as a bank local IO) may be disposed corresponding to each of the banks BANK 0 to BANK N-1.

메모리 컨트롤러(100)로부터의 어드레스(ADD)에 의해 데이터 억세스가 수행될 뱅크가 선택될 수 있으며, 또한 뱅크 내의 메모리 셀들이 선택될 수 있다. 또한, 커맨드/어드레스 디코더(241)는 메모리 컨트롤러(100)로부터의 커맨드/어드레스(CMD/ADD)에 대한 디코딩 동작을 수행할 수 있으며, 제어 로직(240)은 디코딩 결과에 따라 메모리 동작이 수행되도록 메모리 장치(200)에 대한 내부 제어 동작을 수행할 수 있다.A bank in which data access is to be performed may be selected by an address ADD from the memory controller 100, and memory cells in the bank may be selected. In addition, the command/address decoder 241 may perform a decoding operation on the command/address (CMD/ADD) from the memory controller 100, and the control logic 240 performs a memory operation according to the decoding result. An internal control operation for the memory device 200 may be performed.

한편, 메모리 장치(200)는 DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR (Low Power Double Data Rate) SDRAM, GDDR (Graphics Double Data Rate) SDRAM, RDRAM (Rambus Dynamic Random Access Memory) 등과 같은 동적 랜덤 억세스 메모리(Dynamic Random Access Memory, DRAM)일 수 있다. 그러나, 본 발명의 실시예들은 이에 국한될 필요가 없으며, 일 예로서 메모리 장치(200A)는 플래시(flash) 메모리, MRAM(Magnetic RAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM) 및 ReRAM(Resistive RAM) 등의 불휘발성 메모리로 구현되어도 무방하다.Meanwhile, the memory device 200 may include DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR (Low Power Double Data Rate) SDRAM, GDDR (Graphics Double Data Rate) SDRAM, RDRAM (Rambus Dynamic Random Access Memory), etc. It may be a dynamic random access memory (DRAM). However, embodiments of the present invention need not be limited thereto, and as an example, the memory device 200A includes flash memory, magnetic RAM (MRAM), ferroelectric RAM (FeRAM), phase change RAM (PRAM), and ReRAM. It can be implemented with nonvolatile memory such as (Resistive RAM).

또한, 메모리 장치(200)는 하나의 반도체 칩에 해당하거나, 또는 독립적인 인터페이스를 갖는 다수의 채널들을 포함하는 메모리 장치에서 하나의 채널에 상응하는 구성일 수도 있다. 또는, 메모리 장치(200)는 메모리 모듈에 상응하는 구성일 수 있으며, 또는 메모리 모듈이 다수의 메모리 칩들을 포함하고 도 1의 메모리 장치(200)는 모듈 보드 상에 장착되는 하나의 메모리 칩에 해당할 수도 있다.Also, the memory device 200 may correspond to one semiconductor chip, or may have a configuration corresponding to one channel in a memory device including a plurality of channels having independent interfaces. Alternatively, the memory device 200 may have a configuration corresponding to a memory module, or the memory module includes a plurality of memory chips, and the memory device 200 of FIG. 1 corresponds to one memory chip mounted on a module board. You may.

이하에서는, 본 발명의 예시적인 실시예들에 따라, 메모리 장치(200)의 PIM 회로(220)가 연산 처리를 수행하는 일 예가 설명된다. 다양한 종류의 연산 처리 동작이 메모리 장치(200) 내에서 수행될 수 있으며, 일 예로서 인공 지능과 관련하여 뉴럴 네트워크 연산들 중 적어도 일부가 메모리 장치(200) 내에서 수행될 수 있다. 예컨대, 호스트(HOST)는 뉴럴 네트워크 연산들 중 적어도 일부가 메모리 장치(200)에 의해 수행될 수 있도록, 메모리 컨트롤러(100)를 통해 메모리 장치(200)를 제어할 수 있을 것이다. 또한, 이하의 실시예에서는 메모리 컨트롤러(100)가 메모리 장치(200)를 제어하는 것으로 설명될 것이나, 본 발명의 실시예들은 이에 국한될 필요가 없다. 예컨대, 메모리 컨트롤러(100)는 호스트(HOST) 내에 구비되는 구성에 해당하고, 호스트(HOST)가 메모리 장치(200)를 제어하는 것으로 설명되어도 무방할 것이다.Hereinafter, an example in which the PIM circuit 220 of the memory device 200 performs arithmetic processing according to exemplary embodiments of the present invention will be described. Various types of arithmetic processing operations may be performed in the memory device 200, and as an example, at least some of neural network operations related to artificial intelligence may be performed in the memory device 200. For example, the host HOST may control the memory device 200 through the memory controller 100 so that at least some of the neural network operations may be performed by the memory device 200. Further, in the following embodiments, the memory controller 100 will be described as controlling the memory device 200, but embodiments of the present invention need not be limited thereto. For example, the memory controller 100 corresponds to a configuration included in the host HOST, and it may be described that the host HOST controls the memory device 200.

메모리 컨트롤러(100)는 각종 연산 처리를 수행하기 위하여 하나 이상의 명령어(Inst)들을 메모리 장치(200)로 전송할 수 있다. 일 예로서, 메모리 장치(200)는 명령어 로딩 모드에서 다수의 명령어(Inst)들을 수신하고 이를 저장할 수 있다. 도 1에서는 명령어(Inst)들 및 데이터(DATA)의 전송이 별개로 도시되었으나, 본 발명의 실시예에서 명령어(Inst)들 및 데이터(DATA)는 다양한 형태로 송수신이 가능하다. 일 예로, 명령어(Inst)들은 데이터(DATA)와 무관한 별도의 라인을 통해 전송될 수도 있으며, 또는 데이터(DATA)를 전송하는 라인(데이터 라인)을 통해 전송될 수도 있을 것이다. The memory controller 100 may transmit one or more instructions Inst to the memory device 200 to perform various operation processing. As an example, the memory device 200 may receive and store a plurality of instructions Inst in the instruction loading mode. In FIG. 1, transmission of commands Inst and data DATA is shown separately, but in an embodiment of the present invention, commands Inst and data DATA can be transmitted and received in various forms. As an example, the commands Inst may be transmitted through a separate line irrelevant to the data DATA, or may be transmitted through a line (data line) transmitting data DATA.

일 구현 예로서, PIM 회로(220)는 하나 이상의 프로세싱 소자들(221)과, 명령어(Inst)들을 저장하기 위한 명령어 메모리(미도시)를 포함할 수 있으며, 이후 메모리 컨트롤러(100)로부터 연산 처리를 지시하는 커맨드/어드레스(CMD/ADD)가 수신될 때, 명령어 메모리로부터 독출된 명령어(Inst)에 대응하는 연산이 수행될 수 있다. 메모리 컨트롤러(100)가 커맨드/어드레스(CMD/ADD)를 제공함으로써 메모리 장치(200) 내에서 연산 처리가 수행될 수 있으므로, 메모리 컨트롤러(100)는 노멀 메모리 동작과 연산 처리 동작의 충돌이 발생되지 않도록 메모리 장치(200)를 제어할 수 있다. As an implementation example, the PIM circuit 220 may include one or more processing elements 221 and an instruction memory (not shown) for storing instructions (Inst), and then processing the operation from the memory controller 100 When the command/address CMD/ADD indicative of is received, an operation corresponding to the instruction Inst read from the instruction memory may be performed. Since the memory controller 100 provides a command/address (CMD/ADD) so that operation processing can be performed in the memory device 200, the memory controller 100 does not cause a collision between the normal memory operation and the operation processing operation. It is possible to control the memory device 200 to prevent it.

한편, 연산 처리를 지시하기 위한 커맨드/어드레스(CMD/ADD)는 다양하게 정의될 수 있다. 일 예로서, 데이터 기록/독출 등의 메모리 동작에 관련된 커맨드와 별개로 연산 커맨드(CMD_PE)가 정의될 수 있다. 메모리 장치(200)는 커맨드/어드레스(CMD/ADD)에 대한 디코딩 동작에 기반하여 메모리 동작 또는 연산 처리 동작을 선택적으로 수행할 수 있으며, 또한 어드레스(ADD)에 기반하여 연산 처리에 이용될 데이터의 위치나, 연산 결과가 저장될 위치 등이 판단될 수 있다. Meanwhile, a command/address CMD/ADD for instructing an operation process may be variously defined. As an example, an operation command CMD_PE may be defined separately from a command related to a memory operation such as data writing/reading. The memory device 200 may selectively perform a memory operation or an operation processing operation based on a decoding operation for a command/address (CMD/ADD), and also, based on the address ADD, A location or a location in which an operation result is to be stored may be determined.

한편, 프로세싱 소자들(221)은 다양한 개수의 프로세싱 소자들을 포함할 수 있다. 일 예로서, 각각의 프로세싱 소자가 하나의 뱅크에 대응하여 배치될 수도 있으며, 또는 각각의 프로세싱 소자가 두 개 이상의 뱅크들에 대응하여 배치될 수도 있을 것이다. 프로세싱 소자들(221) 각각은 메모리 컨트롤러(100)로부터 제공되는 데이터(DATA), 메모리 뱅크(210)로부터 독출된 데이터(DATA), 프로세싱 소자 내에 구비되는 레지스터(미도시)에 저장된 정보 중 적어도 하나를 이용하여 연산 처리를 수행할 수 있다.Meanwhile, the processing elements 221 may include a variety of processing elements. As an example, each processing element may be disposed corresponding to one bank, or each processing element may be disposed corresponding to two or more banks. Each of the processing elements 221 is at least one of data (DATA) provided from the memory controller 100, data (DATA) read from the memory bank 210, and information stored in a register (not shown) provided in the processing element. You can perform arithmetic processing using.

PEIO 게이팅 회로(230)는 데이터 등의 정보의 전달 경로를 제어하는 기능을 수행할 수 있다. 일 예로서, PEIO 게이팅 회로(230)는 뱅크들(BANK 0 ~ BANK N-1) 각각에 대응하여 배치될 수 있으며, 뱅크들 각각에 대응하여 다수의 데이터 라인들이 배치되는 경우에 PEIO 게이팅 회로(230)는 다수의 스위치들(미도시)을 포함하고, 스위치들의 스위칭 상태에 따라 데이터의 전달 경로가 제어될 수 있다. 메모리 장치(200)의 메모리 동작 시에는, PEIO 게이팅 회로(230)에 의하여 메모리 컨트롤러(100)와 뱅크들(BANK 0 ~ BANK N-1) 사이에서 데이터(DATA)가 송수신될 수 있다. 반면에, 메모리 장치(200)의 연산 처리시에는, PEIO 게이팅 회로(230)에 의하여 메모리 컨트롤러(100)와 프로세싱 소자들(221) 사이에서 데이터(DATA)가 송수신될 수 있고, 또한 뱅크들(BANK 0 ~ BANK N-1)과 프로세싱 소자들(221) 사이에서 데이터(DATA)가 송수신될 수 있다.The PEIO gating circuit 230 may perform a function of controlling a transmission path of information such as data. As an example, the PEIO gating circuit 230 may be disposed corresponding to each of the banks BANK 0 to BANK N-1, and when a plurality of data lines are disposed corresponding to each of the banks, the PEIO gating circuit ( 230) includes a plurality of switches (not shown), and a data transmission path may be controlled according to switching states of the switches. During the memory operation of the memory device 200, data DATA may be transmitted and received between the memory controller 100 and the banks BANK 0 to BANK N-1 by the PEIO gating circuit 230. On the other hand, during operation processing of the memory device 200, data DATA may be transmitted and received between the memory controller 100 and the processing elements 221 by the PEIO gating circuit 230, and banks ( Data DATA may be transmitted/received between BANK 0 to BANK N-1) and the processing elements 221.

일 구현 예로서, PEIO 게이팅 회로(230)는 뱅크들(BANK 0 ~ BANK N-1) 각각에 대응하는 뱅크 로컬 IO와 뱅크 그룹에 대응하는 뱅크 그룹 IO 사이에 배치될 수 있다. PEIO 게이팅 회로(230)의 스위칭 동작에 기반하여, 뱅크 로컬 IO와 뱅크 그룹 IO가 전기적으로 연결됨에 따라, 뱅크들(BANK 0 ~ BANK N-1)에 대한 데이터 기록 및 데이터 독출 등의 메모리 동작이 수행될 수 있다.As an implementation example, the PEIO gating circuit 230 may be disposed between the bank local IO corresponding to each of the banks BANK 0 to BANK N-1 and the bank group IO corresponding to the bank group. Based on the switching operation of the PEIO gating circuit 230, as the bank local IO and the bank group IO are electrically connected, memory operations such as data writing and data reading for the banks (BANK 0 to BANK N-1) are performed. Can be done.

한편, 프로세싱 소자들(221)의 연산 처리 동작과 관련하여, 어느 하나의 프로세싱 소자(예컨대, 제1 뱅크(BANK0))에 대응하는 제1 프로세싱 소자)를 참조하여 설명하면 다음과 같다.Meanwhile, the operation of the processing elements 221 will be described with reference to any one processing element (eg, a first processing element corresponding to the first bank BANK0).

제1 프로세싱 소자는 메모리 컨트롤러(100)로부터의 데이터(DATA)를 이용한 연산 처리를 수행할 수 있으며, 이 경우 뱅크 그룹 IO 를 통해 전달되는 데이터(DATA)는 제1 뱅크(BANK0)에 연결된 뱅크 로컬 IO 로 제공될 필요가 없다. 또한, 제1 프로세싱 소자는 제1 뱅크(BANK0)로부터 독출된 데이터(DATA)를 이용한 연산 처리를 수행할 수 있고, 이 경우 데이터(DATA)는 뱅크 그룹 IO 로 제공될 필요가 없다. 또한, 제1 프로세싱 소자는 메모리 컨트롤러(100)로부터의 데이터(DATA)와 제1 뱅크(BANK0)로부터 독출된 데이터(DATA)를 함께 이용한 연산 처리를 수행할 수 있고, 이 경우 뱅크 로컬 IO 와 뱅크 그룹 IO 는 전기적으로 분리될 필요가 있다. 이에 따라, 연산 처리 동작에서 PEIO 게이팅 회로(230)의 스위칭 동작에 의해 뱅크 그룹 IO 와 뱅크 로컬 IO 사이의 전기적 연결이 차단된 상태에서 연산 처리가 수행될 수 있다. The first processing element may perform operation processing using data DATA from the memory controller 100, and in this case, the data DATA transmitted through the bank group IO is a bank local connected to the first bank BANK0. It doesn't have to be provided as an IO. Also, the first processing element may perform an operation process using the data DATA read from the first bank BANK0, and in this case, the data DATA need not be provided to the bank group IO. In addition, the first processing element may perform an operation process using data DATA from the memory controller 100 and data DATA read from the first bank BANK0 together. In this case, the bank local IO and the bank Group IO needs to be separated electrically. Accordingly, in the operation processing operation, the operation processing may be performed in a state in which the electrical connection between the bank group IO and the bank local IO is cut off by the switching operation of the PEIO gating circuit 230.

상기와 같은 본 발명의 실시예에 따르면, 뱅크 그룹 IO 와 뱅크 로컬 IO 구조를 갖는 메모리 장치(200)에서, 메모리 동작과 연산 처리를 위한 데이터(DATA)의 전달 경로가 최적으로 설정될 수 있다. 또한, PIM 회로(220)가 다양한 데이터(DATA)들을 이용하여 연산 처리를 수행함에 있어서, 상기한 다양한 데이터(DATA)들의 충돌을 방지할 수 있다. 또한 본 발명의 실시예에 따르면, 메모리 장치(200)가 자체적으로 연산 처리를 수행하는 것이 아니라 메모리 컨트롤러(100)로부터의 요청에 의해 연산 처리가 수행되므로, 메모리 컨트롤러(100) 또는 이를 포함하는 호스트(HOST)가 메모리 장치(200)의 연산 처리 타이밍을 제어할 수 있고, 메모리 동작과 연산 처리 동작이 서로 충돌함에 따른 성능 저하가 방지될 수 있다.According to the embodiment of the present invention as described above, in the memory device 200 having the bank group IO and the bank local IO structure, a transfer path of data DATA for memory operation and operation processing may be optimally set. In addition, when the PIM circuit 220 performs arithmetic processing using various data DATA, collisions between the various data DATA may be prevented. In addition, according to an embodiment of the present invention, since the memory device 200 does not perform an operation process on its own, but performs an operation process in response to a request from the memory controller 100, the memory controller 100 or a host including the same (HOST) may control the operation processing timing of the memory device 200, and performance degradation due to collision between the memory operation and the operation processing operation may be prevented.

한편, 도 1에는 도시되지 않았으나 본 발명의 실시예들에 따른 PIM 회로(220)는 다양하게 정의될 수 있으며, 이에 따라 PIM 회로(220)는 다양한 구성 요소들을 포함할 수 있다. 일 예로서, PIM 회로(220)는 전술한 프로세싱 소자들(221)과 함께, 연산 처리에 관련된 다른 다양한 구성 요소들을 포함하는 것으로 정의될 수 있다. 예컨대, 연산 처리의 전반적인 동작을 제어하는 제어기, 명령어(Inst)들을 저장하는 명령어 메모리(또는, 명령어 큐), 명령어 디코딩 등 다양한 구성 요소들이 PIM 회로(220)에 구비될 수 있다.Meanwhile, although not shown in FIG. 1, the PIM circuit 220 according to embodiments of the present invention may be variously defined, and accordingly, the PIM circuit 220 may include various components. As an example, the PIM circuit 220 may be defined as including the above-described processing elements 221 and various other components related to operation processing. For example, various components such as a controller that controls the overall operation of arithmetic processing, an instruction memory (or instruction queue) that stores instructions Inst, and instruction decoding may be provided in the PIM circuit 220.

한편, 프로세싱 소자들(221)로 전달되는 피연산자(operand)들은 데이터(DATA), 가중치 정보, 상수 등 다양한 종류의 정보들을 포함할 수 있으며, 이하의 실시예들에서 상기 용어들은 혼용될 수 있을 것이나, 본 발명의 실시예들은 상기와 같은 용어들에 한정될 필요는 없을 것이다.Meanwhile, operands transmitted to the processing elements 221 may include various types of information such as data, weight information, and constants, and the terms may be used interchangeably in the following embodiments. In this case, the embodiments of the present invention need not be limited to the above terms.

도 2는 도 1의 메모리 장치(200)의 일 구현 예를 나타내는 블록도이다. 도 2의 메모리 장치(200)의 구성 및 동작을 설명함에 있어서, 제1 뱅크(BANK 0) 및 제2 뱅크(BANK 1)를 예로 들어 설명한다. 한편, 도 2에서는 제1 내지 제4 뱅크들(BANK 0 ~ BANK 3)이 하나의 뱅크 그룹(BG)으로 정의되고, 이에 따라 제1 내지 제4 뱅크들(BANK 0 ~ BANK 3)이 뱅크 그룹 IO(BGIO)를 공유하는 예가 도시된다. 뱅크 그룹 IO(BGIO)는 호스트와 뱅크 그룹(BG) 사이에서 데이터를 양방향으로 전달할 수 있다.FIG. 2 is a block diagram illustrating an example implementation of the memory device 200 of FIG. 1. In describing the configuration and operation of the memory device 200 of FIG. 2, the first bank BANK 0 and the second bank BANK 1 will be described as examples. Meanwhile, in FIG. 2, the first to fourth banks BANK 0 to BANK 3 are defined as one bank group BG, and accordingly, the first to fourth banks BANK 0 to BANK 3 are a bank group. An example of sharing IO (BGIO) is shown. The bank group IO (BGIO) can transfer data in both directions between the host and the bank group BG.

도 1 및 도 2를 참조하면, 메모리 장치(200)는 메모리 동작에 관련된 다양한 구성들을 더 포함할 수 있고, 일 예로서 제1 뱅크(BANK 0)에 대응하여 센스 앰프(251), 기록 드라이버(252) 및 뱅크 그룹 입출력 게이팅 회로(이하, BGIO 게이팅 회로로 지칭됨(253))를 포함할 수 있다. 또한, 센스 앰프(251) 및 기록 드라이버(252)는 뱅크 로컬 IO (BLIO) 상에 배치될 수 있고, BGIO 게이팅 회로(253)는 뱅크 로컬 IO (BLIO) 의 데이터 전달 방향을 선택하기 위해 배치될 수 있다. 도 2에서는 BGIO 게이팅 회로(253)가 기록 드라이버(252)를 통해 데이터(DATA)가 전달되는 경로에 배치되는 예가 도시되었으나, 본 발명의 실시예는 이에 국한될 필요가 없다. 일 예로서, BGIO 게이팅 회로(253)는 센스 앰프(251)를 통해 데이터(DATA)가 출력되는 경로에 배치되도록 메모리 장치(200)가 구현될 수도 있을 것이다.Referring to FIGS. 1 and 2, the memory device 200 may further include various configurations related to a memory operation. As an example, a sense amplifier 251 and a write driver corresponding to the first bank (BANK 0) 252) and a bank group input/output gating circuit (hereinafter referred to as a BGIO gating circuit 253). In addition, the sense amplifier 251 and the write driver 252 may be disposed on the bank local IO (BLIO), and the BGIO gating circuit 253 may be disposed to select the data transfer direction of the bank local IO (BLIO). I can. In FIG. 2, an example in which the BGIO gating circuit 253 is disposed on a path through which data DATA is transmitted through the write driver 252 is illustrated, but the embodiment of the present invention need not be limited thereto. As an example, the memory device 200 may be implemented such that the BGIO gating circuit 253 is disposed in a path through which the data DATA is output through the sense amplifier 251.

한편, PEIO 게이팅 회로(230)는 제1 뱅크(BANK 0)에 대응하여 배치되는 제1 PEIO 게이팅 회로(231)와 제2 뱅크(BANK 1)에 대응하여 배치되는 제2 PEIO 게이팅 회로(232)를 포함할 수 있다. 제1 및 제2 PEIO 게이팅 회로들(231, 232)은 연산 처리 동작에서 데이터(DATA)의 이동 경로를 제어하기 위해 배치될 수 있다. Meanwhile, the PEIO gating circuit 230 includes a first PEIO gating circuit 231 disposed corresponding to the first bank (BANK 0) and a second PEIO gating circuit 232 disposed corresponding to the second bank (BANK 1). It may include. The first and second PEIO gating circuits 231 and 232 may be disposed to control a moving path of the data DATA in an operation processing operation.

메모리 동작에서, 제1 PEIO 게이팅 회로(231)는 뱅크 로컬 IO (BLIO)와 뱅크 그룹 IO(BGIO)을 전기적으로 연결하고, 이에 따라 제1 뱅크(BANK 0)로부터의 데이터(DATA)가 뱅크 그룹 IO(BGIO)로 제공되거나, 또는 메모리 컨트롤러(100)로부터의 데이터(DATA)가 BGIO 게이팅 회로(253)를 통해 제1 뱅크(BANK 0)로 제공될 수 있다. 반면에, 연산 처리 동작에서 제1 PEIO 게이팅 회로(231)는 뱅크 로컬 IO (BLIO)와 뱅크 그룹 IO(BGIO)을 전기적으로 차단하고, 이에 따라 메모리 컨트롤러(100)로부터의 데이터(DATA)가 뱅크 로컬 IO (BLIO)로 제공됨이 없이 제1 프로세싱 소자(PE0)로 제공될 수 있다. 또한, 제1 뱅크(BANK 0)로부터의 데이터(DATA)가 뱅크 그룹 IO(BGIO)로 제공됨이 없이 제1 프로세싱 소자(PE0)로 제공될 수 있다.In the memory operation, the first PEIO gating circuit 231 electrically connects the bank local IO (BLIO) and the bank group IO (BGIO), and accordingly, the data DATA from the first bank BANK 0 is a bank group. The IO (BGIO) may be provided, or data DATA from the memory controller 100 may be provided to the first bank BANK 0 through the BGIO gating circuit 253. On the other hand, in the operation processing operation, the first PEIO gating circuit 231 electrically cuts off the bank local IO (BLIO) and the bank group IO (BGIO), and accordingly, the data DATA from the memory controller 100 is It may be provided as the first processing element PE0 without being provided as a local IO (BLIO). In addition, data DATA from the first bank BANK 0 may be provided to the first processing element PE0 without being provided to the bank group IO (BGIO).

한편, 도 2에 도시된 바와 같이 제1 프로세싱 소자(PE0)는 적어도 두 개의 뱅크들에 대응하여 배치될 수 있으며, 일 예로서 제1 프로세싱 소자(PE0)는 제2 뱅크(BANK 1)에 연결될 수 있다. 제1 프로세싱 소자(PE0)가 제1 뱅크(BANK 0) 및 제2 뱅크(BANK 1)로부터의 데이터(DATA)를 이용하여 연산 처리를 수행하는 경우, 제2 뱅크(BANK 1)에 대응하여 배치되는 제2 PEIO 게이팅 회로(232)는 뱅크 그룹 IO(BGIO)와 제2 뱅크(BANK 1)에 대응하는 뱅크 로컬 IO (BLIO)의 전기적 연결을 차단할 수 있다. Meanwhile, as shown in FIG. 2, the first processing element PE0 may be disposed corresponding to at least two banks, and as an example, the first processing element PE0 is connected to the second bank BANK 1. I can. When the first processing element PE0 performs arithmetic processing using the data DATA from the first bank BANK 0 and the second bank BANK 1, it is arranged corresponding to the second bank BANK 1 The second PEIO gating circuit 232 may cut off electrical connection between the bank group IO (BGIO) and the bank local IO (BLIO) corresponding to the second bank (BANK 1).

또한, 예시적인 실시예들에서, 제1 프로세싱 소자(PE0)가 다수의 뱅크들에 공유되는 경우, 어느 하나의 뱅크의 데이터(DATA)를 이용한 연산 처리 결과는 다른 뱅크에 저장될 수도 있을 것이다. 일 예로서, 제1 뱅크(BANK 0)로부터 독출된 데이터(DATA)가 피연산자로서 제1 프로세싱 소자(PE0)로 제공되고, 제1 프로세싱 소자(PE0)로부터의 연산 결과는 제2 뱅크(BANK 1)에 저장될 수 있을 것이다.In addition, in example embodiments, when the first processing element PE0 is shared among a plurality of banks, the result of operation processing using data DATA of any one bank may be stored in another bank. As an example, data DATA read from the first bank BANK 0 is provided as an operand to the first processing element PE0, and the operation result from the first processing element PE0 is the second bank BANK 1 ).

도 3은 본 발명의 예시적인 실시예의 메모리 장치를 포함하는 데이터 처리 시스템을 나타내는 블록도이다. 도 3에 도시된 바와 같이, 데이터 처리 시스템(300)은 어플리케이션 프로세서(Application Processor, 310)와 메모리 장치(320)를 포함할 수 있으며, 어플리케이션 프로세서(310)는 메모리 장치(320)와 통신하는 메모리 컨트롤 모듈(311)을 포함할 수 있다. 일 예로서, 메모리 컨트롤 모듈(311)과 메모리 장치(320)가 메모리 시스템을 구성할 수 있다. 어플리케이션 프로세서(310)는 도 1에서의 호스트의 기능을 수행할 수 있다.3 is a block diagram showing a data processing system including a memory device according to an exemplary embodiment of the present invention. As shown in FIG. 3, the data processing system 300 may include an application processor 310 and a memory device 320, and the application processor 310 is a memory communicating with the memory device 320. It may include a control module 311. As an example, the memory control module 311 and the memory device 320 may constitute a memory system. The application processor 310 may perform a host function in FIG. 1.

어플리케이션 프로세서(310)는 시스템 버스(미도시)를 포함하는 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 시스템 버스의 표준 규격으로서, ARM(Advanced RISC Machine) 사의 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜이 적용될 수 있다. AMBA 프로토콜의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), AXI4, ACE(AXI Coherency Extensions) 등이 포함될 수 있다. 이외에도, 소닉사(SONICs Inc.)의 uNetwork 이나 IBM의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 적용되어도 무방하다.The application processor 310 may be implemented as a System on Chip (SoC) including a system bus (not shown). As a standard standard for a system bus, the AMBA (Advanced Microcontroller Bus Architecture) protocol of ARM (Advanced RISC Machine) can be applied. The bus type of the AMBA protocol may include Advanced High-Performance Bus (AHB), Advanced Peripheral Bus (APB), Advanced eXtensible Interface (AXI), AXI4, AXI Coherency Extensions (ACE), and the like. In addition, other types of protocols such as uNetwork of Sonics Inc., CoreConnect of IBM, and Open Core Protocol of OCP-IP may be applied.

메모리 컨트롤 모듈(311)은 전술한 실시예에서의 메모리 컨트롤러의 기능을 수행할 수 있으며, 커맨드/어드레스(CMD/ADD)를 메모리 장치(320)로 전송함으로써 메모리 동작을 제어하거나 또는 메모리 장치(320) 내에서의 연산 처리 동작을 제어할 수 있다. 전술한 실시예들에 따라, 메모리 장치(300)는 메모리 뱅크(321), PIM 회로(322), PEIO 게이팅 회로(323) 및 제어 로직(324)을 포함할 수 있으며, PIM 회로(322)는 프로세싱 소자들(322_1)을 포함하고, 제어 로직(324)은 커맨드/어드레스 디코더(미도시)를 포함할 수 있다. 또한, 어플리케이션 프로세서(310)는 메모리 장치(320) 내부에서의 연산 처리를 위해 다수의 명령어(Inst)들을 메모리 장치(320)로 제공할 수 있으며, 메모리 장치(320) 내부의 명령어 메모리(미도시)에 상기 다수의 명령어(Inst)들이 저장될 수 있다. The memory control module 311 may perform the function of a memory controller in the above-described embodiment, and control a memory operation by transmitting a command/address (CMD/ADD) to the memory device 320 or control a memory operation. ), you can control the operation processing within. According to the above-described embodiments, the memory device 300 may include a memory bank 321, a PIM circuit 322, a PEIO gating circuit 323, and a control logic 324, and the PIM circuit 322 The processing elements 322_1 are included, and the control logic 324 may include a command/address decoder (not shown). In addition, the application processor 310 may provide a plurality of instructions (Inst) to the memory device 320 for processing an operation inside the memory device 320, and an instruction memory (not shown) inside the memory device 320 ) May be stored in the plurality of instructions (Inst).

또한, 전술한 실시예에 따라, 어플리케이션 프로세서(310)는 연산 처리를 지시하는 커맨드(CMD_PE)를 메모리 장치(320)로 제공할 수 있다. 제어 로직(324)은 수신된 커맨드/어드레스(CMD/ADD)의 디코딩 결과에 기반하여 연산 처리 모드를 판단할 수 있고, 이에 기반하여 PEIO 게이팅 회로(323)의 스위칭 상태가 제어될 수 있다. 예컨대, 연산 처리 동작에서 PEIO 게이팅 회로(323)의 스위칭 상태에 따라 뱅크 로컬 IO와 뱅크 그룹 IO 사이의 전기적 연결이 차단될 수 있고, 이에 따라 피연산자(operand)로서 연산 처리에 이용되는 데이터(DATA)들의 충돌이 방지될 수 있다.In addition, according to the above-described embodiment, the application processor 310 may provide a command CMD_PE instructing an operation process to the memory device 320. The control logic 324 may determine an operation processing mode based on a result of decoding the received command/address CMD/ADD, and based on this, the switching state of the PEIO gating circuit 323 may be controlled. For example, the electrical connection between the bank local IO and the bank group IO may be cut off according to the switching state of the PEIO gating circuit 323 in the operation processing operation, and thus data (DATA) used for operation processing as an operand Collision of people can be prevented.

도 4는 본 발명의 예시적인 실시예에 따른 메모리 시스템의 동작 예를 나타내는 개념도이다. 도 4에서는 메모리 장치가 호스트(HOST)와 통신하는 예가 도시되며, 호스트(HOST)에는 메모리 장치와의 통신을 수행하는 메모리 컨트롤러(또는, 메모리 컨트롤 모듈)이 구비될 수 있다.4 is a conceptual diagram illustrating an example of an operation of a memory system according to an exemplary embodiment of the present invention. In FIG. 4, an example in which a memory device communicates with a host HOST is shown, and a memory controller (or a memory control module) performing communication with the memory device may be provided in the host.

도 4를 참조하면, 호스트(HOST)는 메모리 장치의 각종 동작 모드를 제어할 수 있으며, 메모리 장치가 명령어 로딩 모드로 동작함에 따라 호스트(HOST)는 연산 처리에 필요한 다수의 명령어들을 메모리 장치로 전송할 수 있으며, 전송된 명령어는 메모리 장치 내의 명령어 메모리에 로딩될 수 있다. 일 예로서, 가산, 감산, 곱셈 연산 등 다양한 종류들의 연산 처리가 메모리 장치에서 수행될 수 있으며, PIM 회로는 연산 처리 모드에서 명령어를 독출하고 이를 디코딩함으로써 명령어에 대응하는 연산 종류를 판단할 수 있다. Referring to FIG. 4, a host (HOST) can control various operation modes of a memory device, and as the memory device operates in an instruction loading mode, the host (HOST) transmits a number of commands necessary for operation processing to the memory device. The transmitted command may be loaded into the command memory in the memory device. As an example, various types of operation processing, such as addition, subtraction, and multiplication operations, may be performed in the memory device, and the PIM circuit may determine the type of operation corresponding to the instruction by reading the instruction and decoding it in the operation processing mode. .

호스트(HOST)는 메모리 장치가 노멀 모드에서 동작하도록 제어 동작을 수행할 수 있으며, 일 예로서 호스트(HOST)는 메모리 동작을 지시하기 위한 커맨드/어드레스(CMD/ADD)를 메모리 장치로 전송할 수 있다. 메모리 장치는 수신된 커맨드/어드레스(CMD/ADD)를 디코딩하고, 커맨드(CMD)가 기록 커맨드(CMD_WR) 및 독출 커맨드(CMD_RD) 등의 메모리 동작을 지시하는 경우 해당하는 메모리 동작을 수행할 수 있다. 또한, 메모리 동작의 처리가 완료됨에 따라 메모리 동작 결과를 호스트(HOST)로 출력할 수 있다.The host HOST may perform a control operation so that the memory device operates in the normal mode, and as an example, the host may transmit a command/address CMD/ADD for instructing a memory operation to the memory device. . The memory device may decode the received command/address CMD/ADD and perform a corresponding memory operation when the command CMD instructs a memory operation such as a write command CMD_WR and a read command CMD_RD. . In addition, as the processing of the memory operation is completed, a result of the memory operation may be output to the host.

한편, 호스트(HOST)는 연산 처리를 지시하기 위한 커맨드/어드레스(CMD/ADD)를 메모리 장치로 전송할 수 있다. 연산 커맨드(CMD_PE)가 메모리 장치로 제공됨에 따라, 커맨드/어드레스(CMD/ADD) 디코딩 동작에 기반하여 메모리 장치는 연산 처리를 수행할 수 있다. 일 예로서, 메모리 장치는 연산 처리 모드에서 선택된 뱅크에 대응하여 배치되는 PEIO 게이팅 회로를 제어함으로써 뱅크 로컬 IO (BLIO)와 뱅크 그룹 IO(BGIO)의 전기적 연결을 차단한 상태에서 연산 처리를 수행할 수 있다. 일 예로서, PIM 회로 내의 프로세싱 소자는 호스트로부터의 데이터, 선택된 뱅크로부터 독출된 데이터, 프로세싱 소자 내에 저장된 정보 중 적어도 하나를 이용한 연산 처리를 수행할 수 있고, 연산 처리 결과가 호스트(HOST)로 전송될 수 있을 것이다. 또는, 예시적인 실시예에 따라, 연산 처리 결과는 프로세싱 소자 내의 레지스터에 저장되거나 또는 뱅크의 셀 어레이에 저장될 수 있으며, 호스트(HOST)는 연산 처리 결과를 독출하기 위한 커맨드/어드레스를 메모리 장치로 전송할 수도 있을 것이다.Meanwhile, the host HOST may transmit a command/address CMD/ADD for instructing operation processing to the memory device. As the calculation command CMD_PE is provided to the memory device, the memory device may perform calculation processing based on a command/address (CMD/ADD) decoding operation. As an example, the memory device controls the PEIO gating circuit disposed in response to the bank selected in the operation processing mode, thereby performing operation processing in a state in which the electrical connection between the bank local IO (BLIO) and the bank group IO (BGIO) is cut off. I can. As an example, the processing element in the PIM circuit can perform operation processing using at least one of data from the host, data read from the selected bank, and information stored in the processing element, and the result of the operation is transmitted to the host. Can be. Alternatively, according to an exemplary embodiment, the operation processing result may be stored in a register in the processing element or in a cell array of a bank, and the host transmits a command/address for reading the operation processing result to the memory device. It could also be transmitted.

도 5는 메모리 장치에 구비되는 다양한 구성 요소들의 일 예를 나타내는 블록도이다. 도 5에서는 메모리 장치가 다수의 채널들(예컨대, 제1 및 제2 채널들(CH1, CH2))을 포함하는 예가 도시되며, 각각의 채널은 외부의 호스트와 통신하는 서로 별개의 입출력 라인(IO)을 포함할 수 있다. 5 is a block diagram illustrating an example of various components included in a memory device. In FIG. 5, an example in which a memory device includes a plurality of channels (eg, first and second channels CH1 and CH2) is shown, and each channel is a separate input/output line (IO) communicating with an external host. ) Can be included.

제1 채널(CH1)을 예로 들면, 제1 채널(CH1)은 다수 개의 뱅크 그룹들(예컨대, 제1 및 제2 뱅크 그룹들(BG0, BG1))을 포함할 수 있고, 제1 및 제2 뱅크 그룹들(BG0, BG1) 각각은 다수의 뱅크들을 포함할 수 있다. 일 예로서, 제1 뱅크 그룹(BG0)은 제1 내지 제4 뱅크들(BANK 0 ~ BANK 3)을 포함할 수 있으며, 두 개의 뱅크들에 대해 하나의 프로세싱 소자가 공유됨에 따라, 제1 및 제2 프로세싱 소자들(PE0, PE1)이 제1 뱅크 그룹(BG0)에 대응하여 배치될 수 있다. 또한, 도 5에는 도시되지 않았으나, 뱅크 그룹 IO가 제1 뱅크 그룹(BG1)에 대응하여 배치될 수 있고, 제1 내지 제4 뱅크들(BANK 0 ~ BANK 3) 각각은 대응하는 뱅크 로컬 IO에 연결될 수 있다.Taking the first channel CH1 as an example, the first channel CH1 may include a plurality of bank groups (eg, first and second bank groups BG0 and BG1), and the first and second Each of the bank groups BG0 and BG1 may include a plurality of banks. As an example, the first bank group BG0 may include first to fourth banks BANK 0 to BANK 3, and as one processing element is shared for two banks, the first and The second processing elements PE0 and PE1 may be disposed corresponding to the first bank group BG0. In addition, although not shown in FIG. 5, the bank group IO may be disposed corresponding to the first bank group BG1, and each of the first to fourth banks BANK 0 to BANK 3 is assigned to the corresponding bank local IO. Can be connected.

데이터 버스는 제1 채널(CH1)에서 억세스되는 데이터를 전달하기 위한 경로를 포함할 수 있으며, 뱅크 제어기는 제1 채널(CH1)에 포함된 뱅크들의 데이터를 억세스하기 위한 뱅크 제어 동작을 수행할 수 있다. 일 구현 예로서, 하나의 뱅크에 대응하여 하나의 뱅크 제어기가 배치될 수 있다. 뱅크 제어기는 대응하는 뱅크에 포함되는 로우들에 대한 액티브(active) 동작, 프리차지 동작을 제어할 수 있으며, 또한 데이터 억세스를 위한 칼럼 선택 동작을 제어할 수 있다.The data bus may include a path for transmitting data accessed in the first channel CH1, and the bank controller may perform a bank control operation for accessing data of banks included in the first channel CH1. have. As an implementation example, one bank controller may be disposed corresponding to one bank. The bank controller may control an active operation and a precharge operation for rows included in a corresponding bank, and may also control a column selection operation for data access.

한편, 프로세싱 소자 제어기(이하, PE 제어기로 지칭함)는 프로세싱 소자들(PE0 ~ PE3)을 제어할 수 있다. PE 제어기는 다양한 방식으로 배치될 수 있으며, 일 예로서 뱅크 그룹에 대응하여 PE 제어기가 배치되거나 또는 채널에 대응하여 PE 제어기가 배치될 수도 있을 것이다. 또한, 커맨드/어드레스(CMD/ADD) 디코더는 호스트로부터의 커맨드/어드레스에 대한 디코딩 동작을 수행하고, 디코딩 결과에 기반하여 메모리 동작 또는 연산 처리 동작이 제어될 수 있다. 일 예로서, PE 제어기는 커맨드/어드레스(CMD/ADD) 디코더의 디코딩 동작에 기반하여 연산 처리에 관련된 각종 제어 동작을 수행할 수 있을 것이다.Meanwhile, a processing element controller (hereinafter referred to as a PE controller) may control the processing elements PE0 to PE3. The PE controller may be disposed in various ways, and as an example, a PE controller may be disposed corresponding to a bank group or a PE controller may be disposed corresponding to a channel. In addition, the command/address (CMD/ADD) decoder may perform a decoding operation on a command/address from a host, and control a memory operation or an operation processing operation based on a decoding result. As an example, the PE controller may perform various control operations related to arithmetic processing based on a decoding operation of a command/address (CMD/ADD) decoder.

PE 제어기는 프로세싱 소자의 인에이블을 제어하거나 프로세싱 소자의 연산 처리 동작을 제어함과 함께, 전술한 실시예들에 따른 데이터의 전달 경로를 제어할 수 있다. 일 예로서, 하나 이상의 PEIO 게이팅 회로가 메모리 장치에 배치될 수 있고, PE 제어기는 PEIO 게이팅 회로의 스위칭 동작을 제어하기 위한 제어 신호들을 생성할 수 있다.The PE controller may control the enable of the processing element or control the operation of the processing element and control the transmission path of data according to the above-described embodiments. As an example, one or more PEIO gating circuits may be disposed in the memory device, and the PE controller may generate control signals for controlling the switching operation of the PEIO gating circuit.

한편, 도 5에 도시된 실시예에서 뱅크 그룹은 다양하게 정의될 수 있다. 예컨대, 전술한 실시예에서 뱅크 그룹은 다수의 뱅크들의 셀 어레이를 포함하는 것으로 설명되었으나, 뱅크 그룹은 상기한 셀 어레이와 함께 메모리 동작 및 연산 처리 동작에 관련된 구성 요소들을 더 포함하는 것으로 정의될 수도 있을 것이다. 일 예로서, 하나 이상의 프로세싱 소자(PE)들, PEIO 게이팅 회로가 뱅크 그룹에 포함되는 것으로 정의되어도 무방할 것이다.Meanwhile, in the embodiment illustrated in FIG. 5, bank groups may be variously defined. For example, in the above-described embodiment, the bank group has been described as including a cell array of a plurality of banks, but the bank group may be defined as further including elements related to memory operation and operation processing operation together with the above-described cell array. There will be. As an example, one or more processing elements (PE), PEIO gating circuit may be defined as being included in the bank group.

도 6 및 도 7은 연산 처리에 관련하여 메모리 장치에 포함되는 구성들의 일 예를 나타내는 블록도이다. 6 and 7 are block diagrams illustrating examples of configurations included in a memory device in relation to operation processing.

도 5 내지 도 7을 참조하면, 메모리 장치(400)는 다수의 프로세싱 소자들을 포함할 수 있으며, 도 6에 도시된 프로세싱 소자(예컨대, 제1 PE(PE0))는 입력 선택기(410), 연산기(420), 레지스터 파일(430) 및 출력 선택기(440)를 포함할 수 있다. 도 6에서는 연산기(420)의 일 예로서 SIMD(single instruction multi data) 연산기가 예시되나, 본 발명의 실시예들은 이에 국한될 필요가 없이 다양한 종류의 연산기가 제1 PE(PE0)에 적용될 수 있을 것이다. 또한, 연산에 이용되는 각종 정보가 N 비트를 포함하는 예가 도시되었으나, 비트 수는 다양하게 변경될 수도 있을 것이다.5 to 7, the memory device 400 may include a plurality of processing elements, and the processing element (eg, first PE(PE0)) shown in FIG. 6 is an input selector 410 and an operator. 420, a register file 430, and an output selector 440. In FIG. 6, a SIMD (single instruction multi data) operator is illustrated as an example of the operator 420, but embodiments of the present invention need not be limited thereto, and various types of operators may be applied to the first PE (PE0). will be. In addition, an example in which various pieces of information used for calculation include N bits is illustrated, but the number of bits may be variously changed.

레지스터 파일(430)은 연산 처리와 관련된 다양한 정보들을 저장할 수 있다. 일 예로서, 레지스터 파일(430)에는 연산에 이용되는 피연산자, 연산 결과, 미리 설정된 각종 정보들(예컨대, 스케일링(scaling)을 위한 상수 값 등)을 포함하는 데이터가 저장될 수 있고, 이를 위해 레지스터 파일(430)는 하나 이상의 레지스터들을 포함할 수 있다. The register file 430 may store various types of information related to operation processing. As an example, the register file 430 may store data including an operand used for an operation, an operation result, various preset information (eg, a constant value for scaling, etc.). File 430 may contain one or more registers.

입력 선택기(410)는 입력 제어신호(INPUT_CTRL)에 응답하여 연산에 이용될 데이터들을 연산기(420)로 제공할 수 있다. 제1 PE(PE0)를 예로 들면, 입력 선택기(410)는 제1 뱅크(BANK 0)로부터의 데이터와 제2 뱅크(BANK 1)로부터의 데이터를 뱅크 로컬 IO(BLIO)를 통해 수신할 수 있고, 호스트로부터의 데이터를 뱅크 그룹 IO(BGIO)를 통해 수신할 수 있으며, 또한 레지스터 파일(430)에 저장된 데이터(예컨대, 레지스터 출력(reg_out))를 수신할 수 있고, 입력 제어신호(INPUT_CTRL)에 응답하여 적어도 하나의 데이터를 연산기(420)로 제공할 수 있다.The input selector 410 may provide data to be used for calculation to the calculator 420 in response to the input control signal INPUT_CTRL. Taking the first PE (PE0) as an example, the input selector 410 may receive data from the first bank (BANK 0) and data from the second bank (BANK 1) through a bank local IO (BLIO), and , Data from the host can be received through the bank group IO (BGIO), and data stored in the register file 430 (eg, register output (reg_out)) can be received, and the input control signal (INPUT_CTRL) In response, at least one piece of data may be provided to the operator 420.

연산기(420)는 연산 제어신호(CAL_CTRL)에 응답하여 연산을 수행할 수 있으며, 연산 결과(result)를 레지스터 파일(430)의 입력(reg_in)으로서 제공할 수 있다. 연산 결과(result)는 레지스터 파일(430)에 저장될 수 있고, 레지스터 파일(430)은 레지스터 제어신호(REG_CTRL)에 응답하여 저장된 정보(예컨대, 연산 결과(result))를 출력 선택기(440)로 제공할 수 있다. 또한, 출력 선택기(440)는 출력 제어신호(OUTPUT_CTRL)에 응답하여 연산 결과(result)를 다양한 경로를 통해 출력할 수 있으며, 일 예로서 뱅크 로컬 IO(BLIO)를 통해 제1 뱅크(BANK 0) 또는 제2 뱅크(BANK 1)로 제공하거나, 또는 뱅크 그룹 IO(BGIO)를 통해 호스트로 제공할 수 있으며, 또는 연산 동작을 위해 입력 선택기(410)의 입력으로 제공할 수도 있다.The operator 420 may perform an operation in response to the operation control signal CAL_CTRL, and may provide an operation result as an input reg_in of the register file 430. The operation result may be stored in the register file 430, and the register file 430 transmits stored information (e.g., operation result) to the output selector 440 in response to the register control signal REG_CTRL. Can provide. In addition, the output selector 440 may output an operation result through various paths in response to the output control signal OUTPUT_CTRL, and as an example, the first bank (BANK 0) through the bank local IO (BLIO). Alternatively, it may be provided as a second bank (BANK 1), may be provided to a host through a bank group IO (BGIO), or may be provided as an input of the input selector 410 for an operation operation.

한편, 도 7은 PE 제어기의 일 구현 예를 나타내며, 도 7에 도시된 바와 같이 메모리 장치(400)는 PE 제어기(450)와 함께, 명령어 메모리에 해당하는 명령어 큐(460), 명령어 디코더(470) 및 커맨드/어드레스 디코더(480)를 더 포함할 수 있다. 도 6 및 도 7에 도시된 다양한 구성 요소들이 전술한 실시예에서 설명된 PIM 회로 내에 구비되는 구성인 것으로 정의될 수 있고, 일 예로서 명령어 큐(460), 명령어 디코더(470)는 PIM 회로에 구비되는 구성일 수 있다.Meanwhile, FIG. 7 shows an example of an implementation of the PE controller. As shown in FIG. 7, the memory device 400 includes a command queue 460 corresponding to a command memory and a command decoder 470 along with the PE controller 450. ) And a command/address decoder 480 may be further included. The various components shown in FIGS. 6 and 7 may be defined as being provided in the PIM circuit described in the above-described embodiment, and as an example, the command queue 460 and the command decoder 470 are included in the PIM circuit. It may be a provided configuration.

PE 제어기(450)는 커맨드/어드레스(CMD/ADD) 또는 그 디코딩 결과에 기반하여 연산 처리에 관련된 각종 제어 동작들을 수행할 수 있다. 상기 어드레스(ADD)는 뱅크 어드레스(BA), 로우 어드레스(RA) 및 칼럼 어드레스(CA)를 포함할 수 있다. 또한, PE 제어기(450)는 디코딩된 커맨드/어드레스(CMD/ADD)를 기반으로 전술한 각종 제어신호들(INPUT_CTRL, CAL_CTRL, REG_CTRL, OUTPUT_CTRL)을 생성할 수 있으며, 또한 전술한 실시예들에 따라 PEIO 게이팅 회로의 스위칭 상태를 제어함으로써 뱅크 로컬 IO(BLIO)와 뱅크 그룹 IO(BGIO) 사이의 전기적 연결을 제어하기 위한 PEIO 제어신호(PEIO_CTRL)를 출력할 수 있다.The PE controller 450 may perform various control operations related to operation processing based on a command/address (CMD/ADD) or a decoding result thereof. The address ADD may include a bank address BA, a row address RA, and a column address CA. In addition, the PE controller 450 may generate the above-described various control signals (INPUT_CTRL, CAL_CTRL, REG_CTRL, OUTPUT_CTRL) based on the decoded command/address (CMD/ADD), and also according to the above-described embodiments. By controlling the switching state of the PEIO gating circuit, a PEIO control signal PEIO_CTRL for controlling the electrical connection between the bank local IO (BLIO) and the bank group IO (BGIO) can be output.

한편, 연산 처리는 가산, 감산, 곱셈 연산 등 다양한 종류의 연산들을 포함할 수 있고, 명령어에 대한 디코딩 동작을 통해 연산 종류가 판단될 수 있다. 명령어 큐(460)는 호스트로부터 다수의 명령어(Inst)들을 수신할 수 있고, 일 예로서 데이터 버스를 통해 수신되는 명령어(Inst)들을 저장할 수 있다. PE 제어기(450)는 명령어 제어신호(INST_CTRL)를 명령어 큐(460)로 제공함으로써, 명령어 큐(460)에 명령어(Inst)가 저장되거나 명령어(Inst)가 독출되는 동작을 제어할 수 있다. 또한, 명령어 큐(460)로부터 독출된 명령어(Inst)는 명령어 디코더(470)로 제공될 수 있고, 명령어 디코더(470)는 이에 대한 디코딩 처리를 수행할 수 있다.Meanwhile, the operation processing may include various types of operations such as addition, subtraction, and multiplication operations, and the type of operation may be determined through a decoding operation for an instruction. The command queue 460 may receive a plurality of commands Inst from a host, and may store, for example, commands Inst received through a data bus. The PE controller 450 provides a command control signal INST_CTRL to the command queue 460 to control an operation in which the command Inst is stored in the command queue 460 or the command Inst is read. In addition, the instruction Inst read from the instruction queue 460 may be provided to the instruction decoder 470, and the instruction decoder 470 may perform decoding processing thereon.

도 8은 본 발명의 예시적인 실시예의 메모리 장치가 HBM(high bandwidth memory)을 포함하는 예를 나타내는 블록도이다. 8 is a block diagram illustrating an example in which a memory device according to an exemplary embodiment of the present invention includes a high bandwidth memory (HBM).

HBM(500)는 서로 독립된 인터페이스를 갖는 다수의 채널들을 포함함으로써 증가된 대역폭(Bandwidth)을 가질 수 있다. 도 5를 참조하면, HBM(500)는 다수 개의 다이들을 포함할 수 있으며, 일 예로서 버퍼 다이(또는, 로직 다이(510))와 이에 적층된 하나 이상의 코어 다이들을 포함할 수 있다. 도 5의 예에서는, 4 개의 코어 다이들이 HBM(500)에 구비되는 예가 도시되었으나, 코어 다이들의 개수는 다양하게 변경될 수 있다. 코어 다이들 중 제1 코어 다이(520)를 참조하여 도 8의 구성을 설명하면 다음과 같다.The HBM 500 may have an increased bandwidth by including a plurality of channels having independent interfaces from each other. Referring to FIG. 5, the HBM 500 may include a plurality of dies, and as an example, may include a buffer die (or logic die 510) and one or more core dies stacked thereon. In the example of FIG. 5, an example in which four core dies are provided in the HBM 500 is illustrated, but the number of core dies may be variously changed. The configuration of FIG. 8 will be described with reference to the first core die 520 among the core dies as follows.

제1 코어 다이(520)는 하나 이상의 채널을 포함할 수 있으며, 도 8의 예에서는 제1 코어 다이(520)가 두 개의 채널들(CH1, CH2)을 포함하는 경우가 예시된다. 버퍼 다이(510)는 호스트(또는, 메모리 컨트롤러)와 통신하는 인터페이스 회로(미도시)를 포함할 수 있으며, 버퍼 다이(510)를 통해 호스트로부터 커맨드/어드레스 및 데이터를 수신할 수 있다. 또한, 본 발명의 예시적인 실시예에 따라, 제1 코어 다이(520)의 채널들(CH1, CH2) 각각은 커맨드/어드레스 디코더(521) 및 PIM 회로(522)를 포함할 수 있으며, PIM 회로(522)는 커맨드/어드레스에 대한 디코딩 결과에 기반하여 내부 연산 처리를 제어할 수 있다. 또한, 도 8에 도시되지는 않았으나 전술한 실시예들에서 설명된 연산 처리에 관련된 각종 구성 요소들이 채널들(CH1, CH2) 각각에 구비될 수 있을 것이다. 일 예로서, 채널들(CH1, CH2) 각각은 다수의 뱅크들을 포함하는 뱅크 그룹, 뱅크 로컬 IO(BLIO)와 뱅크 그룹 IO(BGIO)을 포함할 수 있고, 뱅크 로컬 IO(BLIO)와 뱅크 그룹 IO(BGIO) 사이의 전기적 연결을 제어하기 위한 PEIO 게이팅 회로를 포함할 수 있을 것이다. The first core die 520 may include one or more channels, and in the example of FIG. 8, a case where the first core die 520 includes two channels CH1 and CH2 is illustrated. The buffer die 510 may include an interface circuit (not shown) that communicates with a host (or a memory controller), and may receive commands/addresses and data from the host through the buffer die 510. Further, according to an exemplary embodiment of the present invention, each of the channels CH1 and CH2 of the first core die 520 may include a command/address decoder 521 and a PIM circuit 522, and a PIM circuit Reference numeral 522 may control an internal operation process based on a result of decoding a command/address. In addition, although not shown in FIG. 8, various components related to the operation process described in the above-described embodiments may be provided in each of the channels CH1 and CH2. As an example, each of the channels CH1 and CH2 may include a bank group including a plurality of banks, a bank local IO (BLIO) and a bank group IO (BGIO), and a bank local IO (BLIO) and a bank group It may include a PEIO gating circuit for controlling the electrical connection between IO (BGIO).

한편, 도 8에서는 HBM(500)의 각각의 채널이 적어도 두 개의 의사 채널들(pseudo channel)을 포함하는 구현 예가 개시된다. 일 예로서, 제1 코어 다이(520)의 제1 채널(CH1)는 두 개의 의사 채널들(PC0, PC1)을 포함할 수 있으며, 두 개의 의사 채널들(PC0, PC1)에 대응하여 데이터 버스가 서로 별개로 구현되는 반면에, 상기 두 개의 의사 채널들(PC0, PC1)은 커맨드/어드레스 디코더(521)를 공유할 수 있다. 또한, 다양한 실시예들에 따라 PIM 회로(522)에 구비되는 다양한 구성 요소들 중 적어도 하나는 두 개의 의사 채널들(PC0, PC1)에 공유될 수도 있을 것이다. 즉, 의사 채널들(PC0, PC1)은 서로 별개의 데이터 버스를 통해 호스트와 인터페이스할 수 있는 반면에, 공통한 커맨드/어드레스 버스를 통해 호스트와 인터페이스할 수 있을 것이다.Meanwhile, in FIG. 8, an implementation example in which each channel of the HBM 500 includes at least two pseudo channels is disclosed. As an example, the first channel CH1 of the first core die 520 may include two pseudo channels PC0 and PC1, and a data bus corresponding to the two pseudo channels PC0 and PC1 While is implemented separately from each other, the two pseudo-channels PC0 and PC1 may share the command/address decoder 521. In addition, according to various embodiments, at least one of various components included in the PIM circuit 522 may be shared by two pseudo channels PC0 and PC1. That is, while the pseudo-channels PC0 and PC1 may interface with the host through separate data buses, they may interface with the host through a common command/address bus.

도 9는 본 발명의 예시적인 실시예에 따른 메모리 장치의 동작방법을 나타내는 플로우차트이다.9 is a flowchart showing a method of operating a memory device according to an exemplary embodiment of the present invention.

도 9을 참조하면, 메모리 장치는 호스트로부터 제공된 명령어들을 수신하고 이를 저장할 수 있으며, 호스트로부터의 요청에 따라 자체적으로 연산 처리를 수행할 수 있다. 메모리 장치는 호스트로부터 커맨드/어드레스를 수신할 수 있으며, 수신된 커맨드/어드레스에 대한 디코딩 처리를 수행할 수 있다(S11). 또한, 디코딩 결과에 따라 메모리 장치는 연산 처리 모드에서 동작할 수 있으며, 일 예로서 전술한 실시예들에 따라 연산 처리를 위한 별도의 커맨드가 정의되거나, 또는 커맨드/어드레스에 포함되는 다수의 비트들의 값에 기반하여 연산 처리 모드가 선택될 수도 있을 것이다.Referring to FIG. 9, the memory device may receive commands provided from a host and store them, and may perform operation processing by itself according to a request from the host. The memory device may receive a command/address from the host and may perform decoding processing on the received command/address (S11). In addition, according to the decoding result, the memory device may operate in an operation processing mode. As an example, a separate command for operation processing is defined according to the above-described embodiments, or a plurality of bits included in the command/address The arithmetic processing mode may be selected based on the value.

디코딩 결과에 기반하여 연산 처리 모드에 해당하는지가 판단되고(S12), 연산 처리 모드에 해당하지 않는 경우에는 노멀 메모리 동작을 위해 선택된 뱅크의 뱅크 로컬 IO(BLIO)와 뱅크 그룹 IO(BGIO)가 전기적으로 연결되고(S13), 메모리 동작이 수행됨에 따라 선택된 뱅크로 데이터가 제공되거나 또는 선택된 뱅크로부터 데이터가 독출될 수 있다(S14).Based on the decoding result, it is determined whether it corresponds to the operation processing mode (S12), and if it does not correspond to the operation processing mode, the bank local IO (BLIO) and the bank group IO (BGIO) of the bank selected for normal memory operation are electrically As the memory operation is performed (S13), data may be provided to the selected bank or data may be read from the selected bank (S14).

한편, 연산 처리 모드에 해당하는 경우에는 연산 처리 동작을 위해 뱅크 로컬 IO(BLIO)와 뱅크 그룹 IO(BGIO)가 전기적으로 차단되고(S15), 연산 처리를 위한 데이터 및/또는 정보가 프로세싱 소자(PE)로 제공될 수 있다. 일 예로서, 호스트로부터의 데이터가 뱅크 그룹 IO(BGIO)를 통해 프로세싱 소자(PE)로 제공될 수 있으며(S16), 또한 선택된 뱅크로부터 독출된 데이터가 뱅크 로컬 IO(BLIO)를 통해 프로세싱 소자(PE)로 제공될 수 있다(S17). 프로세싱 소자(PE)는 수신된 데이터를 이용하여 연산 처리를 수행할 수 있다(S18).On the other hand, in the case of the operation processing mode, the bank local IO (BLIO) and the bank group IO (BGIO) are electrically cut off for the operation processing operation (S15), and data and/or information for the operation processing is transferred to the processing element ( PE). As an example, data from the host may be provided to the processing element PE through the bank group IO (BGIO) (S16), and data read out from the selected bank may be provided through the bank local IO (BLIO) through the processing element ( PE) may be provided (S17). The processing element PE may perform arithmetic processing using the received data (S18).

한편, 전술한 실시예들의 프로세싱 소자(PE)에서 수행되는 연산 처리는 뉴럴 네트워크(neural network) 연산들을 포함할 수 있다. 일 예로서, 딥 러닝 알고리즘 등 다양한 종류의 뉴럴 네트워크들이 존재하고, 뉴럴 네트워크 연산들은 CPU나 GPU 등의 일반(general) 하드웨어나, 특정 소프트웨어에 최적화된 전용 하드웨어 등 다양한 종류의 하드웨어(또는, 프로세서)들에 의해 실행될 수 있다. 일 예로, 전용 하드웨어는 ASIC, NPU(neural processing unit), TPU(Tensor Processing Unit), Neural Engine 등 다양한 종류의 하드웨어들을 포함할 수 있다. Meanwhile, the operation processing performed by the processing element PE according to the above-described embodiments may include neural network operations. As an example, there are various types of neural networks such as deep learning algorithms, and neural network operations are various types of hardware (or processors) such as general hardware such as CPU or GPU, or dedicated hardware optimized for specific software. Can be implemented by As an example, the dedicated hardware may include various types of hardware such as an ASIC, a neural processing unit (NPU), a tensor processing unit (TPU), and a neural engine.

본 발명의 예시적인 실시예에 따라, 뉴럴 네트워크 연산들 중 적어도 일부의 연산들은 본 발명의 실시예들에 따른 메모리 장치에서 수행될 수 있다. 뉴럴 네트워크 연산들은 데이터와 가중치(weight)를 이용한 연산을 포함할 수 있으며, 상기 연산에 이용되는 데이터 및 가중치(weight)는 호스트(HOST)로부터 제공되거나 또는 메모리 장치 내에 저장될 수 있다. 일 예로서, 데이터는 호스트(HOST)로부터 제공되고 가중치(weight)는 메모리 장치의 뱅크에 저장된 경우, 전술한 도 9의 실시에에서 데이터는 뱅크 그룹 IO(BGIO)를 통해 프로세싱 소자(PE)로 제공될 수 있으며, 가중치(weight)는 선택된 뱅크로부터 독출되어 뱅크 로컬 IO(BLIO)를 통해 프로세싱 소자(PE)로 제공될 수 있다.According to an exemplary embodiment of the present invention, at least some of the neural network operations may be performed in a memory device according to embodiments of the present invention. Neural network operations may include operations using data and weights, and data and weights used in the operations may be provided from a host or stored in a memory device. As an example, when data is provided from a host and a weight is stored in a bank of a memory device, data is transferred to the processing element PE through the bank group IO (BGIO). The weight may be provided, and the weight may be read from the selected bank and provided to the processing element PE through the bank local IO BLIO.

도 10a,b,c는 본 발명의 일 실시예에 따른 메모리 장치에서 정의되는 연산 커맨드들의 일 예를 나타내는 도면이다. 10A, B, and C are diagrams illustrating examples of operation commands defined in a memory device according to an embodiment of the present invention.

본 발명의 실시예들에 따라, 도 10a,b,c에 도시된 바와 같이 연산 처리와 관련하여 다양한 연산 커맨드들(PERW, PERD, PEWR)이 정의될 수 있으며, 메모리 장치는 연산 커맨드들(PERW, PERD, PEWR)이 수신되는 경우에, 명령어 메모리에 기 저장된 명령어를 디코딩함으로써 연산 처리를 수행할 수 있다. 또한, 연산 커맨드들(PERW, PERD, PEWR)의 종류에 따라 연산에 이용되는 데이터의 전달 경로가 상이할 수 있으며, 일 구현 예로서 연산 커맨드들(PERW, PERD, PEWR)의 디코딩 결과에 기반하여 연산 처리에 이용되는 데이터를 전달하는 경로가 서로 다르게 제어될 수 있다.According to embodiments of the present invention, various operation commands (PERW, PERD, PEWR) may be defined in relation to operation processing as shown in FIGS. 10A, B, and C, and the memory device includes operation commands PERW , PERD, PEWR) is received, it is possible to perform operation processing by decoding the instruction previously stored in the instruction memory. In addition, the transmission path of data used for calculation may be different depending on the type of calculation commands (PERW, PERD, PEWR), and as an implementation example, based on the decoding result of calculation commands (PERW, PERD, PEWR). Paths for transmitting data used for operation processing may be controlled differently.

일 예로서, 도 10a를 참조하면, 제1 연산 커맨드(PERW)가 호스트로부터 메모리 장치로 제공될 수 있으며, 제1 연산 커맨드(PERW)에 응답하여 호스트로부터의 데이터와 메모리 장치 내의 데이터를 이용한 연산이 수행될 수 있다. 도 10a,b,c에서는 도시되지 않았으나 하나 이상의 뱅크가 선택되어 뱅크 내의 로우가 액티브 상태를 가질 수 있으며, 어드레스(ADD)에 포함된 칼럼 어드레스 정보(COL)에 따라 뱅크로부터 데이터가 독출되어 뱅크 로컬 IO(BLIO)를 통해 프로세싱 소자(PE)로 제공될 수 있다. 또한, 소정의 레이턴시 후에 호스트로부터 데이터(DATA)가 뱅크 그룹 IO(BGIO)을 통해 전달되어 프로세싱 소자(PE)로 제공될 수 있으며, 프로세싱 소자(PE)는 수신된 데이터들을 이용한 연산 처리를 수행할 수 있다.As an example, referring to FIG. 10A, a first operation command PERW may be provided from a host to a memory device, and an operation using data from the host and data in the memory device in response to the first operation command PERW This can be done. Although not shown in FIGS. 10A, B, and C, one or more banks are selected so that a row in the bank may have an active state, and data is read from the bank according to the column address information COL included in the address ADD, so that the bank is local. It may be provided to the processing element PE through IO (BLIO). In addition, after a predetermined latency, data (DATA) from the host may be transmitted through the bank group IO (BGIO) and provided to the processing element PE, and the processing element PE may perform operation processing using the received data. I can.

한편, 도 10b를 참조하면, 제2 연산 커맨드(PERD)가 호스트로부터 메모리 장치로 제공될 수 있으며, 제2 연산 커맨드(PERD)에 응답하여 메모리 장치 내의 데이터를 이용한 연산이 수행될 수 있다. 일 예로서, 칼럼 어드레스 정보(COL)에 따라 뱅크로부터 데이터가 독출되어 뱅크 로컬 IO(BLIO)를 통해 프로세싱 소자(PE)로 제공되고, 프로세싱 소자(PE)는 뱅크로부터의 데이터를 이용하여 연산 처리를 수행할 수 있다. 일 동작 예로서, 뱅크로부터 독출된 데이터는 뉴럴 네트워크 연산의 가중치(weight)에 해당하고, 상기 가중치(weight)의 값을 스케일링하기 위한 정보(예컨대, 소정의 상수 값)가 프로세싱 소자(PE) 내의 레지스터에 저장된 경우, 프로세싱 소자(PE)는 상기 가중치(weight)와 상수 값을 연산하는 동작을 수행할 수 있을 것이다. Meanwhile, referring to FIG. 10B, a second operation command PERD may be provided from a host to a memory device, and an operation using data in the memory device may be performed in response to the second operation command PERD. As an example, data is read from the bank according to the column address information (COL) and provided to the processing element PE through the bank local IO (BLIO), and the processing element PE processes an operation using data from the bank. You can do it. As an example of operation, data read from a bank corresponds to a weight of a neural network operation, and information (eg, a predetermined constant value) for scaling a value of the weight is included in the processing element PE. When stored in a register, the processing element PE may perform an operation of calculating the weight and the constant value.

한편, 도 10c를 참조하면, 제3 연산 커맨드(PEWR)가 호스트로부터 메모리 장치로 제공될 수 있으며, 제3 연산 커맨드(PEWR)에 응답하여 프로세싱 소자(PE) 내의 레지스터에 저장된 정보(예컨대, 연산 결과)가 뱅크에 기록되는 동작이 수행될 수 있다. 일 예로서, 커맨드/어드레스의 디코딩 결과에 기반하여 프로세싱 소자(PE) 내의 레지스터의 정보가 독출되고, 독출된 정보는 뱅크 로컬 IO(BLIO)를 통해 뱅크의 칼럼 어드레스 정보(COL)에 대응하는 위치로 제공될 수 있을 것이다.Meanwhile, referring to FIG. 10C, a third operation command PEWR may be provided from a host to a memory device, and information stored in a register in the processing element PE in response to the third operation command PEWR (eg, operation The operation in which the result) is written to the bank can be performed. As an example, information on a register in the processing element PE is read based on a result of decoding a command/address, and the read information is a position corresponding to the column address information COL of the bank through the bank local IO (BLIO). Can be provided with.

전술한 도 10a,b,c에서는 본 발명의 실시예들에서 수행 가능한 연산들 중 일부만이 언급되었으나, 본 발명의 메모리 장치는 다른 다양한 종류의 연산들을 수행할 수도 있을 것이다. 일 예로서, 연산 커맨드들(PERW, PERD, PEWR)에 응답하여 독출된 명령어에 따른 다양한 종류의 연산들이 수행될 수 있고, 상기한 연산 커맨드들(PERW, PERD, PEWR)의 종류는 데이터의 전달 경로를 제어하는 데 이용될 수 있을 것이다. 예컨대, 호스트는 제3 연산 커맨드(PEWR)를 제공함과 함께 데이터를 더 제공할 수 있고, 프로세싱 소자(PE)는 제3 연산 커맨드(PEWR)에 응답하여 호스트로부터 제공된 데이터를 이용한 연산 처리를 수행할 수도 있을 것이다.Although only some of the operations that can be performed in embodiments of the present invention are mentioned in FIGS. 10A, B, and C described above, the memory device of the present invention may also perform various other types of operations. As an example, various types of operations may be performed according to a command read in response to operation commands (PERW, PERD, PEWR), and the types of the operation commands (PERW, PERD, PEWR) are data transfer. It could be used to control the path. For example, the host may further provide data while providing the third operation command PEWR, and the processing element PE may perform operation processing using data provided from the host in response to the third operation command PEWR. Maybe.

한편, 호스트는 일련의 연산 처리를 위한 명령어들을 순차적으로 메모리 장치로 제공할 수 있고, 이에 따라 각각의 연산 타이밍에서 수행될 연산 처리의 종류를 판단할 수 있다. 호스트는, 각각의 연산 타이밍에서 수행되는 연산 처리의 종류를 기반으로 하여, 전술한 연산 커맨드들(PERW, PERD, PEWR)을 적합한 커맨드를 선택하여 메모리 장치로 제공할 수 있을 것이다.Meanwhile, the host may sequentially provide instructions for processing a series of operations to the memory device, and accordingly, determine the type of operation to be performed at each operation timing. The host may select an appropriate command and provide the above-described operation commands PERW, PERD, and PEWR to the memory device based on the type of operation processing performed at each operation timing.

도 11은 본 발명의 실시예들에 따른 메모리 장치에서 일련하게 수행되는 연산 처리의 예를 나타내는 파형도이다. 도 11에서는 다수의 뱅크들의 로우들이 동시에 선택되고, 다수의 프로세싱 소자들에 의해 병렬하게 연산 처리가 수행되는 예가 도시된다.11 is a waveform diagram illustrating an example of operation processing sequentially performed in a memory device according to embodiments of the present invention. In FIG. 11, an example in which rows of a plurality of banks are simultaneously selected and arithmetic processing is performed in parallel by a plurality of processing elements is shown.

도 11을 참조하면, 다수의 뱅크들에 포함되는 다수의 로우들을 함께 액티브하기 위한 액티브 커맨드(PEACT)가 정의될 수 있고, 호스트가 액티브 커맨드(PEACT)를 메모리 장치로 제공함에 따라 다수의 뱅크들 각각의 로우(예컨대, 제1 로우(row0))가 액티브될 수 있다. Referring to FIG. 11, an active command PEACT for activating a plurality of rows included in a plurality of banks together may be defined, and as a host provides an active command PEACT to a memory device, a plurality of banks Each row (eg, a first row (row0)) may be active.

호스트는, 메모리 장치에서 연산 처리가 일련하게 수행될 수 있도록 하나 이상의 연산 커맨드들을 메모리 장치로 제공할 수 있고, 일 예로서 전술한 실시예들에서 언급된 제1 내지 제3 연산 커맨드들(PERW, PERD, PEWR)이 메모리 장치로 제공될 수 있다. 일 예로, 메모리 장치의 데이터 및/또는 정보의 전달 경로는 제1 내지 제3 연산 커맨드들(PERW, PERD, PEWR)의 디코딩 결과에 기반하여 제어될 수 있고, 명령어 메모리로부터 독출된 명령어(예컨대, 제1 명령어(Inst 0))의 디코딩 동작에 기반하여 연산 처리의 종류가 판단될 수 있다.The host may provide one or more operation commands to the memory device so that operation processing may be performed in series in the memory device. As an example, the first to third operation commands PERW and PERD, PEWR) can be provided as a memory device. As an example, the transmission path of data and/or information of the memory device may be controlled based on the decoding result of the first to third operation commands (PERW, PERD, PEWR), and a command read from the command memory (eg, The type of operation processing may be determined based on the decoding operation of the first instruction (Inst 0).

일 예로서, 메모리 장치는 제3 연산 커맨드(PEWR)와 함께 제1 칼럼(col 0)을 나타내는 어드레스를 수신하고, 제1 명령어(Inst 0)의 디코딩 결과(mov)에 따라 프로세싱 소자(PE) 내의 레지스터(미도시)에 데이터 및/또는 정보를 기록할 수 있다. 일 예로서, 다수의 뱅크들의 로우들이 액티브됨에 따라 다수의 프로세싱 소자(PE)들이 병렬하게 연산을 수행할 수 있고, 일 예로서 제3 연산 커맨드(PEWR)에 응답하여 데이터 버스로부터의 데이터가 레지스터 입력(reg_in)으로서 다수의 프로세싱 소자(PE)들에 병렬하게 제공될 수 있다.As an example, the memory device receives an address indicating a first column (col 0) together with a third operation command (PEWR), and according to the decoding result (mov) of the first command (Inst 0), the processing element PE Data and/or information can be written to a register (not shown). As an example, as rows of a plurality of banks are active, a plurality of processing elements PE may perform an operation in parallel. As an example, data from a data bus is registered in response to a third operation command PEWR. As an input reg_in, it may be provided to multiple processing elements PE in parallel.

또한, 메모리 장치는 호스트로부터 제1 연산 커맨드(PERW) 및 제2 칼럼(col 1)을 나타내는 어드레스를 수신하고, 이에 응답하여 제2 명령어(Inst 1)를 독출하고 디코딩할 수 있으며, 제2 명령어(Inst 1)의 디코딩 결과(mac)에 따라 다수의 프로세싱 소자(PE)들 각각은 레지스터에 저장된 정보(예컨대, 호스트로부터 제공되어 레지스터에 저장된 정보)와 뱅크의 제2 칼럼(col 1)으로부터 독출된 데이터를 이용한 연산 처리(예컨대, MAC(Multiplication and Accumulation) 처리)를 수행할 수 있다. In addition, the memory device may receive an address indicating the first operation command PERW and the second column col 1 from the host, and in response thereto, read and decode the second command Inst 1, and the second command According to the decoding result (mac) of (Inst 1), each of the plurality of processing elements (PE) is read from the information stored in the register (e.g., information provided from the host and stored in the register) and the second column (col 1) of the bank. Calculation processing (eg, multiplication and accumulation (MAC) processing) using the generated data may be performed.

상기와 같은 다수의 프로세싱 소자(PE)들에 의한 병렬한 연산 처리가 완료되고 나면, 뱅크들의 로우들을 프리차지하기 위해 호스트로부터 프리차지 커맨드(PEPRE)가 메모리 장치로 제공될 수 있다. 또한, 일 동작 예에 따라, 다수의 프로세싱 소자(PE)들에 저장된 연산 처리 결과가 뱅크들에 기록될 수 있으며, 이를 위해 호스트는 액티브 커맨드(PEACT)와 함께 로우(예컨대, 제2 로우(row1))를 메모리 장치로 제공할 수 있고, 메모리 장치는 제3 연산 커맨드(PEWR) 및 어드레스(예컨대, 제1 칼럼(col 0))를 수신할 수 있다. 메모리 장치는 제3 연산 커맨드(PEWR)에 응답하여 제3 명령어(Inst 2)를 독출하고 디코딩할 수 있으며, 디코딩 결과(store)에 따라 다수의 프로세싱 소자(PE)들에 저장된 연산 처리 결과가 각각 대응하는 뱅크에 저장될 수 있다. 이후, 호스트로부터 프리차지 커맨드(PEPRE)에 따라 메모리 장치의 뱅크들의 로우들이 프리차지 될 수 있다.After the parallel operation processing by the plurality of processing elements PE is completed, a precharge command PEPRE may be provided from the host to the memory device to precharge the rows of the banks. In addition, according to an operation example, operation results stored in a plurality of processing elements PE may be written to the banks. To this end, a host may write a row (eg, a second row) together with an active command PEACT. )) may be provided to the memory device, and the memory device may receive a third operation command PEWR and an address (eg, a first column (col 0)). The memory device may read and decode the third instruction Inst 2 in response to the third operation command PEWR, and the operation processing results stored in the plurality of processing elements PE are each stored according to the decoding result (store). It can be stored in the corresponding bank. Thereafter, rows of banks of the memory device may be precharged according to a precharge command PEPRE from the host.

도 12a,b 내지 도 14a,b는 본 발명의 다양한 실시예들에 따른 메모리 장치의 구현 예들을 나타내는 도면이다. 12A,B through 14A,B are diagrams illustrating implementation examples of a memory device according to various embodiments of the present disclosure.

도 12a,b를 참조하면, 메모리 장치(600A)는 하나 이상의 뱅크 그룹들을 포함할 수 있고, 일 예로서 제1 뱅크 그룹(BG0)은 다수 개의 뱅크들(BANK 0 ~ BANK 3)을 포함할 수 있으며, 프로세싱 소자들은 뱅크들(BANK 0 ~ BANK 3) 각각에 대응하여 배치될 수 있다. 일 예로서, 도 12a에는 제1 및 제2 뱅크들(BANK 0, BANK 1)에 대응하여 제1 및 제2 프로세싱 소자들(611A, 612A)이 배치되는 예가 도시되고, 제1 PEIO 게이팅 회로(621A)는 뱅크 그룹 IO(BGIO)와 제1 뱅크(BANK 0)의 뱅크 로컬 IO (BLIO)의 연결을 제어하기 위해 배치될 수 있고, 제2 PEIO 게이팅 회로(622A)는 뱅크 그룹 IO(BGIO)와 제2 뱅크(BANK 1)의 뱅크 로컬 IO (BLIO)의 연결을 제어하기 위해 배치될 수 있다.Referring to FIGS. 12A and 12B, the memory device 600A may include one or more bank groups, and as an example, the first bank group BG0 may include a plurality of banks BANK 0 to BANK 3. In addition, processing elements may be disposed corresponding to each of the banks BANK 0 to BANK 3. As an example, FIG. 12A shows an example in which the first and second processing elements 611A and 612A are arranged corresponding to the first and second banks BANK 0 and BANK 1, and the first PEIO gating circuit ( 621A) may be disposed to control the connection between the bank group IO (BGIO) and the bank local IO (BLIO) of the first bank (BANK 0), and the second PEIO gating circuit 622A is the bank group IO (BGIO). And the bank local IO (BLIO) of the second bank (BANK 1).

한편, 도 12b를 참조하면, 메모리 장치(600A)는 다수의 채널들(예컨대, 제1 및 제2 채널들(CH1, CH2))을 포함할 수 있고, 각각의 채널은 하나 이상의 뱅크 그룹들을 포함할 수 있다. 일 예로서, 도 12a에 도시된 구성 요소들은 메모리 장치(600A)의 제1 채널(CH1)에 포함된 구성일 수 있다. 또한, 전술한 실시예에서와 같이, 각각의 채널에 대해 메모리 동작 및 연산 처리 동작을 제어하기 위한 다양한 구성 요소들이 메모리 장치(600A)에 구비될 수 있으며, 일 예로서 도 12b에는 데이터 버스, 뱅크 제어기, PE 제어기 및 커맨드/어드레스 디코더 등이 예시된다.Meanwhile, referring to FIG. 12B, the memory device 600A may include a plurality of channels (eg, first and second channels CH1 and CH2), and each channel includes one or more bank groups. can do. As an example, the components illustrated in FIG. 12A may be components included in the first channel CH1 of the memory device 600A. In addition, as in the above-described embodiment, various components for controlling a memory operation and an operation processing operation for each channel may be provided in the memory device 600A. As an example, a data bus and a bank A controller, a PE controller, and a command/address decoder, etc. are illustrated.

도 12a,b에 도시된 실시예에 따르면, 뱅크들(BANK 0 ~ BANK 3) 각각에 저장된 데이터를 이용한 병렬 연산 처리가 수행될 수 있다. 뱅크들(BANK 0 ~ BANK 3)에 저장된 가중치 정보를 이용한 뉴럴 네트워크 연산을 예로 들면, 호스트로부터의 데이터가 도 12a에 도시된 프로세싱 소자들(PE0 ~ PE3)에 공통하게 제공되고, 프로세싱 소자들(PE0 ~ PE3)은 동일한 데이터를 이용하여 서로 다른 값을 갖는 가중치들을 이용한 연산을 병렬하게 수행할 수 있을 것이다.According to the embodiment shown in FIGS. 12A and 12B, parallel operation processing may be performed using data stored in each of the banks BANK 0 to BANK 3. Taking a neural network operation using weight information stored in the banks BANK 0 to BANK 3 as an example, data from the host is commonly provided to the processing elements PE0 to PE3 shown in FIG. 12A, and the processing elements ( PE0 to PE3) may perform operations using weights having different values in parallel using the same data.

도 13a,b에서는 메모리 장치(600B)가 하나 이상의 뱅크 그룹들을 포함하고, 하나의 뱅크 그룹(예컨대, 제1 뱅크 그룹(BG0))에 대응하여 하나의 프로세싱 소자(610B)가 배치되는 예가 도시된다. 또한, 제1 뱅크 그룹(BG0)의 뱅크들(BANK 0 ~ BANK 3)에 대응하여 PEIO 게이팅 회로들(621B ~ 624B)이 배치될 수 있다.13A and 13B illustrate an example in which the memory device 600B includes one or more bank groups, and one processing element 610B is disposed in correspondence with one bank group (eg, first bank group BG0). . In addition, PEIO gating circuits 621B to 624B may be disposed corresponding to the banks BANK 0 to BANK 3 of the first bank group BG0.

연산 처리 종류(또는, 연산 처리에 이용되는 피연산자들)에 따라 뱅크들(BANK 0 ~ BANK 3) 중 적어도 하나의 뱅크로부터의 데이터가 프로세싱 소자(610B)로 제공될 수 있으며, 연산 처리에 이용되는 데이터 및/또는 정보에 따라 PEIO 게이팅 회로들(621B ~ 624B)의 연결 상태가 제어될 수 있다. 또한, 도 13b에서는 메모리 장치(600B)가 도 13a에 도시된 바와 같은 구성 요소들을 포함하는 경우에, 메모리 장치(600B)에 구비되는 다수의 채널들(예컨대, 제1 및 제2 채널들(CH1, CH2))의 일 구현 예가 도시된다.Data from at least one bank among the banks (BANK 0 to BANK 3) may be provided to the processing element 610B according to the type of operation processing (or operands used in the operation processing), and used for operation processing. Connection states of the PEIO gating circuits 621B to 624B may be controlled according to data and/or information. In addition, in FIG. 13B, when the memory device 600B includes the components as illustrated in FIG. 13A, a plurality of channels (eg, first and second channels CH1) provided in the memory device 600B are , CH2)) is shown.

한편, 도 14a에서는 하나의 프로세싱 소자가 하나의 뱅크 그룹에 대응하여 배치되고, 상기 프로세싱 소자는 뱅크 그룹 IO(BGIO) 상에 배치되는 구성 예가 도시된다.Meanwhile, in FIG. 14A, an example of a configuration in which one processing element is disposed corresponding to one bank group, and the processing element is disposed on the bank group IO (BGIO) is shown.

도 14a,b를 참조하면, 메모리 장치(700)는 다수의 뱅크들(BANK 0 ~ BANK 3)을 포함하는 제1 뱅크 그룹(BG0)을 구비하고, 제1 뱅크 그룹(BG0)에 대응하여 배치되는 프로세싱 소자(710)는 뱅크 그룹 IO(BGIO) 를 통해 다수의 뱅크들(BANK 0 ~ BANK 3)로부터 데이터를 수신하고, 또한 데이터 버스를 통해 외부의 호스트로부터 데이터를 수신할 수 있다. 또한, 메모리 장치(700)는 제1 뱅크 그룹(BG0)에 대응하여 배치되는 PEIO 게이팅 회로(720)를 더 포함하고, 상기 PEIO 게이팅 회로(720)는 뱅크 그룹 IO(BGIO)와 데이터 버스 사이의 전기적 연결을 제어할 수 있다.Referring to FIGS. 14A and 14B, the memory device 700 includes a first bank group BG0 including a plurality of banks BANK 0 to BANK 3, and is disposed corresponding to the first bank group BG0. The processing element 710 may receive data from a plurality of banks BANK 0 to BANK 3 through a bank group IO (BGIO), and may also receive data from an external host through a data bus. In addition, the memory device 700 further includes a PEIO gating circuit 720 disposed in correspondence with the first bank group BG0, and the PEIO gating circuit 720 is formed between the bank group IO (BGIO) and the data bus. Electrical connection can be controlled.

일 동작 예로서, 연산 처리 동작 시 PEIO 게이팅 회로(720)는 뱅크 그룹 IO(BGIO)와 데이터 버스 사이의 전기적 연결을 차단할 수 있고, 프로세싱 소자(710)로 제공되는 호스트로부터의 데이터와 뱅크 그룹 IO(BGIO)을 통한 데이터가 충돌되는 것을 방지할 수 있다. 한편, 도 14b에서는 메모리 장치(700)가 도 14a에 도시된 바와 같은 구성 요소들을 포함하는 경우에, 메모리 장치(700)에 구비되는 다수의 채널들(예컨대, 제1 및 제2 채널들(CH1, CH2))의 일 구현 예가 도시된다. 일 예로서, 전술한 실시예들과는 달리 프로세싱 소자(710, (PE0))는 제1 뱅크 그룹(BG0)의 뱅크 그룹 IO(BGIO)와 데이터 버스 사이에 연결되는 구조를 가질 수 있다.As an example of operation, during an operation processing operation, the PEIO gating circuit 720 may cut off the electrical connection between the bank group IO (BGIO) and the data bus, and the data from the host provided to the processing element 710 and the bank group IO Collision of data through (BGIO) can be prevented. Meanwhile, in FIG. 14B, when the memory device 700 includes components as illustrated in FIG. 14A, a plurality of channels (eg, first and second channels CH1) provided in the memory device 700 , CH2)) is shown. As an example, unlike the above-described embodiments, the processing elements 710 and PE0 may have a structure connected between the bank group IO (BGIO) of the first bank group BG0 and the data bus.

도 15는 본 발명의 변형 가능한 실시예에 따른 메모리 장치의 일 구현 예를 나타내는 도면이다. 도 15에서는, 메모리 장치의 뱅크 그룹에 포함되는 다수의 뱅크들 중 어느 하나의 뱅크의 셀 어레이에 저장되는 정보의 일 예가 도시된다.15 is a diagram illustrating an example implementation of a memory device according to a deformable embodiment of the present invention. In FIG. 15, an example of information stored in a cell array of any one bank among a plurality of banks included in a bank group of a memory device is illustrated.

예시적인 실시예들에 따라, 메모리 장치는 그 내부에 PIM 회로를 구비하고, 메모리 컨트롤러(또는, 호스트)로부터의 노멀 커맨드에 응답하여 연산 처리를 수행할 수 있다. 일 예로서, 노멀 커맨드는 메모리 동작을 지시하는 기록 커맨드 및 독출 커맨드 등을 포함할 수 있으며, 셀 어레이의 일부 영역은 연산 처리를 수행하기 위한 명령어와 함께, PIM 회로를 제어하기 위한 제어 정보를 저장하는 PIM 영역으로 이용될 수 있다. 도 15에서는 셀 어레이의 제1 로우(Row 0)에 상기한 명령어 및 제어 정보가 저장되는 예가 도시되나, 본 발명의 실시예들은 이에 국한될 필요가 없이 PIM 영역은 다양하게 설정될 수 있다.According to example embodiments, the memory device may include a PIM circuit therein, and may perform operation processing in response to a normal command from a memory controller (or host). As an example, the normal command may include a write command and a read command for instructing a memory operation, and a portion of the cell array stores control information for controlling the PIM circuit along with a command for performing an operation process. It can be used as a PIM area. 15 illustrates an example of storing the above command and control information in the first row (Row 0) of the cell array, embodiments of the present invention need not be limited thereto, and the PIM area may be variously set.

예시적인 실시예에 따라, 호스트는 셀 어레이의 PIM 영역에 대한 독출을 지시함으로써 메모리 장치가 연산 처리를 수행하도록 제어 동작을 수행할 수 있다. 메모리 장치는 전술한 실시예에서의 명령어에 상응하는 정보와, 연산 처리를 위한 각종 제어 정보들을 독출하고 이를 이용한 연산 처리를 수행할 수 있다. 일 예로서, 메모리 장치는 독출된 명령어를 기반으로 하여 연산 종류(예컨대, 데이터의 이동, MAC 연산 등)를 판단할 수 있고, 독출된 제어 정보를 기반으로 액티브/프리차지 동작을 제어하거나, 프로세싱 소자의 인에이블 여부, 그리고 전술한 실시예들에서의 각종 경로의 제어 동작을 수행할 수 있을 것이다.According to an exemplary embodiment, the host may perform a control operation so that the memory device performs operation processing by instructing to read the PIM region of the cell array. The memory device may read information corresponding to a command in the above-described embodiment and various control information for operation processing, and perform operation processing using the information. As an example, the memory device may determine an operation type (e.g., data movement, MAC operation, etc.) based on a read command, and control or process an active/precharge operation based on the read control information. Whether the device is enabled, and control operations of various paths in the above-described embodiments may be performed.

도 16은 본 발명의 실시예에 따른 데이터 처리 시스템을 포함하는 서버 시스템을 나타내는 블록도이다.16 is a block diagram showing a server system including a data processing system according to an embodiment of the present invention.

도 16을 참조하면, 서버 시스템(800)은 관리자(810) 및 복수의 서버들(820_1 ~ 820_K)을 포함할 수 있다. 복수의 서버들(820_1 ~ 820_K) 각각은 전술한 실시예들에서 설명된 데이터 처리 시스템에 해당할 수 있다. 복수의 서버들(820_1 ~ 820_K)은 소정의 프로토콜(예컨대, PCI, PCIe 등)을 지원하는 버스를 통해 서로 연결되고, 일 예로서 복수의 서버들(820_1 ~ 820_K)은 관리자(810)의 제어에 기반하여 P2P 연결 구조를 통해 서로 통신할 수 있다.Referring to FIG. 16, the server system 800 may include a manager 810 and a plurality of servers 820_1 to 820_K. Each of the plurality of servers 820_1 to 820_K may correspond to the data processing system described in the above-described embodiments. The plurality of servers 820_1 to 820_K are connected to each other through a bus supporting a predetermined protocol (eg, PCI, PCIe, etc.), and as an example, the plurality of servers 820_1 to 820_K are controlled by the manager 810 Can communicate with each other through a P2P connection structure.

어느 하나의 서버(예컨대, 제1 서버(820_1))를 참조하면, 제1 서버(820_1)는 전술한 실시예들에 따른 호스트 및 하나 이상의 메모리 장치(MEM)들을 포함하고, 서버의 기능에 따른 다양한 종류의 연산 처리를 수행하고 그 처리 결과를 저장할 수 있다. 일 실시예에 따라, 메모리 장치(MEM)들 각각은 다수의 뱅크들 및 이에 대응하여 배치되는 프로세싱 소자들을 포함할 수 있으며, 호스트가 연산 커맨드를 제공함으로써 메모리 장치(MEM)의 연산 처리 타이밍을 제어할 수 있다. 또한, 전술한 실시예들에 따라 메모리 장치(MEM)는 다수의 뱅크들과 관련하여 뱅크 로컬 IO(BLIO) 및 뱅크 그룹 IO(BGIO)가 배치되는 특징을 가질 수 있고, 연산 처리 과정에서 뱅크 로컬 IO(BLIO)과 뱅크 그룹 IO(BGIO) 사이의 전기적 연결을 차단하기 위한 구성들을 포함할 수 있다. 다양한 실시예들에서, 서버 시스템(800)은 뉴럴 네트워크 서버 시스템에 해당하고, 제1 서버(820_1)는 방대한 양의 뉴럴 네트워크 연산들을 수행함에 있어서 적어도 일부의 연산들이 메모리 장치(MEM)에 의해 수행될 수 있도록 메모리 장치(MEM)에 대한 제어 동작을 수행할 수 있을 것이다.Referring to any one server (eg, the first server 820_1), the first server 820_1 includes a host and one or more memory devices MEM according to the above-described embodiments, and It can perform various types of operation processing and store the processing result. According to an embodiment, each of the memory devices MEM may include a plurality of banks and processing elements arranged corresponding thereto, and the host provides an operation command to control the operation processing timing of the memory device MEM can do. In addition, according to the above-described embodiments, the memory device MEM may have a feature in that the bank local IO (BLIO) and the bank group IO (BGIO) are arranged in relation to a plurality of banks. Components for blocking electrical connection between the IO (BLIO) and the bank group IO (BGIO) may be included. In various embodiments, the server system 800 corresponds to a neural network server system, and the first server 820_1 performs at least some of the operations by the memory device MEM in performing a vast amount of neural network operations. It will be possible to perform a control operation on the memory device MEM so that it is possible.

이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, exemplary embodiments have been disclosed in the drawings and specifications. In the present specification, embodiments have been described using specific terms, but these are only used for the purpose of describing the technical idea of the present disclosure, and are not used to limit the meaning or the scope of the present disclosure described in the claims. . Therefore, those of ordinary skill in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical scope of the present disclosure should be determined by the technical spirit of the appended claims.

Claims (10)

메모리 장치에 있어서,
적어도 하나의 뱅크 그룹을 포함하고, 각각의 뱅크 그룹은 다수의 뱅크들을 포함하는 메모리 뱅크;
상기 뱅크 그룹에 대응하여 배치되는 제1 프로세싱 소자를 포함하고, 상기 제1 프로세싱 소자는 호스트로부터 제공된 데이터 및 상기 뱅크 그룹으로부터 독출된 데이터 중 적어도 하나를 이용하여 연산 처리를 수행하는 PIM (Processor in Memory) 회로;
상기 뱅크 그룹의 상기 다수의 뱅크들 각각에 대해 배치되는 뱅크 로컬 입출력 라인(IO)과, 상기 뱅크 그룹에 대해 배치되는 뱅크 그룹 입출력 라인(IO) 사이의 전기적 연결을 제어하는 프로세싱 소자 입출력(PEIO) 게이팅 회로; 및
상기 호스트로부터 수신된 커맨드/어드레스에 대한 디코딩 결과에 기반하여, 상기 메모리 뱅크에 대한 메모리 동작이 수행되거나 상기 PIM 회로에 의한 연산 처리가 수행되도록 제어 동작을 수행하는 제어 로직을 구비하고,
상기 제1 프로세싱 소자에 의해 연산 처리가 수행될 때, 상기 PEIO 게이팅 회로는 상기 뱅크 로컬 IO와 상기 뱅크 그룹 IO 사이의 전기적 연결을 차단하는 것을 특징으로 하는 메모리 장치.
In the memory device,
A memory bank including at least one bank group, each bank group including a plurality of banks;
A PIM (Processor in Memory) that performs an operation process using at least one of data provided from a host and data read from the bank group, wherein the first processing element is disposed corresponding to the bank group. ) Circuit;
Processing element input/output (PEIO) controlling electrical connection between a bank local input/output line (IO) disposed for each of the plurality of banks of the bank group and a bank group input/output line (IO) disposed for the bank group Gating circuit; And
A control logic for performing a control operation to perform a memory operation for the memory bank or an operation process by the PIM circuit based on a result of decoding the command/address received from the host,
When an operation process is performed by the first processing element, the PEIO gating circuit cuts off an electrical connection between the bank local IO and the bank group IO.
제1항에 있어서,
상기 제1 프로세싱 소자는, 상기 호스트로부터의 데이터, 상기 뱅크 그룹에서 독출된 데이터 및 내부의 레지스터에 저장된 데이터 중 적어도 하나를 이용한 연산 처리를 수행하는 것을 특징으로 하는 메모리 장치.
The method of claim 1,
Wherein the first processing element performs operation processing using at least one of data from the host, data read from the bank group, and data stored in an internal register.
제1항에 있어서,
상기 뱅크 그룹은 제1 뱅크 및 제2 뱅크를 포함하고,
상기 PEIO 게이팅 회로는, 상기 제1 뱅크에 대응하는 제1 뱅크 로컬 IO 에 배치되는 제1 PEIO 게이팅 회로와, 상기 제2 뱅크에 대응하는 제2 뱅크 로컬 IO 에 배치되는 제2 PEIO 게이팅 회로를 포함하며,
상기 제1 프로세싱 소자는, 상기 제1 뱅크 및 상기 제2 뱅크 중 적어도 하나로부터 데이터를 수신하여 상기 연산 처리를 수행하는 것을 특징으로 하는 메모리 장치.
The method of claim 1,
The bank group includes a first bank and a second bank,
The PEIO gating circuit includes a first PEIO gating circuit disposed in a first bank local IO corresponding to the first bank, and a second PEIO gating circuit disposed in a second bank local IO corresponding to the second bank. And
Wherein the first processing element receives data from at least one of the first bank and the second bank to perform the operation processing.
제3항에 있어서,
상기 제1 프로세싱 소자에 의해 연산 처리가 수행될 때, 상기 제1 및 제2 뱅크 로컬 IO 들과 상기 뱅크 그룹 IO 사이의 전기적 연결이 차단되는 것을 특징으로 하는 메모리 장치.
The method of claim 3,
When an operation process is performed by the first processing element, an electrical connection between the first and second bank local IOs and the bank group IO is cut off.
제1항에 있어서,
상기 메모리 장치는, 상기 호스트로부터 제공된 적어도 하나의 명령어를 저장하는 명령어 메모리를 더 구비하고,
상기 호스트로부터 상기 연산 처리를 지시하는 커맨드/어드레스가 수신될 때, 상기 PIM 회로는 상기 명령어 메모리로부터 독출된 명령어에 대응하는 연산 처리를 수행하는 것을 특징으로 하는 메모리 장치.
The method of claim 1,
The memory device further includes a command memory for storing at least one command provided from the host,
And when a command/address instructing the arithmetic process is received from the host, the PIM circuit performs arithmetic processing corresponding to the command read out from the command memory.
제5항에 있어서, 상기 PIM 회로는,
상기 명령어에 대한 저장 및 독출을 제어하고, 상기 연산 처리에 관련하여 상기 제1 프로세싱 소자를 제어하기 위한 제어 신호들을 생성하는 프로세싱 소자(PE) 제어기를 포함하는 것을 특징으로 하는 메모리 장치.
The method of claim 5, wherein the PIM circuit,
And a processing element (PE) controller for controlling storage and reading of the instruction and generating control signals for controlling the first processing element in connection with the operation processing.
제6항에 있어서, 상기 제1 프로세싱 소자는,
상기 뱅크 로컬 IO를 통해 전달되는 데이터와 상기 뱅크 그룹 IO를 통해 전달되는 데이터를 수신하고, 연산에 이용될 데이터를 출력하는 입력 선택기;
상기 입력 선택기로부터 제공되는 하나 이상의 데이터들에 대한 연산을 수행하는 연산기; 및
상기 연산기에 의한 연산 결과를 저장하는 레지스터 파일을 포함하는 것을 특징으로 하는 메모리 장치.
The method of claim 6, wherein the first processing element,
An input selector for receiving data transmitted through the bank local IO and data transmitted through the bank group IO, and outputting data to be used for operation;
An operator that performs an operation on one or more data provided from the input selector; And
And a register file storing the result of the operation by the operator.
메모리 장치에 있어서,
뱅크 그룹을 포함하고, 상기 뱅크 그룹은 제1 및 제2 뱅크들을 포함하는 메모리 뱅크;
상기 뱅크 그룹에 대응하여 배치되고, 외부의 호스트와 상기 뱅크 그룹 사이에서의 데이터 전달 경로를 포함하는 뱅크 그룹 입출력 라인(IO);
상기 제1 뱅크에 대응하여 배치되고, 상기 제1 뱅크로 제공되는 데이터 및 상기 제1 뱅크로부터 독출된 데이터의 전달 경로를 포함하는 제1 뱅크 로컬 입출력 라인(IO);
상기 뱅크 그룹 IO 및 상기 제1 뱅크 로컬 IO에 연결되고, 상기 호스트로부터 제공된 데이터 및 상기 제1 뱅크로부터 독출된 데이터 중 적어도 하나를 이용하여 연산 처리를 수행하는 제1 프로세싱 소자; 및
상기 제1 프로세싱 소자에 의한 연산 처리가 수행되는 경우, 상기 호스트로부터의 데이터가 상기 메모리 뱅크로 제공됨이 없이 상기 제1 프로세싱 소자로 제공되도록 데이터 전달 경로를 제어하는 제1 프로세싱 소자 입출력(PEIO) 게이팅 회로를 구비하는 것을 특징으로 하는 메모리 장치.
In the memory device,
A memory bank including a bank group, the bank group including first and second banks;
A bank group input/output line (IO) disposed corresponding to the bank group and including a data transmission path between an external host and the bank group;
A first bank local input/output line (IO) disposed corresponding to the first bank and including a transmission path of data provided to the first bank and data read from the first bank;
A first processing element connected to the bank group IO and the first bank local IO and performing an operation process using at least one of data provided from the host and data read from the first bank; And
First processing element input/output (PEIO) gating for controlling a data transfer path so that data from the host is provided to the first processing element without being provided to the memory bank when an operation process is performed by the first processing element A memory device comprising a circuit.
제8항에 있어서,
상기 제1 PEIO 게이팅 회로는 상기 뱅크 그룹 IO와 상기 제1 뱅크 로컬 IO 사이에 배치되고,
상기 제1 프로세싱 소자에 의한 연산 처리가 수행되는 경우, 상기 제1 PEIO 게이팅 회로는 상기 뱅크 그룹 IO와 상기 제1 뱅크 로컬 IO 사이의 연결을 차단하는 것을 특징으로 하는 메모리 장치.
The method of claim 8,
The first PEIO gating circuit is disposed between the bank group IO and the first bank local IO,
When the operation processing by the first processing element is performed, the first PEIO gating circuit cuts off a connection between the bank group IO and the first bank local IO.
제8항에 있어서,
상기 제1 PEIO 게이팅 회로는 상기 뱅크 그룹 IO와 상기 호스트로부터의 데이터를 전달하는 데이터 버스 사이에 배치되고,
상기 제1 프로세싱 소자에 의한 연산 처리가 수행되는 경우, 상기 제1 PEIO 게이팅 회로는 상기 뱅크 그룹 IO와 상기 데이터 버스 사이의 연결을 차단하는 것을 특징으로 하는 메모리 장치.
The method of claim 8,
The first PEIO gating circuit is disposed between the bank group IO and a data bus transferring data from the host,
And the first PEIO gating circuit cuts off a connection between the bank group IO and the data bus when operation processing is performed by the first processing element.
KR1020190151617A 2019-03-11 2019-11-22 Memory Device performing calculation process and Operation Method thereof KR20200108768A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/810,344 US11094371B2 (en) 2019-03-11 2020-03-05 Memory device for processing operation and method of operating the same
CN202010165077.XA CN111694514B (en) 2019-03-11 2020-03-11 Memory device for processing operations and method of operating the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962816509P 2019-03-11 2019-03-11
US62/816,509 2019-03-11

Publications (1)

Publication Number Publication Date
KR20200108768A true KR20200108768A (en) 2020-09-21

Family

ID=72707900

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020190151617A KR20200108768A (en) 2019-03-11 2019-11-22 Memory Device performing calculation process and Operation Method thereof
KR1020190161673A KR20200108772A (en) 2019-03-11 2019-12-06 Method of performing internal processing operations with pre-defined protocol interface of memory device
KR1020190161674A KR20200108773A (en) 2019-03-11 2019-12-06 Memory Device performing calculation process, Data Processing System having the same and Operation Method of Memory Device
KR1020200013303A KR20200108774A (en) 2019-03-11 2020-02-04 Memory Device including instruction memory based on circular queue and Operation Method thereof

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020190161673A KR20200108772A (en) 2019-03-11 2019-12-06 Method of performing internal processing operations with pre-defined protocol interface of memory device
KR1020190161674A KR20200108773A (en) 2019-03-11 2019-12-06 Memory Device performing calculation process, Data Processing System having the same and Operation Method of Memory Device
KR1020200013303A KR20200108774A (en) 2019-03-11 2020-02-04 Memory Device including instruction memory based on circular queue and Operation Method thereof

Country Status (2)

Country Link
KR (4) KR20200108768A (en)
SG (3) SG10202002213RA (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230014614A (en) * 2021-07-21 2023-01-30 고려대학교 산학협력단 Memory device performing in-memory operation and method thereof
US12032829B2 (en) 2021-07-21 2024-07-09 Samsung Electronics Co., Ltd. Memory device performing in-memory operation and method thereof

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11537323B2 (en) 2020-01-07 2022-12-27 SK Hynix Inc. Processing-in-memory (PIM) device
US11908541B2 (en) 2020-01-07 2024-02-20 SK Hynix Inc. Processing-in-memory (PIM) systems
TW202141290A (en) 2020-01-07 2021-11-01 韓商愛思開海力士有限公司 Processing-in-memory (pim) system and operating methods of the pim system
US11281583B1 (en) 2020-09-24 2022-03-22 Hughes Network Systems, Llc Unified memory management for a multiple processor system
US11893278B2 (en) 2021-02-08 2024-02-06 Samsung Electronics Co., Ltd. Memory controller and memory control method for generating commands based on a memory request
KR20230034634A (en) 2021-09-03 2023-03-10 에스케이하이닉스 주식회사 Memory system and operating method thereof
US20230207038A1 (en) * 2021-12-29 2023-06-29 Advanced Micro Devices, Inc. Dram specific interface calibration via programmable training sequences

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230014614A (en) * 2021-07-21 2023-01-30 고려대학교 산학협력단 Memory device performing in-memory operation and method thereof
US12032829B2 (en) 2021-07-21 2024-07-09 Samsung Electronics Co., Ltd. Memory device performing in-memory operation and method thereof

Also Published As

Publication number Publication date
KR20200108773A (en) 2020-09-21
KR20200108774A (en) 2020-09-21
SG10202002231WA (en) 2020-10-29
TW202044043A (en) 2020-12-01
TW202111540A (en) 2021-03-16
KR20200108772A (en) 2020-09-21
SG10202002213RA (en) 2020-10-29
SG10202002232UA (en) 2020-10-29

Similar Documents

Publication Publication Date Title
CN111694514B (en) Memory device for processing operations and method of operating the same
KR20200108768A (en) Memory Device performing calculation process and Operation Method thereof
US11482278B2 (en) Method of performing internal processing operation of memory device
US11416178B2 (en) Memory device performing parallel calculation processing, operating method thereof, and operating method of memory controller controlling the memory device
US10083722B2 (en) Memory device for performing internal process and operating method thereof
US12106107B2 (en) Memory device for processing operation, data processing system including the same, and method of operating the memory device
KR102152281B1 (en) Apparatus and method for simultaneously accessing multiple partitions of nonvolatile memory
US12099455B2 (en) Memory device with internal processing interface
CN114153373A (en) Memory system for performing data operation in memory device and method of operating the same
US20190042162A1 (en) Back-end memory channel that resides between first and second dimm slots and applications thereof
US20200293452A1 (en) Memory device and method including circular instruction memory queue
US9176906B2 (en) Memory controller and memory system including the same
EP4375840A1 (en) Memory controller, electronic system including the same and method of controlling memory access
TWI757300B (en) Memory device for performing internal process and operating method thereof
KR102345539B1 (en) Memory Device performing internal process and Operating Method thereof
US11620088B2 (en) Dual speed memory
US11762582B2 (en) Background operations in memory
US20190096459A1 (en) Memory devices for performing multiple write operations and operating methods thereof
TWI856072B (en) Memory device, data processing system, and method of operating memory device
US12056371B2 (en) Memory device having reduced power noise in refresh operation and operating method thereof
US11531490B2 (en) Data transfer in port switch memory
KR20230082529A (en) Memory device reducing power noise in refresh operation and Operating Method thereof

Legal Events

Date Code Title Description
A201 Request for examination