KR20220127601A - 인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 - Google Patents

인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 Download PDF

Info

Publication number
KR20220127601A
KR20220127601A KR1020210032095A KR20210032095A KR20220127601A KR 20220127601 A KR20220127601 A KR 20220127601A KR 1020210032095 A KR1020210032095 A KR 1020210032095A KR 20210032095 A KR20210032095 A KR 20210032095A KR 20220127601 A KR20220127601 A KR 20220127601A
Authority
KR
South Korea
Prior art keywords
command
pim
memory device
address
memory
Prior art date
Application number
KR1020210032095A
Other languages
English (en)
Inventor
유학수
강신행
노유환
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020210032095A priority Critical patent/KR20220127601A/ko
Priority to CN202210082099.9A priority patent/CN115083464A/zh
Priority to US17/591,928 priority patent/US12099455B2/en
Publication of KR20220127601A publication Critical patent/KR20220127601A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

내부 프로세싱 동작을 수행하는 메모리 장치가 개시된다. 본 개시의 예시적 실시 예에 따른 메모리 장치는, 내부 프로세싱 동작을 수행하는 내부 프로세서를 포함하는 PIM(processor in memory) 회로 및 PIM 회로와 연결되는 인터페이스 회로를 포함하고, 상기 인터페이스 회로는, 제1 핀들을 통해 수신되는 커맨드 및 어드레스를 디코딩하여 내부 커맨드를 생성하도록 구성되는 커맨드 어드레스 디코더(command address decoder), PIM 동작 모드의 제어에 관련된 전압 신호를 수신하도록 구성되는 제2 핀 및 상기 내부 커맨드 및 상기 전압 신호에 기초하여 적어도 하나 이상의 커맨드 모드 비트(command mode bit: CMB)를 생성하도록 구성되는 커맨드 모드 디코더를 포함하고, 상기 인터페이스 회로는, 상기 CMB에 기초하여 내부 제어 신호들을 상기 PIM 회로로 출력하여 상기 PIM 회로의 상기 내부 프로세싱 동작을 제어하도록 구성되는 것을 특징으로 한다.

Description

인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법{MEMORY SYSTEM, MEMORY DEVICE OF PERFORMING INTERNAL PROCESSING OPERATIONS WITH INTERFACE, OPERATION METHOD OF THE MEMORY DEVICE HAVING THE SAME}
본 개시는 메모리 장치에 관한 것으로, 상세하게는 내부 프로세싱을 수행하는 메모리 장치 및 메모리 장치의 동작 방법에 관한 것이다.
고성능 전자 시스템에 널리 사용되고 있는 반도체 메모리 장치(semiconductor memory device)는 그 용량 및 속도가 증가하고 있다. 메모리 장치는 데이터 등 각종 정보를 저장하는 용도로 이용될 수 있으며, 일 예로서 뉴럴 네트워크(neural network) 연산 등 다양한 종류의 연산 처리에 이용되는 데이터를 저장하거나 연산 처리 결과를 저장하는 용도로 이용될 수 있다. 대용량 연산 및 메모리 능력을 갖는 컴퓨팅 시스템의 연산 동작들(computation operations) 중 일부를 내부 프로세싱으로 수행하도록, 프로세서-인-메모리(processor in memory: 이하 “PIM”이라 통칭한다) 타입의 메모리 장치가 개발되고 있다.
PIM 회로는 외부에서 제공되는 데이터와 메모리 장치 내부에 저장된 정보를 이용한 다양한 종류의 연산 처리를 수행할 수 있으며, 메모리 장치의 내부 프로세싱을 통하여 컴퓨팅 시스템의 연산 동작 부담이 감소하게 되어 전체적인 메모리 성능이 향상될 수 있다. 그러나, 내부 프로세싱을 위한 별도의 인터페이스가 요구됨에 따라 메모리 장치의 하드웨어 구성(configurations) 및/또는 구현(implementations)이 복잡하고 어려워지기 때문에, 내부 프로세싱 동작을 지원하기 위한 비용 증가와 같은 문제점이 있다.
본 개시의 기술적 사상이 해결하려는 과제는, 복수의 메모리 프로토콜을 갖는 인터페이스를 이용하여 내부 프로세싱 동작을 수행하는 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 메모리 시스템을 제공하는 데에 있다.
본 개시의 예시적 실시 예에 따른 메모리 장치는, 내부 프로세싱 동작을 수행하는 내부 프로세서를 포함하는 PIM(processor in memory) 회로 및 PIM 회로와 연결되는 인터페이스 회로를 포함하고, 상기 인터페이스 회로는, 제1 핀들을 통해 수신되는 커맨드 및 어드레스를 디코딩하여 내부 커맨드를 생성하도록 구성되는 커맨드 어드레스 디코더(command address decoder), PIM 동작 모드의 제어에 관련된 전압 신호를 수신하도록 구성되는 제2 핀 및 상기 내부 커맨드 및 상기 전압 신호에 기초하여 적어도 하나 이상의 커맨드 모드 비트(command mode bit: CMB)를 생성하도록 구성되는 커맨드 모드 디코더를 포함하고, 상기 인터페이스 회로는, 상기 CMB에 기초하여 내부 제어 신호들을 상기 PIM 회로로 출력하여 상기 PIM 회로의 상기 내부 프로세싱 동작을 제어하도록 구성되는 것을 특징으로 한다.
본 개시의 기술적 사상에 따르면, 다양한 시스템 환경에 따라 각 시스템 환경에 적합한 PIM 프로토콜을 선택할 수 있도록 하는 PIM 인터페이스 회로를 제공함으로써 다양한 조건의 메모리 시스템에서 PIM 회로를 동작시킬 수 있다. 즉, 복수 개의 커맨드 모드를 구비한 PIM 인터페이스 회로를 제공하여 어떤 PIM 프로토콜이 선택되든지 이를 인식하여 PIM 회로를 동작 시킬 수 있다.
도 1a 내지 도 1c는 본 개시의 예시적 실시 예들에 따른 내부 프로세싱 동작을 수행하는 메모리 장치를 포함하는 메모리 시스템을 설명하는 도면들이다.
도 2는 본 개시의 예시적 실시 예에 따른 내부 프로세싱 동작을 수행하는 메모리 장치를 설명하는 도면이다.
도 3은 도 2의 메모리 장치에 포함된 PIM 인터페이스 회로를 예시적으로 설명하는 도면이다.
도 4는 본 개시의 예시적 실시 예의 메모리 장치가 HBM(high bandwidth memory)을 포함하는 예를 나타내는 도면이다.
도 5는 도 3의 커맨드 모드 디코더의 동작을 위한 커맨드 모드 진리표의 일 예를 설명하는 도면이다.
도 6a 및 도 6b는 로우 커맨드 진리표를 설명하는 도면이다.
도 7a 및 도 7b는 컬럼 커맨드 진리표를 설명하는 도면이다.
도 8은 도 1b의 실시 예에 따른 미리 정해진 커맨드/어드레스 시퀀스를 이용한 PIM 회로의 동작을 설명하는 도면이다.
도 9는 본 개시의 예시적 실시 예에 따른 메모리 장치의 동작 방법을 설명하는 플로우차트이다.
도 10은 본 개시의 예시적 실시 예에 따른 메모리 시스템의 동작 방법을 설명하는 플로우차트이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시 예들에 대해 상세히 설명한다.
도 1a 내지 도 1c는 본 개시의 예시적 실시 예들에 따른 내부 프로세싱 동작을 수행하는 메모리 장치를 포함하는 메모리 시스템을 설명하는 도면들이다.
도 1a 내지 도 1c를 참조하면, 메모리 시스템(100)은 호스트 장치(110) 및 메모리 장치(120)를 포함할 수 있다. 호스트 장치(110)는 커맨드/어드레스 신호 라인들(CMD/ADDR)(134) 및 데이터 라인들(DQ)(136)을 통하여 메모리 장치(120)와 통신적으로 연결(communicatively connected)될 수 있다.
도면의 간결성을 위하여, 호스트 장치(110)와 메모리 장치(120) 사이에 커맨드/어드레스 신호 라인들(134)과 데이터 라인들(136)이 각각 하나의 신호 라인으로 연결되는 것으로 도시되어 있으나, 실제로는 복수의 신호 라인들을 통해 연결될 수 있다.
일부 예는 "연결된(connected)" 및/또는 "결합된(coupled)" 이라는 표현을 그들의 파생어들과 함께 사용하여 설명될 수 있다. 이들 용어가 서로에 대해 꼭 동의어로서 의도된 것은 아니다. 예를 들어, "연결된" 및/또는 "결합된" 이라는 용어들을 이용한 설명은, 2개 이상의 요소가 서로 직접적으로 물리적 또는 전기적 접촉하는 것을 나타낼 수 있다. 또한, 용어 "연결" 및/또는 "결합"은 2개 이상의 요소가 서로 직접 접촉하고 있지 않지만 여전히 서로 협력하거나 상호 작용하는 것도 의미할 수 있다.
호스트 장치(110)는 예시적으로, 컴퓨터, 노트북, 서버, 워크 스테이션, 휴대용 통신 단말기, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 스마트 폰, 웨어러블(Wearable) 장치와 같은 컴퓨팅 시스템일 수 있다. 또는 호스트 장치(110)는 그래픽스 카드와 같은 컴퓨팅 시스템에 포함된 구성 요소들 중 일부일 수 있다.
도 1에는 도시되지 않았으나, 호스트 장치(110)는 메모리 시스템(100) 내 컴퓨터 동작을 수행하는 기능 블록(functional block)으로서, 중앙 처리 유닛(Central Processing Unit: CPU), 디지털 신호 프로세서(Digital Signal Processor: DSP), 그래픽 처리 유닛 (Graphics Processing Unit: GPU), 또는 어플리케이션 프로세서(Application Processor: AP)를 포함할 수 있다. 또한, 호스트 장치(110)는 메모리 장치(120)로부터 데이터 송수신을 관리하는 메모리 컨트롤러(112)를 포함할 수 있다.
호스트 장치(110)는 메모리 컨트롤러(112)를 통해 메모리 장치(120)를 제어할 수 있다. 이하에서는 메모리 컨트롤러(112)가 메모리 장치(120)를 제어하는 것으로 설명될 것이나, 본 개시의 실시 예들은 이에 국한되지 않는다. 예컨대, 메모리 컨트롤러(112)는 호스트 장치(110) 외부에 구비되는 구성에 해당하고, 호스트 장치(110)가 메모리 장치(120)를 제어하는 것으로 설명되어도 무방할 것이다.
메모리 컨트롤러(112)는 호스트 장치(110)의 메모리 리퀘스트에 따라 메모리 장치(120)를 엑세스할 수 있다. 메모리 컨트롤러(112)는 메모리 장치(120)의 메모리 셀(206, 도 2)을 물리적으로 또는 논리적으로 구분하는 특정 어드레스 정보 또는 메모리가 인식할 수 있는 커맨드들을 생성할 수 있다. 구체적으로, 특정 어드레스는 뱅크 어드레스, 로우 어드레스 및 칼럼 어드레스 중 적어도 하나를 포함할 수 있고, 커맨드는 노멀 메모리의 동작을 위한 커맨드 모드, 즉 노멀 동작 모드일 경우 특정 뱅크의 로우 어드레스를 선택하여 특정 워드 라인을 활성화 시키기 위한 액티브 커맨드(active command), 메모리 셀의 특정 어드레스의 데이터를 독출하기 위한 리드 커맨드(read command), 메모리 셀의 특정 어드레스에 데이터를 기입하기 위한 라이트 커맨드(write command) 또는 비트 라인을 프리 차지 하기 위한 프리차지 커맨드(precharge command) 등을 포함할 수 있다. 본 개시의 일 실시 예에 따르면, PIM의 동작을 위한 커맨드 모드일 경우, 즉 PIM 동작 모드일 경우 커맨드는 PIM을 위한 액티베이트(activate) 커맨드, PIM을 위한 리드/라이트 커맨드, PIM을 위한 프리차지 커맨드 등을 포함할 수 있다.
메모리 컨트롤러(112)는 메모리 위치에 대응하는 로우 및 칼럼을 선택하는 동작, 메모리 위치에 데이터를 기입하는 동작 및 기입된 데이터를 독출하는 동작을 인터페이스를 통하여 메모리 장치(120)에 대해 수행할 수 있다. 도 1a를 참조하면, 메모리 장치(120)는 PIM 인터페이스 회로(122)를 포함할 수 있고, PIM 인터페이스 회로(122)를 통해 메모리 컨트롤러(112) 또는 호스트 장치(110)와 연결될 수 있다.
메모리 컨트롤러(112)는 커맨드/어드레스 신호 라인들(134)을 통해 메모리 장치(120)에 커맨드(CMD)와 어드레스(ADDR)를 제공함으로써, 메모리 장치(120)에 대한 기입 동작 또는 독출 동작을 제어할 수 있다. 또한, 기입 동작을 위한 데이터와 독출 된 데이터가 메모리 컨트롤러(112)와 메모리 장치(120) 사이에서 데이터 라인들(136)을 통하여 송수신될 수 있다.
메모리 장치(120)는 메모리 컨트롤러(112)의 제어에 따라 데이터를 기입하거나 데이터를 독출 할 수 있다. 예시적으로, 메모리 장치(120)는 HBM(High Bandwidth Memory) 장치일 수 있다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니며, 메모리 장치(120)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR(Low Power Double Data Rate) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, Wide I/O DRAM, HMC(Hybrid Memory Cube) 등과 같은 휘발성 메모리 장치들 중 어느 하나일 수 있다. 실시 예에 따라, 메모리 장치(120)는 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등과 같은 비 휘발성 메모리 장치들 중 어느 하나일 수 있다. 메모리 장치(120)가 HBM에 해당하는 경우, 도 4에서 후술한다.
일 실시 예에 따라, 메모리 장치(120)는 노멀 동작 모드와 PIM 동작 모드 중 어느 하나의 동작 모드로 동작할 수 있다. 노멀 동작 모드는 일반적인 데이터 트랜잭션 동작을 수행하는 동작 모드를 말하고, PIM 동작 모드는 PIM 회로를 이용하여 내부 프로세싱 동작을 수행하는 동작 모드로 정의할 수 있다. PIM 회로를 효율적으로 동작시키기 위해서는 메모리 컨트롤러(112) 및 메모리 장치(120) 간의 통신 프로토콜 지원이 필요하다. 종래의 메모리 장치(예를 들어, DRAM)는 노멀 동작 모드에서 동작하기 위한 프로토콜은 지원하나, 이 외에 내부 프로세싱 유닛을 작동 시킬 수 있는 커맨드를 위한 프로토콜은 지원하지 않고 있다. 본 개시의 실시 예들에 따른 메모리 장치(120)는 복수 개의 통신 프로토콜을 구비하여 다양한 시스템 환경에 따라 각 메모리 시스템에 적합한 통신 프로토콜을 인식하여 PIM 회로를 구동할 수 있다.
다양한 시스템 환경 중 하나는, 도 1a를 참조하면, PIM 회로 동작을 위한 통신 프로토콜을 인식하기 위해 외부 핀(external pin)(132)을 사용할 수 있도록 지원 가능한 메모리 컨트롤러(112)를 포함하는 메모리 시스템(100)일 수 있다. 메모리 장치(120)는 메모리 컨트롤러(112)와 연결하기 위한 커넥터들을 포함할 수 있고, 커넥터들은 핀들, 볼들, 신호 라인들, 또는 다른 하드웨어 컴포넌트들로서 구현될 수 있다.
도 1a의 실시 예에 따르는 메모리 시스템(100)은 별도의 외부 핀(external pin)(132)을 포함하는 메모리 장치(120) 및 외부 핀(132)을 사용하여 PIM 회로를 동작시킬 수 있도록 지원하고 PIM 커맨드를 생성하여 제공할 수 있는 메모리 컨트롤러(112)를 포함할 수 있다. PIM 커맨드란 PIM 동작 모드에서 PIM 회로를 동작시킬 수 있도록 구성된 커맨드를 의미할 수 있다.
다양한 시스템 환경 중 다른 하나는, 도 1b를 참조하면, PIM 회로 동작을 위한 통신 프로토콜을 인식하기 위한 외부 핀(external pin)(132)의 사용을 지원하지 않고 커맨드를 수정할 수 없는 메모리 컨트롤러(112)를 포함하는 메모리 시스템(100)일 수 있다.
도 1b의 실시 예에 따르는 메모리 시스템(100)은 별도의 외부 핀(132)을 구비하나 외부 핀(132)을 사용하지 않는 메모리 장치(120) 및 외부 핀(132)을 사용하여 PIM 회로를 동작시킬 수 있도록 지원하지 않고 PIM 동작 모드의 PIM 커맨드를 생성하지 않는 메모리 컨트롤러(112)를 포함할 수 있다. 실시 예에 따라, 하드웨어적으로 외부 핀(132)은 존재하나 메모리 컨트롤러(112)가 PIM 회로를 동작시킬 수 있도록 지원하지 않음에 따라, 외부 핀이 시스템 상에서 로우(low) 레벨의 전압으로 고정되게 연결되는 경우를 포함할 수 있다. 이와 같이 메모리 컨트롤러(112)가 외부 핀(132)을 통한 신호를 제공하지 않는 메모리 시스템 환경의 경우, 메모리 장치(120)는 미리 정해진 일련의 커맨드/어드레스 시퀀스를 이용하여 PIM 회로 동작을 위한 통신 프로토콜을 생성하여 PIM 회로를 동작할 수 있다.
도 1c를 참조하면, 또 다른 실시 예로, 다양한 시스템 환경 중 하나는, PIM 회로 동작을 위한 통신 프로토콜을 인식하기 위한 외부 핀의 사용을 지원하지 않지만 PIM 커맨드를 생성하여 제공할 수 있는 메모리 컨트롤러(112)를 포함하는 메모리 시스템(100)일 수 있다.
도 1c의 실시 예에 따르는 메모리 시스템(100)은 별도의 외부 핀(external pin)(132)을 구비하나, 외부 핀(132)을 사용하지 않는 메모리 장치(120) 및 외부 핀(132)을 사용하여 PIM 회로를 동작시킬 수 있도록 지원하지 않지만 PIM 동작 모드의 커맨드를 생성할 수 있는 메모리 컨트롤러(112)를 포함할 수 있다. 도 1c에 해당하는 일 실시 예로, 메모리 컨트롤러(112)는 PIM 회로 동작을 위한 통신 프로토콜을 인식하기 위해 DBI(data bus inversion) 핀 또는 DM(data mask) 핀(138)을 이용할 수 있도록 지원할 수 있다. DBI 핀은 DC 전력 소모를 줄이기 위해 데이터 버스를 선택적으로 반전시켜 시그널링하기 위한 핀이며, DB 핀은 일부 데이터를 기입 및 독출하지 못하게 하는 시그널링을 위한 핀으로 정의 할 수 있다.
도 1c의 실시 예에 따르면, 메모리 컨트롤러(112)가 PIM 동작 모드의 PIM 커맨드를 생성할 수 있도록 수정됨으로써, DBI/DM 핀(138)이 PIM 동작 모드로 인에이블(enable) 되면 PIM 회로의 동작을 위한 외부 핀(132)과 동일한 역할을 위해 사용될 수 있다. 메모리 장치(120)는 PIM 동작 모드의 PIM 커맨드를 이용하여 PIM 회로 동작을 위한 통신 프로토콜을 생성하여 PIM 회로를 동작할 수 있다. 실시 예에 따라, DBI/DM 핀(138)이 선택적인 핀(optional pin)으로써 여러가지 모드에서 동작하기 위해서는 메모리 장치(120)에 추가적으로 하드웨어적인 구성이 필요할 수 있다.
도 2는 본 개시의 예시적 실시 예에 따른 내부 프로세싱 동작을 수행하는 메모리 장치를 설명하는 도면이다.
도 2를 참조하면, 메모리 장치(200)는 메모리 셀(206), 프로세싱 유닛(processing unit: PU)(208), 레지스터들(210, 212) 및 DQ 버퍼들(DQ buffers)(214)을 포함하는 PIM 회로(204) 및 PIM ISA(Instruction Set Architecture) 생성기(216)를 포함하는 PIM 인터페이스 회로(202)를 포함할 수 있다. 도 2는 도 1a의 실시 예로써 외부 핀(132)이 포함된 메모리 장치(200)로 도시 되었으나, 도 1b 또는 도 1c의 실시 예들에도 적용될 수 있다.
일 예로, 메모리 셀(206)은 PIM 회로(204) 내부에 포함된 디램 셀(DRAM cell)일 수 있다. 메모리 셀(206)은 복수 개의 메모리 셀들로 구성될 수 있으며, 메모리 셀들을 포함하는 셀 어레이 또는 복수 개의 뱅크들로 구성될 수 있다. 뱅크는 다양하게 정의될 수 있으며, 일 예로서 메모리 셀들을 포함하는 구성으로 정의될 수 있고, 또는 메모리 셀들에 함께 하나 이상의 주변 회로들을 포함하는 구성으로 정의될 수도 있을 것이다. 도 2의 실시 예에서 PIM 회로(204)가 메모리 셀(206)를 포함하는 것으로 도시 되었으나, 메모리 셀(206)은 메모리 장치(200)에 구비되는 셀 어레이를 포함하는 개념일 수 있고, 메모리 셀(206), DQ 버퍼들(214) 등은 PIM 회로(204)의 외부에 구비되는 것으로 설명될 수도 있다.
프로세싱 유닛(208)은 호스트 장치(110)에 포함된 프로세서(예를 들어, CPU)와 유사하게 프로세싱 기능을 갖는 하드웨어로 정의될 수 있다. 일 예로, 프로세싱 유닛(208)은 산술 논리 연산 장치(arithmetic logic unit: ALU)일 수 있다. 프로세싱의 대상에 해당하는 피연산자(operand) 및/또는 프로세싱 결과가 레지스터들(210, 212)에 임시적으로 저장될 수 있다.
DQ 버퍼들(214)은 메모리 장치(200)의 데이터 라인들(DQ)(136)을 통해 메모리 컨트롤러(112)로부터 입력 또는 메모리 컨트롤러(112)로 출력되는 데이터가 저장되는 버퍼들로 정의될 수 있다.
PIM 회로(204) 내의 메모리 셀(206), 프로세싱 유닛(208), 레지스터들(210, 212) 및 DQ 버퍼들(214)에 저장된 데이터는 데이터패스(datapath)를 통해 이동될 수 있다.
PIM 인터페이스 회로(202)는 PIM ISA(instruction set architecture) 생성기(216)를 포함할 수 있다. PIM 인터페이스 회로(202)는 메모리 컨트롤러(112)가 생성한 커맨드를 수신하여 메모리 장치(200) 내부를 제어하는 내부 제어 신호로써 PIM ISA(instruction set architecture)를 생성 및 출력할 수 있다. ISA는 "명령어 집합 구조"를 의미하고, 프로세싱 유닛(208)이 기능을 이해하고 실행할 수 있는 명령어들의 집합으로 정의할 수 있다. 본 개시의 실시 예에 따르면, PIM 인터페이스 회로(202)는 다양한 시스템 환경에 따라 복수 개의 통신 프로토콜 방식으로 인가되는 커맨드 및 어드레스를 수신하여 PIM 회로(204)를 동작시킬 수 있다.
실시 예에 따라, PIM ISA 생성기(216)는 PIM 인터페이스 회로(202) 외부에 별도의 장치로 구현될 수 있다. 노멀 동작 모드에서 노멀 메모리의 동작을 위한 통신 프로토콜과는 별개로, 프로세싱 유닛(208)이 포함된 메모리 장치(200)인 경우에는 프로세싱 유닛(208)을 작동시킬 수 있는 명령어가 필요하고, PIM ISA 생성기(216)는 메모리 컨트롤러(112)로부터 수신된 커맨드를 PIM 회로가 인식할 수 있는 ISA로 변환(conversion)하여 생성할 수 있다.
도 3은 도 2의 메모리 장치에 포함된 PIM 인터페이스 회로를 예시적으로 설명하는 도면이다.
도 3을 참조하면, 메모리 장치(200, 도 2)에 포함된 PIM 인터페이스 회로(300)는 커맨드/어드레스 디코더(302), 커맨드 모드 디코더(304) 및 PIM ISA 생성기(306)를 포함할 수 있다. 도 3은 외부 핀(132)이 사용되는 도 1a의 실시 예를 반영하여 도시 되었으나, 도 1b 또는 도 1c의 실시 예들에도 적용될 수 있다.
PIM 인터페이스 회로(300)는 커맨드 어드레스 신호 라인들(134)을 통해 커맨드 및 어드레스를 제공받을 수 있다. 커맨드/어드레스 디코더(302)는 메모리 컨트롤러로부터의 커맨드 및 어드레스에 대한 디코딩 동작을 수행하여 내부 커맨드를 생성할 수 있다.
커맨드 모드 디코더(304)는 내부 커맨드를 수신하여, 적어도 하나 이상의 커맨드 모드 비트(command mode bit: CMB)를 생성할 수 있다. 예를 들면, 커맨드 모드 디코더(304)는 내부 커맨드와 외부 핀(132)을 통한 신호를 기초로 다수의 커맨드 모드 비트들을 생성할 수 있고, 일 예로서 5개의 커맨드 모드 비트들인 CMB[0], CMB[1], CMB[2], CMB[3], CMB[4]를 생성할 수 있다. 커맨드 모드 디코더(304)는 생성 된 CMB로부터 통신 프로토콜을 파악하여 커맨드 모드를 결정할 수 있다. 도 3의 실시 예에서 외부 핀(132) 상의 신호는 커맨드 어드레스 디코더(302)를 통해 커맨드 모드 디코더(304)에 수신되는 것으로 도시 되었으나, 실시 예에 따라 커맨드 어드레스 디코더(302)를 통하지 않고 커맨드 모드 디코더(304)에서 직접 수신될 수도 있다.
도 3의 실시 예에 따르면, 생성 된 CMB들 중 CMB[0] 및 CMB[1]은 AND 게이트들(316, 324) 각각의 입력이 될 수 있다. AND 게이트들(316, 324)의 출력은 각각 PIM 동작 레지스터(318) 및 커맨드 레지스터 파일(326)에 제공될 수 있다. CMB[2], CMB[3] 및 CMB[4]는 멀티플렉서들(320, 322, 328)의 선택 신호의 입력이 될 수 있다. 커맨드 어드레스 디코더(302)에서 출력된 커맨드/어드레스(또는, 내부 커맨드) 및 PIM 동작 레지스터(318)로부터의 신호를 입력으로 받아 제1 멀티플렉서(320)에서 CMB[2]에 의해 멀티플렉싱이 수행된다. 커맨드 어드레스 디코더(302)에서 출력된 커맨드/어드레스 및 커맨드 레지스터 파일(326)로부터의 신호를 입력으로 받아 제2 멀티플렉서(322)에서 CMB[3]에 의해 멀티플렉싱이 수행된다. 또한, 커맨드 어드레스 디코더(302)에서 출력된 커맨드/어드레스 및 커맨드 레지스터 파일(326)로부터의 신호를 입력으로 받아 제3 멀티플렉서(328)에서 CMB[4]에 의해 멀티플렉싱이 수행된다. 도 3에 도시된 CMB[0] 내지 CMB[4]를 멀티플렉싱 하는 동작은 예시적인 실시 예에 불과한 바, 이에 국한되지 않고 다른 방식으로 구현된 멀티플렉서를 포함하는 인터페이스 회로에 본 개시의 기술적 사상이 적용될 수 있음은 분명하다. 커맨드 모드 비트를 이용하여 커맨드 모드를 결정하기 위한 커맨드 모드 진리표의 일 예는 도 5에서 구체적으로 후술한다.
일 예로서, PIM 동작 레지스터(318) 및 커맨드 레지스터 파일(326)에는 PIM 회로의 동작과 관련하여 모드 인에이블, 데이터 패스 제어, PU 제어에 관련된 내부 커맨드들이 저장될 수 있고, CMB[0], CMB[1]의 값에 기반하여 멀티플렉서들(320, 322, 328)을 통해 PIM ISA 생성기(306)로 제공될 수 있다.
PIM 인터페이스 회로(300)는 커맨드/어드레스 디코더(302), 커맨드 모드 디코더(304) 및 PIM ISA 생성기(306)의 상술한 동작을 수행함으로써, PIM 회로가 인식할 수 있는 PIM 회로 동작을 위한 제어 신호들(310, 312, 314)을 생성할 수 있다. 제어 신호들(310, 312, 314)은 멀티플렉서들(320, 322, 328)들의 출력이 PIM ISA 생성기(306)에 의해 PIM 회로가 인식할 수 있는 ISA로 변환된 신호에 해당한다.
예시적으로, PIM operation Mode Enable/Disable Signal(310)은 PIM 동작 모드의 인에이블(enable) 또는 디스에이블(disable)을 제어하는 신호로 정의할 수 있다. PIM Datapath Control Signal(312)은 PIM 회로 내의 메모리 셀(206, 도 2), 프로세싱 유닛(processing unit: PU)(208, 도 2), 레지스터들(210, 212, 도 2) 및 DQ 버퍼들(DQ buffers)(214, 도 2) 간의 데이터패스(datapath)를 제어하는 신호로 정의할 수 있다. 또한, PIM PU Control Signal(314)은 프로세싱 유닛(208, 도 2)의 산술 연산 및/또는 논리 연산 동작을 제어하는 신호로 정의할 수 있다.
도 4는 본 개시의 예시적 실시 예의 메모리 장치가 HBM(high bandwidth memory)을 포함하는 예를 나타내는 도면이다.
본 개시의 실시 예들에 따르면, 메모리 장치(120, 200)는 HBM(High Bandwidth Memory) 장치일 수 있다. HBM(400)은 서로 독립된 인터페이스 회로를 갖는 다수의 채널들을 포함함으로써 증가된 대역 대역폭(Bandwidth)을 가질 수 있다. 도 4를 참조하면, HBM(400)는 다수 개의 다이들을 포함할 수 있으며, 일 예로서 버퍼 다이(Buffer Die) 또는, 로직 다이(410)와 이에 적층된 하나 이상의 코어 다이들을 포함할 수 있다. 도 4의 예에서는, 4개의 코어 다이(Core Die)들이 HBM(400)에 구비되는 예가 도시되었으나, 코어 다이들의 개수는 다양하게 변경될 수 있다. 코어 다이들 중 제1 코어 다이(420)를 참조하여 도 4의 구성을 설명하면 다음과 같다.
하나 이상의 채널들로써, 도 4의 예에서는 제1 코어 다이(420)가 제1 채널 및 제2 채널(CH1, CH2)을 포함하는 경우가 예시된다. 버퍼 다이(410)는 메모리 컨트롤러(또는, 호스트)와 통신하는 인터페이스 회로(미도시)를 포함할 수 있으며, 버퍼 다이(410)를 통해 메모리 컨트롤러로부터 커맨드/어드레스 및 데이터를 수신할 수 있다. 또한, 실시 예에 따라, 제1 채널 및 제2 채널(CH1, CH2) 각각은 커맨드 어드레스 디코더(421)를 포함할 수 있다.
한편, 도 4에서는 HBM(400)의 각각의 채널이 적어도 두 개의 의사 채널들(pseudo channel: PC)을 포함하는 구현 예가 개시된다. 일 예로서, 제1 채널(CH1)는 제1 의사 채널 및 제2 의사 채널(PC0, PC1)을 포함할 수 있으며, 제1 의사 채널 및 제2 의사 채널(PC0, PC1)에 대응하여 데이터 라인들이 서로 별개로 구현되는 반면에, 상기 제1 및 제2 의사 채널들(PC0, PC1)은 커맨드 어드레스 디코더(421)를 공유할 수 있다. 실시 예에 따라, 제1 및 제2 의사 채널들(PC0, PC1) 각각에 대응하여 별도의 커맨드 어드레스 디코더가 존재할 수 있다. 또한, 다양한 실시 예들에 따라, 모드 설정에 관련된 다른 다양한 구성 요소들 중 일부는 제1 의사 채널 및 제2 의사 채널(PC0, PC1)에 공유되도록 구현되고, 다른 일부는 의사 채널 별로 별개로 구현될 수도 있을 것이다. 즉, 제1 및 제2 의사 채널들(PC0, PC1)은 서로 별개의 데이터 라인들을 통해 메모리 컨트롤러와 통신할 수 있는 반면에, 공통한 커맨드/어드레스 라인들을 통해 메모리 컨트롤러와 통신할 수 있을 것이다.
본 발명의 예시적인 실시 예에 따라, 제1 및 제2 의사 채널들(PC0, PC1) 각각은 다수의 뱅크 영역들을 포함할 수 있으며, 일 예로서 제1 의사 채널(PC0)은 제0 뱅크(BANK 0) 내지 제3 뱅크(BANK 3)를 포함하고, 제2 의사 채널(PC1)은 제4 뱅크 (BANK 4) 및 제7 뱅크(BANK 7)을 포함할 수 있다.
일 동작 예에 따라, 하나의 채널 내에서 다수의 뱅크들의 커맨드 모드가 가변적으로 설정될 수 있다. 예컨대, 제1 채널(CH1) 내의 제0 내지 제3 뱅크(BANK 0 ~ BANK 3)는 커맨드 모드 1로 설정될 수 있고, 제2 채널(CH1) 내의 제8 내지 제11 뱅크(BANK 8 ~ BANK 11)는 커맨드 모드 2로 설정될 수 있다. 커맨드 모드 1 및 커맨드 모드 2의 실시 예는 도 5에서 구체적으로 후술한다.
또한, 본 발명의 실시예들에서는 PIM 동작과 관련하여 다양한 종류의 PIM 동작 모드들이 정의될 수 있고, 채널 별로 서로 다른 종류의 PIM 동작 모드가 적용될 수 있다. 또한, 도 4에는 도시되지 않았으나 전술한 실시예들에서 설명된 PIM 인터페이스 회로는 채널 별로 각각 배치될 수 있고, 이에 따라 커맨드 모드 디코더, PIM ISA 생성기들이 도 4의 HBM(400)의 각각의 채널에 구비될 수도 있다.
상기한 본 발명의 예시적인 실시 예에 따르면, 내부 프로세싱을 위한 다수의 프로세싱 유닛들이 코어 다이들의 뱅크들에 대응하여 배치될 수 있고, 뱅크 영역 단위의 커맨드들을 제공할 수 있으므로, 메모리 장치 내에서의 대량의 연산을 빠르게 처리할 수 있을 뿐 아니라, 실행되는 다양한 종류의 어플리케이션에 따라 연산 동작을 최적화할 수 있다.
도 5는 도 3의 커맨드 모드 디코더의 동작을 위한 커맨드 모드 진리표의 일 예를 설명하는 도면이다.
도 5를 참조하면, 커맨드 모드 디코더(304, 도 3)가 생성하는 복수 개의 커맨드 모드 비트(command mode bit: CMB)들의 진리 값들을 포함하는 커맨드 모드 진리표(500)의 일 예를 나타낸다.
커맨드 모드 진리표(command mode truth table)(500)는 커맨드 모드 디코더(304, 도 3)에 의해 미리 정해진 진리표로써, 커맨드 모드 비트 값들에 의해 커맨드 모드를 설정하는 진리표로 정의할 수 있다. 예컨대, 커맨드 모드 진리표(500)는 커맨드 모드 1(Command Mode 1)(502) 및 커맨드 모드 2(Command Mode 2)(504)에 대한 진리 값들을 포함할 수 있으며, 이는 예시적인 것에 불과하므로 다른 진리 값들을 포함하는 다른 커맨드 모드에 대한 진리표에 본 개시의 기술적 사상이 적용될 수 있음은 물론이다.
커맨드 모드 1(502)은 별도의 외부 핀(132, 도 1)을 사용하여 PIM 회로를 동작하는 도 1a의 실시 예에 해당하는 경우의 커맨드 모드로 정의할 수 있다. 도 5를 참조하면, 외부 핀(132, 도 1)은 RFU 핀(Reserved for Future Use pin)일 수 있다. RFU 핀은 HBM 표준에서 정의된 값일 수 있으며, 현재 HBM 표준에서 RFU 핀은 특정 기능에 한정되어 있지 않고, 별도의 기능이 적용되지 않는 경우에는 사용되지 않는 핀에 해당할 수 있다.
도 5를 참조하면, RFU(506)는 RFU 핀으로 인가되는 신호의 전압 레벨이 하이(high)인지 로우(low)인지 여부를 나타내는 항목을 의미한다. 예를 들어, RFU 핀 상의 신호가 하이(high)로 인가된 경우, 커맨드 모드 디코더(304, 도 3)는 미리 정해진 로우 커맨드/어드레스 시퀀스(508)와는 관계 없이 커맨드 모드 비트들의 논리 값들(510)을 통해 커맨드 모드 1(502)을 식별할 수 있다. 미리 정해진 로우 커맨드/어드레스 시퀀스(508)는 도 8에서 구체적으로 후술한다.
실시 예에 따르면, 커맨드 모드 디코더(304, 도 3)는 RFU 핀으로 인가되는 신호 및 내부 커맨드를 수신하고 이에 기초하여 로우(low) 값의 CMB[0], 로우(low) 값의 CMB[1], 로우(low) 값의 CMB[2], 로우(low) 값의 CMB[3] 및 하이(high) 값의 CMB[4]를 생성할 수 있고, 생성된 CMB로부터 커맨드 모드 1(502)임을 식별할 수 있다.
커맨드 모드 2(504)은 별도의 외부 핀(132, 도 1)을 사용하지 않고 PIM 회로를 동작하는 도 1b의 실시 예에 해당하는 경우의 커맨드 모드로 정의할 수 있다. 일 예로, RFU(506)가 로우(low) 값을 가지는 경우, 커맨드 모드 디코더(304, 도 3)는 메모리 컨트롤러로부터의 커맨드/어드레스가 미리 정해진 로우 커맨드/어드레스 시퀀스(508)에 해당하는지를 판단할 수 있다. 판단 결과, 메모리 컨트롤러로부터의 커맨드/어드레스가 미리 정해진 로우 커맨드/어드레스 시퀀스(508)에 해당하면 다수 개(예컨대, 5 개)의 커맨드 모드 비트를 생성할 수 있고, CMB[0], CMB[1], CMB[2], CMB[3] 및 CMB[4]는 하이(high) 값으로 설정될 수 있다. 커맨드 모드 디코더(304, 도 3)는 생성된 커맨드 모드 비트들의 논리 값들(510)을 통해 커맨드 모드 2(504)를 식별할 수 있다.
본 개시의 실시 예에 따르면, 커맨드 모드 디코더(304, 도 3)는 미리 정해진 커맨드 모드 진리표(500)에 기초하여 커맨드 모드를 설정할 수 있다.
도 6a, 도 6b, 도 7a 및 도 7b는 메모리 컨트롤러로부터 메모리 장치로 수신되는 커맨드의 커맨드 진리표(command truth table)를 설명하는 도면이다.
구체적으로, 도 6a 및 도 6b는 로우 커맨드 진리표(row command truth table)를 설명하는 도면이고, 도 7a 및 도 7b는 컬럼 커맨드 진리표(column command truth table)를 설명하는 도면이다.
도 6a 및 도 7a를 참조하면, 노멀 동작 모드의 수정되지 않은 로우 커맨드 및 컬럼 커맨드 진리표를 나타낸다. 메모리 컨트롤러 및 인터페이스 회로는 커맨드 진리표를 공유하고, 메모리 컨트롤러는 노멀 동작 모드의 메모리 장치를 동작시킬 수 있는 커맨드를 생성할 수 있으며, 인터페이스 회로에 포함된 커맨드 어드레스 디코더는 커맨드 진리표를 식별할 수 있다.
도 6a에 따르면, 로우 커맨드 진리표(600a)의 각 열은 로우 커맨드(row command), 로우 커맨드의 심볼(symbol), 클락 사이클(clock cycle), 입력(input)에 해당하는 로우(row) 0 내지 로우(row) 9(R0 내지 R9)로 구성될 수 있다. 로우 0 내지 로우 9는 로우 어드레스(RA), 뱅크 어드레스(BA), 의사 채널(pseudo channel: PC), 스택 아이디(SID), 유효 신호(valid signal: V), 하이(high: H), 또는 로우(low: L)의 값에 대한 정보로 구성될 수 있다.
Row No operation 커맨드(RNOP)는 희망하지 않는 로우 커맨드들이 유휴 상태(idle state) 또는 대기 상태(wait state) 동안 등록되는 것을 방지하기 위한 커맨드로 정의될 수 있다. 모든 레지스터 데이터는 입력들 R0 내지 R9를 통해 로드 될 수 있다.
Activate(1 Bank) 커맨드(ACT)는 특정 뱅크의 로우를 활성화(즉, 오픈(open))하기 위한 커맨드로 정의될 수 있다. R0 내지 R9은 뱅크 어드레스(BA) 또는 로우 어드레스(RA) 값들이 포함될 수 있고, 활성화 시킬 뱅크 및 로우를 선택할 수 있다.
Precharge 커맨드(PREpb) 및 Precharge all 커맨드(PREab)는 특정 뱅크의 오픈 된 로우 또는 모든 뱅크의 오픈 된 로우를 각각 비활성화 하기 위한 커맨드로 정의될 수 있다. 또한, Per-Bank Refresh 커맨드(REFpb) 및 All-Bank Refresh 커맨드(REFab)는 메모리 셀의 커패시터 전하의 방전을 보상하기 위하여 특정 뱅크 또는 모든 뱅크를 주기적으로 재충전 하기 위한 커맨드로 정의될 수 있다. 설명의 편의 상, 이 외의 로우 커맨드들의 설명은 생략한다.
도 7a에 따르면, 컬럼 커맨드 진리표(700a)의 각 열은 컬럼 커맨드, 컬럼 커맨드의 심볼(symbol), 클락 사이클(clock cycle), 입력(input)에 해당하는 컬럼 0 내지 컬럼 7(C0 내지 C7)로 구성될 수 있다. 컬럼 0 내지 컬럼 9는 모드 레지스터(mode register)의 동작 코드(operation code, OP), 컬럼 어드레스(CA), 뱅크 어드레스(BA), 모드 어드레스(MA) 의사 채널(pseudo channel: PC), 스택 아이디(SID), 유효 신호(valid signal: V), 하이(high: H), 또는 로우(low: L)의 값에 대한 정보로 구성될 수 있다.
Column No operation 커맨드(CNOP)는 희망하지 않는 컬럼 커맨드들이 유휴 상태(idle state) 또는 대기 상태(wait state) 동안 등록되는 것을 방지하기 위한 커맨드로 정의할 수 있다. 모든 레지스터 데이터는 입력들 C0 내지 C7를 통해 로드 될 수 있다.
Read 커맨드(RD) 및 Read with Auto-precharge(RDA) 커맨드는 활성화 된 로우(row)에 대해 데이터를 독출하는 커맨드로 정의할 수 있다. Write 커맨드(WR) 및 Write with Auto-precharge(WRA) 커맨드는 활성화 된 로우(row)에 대해 데이터를 기입하기 위해 사용될 수 있다.
Mode Register Set 커맨드(MRS)는 모든 모드 레지스터들을 프로그래밍하고 저장된 정보를 유지하기 위한 커맨드로 정의할 수 있다. 모드 레지스터는 메모리 장치의 다양한 동작 모드를 제어하기 위해 데이터를 저장하는 장치로 정의할 수 있고, 메모리 장치의 동작 모드를 설정할 수 있다. 또한, Mode Register Read 커맨드(MRR)는 레지스터에 저장된 모드의 정보를 출력하기 위해 사용될 수 있다.
도 6b 및 도 7b를 참조하면, 도 1a의 실시 예에 따른 PIM 회로를 동작하기 위한 PIM 커맨드가 포함되도록 수정된 로우 커맨드 및 컬럼 커맨드의 진리표를 나타낸다.
도 1a의 실시 예에 따르면, 메모리 컨트롤러는 PIM 회로를 동작하기 위한 커맨드를 포함하는 로우 커맨드 진리표 및 컬럼 커맨드 진리표를 구비하도록 수정될 수 있다. 도 6b 및 도 7b에서는, 도 1a의 실시 예에 따라 PIM 회로 동작을 위해 외부 핀을 사용할 수 있도록 지원 가능한 메모리 컨트롤러를 포함하는 메모리 시스템인 것을 전제한다.
메모리 컨트롤러 및 인터페이스 회로는 수정된 커맨드 진리표를 공유하고, 메모리 컨트롤러는 PIM 회로를 동작시킬 수 있는 PIM 커맨드를 생성할 수 있으며, 인터페이스 회로에 포함된 커맨드 어드레스 디코더는 수정된 커맨드 진리표를 식별할 수 있다.
도 6b를 참조하면, 수정된 로우 커맨드 진리표에는 Activate 커맨드 및 Precharge 커맨드와 관련된 RFU 커맨드의 필드(field)가 추가될 수 있다. 실시 예에 따르면, 노멀 동작 모드의 메모리 장치에서는 사용되지 않는 RFU 커맨드를 PIM 동작 모드를 위해 커맨드 진리표에 추가함으로써, 추가된 RFU 커맨드(602b, 604b)를 사용하여 PIM 회로를 동작시킬 수 있다. 메모리 장치에 포함된 RFU 핀은 모드 마스터 핀(mode master pin)으로 작동될 수 있다.
메모리 장치는 복수 개의 뱅크들로 구성된 메모리 셀과 PIM 회로를 포함할 수 있고, PIM 회로의 동작과 관련하여 복수 개의 뱅크들을 한꺼번에 동작시켜 데이터를 출력하도록 구성될 수 있다. 이에 따라, 복수 개의 뱅크들 중 몇 개의 뱅크의 로우(row)를 활성화 시킬 것인지, 또는 복수 개의 뱅크들 중 몇 개의 뱅크의 로우를 프리차지 할 것인지에 대한 커맨드들이 고려될 수 있다. 복수 개의 뱅크 중 몇 개의 뱅크를 사용하는 지의 문제는 메모리 장치의 전력(power)의 문제로 귀결될 수 있는 사항이다.
예시적으로, 도 6b의 602b를 참조하면, 로우 커맨드 진리표(600b)에 추가된 RFU 커맨드는 Activate a Quarter of All Banks for PIM Operation Mode Entry 커맨드, Activate a Half of All Banks for PIM Operation Mode Entry 커맨드 및 Activate All Banks for PIM Operation Mode Entry 커맨드를 포함할 수 있다.
Activate a Quarter of All Banks for PIM Operation Mode Entry 커맨드(ACTQP)는 PIM 동작 모드 진입을 위해 모든 뱅크들 중 4분의 1(quarter)에 해당하는 뱅크(들)의 로우(row)를 활성화(즉, 오픈(open))하는 커맨드로 정의할 수 있다. Activate a Half of All Banks for PIM Operation Mode Entry 커맨드(ACTHP)는 PIM 동작 모드 진입을 위해 모든 뱅크들 중 2분의 1(half)에 해당하는 뱅크(들)의 로우를 활성화(즉, 오픈(open))하는 커맨드로 정의할 수 있다. 또한, Activate All Banks for PIM Operation Mode Entry 커맨드(ACTAP)는 PIM 동작 모드 진입을 위해 모든 뱅크에 해당하는 뱅크들의 로우(row)를 활성화(즉, 오픈(open))하는 커맨드로 정의할 수 있다. 실시 예에 따르면, 모든 뱅크들 중 half, quarter, all로 구분하여 활성화 시키는 커맨드를 일 예로 들고 있으나, 모든 뱅크들 중 다른 일부를 선택하여 활성화하는 방법에 본 개시의 기술적 사상이 적용될 수 있음은 물론이다.
예시적으로, 도 6b의 604b를 참조하면, 로우 커맨드 진리표(600b)에 추가된 RFU 커맨드는 Precharge a Quarter of All Banks for PIM Operation Mode Exit 커맨드, Precharge a Half of All Banks for PIM Operation Mode Exit 커맨드 및 Precharge All Banks for PIM Operation Mode Exit 커맨드를 포함할 수 있다.
Precharge a Quarter of All Banks for PIM Operation Mode Exit 커맨드(PREqbP)는 PIM 동작 모드 종료를 위해 모든 뱅크들 중 4분의 1(quarter)에 해당하는 뱅크(들)의 로우를 프리차지하는 커맨드로 정의할 수 있다. Precharge a Half of All Banks for PIM Operation Mode Exit 커맨드(PREhbP)는 PIM 동작 모드 종료를 위해 모든 뱅크들 중 2분의 1(half)에 해당하는 뱅크(들)의 로우를 프리차지하는 커맨드로 정의할 수 있다. 또한, Precharge All Banks for PIM Operation Mode Exit 커맨드(PREabP)는 PIM 동작 모드 종료를 위해 모든 뱅크에 해당하는 뱅크들의 로우를 프리차지하는 커맨드로 정의할 수 있다. 실시 예에 따르면, 모든 뱅크들 중 half, quarter, all로 구분하여 프리차지하는 커맨드를 일 예로 들고 있으나, 모든 뱅크들 중 다른 일부를 선택하여 프리차지하는 방법에 본 개시의 기술적 사상이 적용될 수 있음은 물론이다. 설명의 편의상 도 6a와 중복되는 내용은 생략된다.
도 7b를 참조하면, 수정된 컬럼 커맨드 진리표에는 Read 커맨드 및 Write 커맨드와 관련된 RFU 커맨드의 필드(field)가 추가될 수 있고, RFU 핀 상의 신호(702b)가 입력으로 추가될 수 있다. 실시 예에 따르면, 노멀 동작 모드의 메모리 장치에서는 사용되지 않는 RFU 커맨드들(604b, 606b, 608b) 및 RFU 핀 상의 신호(602b)를 입력으로 추가함으로써, RFU 핀 상의 신호 및 추가된 커맨드를 사용하여 PIM 회로를 동작시킬 수 있다. 메모리 장치에 포함된 RFU 핀은 모드 마스터 핀(mode master pin)으로 작동될 수 있다.
예시적으로, 도 7b의 704b 및 706b를 참조하면, 컬럼 커맨드 진리표(700b)에 추가된 RFU 커맨드는 ReadP 커맨드(Read for PIM, RDP)(704b) 및 WriteP 커맨드(Write for PIM, WRP)(706b)를 포함할 수 있다. ReadP 커맨드(RDP)(704b) 및 WriteP 커맨드(WRP)(706b)는 PIM 동작 모드에서의 커맨드에 해당한다.
일 예로, PIM 회로의 프로세싱 유닛이 동작하기 위해서는 프로세싱의 대상에 해당하는 2개의 피연산자(operand)가 필요할 수 있다. 피연산자들은 메모리 장치에 포함된 메모리 셀, 레지스터들로부터 독출된 내부의 데이터일 수도 있고, DQ 버퍼들로부터 독출된 외부의 데이터일 수도 있다. DQ 버퍼들로부터의 데이터는 메모리 컨트롤러로부터 데이터 라인들(DQ)을 통해 제공된 데이터를 의미한다. 예를 들어, 프로세싱 유닛은 레지스터에 있는 제1 데이터 및 메모리 셀에 있는 제2 데이터를 피연산자로 입력 받아 연산을 수행할 수도 있고, DQ 버퍼에 있는 제3 데이터 및 DQ 버퍼에 있는 제4 데이터를 피연산자로 입력 받아 연산을 수행할 수도 있다.
본 개시의 일 실시 예에 따른 메모리 장치의 경우, 어느 장치에서 데이터를 제공받아 메모리 장치에 기입하는지 또는 메모리 셀로부터 독출된 데이터를 어느 장치로 제공하는지에 따라 PIM 회로의 데이터 패스 동작이 달라질 수 있다. 메모리 장치와 메모리 컨트롤러 사이에 데이터가 전달 되는 경우 데이터의 독출 또는 기입을 제어하기 위한 신호들은 메모리 컨트롤러와 동기화되어야 하는데, 이 경우 리드 레이턴시(Read Latency, RL) 또는 라이트 레이턴시(Write Latency, WL) 설정을 만족해야 한다. 리드 레이턴시 및 라이트 레이턴시는 메모리 동작 모드의 표준을 제공하는 제덱(JEDEC) 문서의 스펙을 따른다.
ReadP 커맨드(RDP)(704b)는 메모리 장치의 프로세싱 유닛이 내부 프로세싱을 수행하고, 메모리 장치에서 메모리 컨트롤러로 데이터를 전달할 때 리드 레이턴시(Read Latency, RL)설정을 만족하면서 데이터를 전달하도록 하는 커맨드로 정의할 수 있다. 예시적으로, 메모리 장치에서 메모리 컨트롤러로 전달되는 데이터는 내부 프로세싱 결과 데이터이거나 메모리 장치의 메모리 셀 또는 레지스터들에 저장된 데이터일 수 있고, 이에 한정되는 것은 아니다.
WriteP 커맨드(WRP)(706b)는 메모리 컨트롤러에서 메모리 장치로 데이터를 전달할 때 라이트 레이턴시(Write Latency, WL) 설정을 만족하면서 데이터를 전달하고, 전달된 데이터를 이용하여 메모리 장치의 프로세싱 유닛이 내부 프로세싱을 수행하도록 하는 커맨드로 정의할 수 있다. 예시적으로, 내부 프로세싱 결과 데이터 또는 메모리 컨트롤러로부터 전달된 데이터는 메모리 장치의 메모리 셀 또는 레지스터들에 기입될 수 있으나, 이에 한정되는 것은 아니다.
도 7b를 참조하면, 노멀 동작 모드를 위한 Read 커맨드와 PIM 동작 모드를 위한 ReadP 커맨드는 컬럼 0 내지 컬럼 7에 대응하는 값이 모두 동일하고, RFU 핀 상의 신호에 대응하는 컬럼 8의 값이 하이(high)일 때에는 ReadP 커맨드, 컬럼 8의 값이 로우(low)일 때에는 Read 커맨드에 해당한다. Read 커맨드와 ReadP 커맨드의 컬럼 0 내지 컬럼 7에 대응하는 값들은 제1 패턴을 갖는 것으로 지칭될 수 있고, 컬럼 8의 값이 하이(high)일 때에는 제1 값, 컬럼 8의 값이 로우(low)일 때에는 제2 값으로 정의될 수 있다.
노멀 동작 모드를 위한 Write 커맨드와 PIM 동작 모드를 위한 WriteP 커맨드의 컬럼 0 내지 컬럼 7에 대응하는 값이 모두 동일하고, RFU 핀 상의 신호에 대응하는 컬럼 8의 값이 하이(high)일 때에는 WriteP 커맨드, 컬럼 8의 값이 로우(low)일 때에는 Write 커맨드에 해당한다. 노멀 동작 모드를 위한 Write 커맨드와 PIM 동작 모드를 위한 WriteP 커맨드의 컬럼 0 내지 컬럼 7에 대응하는 값들은 제2 패턴을 갖는 것으로 지칭될 수 있고, 컬럼 8의 값이 하이(high)일 때에는 제1 값, 컬럼 8의 값이 로우(low)일 때에는 제2 값으로 정의될 수 있다.
예시적으로, 도 7b의 708b를 참조하면, 컬럼 커맨드 진리표(700b)에 추가된 RFU 커맨드는 PIMRead 커맨드(PIMR) 및 PIMWrite 커맨드(PIMW)를 포함할 수 있다.
PIMRead 커맨드는 메모리 장치의 메모리 셀 또는 레지스터들로부터 데이터를 독출하여 프로세싱 유닛에서 내부 프로세싱을 수행하도록 하는 커맨드로 정의할 수 있다. PIMWrite 커맨드는 메모리 장치의 프로세싱 유닛에서 내부 프로세싱을 수행하고, 프로세싱 결과 데이터 또는 프로세싱 유닛 내부 데이터를 메모리 셀 또는 레지스터들에 기입하도록 하는 커맨드로 정의할 수 있다. PIMRead 커맨드 및 PIMWrite 커맨드의 경우 메모리 컨트롤러와 데이터를 주고 받는 동작이 개입되지 않기 때문에 각각 리드 레이턴시(RL)와 라이트 레이턴시(WL) 설정을 만족할 필요가 없다.
예시적으로, PIMRead 커맨드 및 PIMWrite 커맨드에 따라 메모리 장치의 메모리 셀에 억세스 하는 경우, 데이터를 독출 및 기입할 때 PIM 회로를 동작시킬 수 있는 동작 주파수인 CCDL cycle 또는 CCDS cycle 설정을 만족시켜야 할 수 있다. CCDL cycle은, 예를 들어, 뱅크 A로 지칭될 수 있는 뱅크 및 뱅크 B로 지칭될 수 있는 뱅크가 동일한 뱅크 그룹에 포함되는 경우, Read/Write 뱅크 A로의 억세스로부터 Read/Write 뱅크 B로의 억세스까지 소요되는 시간으로 정의될 수 있다. CCDS cycle는, 예를 들어, 뱅크 A 및 뱅크 B가 서로 상이한 뱅크 그룹들에 포함되는 경우, Read/Write 뱅크 A로의 억세스로부터 Read/Write 뱅크 B로의 억세스까지 소요되는 시간으로 정의될 수 있다. CCDL cycle 및 CCDS cycle 설정은 제덱(JEDEC) 문서의 스펙을 따른다. 뱅크 그룹은 다양하게 정의될 수 있으며, 일 예로서 복수 개의 뱅크들을 포함하는 구성으로 정의될 수 있다.
도 8, 9는 도 1b의 실시 예에 따른 미리 정해진 로우 커맨드/어드레스 시퀀스를 이용한 PIM 회로의 동작을 설명하는 도면이다.
도 1b 및 도 8, 9를 참조하면, 도 1b의 실시 예에 따른 메모리 시스템 환경의 경우, 커맨드 모드 디코더(304, 도 3)가 미리 정해진 로우 커맨드/어드레스의 시퀀스(pre-determined row command/address sequence)(800) 및 메모리 컨트롤러(112, 도 1b)로부터의 로우 커맨드/어드레스 시퀀스를 이용하여 PIM 회로를 동작시키는 일 예를 나타낸다. 예시적인 실시 예에서, RFU 핀(132, 도 1b)을 사용하지 않고 메모리 컨트롤러(112, 도 1b)를 수정하지 않는 시스템 환경에서, 메모리 컨트롤러(112, 도 1b)가 커맨드 모드 디코더(304, 도 3)에 의해 미리 정해진 로우 커맨드/어드레스 시퀀스(800)에 해당하는 로우 커맨드/어드레스 시퀀스를 메모리 장치(120, 도 1b)에 입력하게 되면 PIM 회로를 동작시킬 수 있다.
도 8에서는, 메모리 컨트롤러(112, 도 1b)가 미리 정해진 로우 커맨드/어드레스 시퀀스(800)에 해당하는 로우 커맨드/어드레스 시퀀스를 메모리 장치(120, 도 1b)에 송신한 경우를 가정한다.
미리 정해진 로우 커맨드/어드레스 시퀀스(800)는 Activate 커맨드에 대한 뱅크/로우 어드레스 엔트리 세트(Bank/Row Address Entry set(0), set(1), set(2),…,set(n-1))를 포함할 수 있다. 뱅크/로우 어드레스 엔트리 세트(Bank/Row Address Entry set(0), set(1), set(2),…,set(n-1))는 뱅크 어드레스(bank address: BA) 비트(예를 들어, BA 0) 및 로우 어드레스(row address: RA) 비트 값들(예를 들어, RA 0x27FF)로 구성될 수 있다.
예시적으로, 커맨드 모드 디코더(304, 도 3)는 뱅크 어드레스/로우 어드레스 세트에 해당하는 set(0) 내지 set(3)을 미리 설정할 수 있다. 구체적으로, set(0)은 BA0 & RA0x27FF, set(1)은 BA1 & RA0x27FF, set(2)은 BA8 & RA0x27FF, 그리고 set(3)은 BA9 & RA0x27FF로 미리 정할 수 있다. 일 예로, set(0)에 해당하는 BA0 & RA0x27FF는 16 진수 코드로 이루어진 주소로 표현될 수 있으며, 뱅크 어드레스가 0이고 로우 어드레스가 0x27FF임을 나타낸다. 각 뱅크/로우 어드레스 엔트리 세트, 즉 set(0) 내지 set(3)에 포함된 뱅크 어드레스 비트 및 로우 어드레스 비트들에 의해 식별되는 워드 라인은 Activate 커맨드에 의하여 활성화될 수 있다.
S802 단계에서, set(0)에 포함된 어드레스 정보와 함께 Activate 커맨드가 메모리 장치에 수신되면 set(0)에 해당하는 뱅크 어드레스 0 및 로우 어드레스 0x27FF에 해당하는 워드 라인이 활성화(activation)될 수 있다. S804 단계에서, set(1)에 포함된 어드레스 정보와 함께 Activate 커맨드가 메모리 장치에 입력되면 뱅크 어드레스 1 및 로우 어드레스 0x27FF에 해당하는 워드 라인이 활성화(activation)될 수 있다. S806 단계에서, set(2)에 포함된 어드레스 정보와 함께 Activate 커맨드가 메모리 장치에 수신되면 뱅크 어드레스 8 및 로우 어드레스 0x27FF에 해당하는 워드 라인이 활성화(activation)될 수 있다. S808 단계에서, set(3)에 포함된 어드레스 정보와 함께 Activate 커맨드가 메모리 장치에 수신되면 뱅크 어드레스 9 및 로우 어드레스 0x27FF에 해당하는 워드 라인이 활성화(activation)될 수 있다.
예시적으로, S802 내지 S808 단계에서 set(0) 내지 set(3)에 해당하는 워드 라인이 모두 활성화 되면, 메모리 장치의 상태(status)를 PIM 동작 모드에 진입(PIM Operation Mode Entry)한 것으로 정의할 수 있다. 실시 예에 따라, set(0) 내지 set(3)은 PIM 동작 모드 진입을 위한 뱅크/로우 어드레스 엔트리 세트로 정의할 수 있다.
예시적으로, 커맨드 모드 디코더(304, 도 3)는 뱅크 어드레스/로우 어드레스 세트에 해당하는 set(4)를 미리 정할 수 있다. 일 예로, set(4)에 해당하는 BA0 & RA0x3FFF는 16 진수 코드로 이루어진 주소로 표현될 수 있으며, 뱅크 어드레스가 0이고 로우 어드레스가 0x3FFF임을 나타낸다. set(4)에 포함된 뱅크/로우 어드레스 엔트리 세트에 포함된 뱅크 어드레스 비트 및 로우 어드레스 비트들에 의해 식별되는 워드 라인은 Activate 커맨드에 의하여 활성화될 수 있다.
S810 단계에서, set(4)에 해당하는 어드레스 정보와 함께 Activate 커맨드가 메모리 장치에 입력되면 set(4)에 해당하는 뱅크 어드레스 0 및 로우 어드레스 0x3FFF에 해당하는 워드 라인이 활성화(activation)될 수 있다.
예시적으로, S810 단계에서 set(4)에 해당하는 워드 라인이 활성화 되면 메모리 장치의 상태(status)를 PIM 회로 내에서 데이터들이 이동하는 데이터패스 및 프로세싱 유닛 제어(Datapath/PU control) 모드에 진입한 것으로 정의할 수 있다.
미리 정해진 로우 커맨드/어드레스 시퀀스(800)는 Activate 커맨드에 대한 뱅크 /로우 어드레스 엑시트 세트(Bank/Row Address Exit set(0), set(1), set(2),…,set(m-1))를 포함할 수 있다. 예시적으로, 커맨드 모드 디코더(304, 도 3)는 뱅크 어드레스/로우 어드레스 세트에 해당하는 set(5) 및 set(6)을 미리 정할 수 있다. 구체적으로, set(5)는 BA0 & RA0x2FFF, set(6)은 BA1 & RA0x2FFF로 미리 정할 수 있다. 일 예로, set(5)에 해당하는 BA0 & RA0x2FFF는 16 진수 코드로 이루어진 주소로 표현될 수 있으며, 뱅크 어드레스가 0이고 로우 어드레스가 0x2FFF임을 나타낸다. 각 뱅크/로우 어드레스 엑시트 세트, 즉 set(5) 및 set(6)에 포함된 뱅크 어드레스 비트 및 로우 어드레스 비트들에 의해 식별되는 워드 라인은 Activate 커맨드에 의하여 활성화될 수 있다.
S812 단계에서, set(5)에 포함된 어드레스 정보와 함께 Activate 커맨드가 메모리 장치에 입력되면 set(5)에 해당하는 뱅크 어드레스 0 및 로우 어드레스 0x2FFF에 해당하는 워드 라인이 활성화(activation)될 수 있다. S814 단계에서, set(6)에 해당하는 어드레스 정보와 함께 Activate 커맨드가 메모리 장치에 입력되면 뱅크 어드레스 1 및 로우 어드레스 0x2FFF에 해당하는 워드 라인이 활성화(activation)될 수 있다.
S812 내지 S814 단계에서 set(5) 및 set(6)에 해당하는 워드 라인이 모두 활성화 되면, 메모리 장치의 상태(status)를 PIM 동작 모드를 종료(PIM Operation Mode Exit)한 것으로 정의할 수 있다. 실시 예에 따라, set(5) 및 set(6)은 PIM 동작 모드 종료을 위한 뱅크/로우 어드레스 엑시트 세트로 정의할 수 있다.
도 9는 본 개시의 예시적 실시 예에 따른 메모리 장치의 동작을 설명하는 플로우챠트이다.
도 5 내지 도 8을 참조하면, 본 개시의 실시 예에 따른 메모리 장치가 메모리 컨트롤러로부터 커맨드/어드레스를 수신한 후 커맨드 모드 진리표(500, 도 5), 로우 커맨드 진리표(600a 및 600b, 도 6a 및 도 6b), 컬럼 커맨드 진리표(700a 및 700b, 도 7a 및 도 7b) 또는 미리 정해진 로우 커맨드/어드레스 시퀀스(800, 도 8)를 이용하여 PIM 회로를 동작시키는 일 예를 나타낸다.
S902 단계에서, 메모리 장치는 메모리 컨트롤러로부터 커맨드/어드레스(Command/Address)를 수신할 수 있다. 커맨드/어드레스는 복수 개의 커맨드 및/또는 어드레스일 수 있고, 로우 커맨드/어드레스 시퀀스일 수 있다.
S904 단계에서, 커맨드 모드 디코더는 미리 정해진 커맨드 모드 진리표(500, 도 5)에 따라 RFU 핀에 인가된 전압 레벨이 하이(high, H)인지 여부를 판단할 수 있다.
RFU 핀에 인가된 전압 레벨이 하이(high, H)인 것으로 판단된 경우, 커맨드 모드 디코더는 RFU 핀을 사용하여 PIM 회로를 동작하는 커맨드 모드 1(502, 도 5)를 식별할 수 있다.
S914 단계에서, 메모리 장치는 수정된 로우 커맨드 진리표(600b, 도 6b)에 따라, 수신된 커맨드가 PIM 동작 모드의 Activate 커맨드인지 여부를 판단할 수 있다. PIM 동작 모드의 Activate 커맨드인 것으로 판단된 경우, 메모리 장치의 상태(status)를 PIM 동작 모드에 진입(PIM Operation Mode Entry)한 것으로 정의할 수 있다.
S916 단계에서, 메모리 장치는 수정된 컬럼 커맨드 진리표(700b, 도 7b)에 따라, 수신된 커맨드가 ReadP 커맨드, WriteP 커맨드, PIMRead 커맨드 또는 PIMWrite 커맨드 중 하나인지 여부를 판단할 수 있다. ReadP 커맨드, WriteP 커맨드, PIMRead 커맨드 또는 PIMWrite 커맨드 중 하나인 것으로 판단된 경우, 메모리 장치의 상태(status)를 PIM 회로 내에서 데이터 패스 및 프로세싱 유닛을 제어(Datapath/PU control)하는 모드에 진입한 것으로 정의할 수 있다. 예를 들어, 수신된 커맨드가 ReadP 커맨드 또는 WriteP 커맨드인 것으로 판단된 경우, 리드 레이턴시 또는 라이트 레이턴시를 만족하도록 메모리 컨트롤러로부터 제공된 데이터와 PIM 회로 내부의 메모리 셀로부터 독출된 데이터에 대한 연산을 수행하기 위해, 데이터패스 및 프로세싱 유닛이 제어될 수 있다. 다른 예로, 수신된 커맨드가 PIMRead 커맨드 또는 PIMWrite 커맨드인 것으로 판단된 경우, 동일한 뱅크 그룹에 포함되는 뱅크들에 억세스 하여 데이터를 독출 또는 기입하기 위해 필요한 CCDL cycle을 만족시키기 위해, 데이터 패스 및 프로세싱 유닛이 제어될 수 있다.
S918 단계에서, 메모리 장치는 수정된 로우 커맨드 진리표(600b, 도 6b)에 따라, 수신된 커맨드가 PIM 동작 모드의 Precharge 커맨드인지 여부를 판단할 수 있다. PIM 동작 모드의 Precharge 커맨드인 것으로 판단된 경우, 메모리 장치의 상태(status)를 PIM 동작 모드를 종료(PIM Operation Mode Exit)한 것으로 정의할 수 있다.
RFU 핀 상의 신호가 하이(high)가 아닌 것으로 판단된 경우, 커맨드 모드 디코더는 별도의 외부 핀을 사용하지 않고 PIM 회로를 동작하는 커맨드 모드 2(504, 도 4)를 식별할 수 있다. 도 8에서 상술한 바와 같이 미리 정해진 로우 커맨드/어드레스의 시퀀스를 이용하여 PIM 회로를 동작시킬 수 있다.
S904 단계에서, RFU 핀에 인가된 전압 레벨이 하이(high, H)가 아닌 것으로 판단된 경우, 커맨드 모드 디코더는 RFU 핀을 사용하지 않고 PIM 회로를 동작하는 커맨드 모드 2(504, 도 5)를 식별할 수 있다.
S906 단계에서, 메모리 장치는 미리 정해진 로우 커맨드/어드레스의 시퀀스(Row Command/Address Sequence)(800)에 따라, 수신된 커맨드가 Activate 커맨드에 대한 뱅크/로우 어드레스 엔트리 세트에 해당하는지 여부를 순차적으로 판단할 수 있다. 예시적으로, 도 8의 S802 내지 S810 단계가 이에 해당할 수 있으며, n=5에 해당한다. 순차적으로 수신된 커맨드가 Activate 커맨드에 대한 뱅크/로우 어드레스 엔트리 세트에 해당하는 경우, 메모리 장치의 상태(status)를 PIM 동작 모드에 진입(PIM Operation Mode Entry)한 것으로 정의할 수 있다. S912 단계에서, 순차적으로 수신된 Activate 커맨드와 함께 수신된 Read 커맨드 또는 Write 커맨드가 PIM 동작 모드의 Read 커맨드 또는 Write 커맨드인지 판단할 수 있다. 수신된 커맨드가 PIM 동작 모드의 Read 커맨드 또는 Write 커맨드인 경우, PIM 회로 내에서 데이터패스 및 프로세싱 유닛을 제어(Datapath/PU control)하는 모드에 진입한 것으로 정의할 수 있다.
S908 단계에서, 메모리 장치는 미리 정해진 로우 커맨드/어드레스의 시퀀스(Row Command/Address Sequence)(800)에 따라, 수신된 커맨드가 Activate 커맨드에 대한 뱅크/로우 어드레스 엑시트 세트들에 해당하는지 여부를 순차적으로 판단할 수 있다.
예시적으로, 도 8의 S812 내지 S814 단계가 이에 해당할 수 있으며, m=2에 해당한다. 순차적으로 수신된 커맨드가 Activate 커맨드에 대한 뱅크/로우 어드레스 엑시트 세트에 해당하는 경우, 메모리 장치의 상태(status)를 PIM 동작 모드를 종료(PIM Operation Mode Exit)한 것으로 정의할 수 있다.
S906 및 S908 단계에서 수신된 커맨드가 Activate 커맨드에 대한 뱅크/로우 어드레스 엔트리/엑시트 세트들에 해당하지 않는다고 판단된 경우, S910 단계에서, 노멀 동작 모드의 커맨드인지 여부를 판단할 수 있다. 판단 결과 노멀 동작 모드의 커맨드인 경우, 노멀 동작 모드에서 PIM 회로가 동작할 수 있다.
도 10은 본 개시의 예시적 실시 예에 따른 메모리 시스템 내의 메모리 장치의 동작 방법을 설명하는 플로우차트이다.
도 10을 참조하면, S1002 단계에서, 메모리 컨트롤러는 메모리 장치의 메모리 동작 및 내부 프로세싱을 위해 메모리 장치에 하나 이상의 커맨드 및 어드레스 신호를 제공할 수 있고, 메모리 장치는 메모리 컨트롤러로부터의 커맨드 및 어드레스 신호를 수신할 수 있다. S1004 단계에서, 메모리 장치는 메모리 컨트롤러로부터 수신된 커맨드 어드레스 신호를 디코딩하여 내부 커맨드를 생성할 수 있다. S1006 단계에서, 메모리 장치는 내부 커맨드를 이용하여 커맨드 모드 비트를 생성할 수 있다. 실시 예에 따라, 커맨드 모드 비트는 메모리 장치에 포함되는 외부 핀 상의 신호가 하이(high)로 인가되는지 로우(low)로 인가되는지에 따라 결정될 수 있다. S1008 단계에서, 메모리 장치는 생성된 커맨드 모드 비트의 조합으로 커맨드 모드를 식별할 수 있고, 생성된 커맨드 모드 비트에 기초하여 내부 제어 신호를 출력하여 PIM 회로의 내부 프로세싱 동작을 제어할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 내부 프로세싱 동작을 수행하는 내부 프로세서를 포함하는 PIM(processor in memory) 회로; 및
    상기 PIM 회로와 연결되는 인터페이스 회로를 포함하고,
    상기 인터페이스 회로는,
    제1 핀들을 통해 수신되는 커맨드 및 어드레스를 디코딩하여 내부 커맨드를 생성하도록 구성되는 커맨드 어드레스 디코더(command address decoder);
    PIM 동작 모드의 제어에 관련된 전압 신호를 수신하도록 구성되는 제2 핀; 및
    상기 내부 커맨드 및 상기 전압 신호에 기초하여 적어도 하나 이상의 커맨드 모드 비트(command mode bit: CMB)를 생성하도록 구성되는 커맨드 모드 디코더;를 포함하고,
    상기 인터페이스 회로는, 상기 CMB에 기초하여 내부 제어 신호들을 상기 PIM 회로로 출력하여 상기 PIM 회로의 상기 내부 프로세싱 동작을 제어하도록 구성되는,
    메모리 장치.
  2. 제1항에 있어서,
    상기 제2 핀은 HBM(high bandwidth memory) 스펙에서 정의된 RFU(reserved for future use) 핀인 것을 특징으로 하는,
    메모리 장치.
  3. 제1항에 있어서,
    상기 메모리 장치는 다수의 뱅크들을 포함하고,
    상기 인터페이스 회로는,
    상기 커맨드 및 어드레스와, 상기 전압 신호의 조합에 의해 상기 다수의 뱅크들 중 일부가 PIM 동작 모드로 진입하도록 상기 내부 제어 신호들을 생성하는,
    메모리 장치.
  4. 제3항에 있어서,
    상기 다수의 뱅크들 중 일부는 쿼터(quarter) 또는 하프(half)의 뱅크인 것을 특징으로 하는,
    메모리 장치.
  5. 제1항에 있어서,
    상기 메모리 장치는 다수의 뱅크들을 포함하고,
    상기 인터페이스 회로는,
    상기 커맨드 및 어드레스와, 상기 전압 신호의 조합에 의해 상기 다수의 뱅크들 중 일부가 PIM 동작 모드를 종료하도록 상기 내부 제어 신호들을 생성하는,
    메모리 장치.
  6. 제5항에 있어서,
    상기 다수의 뱅크들 중 일부는 쿼터(quarter) 또는 하프(half)의 뱅크인 것을 특징으로 하는,
    메모리 장치.
  7. 내부 프로세싱 동작을 수행하는 내부 프로세서를 포함하는 PIM(processor in memory) 회로; 및
    상기 PIM 회로와 연결되고, 제1 핀들을 통해 수신되는 커맨드 및 어드레스를 디코딩하고, 상기 커맨드 및 어드레스와 제2 핀을 통해 수신된 전압 신호에 기초하여 상기 PIM 회로를 제어하기 위한 내부 제어 신호들을 생성하도록 구성되는 인터페이스 회로;를 포함하고,
    상기 커맨드 및 어드레스가 특정한 패턴을 가지는 경우, 상기 전압 신호가 제1 값이면 PIM 동작 모드로 진입하고, 상기 전압 신호가 제2 값이면 노멀 동작 모드로 진입하는,
    메모리 장치.
  8. 제7항에 있어서,
    상기 제2 핀은 HBM(high bandwidth memory) 스펙에서 정의된 RFU(reserved for future use) 핀인 것을 특징으로 하는,
    메모리 장치.
  9. 내부 프로세싱 동작을 수행하는 내부 프로세서를 포함하는 PIM(processor in memory) 회로; 및
    상기 PIM 회로와 연결되는 인터페이스 회로를 포함하고,
    상기 인터페이스 회로는,
    제1 핀들을 통해 수신되는 커맨드 및 어드레스를 디코딩하여 내부 커맨드를 생성하도록 구성되는 커맨드 어드레스 디코더(command address decoder); 및
    상기 커맨드 및 어드레스가 미리 정해진 로우 커맨드/어드레스 시퀀스에 해당하는지 여부를 판단하고, 그리고
    상기 판단 결과에 따라 상기 내부 커맨드들에 기초하여 적어도 하나 이상의 커맨드 모드 비트(command mode bit: CMB)를 생성하도록 구성되는 커맨드 모드 디코더;를 포함하고,
    상기 인터페이스 회로는, 상기 판단 결과에 따라, 상기 CMB에 기초하여 PIM 동작 모드에서 상기 PIM 회로의 상기 내부 프로세싱 동작을 제어하도록 구성되는,
    메모리 장치.
  10. 제9항에 있어서,
    상기 인터페이스 회로는 HBM(high bandwidth memory) 스펙에서 정의된 RFU(reserved for future use) 핀에 해당하는 제2 핀을 더 포함하고,
    상기 제2 핀의 논리 전압 레벨이 로우(low)인,
    메모리 장치.
KR1020210032095A 2021-03-11 2021-03-11 인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 KR20220127601A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210032095A KR20220127601A (ko) 2021-03-11 2021-03-11 인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법
CN202210082099.9A CN115083464A (zh) 2021-03-11 2022-01-24 存储装置
US17/591,928 US12099455B2 (en) 2021-03-11 2022-02-03 Memory device with internal processing interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210032095A KR20220127601A (ko) 2021-03-11 2021-03-11 인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20220127601A true KR20220127601A (ko) 2022-09-20

Family

ID=83194764

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210032095A KR20220127601A (ko) 2021-03-11 2021-03-11 인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법

Country Status (2)

Country Link
KR (1) KR20220127601A (ko)
CN (1) CN115083464A (ko)

Also Published As

Publication number Publication date
US20220292033A1 (en) 2022-09-15
CN115083464A (zh) 2022-09-20

Similar Documents

Publication Publication Date Title
US11482260B2 (en) Apparatuses and methods for scatter and gather
CN111694514B (zh) 用于处理运算的存储器设备及操作该存储器设备的方法
TWI615707B (zh) 用於錯誤碼計算之設備及方法
KR102453542B1 (ko) 스킵 연산 모드를 지원하는 메모리 장치 및 그 동작 방법
CN110781105A (zh) 存储设备、操作存储设备的方法以及系统
KR100745369B1 (ko) 포트상태 시그날링 기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치
TWI700585B (zh) 半導體裝置及包含該半導體裝置的記憶體系統
US11276459B2 (en) Memory die including local processor and global processor, memory device, and electronic device
JP5599969B2 (ja) マルチポートメモリ、および該マルチポートメモリを備えるコンピュータシステム
US11860803B2 (en) Memory device including processing circuit, and electronic device including system on chip and memory device
US10991418B2 (en) Semiconductor memory device comprising an interface conforming to JEDEC standard and control device therefor
US20210349839A1 (en) Multi-ported nonvolatile memory device with bank allocation and related systems and methods
US20120155200A1 (en) Memory device, memory system including the same, and control method thereof
CN111613261A (zh) 用于交叉点型存储器单元的双极解码器
US20200293452A1 (en) Memory device and method including circular instruction memory queue
KR102464305B1 (ko) 반도체 장치
KR20210091404A (ko) 메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법
KR20220127601A (ko) 인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법
US20210224038A1 (en) Processing-in-memory (pim) devices
US12099455B2 (en) Memory device with internal processing interface
KR20220045480A (ko) 인-메모리 프로세싱을 수행하는 메모리 디바이스
US20240112716A1 (en) Memory device and operation method thereof
US20230013611A1 (en) Memory device for performing in-memory processing
US11698870B2 (en) Memory module data buffer
US11775295B2 (en) Processing-in-memory (PIM) devices

Legal Events

Date Code Title Description
A201 Request for examination