KR20230060434A - 구버전과 호환되는 PIM(Processing-In-Memory) 프로토콜 - Google Patents
구버전과 호환되는 PIM(Processing-In-Memory) 프로토콜 Download PDFInfo
- Publication number
- KR20230060434A KR20230060434A KR1020220070298A KR20220070298A KR20230060434A KR 20230060434 A KR20230060434 A KR 20230060434A KR 1020220070298 A KR1020220070298 A KR 1020220070298A KR 20220070298 A KR20220070298 A KR 20220070298A KR 20230060434 A KR20230060434 A KR 20230060434A
- Authority
- KR
- South Korea
- Prior art keywords
- pim
- protocol
- mode
- command
- memory device
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims abstract description 94
- 230000008859 change Effects 0.000 claims abstract description 24
- 230000015654 memory Effects 0.000 claims description 116
- 238000012360 testing method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 36
- 230000000875 corresponding effect Effects 0.000 description 26
- 230000000630 rising effect Effects 0.000 description 15
- 101100064323 Arabidopsis thaliana DTX47 gene Proteins 0.000 description 11
- 101150026676 SID1 gene Proteins 0.000 description 11
- 238000003491 array Methods 0.000 description 10
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000000034 method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 101100297651 Mus musculus Pim2 gene Proteins 0.000 description 4
- 101001001642 Xenopus laevis Serine/threonine-protein kinase pim-3 Proteins 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 102100035475 Blood vessel epicardial substance Human genes 0.000 description 2
- 101001094636 Homo sapiens Blood vessel epicardial substance Proteins 0.000 description 2
- 101000608194 Homo sapiens Pyrin domain-containing protein 1 Proteins 0.000 description 2
- 101000595404 Homo sapiens Ribonucleases P/MRP protein subunit POP1 Proteins 0.000 description 2
- 101100193637 Oryza sativa subsp. japonica RAG2 gene Proteins 0.000 description 2
- 241000724291 Tobacco streak virus Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Dram (AREA)
Abstract
구버전과 호환되는 PIM 프로토콜이 개시된다. 메모리 장치는, PIM 프로토콜에 대한 제1 파라미터 코드 및 제2 파라미터 코드를 각각 제1 레지스터 및 제2 레지스터에 저장하도록 구성되는 모드 레지스터 세트(MRS), 제1 파라미터 코드는 구버전 PIM 프로토콜과 관련되는 PIM 프로토콜 변경을 지원하는지를 표시하는 PIM 프로토콜 변경 코드를 포함하고, 제2 파라미터는 다수의 PIM 프로토콜 중 현재 동작 PIM 프로토콜을 설정하는 PIM 프로토콜 코드를 포함하고, 현재 동작 PIM 프로토콜에 기초하여 내부 프로세싱 동작을 수행하도록 구성되는 PIM 회로를 포함한다.
Description
본 발명은 반도체 메모리 장치들에 관한 것으로서, 더욱 상세하게는 구버전과 호환되는 PIM(Processing-In-Memory) 프로토콜을 지원하는 메모리 장치 및 그 동작 방법에 관한 것이다.
고성능 및/또는 그래픽스 알고리즘들과 같은 어플리케이션들은 데이터-집약적이고 컴퓨터-집약적(data- and compute-intensive)이다. 딥 뉴럴 네트워크들과 같은 어플리케이션들은 보다 정확하게 다른 데이터 셋트들을 훈련(train) 또는 학습(learn)하기 위하여, 대용량 연산 및 메모리 능력을 갖는 컴퓨팅 시스템을 필요로 한다. 컴퓨팅 시스템의 연산 동작들(computation operations) 중 일부를 내부 프로세싱으로 수행하도록, 프로세서-인-메모리(Processor In Memory: 이하 "PIM"이라 통칭한다) 타입의 메모리 장치가 개발되고 있다. 메모리 장치의 PIM 프로세싱 동작을 통하여 컴퓨팅 시스템의 연산 동작 부담이 경감될 수 있다.
호스트 장치와 메모리 장치 사이의 PIM 프로토콜은 PIM 사양(specification)에 의해 특정한 PIM 커맨드로 수행될 수 있다. PIM 커맨드가 추가되고 PIM 프로세싱 동작의 단순화를 위하여, PIM 사양이 변경될 수 있다. PIM 사양이 변경되어 신규 버전의 PIM 프로토콜을 지원하는 경우, 이전 버전의 PIM 프로토콜을 지원할 수 있는 것이 바람직하다.
그런데, 구버전과 호환되는 PIM 프로토콜은 호스트 장치 및 메모리 장치의 하드웨어 구성이 복잡해지고 데이터 패킷 포맷과 같은 소프트웨어 변경을 수반(involve)할 수 있다. 이에 따라, 구버전과 호환되는 PIM 프로토콜과 관련하여 호스트 장치가 발행해야 하는 커맨드 수가 크게 증가되고, 이로 인하여 컴퓨팅 시스템의 프로세스 효율에 현저한 영향을 미친다. 또한 구버전과 호환되는 PIM 프로토콜을 구현하기 위한 장치의 비용 증가와 같은 문제점이 있다.
본 발명의 목적은 복잡한 하드웨어 및 소프트웨어 변경없이 구버전과 호환되는 PIM 프로토콜을 지원하는 메모리 장치 및 그 동작 방법을 제공하는 데 있다.
본 발명의 실시예들에 따른 PIM 프로토콜을 지원하는 메모리 장치는, 상기 PIM 프로토콜에 대한 제1 파라미터 코드 및 제2 파라미터 코드를 각각 제1 레지스터 및 제2 레지스터에 저장하도록 구성되는 모드 레지스터 세트(MRS), 상기 제1 파라미터 코드는 구버전 PIM 프로토콜과 관련되는 PIM 프로토콜 변경을 지원하는지를 표시하는 PIM 프로토콜 변경 코드를 포함하고, 상기 제2 파라미터는 다수의 PIM 프로토콜 중 현재 동작 PIM 프로토콜을 설정하는 PIM 프로토콜 코드를 포함하고; 및 상기 현재 동작 PIM 프로토콜에 기초하여 내부 프로세싱 동작을 수행하도록 구성되는 PIM 회로를 포함한다.
본 발명의 실시예들에 따른 버스를 통해 내부 프로세싱 동작을 수행하는 메모리 장치에 결합되는 호스트 장치는, 상기 메모리 장치가 구버전 PIM 프로토콜과 관련되는 PIM 프로토콜 변경을 지원하도록 그리고 다수의 PIM 프로토콜 중 현재 동작 PIM 프로토콜을 설정하도록 구성되는 메모리 콘트롤러를 포함하고, 상기 호스트 장치는 상기 호스트 장치의 프로세싱 작업 일부를 상기 현재 동작 PIM 프로토콜에 기초하여 상기 메모리 장치의 PIM 회로가 내부 프로세싱 동작으로 수행하도록 구성된다.
본 발명의 실시예들에 따른 버스를 통해 호스트 장치에 연결되고 PIM 회로를 포함하는 메모리 장치에 대한 구버전 호환 PIM 프로토콜을 지원하는 방법은, 상기 메모리 장치가, 버스를 통해 PIM 프로토콜에 대한 제1 파라미터 코드를 모드 레지스터 세트(MRS)의 제1 레지스터에 저장하는 단계, 상기 제1 파라미터 코드는 구버전 PIM 프로토콜과 관련되는 PIM 프로토콜 변경을 지원하는지를 표시하는 PIM 프로토콜 변경 코드를 포함하고; 상기 메모리 장치가, 상기 버스를 통해 상기 PIM 프로토콜에 대한 제2 파라미터 코드를 상기 MRS의 제1 레지스터에 저장하는 단계, 상기 제2 파라미터는 다수의 PIM 프로토콜 중 현재 동작 PIM 프로토콜을 설정하는 PIM 프로토콜 코드를 포함하고; 및 상기 메모리 장치가, 상기 현재 동작 PIM 프로토콜에 기초하여 상기 PIM 회로에서 내부 프로세싱 동작을 수행하는 단계를 포함한다.
본 발명의 호스트 장치 및 메모리 장치에 따르면, 구버전과 호환되는 PIM 프로토콜을 지원하기 위한 인터페이스 변화를 최소화하여 향상된 성능 및 감소된 비용을 가질 수 있다.
도 1은 본 발명의 예시적인 실시예들에 따른 내부 프로세싱 동작을 수행하는 메모리 장치를 포함하는 시스템을 설명하는 도면이다.
도 2는 본 발명의 예시적인 실시예에 따른 메모리 장치를 설명하는 도면이다.
도 3은 본 발명의 예시적인 실시예에 따른 메모리 장치의 구성을 나타내는 블락도이다.
도 4 및 도 5는 전형적인 PIM 프로토콜을 예시하는 도면들이다.
도 6은 전형적인 HBM 사양에 따른 커맨드를 설명하는 도면이다.
도 7은 전형적인 PIM 사양에 따른 커맨드를 설명하는 도면이다.
도 8은 전형적인 PIM 프로토콜에 따른 내부 프로세싱 동작을 예시하는 도면이다.
도 9는 전형적인 PIM 프로토콜에 따른 메모리 할당을 설명하는 도면이다.
도 10은 본 발명의 실시예들에 따른 모드 레지스터 세트(MRS)의 일부를 예시하는 도면이다.
도 11 내지 도 13은 본 발명의 실시예들에 따른 메모리 장치의 PIM 동작을 예시적으로 설명하는 도면들이다.
도 14는 본 발명의 실시예들에 따른, 도 1의 호스트 장치와 메모리 장치 사이의 구버전 호환 PIM 프로토콜의 동작들 및 통신들을 예시하는 도면이다.
도 15는 본 발명의 실시예들에 따른 구버전 호환 PIM 프로토콜의 동작을 수행하는 시스템을 나타내는 블록 다이어그램이다.
도 2는 본 발명의 예시적인 실시예에 따른 메모리 장치를 설명하는 도면이다.
도 3은 본 발명의 예시적인 실시예에 따른 메모리 장치의 구성을 나타내는 블락도이다.
도 4 및 도 5는 전형적인 PIM 프로토콜을 예시하는 도면들이다.
도 6은 전형적인 HBM 사양에 따른 커맨드를 설명하는 도면이다.
도 7은 전형적인 PIM 사양에 따른 커맨드를 설명하는 도면이다.
도 8은 전형적인 PIM 프로토콜에 따른 내부 프로세싱 동작을 예시하는 도면이다.
도 9는 전형적인 PIM 프로토콜에 따른 메모리 할당을 설명하는 도면이다.
도 10은 본 발명의 실시예들에 따른 모드 레지스터 세트(MRS)의 일부를 예시하는 도면이다.
도 11 내지 도 13은 본 발명의 실시예들에 따른 메모리 장치의 PIM 동작을 예시적으로 설명하는 도면들이다.
도 14는 본 발명의 실시예들에 따른, 도 1의 호스트 장치와 메모리 장치 사이의 구버전 호환 PIM 프로토콜의 동작들 및 통신들을 예시하는 도면이다.
도 15는 본 발명의 실시예들에 따른 구버전 호환 PIM 프로토콜의 동작을 수행하는 시스템을 나타내는 블록 다이어그램이다.
도 1은 본 발명의 예시적인 실시예들에 따른 내부 프로세싱 동작을 수행하는 메모리 장치를 포함하는 시스템을 설명하는 도면(diagram)이다.
도 1을 참조하면, 시스템(100)은 고성능 컴퓨팅(high-performance computing), 그래픽 동작 등과 같은 어플리케이션들 또는 심층 신경 망(deep neural networks)과 같은 러닝 시스템(learning systems)과 같은 어플리케이션들을 실행하도록 구성될 수 있다. 이러한 어플리케이션들은 작업들(jobs) 또는 태스크들을 병렬 방식으로 협력하여 실행하고, 다른 데이터 세트들을 트레이닝하고, 높은 정확도로 학습하기 위하여 많은 연산 및 메모리 능력들을 필요로 하고, 전력 효율성 및 낮은 레이턴시를 중요시한다.
시스템(100)은 호스트 장치(110) 및 메모리 장치(120)를 포함할 수 있다. 호스트 장치(110)는 전체적인 작업 또는 태스크가 많은 수의 컴퓨팅 엔티티들(예, 프로세서들, 프로세서들 내의 코어들, 및 메모리-내-처리(Processing-In-Memory: PIM) 회로(122)에서 병렬로 실행되는, 보다 작은 작업들로 분할되는 병렬 처리 접근법을 사용하여 전체적인 작업 또는 태스크를 해결하는 데 사용될 것이다. 태스크는 계층구조 등으로 구성되어 있는 다수의 작업들을 포함하고, 작업은 컴퓨팅 엔티티에 의해 실행되어야 하는 실행 가능 코드, 처리될 데이터, 컴퓨팅 엔티티에 의해 메모리 장치(120)로부터 검색되고, 코드의 실행을 통해 조작되며, 이어서 저장될 데이터를 지칭할 수 있다.
호스트 장치(110)는 버스(130)를 통하여 메모리 장치(120)와 통신적으로 연결(communicatively connected)될 수 있다. 호스트 장치(110)는 예시적으로, 컴퓨터, 노트북, 서버, 워크 스테이션, 휴대용 통신 단말기, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 스마트 폰, 웨어러블(Wearable) 장치와 같은 컴퓨팅 시스템일 수 있다. 또는 호스트 장치(110)는 그래픽스 카드와 같은 컴퓨팅 시스템에 포함된 구성 요소들 중 일부일 수 있다.
호스트 장치(110)는 시스템(100) 내 일반적인 컴퓨터 동작을 수행하는 프로세서(들)(112) 및 메모리 장치(120)로/로부터 데이터 송수신을 관리하는 메모리 콘트롤러(114)를 포함할 수 있다. 프로세서(들)(112)은 명령어들을 처리하고 관리하는 시스템(100)의 주된 구성(primary component)으로, 운영 체제(operating system) 및 어플리케이션들의 실행을 주로 담당한다. 또한, 프로세서(들)(112)은 복잡한 작업 또는 태스크를 해결하기 위해 작업 부하가 병렬 처리되도록 다수의 컴퓨팅 엔티티들에 분산될 수 있게 한다. 프로세서(들)(112)은 중앙 처리 유닛(Central Processing Unit: CPU), 디지털 시그널 프로세서(Digital Signal Processor: DSP), 그래픽 처리 유닛(Graphic Processing Unit: GPU), 암호화 처리 유닛(encryption processing unit), 물리 처리 유닛(physics processing unit), 머신 러닝 처리 유닛(machine learning processing unit) 등과 같은 처리 유닛을 포함할 수 있다.
프로세서(들)(112)은 다양한 연산 작업들, 명령어들(instructions), 또는 커널들(kernels)의 실행을 다른 프로세서로 분산하거나 메모리 장치(120)로 오프로드하여 효율성을 향상시킬 수 있다. 커널은 함께 그룹화되어 작업 또는 정의 가능한 서브-작업(definable sub-task)을 실행하는 하나 또는 그 이상의 명령어들로서 정의된다. 프로세서(들)(112)에 의해 오프로드된 커널에 의해 메모리 장치(120)의 PIM 회로(122)가 연산 처리를 수행할 수 있다. 다양한 종류의 연산 처리 동작이 PIM 회로(122)에서 수행될 수 있으며, 일 예로서 인공 지능과 관련하여 뉴럴 네트워크 연산들 중 적어도 일부가 PIM 회로(122)에서 수행될 수 있다. 예컨대, 프로세서(들)(112)는 뉴럴 네트워크 연산들 중 적어도 일부가 PIM 회로(122)에 의해 수행될 수 있도록, 메모리 콘트롤러(114)를 통해 메모리 장치(120)를 제어할 수 있을 것이다.
메모리 콘트롤러(114)는 호스트 장치(110)의 메모리 리퀘스트에 따라 메모리 장치(120)를 억세스할 수 있다. 메모리 콘트롤러(114)는 메모리 장치(120)에 커맨드(CMD)와 어드레스(ADDR)를 제공함으로써, 메모리 장치(120)에 대한 기입 동작 또는 독출 동작을 제어할 수 있다. 또한, 기입 동작을 위한 데이터(DQ)와 독출된 데이터(DQ)가 메모리 콘트롤러(114)와 메모리 장치(120) 사이에서 송수신될 수 있다. 이러한 메모리 억세스 동작은 메모리 콘트롤러(114)와 메모리 장치(120) 사이의 버스(130)를 통해 수행될 수 있다.
버스(130)는 메인 클록 신호(CK), 기입 데이터 스트로브 신호(WDQS) 및 독출 데이터 스트로브 신호(RDQS)를 전송하는 클록 신호 라인들, 커맨드/어드레스(CMD/ADDR)를 전송하는 커맨드/어드레스 신호 라인들, 데이터(DQ)를 전송하는 데이터 라인들로 구성될 수 있다. 버스(130)는 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))의 제어에 따라 HBM(High Bandwidth Memory) 사양으로 및/또는 PIM 사양으로 동작할 수 있다. 도면의 간결성을 위하여, 메모리 콘트롤러(114)와 메모리 장치(120) 사이에 클록 신호 라인들, 커맨드/어드레스 신호 라인들과 데이터 라인들이 각각 하나의 신호 라인으로 연결되는 것으로 도시되고 있으나, 실제로는 복수의 신호 라인들을 통해 연결될 수 있다. 버스(130)는 복수의 신호 라인들을 포함하는 하나의 채널 또는 복수의 채널들로 구현될 수 있다. 버스(130)는 채널로 지칭될 수 있으며, 이하의 실시예들에서 버스(130)와 채널의 용어는 혼용되어 사용 가능할 것이다.
메모리 장치(120)는 메모리 콘트롤러(114)의 제어에 따라 데이터를 기입하거나 데이터를 독출할 수 있다. 예시적으로, 메모리 장치(120)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory) 장치일 수 있다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 메모리 장치(120)는 LPDDR(Low Power Double Data Rate) SDRAM, Wide I/O DRAM, HBM(High Bandwidth Memory), HMC(Hybrid Memory Cube) 등과 같은 휘발성 메모리 장치들 중 어느 하나일 수 있다. 실시예에 따라, 메모리 장치(120)는 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등과 같은 비휘발성 메모리 장치들 중 어느 하나일 수 있다.
메모리 장치(120)는 노멀 모드와 내부 프로세싱 모드 중 어느 하나의 동작 모드로 동작할 수 있다. 노멀 모드는 메모리 콘트롤러(112)의 제어에 따라 일반적인 데이터 트랜잭션 동작을 수행하는 동작 모드를 말하고, 내부 프로세싱 모드는 메모리 콘트롤러(112)의 제어에 따라 내부 프로세싱 동작을 수행하는 동작 모드를 말한다. 데이터 트랜잭션 동작에서, 메모리 장치(120)는 메모리 콘트롤러(112)의 제어에 의해 DDR, LPDDR 및/또는 HBM 프로토콜에 정해진 노멀 모드 타이밍 파라미터들에 따라 커맨드 및 어드레스 수신 동작과 데이터 교환 동작을 수행할 수 있다. 내부 프로세싱 동작에서, 메모리 장치(120)는 메모리 콘트롤러(112)의 제어에 의해 PIM 프로토콜에 정해진 내부 프로세싱 모드 타이밍 파라미터들에 따라 커맨드 및 어드레스 수신 동작과 데이터 교환 동작을 수행할 수 있다. 노멀 모드 타이밍 파라미터들과 내부 프로세싱 모드 타이밍 파라미터들은 서로 다르게 설정될 수 있다. 실시예에 따라, 내부 프로세싱 모드 타이밍 파라미터들은 노멀 모드 타이밍 파라미터들 보다 상대적으로 작은 값들로 설정될 수 있다.
메모리 장치(120)은 메모리 셀 어레이(Memory Cell Array: MCA, 121), PIM 회로(122) 및 제어 로직 회로(126)를 포함할 수 있다. MCA(121)는 복수의 워드라인들과 복수의 비트라인들, 그리고 워드라인들과 비트라인들이 교차하는 지 점에 형성되는 복수의 메모리 셀들을 포함할 수 있다. 복수의 메모리 셀들 각각은 하나의 억세스 트랜지스터와 하나의 스토리지 커패시터로 이루어진 DRAM 셀로 이루어질 수 있다. MCA(121)는 복수의 메모리 뱅크들을 포함할 수 있다.
PIM 회로(122)에는 호스트 장치(110)에 의해 오프로드된 커널을 실행하도록 구성되는 하나 이상의 프로세싱 소자(123)가 구비될 수 있다. 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))는 버스(130)를 통해 PIM 커맨드를 발행함으로써 PIM 회로(122)의 내부 프로세싱 동작을 시작할 수 있다. PIM 회로(122)는 호스트 장치(110)에 포함된 프로세서(들)(112)과 유사하게, 프로세싱 기능을 갖는 하드웨어이다. PIM 회로(122)를 내부 프로세서로 지칭할 때 "내부"의 용어는 메모리 장치(120) 내에 존재한다는 것을 의미한다. 따라서, 메모리 장치(120)의 "외부"에 존재하는 프로세서는 예를 들어, 호스트 장치(110)의 프로세서(들)(112)를 지칭할 수 있다.
PIM 회로(122)는 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))로부터 제공되는 PIM 커맨드를 저장하는 커맨드 레지스터 파일(Command Register File: CRF, 123)를 포함할 수 있다. PIM 커맨드는 PIM 회로(122)가 수행하는 내부 프로세싱 동작을 위한 커맨드를 가리킨다. CRF(123)는 PIM 커맨드, 예를 들어 PIM_Load, PIM_Store, PIM_Read, PIM_Write, PIM_RMW, PIM_Instruction 등을 저장할 수 있다.
PIM_Load는 내부 프로세싱 동작의 기준 데이터 또는 목표 데이터 이동(move)을 가리키는 커맨드일 수 있다. PIM_Load 커맨드에 의해 MCA(121)로부터 데이터를 읽어 PIM 회로(122)로 제공될 수 있다. PIM_Store는 내부 프로세싱 동작의 처리 결과 데이터 이동을 가리키는 커맨드일 수 있다. PIM_Store 커맨드에 의해 PIM 회로(122)의 내부 처리 데이터가 MCA(121)에 저장될 수 있다. PIM_Read는 PIM 회로(122)의 내부 처리 데이터를 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))로 출력하는 PIM 독출 커맨드일 수 있다. PIM_Write는 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))에서 제공되는 내부 프로세싱 동작의 기준 데이터 또는 목표 데이터를 PIM 회로(122)에 입력하는 PIM 기입 커맨드일 수 있다. PIM_RMW는 내부 프로세싱 동작의 기준 데이터 또는 목표 데이터의 일부가 PIM 회로(122)에 입력되지 않도록 마스킹하는 PIM 리드-모디파이-라이트(Read-Modify-Write) 커맨드일 수 있다. PIM_Instruction은 CRF(123)에 저장된 PIM 커맨드를 실행하도록 지시하는 PIM 실행(execution) 커맨드이고 PIM_x (x는 인덱스)커맨드로 지칭될 수 있다.
제어 로직 회로(126)는 메모리 장치(120)의 전반적인 동작들을 제어하고, 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))와 메모리 장치(120) 사이에 설정된 PIM 프로토콜을 판단하는 PIM 프로토콜 판단부(127, 이하 "PPD"라 칭함)를 포함할 수 있다. PPD(127)는 메모리 장치(120)가 어떤 PIM 프로토콜로 동작하도록 설정되었는지를 분석 및 검출할 수 있다.
일부 실시예에서, PPD(127)는 메모리 장치(120)의 모드 레지스터 세트(320, 도 3 및 도 10, 이하 "MRS"라 칭함)에 설정된 구버전 PIM 프로토콜을 지원하는지를 표시하는 PIM 프로토콜 변경 코드 및 다수의 PIM 프로토콜 중 현재 동작 PIM 프로토콜을 설정하는 PIM 프로토콜 코드에 기초하여 PIM 프로토콜을 판단할 수 있다.
일부 실시예에서, PPD(127)는 현재 동작 PIM 프로토콜에 따라 메모리 장치(120)가 어떤 뱅크 아키텍쳐로 동작하도록 설정되었는지를 분석 및 검출할 수 있다.
일부 실시예에서, PPD(127)는 MRS(320)에 설정된 모든 뱅크 아키텍쳐 코드 또는 이븐/오드(even/odd) 뱅크로 구분되는 하프 뱅크 아키텍쳐 코드에 기초하여 뱅크 아키텍쳐를 판단할 수 있다.
일부 실시예에서, PPD(127)는 현재 동작 PIM 프로토콜과 관련하여 내부 프로세싱 동작을 수행하는 PIM 모드의 진입 또는 탈출을 식별하기 위해 표시되는 PIM 진입/탈출 코드가 메모리 장치의 로우 어드레스 패턴, 칼럼 어드레스 패턴 및 데이터 패턴 중 무엇으로 설정되었는지를 분석 및 검출할 수 있다.
일부 실시예에서, PPD(127)는 PIM 진입/탈출 코드와 관련하여 PIM 모드로 진입하는 PIM 진입 패턴 및 PIM 모드를 탈출하는 PIM 탈출 패턴을 분석 및 검출할 수 있다.
일부 실시예에서, 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))는 메모리 장치(120)의 테스트를 위해 특정할 수 있는 TMRS(Test MRS) 또는 IEEE1500 인터페이스를 이용하여 PIM 프로토콜 변경 코드, PIM 프로토콜 코드, 뱅크 동작 코드, PIM 진입/탈출 코드 및/또는 PIM 진입/탈출 패턴을 설정할 수 있다. PPD(127)는 TMRS(Test MRS) 또는 IEEE1500 인터페이스를 이용하여 메모리 장치(120)가 어떤 PIM 프로토콜로 동작하도록 설정되었는지를 분석 및 검출할 수 있다.
PIM 회로(122)는 PPD(127)에 의한 PIM 프로토콜 분석 및 검출 결과에 따라 PIM 내부 프로세싱 동작을 수행할 수 있다. 본 실시예에서는 PPD(127)가 현재 동작 PIM 프로토콜을 판단하는 것으로 설명될 것이나, 본 발명의 실시예들은 이에 국한될 필요가 없다. 예컨대, PPD(127)는 제어 로직 회로(126) 내에 구비되는 구성에 해당하고, 제어 로직 회로(126)가 현재 동작 PIM 프로토콜을 판단하는 것으로 설명되어도 무방할 것이다.
도 2는 본 발명의 예시적인 실시예에 따른 메모리 장치를 설명하는 도면이다. 도 2는 HBM으로 구현된 도 1의 메모리 장치(120)를 보여준다. 도 2에 도시된 HBM 구성은 예로서 제공되며, 반드시 실제의 HBM 구성은 아니라는 것을 밝혀둔다. 또한, 도 2에 도시된 예시적인 HBM 구성은 본 개시 내용에 대한 제한을 나타내거나 암시하지 않는다. 이하에서, 설명의 편의를 위하여, 메모리 장치(120)는 HBM(120)으로 혼용될 수 있다.
도 1 및 도 2를 참조하면, HBM(120)은 JEDEC 표준의 HBM 프로토콜을 통하여 호스트 장치(110)에 연결될 수 있다. HBM 프로토콜은 3차원 적층 메모리들(예를 들어, DRAM)을 위한 고성능 랜덤 액세스 메모리(RAM) 인터페이스이다. 또한, HBM(120)은 JEDEC 표준의 PIM 프로토콜을 통하여 호스트 장치(110)에 연결될 수 있다. PIM 프로토콜은 HBM(120)의 PIM 회로(122)를 위한 인터페이스이다. HBM(120)은 일반적으로 다른 DRAM 기술들(예를 들어, DDR4, GDDR5 등)보다 실질적으로 더 작은 폼 팩터(form factor)에서, 더 적은 전력을 소비하면서, 더 넓은 대역폭을 달성한다.
HBM(120)은 서로 독립된 인터페이스를 갖는 다수의 채널들(CH1~CH8)을 포함함으로써 높은 대역폭(Bandwidth)을 가질 수 있다. HBM(120)은 다수개의 다이들(210, 220)을 포함할 수 있으며, 일 예로서 로직 다이(또는, 버퍼 다이)(210)와 로직 다이(210) 위에 적층된 하나 이상의 코어 다이들(220)을 포함할 수 있다. 도 2의 예에서는, 제1 내지 제4 코어 다이들(221-224)이 HBM(120)에 구비되는 예가 도시되었으나, 상기 코어 다이들(220)의 개수는 다양하게 변경될 수 있다. 코어 다이들(220)은 메모리 다이들로 지칭될 수 있다.
제1 내지 제4 코어 다이들(221-224) 각각은 하나 이상의 채널을 포함할 수 있다. 도 2에서는 제1 내지 제4 코어 다이들(221-224) 각각이 두 개의 채널을 포함함에 따라 HBM(120)은 8 개의 채널들(CH1~CH8)을 갖는 예가 도시된다. 예컨대, 제1 코어 다이(221)는 제1 채널 및 제3 채널(CH1, CH3)을 포함하고, 제2 코어 다이(222)는 제2 채널 및 제4 채널(CH2, CH4)을 포함하며, 제3 코어 다이(223)는 제5 채널 및 제7 채널(CH5, CH7)을 포함하며, 제4 코어 다이(224)는 제6 채널 및 제8 채널(CH6, CH8)을 포함할 수 있다.
로직 다이(210)는 호스트 장치(110)와 통신하는 인터페이스 회로(211)를 포함할 수 있으며, 인터페이스 회로(211)를 통해 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))로부터 커맨드/어드레스 및 데이터를 수신할 수 있다. 호스트 장치(110)는 채널(들)(CH1~CH8)에 대응하여 배치되는 버스(들)(130)을 통해 커맨드/어드레스 및 데이터를 전송할 수 있으며, 채널별로 버스(130)가 구분되도록 형성되거나, 일부의 버스(130)는 적어도 두 개의 채널들에 공유될 수도 있을 것이다. 인터페이스 회로(211)는 호스트 장치(110)가 메모리 동작 또는 연산 처리를 요청하는 채널로 커맨드/어드레스 및 데이터를 전달할 수 있다. 또한, 본 발명의 예시적인 실시예에 따라, 코어 다이들(320) 각각 또는 채널들 각각은 PIM 회로(122)를 포함할 수 있다.
호스트 장치(110)는 다수의 연산 작업들 또는 커널들 중 적어도 일부가 HBM(120)에서 수행될 수 있도록 커맨드/어드레스 및 데이터를 제공할 수 있으며, 호스트 장치(110)가 지정하는 채널의 PIM 회로(122)에서 연산 처리가 수행될 수 있다. 일 예로서, 수신된 커맨드/어드레스가 연산 처리를 지시하는 경우, 해당 채널의 PIM 회로(122)는 해당 채널에서 독출되는 데이터를 이용하여 연산 처리를 수행하고, 연산 처리 결과를 해당 채널에 라이트-백(write-back) 할 수 있다. 다른 예로서, HBM(120)의 해당 채널로 수신된 커맨드/어드레스가 메모리 동작을 지시하는 경우에는 데이터에 대한 억세스 동작이 수행될 수 있다.
일 실시예에 따라, 채널들(CH1~CH8) 각각은 다수 개의 뱅크들을 포함할 수 있고, 각각의 채널의 PIM 회로(122)에는 하나 이상의 프로세싱 소자들(PE)이 구비될 수 있다. 일 예로서, 각각의 채널에서 프로세싱 소자들(PE)의 개수는 뱅크들의 개수와 동일할 수 있으며, 또는 프로세싱 소자들의 개수가 뱅크들의 개수보다 적음에 따라 하나의 프로세싱 소자(PE)가 적어도 두 개의 뱅크들에 공유될 수도 있을 것이다. 각 채널의 PIM 회로(122)는 호스트 장치(110)에 의해 오프로드된 커널의 명령어들을 실행할 수 있다.
한편, 로직 다이(210)는 스루 실리콘 비아(Through Silicon Via: TSV) 영역(212), HBM 물리 계층 인터페이스(PHYsical layer interface: HBM PHY) 영역(213), 직렬화기/역직렬화기(SERializer/DESerializer: SERDES) 영역(214) 및 PPD(127)를 더 포함할 수 있다. TSV 영역(212)은 코어 다이들(220)과의 통신을 위한 TSV가 형성되는 영역으로, 채널(들)(CH1~CH8)에 대응하여 배치되는 버스(들)(130)이 형성되는 영역이다. 각각의 채널(CH1~CH8)이 예컨대, 128 비트의 대역폭을 갖는 경우, TSV들은 1024 비트의 데이터 입출력을 위한 구성들을 포함할 수 있다.
HBM PHY 영역(213)은 메모리 콘트롤러(114)와 채널들(CH1~CH8)과의 통신을 위해 다수의 입출력 회로를 포함할 수 있으며, 일 예로서 HBM PHY 영역(213)은 메모리 콘트롤러(114)와 채널들(CH1~CH8)을 연결하기 위한 하나 이상의 인터컨넥트 회로들을 포함할 수 있다. HBM PHY 영역(213)은 메모리 콘트롤러(114)와 채널들(CH1~CH8) 사이의 효율적인 통신에 요구되는 신호들, 주파수, 타이밍, 구동, 상세 동작 파라미터 및 기능성을 위해 제공되는 물리적 또는 전기적 계층과 논리적 계층을 포함할 수 있다. HBM PHY 영역(213)은 해당 채널에 대하여 메모리 셀에 대응하는 로우 및 칼럼을 선택하는 것, 메모리 셀에 데이터를 기입하는 것, 또는 기입된 데이터를 독출하는 것과 같은 메모리 인터페이싱을 수행할 수 있다. HBM PHY 영역(213)은 JEDEC 표준의 HBM 프로토콜 및/또는 PIM 프로토콜의 특징들을 지원할 수 있다.
SERDES 영역(214)은 호스트 장치(110)의 프로세서(들)(112)의 프로세싱 스루풋이 증가함에 따라, 그리고 메모리 대역폭에 대한 요구들이 증가함에 따라, JEDEC(Joint Electron Device Engineering Council) 표준의 SERDES 인터페이스를 제공하는 영역이다. SERDES 영역(214)은 SERDES 송신기 부분, SERDES 수신기 부분 및 제어기 부분을 포함할 수 있다. SERDES 송신기 부분은 병렬-투-직렬 회로 및 송신기를 포함하고, 병렬 데이터 스트림을 수신하고, 수신된 병렬 데이터 스트림을 직렬화 할 수 있다. SERDES 수신기 부분은 수신기 증폭기, 등화기, 클록 및 데이터 복원 회로 및 직렬-투-병렬 회로를 포함하고, 직렬 데이터 스트림을 수신하고, 수신된 직렬 데이터 스트림을 병렬화 할 수 있다. 제어기 부분은 에러 검출 회로, 에러 정정 회로 및 FIFO(First In First Out)와 같은 레지스터들을 포함할 수 있다.
PPD(127)는 구버전 호환 PIM 프로토콜을 지원하는지를 판단하도록 구성될 수 있다. PPD(127)는 HBM PHY 영역(213)을 통해 통신되는 PIM 프로토콜 변경 코드, PIM 프로토콜 코드, 뱅크 동작 코드, PIM 진입/탈출 코드 및/또는 PIM 진입/탈출 패턴을 분석하여 다수의 PIM 프로토콜 중에서 설정된 현재 동작 PIM 프로토콜을 판단할 수 있다.
예시적으로, 현재 동작 PIM 프로토콜은, 도 8에 도시된, PIM 회로(122)의 내부 프로세싱 동작에 사용되는 PIM 커맨드에 따라 내부 프로세싱 동작을 수행하는 풀 커맨드 구동 모드인 S2 프로토콜로 설정될 수 있다.
예시적으로, 구버전 PIM 프로토콜은, 도 8에 도시된, 메모리 장치(120)가 메모리 동작에 사용되는 노멀 커맨드 및 특정 로우 어드레스를 이용하여 PIM 회로(122)의 내부 프로세싱 동작을 수행하도록 설정되는 PIM 프로토콜의 레가시 모드인 S0 프로토콜, 상기 레가시 모드에 대해 미사용(RFU) 핀을 더 사용하여 PIM 회로(122)의 내부 프로세싱 동작을 수행하도록 설정되는 RFU 제어 레가시 모드인 S1 프로토콜 및 PIM 커맨드를 일부 사용하여 PIM 회로(122)의 내부 프로세싱 동작을 수행하도록 설정되는 파샬 커맨드 구동 모드인 S1.5 프로토콜 중 어느 하나로 설정될 수 있다.
도 3은 본 발명의 예시적인 실시예에 따른 메모리 장치의 구성을 나타내는 블락도이다. 도 3은 도 2의 HBM 내 다수개의 채널들(CH1~CH8) 중에서 대표적으로 제1 채널(CH1)의 구성을 보여준다. 제1 채널(CH1)의 구성은 나머지 채널들(CH2~CH8)에 동일하게 적용될 수 있다. 또한, 제1 채널(CH1)의 구성은 단독(stand-alone) 타입의 DDR 및/또는 LPDDR DRAM으로 구현되는 메모리 장치(120, 도 1)에도 동일하게 적용될 수 있다.
도 3을 참조하면, 제1 채널(CH1)은 어드레스 버퍼(310), 제어 로직 회로(126), PIM 회로(122), 로우 디코더(3060), 칼럼 디코더(3070), 메모리 셀 어레이(121), 입출력 게이팅 회로(3090), 그리고 데이터 입출력 버퍼(3095)를 포함할 수 있다. 도 3에는 도시되지 않았으나, 제1 채널(CH1)은 클록 버퍼, 리프레쉬 제어 회로, 전압 발생 회로, 뱅크 제어 로직 등을 더 포함할 수 있다.
메모리 셀 어레이(121)는 제1 내지 제4 뱅크 어레이들(3080a, 3080b, 3080c, 3080d)을 포함할 수 있다. 제1 내지 제4 뱅크 어레이들(3080a, 3080b, 3080c, 3080d) 각각은 복수의 워드라인들과 복수의 비트라인들, 그리고 워드라인들과 비트라인들이 교차하는 지점에 형성되는 복수의 메모리 셀들을 포함할 수 있다.
로우 디코더(3060)는 제1 내지 제4 뱅크 어레이(3080a, 3080b, 3080c, 3080d)에 각각 연결되는 제1 내지 제4 뱅크 로우 디코더들(3060a, 3060b, 3060c, 3060d)을 포함하고, 칼럼 디코더(3070)는 제1 내지 제4 뱅크 어레이(3080a, 3080b, 3080c, 3080d)에 각각 연결되는 제1 내지 제4 뱅크 칼럼 디코더들(3070a, 3070b, 3070c, 3070d)을 포함하고, PIM 회로(122)는 제1 내지 제4 뱅크 어레이(3080a, 3080b, 3080c, 3080d)에 각각 연결되는 제1 내지 제4 프로세싱 소자들(3085a, 3085b, 3085c, 3085d)을 포함할 수 있다.
제1 내지 제4 뱅크 어레이들(3080a, 3080b, 3080c, 3080d), 제1 내지 제4 뱅크 로우 디코더들(3060a, 3060b, 3060c, 3060d), 제1 내지 제4 뱅크 칼럼 디코더들(3070a, 3070b, 3070c, 3070d) 및 제1 내지 제4 프로세싱 소자들(3085a, 3085b, 3085c, 3085d)은 제1 내지 제4 메모리 뱅크들을 각각 구성할 수 있다. 본 실시예에서는 4개의 메모리 뱅크들을 포함하는 제1 채널(CH1)의 예가 도시되어 있으나, 실시예에 따라, 제1 채널(CH1)은 임의의 수의 메모리 뱅크들을 포함할 수 있다.
어드레스 버퍼(310)는 메모리 콘트롤러(114)로부터 로우 어드레스(예, R[9:0], 도 7) 및 칼럼 어드레스(예, C[7:0], 도 7)를 포함하는 어드레스(ADDR)를 수신할 수 있다. 또한, 어드레스 버퍼(310)는 뱅크 어드레스를 수신하여 뱅크 제어 로직에 제공하고, 수신된 로우 어드레스(R[9:0])를 로우 디코더(3060)로 제공하고, 수신된 칼럼 어드레스(C[7:0])를 제어 로직 회로(126)에 제공할 수 있다. 뱅크 제어 로직은 뱅크 어드레스에 응답하여 뱅크 제어 신호들을 생성할 수 있다. 뱅크 제어 신호들에 응답하여, 제1 내지 제4 뱅크 로우 디코더들(3060a, 3060b, 3060c, 3060d) 중 뱅크 어드레스에 상응하는 뱅크 로우 디코더가 활성화되고, 제1 내지 제4 뱅크 칼럼 디코더들(3070a, 3070b, 3070c, 3070d) 중 뱅크 어드레스에 상응하는 뱅크 칼럼 디코더가 활성화될 수 있다.
제어 로직 회로(126)는 제1 채널(CH1)의 전반적인 동작들을 제어할 수 있다. 제어 로직 회로(126)는 제1 채널(CH1)이 기입 동작, 독출 동작, 리프레쉬 및/또는 내부 프로세싱 동작을 수행하도록 제어 신호들을 생성할 수 있다. 제어 로직 회로(126)는 제1 채널(CH1)의 복수개 동작 옵션들을 설정하기 위한 MRS(320) 및 메모리 콘트롤러(114)로부터 수신되는 커맨드(CMD)를 디코딩하는 커맨드 디코더(330)를 포함할 수 있다.
모드 레지스터(320)는 예컨대, 버스트 길이, 독출/기입 레이턴시, PIM 프로토콜 변경 및 또는 뱅크 아키텍쳐 등을 제어하기 위해 사용될 수 있다. 버스트 길이는 독출 및/또는 기입 커맨드에 대하여 억세스할 수 있는 칼럼 로케이션들의 최대 수를 셋팅하기 위해 제공될 수 있다. 독출/기입 레이턴시는 독출 및/또는 기입 커맨드와 유효한 출력 및 또는 입력 데이터의 첫번째 비트 사이의 클록 사이클 지연을 정의하기 위해 제공될 수 있다. PIM 프로토콜 변경은 다수의 PIM 프로토콜 중 어느 하나를 설정하기 위해 제공될 수 있다. PIM 프로토콜은 PIM 프로토콜의 발전 단계에 따라 다수의 스테이지(S0, S1, S1.5, S2, 도 8) 프로토콜로 규정될 수 있다. 신규 버전의 PIM 프로토콜은 S2 프로토콜로 지칭될 수 있고, 나머지 S0, S1 및 S1.5 프로토콜은 구버전 PIM 프로토콜로 지칭될 수 있다. 뱅크 아키텍쳐는 메모리 셀 어레이(121)에 대하여 모든 뱅크 모드 또는 이븐/오드 뱅크의 하프 뱅크 모드로 셋팅하기 위해 제공될 수 있다. 모드 레지스터(320)는 도 10에서 구체적으로 설명될 것이다.
커맨드 디코더(330)는 메모리 콘트롤러(114)로부터 커맨드(CMD)를 수신하고, 수신된 커맨드(CMD)가 노멀 모드를 지정하는 노멀 커맨드인지 또는 내부 프로세싱 모드를 지정하는 PIM 커맨드인지를 판단할 수 있다. 커맨드 디코더(330)는 수신된 커맨드가 PIM 커맨드인 것으로 판단되면, PIM 커맨드를 PIM 회로(122)의 CRF(124)로 제공할 수 있다.
입출력 게이팅 회로(3090)는 입출력 데이터(DQ)를 게이팅하는 회로들과 함께, 칼럼 선택 회로, 입력 데이터 마스크 로직, 제1 내지 제4 뱅크 어레이들(3080a, 3080b, 3080c, 3080d)로부터 출력되는 독출 데이터를 저장하기 위한 독출 데이터 래치들, 그리고 제1 내지 제4 뱅크 어레이들(3080a, 3080b, 3080c, 3080d)에 데이터를 기입하기 위한 기입 드라이버를 포함할 수 있다.
제1 내지 제4 뱅크 어레이들(3080a, 3080b, 3080c, 3080d) 중 하나의 뱅크 어레이에서 출력되는 독출 데이터는 하나의 뱅크 어레이에 대응되는 센스 앰프들에 의해 감지되고 독출 데이터 래치들에 저장될 수 있다. 제1 내지 제4 뱅크 어레이들(3080a, 3080b, 3080c, 3080d) 중 하나의 뱅크 어레이의 메모리 셀 어레이에 기입될 기입 데이터는 메모리 콘트롤러(114)로부터 데이터 입출력 버퍼(3095)로 제공될 수 있다. 데이터 입출력 버퍼(3095)에 제공된 데이터는 기입 드라이버를 통하여 하나의 뱅크 어레이에 기입될 수 있다.
도 4 및 도 5는 전형적인 PIM 프로토콜을 예시하는 도면들이다. 도 4는 S0, S1 및 S1.5 프로토콜을 예시하고, 도 5는 S2 프로토콜을 예시한다.
도 1 및 도 4를 참조하면, S0, S1 및 S1.5 프로토콜에서는 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))로부터 버스(130)의 커맨드/어드레스 신호 라인들(CA)를 통해 칼럼 커맨드, 예컨대, 제1 독출 커맨드(401), 제2 독출 커맨드(402) 및 제3 독출 커맨드(403)가 순차적으로 메모리 장치(120)로 제공될 수 있다. 제1 내지 제3 독출 커맨드(401, 402, 403) 각각은 PIM 회로(122)에서 수행될 내부 프로세싱 동작(예, MAC, MAD, ADD)을 지시하는 PIM 커맨드와 상관될 수 있다. 예컨대, MAC 동작은 a*b+c=c 동작을 나타내고, MAD 동작은 a*b+c=d 동작을 나타내고, ADD 동작은 a+b=c 동작을 나타낼 수 있다. 여기에서, a, b, c, d 는 해당 동작들이 수행될 메모리 셀 어레이(121)의 서로 다른 주소 정보를 나타낼 수 있다.
예시적으로, 제1 독출 커맨드(401)는 MAC 동작과 연관되는데, 메모리 셀 어레이(121)의 a, b, c 주소의 데이터를 읽어오고, a 주소의 데이터와 b 주소의 데이터를 곱셈하고, 곱셈된 값에 c주소의 데이터를 더하고, 더해진 값을 c 주소의 메모리 셀들에 저장하도록 구성될 수 있다. 제2 독출 커맨드(402)은 MAD 동작과 연관되는데, 메모리 셀 어레이(121)의 a, b, c 주소의 데이터를 읽어오고 a 주소의 데이터와 b 주소의 데이터를 곱셈하고, 곱셈된 값에 c주소의 데이터를 더하고, 더해진 값을 d 주소의 메모리 셀들에 저장하도록 구성될 수 있다. 제3 독출 커맨드(403)은 ADD 동작과 연관되는데, 메모리 셀 어레이(121)의 a, b 주소의 데이터를 읽어오고 a 주소의 데이터와 b 주소의 데이터를 더하고, 더해진 값을 c 주소의 메모리 셀들에 저장하도록 구성될 수 있다.
순차적인 제1 독출 커맨드(401), 제2 독출 커맨드(402) 및 제3 독출 커맨드(403)의 순서에 따라 메모리 장치(120)의 CRF(124)의 프로그램 카운터가 +1 씩 증가할 수 있다. CRF(124)에는 제1 독출 커맨드(401)에 대응하는 MAC 동작을 지시하는 제1 PIM 커맨드(411), 제2 독출 커맨드(402)에 대응하는 MAD 동작을 지시하는 제2 PIM 커맨드(412), 그리고 제3 독출 커맨드(403)에 대응하는 ADD 동작을 지시하는 제3 PIM 커맨드(413)가 순차적으로 저장될 수 있다. 이처럼, S0, S1 및 S1.5 프로토콜에서는 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))에서 제공되는 칼럼 커맨드와 CRF(124)에 저장되는 PIM 커맨드 사이의 상관 관계에 기초하여 상호 간에 정확한 매칭이 요구된다.
도 5를 참조하면, S2 프로토콜은 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))로부터 버스(130)의 커맨드/어드레스 신호 라인들(CA)를 통해 PIM 칼럼 커맨드, 예컨대, PIM_Write 커맨드(501), PIM_Load 커맨드(502), PIM_0 커맨드(503), PIM_0 커맨드(504), PIM_1 커맨드(505), PIM_2 커맨드(506), 그리고 PIM_Load 커맨드(507)가 순차적으로 메모리 장치(120)로 제공될 수 있다. 예시적으로, PIM 실행 커맨드인 PIM_0 커맨드(503, 504), PIM_1 커맨드(505), PIM_2 커맨드(506) 각각은 PIM 회로(122)에서 수행될 내부 프로세싱 동작(예, MAC, MAD, ADD)을 지시할 수 있다.
PIM_0 커맨드(503, 504)는 인덱스 0으로 표시되는 MAC 동작을 지시할 수 있다. PIM_1 커맨드(505)는 인덱스 1로 표시되는 MAD 동작을 지시하고, PIM_2 커맨드(506)은 인덱스 2로 표시되는 ADD 동작을 지시할 수 있다. CRF(124)는 인덱스 값에 대응하는 PIM 커맨드를 저장할 수 있다. CRF(124)에는 PIM_0 커맨드(503, 504)에 대응하는 MAC 동작을 지시하는 인덱스 0의 PIM 커맨드(511), PIM_1 커맨드(505)에 대응하는 MAD 동작을 지시하는 인덱스 1의 PIM 커맨드(512), 그리고 PIM_2 커맨드(506)에 대응하는 ADD 동작을 지시하는 인덱스 2의 PIM 커맨드(513)가 순차적으로 저장될 수 있다. 이처럼, S2 프로토콜에서는 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))에서 제공되는 PIM 실행 커맨드의 인덱스 값에 기초하여 해당 인덱스 값의 CRF(124)에 해당 PIM 실행 커맨드를 저장하도록 구성된다.
도 6은 전형적인 HBM 사양에 따른 커맨드를 설명하는 도면이다. 도 6에서는 HBM 사양에 따른 커맨드 일부를 설명하는데, 도 7에서 설명될 PIM 커맨드에 대항하여 노멀 커맨드로 지칭될 수 있다.
도 6을 참조하면, 노멀 로우 커맨드 다이어그램(610)과 노멀 칼럼 커맨드 다이어그램(620)을 보여준다. 노멀 로우 커맨드 다이어그램(610)은 액티브 커맨드(ACT), 퍼-뱅크 프리차지 커맨드(PREpb) 및 모든 뱅크 프리차지(PREab)를 예시한다. 노멀 로우 커맨드 다이어그램(610)에는 도시되지 않았으나, 노멀 로우 커맨드에는 로우 노 오퍼레이션 커맨드(RNOP), 리프레쉬 관련 커맨드들(REFpb, REFab, SRE, SRX), 파워 다운 진입/탈출 커맨드(PDE/PDX) 등을 더 포함할 수 있다. 액티브 커맨드(ACT), 퍼-뱅크 프리차지 커맨드(PREpb) 및 모든 뱅크 프리차지(PREab)의 오퍼랜드들은 로우 어드레스(R[0]~R[9])에서 제공된다.
액티브 커맨드(ACT)는 첫번째 클럭 CK 상승 에지에서 로우 어드레스(R[0]~R[9])에서 오퍼랜드들이 제공되고, 첫번째 클럭 CK 하강 에지 및 두번째 클럭 CK 상승 에지에서 추가 오퍼랜드들이 입력될 수 있다. 오퍼랜드들(액티브 커맨드(ACT)의 특정 양상들을 표시하는 변수들, 필드들, 또는 값들)은 HBM 사양에 의해 제공되는 PC, SID0~SID1, BA0~BA3, RA0~RA14를 포함할 수 있다. PC는 의사 채널(pseudo channel) 모드를 표시할 수 있다. 의사 채널은 도 2에서 설명된 HBM(120)의 채널들(CH1~CH8) 각각이 2개의 의사 채널 모드로 동작하도록 구성될 때 64 비트의 데이터(DQ) 너비를 갖도록 설정되는 것을 표시한다. 각각의 채널(CH1~CH8)이 128 비트의 데이터(DQ) 너비를 갖을 때 레가시 모드(legacy mode) 라고 칭한다. SID0~SID1는 HBM(120)에 스택된 메모리 다이의 스택 번호를 표시하고, BA0~BA3는 뱅크 어드레스를 표시하고, RA0~RA14는 로우 어드레스를 표시할 수 있다. 퍼-뱅크 프리차지 커맨드(PREpb)는 클럭 CK 상승 에지에서 로우 어드레스(R[0]~R[9])에서 오퍼랜드들(PC, SID0~SID1, BA0~BA3)이 제공되고, 모든 뱅크 프리차지(PREab)는 클럭 CK 상승 에지에서 로우 어드레스(R[0]~R[9])에서 오퍼랜드(PC)가 제공될 수 있다.
노멀 칼럼 커맨드 다이어그램(620)은 독출 커맨드(RD), 기입 커맨드(WR) 및 모드 레지스터 커맨드(MRScmd)를 포함할 수 있다. 독출 커맨드(RD), 기입 커맨드(WR) 및 모드 레지스터 커맨드(MRScmd)의 오퍼랜드들은 칼럼 어드레스(C[0]~C[7]) 및 미사용 핀(RFU, 이하 "RFU 핀"으로 칭함)에서 제공된다. 노멀 칼럼 커맨드 다이어그램(620)에는 도시되지 않았으나, 노멀 칼럼 커맨드에는 칼럼 노 오퍼레이션 커맨드(CNOP), 오토 프리차지(auto precharge)를 갖는 독출 커맨드(RDA), 오토 프리차지를 갖는 기입 커맨드(WRA) 등을 더 포함할 수 있다.
독출 커맨드(RD)는 클럭 CK 상승 에지 및 클럭 CK 하강 에지에서, 칼럼 어드레스(C[0]~C[7])에서 독출 커맨드(RD)의 특정 양상들을 표시하는 변수들, 필드들, 또는 값들의 오퍼랜드들(PC, SID0~SID1, BA0~BA3, CA0~CA4)이 제공될 수 있다. 기입 커맨드(WR)는 클럭 CK 상승 에지 및 클럭 CK 하강 에지에서, 칼럼 어드레스(C[0]~C[7])에서 기입 커맨드(WR)의 특정 양상들을 표시하는 변수들, 필드들, 또는 값들의 오퍼랜드들(PC, SID0~SID1, BA0~BA3, CA0~CA4)이 제공될 수 있다. 모드 레지스터 커맨드(MRScmd)는 클럭 CK 상승 에지 및 클럭 CK 하강 에지에서, 칼럼 어드레스(C[0]~C[7])에서 모드 레지스터 커맨드(MRScmd)의 특정 양상들을 표시하는 변수들, 필드들, 또는 값들의 오퍼랜드들(BA0~BA3, OP0~OP8)이 제공될 수 있다. OP0~OP8은 MRS(320)에 포함되는 다수의 레지스터들을 표시한다. OP0~OP8 레지스터들은 메모리 장치(120)의 동작 조건과 관련되는 파라미터 코드를 저장하도록 구성될 수 있다.
도 7은 전형적인 PIM 사양에 따른 커맨드를 설명하는 도면이다.
도 7을 참조하면, PIM 로우 커맨드 다이어그램(710)과 PIM 칼럼 커맨드 다이어그램(720)을 보여준다. PIM 로우 커맨드 다이어그램(710)은 액티브 멀티 뱅크 커맨드(ACTMb) 및 프리차지 멀티 뱅크 커맨드(PREMb)를 예시한다. 액티브 멀티 뱅크 커맨드(ACTMb) 및 프리차지 멀티 뱅크 커맨드(PREMb)의 오퍼랜드들은 로우 어드레스(R[0]~R[9])에서 제공된다.
액티브 멀티 뱅크 커맨드(ACTmb)는 첫번째 클럭 CK 상승 에지에서 로우 어드레스(R[0]~R[9])에서 오퍼랜드들이 제공되고, 첫번째 클럭 CK 하강 에지 및 두번째 클럭 CK 상승 에지에서 추가 오퍼랜드들이 입력될 수 있다. 오퍼랜드들(액티브 멀티 뱅크 커맨드(ACTMb)의 특정 양상들을 표시하는 변수들, 필드들, 또는 값들)은 PIM 사양에 의해 제공되는 PC, SID0~SID1, BC0~BC3, RA0~RA14, SIDM)을 포함할 수 있다. BC0~BC3는 멀티 뱅크 세트를 표시하고, SIDM은 랭크 병렬화를 위해 SID0 마스크(mask)를 표시할 수 있다. 프리차지 멀티 뱅크 커맨드(PREMb)는 클럭 CK 상승 에지에서 로우 어드레스(R[0]~R[9])에서 오퍼랜드들(PC, SID0~SID1, BC0~BC3)이 제공될 수 있다.
PIM 칼럼 커맨드 다이어그램(720)은 PIM 실행 커맨드(PIM_x), 기입 PIM 브로드캐스트 커맨드(WRPB), 기입 PIM 커맨드(WRP), PIM 독출 커맨드(RDP) 및 리드-모디파이-기입 커맨드(RMW)를 포함할 수 있다. PIM 실행 커맨드(PIM_x), 기입 PIM 브로드캐스트 커맨드(WRPB), 기입 PIM 커맨드(WRP), PIM 독출 커맨드(RDP) 및 리드-모디파이-기입 커맨드(RMW)의 오퍼랜드들은 RFU 핀 및 칼럼 어드레스(C[0]~C[7])에서 제공된다. RFU 핀은 PIM 핀으로 지칭될 수 있다.
PIM 실행 커맨드(PIM_x)는 클럭 CK 상승 에지 및 클럭 CK 하강 에지에서 RFU 핀 및 칼럼 어드레스(C[0]~C[7])에서 오퍼랜드들(PC, BA0, SID0~SID1, IID0~IID5, CA0~CA4)이 제공될 수 있다. IID0~IID5는 인스트럭션 식별 번호를 표시할 수 있다. CA0~CA4는 칼럼 어드레스를 표시할 수 있다.
기입 PIM 브로드캐스트 커맨드(WRPB)는 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))에서 제공되는 내부 프로세싱 동작의 기준 데이터 또는 목표 데이터를 다수개의 PIM 회로(122)에 입력시키는 커맨드이다. 기입 PIM 브로드캐스트 커맨드(WRPB)는 클럭 CK 상승 에지 및 클럭 CK 하강 에지에서 RFU 핀 및 칼럼 어드레스(C[0]~C[7])에서 오퍼랜드들(RID0~RID7, PC, SID0~SID1)이 제공될 수 있다. RID0~RID는 HBM(120)에 포함되는 레지스터들, 예컨대, 벡터 레지스터, CRF(124) 등의 레지스터 식별 번호를 표시할 수 있다.
기입 PIM 커맨드(WRP)는 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))에서 제공되는 내부 프로세싱 동작의 기준 데이터 또는 목표 데이터를 1개의 PIM 회로(122)에 입력시키는 커맨드이다. 기입 PIM 커맨드(WRP)는 클럭 CK 상승 에지 및 클럭 CK 하강 에지에서 RFU 핀 및 칼럼 어드레스(C[0]~C[7])에서 오퍼랜드들(RID0~RID7, PC, SID0~SID1, BA1~BA3)이 제공될 수 있다. PIM 독출 커맨드(RDP)는 클럭 CK 상승 에지 및 클럭 CK 하강 에지에서 RFU 핀 및 칼럼 어드레스(C[0]~C[7])에서 오퍼랜드들(RID0~RID7, PC, SID0~SID1, BA1~BA3)이 제공될 수 있다. 리드-모디파이-기입 커맨드(RMW)는 클럭 CK 상승 에지 및 클럭 CK 하강 에지에서 RFU 핀 및 칼럼 어드레스(C[0]~C[7])에서 오퍼랜드들(POP0~POP1, PC, SID0~SID1, BA0~BA3, CA0~CA4)이 제공될 수 있다. POP0~POP1은 PIM 동작들을 표시한다. V는 하이(H) 또는 로우(L)의 유효 신호를 나타낸다.
도 8은 전형적인 PIM 프로토콜에 따른 내부 프로세싱 동작을 예시하는 도면이다. 도 8에서는 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))에 의해 제어되는 PIM 회로(122)의 내부 프로세싱 동작이 S0, S1, S1.5 및 S2 프로토콜 각각에서 어떤 커맨드를 이용하여 수행하는지를 보여준다. 예시적으로, 내부 프로세싱 동작은 Row Parking, HAB mode in, PIM_Write, MAC 및 HAB mode out 동작을 포함할 수 있다.
Row Parking 동작에 의해 메모리 셀 어레이(121)의 모든 뱅크에 대해 프리차지 동작이 수행될 수 있다. HAB mode in 동작은 메모리 셀 어레이(121)가 하프 뱅크 모드로 동작하도록 진입하고, PIM_Write 동작은 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))에서 제공되는 내부 프로세싱 동작의 기준 데이터 또는 목표 데이터를 PIM 회로(122)에 입력하도록 수행될 수 있다. MAC 동작은 메모리 셀 어레이(121)의 a, b, c 주소의 데이터를 읽어오고, a 주소의 데이터와 b 주소의 데이터를 곱셈하고, 곱셈된 값에 c주소의 데이터를 더하고, 더해진 값을 c 주소의 메모리 셀들에 저장하도록 수행되고, HAB mode out 동작은 메모리 셀 어레이(121)의 하프 뱅크 모드를 탈출하도록 수행될 수 있다.
S0 프로토콜에서, Row Parking 동작은 액티브 커맨드(ACT, 801)와 함께 특정 어드레스(예, 0x3000)가 인가되면 수행되도록 구성될 수 있다. HAB mode in 동작은 액티브 커맨드(ACT, 802)와 함께 특정 어드레스(예, 0x27ff)가 인가되면 수행되도록 구성될 수 있다. PIM_Write 동작은 액티브 커맨드(ACT, 803)와 함께 특정 어드레스(예, 0x3fff)가 인가된 후 기입 커맨드(WR, 804)가 인가되면 수행되도록 구성될 수 있다. MAC 동작은 액티브 커맨드(ACT, 805)와 함께 특정 어드레스(예, 0x0)가 인가된 후 독출 커맨드(RD, 806)가 인가되면 수행되도록 구성될 수 있다. HAB mode out 동작은 액티브 커맨드(ACT, 807)와 함께 특정 어드레스(예, 0x2fff)가 인가된 후 프리차지 커맨드(PRE, 808)와 함께 특정 어드레스(예, 0x2fff)가 인가되면 수행되도록 구성될 수 있다. 이 후, Row Parking 동작을 위해 액티브 커맨드(ACT, 809)와 함께 특정 어드레스(예, 0x3000)가 인가될 수 있다. S0 프로토콜은 PIM 프로토콜의 레가시 모드로 지칭될 수 있다.
S1 프로토콜에서, Row Parking 동작은 모든 뱅크 프리차지 커맨드(PREab, 811)가 인가되면 수행되도록 구성될 수 있다. HAB mode in 동작은 액티브 커맨드(ACT, 812)와 함께 특정 어드레스(예, RA_x) 및 RFU 핀으로 특정 신호가 인가되면 수행되도록 구성될 수 있다. PIM_Write 동작은 액티브 커맨드(ACT, 813)와 함께 특정 어드레스(예, RA_x) 및 RFU 핀의 특정 신호가 인가된 후 기입 커맨드(WR, 814)가 인가되면 수행되도록 구성될 수 있다. MAC 동작은 액티브 커맨드(ACT, 815)와 함께 특정 어드레스(예, 0x0)가 인가된 후 독출 커맨드(RD, 816)가 인가되면 수행되도록 구성될 수 있다. HAB mode out 동작은 액티브 커맨드(ACT, 817)와 함께 특정 어드레스(예, RA_x) 및 RFU 핀의 특정 신호가 인가되면 수행되도록 구성될 수 있다. 이 후, Row Parking 동작은 모든 뱅크 프리차지 커맨드(PREab, 811)가 인가되면 수행되도록 구성될 수 있다. S1 프로토콜은 S0 프로토콜과 비교하여 RFU 핀을 사용하여 제어된다는 관점에서 RFU 제어 레가시 모드로 지칭될 수 있다.
S1.5 프로토콜에서, Row Parking 동작은 요구되지 않는다. HAB mode in 동작은 멀티 뱅크 액티브 커맨드(ACTMb, 821)와 함께 특정 어드레스(예, 0x0)가 인가되면 수행되도록 구성될 수 있다. PIM_Write 동작은 PIM_WR 커맨드(822)가 인가되면 수행되도록 구성될 수 있다. MAC 동작은 독출 커맨드(RD, 823)가 인가되면 수행되도록 구성될 수 있다. HAB mode out 동작 및 Row Parking 동작은 모든 뱅크 프리차지 커맨드(PREab, 824)와 함께 특정 어드레스(예, 0x0)가 인가되면 수행되도록 구성될 수 있다.
S2 프로토콜에서, Row Parking 동작은 요구되지 않는다. HAB mode in 동작은 멀티 뱅크 액티브 커맨드(ACTMb, 831)와 함께 특정 어드레스(예, 0x0)가 인가되면 수행되도록 구성될 수 있다. PIM_Write 동작은 PIM_WR 커맨드(832)가 인가되면 수행되도록 구성될 수 있다. MAC 동작은 PIM_x 커맨드(833)가 인가되면 수행되도록 구성될 수 있다. HAB mode out 동작 및 Row Parking 동작은 멀티 뱅크 프리차지 커맨드(PREMb, 834)와 함께 특정 어드레스(예, 0x0)가 인가되면 수행되도록 구성될 수 있다.
S1.5 프로토콜은 노멀 커맨드를 사용하는 S0 및 S1 프로토콜과 다르게 PIM 커맨드(예, ACTMb, PIM_WR, PREMb)를 일부 사용한다는 관점에서 파샬 커맨드 구동 모드로 지칭될 수 있다. S2 프로토콜은 전체적으로 PIM 커맨드(예, ACTMb, PIM_WR, PREMb)를 사용한다는 관점에서 풀 커맨드 구동 모드 또는 커맨드 구동 모드로 지칭될 수 있다. 그리고, S1.5 및 S2 프로토콜의 제어 단계(821~824, 831~834)는 S0 및 S1 프로토콜의 제어 단계(801~809, 811~818) 보다 현저히 줄어듬을 볼 수 있다.
도 9는 전형적인 PIM 프로토콜에 따른 메모리 할당을 설명하는 도면이다.
도 8 및 도 9를 참조하면, S0 프로토콜에서는 액티브 커맨드(ACT)와 함께 인가되는 특정 어드레스(예, 0x3fff, 0x27ff, 0x2fff)가 메모리 셀 어레이(121)의 제1 영역(901)을 지정할 수 있다. PIM 회로(122)의 내부 프로세싱 동작을 위해 특정 어드레스(예, 0x3fff, 0x27ff, 0x2fff)이 고정되기 때문에, 제1 영역(901)은 메모리 동작 측면에서 빈공간으로 할당될 수 있다. 이에 따라, S0 프로토콜에서 사용할 수 있는 메모리 셀 어레이(121)의 전체 영역(900)에서 제2 영역(902)으로 제한될 수 있다.
S2 프로토콜에서는 MRS(320)에 셋팅된 가변적인(flexible) 어드레스 제어 정보에 따라 메모리 셀 어레이(121)의 전체 영역(900)을 이용하여 PIM 회로(122)의 내부 프로세싱 동작을 수행할 수 있다. 실시예에 따라, 호스트 공급자(host vender)가 HBM(120)의 테스트를 위해 특정할 수 있는 TMRS(Test MRS) 또는 IEEE1500 인터페이스를 이용하여 S2 프로토콜에서 메모리 셀 어레이(121)의 전체 영역(900)이 PIM 회로(122)의 내부 프로세싱 동작에 사용되도록 설정할 수 있다.
도 10은 본 발명의 실시예들에 따른 모드 레지스터 세트(MRS)의 일부를 예시하는 도면이다.
도 10을 참조하면, MRS(320)는 제1 모드 레지스터(321), 제2 모드 레지스터(322), 제3 모드 레지스터(323), 제4 모드 레지스터(324), 제5 모드 레지스터(325) 및 제6 모드 레지스터(326)를 포함할 수 있다. 제1 내지 제6 모드 레지스터들(321~326)은 각각의 모드 레지스터 주소에 의해 식별될 수 있는, 각각의 모드 레지스터와 연관되는 레지스터들의 그룹을 표현한다. 제1 모드 레지스터(321)는 제1 모드 레지스터 주소(MR_A)에 의해 식별되고, 제2 모드 레지스터(322)는 제2 모드 레지스터 주소(MR_B)에 의해 식별되고, 제3 모드 레지스터(323)는 제3 모드 레지스터 주소(MR_C)에 의해 식별되고, 제4 모드 레지스터(324)는 제4 모드 레지스터 주소(MR_D)에 의해 식별되고, 제5 모드 레지스터(325)는 제5 모드 레지스터 주소(MR_E)에 의해 식별되고, 제6 모드 레지스터(326)는 제6 모드 레지스터 주소(MR_F)에 의해 식별될 수 있다. 제1 내지 제 6 모드 레지스터(321~365)는 다수의 레지스터들(OP[7:0])을 포함할 수 있다.
제1 모드 레지스터(321)는 PIM 프로토콜 변경을 지원하는지를 나타내는 PIM 프로토콜 변경 코드를 저장할 수 있다. 제1 모드 레지스터(321)는 다수의 레지스터들(OP[7:0]) 중 예컨대, OP[0] 레지스터를 이용하여 PIM 프로토콜 변경 코드를 저장할 수 있다. OP[0] 레지스터에 저장되는 PIM 프로토콜 변경 코드는 1-비트 파라미터 코드에 의해 표현될 수 있다. 실시예에 따라, PIM 프로토콜 변경 코드는 1-비트보다 많은 비트에 의해서 표현될 수 있다.
제2 모드 레지스터(322)는 PIM 프로토콜을 설정하는데 적용되는 PIM 프로토콜 코드를 저장할 수 있다. 제1 모드 레지스터(321)의 OP[0] 레지스터에 의해 PIM 프로토콜 변경을 지원하는지를 나타내는 PIM 프로토콜 변경 코드가 인에이블이면, 제2 모드 레지스터(322)의 PIM 프로토콜 코드를 적용하여 해당 PIM 프로토콜이 설정될 수 있다. PIM 프로토콜 코드에 의해 S0, S1, S1.5, S2 프로토콜 중 어느 하나가 PIM 프로토콜로 설정될 수 있다. 제2 모드 레지스터(322)는 다수의 레지스터들(OP[7:0]) 중 예컨대, OP[1:0] 레지스터를 이용하여 PIM 프로토콜 코드를 저장할 수 있다. OP[1:0] 레지스터에 저장되는 PIM 프로토콜 코드는 2-비트 파라미터 코드에 의해 표현될 수 있다. 실시예에 따라, PIM 프로토콜 코드는 2-비트보다 많거나 적은 비트에 의해서 표현될 수 있다.
제3 모드 레지스터(323)는 PIM 프로토콜과 관련하여 HBM(120)이 어떤 뱅크 아키텍쳐로 동작하는지를 나타내는 뱅크 동작 코드를 저장할 수 있다. 뱅크 동작 코드에 의해 HBM(120)은 모든 뱅크 모드(ALL), 하프 뱅크 모드(HAB) 및 멀티 뱅크 모드(Mb) 중 어느 하나를 PIM 프로토콜의 뱅크 아키텍쳐로 설정할 수 있다. 제3 모드 레지스터(323)는 다수의 레지스터들(OP[7:0]) 중 예컨대, OP[1:0] 레지스터를 이용하여 뱅크 동작 코드를 저장할 수 있다. OP[1:0] 레지스터에 저장되는 뱅크 동작 코드는 2-비트 파라미터 코드에 의해 표현될 수 있다. 실시예에 따라, 뱅크 동작 코드는 2-비트보다 많거나 적은 비트에 의해서 표현될 수 있다.
제4 모드 레지스터(324)는 PIM 모드의 진입 또는 탈출을 어떤 패턴으로 식별할 것인지를 나타내는 PIM 진입/탈출 코드를 저장할 수 있다. PIM 진입/탈출 코드는 로우 어드레스 패턴(예, 도 11), 칼럼 어드레스 패턴(예, 도 12) 및 데이터 패턴(예, 도 13) 중 어떤 패턴에 의해 식별하는지를 나타낼 수 있다. 제4 모드 레지스터(324)는 다수의 레지스터들(OP[7:0]) 중 예컨대, OP[1:0] 레지스터를 이용하여 PIM 진입/탈출 코드를 저장할 수 있다. OP[1:0] 레지스터에 저장되는 PIM 진입/탈출 코드는 2-비트 파라미터 코드에 의해 표현될 수 있다. 실시예에 따라, PIM 진입/탈출 코드는 2-비트보다 많거나 적은 비트에 의해서 표현될 수 있다.
제5 모드 레지스터(325)는 PIM 모드로 진입하는 PIM 진입 패턴을 저장하고, 제6 모드 레지스터(326)는 PIM 모드를 탈출하는 PIM 탈출 패턴을 저장할 수 있다. 제5 및 제6 모드 레지스터(325, 326) 각각은 다수의 레지스터들(OP[7:0])을 이용하여 PIM 진입/탈출 패턴을 저장할 수 있다. OP[7:0] 레지스터에 저장되는 PIM 진입/탈출 패턴은 8-비트 파라미터 코드에 의해 표현될 수 있다. 실시예에 따라, PIM 진입/탈출 패턴은 8-비트보다 적은 비트에 의해서 표현될 수 있다.
도 11 내지 도 13은 본 발명의 실시예들에 따른 메모리 장치의 PIM 동작을 예시적으로 설명하는 도면들이다. 도 11은 PIM 회로(122)를 포함하는 메모리 장치(120)가 로우 어드레스 패턴에 기초하여 PIM 모드로/로부터 진입/탈출하는 동작을 설명하고, 도 12는 칼럼 어드레스 패턴에 기초하여 PIM 모드로/로부터 진입/탈출하는 동작을 설명하고, 도 13은 데이터 패턴에 기초하여 PIM 모드로/로부터 진입/탈출하는 동작을 설명한다. 도 11 내지 도 13에서 설명되는 타이밍 다이어그램들에서 가로 축과 세로 축은 시간과 전압 레벨을 각각 나타내고, 반드시 일정한 비율로 도시된 것은 아니라는 것을 밝혀둔다.
도 1, 도 10 및 도 11을 참조하면, 메모리 장치(120)는 제어 로직 회로(126)의 PPD(127)를 이용하여 MRS(320)에 설정된 PIM 프로토콜에 대한 파라미터 코드를 분석 및 검출하여 PIM 모드로/로부터 진입/탈출할 수 있다. Ta2 시점에서, 메모리 장치(120)로 클록 신호(CK)에 동기되어 로우 커맨드(ROW CMD)인 액티브 커맨드(ACT)가 수신될 수 있다. 이 때, 액티브 커맨드(ACT)와 함께 로우 어드레스(ROW ADDR)도 함께 수신될 수 있다. 만약 Ta2 시점에서, 액티브 커맨드(ACT)와 함께 수신된 로우 어드레스(ROW ADDR)가 PIM 진입 패턴과 동일하다고 판단되면, 메모리 장치(120)는 Ta4 시점에서 PIM 모드로 진입할 수 있다.
Ta5 시점에서, 메모리 장치(120)로 클록 신호(CK)에 동기되어 칼럼 커맨드(COL CMD)인 독출 또는 기입 커맨드(RD/WR)와 함께 칼럼 어드레스(COL ADDR)도 함께 수신될 수 있다. 칼럼 어드레스(COL ADDR)는 뱅크 및 칼럼 어드레스(BAx, CAx)를 포함할 수 있다. 독출 또는 기입 커맨드(RD/WR)는 PIM 회로(122)의 내부 프로세싱 동작과 관련되어 수행될 수 있다.
실시예에 따라, Ta2 시점에서, 액티브 커맨드(ACT)와 함께 수신된 로우 어드레스(ROW ADDR)가 PIM 탈출 패턴과 동일한 경우, 메모리 장치(120)는 Ta4 시점에서 PIM 모드를 탈출할 수 있다.
도 12를 참조하면, Tb2 시점에서, 메모리 장치(120)로 클록 신호(CK)에 동기되어 액티브 커맨드(ACT)와 함께 로우 어드레스(ROW ADDR)도 함께 수신될 수 있다. 로우 어드레스(ROW ADDR)는 뱅크 및 로우 어드레스(BAx, RAy)를 포함할 수 있다.
Tb5 시점에서, 메모리 장치(120)로 클록 신호(CK)에 동기되어 독출 또는 기입 커맨드(RD/WR)와 함께 칼럼 어드레스(COL ADDR)도 함께 수신될 수 있다. 독출 또는 기입 커맨드(RD/WR)와 함께 수신된 칼럼 어드레스(COL ADDR)가 PIM 진입 패턴과 동일하다고 판단되면, 메모리 장치(120)는 Tb6 시점에서 PIM 모드로 진입할 수 있다. 실시예에 따라, 독출 또는 기입 커맨드(RD/WR)와 함께 수신된 칼럼 어드레스(COL ADDR)가 PIM 탈출 패턴과 동일하다고 판단되면, 메모리 장치(120)는 Tb6 시점에서 PIM 모드를 탈출할 수 있다.
도 13을 참조하면, T0 시점에서, 메모리 장치(120)로 클록 신호(CK)에 동기되어 기입 커맨드(WR)와 함께 칼럼 어드레스(COL ADDR)도 함께 수신될 수 있다. 칼럼 어드레스(COL ADDR)는 뱅크 및 칼럼 어드레스(BAx, CAx)를 포함할 수 있다. T0 시점으로부터 기입 레이턴시(WL) 후, 예컨대 WL=4의 T4 시점에서 기입 데이터(DATA)가 수신될 수 있다. T0 시점에서 T4 시점 사이의 시간은, 기입 데이터 스트로브 신호(WDQS)에 동기되어 수신될 기입 데이터(DQ)를 뱅크 및 칼럼 어드레스(BAx, CAa)에 상응하는 메모리 셀 어레이(121)에 기입하는 메모리 동작을 위한 준비 시간에 해당한다.
T4 시점에서, 기입 데이터 스트로브 신호(WDQS)에 동기되어 기입 데이터(DQ)가 수신될 수 있다. 기입 데이터(DQ)가 PIM 진입 패턴과 동일하다고 판단되면, 메모리 장치(120)는 T6 시점에서 PIM 모드로 진입할 수 있다. 실시예에 따라, 기입 데이터(DQ)가 PIM 탈출 패턴과 동일하다고 판단되면, 메모리 장치(120)는 T6 시점에서 PIM 모드를 탈출할 수 있다.
도 14는 본 발명의 실시예들에 따른, 도 1의 호스트 장치(110)와 메모리 장치(120) 사이의 구버전 호환 PIM 프로토콜의 동작들 및 통신들을 예시하는 도면이다.
도 1 및 도 14를 참조하면, S1402 단계에서, 호스트 장치(110)(예컨대, 메모리 콘트롤러(112))는 메모리 장치(120)의 MRS(320)를 셋팅하기 위해 모드 레지스터 커맨드(MRScmd)를 버스(130)를 통해 메모리 장치(120)로 제공할 수 있다. 메모리 콘트롤러(110)는 모드 레지스터 커맨드(MRScmd)를 발행할 때 버스(130)의 커맨드/어드레스 버스(CA)를 통해 적절한 비트 값들로 구성된 파라미터 코드를 메모리 장치(120)로 제공할 수 있다. 메모리 콘트롤러(112)에 의해 메모리 장치(120)의 MRS(320)는 메모리 장치(120)의 복수개 동작 파라미터들, 옵션들, 다양한 기능들, 특성들 그리고 모드들을 셋팅하기 위해 프로그램될 수 있다. 예컨대, 도 10의 다이어그램을 참조하면, PIM 프로토콜 변경 코드, PIM 프로토콜 코드, 뱅크 동작 코드, PIM 진입/탈출 코드, PIM 진입/탈출 패턴 등이 MRS(320)에 셋팅될 수 있다.
S1404 단계에서, 메모리 장치(120)는 MRS(320)에 저장된 PIM 프로토콜 변경 코드 및 PIM 프로토콜 코드를 분석 및 검출하여 설정된 PIM 프로토콜을 판단할 수 있다. 예컨대, 도 8을 참조하면, 메모리 장치(120)는 S0, S1, S1.5, S2 프로토콜 중 해당 PIM 프로토콜을 결정할 수 있다.
S1406 단계에서, 메모리 콘트롤러(112)는 PIM 진입 패턴을 버스(130)를 통해 메모리 장치(120)로 제공할 수 있다. 예컨대, 도 11 내지 도13을 참조하면, PIM 진입 코드는 특정 로우 어드레스 패턴, 특정 칼럼 어드레스 패턴 또는 특정 데이터 패턴으로 제공될 수 있다.
S1408 단계에서, 메모리 장치(120)는 S1406 단계에서 결정된 해당 PIM 프로토콜로 진입할 수 있다.
S1410 단계에서, 메모리 장치(120)의 PIM 회로(122)는 해당 PIM 프로토콜로 내부 프로세싱 동작을 수행할 수 있다.
S1412 단계에서, 메모리 콘트롤러(112)는 PIM 탈출 패턴을 버스(130)를 통해 메모리 장치(120)로 제공할 수 있다. 예컨대, 도 11 내지 도13을 참조하면, PIM 탈출 코드는 특정 로우 어드레스 패턴, 특정 칼럼 어드레스 패턴 또는 특정 데이터 패턴으로 제공될 수 있다.
S1414 단계에서, 메모리 장치(120)는 PIM 탈출 패턴에 응답하여 수행중인 PIM 프로토콜로 탈출할 수 있다.
설명된 실시예들에서, 호스트 장치(110) )(예컨대, 메모리 콘트롤러(112)) 및 메모리 장치(120)는 구버전과 호환되는 PIM 프로토콜을 지원하기 위한 인터페이스 변화를 최소화할 수 있다. 이는 시스템(100)의 성능을 향상시키고 비용을 감소시킬 수 있다.
도 15는 본 발명의 실시예들에 따른 구버전 호환 PIM 프로토콜의 동작을 수행하는 시스템(1000)을 나타내는 블록 다이어그램이다.
도 15를 참조하면, 시스템(1000)은 카메라(1100), 디스플레이(1200), 오디오 처리부(1300), 모뎀(1400), DRAM들(1500a, 1500b), 플래시 메모리들(1600a, 1600b), I/O 디바이스들(1700a, 1700b) 및 어플리케이션 프로세서(Application Processor, 1800, 이하 "AP"라고 칭함)를 포함할 수 있다. 시스템(1000)은 랩탑(laptop) 컴퓨터, 휴대용 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기, 또는 IOT(Internet Of Things) 기기로 구현될 수 있다. 또한, 시스템(1000)은 서버(Server), 또는 개인용 컴퓨터(Personal Computer)로 구현될 수도 있다.
카메라(1100)는 사용자의 제어에 따라 정지 영상 또는 동영상을 촬영하고, 쵤영한 이미지/영상 데이터를 저장하거나 디스플레이(1200)로 전송할 수 있다. 오디오 처리부(1300)는 플래시 메모리 장치들(1600a, 1600b)나 네트워크의 컨텐츠에 포함된 오디오 데이터를 처리할 수 있다. 모뎀(1400)는 유/무선데이터 송수신을 위하여 신호를 변조하여 송신하고, 수신측에서 원래의 신호로 복구하기 위해 복조할 수 있다. I/O 디바이스들(1700a, 1700b)는 USB(Universal Serial Bus)나 스토리지, 디지털 카메라, SD(Secure Digital) 카드, DVD(Digital Versatile Disc), 네트워크 어댑터(Network adapter), 터치 스크린 등과 같은 디지털 입력 및/또는 출력 기능을 제공하는 기기들을 포함할 수 있다.
AP(1800)는 시스템(1000)의 전반적인 동작을 제어할 수 있다. AP(1800)는 플래시 메모리 장치들(1600a, 1600b)에 저장된 컨텐츠의 일부가 디스플레이(1200)에 표시되도록 디스플레이(1200)를 제어할 수 있다. AP(1800)는 I/O 디바이스들(1700a, 1700b)을 통하여 사용자 입력이 수신되면, 사용자 입력에 대응하는 제어 동작을 수행할 수 있다. AP(1800)는 AI(Artifitial Intelligence) 데이터 연산을 위한 전용 회로인 엑셀레이터(Accelerator) 블록을 포함하거나, AP(1800)와 별개로 엑셀레이터 칩(1820)을 구비할 수 있다. 엑셀레이터 블록 또는 엑셀레이터 칩(1820)에 추가적으로 DRAM(1500b)이 장착될 수 있다. 엑셀레이터는 AP(1800)의 특정 기능을 전문적으로 수행하는 기능 블록으로, 엑셀레이터는 그래픽 데이터 처리를 전문적으로 수행하는 기능 블럭인 GPU, AI 계산과 인퍼런스(Inference)를 전문적으로 수행하기 위한 블럭인 NPU(Neural Processing Unit), 데이터 전송을 전문적으로 하는 블록인 DPU(Data Processing Unit)를 포함할 수 있다
시스템(1000)은 복수의 DRAM들(1500a, 1500b)을 포함할 수 있다. AP(1800)는 JEDEC(Joint Electron Device Engineering Council) 표준 규격에 맞는 커맨드와 모드 레지스터(MRS) 셋팅을 통하여 DRAM들(1500a, 1500b)을 제어하거나, 저전압/고속/신뢰성 등 업체 고유 기능 및 CRC(Cyclic Redundancy Check)/ECC(Error Correction Code) 기능을 사용하기 위하여 DRAM 인터페이스 규약을 설정하여 통신할 수 있다. 예를 들어 AP(1800)는 LPDDR4, LPDDR5, HBM 등의 JEDEC 표준 규격에 맞는 인터페이스로 DRAM(1500a)과 통신할 수 있으며, 엑셀레이터 블록 또는 엑셀레이터 칩(1820)는 DRAM(1500a)보다 높은 대역폭을 가지는 엑셀레이터용 DRAM(1500b)을 제어하기 위하여 새로운 DRAM 인터페이스 규약을 설정하여 통신할 수 있다.
도 15에서는 DRAM들(1500a, 1500b)만을 도시하였으나, 이에 한정되지 않고 AP(1800)이나 엑셀레이터 칩(1820) 대역폭과 반응 속도, 전압 조건들을 만족한다면 PRAM이나 SRAM, MRAM, RRAM, FRAM 또는 Hybrid RAM의 메모리 등 어떤 메모리라도 사용 가능하다. DRAM들(1500a, 1500b)은 I/O 디바이스(1700a, 1700b)나 플래시 메모리들(1600a, 1600b) 보다 상대적으로 작은 레이턴시(latency)와 대역폭(bandwidth)를 가지고 있다. DRAM들(1500a, 1500b)은 시스템(1000)의 파워 온 시점에 초기화되고, 운영 체제와 어플리케이션 데이터가 로딩되어 운영 체제와 어플리케이션 데이터의 임시 저장 장소로 사용되거나 각종 소프트웨어 코드의 실행 공간으로 사용될 수 있다.
DRAM들(1500a, 1500b) 내에서는 더하기/빼기/곱하기/나누기 사칙 연산과 벡터 연산, 어드레스 연산, 또는 FFT(Fast Fourier Transform) 연산이 수행될 수 있다. 또한, DRAM들(1500a, 1500b) 내에서는 인퍼런스(inference)에 사용되는 수행을 위한 함수 기능(function)이 수행될 수 있다. 여기서, 인퍼런스는 인공 신경망(artificial neural network)을 이용한 딥러닝 알고리즘에서 수행될 수 있다. 딥러닝 알고리즘은 다양한 데이터를 통해 모델을 학습하는 트레이닝(training) 단계와 학습된 모델로 데이터를 인식하는 인퍼런스 단계를 포함할 수 있다. 실시예로서, 사용자가 카메라(1100)를 통해 촬영한 이미지는 신호 처리되어 DRAM(1500b) 내에 저장이 되며, 엑셀레이터 블록 또는 엑셀레이터 칩(1820)은 DRAM(1500b)에 저장된 데이터와 인퍼런스에 사용되는 함수를 이용하여 데이터를 인식하는 AI 데이터 연산을 수행할 수 있다.
시스템(1000)은 DRAM들(1500a, 1500b) 보다 큰 용량을 가진 복수의 스토리지 또는 복수의 플래시 메모리들(1600a, 1600b)을 포함할 수 있다. 엑셀레이터 블록 또는 엑셀레이터 칩(1820)은 플래시 메모리 장치(1600a, 1600b)를 이용하여 트레이닝(training) 단계와 AI 데이터 연산을 수행할 수 있다. 일 실시예로, 플래시 메모리들(1600a, 1600b)은 메모리 콘트롤러(1610) 내에 구비된 연산 장치를 사용하여 AP(1800) 및/내지 엑셀레이터 칩(1820)이 수행하는 트레이닝(training) 단계과 인퍼런스 AI 데이터 연산을 보다 효율적으로 수행할 수 있다. 플래시 메모리들(1600a, 1600b)은 카메라(1100)를 통하여 찍은 사진을 저장하거나, 데이터 네트워크로 전송 받은 데이터를 저장할 수 있다. 예를 들어, 증강 현실(Augmented Reality)/가상 현실(Virtual Reality), HD(High Definition) 또는 UHD(Ultra High Definition) 컨텐츠를 저장할 수 있다.
시스템(1000)에서, DRAM들(1500a, 1500b)은 구버전 호환 PIM 프로토콜을 지원하도록 구성될 수 있다. DRAM들(1500a, 1500b)은 내부 프로세싱 동작을 수행하도록 구성되는 PIM 회로를 포함하고, PIM 프로토콜 변경 코드, PIM 프로토콜 코드, 뱅크 동작 코드, PIM 진입/탈출 코드 및/또는 PIM 진입/탈출 패턴을 저장하는 모드 레지스터 세트(MRS)를 포함할 수 있다. DRAM들(1500a, 1500b)의 PIM 회로는 다수의 PIM 프로토콜 중에서 설정된 현재 동작 PIM 프로토콜에 기초하여 내부 프로세싱 동작을 수행할 수 있다.
본 발명은 도면에 도시된 제한된 수의 실시예들과 관련하여 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변경들 및 변형들, 그리고 균등한 다른 실시예들이 가능하다는 점을 인식할 것이다. 따라서, 첨부된 청구항들은 본 발명의 진정한 사상 및 범위 내에 속하는 바와 같은 모든 그러한 변경들 및 변형들을 커버하는 것을 의도한다.
Claims (20)
- PIM(Processing-In-Memory) 프로토콜을 지원하는 메모리 장치에 있어서,
상기 PIM 프로토콜에 대한 제1 파라미터 코드 및 제2 파라미터 코드를 각각 제1 레지스터 및 제2 레지스터에 저장하도록 구성되는 모드 레지스터 세트(MRS), 상기 제1 파라미터 코드는 구버전 PIM 프로토콜과 관련되는 PIM 프로토콜 변경을 지원하는지를 표시하는 PIM 프로토콜 변경 코드를 포함하고, 상기 제2 파라미터는 다수의 PIM 프로토콜 중 현재 동작 PIM 프로토콜을 설정하는 PIM 프로토콜 코드를 포함하고; 및
상기 현재 동작 PIM 프로토콜에 기초하여 내부 프로세싱 동작을 수행하도록 구성되는 PIM 회로를 포함하는 메모리 장치. - 제1항에 있어서,
상기 메모리 장치는 복수의 메모리 뱅크를 포함하는 메모리 셀 어레이를 더 포함하고,
상기 MRS는 상기 현재 동작 PIM 프로토콜과 관련하여 상기 메모리 셀 어레이의 뱅크 아키텍쳐를 설정하기 위한 뱅크 동작 코드를 제3 레지스터에 저장하는 메모리 장치. - 제2항에 있어서,
상기 메모리 장치는 상기 뱅크 동작 코드에 따라 상기 메모리 셀 어레이가 모든 뱅크 모드, 하프 뱅크 모드 및 멀티 뱅크 모드 중 어느 하나로 동작하도록 구성되는 메모리 장치. - 제1항에 있어서,
상기 MRS는 상기 현재 동작 PIM 프로토콜과 관련하여 상기 내부 프로세싱 동작을 수행하는 PIM 모드의 진입 또는 탈출을 식별하기 위해 표시되는 PIM 진입/탈출 코드를 제4 레지스터에 저장하는 메모리 장치. - 제4항에 있어서,
상기 PIM 진입/탈출 코드는 상기 메모리 장치의 로우 어드레스 패턴, 칼럼 어드레스 패턴 및 데이터 패턴 중 어느 하나로 설정되는 메모리 장치. - 제5항에 있어서,
상기 MRS는 상기 PIM 진입/탈출 코드와 관련하여 상기 PIM 모드로 진입하는 PIM 진입 패턴을 제5 레지스터에 저장하는 메모리 장치. - 제5항에 있어서,
상기 MRS는 상기 PIM 진입/탈출 코드와 관련하여 상기 PIM 모드를 탈출하는 PIM 탈출 패턴을 제6 레지스터에 저장하는 메모리 장치. - 제1항에 있어서,
상기 메모리 장치는 노멀 커맨드에 의해 메모리 동작을 수행하고, PIM 커맨드에 의해 상기 내부 프로세싱 동작을 수행하도록 구성되고,
상기 현재 동작 PIM 프로토콜은 상기 PIM 커맨드를 사용하여 상기 내부 프로세싱 동작을 수행하도록 설정되는 풀 커맨드 구동 모드인 S2 프로토콜을 포함하는 메모리 장치. - 제1항에 있어서,
상기 구버전 PIM 프로토콜은, 상기 노멀 커맨드 및 특정 로우 어드레스를 이용하여 상기 내부 프로세싱 동작을 수행하도록 설정되는 상기 PIM 프로토콜의 레가시 모드인 S0 프로토콜, 상기 레가시 모드에 대해 미사용(RFU) 핀을 더 사용하여 상기 내부 프로세싱 동작을 수행하도록 설정되는 RFU 제어 레가시 모드인 S1 프로토콜 및 상기 PIM 커맨드를 일부 사용하여 상기 내부 프로세싱 동작을 수행하도록 설정되는 파샬 커맨드 구동 모드인 S1.5 프로토콜 중 적어도 하나를 포함하는 메모리 장치. - 제1항에 있어서,
상기 메모리 장치는 HBM으로 구성되는 메모리 장치. - 제1항에 있어서,
상기 MRS는 상기 메모리 장치의 테스트에 이용되는 테스트 모드 레지스터 세트(TMRS) 또는 IEEE1500 인터페이스에 포함되는 장치. - 버스를 통해 내부 프로세싱 동작을 수행하는 메모리 장치에 결합되는 호스트 장치에 있어서,
상기 메모리 장치가 구버전 PIM 프로토콜과 관련되는 PIM(Processing-In-Memory) 프로토콜 변경을 지원하도록 그리고 다수의 PIM 프로토콜 중 현재 동작 PIM 프로토콜을 설정하도록 구성되는 메모리 콘트롤러를 포함하고,
상기 호스트 장치는 상기 호스트 장치의 프로세싱 작업 일부를 상기 현재 동작 PIM 프로토콜에 기초하여 상기 메모리 장치의 PIM 회로가 내부 프로세싱 동작으로 수행하도록 구성되는 호스트 장치. - 제12항에 있어서,
상기 메모리 콘트롤러는 상기 메모리 장치가 상기 현재 동작 PIM 프로토콜과 관련하여 상기 메모리 장치의 복수의 메모리 뱅크들에 대한 뱅크 동작 모드를 설정하도록 구성되는 호스트 장치. - 제13항에 있어서,
상기 뱅크 동작 모드는 모든 뱅크 모드, 하프 뱅크 모드 및 멀티 뱅크 모드 중 어느 하나를 포함하는 호스트 장치. - 제12항에 있어서,
상기 메모리 콘트롤러는 상기 메모리 장치가 상기 현재 동작 PIM 프로토콜과 관련하여 상기 PIM 회로가 상기 내부 프로세싱 동작을 수행하는 PIM 모드의 진입 또는 탈출을 식별하기 위해 표시되는 PIM 진입/탈출 코드를 설정하도록 구성되는 호스트 장치. - 제15항에 있어서,
상기 메모리 콘트롤러는 상기 PIM 진입/탈출 코드를 상기 메모리 장치의 로우 어드레스 패턴, 칼럼 어드레스 패턴 및 데이터 패턴 중 어느 하나로 설정하는 호스트 장치. - 제16항에 있어서,
상기 메모리 콘트롤러는 상기 메모리 장치가 상기 PIM 진입/탈출 코드와 관련하여 상기 PIM 모드로 진입하는 PIM 진입 패턴을 설정하도록 구성되는 호스트 장치. - 제16항에 있어서,
상기 메모리 콘트롤러는 상기 메모리 장치가 상기 PIM 진입/탈출 코드와 관련하여 상기 PIM 모드를 탈출하는 PIM 탈출 패턴을 설정하도록 구성되는 호스트 장치. - 제12항에 있어서,
상기 메모리 콘트롤러는 상기 현재 동작 PIM 프로토콜을 상기 메모리 장치의 상기 내부 프로세싱 동작에 사용되는 PIM 커맨드에 따라 상기 내부 프로세싱 동작을 수행하는 풀 커맨드 구동 모드인 S2 프로토콜로 설정하는 호스트 장치. - 제12항에 있어서,
상기 메모리 콘트롤러는 상기 구버전 PIM 프로토콜을 상기 메모리 장치의 메모리 동작에 사용되는 노멀 커맨드 및 특정 로우 어드레스에 따라 상기 내부 프로세싱 동작을 수행하도록 설정되는 상기 PIM 프로토콜의 레가시 모드인 S0 프로토콜, 상기 레가시 모드에 대해 미사용(RFU) 핀을 더 사용하여 상기 내부 프로세싱 동작을 수행하도록 설정되는 RFU 제어 레가시 모드인 S1 프로토콜 및 상기 PIM 커맨드를 일부 사용하여 상기 내부 프로세싱 동작을 수행하도록 설정되는 파샬 커맨드 구동 모드인 S1.5 프로토콜 또는 상기 PIM 커맨드를 사용하여 상기 내부 프로세싱 동작을 수행하도록 설정되는 풀 커맨드 구동 모드인 S2 프로토콜 중 어느 하나로 설정하는 호스트 장치.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22199532.7A EP4174672A1 (en) | 2021-10-27 | 2022-10-04 | Backward compatible processing-in-memory (pim) protocol |
US17/938,789 US20230128183A1 (en) | 2021-10-27 | 2022-10-07 | Backward compatible processing-in-memory (pim) protocol |
TW111140259A TW202324125A (zh) | 2021-10-27 | 2022-10-24 | 支持記憶體內處理(pim)協定的記憶體裝置及主機裝置 |
CN202211317385.5A CN116028397A (zh) | 2021-10-27 | 2022-10-26 | 向后兼容的内存中处理(pim)协议 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210144974 | 2021-10-27 | ||
KR20210144974 | 2021-10-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230060434A true KR20230060434A (ko) | 2023-05-04 |
Family
ID=86379993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220070298A KR20230060434A (ko) | 2021-10-27 | 2022-06-09 | 구버전과 호환되는 PIM(Processing-In-Memory) 프로토콜 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230060434A (ko) |
-
2022
- 2022-06-09 KR KR1020220070298A patent/KR20230060434A/ko unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12073871B2 (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 | |
US11860803B2 (en) | Memory device including processing circuit, and electronic device including system on chip and memory device | |
KR20200108773A (ko) | 연산 처리를 수행하는 메모리 장치, 이를 포함하는 데이터 처리 시스템 및 메모리 장치의 동작방법 | |
KR20220127601A (ko) | 인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 | |
US20240221815A1 (en) | Memory device and method for controlling row hammer | |
CN116246667A (zh) | 用于控制行锤击的存储器件及方法 | |
EP4095701A9 (en) | Memory device and method of controlling row hammer | |
KR20230021496A (ko) | 로우 해머 제어 방법 및 메모리 장치 | |
EP4156186A2 (en) | Memory device for reducing timing parameters and power consumption for internal processing operation and method of implementing the same | |
US20200293452A1 (en) | Memory device and method including circular instruction memory queue | |
US20230178166A1 (en) | Built-in self-test circuits for memory systems having multiple channels | |
US20230128183A1 (en) | Backward compatible processing-in-memory (pim) protocol | |
KR20230060434A (ko) | 구버전과 호환되는 PIM(Processing-In-Memory) 프로토콜 | |
US20240096391A1 (en) | Memory devices and methods thereof for managing row hammer events therein | |
US20240241840A1 (en) | Apparatus and method for die-to-die (d2d) interconnects | |
US20240071446A1 (en) | Apparatuses and methods for providing command having on-the-fly (otf) latency to memory | |
KR20230086560A (ko) | 다수의 채널을 갖는 메모리 시스템의 테스트 | |
CN117631988A (zh) | 用于向存储器提供具有空中时延的命令的装置和方法 | |
KR20240121075A (ko) | 리페어 회로를 포함하는 메모리 장치 및 그의 동작 방법 | |
KR20240030923A (ko) | 실행 시점 가변 커맨드를 메모리로 제공하는 장치 및 방법 | |
KR20230086543A (ko) | 로우 해머 제어 방법 및 메모리 장치 |