KR20220155518A - 전자 장치, 호스트의 동작 방법, 메모리 모듈의 동작 방법, 및 메모리 장치의 동작 방법 - Google Patents

전자 장치, 호스트의 동작 방법, 메모리 모듈의 동작 방법, 및 메모리 장치의 동작 방법 Download PDF

Info

Publication number
KR20220155518A
KR20220155518A KR1020210062719A KR20210062719A KR20220155518A KR 20220155518 A KR20220155518 A KR 20220155518A KR 1020210062719 A KR1020210062719 A KR 1020210062719A KR 20210062719 A KR20210062719 A KR 20210062719A KR 20220155518 A KR20220155518 A KR 20220155518A
Authority
KR
South Korea
Prior art keywords
data
mask
signal
memory device
memory
Prior art date
Application number
KR1020210062719A
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 KR1020210062719A priority Critical patent/KR20220155518A/ko
Priority to US17/535,861 priority patent/US11887692B2/en
Priority to CN202210030774.3A priority patent/CN115346566A/zh
Priority to EP22164020.4A priority patent/EP4089678B1/en
Publication of KR20220155518A publication Critical patent/KR20220155518A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1009Data masking during input/output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/109Control signal input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/18Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)

Abstract

본 개시의 실시 예에 따른 복수의 메모리 셀들을 포함하는 메모리 장치의 동작 방법은 커맨드/어드레스 입력 구간 동안, 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들을 포함하는 부분 쓰기 커맨드를 수신하는 단계, 부분 쓰기 커맨드를 수신한 이후에, 데이터 스트로브 라인을 통해 데이터 스트로브 신호를 수신하는 단계, 데이터 입력 구간 동안, 데이터 스트로브 신호에 동기화하여 복수의 데이터 라인들을 통해 복수의 데이터를 수신하는 단계, 및 데이터 기입 구간 동안, 부분 쓰기 활성화 신호(PWE)에 응답하여, 복수의 마스크 신호들을 기반으로 복수의 데이터 중 일부를 복수의 메모리 셀들에 저장하는 단계를 포함한다.

Description

전자 장치, 호스트의 동작 방법, 메모리 모듈의 동작 방법, 및 메모리 장치의 동작 방법{ELECTRONIC DEVICE, OPERATION METHOD OF HOST, OPERATION METHOD OF MEMORY MODULE, AND OPERATION METHOD OF MEMORY DEVICE}
본 발명은 반도체 메모리에 관한 것으로 좀더 상세하게는 전자 장치, 호스트의 동작 방법, 메모리 모듈의 동작 방법, 및 메모리 장치의 동작 방법에 관한 것이다.
반도체 메모리는 SRAM, DRAM 등과 같이 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 휘발성 메모리 장치 및 플래시 메모리 장치, PRAM, MRAM, RRAM, FRAM 등과 같이 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 불휘발성 메모리 장치로 구분된다.
캐시 라인 단위 보다 작은 단위(예를 들어, 니블 단위 또는 바이트 단위)의 읽기 또는 쓰기 요청이 요구된다. 데이터 마스크 기능을 사용하여, 부분 쓰기 동작 또는 부분 읽기 동작을 수행할 수 있다.
본 개시의 목적은 부분 쓰기 동작을 지원하고, 전력 소모를 최소화할 수 있는 전자 장치, 호스트의 동작 방법, 메모리 모듈의 동작 방법, 및 메모리 장치의 동작 방법을 제공하는 데 있다.
본 개시의 실시 예에 따른 복수의 메모리 셀들을 포함하는 메모리 장치의 동작 방법은 커맨드/어드레스 입력 구간 동안, 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들을 포함하는 부분 쓰기 커맨드를 수신하는 단계, 부분 쓰기 커맨드를 수신한 이후에, 데이터 스트로브 라인을 통해 데이터 스트로브 신호를 수신하는 단계, 데이터 입력 구간 동안, 데이터 스트로브 신호에 동기화하여 복수의 데이터 라인들을 통해 복수의 데이터를 수신하는 단계, 및 데이터 기입 구간 동안, 부분 쓰기 활성화 신호(PWE)에 응답하여, 복수의 마스크 신호들을 기반으로 복수의 데이터 중 일부를 복수의 메모리 셀들에 저장하는 단계를 포함한다.
본 개시의 실시 예에 따른 복수의 메모리 장치들을 포함하는 메모리 모듈의 동작 방법에 있어서, 제1 시점에, 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들을 포함하는 부분 쓰기 커맨드를 수신하는 단계, 제1 시점 이후 스트로브 토글 구간 동안, 복수의 메모리 장치들 중 제1 메모리 장치와 연결된 제1 데이터 스트로브 라인을 통해 토글하는 제1 데이터 스트로브 신호를 수신하고, 복수의 메모리 장치들 중 제2 메모리 장치와 연결된 제2 데이터 스트로브 라인을 통해 로직-하이(H)로 유지되는 제2 데이터 스트로브 신호를 수신하는 단계, 및 제1 시점 이후 데이터 입력 구간 동안, 복수의 데이터 라인들을 통해 복수의 데이터를 수신하는 단계를 포함한다.
본 개시의 실시 예에 따른 메모리 모듈과 연결된 호스트의 동작 방법에 있어서, 캐시 라인 단위보다 작은 단위의 제1 데이터에 더미 데이터를 추가하여 제2 데이터를 생성하는 단계, 커맨드/어드레스 입력 구간 동안, 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들을 포함하는 부분 쓰기 커맨드를 메모리 모듈로 출력하는 단계, 커맨드/어드레스 입력 구간 이후에, 데이터 스트로브 토글 구간 동안, 데이터 스트로브 신호를 메모리 모듈로 출력하는 단계, 커맨드/어드레스 입력 구간 이후에, 데이터 입력 구간 동안, 복수의 데이터 라인들을 통해 제2 데이터를 메모리 모듈로 출력하는 단계를 포함한다.
본 개시의 실시 예에 따른 전자 장치는 커맨드/어드레스 라인을 통해 부분 쓰기 활성화 신호 및 복수의 마스크 신호들을 포함하는 부분 쓰기 커맨드를 출력하고, 복수의 데이터 라인들을 통해 더미 데이터를 포함하는 제1 데이터를 출력하는 메모리 인터페이스 회로, 및 커맨드/어드레스 라인을 통해 부분 쓰기 커맨드를 수신하고, 복수의 데이터 라인들을 통해 제1 데이터를 수신하고, 복수의 마스크 신호들을 기반으로 제1 데이터 중 일부를 메모리 셀에 저장하는 메모리 장치를 포함한다.
본 개시에 따르면, 커맨드/어드레스 라인을 통해 복수의 마스크 신호들을 메모리 장치로 전송함으로써, 부분 쓰기 동작을 수행할 수 있다. 이에 따라, 전력 소모를 최소화할 수 있는 전자 장치, 호스트의 동작 방법, 메모리 모듈의 동작 방법, 및 메모리 장치의 동작 방법을 제공하는 데 있다.
도 1은 본 개시의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 2a 및 도 2b는 도 1의 메모리 시스템(10)의 동작을 보여주는 도면이다.
도 3은 도 1의 메모리 장치를 예시적으로 보여주는 블록도이다.
도 4는 도 1의 메모리 시스템의 쓰기 동작을 설명하기 위한 타이밍도이다.
도 5는 도 1의 메모리 장치의 부분 쓰기 동작을 보여주는 순서도이다.
도 6은 도 1의 메모리 시스템의 부분 쓰기 동작을 설명하기 위한 타이밍도이다.
도 7a는 도 1의 메모리 장치의 쓰기 동작을 보여주는 타이밍도이다. 도 7b 및 도 7c는 도 1의 메모리 장치의 부분 쓰기 동작을 보여주는 타이밍도이다.
도 8은 도 1의 메모리 시스템의 부분 쓰기 동작을 설명하기 위한 도면이다.
도 9는 본 개시의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 10은 도 9의 메모리 시스템의 부분 쓰기 동작을 설명하기 위한 도면이다.
도 11a는 도 9의 메모리 장치들 각각의 부분 쓰기 동작을 설명하기 위한 순서도이다.
도 11b는 도 9의 메모리 시스템의 부분 쓰기 동작을 보여주는 타이밍도이다.
도 12a는 도 9의 메모리 장치들 각각의 부분 쓰기 동작을 설명하기 위한 순서도이다.
도 12b는 도 9의 메모리 시스템의 부분 쓰기 동작을 보여주는 타이밍도이다.
도 13a 내지 도 13b는 본 개시에 따른 메모리 시스템의 부분 쓰기 동작을 보여주는 타이밍도이다.
도 14는 본 개시에 따른 메모리 장치가 적용된 컴퓨팅 시스템(2000)을 예시적으로 보여주는 블록도이다.
도 15는 본 개시의 실시 예에 따른 스토리지 시스템을 예시적으로 보여주는 블록도이다.
도 16은 도 15의 마스크 제어 회로의 동작을 보여주는 순서도이다.
이하에서, 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 용이하게 실시할 수 있을 정도로, 본 개시의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 개시의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 1을 참조하면, 메모리 시스템(10)은 호스트(11) 및 메모리 장치(100)를 포함할 수 있다. 호스트(11)는 메모리 장치(100)에 데이터를 저장하거나 또는 메모리 장치(100)에 저장된 데이터를 독출하기 위하여, 메모리 장치(100)로 어드레스 및 커맨드를 전송할 수 있다. 예를 들어, 호스트(11)는 중앙 처리 유닛(CPU; Central Processing Unit) 또는 메모리 컨트롤러를 포함할 수 있다.
일 실시 예에서, 어드레스는 행 어드레스(RA; Row Address), 열 어드레스(CA; Column Address), 뱅크 어드레스(BA; Bank Address), 뱅크 그룹 어드레스(BG; Bank Group Address), 칩 식별자(C; Chip ID) 등을 포함할 수 있고, 커맨드는 활성 커맨드(ACT), 쓰기 커맨드(WR), 부분 쓰기 커맨드(PWR), 읽기 커맨드(RD), 또는 프리차지 커맨드(PRE) 등을 포함할 수 있다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니며, 어드레스 및 커맨드는 다른 다양한 형태의 어드레스 및 커맨드를 포함할 수 있다.
일 실시 예에서, 호스트(11)는 클럭 신호(CK) 및 커맨드/어드레스 신호(C/A)를 메모리 장치(100)로 전송할 수 있다. 호스트(11)는 복수의 데이터 라인들(DQ)을 통해 메모리 장치(100)와 데이터를 주고받을 수 있다. 호스트(11)는 데이터 스트로브 신호(DQS)를 메모리 장치(100)와 주고받을 수 있다.
일 실시 예로서, 호스트(11)는 DDR(Double Data Rate) 인터페이스와 같은 고속 인터페이스를 기반으로 메모리 장치(100)와 통신할 수 있다. 그러나 본 개시의 범위가 이에 한정되는 것은 아니며, 호스트(11)는 USB (Universal Serial Bus), MMC (Multi-Media Card), eMMC(embedded MMC), PCI (Peripheral Component Interconnection), PCI-E (PCI-express), ATA (Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI (Small Computer Small Interface), ESDI (Enhanced Small Disk Interface), IDE (Integrated Drive Electronics), 파이어와이어(Firewire), UFS(Universal Flash Storage), NVMe (Nonvolatile Memory express) 등과 같은 다양한 인터페이스 중 적어도 하나를 기반으로 메모리 장치(100)와 통신할 수 있다.
일 실시 예에서, 호스트(11)는 부분 쓰기 요청을 메모리 장치(100)로 전송할 수 있다. 호스트(11)는 커맨드/어드레스 신호(C/A)를 통해 부분 쓰기 커맨드(PWR)를 메모리 장치(100)로 전송할 수 있다. 호스트(11)는 커맨드/어드레스 입력 구간 동안, 커맨드/어드레스 신호(C/A)를 통해 부분 쓰기 활성화 신호(PWE), 및 복수의 마스크 신호들(MS)을 메모리 장치(100)로 출력할 수 있다.
메모리 장치(100)는 호스트(11)의 제어에 따라 호스트(11)로부터 제공된 데이터를 저장하거나 또는 저장된 데이터를 호스트(11)로 제공할 수 있다. 예를 들어, 메모리 장치(100)는 호스트(11)로부터 클럭 신호(CK)를 수신할 수 있다. 메모리 장치(100)는 호스트(11)로부터 커맨드/어드레스 신호(C/A)를 통해, 커맨드(CMD), 어드레스(ADDR), 부분 쓰기 활성화 신호(PWE), 복수의 마스크 신호들(MS)을 수신할 수 있다. 메모리 장치(100)는 수신된 신호들에 응답하여, 복수의 데이터 라인들(DQ) 및 데이터 스트로브 신호(DQS)를 통해 호스트(11)로 데이터를 전송하거나 또는 복수의 데이터 라인들(DQ) 및 데이터 스트로브 신호(DQS)를 통해 호스트(11)로부터 데이터를 수신할 수 있다.
일 실시 예로서, 메모리 장치(100)는 동적 랜덤 액세스 메모리(DRAM; Dynamic Random Access Memory)를 포함할 수 있다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니며, 메모리 장치(100)는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM), ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같은 다양한 메모리 장치들 중 적어도 하나를 포함할 수 있다.
이하에서, 본 개시의 기술적 사상을 용이하게 설명하기 위하여, 메모리 장치(100)는 동적 랜덤 액세스 메모리(DRAM; Dynamic Random Access Memory)이고, 호스트(11) 및 메모리 장치(100)는 DDR(Double Data Rate) 인터페이스를 기반으로 서로 통신하는 것으로 가정한다.
일 실시 예에서, 메모리 장치(100)는 마스크 회로(110)를 포함할 수 있다. 마스크 회로(110)는 데이터 스트로브 신호(DQS), 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들(MS)을 수신할 수 있다. 마스크 회로(110)는 데이터 스트로브 신호(DQS), 부분 쓰기 활성화 신호(PWE), 및 복수의 마스크 신호들(MS)을 기반으로, 복수의 데이터 라인들(DQ)을 통해 수신한 복수의 데이터 중 일부를 복수의 메모리 셀들에 저장할 수 있다.
상술된 바와 같이, 본 개시에 따른 메모리 장치(100)는 커맨드/어드레스 입력 구간 동안, 커맨드/어드레스 신호(C/A)를 통해 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들(MS)를 호스트(11)로부터 수신할 수 있다. 마스크 회로(110)의 구성 및 동작 방법은 이하의 도면들을 참조하여 더욱 상세하게 설명된다.
도 2a 및 도 2b는 도 1의 메모리 시스템(10)의 동작을 보여주는 도면이다. 캐시 라인은 호스트(11)가 메모리 장치(100)로 전송하는 읽기 또는 쓰기 요청에 따른 최소 액세스 단위일 수 있다. 캐시 라인들 각각의 크기는 예를 들어, 32 byte 또는 64 byte 일 수 있다. 일반적인 메모리 시스템은 캐시 라인 단위로 메모리 장치를 액세스할 수 있다. 이에 따라, 바이트 단위의 데이터를 갱신하기 위하여, 메모리 시스템은 캐시 라인 단위로 읽기 동작을 수행 후에, 캐시 라인 단위로 쓰기 동작을 수행할 수 있다.
캐시 라인은 32 byte로 가정한다. 메모리 장치(100)는 제0 내지 제31 메모리 셀 그룹들(MCG0~MCG31)을 포함할 수 있다. 예를 들어, 메모리 셀 그룹들(MCG0~MCG31) 각각은 8 개의 메모리 셀들을 포함할 수 있다.
제1 및 제2 데이터(DT1, DT2)는 제0 내지 제31 바이트 데이터(BD0~BD31)를 포함할 수 있다. 예를 들어, 바이트 데이터(BD0~BD31) 각각의 크기는 8 bit일 수 있다. 제1 데이터(DT1)의 제1 바이트 데이터(BD1) 값 및 제2 데이터(DT2)의 제1 바이트 데이터(BD1) 값은 상이하고, 나머지 바이트 데이터(BD0, BD2~BD31) 값들은 서로 동일한 것으로 가정한다.
호스트(11)는 제1 어드레스에 대응하는 제1 데이터(DT1)를 메모리 장치(100)에 저장할 수 있다. 예를 들어, 호스트(11)는 제0 내지 제31 바이트 데이터(BD0~BD31)의 값들 각각을 대응하는 메모리 셀 그룹에 저장할 수 있다. 예를 들어, 호스트(11)는 제0 바이트 데이터(BD0)의 값을 제0 메모리 셀 그룹(MCG0)에 저장하고, 제1 바이트 데이터(BD1)의 값을 제1 메모리 셀 그룹(MCG1)에 저장하고, 제2 바이트 데이터(BD2)의 값을 제2 메모리 셀 그룹(MCG2)에 저장하고, 제3 바이트 데이터(BD3)의 값을 제3 메모리 셀 그룹(MCG3)에 저장할 수 있다. 나머지 바이트 데이터(BD4~BD31)들은 이와 유사하므로, 상세한 설명은 생략한다.
호스트(11)는 제1 메모리 셀 그룹(MCG1)에 저장된 데이터를 갱신할 수 있다. 즉, 호스트(11)는 제1 어드레스에 대응하는 데이터를 변경할 수 있다. 호스트(11)는 제1 메모리 셀 그룹(MCG1)에 저장된 데이터를 갱신하기 위해, 메모리 장치(100)에 저장된 제1 어드레스에 대응하는 데이터를 독출할 수 있다. 예를 들어, 메모리 장치(100)로부터 제0 내지 제31 메모리 셀 그룹들(MCG0~MCG31)에 저장된 제1 데이터(DT1)를 읽을 수 있다.
예를 들어, 메모리 장치(100)는 제0 메모리 셀 그룹(MCG0)에서 제1 데이터(DT1)의 제0 바이트 데이터(BD0) 값을 독출하고, 제1 메모리 셀 그룹(MCG1)에서 제1 데이터(DT1)의 제1 바이트 데이터(BD1) 값을 독출하고, 제2 메모리 셀 그룹(MCG2)에서 제1 데이터(DT1)의 제2 바이트 데이터(BD2) 값을 독출하고, 제3 메모리 셀 그룹(MCG3)에서 제1 데이터(DT1)의 제3 바이트 데이터(BD3) 값을 독출할 수 있다. 나머지 제1 데이터(DT1)의 바이트 데이터(BD4~BD31)는 이와 유사하므로, 상세한 설명은 생략한다.
호스트(11)는 제1 데이터(DT1)를 기반으로 제2 데이터(DT2)를 생성할 수 있다. 호스트(11)는 제1 메모리 셀 그룹(MCG1)에 저장된 데이터를 갱신하기 위해, 캐시 라인 단위에 대응하는 제2 데이터(DT2)를 생성할 수 있다. 호스트(11)는 제1 데이터(DT1)의 제1 바이트 데이터(BD1) 값을 갱신하여, 제2 데이터(DT2)를 생성할 수 있다. 즉, 제1 데이터(DT1)의 제1 바이트 데이터(BD1) 값 및 제2 데이터(D1)의 제1 바이트 데이터(BD1) 값은 상이하고, 나머지 바이트 데이터(BD0, BD2~BD31)의 값들은 동일할 수 있다.
호스트(11)는 제2 데이터(DT2)를 메모리 장치(100)에 저장할 수 있다. 예를 들어, 호스트(11)는 쓰기 요청 및 제2 데이터(DT2)를 메모리 장치(100)로 전송할 수 있다. 쓰기 요청은 쓰기 커맨드 및 제1 어드레스를 포함할 수 있다. 메모리 장치(100)는 쓰기 요청에 응답하여, 제2 데이터(DT2)를 복수의 메모리 셀들에 저장할 수 있다. 메모리 장치(100)는 제2 데이터(DT2)의 제0 바이트 데이터(BD0) 값을 제0 메모리 셀 그룹(MCG0)에 저장하고, 갱신된 제2 데이터(DT2)의 제1 바이트 데이터(BD1) 값을 제1 메모리 셀 그룹(MCG1)에 저장하고, 제2 데이터(DT2)의 제2 바이트 데이터(BD2) 값을 제2 메모리 셀 그룹(MCG2)에 저장하고, 제2 데이터(DT2)의 제3 바이트 데이터(BD3)를 제3 메모리 셀 그룹(MCG3)에 저장할 수 있다. 제2 데이터(DT2)의 나머지 바이트 데이터(BD4~BD31)는 이와 유사하므로, 상세한 설명은 생략한다.
상술된 바와 같이, 호스트(11)는 제1 메모리 셀 그룹(MCG1)에 저장된 바이트 단위 데이터를 갱신하기 위하여, 캐시 라인 단위에 대응하는 제1 데이터(DT1)를 메모리 장치(100)로부터 독출하고, 캐시 라인 단위에 대응하는 제2 데이터(DT2)를 메모리 장치(100)에 저장 또는 기입할 수 있다
메모리 장치는 데이터 마스크 기능(DM; DATA MASK)을 통해 부분 쓰기 동작을 지원할 수 있다. DDR 4.0 사양(Specification)의 프로토콜에 따르면, X8, X16 메모리 장치는 DM_n/DBI_n/TDQS_t 신호를 통해 데이터 마스크 기능, 데이터 버스 반전(DBI; Data Bus Inversion) 기능, TDQS기능을 수행할 수 있다. 모드 레지스터를 설정함으로써, 데이터 마스크 기능, 및 데이터 버스 반전 기능, TDQS 기능을 활성화 또는 비활성화할 수 있다. 그러나, X4 메모리 장치는 DM_n/DBI_n/TDQS_t 신호를 사용할 수 없다. X4 메모리 장치는 데이터 마스크 기능을 지원하지 않는다.
이에 따라, 메모리 시스템은 X4 메모리 장치에 저장된 캐시 라인 단위 보다 작은 단위(예를 들어, 니블 단위, 바이트 단위 등)의 데이터를 갱신하기 위해, 캐시 라인 단위에 대응하는 데이터를 X4 메모리 장치로부터 독출하고, 캐시 라인 단위에 대응하는 데이터를 X4 메모리 장치에 기입할 필요가 있다.
본 개시의 실시 예에 따른 메모리 장치는 DQ 라인들의 개수에 관계 없이 부분 쓰기 동작을 수행할 수 있다. 메모리 장치(100)는 DM_n/DBI_n/TDQS_t 신호를 이용하지 않고, 커맨드/어드레스 라인들을 이용하여, 부분 쓰기 활성화 신호 및 복수의 마스크 신호들을 수신할 수 있다.
데이터 마스크 기능을 이용하는 메모리 장치는 데이터 입력 구간 동안, 데이터 마스크 신호를 호스트로부터 수신할 수 있다. 반면에, 본 개시의 실시 예에 따른 메모리 장치는 커맨드/어드레스 입력 구간 동안, 복수의 마스크 신호들을 수신할 수 있다.
도 2b를 참조하여, 바이트 단위에 대응하는 데이터를 갱신하는 방법이 설명된다. 도 2a와 비교하여, 본 개시의 실시 예에 따른 메모리 시스템(10)은 부분 쓰기 동작을 수행할 수 있다. 예를 들어, 메모리 시스템(10)은 캐시 라인 단위보다 작은 단위의 데이터를 메모리 장치(100)에 기입할 수 있다. 이에 따라, 메모리 시스템(10)은 갱신을 위하여 메모리 장치(100)로부터 캐시 라인 단위에 대응하는 제1 데이터(DT1)를 독출하지 않을 수 있다.
예를 들어, 호스트(11)는 제1 메모리 셀 그룹(MCG1)에 저장된 데이터를 갱신할 수 있다. 호스트(11)는 부분 쓰기 동작을 통해, 캐시 라인 단위보다 작은 단위의 데이터를 메모리 장치(100)에 저장할 수 있다.
제3 데이터(DT3)는 제0 내지 제31 바이트 데이터(BD0~BD31)를 포함할 수 있다. 제1 바이트 데이터(BD1)는 유효한 값을 가지며, 제0, 제2 내지 제31 바이트 데이터(BD0, BD2~BD31)는 더미 값을 가지는 것으로 가정한다.
호스트(11)는 제3 데이터(DT3)를 생성할 수 있다. 제3 데이터(DT3)는 유효한 값을 가지는 제1 바이트 데이터(BD1), 및 더미 값을 가지는 제0, 제2 내지 제31 바이트 데이터(BD0, BD2~BD31)를 포함할 수 있다. 즉, 제0, 제2 내지 제31 메모리 셀 그룹들(MCG0, MCG2~MCG31)에 대응하는 데이터(BD0, BD2~BD31)는 더미 데이터이고, 제1 메모리 셀 그룹(MCG1)에 대응하는 데이터는 갱신된 제1 바이트 데이터(BD1)일 수 있다. 예를 들어, 더미 데이터는 미리 정해진 데이터 패턴이거나 또는 랜덤 데이터 패턴일 수 있다.
호스트(11)는 부분 쓰기 요청 및 제3 데이터(DT3)를 메모리 장치(100)로 전송할 수 있다. 예를 들어, 부분 쓰기 요청은 부분 쓰기 커맨드 및 어드레스를 포함할 수 있다.
메모리 장치(100)는 부분 쓰기 요청 및 제3 데이터(DT3)를 수신할 수 있다. 메모리 장치(100)는 부분 쓰기 요청에 응답하여, 부분 쓰기 동작을 수행할 수 있다. 메모리 장치(100)는 더미 데이터를 제외하고, 제1 바이트 데이터(BD1)만 제1 메모리 셀 그룹(MCG1)에 기입할 수 있다.
상술된 바와 같이, 본 개시의 실시 예에 따른 메모리 시스템(10)은 부분 쓰기 동작을 수행할 수 있다. 이에 따라, 메모리 시스템(10)은 캐시 라인 단위 보다 작은 단위의 데이터를 갱신하기 위해, 캐시 라인 단위에 대응하는 데이터를 메모리 장치로부터 독출하지 않을 수 있다. 호스트(11)는 갱신된 바이트 데이터 및 더미 데이터를 메모리 장치(100)로 전송하여, 캐시 라인 단위보다 작은 단위에 대응하는 데이터를 메모리 장치(100)에 기입할 수 있다.
도 3은 도 1의 메모리 장치를 예시적으로 보여주는 블록도이다. 도 1 및 도 3을 참조하면, 메모리 장치(100)는 마스크 회로(110), 메모리 셀 어레이(120), 디코더(130), 쓰기 드라이버 및 감지 증폭기(140), 커맨드/어드레스 디코더(150), 및 버퍼 회로들(161~164)을 포함할 수 있다.
메모리 셀 어레이(120)는 워드라인들 및 비트라인들(미도시)과 각각 연결된 복수의 메모리 셀들을 포함할 수 있다. 복수의 메모리 셀들 각각은 디코더(130) 및 쓰기 드라이버 및 감지 증폭기(140)의 제어에 따라 데이터를 저장하거나 또는 저장된 데이터를 출력하도록 구성될 수 있다.
디코더(130)는 메모리 셀 어레이(120)에 포함된 복수의 메모리 셀들을 제어할 수 있다. 디코더(130)는 커맨드/어드레스 디코더(150)로부터 수신된 정보(예를 들어, 디코딩 결과)를 기반으로 복수의 메모리 셀들을 제어할 수 있다. 예를 들어, 디코더(130)는 로우 어드레스(RA)를 디코딩하여, 로우 어드레스(RA)에 대응하는 워드라인을 활성화시킬 수 있다. 디코더(130)는 컬럼 어드레스(CA)를 디코딩하여, 컬럼 어드레스(CA)에 대응하는 컬럼 선택 라인(CSL)을 활성화시킬 수 있다.
일 실시 예에서, 디코더(130)는 마스크 회로(110)로부터 컬럼 제어 신호(C_CTRL)를 수신할 수 있다. 디코더(130)는 컬럼 제어 신호(C_CTRL)에 응답하여, 컬럼 선택 라인(CSL)을 제어할 수 있다. 디코더(130)는 컬럼 제어 신호(CTRL)에 응답하여, 컬럼 선택 라인(CSL)을 로직-로우(L)로 설정하여, 입력 데이터 중 일부 또는 전부를 메모리 셀 어레이(120)에 저장하지 않을 수 있다. 디코더(130)는 컬럼 제어 신호(C_CTRL)에 응답하여, 컬럼 선택 라인(CSL)을 로직-하이(H)로 설정하여, 입력 데이터 중 일부 또는 전부를 메모리 셀 어레이(120)에 저장할 수 있다.
쓰기 드라이버 및 감지 증폭기(140)는 데이터를 메모리 셀 어레이(120)에 포함된 복수의 메모리 셀들에 기입하거나 또는 메모리 셀 어레이(120)에 포함된 복수의 메모리 셀들에 저장된 데이터를 출력하도록 구성될 수 있다.
커맨드/어드레스 디코더(150)는 커맨드/어드레스 버퍼(162)를 통해 수신된 커맨드/어드레스 신호(C/A)를 디코딩할 수 있다. 커맨드/어드레스 디코더(150)는 디코딩 결과를 디코더(130)로 전달할 수 있다. 커맨드/어드레스 디코더(150)는 클럭 활성화 신호(CKE), 칩 선택 신호(CS_n), 활성 신호(ACT_n), RAS 신호(RAS_n), CAS 신호(CAS_n), 쓰기 활성화 신호(WE_n), 및 부분 쓰기 활성화 신호(PWE)를 디코딩 하여, 부분 쓰기 커맨드(PWR)를 식별할 수 있다.
부분 쓰기 커맨드(PWR)는 쓰기 커맨드(WR) 및 부분 쓰기 활성화 신호(PWE)를 통해 형성될 수 있다. 커맨드/어드레스 디코더(150)는 클럭 활성화 신호(CKE), 칩 선택 신호(CS_n), 활성 신호(ACT_n), RAS 신호(RAS_n), CAS 신호(CAS_n), 쓰기 활성화 신호(WE_n)를 디코딩 하여 쓰기 커맨드(WR)를 식별하고, 활성화 상태를 가리키는 부분 쓰기 활성화 신호(PWE)를 식별하여, 결과적으로 부분 쓰기 커맨드(PWR)를 식별할 수 있다.
커맨드/어드레스 디코더(150)는 클럭 활성화 신호(CKE), 칩 선택 신호(CS_n), 활성 신호(ACT_n), RAS 신호(RAS_n), CAS 신호(CAS_n), 쓰기 활성화 신호(WE_n), 및 부분 쓰기 활성화 신호(PWE)에 응답하여, 마스크 활성화 신호(ME) 및 복수의 마스크 신호들(MS0~MS7)을 마스크 회로(110)로 출력할 수 있다. 즉, 부분 쓰기 커맨드(PWR)를 수신한 경우, 커맨드/어드레스 디코더(150)는 마스크 활성화 신호(ME) 및 복수의 마스크 신호들(MS)을 마스크 회로(110)로 전송할 수 있다. 마스크 활성화 신호(ME)는 부분 쓰기 동작을 수행하도록 내부 마스크 기능을 활성화하기 위한 신호일 수 있다.
예를 들어, 마스크 활성화 신호(ME)는 비활성화 상태를 가리키는 제1 논리 값(예를 들어, 로직-로우(L)) 또는 활성화 상태를 가리키는 제2 논리 값(예를 들어, 로직-하이(H))를 가질 수 있다. 이에 따라, 커맨드/어드레스 디코더(150)는 부분 쓰기 활성화 신호(PWE)가 활성화 상태를 가리키는 경우, 마스크 활성화 신호(ME)를 로직-하이(H)로 설정할 수 있다. 커맨드/어드레스 디코더(150)는 부분 쓰기 활성화 신호(PWE)가 비활성화 상태를 가리키는 경우, 마스크 활성화 신호(ME)를 로직-로우(L)로 설정할 수 있다.
클럭 버퍼(161)는 호스트(11)로부터 클럭 신호(CK)를 수신할 수 있다. 메모리 장치(100)를 수신된 클럭 신호(CK)를 기반으로 동작할 수 있다.
커맨드/어드레스 버퍼(162)는 호스트(11)로부터 커맨드/어드레스 라인들을 통해 커맨드/어드레스 신호(C/A)를 수신할 수 있다. 커맨드/어드레스 신호(C/A)는 클럭 활성화 신호(CKE), 칩 선택 신호(CS_n), 활성 신호(ACT_n), RAS 신호(RAS_n), CAS 신호(CAS_n), 쓰기 활성화 신호(WE_n), 뱅크 그룹 어드레스 라인들(BG0, BG1), 뱅크 어드레스 라인들(BA0, BA1), 칩 식별자 라인들(C0-C2), 제12 어드레스 라인(A12), 제11, 제13, 및 제17 어드레스 라인들(A11, A13, A17), 제10 어드레스 라인(A10), 제0 내지 제9 어드레스 라인들(A0-A9)을 통해 전달될 수 있다.
예를 들어, 메모리 장치(100)는 뱅크 그룹 어드레스 라인들(BG0, BG1)을 통해 뱅크 그룹 어드레스(BG)를 호스트(11)로부터 수신하고, 뱅크 어드레스 라인들(BA0, BA1)을 통해 뱅크 어드레스(BA)를 호스트(11)로부터 수신하고, 제0 내지 제9 어드레스 라인들(A0-A9)을 통해 컬럼 어드레스(CA)를 호스트(11)로부터 수신할 수 있다.
일 실시 예에서, 커맨드/어드레스 버퍼(162)는 제12 어드레스 라인(A12)을 통해 부분 쓰기 활성화 신호(PWE)를 수신할 수 있다. 커맨드/어드레스 버퍼(162)는 제0 어드레스 라인(A0)을 통해 제0 마스크 신호(MS0)를 수신하고, 제1 어드레스 라인(A1)을 통해 제1 마스크 신호(MS1)를 수신하고, 제2 어드레스 라인(A2)을 통해 제2 마스크 신호(MS2)를 수신하고, 제11 어드레스 라인(A11)을 통해 제3 마스크 신호(MS3)를 수신하고, 제13 어드레스 라인(A13)을 통해 제4 마스크 신호(MS4)를 수신하고, 제0 칩 식별자 라인(C0)을 통해 제5 마스크 신호(MS5)를 수신하고, 제1 칩 식별자 라인(C1)을 통해 제6 마스크 신호(MS6)를 수신하고, 제2 칩 식별자 라인(C2)을 통해 제7 마스크 신호(MS7)를 수신할 수 있다.
커맨드/어드레스 버퍼(162)는 수신한 커맨드/어드레스 신호(C/A)를 커맨드/어드레스 디코더(150)로 전송할 수 있다.
DQS 버퍼(163)는 호스트(11)로부터 데이터 스트로브 라인을 통해 데이터 스트로브 신호(DQS)를 수신할 수 있다. 메모리 장치(100)는 데이터 스트로브 신호(DQS)를 사용하여 데이터를 샘플링, 캡쳐, 또는 병렬화함으로써, 입력 데이터를 검출할 수 있다. DQ 버퍼(164)는 호스트(11)로부터 복수의 데이터 라인들(DQ)을 통해 입력 데이터를 수신할 수 있다. DQ 버퍼(164)는 입력 데이터를 마스크 회로(110)로 전송할 수 있다. 예를 들어, 입력 데이터(Din)는 데이터 입력 구간 동안 메모리 장치(100)로 수신되는 데이터를 가리킬 수 있다.
일 실시 예에서, 버스트 길이가 8인 경우(BL8), DQ 버퍼(164)는 입력 데이터(Din)를 수신할 수 있다. 입력 데이터(Din)는 제0 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제0 입력 데이터(Din_0), 제1 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제1 입력 데이터(Din_1), 제2 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제2 입력 데이터(Din_2), 및 제3 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제3 입력 데이터(Din_3)를 포함할 수 있다. 나머지 입력 데이터(Din_4~Din_7)는 이와 유사한 구조를 가지므로, 상세한 설명은 생략된다.
마스크 회로(110)는 커맨드/어드레스 디코더(150)로부터 마스크 활성화 신호(ME), 및 복수의 마스크 신호들(MS)을 수신할 수 있다. 마스크 회로(110)는 DQS 버퍼(163)로부터 데이터 스트로브 신호(DQS)를 수신할 수 있다. 마스크 회로(110)는 DQ 버퍼(164)로부터 복수의 데이터 라인들(DQ)을 통해 수신된 입력 데이터(Din)를 수신할 수 있다. 마스크 회로(110)는 입력 데이터(Din)를 글로벌 입출력 라인(GIO)을 통해 쓰기 드라이버 및 감지 증폭기(140)로 전송할 수 있다.
마스크 회로(110)는 마스크 활성화 신호(ME)에 응답하여, 부분 쓰기 동작 또는 내부 마스크 동작을 수행할 수 있다. 부분 쓰기 동작은 쓰기 동작에서 메모리 셀 어레이를 구성하는 메모리 셀 그룹(또는 블록)의 일부에 데이터가 기입되지 않도록 마스킹 하는 동작을 가리킨다.
일 실시 예에서, 마스크 회로(110)는 마스크 활성화 신호(ME)가 활성화 상태를 가리키는 경우, 복수의 마스크 신호들(MS0~MS7) 및 데이터 스트로브 신호(DQS)를 기반으로 부분 쓰기 동작을 수행할 수 있다. 예를 들어, 마스크 회로(110)는 복수의 마스크 신호들(MS0~MS7)을 기반으로 입력 데이터(Din) 중 일부를 쓰기 드라이버 및 감지 증폭기(140)로 전달하지 않을 수 있다. 또는 마스크 회로(110)는 복수의 마스크 신호들(MS0~MS7)을 기반으로 입력 데이터(Din) 중 일부가 메모리 셀에 저장되지 않도록 컬럼 제어 신호(C_CTRL)를 제어할 수 있다. 마스크 회로(110)는 컬럼 제어 신호(C_CTRL)를 디코더(130)로 출력할 수 있다.
일 실시 예에서, 마스크 회로(110)는 부분 쓰기 활성화 신호(PWE)가 활성화 상태를 가리키는 경우, 데이터 스트로브 신호(DQS)가 스트로브 토글 구간 동안 로직-하이(H)를 유지하는지 판별할 수 있다. 마스크 회로(110)는 스트로브 토글 구간 동안 데이터 스트로브 신호(DQS)가 로직-하이(H)를 유지하는 경우, 입력 데이터(Din) 전부를 쓰기 드라이버 및 감지 증폭기(140)로 전달하지 않을 수 있다. 또는 마스크 회로(110)는 입력 데이터(Din) 전부가 메모리 셀에 저장되지 않도록 컬럼 제어 신호(C_CTRL)를 제어할 수 있다.
도 4는 도 1의 메모리 시스템의 쓰기 동작을 설명하기 위한 타이밍도이다. 도 1 및 도 4를 참조하여, 쓰기 동작이 설명된다. 메모리 시스템(10)은 도 4에 도시된 타이밍도를 기반으로 쓰기 동작을 수행할 수 있다.
호스트(11)는 제1 시점(t1)(또는, 클럭 신호(CK_t)의 첫 번째 상승 에지)에서, 커맨드 및 어드레스를 메모리 장치(100)로 전송할 수 있다. 호스트(11)는 커맨드 신호를 통해 쓰기 커맨드(WR)를 전송할 수 있다. 호스트(11)는 뱅크 그룹 어드레스 라인을 통해 뱅크 그룹 어드레스(BG)를 전송할 수 있다. 호스트(11)는 어드레스 라인을 통해 뱅크 어드레스(BA) 및 컬럼 어드레스(CA)를 전송할 수 있다.
일 실시 예에서, 쓰기 커맨드 및 어드레스가 전송된 시점(t1)으로부터 쓰기 레이턴시(WL)가 경과한 이후에, 입력 데이터(Din)는 데이터 라인들(DQ)을 통해 토글하는 데이터 스트로브 신호(DQS)에 동기하여 전송될 수 있다.
일 실시 예에서, 메모리 장치(100)는 커맨드/어드레스 입력 구간(T1) 동안, 호스트(11)로부터 커맨드 및 어드레스를 수신할 수 있다. 커맨드 및 어드레스가 전송된 시점(t1)으로부터 쓰기 레이턴시(WL)가 경과한 이후에, 메모리 장치(100)는 데이터 입력 구간(T2) 동안 호스트(11)로부터 입력 데이터(Din)를 수신할 수 있다.
예시적으로, 표 1 및 표 2는 DDR 4.0 사양(Specification)의 프로토콜에 기반된, 쓰기 커맨드(WR)에 대한 커맨드 진리표의 예를 보여준다.
CKE
Previous Cycle
CKE
Current Cycle
CS_n ACT_n RAS_n CAS_n WE_n
H H L H H L L
표 1에 도시된 바와 같이 클럭 활성화 신호(CKE), 칩 선택 신호(CS_n), 활성 신호(ACT_n), RAS 신호(RAS_n), CAS 신호(CAS_n), 및 쓰기 활성화 신호(WE_n)를 제어함으로써, 쓰기 커맨드(WR)가 전송될 수 있다. 예를 들어, 호스트(11)는 제1 시점(t1)에서, 클럭 활성화 신호(CKE)를 이전 사이클 및 현재 사이클에서 로직-하이(H)로 설정하고, 칩 선택 신호(CS_n)를 로직-로우(L)로 설정하고, 활성 신호(ACT_n)를 로직-하이(H)로 설정하고, RAS 신호(RAS_n)를 로직-하이(H)로 설정하고, CAS 신호(CAS_n)를 로직-로우(L)로 설정하고, 쓰기 활성화 신호(WE_n)를 로직-로우(L)로 설정함으로써, 쓰기 커맨드(WR)를 전송할 수 있다.
BG0-BG1 BA0-BA1 C0-C2 A12 A17, A13, A11 A10 A0-A9
BG BA V V V V CA
표 2에 도시된 바와 같이, 호스트(11)는 제1 시점(t1)에서 제0 및 제1 뱅크 그룹 어드레스 라인들(BG0, BG1)을 통해 뱅크 그룹 어드레스(BG)를 메모리 장치(100)로 전송하고, 제0 및 제1 뱅크 어드레스 라인(BA0, BA1)을 통해 뱅크 어드레스(BA)를 메모리 장치(100)로 전송할 수 있다. 호스트(11)는 제12 어드레스 라인(A12)을 통해 버스트 쵸핑 신호(BC; Burst Chopping)를 메모리 장치(100)로 전송할 수 있다. 버스트 쵸핑 신호(BC)는 미리 정해진 또는 별도로 설정된 버스트 길이 중에서 일부를 사용하지 않음을 가리킬 수 있다. 호스트(11)는 제10 어드레스 라인(A10)을 통해 오토 프리차지 신호(AP; Autoprecharge)를 전송할 수 있다. 호스트(11)는 제0 내지 제9 어드레스 라인들(A0~A9)을 통해 컬럼 어드레스(CA)를 전송할 수 있다. 호스트(11)는 제1 시점(t1)에서 제0 내지 제2 칩 식별자 라인(C0~C2), 제10 내지 제13, 및 제17 어드레스 라인들(A10, A11, A12, A13, A17)을 로직-하이(H) 또는 로직-로우(L) 중 하나로 정의되는 임의의 레벨로 설정할 수 있다
도 5는 도 1의 메모리 장치의 부분 쓰기 동작을 보여주는 순서도이다. 도 1 및 도 5를 참조하면, S110 단계에서, 메모리 장치(100)는 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호(MS)를 포함하는 부분 쓰기 커맨드(PWR)를 호스트(11)로부터 수신할 수 있다. 예를 들어, 메모리 장치(100)는 커맨드/어드레스 입력 구간 동안, 커맨드/어드레스 신호(C/A)를 통해 부분 쓰기 커맨드(PWR)를 수신할 수 있다.
S120 단계에서, 메모리 장치(100)는 스트로브 토글 구간 동안, 데이터 스트로브 신호(DQS)를 수신할 수 있다. 메모리 장치(100)는 데이터 입력 구간 동안, 복수의 데이터 라인들(DQ)을 통해 데이터를 수신할 수 있다.
S130 단계에서, 메모리 장치(100)는 복수의 마스크 신호들(MS)을 기반으로 컬럼 선택 라인을 활성화시킬 수 있다. 예를 들어, 메모리 장치(100)는 마스크 신호가 비활성화 상태를 가리키는 경우, 마스크 신호에 대응하는 입력 데이터의 컬럼 어드레스 대응하는 컬럼 선택 라인을 활성화시킬 수 있다. 메모리 장치(100)는 마스크 신호가 활성화 상태를 가리키는 경우, 마스크 신호에 대응하는 입력 데이터의 컬럼 어드레스 대응하는 컬럼 선택 라인을 비활성화 시킬 수 있다.
S140 단계에서, 메모리 장치(100)는 컬럼 선택 라인(CSL)을 기반으로 데이터를 복수의 메모리 셀에 저장할 수 있다. 예를 들어, 컬럼 선택 라인이 활성화 상태를 가리키는 경우, 메모리 장치(100)는 컬럼 선택 라인에 대응하는 입력 데이터를 메모리 셀에 저장할 수 있다. 컬럼 선택 라인이 비활성화 상태를 가리키는 경우, 메모리 장치(100)는 컬럼 선택 라인에 대응하는 입력 데이터를 메모리 셀에 저장할 수 있다.
상술된 바와 같이, 메모리 장치(100)는 별도의 데이터 마스크 신호(DM_n)가 아닌 커맨드/어드레스 신호(C/A)를 통해 복수의 마스크 신호(MS)를 수신할 수 있다. 메모리 장치(100)는 데이터 입력 구간이 아닌 커맨드/어드레스 입력 구간 동안, 복수의 마스크 신호(MS)를 수신할 수 있다.
도 6은 도 1의 메모리 시스템의 부분 쓰기 동작을 설명하기 위한 타이밍도이다. 일 실시 예에서, 메모리 시스템(10)은 도 6에 도시된 타이밍도를 기반으로 부분 쓰기 동작을 수행할 수 있다. 호스트(11)는 제1 시점(t1)(또는, 클럭 신호(CK_t)의 첫 번째 상승 에지)에서, 커맨드 및 어드레스를 메모리 장치(100)로 전송할 수 있다. 호스트(11)는 커맨드 라인을 통해 부분 쓰기 커맨드(PWR)를 전송할 수 있다. 호스트(11)는 뱅크 그룹 어드레스 라인을 통해 뱅크 그룹 어드레스(BG)를 전송할 수 있다. 호스트(11)는 어드레스 라인을 통해 뱅크 어드레스(BA), 컬럼 어드레스(CA), 부분 쓰기 활성화 신호(PWE), 및 복수의 마스크 신호들(MS)을 전송할 수 있다.
일 실시 예에서, 부분 쓰기 커맨드(PWR) 및 어드레스가 전송된 시점(t1)으로부터 쓰기 레이턴시(WL)가 경과한 이후에, 입력 데이터는 데이터 라인들(DQ)을 통해 토글하는 데이터 스트로브 신호(DQS)에 동기하여 전송될 수 있다.
일 실시 예에서, 메모리 장치(100)는 커맨드/어드레스 입력 구간(T1) 동안 호스트(11)로부터 부분 쓰기 커맨드(PWR) 및 어드레스를 수신할 수 있다. 부분 쓰기 커맨드(PWR) 및 어드레스가 전송된 시점(t1)으로부터 쓰기 레이턴시(WL)가 경과한 이후에, 메모리 장치(100)는 데이터 입력 구간(T2) 동안 호스트(11)로부터 입력 데이터(Din_0~Din_7)를 수신할 수 있다.
메모리 시스템(10)은 어드레스 라인을 통해 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들(MS0~MS7)을 전송할 수 있다. 표 3 및 표 4는 DDR 4.0 사양(Specification)의 프로토콜에 기반된, 부분 쓰기 커맨드(PWR)에 대한 커맨드 진리표의 예를 보여준다.
CKE
Previous Cycle
CKE
Current Cycle
CS_n ACT_n RAS_n CAS_n WE_n A12/PWE
PWR H H L H H L L H
호스트(11)는 제12 어드레스 라인(A12)을 통해 부분 쓰기 활성화 신호(PWE)를 메모리 장치(100)로 전송할 수 있다. 호스트(11)는 표 3에 도시된 바와 같이 클럭 활성화 신호(CKE), 칩 선택 신호(CS_n), 활성 신호(ACT_n), RAS 신호(RAS_n), CAS 신호(CAS_n), 쓰기 활성화 신호(WE_n), 부분 쓰기 활성화 신호(PWE)를 제어함으로써, 부분 쓰기 커맨드(PWR)가 전송될 수 있다. 예를 들어, 호스트(11)는 제1 시점(t1)에서, 클럭 활성화 신호(CKE)를 이전 사이클 및 현재 사이클에서 로직-하이(H)로 설정하고, 칩 선택 신호(CS_n)를 로직-로우(L)로 설정하고, 활성 신호(ACT_n)를 로직-하이(H)로 설정하고, RAS 신호(RAS_n)를 로직-하이(H)로 설정하고, CAS 신호(CAS_n)를 로직-로우(L)로 설정하고, 쓰기 활성화 신호(WE_n)를 로직-로우(L)로 설정하고, 부분 쓰기 활성화 신호(PWE)를 로직-하이(H)로 설정함으로써, 부분 쓰기 커맨드(PWR)를 전송할 수 있다.
상술된 바와 같이, 쓰기 커맨드 및 부분 쓰기 커맨드는 제12 어드레스 라인(A12) 라인을 통해 수신되는 부분 쓰기 활성화 신호(PWE)에 따라 식별될 수 있다. 본 개시에서 예시적으로 부분 쓰기 활성화 신호(PWE)가 로직-하이(H)로 설정된 경우, 부분 쓰기 커맨드를 가리키는 것으로 가정한다. 단, 본 개시의 범위가 이에 한정되는 것은 아니며, 구현에 따라 부분 쓰기 활성화 신호(PWE)가 로직-로우(L)로 설정된 경우, 부분 쓰기 커맨드(PWR)를 가리킬 수 있다.
BG0-BG1 BA0-BA1 C0 C1 C2 A17 A13 A11 A10 A3-A9 A2 A1 A0
BG BA MS7 MS6 MS5 V MS4 MS3 V CA MS2 MS1 MS0
호스트(11)는 제1 시점(t1)에서 제0 및 제1 뱅크 그룹 어드레스 라인들(BG0, G1)을 통해 뱅크 그룹 어드레스(BG)를 메모리 장치(100)로 전송하고, 제0 및 제1 뱅크 어드레스 라인들(BA0, BA1)을 통해 뱅크 어드레스(BA)를 메모리 장치(100)로 전송할 수 있다. 호스트(11)는 제10 어드레스 라인(A10)을 통해 오토 프리차지 신호(AP)를 전송할 수 있다. 호스트(11)는 제3 내지 제9 어드레스 라인들(A3-A9)을 통해 컬럼 어드레스(CA)를 전송할 수 있다. 호스트(11)는 제1 시점(t1)에서 제10 및 제17 어드레스 라인들(A10, A17)을 로직-하이(H) 또는 로직-로우(L) 중 하나로 정의되는 임의의 레벨로 설정할 수 있다 호스트(11)는 제0 어드레스 라인(A0)을 통해 제0 마스크 신호(MS0)를 메모리 장치(100)로 전송하고, 제1 어드레스 라인(A1)을 통해 제1 마스크 신호(MS1)를 메모리 장치(100)로 전송하고, 제2 어드레스 라인(A2)을 통해 제2 마스크 신호(MS2)를 메모리 장치(100)로 전송하고, 제11 어드레스 라인(A11)을 통해 제3 마스크 신호(MS3)를 메모리 장치(100)로 전송하고, 제13 어드레스 라인(A13)을 통해 제4 마스크 신호(MS4)를 메모리 장치(100)로 전송하고, 제0 칩 식별자 라인(C0)을 통해 제5 마스크 신호(MS5)를 메모리 장치(100)로 전송하고, 제1 칩 식별자 라인(C1)을 통해 제6 마스크 신호(MS6)를 메모리 장치(100)로 전송하고, 제2 칩 식별자 라인(C2)을 통해 제7 마스크 신호(MS7)를 메모리 장치(100)로 전송할 수 있다.
상술된 바와 같이, 본 개시의 실시 예에 따른 메모리 시스템(10)은 예비(reserved) 라인들(예를 들어, 칩 식별자 라인들(C0~C2), 어드레스 라인들(A0~A2, A11, A12, A13)을 통해 부분 쓰기 동작을 수행할 수 있다. 즉, 메모리 시스템(10)은 예비 라인들을 통해, 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들(MS0~MS7)을 전송할 수 있다.
일 실시 예에서, 복수의 마스크 신호들(MS)은 입력 데이터(Din) 중 유효한 데이터의 위치를 가리킬 수 있다. 예를 들어, 복수의 마스크 신호들(MS) 각각은 대응하는 입력 데이터(Din)에 대한 마스킹(masking) 또는 블록킹(blocking) 여부를 가리키는 신호일 수 있다. 복수의 마스크 신호들(MS) 각각은 대응하는 입력 데이터(Din)를 메모리 장치(100)에 저장 또는 기입할지 여부를 가리키는 신호일 수 있다. 복수의 마스크 신호들(MS) 각각은 대응하는 입력 데이터(Din)가 유효한 데이터인지 또는 더미 데이터인지 여부를 가리키는 신호일 수 있다.
마스크 신호가 비활성화 상태를 가리키는 제1 논리 값(예를 들어, 로직-로우(L))인 경우, 메모리 장치(100)는 마스크 신호에 대응하는 입력 데이터를 메모리 셀에 저장할 수 있다. 마스크 신호가 활성화 상태를 가리키는 제2 논리 값(예를 들어, 로직-하이(H))인 경우, 메모리 장치(100)는 마스크 신호에 대응하는 입력 데이터를 메모리 셀에 저장하지 않을 수 있다. 또는 마스크 신호가 비활성화 상태를 가리키는 경우, 마스크 신호에 대응하는 입력 데이터는 유효할 수 있다. 마스크 신호가 활성화 상태를 가리키는 경우, 마스크 신호에 대응하는 입력 데이터는 유효하지 않을 수 있다(즉, 마스크 신호에 대응하는 입력 데이터는 더미 데이터일 수 있다).
커맨드/어드레스 입력 구간(T1) 동안, 호스트(11)는 부분 쓰기 활성화 신호를 로직-하이(H)로 설정하고, 제0 마스크 신호(MS0)는 로직-로우(L)로 설정하고, 제1 내지 제7 마스크 신호들(MS1~MS7)을 로직-하이(H)로 설정할 수 있다. 이에 따라 메모리 장치(100)는 부분 쓰기 활성화 신호(PWE)가 활성화 상태를 가리키고, 제0 마스크 신호(MS0)가 비활성화 상태를 가리키므로, 메모리 장치(100)는 제0 마스크 신호(MS0)에 대응하는 입력 데이터(Din_0)를 복수의 메모리 셀들에 저장할 수 있다. 제1 내지 제7 마스크 신호들(MS1~MS7)은 활성화 상태를 가리키므로, 메모리 장치(100)는 제1 내지 제7 마스크 신호들(MS1~MS7)에 대응하는 입력 데이터(Din_1~Din_7)를 복수의 메모리 셀들에 저장하지 않을 수 있다.
도 7a는 도 1의 메모리 장치의 쓰기 동작을 보여주는 타이밍도이다. 도 7b 및 도 7c는 도 1의 메모리 장치의 부분 쓰기 동작을 보여주는 타이밍도이다. 버스트 길이(BL)는 8인 것으로 가정한다. 도 3, 도 7a 내지 도 7c를 참조하면, 메모리 장치(100)는 쓰기 커맨드(WR)에 응답하여 입력 데이터 전부를 메모리 셀 어레이(120)에 저장할 수 있다. 메모리 장치(100)는 부분 쓰기 커맨드(PWR)에 응답하여, 입력 데이터 중 전부 또는 일부를 메모리 셀 어레이(120)에 저장할 수 있다.
도 7a에 도시된 바와 같이, 쓰기 동작(WR)의 경우, 마스크 회로(110)는 입력 데이터(Din_0~Din_7) 전부를 메모리 셀 어레이(120)에 저장할 수 있다. 마스크 회로(110)는 글로벌 입출력 라인(GIO)을 통해 입력 데이터(Din_0~Din_7)를 쓰기 드라이버 및 감지 증폭기(140)로 전송할 수 있다. 마스크 회로(110)는 입력 데이터(Din_0~Din_7) 각각에 대응하는 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL)이 활성화되도록, 컬럼 제어 신호(C_CTRL)를 제어할 수 있다. 입력 데이터(Din_0~Din_7) 각각에 대응하는 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL)이 활성화되므로, 입력 데이터(Din_0~Din_7)는 모두 메모리 셀 어레이(120)에 저장될 수 있다.
마스크 회로(110)는 마스크 활성화 신호(ME), 복수의 마스크 신호들(MS), 및 데이터 스트로브 신호(DQS)를 기반으로, 컬럼 제어 신호(C_CTRL)를 제어하여 부분 쓰기 동작을 수행할 수 있다. 마스크 회로(110)는 마스크 활성화 신호(ME), 복수의 마스크 신호들(MS), 및 데이터 스트로브 신호(DQS)를 기반으로, 글로벌 입출력 라인(GIO)을 통해 입력 데이터(Din) 중 전부 또는 일부를 쓰기 드라이버 및 감지 증폭기(140)로 전달할 수 있다.
부분 쓰기 동작(PWR)의 경우, 부분 쓰기 활성화 신호(PWE)는 커맨드/어드레스 입력 구간(T1) 동안 로직-하이(H)이고, 제0 마스크 신호(MS0)는 로직-하이(H)이고, 제1 내지 제7 마스크 신호들(MS1~MS7)은 로직-로우(L)인 것으로 가정한다.
도 7b에 도시된 바와 같이, 마스크 회로(110)는 도 7a와 마찬가지로 글로벌 입출력 라인(GIO)을 통해 입력 데이터(Din_0~Din_7) 전부를 쓰기 드라이버 및 감지 증폭기(140)으로 전송할 수 있다. 그러나, 마스크 회로(110)는 제0 입력 데이터(Din_0)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL) 비활성화되고, 제1 입력 데이터(Din_1)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL)이 활성화되고, 제2 입력 데이터(Din_2)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL)이 비활성화되고, 제3 입력 데이터(Din_3)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL) 비활성화되고, 제4 입력 데이터(Din_4)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL)이 비활성화되고, 제5 입력 데이터(Din_5)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL)이 비활성화되고, 제6 입력 데이터(Din_6)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL) 비활성화되고, 제7 입력 데이터(Din_7)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL)이 비활성화되도록 컬럼 제어 신호(C_CTRL)를 제어할 수 있다.
제1 입력 데이터(Din_1)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CLS)만 활성화되므로, 제1 입력 데이터(Din_1)는 메모리 셀 어레이(120)에 저장되고, 제0, 제2 내지 제7 입력 데이터(Din_0, Din_2~Din_7)는 메모리 셀 어레이(120)에 저장되지 않을 수 있다.
도 7c에 도시된 바와 같이, 마스크 회로(110)는 글로벌 입출력 라인(GIO)을 통해 제1 입력 데이터(Din_1)만 쓰기 드라이버 및 감지 증폭기(140)로 전송할 수 있다. 마스크 회로(110)는 더미 값을 가진 제0, 제2 내지 제7 입력 데이터(Din_0, Din_2~Din_7)는 글로벌 입출력 라인(GIO)을 통해 쓰기 드라이버 및 감지 증폭기(140)로 전송하지 않을 수 있다.
마스크 회로(110)는 제0 입력 데이터(Din_0)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL) 비활성화되고, 제1 입력 데이터(Din_1)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL)이 활성화되고, 제2 입력 데이터(Din_2)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL)이 비활성화되고, 제3 입력 데이터(Din_3)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL) 비활성화되고, 제4 입력 데이터(Din_4)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL)이 비활성화되고, 제5 입력 데이터(Din_5)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL)이 비활성화되고, 제6 입력 데이터(Din_6)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL) 비활성화되고, 제7 입력 데이터(Din_7)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CSL)이 비활성화되도록 컬럼 제어 신호(C_CTRL)를 제어할 수 있다.
제1 입력 데이터(Din_1)의 컬럼 어드레스에 상응하는 컬럼 선택 라인(CLS)만 활성화되므로, 제1 입력 데이터(Din_1)는 메모리 셀 어레이(120)에 저장되고, 제0, 제2 내지 제7 입력 데이터(Din_0, Din_2~Din_7)는 메모리 셀 어레이(120)에 저장되지 않을 수 있다.
상술된 바와 같이, 부분 쓰기 동작에서, 메모리 장치(100)는 컬럼 선택 라인(CSL)을 제어하여 입력 데이터(Din) 중 일부를 메모리 셀 어레이(120)에 저장하지 않을 수 있다. 이에 따라, 메모리 장치(100)는 제0, 제2 내지 제7 입력 데이터(Din_0, Din_2~Din_7)을 메모리 셀 어레이(120)에 저장하는데 필요한 전력 소모를 감소시킬 수 있다.
도 8은 도 1의 메모리 시스템의 부분 쓰기 동작을 설명하기 위한 도면이다. 도 8을 참조하여, 버스트 길이(BL) 및 복수의 마스크 신호들(MS)과의 관계가 설명된다. 버스트 길이(BL)에 따라 복수의 마스크 신호들(MS) 각각에 대응하는 입력 데이터의 개수가 변경될 수 있다.
일 실시 예에서, 버스트 길이(BL)에 따라 복수의 마스크 신호들(MS)의 개수는 변경될 수 있다. 예를 들어, 버스트 길이(BL)가 4인 경우, 복수의 마스크 신호들(MS)은 제0 내지 제3 마스크 신호들(MS0~MS3)을 포함할 수 있다. 버스트 길이(BL)가 8 또는 16인 경우, 복수의 마스크 신호들(MS) 제0 내지 제7 마스크 신호들(MS0~MS7)을 포함할 수 있다.
일 실시 예에서, 버스트 길이(BL)에 따라 마스크 신호에 대응하는 입력 데이터의 크기는 변경될 수 있다. 예를 들어, 버스트 길이(BL)가 4 또는 8인 경우, 마스크 신호에 대응하는 입력 데이터의 크기는 1개의 버스트 길이 동안 입력되는 데이터 크기에 대응할 수 있다. 버스트 길이가 16인 경우, 마스크 신호에 대응하는 입력 데이터의 크기는 2개의 버스트 길이 동안 입력 되는 데이터 크기에 대응할 수 있다.
버스트 길이가 4인 경우(BL4), 입력 데이터(Din)는 제0 내지 제3 입력 데이터(Din_0~Din_3)를 포함할 수 있다. 입력 데이터(Din)는 제0 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제0 입력 데이터(Din_0), 제1 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제1 입력 데이터(Din_1), 제2 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제2 입력 데이터(Din_2), 및 제3 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제3 입력 데이터(Din_3)를 포함할 수 있다.
제0 마스크 신호(MS0)는 제0 입력 데이터(Din_0)와 대응하고, 제1 마스크 신호(MS1)는 제1 입력 데이터(Din_1)와 대응하고, 제2 마스크 신호(MS2)는 제2 입력 데이터(Din_2)와 대응하고, 제3 마스크 신호(MS3)는 제3 입력 데이터(Din_3)와 대응할 수 있다.
버스트 길이가 8인 경우(BL8), 입력 데이터(Din)는 제0 내지 제7 입력 데이터(Din_0_Din_7)를 포함할 수 있다. 입력 데이터(Din)는 제0 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제0 입력 데이터(Din_0), 제1 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제1 입력 데이터(Din_1), 제2 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제2 입력 데이터(Din_2), 및 제3 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제3 입력 데이터(Din_3), 제4 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제4 입력 데이터(Din_4), 제5 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제5 입력 데이터(Din_5), 제6 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제6 입력 데이터(Din_6), 제7 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제7 입력 데이터(Din_7)를 포함할 수 있다.
제0 마스크 신호(MS0)는 제0 입력 데이터(Din_0)와 대응하고, 제1 마스크 신호(MS1)는 제1 입력 데이터(Din_1)와 대응하고, 제2 마스크 신호(MS2)는 제2 입력 데이터(Din_2)와 대응하고, 제3 마스크 신호(MS3)는 제3 입력 데이터(Din_3)와 대응하고, 제4 마스크 신호(MS4)는 제4 입력 데이터(Din_4)와 대응하고, 제5 마스크 신호(MS5)는 제5 입력 데이터(Din_5)와 대응하고, 제6 마스크 신호(MS6)는 제6 입력 데이터(Din_6)와 대응하고, 제7 마스크 신호(MS7)는 제7 입력 데이터(Din_7)와 대응할 수 있다.
버스트 길이가 16인 경우(BL16), 입력 데이터(Din)는 제0 내지 제15 입력 데이터(Din_0~Din_15)를 포함할 수 있다. 입력 데이터(Din)는 제0 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제0 입력 데이터(Din_0), 제1 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제1 입력 데이터(Din_1), 제2 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제2 입력 데이터(Din_2), 및 제3 버스트 길이 동안 복수의 데이터 라인들(DQ)에 전송되는 제3 입력 데이터(Din_3)를 포함할 수 있다. 나머지 입력 데이터(Din_4~Din_15)는 이와 유사한 구조를 가지므로, 상세한 설명은 생략된다.
제0 마스크 신호(MS0)는 제0 및 제1 입력 데이터(Din_0, Din_1)와 대응하고, 제1 마스크 신호(MS1)는 제2 및 제3 입력 데이터(Din_2, Din_3)와 대응하고, 제2 마스크 신호(MS2)는 제4 및 제5 입력 데이터(Din_4, Din_5)와 대응하고, 제3 마스크 신호(MS3)는 제6 및 제7 입력 데이터(Din_6, Din_7)와 대응하고, 제4 마스크 신호(MS4)는 제8 및 제9 입력 데이터(Din_8, Din_9)와 대응하고, 제5 마스크 신호(MS5)는 제10 및 제11 입력 데이터(Din_10, Din_11)와 대응하고, 제6 마스크 신호(MS6)는 제12 및 제13 입력 데이터(Din_12, Din_13)와 대응하고, 제7 마스크 신호(MS7)는 제14 및 제15 입력 데이터(Din_14, Din_15)와 대응할 수 있다.
상술한 바와 같이, 버스트 길이에 따라, 마스크 신호들의 구성 및 대응하는 입력 데이터의 개수는 변경될 수 있다. 본 개시에서는 버스트 길이가 4, 8, 16인 경우만 설명하였으나, 본 개시의 범위가 이에 한정되는 것은 아니며, 버스트 길이는 증가 또는 감소할 수 있으며, 버스트 길이에 따라 마스크 신호들 각각에 대응하는 입력 데이터의 개수는 변경될 수 있다.
도 9는 본 개시의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 9를 참조하면, 메모리 시스템(1000)은 호스트(1100) 및 메모리 모듈(1200)을 포함할 수 있다. 메모리 모듈(1200)은 RCD(1210)(Register Clock Driver), 제0 내지 제7 메모리 장치들(1220~1227)을 포함할 수 있다. 설명의 편의를 위하여, 앞서 설명된 구성요소들에 대한 상세한 설명은 생략된다.
RCD(1210)는 외부 장치(예를 들어, 호스트 또는 메모리 컨트롤러)로부터 커맨드/어드레스 신호(C/A) 및 클럭 신호(CK)를 수신할 수 있다. RCD(1210)는 수신된 신호들을 기반으로, 커맨드/어드레스 신호(C/A)를 복수의 메모리 장치들(1220~1270)로 전달할 수 있다.
복수의 메모리 장치들(1220~1227) 각각은 대응하는 데이터 스트로브 신호(DQS)를 송수신할 수 있다. 예를 들어, 제0 메모리 장치(1220)는 제0 데이터 스트로브 라인을 통해 제0 데이터 스트로브 신호(DQS0)를 호스트(11)로부터 송수신할 수 있다. 제1 메모리 장치(1221)는 제1 데이터 스트로브 라인을 통해 제1 데이터 스트로브 신호(DQS1)를 호스트(1100)로부터 송수신할 수 있다. 제2 메모리 장치(1222)는 제2 데이터 스트로브 라인을 통해 제2 데이터 스트로브 신호(DQS2)를 호스트(1100)로부터 송수신할 수 있다. 제3 메모리 장치(1223)는 제3 데이터 스트로브 라인을 통해 제3 데이터 스트로브 신호(DQS3)를 호스트(1100)로부터 송수신할 수 있다. 제4 메모리 장치(1224)는 제4 데이터 스트로브 라인을 통해 제4 데이터 스트로브 신호(DQS4)를 호스트(1100)로부터 송수신할 수 있다. 제5 메모리 장치(1225)는 제5 데이터 스트로브 라인을 통해 제5 데이터 스트로브 신호(DQS5)를 호스트(1100)로부터 송수신할 수 있다. 제6 메모리 장치(1226)는 제6 데이터 스트로브 라인을 통해 제6 데이터 스트로브 신호(DQS6)를 호스트(1100)로부터 송수신할 수 있다. 제7 메모리 장치(1227)는 제7 데이터 스트로브 라인을 통해 제7 데이터 스트로브 신호(DQS7)를 호스트(1100)로부터 송수신할 수 있다.
복수의 메모리 장치들(1220~1227) 각각은 대응하는 데이터 라인들을 통해 데이터를 호스트(1100)와 송수신할 수 있다. 복수의 메모리 장치들(1220~1227) 각각은 4 개의 데이터 라인들을 통해 호스트(1100)와 연결되는 것으로 가정한다. 단, 본 개시의 범위에 이에 한정되는 것은 아니며, 복수의 메모리 장치들(1220~1227) 각각과 연결된 데이터 라인들의 개수는 구현 방식에 따라 감소 또는 변경될 수 있다.
예를 들어, 제0 메모리 장치(1220)는 제0 내지 제3 데이터 라인들(DQ0~DQ3)을 통해 호스트(1100)와 데이터를 송수신할 수 있다. 제1 메모리 장치(1221)는 제4 내지 제7 데이터 라인들(DQ4~DQ7)을 통해 호스트(1100)와 데이터를 송수신할 수 있다. 제2 메모리 장치(1222)는 제8 내지 제11 데이터 라인들(DQ8~DQ11)을 통해 호스트(1100)와 데이터를 송수신할 수 있다. 제3 메모리 장치(1223)는 제12 내지 제15 데이터 라인들(DQ12~DQ15)을 통해 호스트(1100)와 데이터를 송수신할 수 있다. 제4 메모리 장치(1224)는 제16 내지 제19 데이터 라인들(DQ16~DQ19)을 통해 호스트(1100)와 데이터를 송수신할 수 있다. 제5 메모리 장치(1225)는 제20 내지 제23 데이터 라인들(DQ20~DQ23)을 통해 호스트(1100)와 데이터를 송수신할 수 있다. 제6 메모리 장치(1226)는 제24 내지 제27 데이터 라인들(DQ24~DQ27)을 통해 호스트(1100)와 데이터를 송수신할 수 있다. 제7 메모리 장치(1227)는 제28 내지 제31 데이터 라인들(DQ28~DQ31)을 통해 호스트(1100)와 데이터를 송수신할 수 있다.
일 실시 예에서, 복수의 메모리 장치들(1220~1227)은 도 1 내지 도 8을 참조하여 설명된 마스크 회로(110)를 포함할 수 있다. 즉, 복수의 메모리 장치들(1220~1227) 각각은 부분 쓰기 동작을 수행할 수 있다.
일 실시 예에서, 도 9에 도시된 메모리 모듈(1100)은 RDIMM(Registered DIMM)의 폼 팩터일 수 있다. 그러나 본 개시의 범위가 이에 한정되는 것은 아니며, 메모리 모듈(1100)은 복수의 메모리 장치들(1220~1227) 각각과 메모리 데이터 라인들을 통해 연결된 복수의 데이터 버퍼들을 더 포함하는 LR-DIMM(Load Reduced Dual In-line Memory Module)의 폼 팩터일 수 있다. 복수의 데이터 버퍼들은 복수의 데이터 라인들(DQ)을 통해 외부 장치(예를 들어, 호스트 또는 메모리 컨트롤러)와 데이터를 송수신할 수 있다
예를 들어, 복수의 메모리 장치들(1220~1227) 각각은 메모리 데이터 라인들을 통해 복수의 데이터 버퍼들과 각각과 연결될 수 있다. 복수의 데이터 버퍼들 각각은 대응하는 데이터 라인들과 연결되고, 데이터 라인들을 통해 외부 장치와 데이터를 송수신할 수 있다. 복수의 데이터 버퍼들 각각은 메모리 데이터 라인들 각각을 통해 대응하는 메모리 장치로 수신한 데이터를 전달할 수 있다.
예를 들어, 제0 메모리 장치(1220)는 제0 데이터 버퍼와 연결되고, 제1 메모리 장치(1221)는 제1 데이터 버퍼와 연결되고, 제2 메모리 장치(1222)는 제2 데이터 버퍼와 연결되고, 제3 메모리 장치(1223)는 제3 데이터 버퍼와 연결되고, 제4 메모리 장치(1224)는 제4 데이터 버퍼와 연결되고, 제5 메모리 장치(1225)는 제5 데이터 버퍼와 연결되고, 제6 메모리 장치(1226)는 제6 데이터 버퍼와 연결되고, 제7 메모리 장치(1227)는 제7 데이터 버퍼와 연결될 수 있다.
도 10은 도 9의 메모리 시스템의 부분 쓰기 동작을 설명하기 위한 도면이다. 버스트 길이(BL)는 8이며, 복수의 메모리 장치들(1220~1227) 각각은 4개의 데이터 라인들(DQ)을 통해 호스트(1100)와 연결되는 것으로 가정한다. 단, 본 개시의 범위가 이에 한정되는 것은 아니며, 버스트 길이(BL) 및 복수의 메모리 장치들 각각에 연결된 데이터 라인들(DQ)의 개수는 변경될 수 있다.
도 9 및 도 10을 참조하면, 메모리 모듈(1100)에 포함된 복수의 메모리 장치들(1220~1227)의 개수는 8이고, 버스트 길이(BL)가 8이고, 복수의 메모리 장치들(1220~1227) 각각과 연결된 데이터 라인들(DQ)의 개수는 4이므로, 메모리 모듈(1100)은 한번의 쓰기 동작을 통해 32B에 대응하는 데이터를 저장할 수 있다. 메모리 모듈(1100)은 부분 쓰기 동작을 수행할 수 있으므로, 니블 단위 또는 바이트 단위로 데이터를 저장할 수 있다. 예를 들어, 도 2b에 도시된 바와 같이, 호스트(1100)는 제3 데이터(DT3)를 메모리 모듈(1100)에 저장할 수 있다.
도 10에 도시된 바와 같이, 제0 바이트 데이터(BD0)는 제0 니블 데이터(ND0) 및 제1 니블 데이터(ND1)를 포함하고, 제1 바이트 데이터(BD1)는 제2 니블 데이터(ND2) 및 제3 니블 데이터(ND3)를 포함하고, 제2 바이트 데이터(BD2)는 제4 니블 데이터(ND4) 및 제5 니블 데이터(ND5)를 포함할 수 있다. 제3 바이트 데이터(BD3)는 제6 니블 데이터(ND6) 및 제7 니블 데이터(ND7)를 포함할 수 있다. 나머지 바이트 데이터들(BD4~BD31)도 이와 유사한 구조를 가지므로, 상세한 설명은 생략된다.
일 실시 예에서, 메모리 모듈(1100)은 제0 버스트 길이(BL0)에서 제0 입력 데이터(Din_0)를 수신하고, 제1 버스트 길이(BL1)에서 제1 입력 데이터(Din_1)를 수신하고, 제2 버스트 길이(BL2)에서 제2 입력 데이터(Din_2)를 수신하고, 제3 버스트 길이(BL3)에서 제3 입력 데이터(Din_3)를 수신하고, 제4 버스트 길이(BL4)에서 제4 입력 데이터(Din_4)를 수신하고, 제5 버스트 길이(BL5)에서 제5 입력 데이터(Din_5)를 수신하고, 제6 버스트 길이(BL6)에서 제6 입력 데이터(Din_6)를 수신하고, 제7 버스트 길이(BL7)에서 제7 입력 데이터(Din_7)를 수신할 수 있다.
상술된 바와 같이, 메모리 장치들(1220~1270) 각각은 메모리 모듈(1200)에 포함된 다른 메모리 장치들과 동일한 커맨드/어드레스 신호(C/A) 및 클럭 신호(CLK)를 수신할 수 있다. 반면에, 메모리 장치들(1220~1270) 각각은 메모리 모듈(1200)에 포함된 다른 메모리 장치들과 서로 상이한 데이터 스트로브 신호(DQS) 및 데이터를 수신할 수 있다.
제0 입력 데이터(Din_0)는 제0 내지 제3 바이트 데이터(BD0~BD3)를 포함하고, 제1 입력 데이터(Din_1)는 제4 내지 제7 바이트 데이터(BD4~BD7)를 포함하고, 제2 입력 데이터(Din_2)는 제8 내지 제11 바이트 데이터(BD8~BD11)를 포함하고, 제3 입력 데이터(Din_3)는 제12 내지 제15 바이트 데이터(BD12~BD15)를 포함하고, 제4 입력 데이터(Din_4)는 제16 내지 제19 바이트 데이터(BD16~BD19)를 포함하고, 제5 입력 데이터(Din_5)는 제20 내지 제23 바이트 데이터(BD20~BD23)를 포함하고, 제6 입력 데이터(Din_6)는 제24 내지 제27 바이트 데이터(BD24~BD27)를 포함하고, 제7 입력 데이터(Din_7)는 제28 내지 제31 바이트 데이터(BD28~BD31)를 포함할 수 있다.
다시 말해서, 제0 입력 데이터(Din_0)는 제0 내지 제7 니블 데이터(ND0~ND7)를 포함하고, 제1 입력 데이터(Din_1)는 제8 내지 제15 니블 데이터(ND8~ND15)를 포함하고, 제2 입력 데이터(Din_2)는 제16 내지 제23 니블 데이터(ND16~ND23)를 포함하고, 제3 입력 데이터(Din_3)는 제24 내지 제31 니블 데이터(ND24~ND31)를 포함하고, 제4 입력 데이터(Din_4)는 제32 내지 제39 니블 데이터(ND32~ND39)를 포함하고, 제5 입력 데이터(Din_5)는 제40 내지 제47 니블 데이터(ND40~ND47)를 포함하고, 제6 입력 데이터(Din_6)는 제48 내지 제55 니블 데이터(ND48~ND55)를 포함하고, 제7 입력 데이터(Din_7)는 제56 내지 제63 니블 데이터(ND56~ND63)를 포함할 수 있다.
입력 데이터(Din)에 포함된 니블 데이터들 각각은 대응하는 메모리 장치들(1220~1227) 각각으로 입력될 수 있다. 제0 버스트 길이(BL0)에서, 제0 니블 데이터(ND0)는 복수의 데이터 라인들(DQ0~DQ3)을 통해 제0 메모리 장치(1220)로 입력되고, 제1 니블 데이터(ND1)는 복수의 데이터 라인들(DQ4~DQ7)을 통해 제1 메모리 장치(1221)로 입력되고, 제2 니블 데이터(ND2)는 복수의 데이터 라인들(DQ8~DQ11)을 통해 제2 메모리 장치(1222)로 입력되고, 제3 니블 데이터(ND3)는 복수의 데이터 라인들(DQ12~DQ15)을 통해 제3 메모리 장치(1223)로 입력되고, 제4 니블 데이터(ND4)는 복수의 데이터 라인들(DQ16~DQ19)을 통해 제4 메모리 장치(1224)로 입력되고, 제5 니블 데이터(ND5)는 복수의 데이터 라인들(DQ20~DQ23)을 통해 제5 메모리 장치(1225)로 입력되고, 제6 니블 데이터(ND6)는 복수의 데이터 라인들(DQ24~DQ28)을 통해 제6 메모리 장치(1226)로 입력되고, 제7 니블 데이터(ND7)는 복수의 데이터 라인들(DQ29~DQ31)을 통해 제7 메모리 장치(1227)로 입력될 수 있다.
제1 버스트 길이(BL1)에서, 제8 니블 데이터(ND8)는 복수의 데이터 라인들(DQ0~DQ3)을 통해 제0 메모리 장치(1220)로 입력되고, 제9 니블 데이터(ND9)는 복수의 데이터 라인들(DQ4~DQ7)을 통해 제1 메모리 장치(1221)로 입력되고, 제10 니블 데이터(ND10)는 복수의 데이터 라인들(DQ8~DQ11)을 통해 제2 메모리 장치(1222)로 입력되고, 제11 니블 데이터(ND11)는 복수의 데이터 라인들(DQ12~DQ15)을 통해 제3 메모리 장치(1223)로 입력되고, 제12 니블 데이터(ND12)는 복수의 데이터 라인들(DQ16~DQ19)을 통해 제4 메모리 장치(1224)로 입력되고, 제13 니블 데이터(ND13)는 복수의 데이터 라인들(DQ20~DQ23)을 통해 제5 메모리 장치(1225)로 입력되고, 제14 니블 데이터(ND6)는 복수의 데이터 라인들(DQ24~DQ28)을 통해 제6 메모리 장치(1226)로 입력되고, 제15 니블 데이터(ND15)는 복수의 데이터 라인들(DQ29~DQ31)을 통해 제7 메모리 장치(1227)로 입력될 수 있다. 나머지 니블 데이터(ND16~ND63)는 이와 유사하므로, 상세한 설명은 생략된다.
즉, 제0 메모리 장치(1220)는 니블 데이터(ND0, ND8, ND16, ND24, ND32, ND40, ND48, ND56)을 수신하고, 제1 메모리 장치(1221)는 니블 데이터(ND1, ND9, ND17, ND25, ND33, ND41, ND49, ND57)을 수신하고, 제2 메모리 장치(1222)는 니블 데이터(ND2, ND10, ND18, ND26, ND34, ND42, ND50, ND58)을 수신하고, 제3 메모리 장치(1223)는 니블 데이터(ND3, ND11, ND19, ND27, ND35, ND43, ND51, ND59)을 수신하고, 제4 메모리 장치(1224)는 니블 데이터(ND4, ND12, ND20, ND28, ND36, ND44, ND52, ND60)을 수신하고, 제5 메모리 장치(1225)는 니블 데이터(ND5, ND13, ND21, ND29, ND37, ND45, ND53, ND61)을 수신하고, 제6 메모리 장치(1226)는 니블 데이터(ND6, ND14, ND22, ND30, ND38, ND46, ND54, ND62)을 수신하고, 제7 메모리 장치(1227)는 니블 데이터(ND7, ND15, ND23, ND31, ND39, ND47, ND55, ND63)을 수신할 수 있다.
제2 및 제3 니블 데이터(ND2, ND3)는 유효하고, 나머지 니블 데이터(ND0, ND1, ND4~ND63)은 더미 데이터이므로, 제2 니블 데이터(ND2)를 수신하는 제2 메모리 장치(1222) 및 제3 니블 데이터(ND3)를 수신하는 데3 메모리 장치(1223)는 타겟 메모리 장치이고, 나머지 메모리 장치들(1220, 1221, 1224, 1225, 1226, 1227)은 논-타겟(non-target) 메모리 장치일 수 있다.
예를 들어, 타겟 메모리 장치는 입력 데이터 중 전부 또는 일부가 유효한 데이터를 수신하는 메모리 장치를 가리키고, 논-타겟 메모리 장치는 더미 데이터만을 수신하는 메모리 장치를 가리킬 수 있다. 또는 타겟 메모리 장치는 토글하는 데이터 스트로브 신호(DQS)를 수신하는 메모리 장치를 가리키고, 논- 타겟 메모리 장치는 로직-하이(H)를 유지하는 데이터 스트로브 신호(DQS)를 수신하는 메모리 장치를 가리킬 수 있다.
일 실시 예에서, 호스트(1100)는 타겟 메모리 장치로 출력하는 데이터 스트로브 신호(DQS)를 토글시키고, 논-타겟 메모리 장치로 출력하는 데이터 스트로브 신호(DQS)를 토글시키지 않을 수 있다. 호스트(1100)는 논-타겟 메모리 장치로 출력하는 데이터 스트로브 신호(DQS)를 로직-하이(H)로 설정할 수 있다.
상술된 바와 같이, 본 개시의 실시 예에 따른 메모리 시스템(1000)은 부분 쓰기 동작을 수행할 수 있다. 메모리 장치(1000)는 복수의 마스크 신호들(MS0~MS7)을, 데이터 스트로브 신호(DQS)를 통해 입력 데이터의 유효 여부를 판별할 수 있다.
도 11a는 도 9의 메모리 장치들 각각의 부분 쓰기 동작을 설명하기 위한 순서도이다. 도 9 및 도 11a를 참조하면, S210 단계에서, 메모리 장치들(1220~1227) 각각은 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들(MS)을 포함하는 부분 쓰기 커맨드를 수신할 수 있다. S210 단계는 도 5의 S110 단계의 동작과 유사하므로, 이에 대한 상세한 설명은 생략된다.
S220 단계에서, 메모리 장치들(1220~1270) 각각은 토글하는 데이터 스트로브 신호(DQS)에 대한 수신 여부를 판별할 수 있다. 메모리 장치들(1220~1270) 각각은 토글하는 데이터 스트로브 신호(DQS)를 수신하는 경우 S230 단계를 진행하고, 토글하는 데이터 스트로브 신호(DQS)를 수신하지 않는 경우 S260 단계를 진행할 수 있다. 즉, 토글하는 데이터 스트로브 신호(DQS)를 수신하는 타겟 메모리 장치는 S230 단계를 진행하고, 로직-하이(H)로 유지되는 데이터 스트로브 신호(DQS)를 수신하는 논-타겟 메모리 장치는 S260 단계를 진행할 수 있다.
S230 단계에서, 타겟 메모리 장치들 각각은 복수의 데이터 라인들(DQ)을 통해 입력 데이터(Din)를 수신할 수 있다. S240 단계에서, 타겟 메모리 장치들 각각은 복수의 마스크 신호들(MS)을 기반으로 컬럼 선택 라인을 활성화시킬 수 있다. S240 단계는 도 5의 S130 단계의 동작과 유사하므로, 이에 대한 상세한 설명은 생략된다.
S250 단계에서, 타겟 메모리 장치들 각각은 컬럼 선택 라인(CSL)을 기반으로 데이터를 복수의 메모리 셀에 저장할 수 있다. S250 단계는 도 5의 S140 단계의 동작과 유사하므로, 이에 대한 상세한 설명은 생략된다.
S260 단계에서, 논-타겟 메모리 장치들 각각은 복수의 데이터 라인들(DQ)을 통해 입력 데이터(Din)를 수신할 수 있다. 예를 들어, 논-타겟 메모리 장치들 각각은 복수의 데이터 라인들(DQ)을 통해 더미 데이터를 수신할 수 있다. 논-타겟 메모리 장치들 각각은 S250 단계 및 S260 단계를 수행하지 않을 수 있다.
일 실시 예에서, 논-타겟 메모리 장치들 각각은 더미 데이터만을 수신하므로, 컬럼 선택 라인을 비활성화 시킬 수 있다. 또는 논-타겟 메모리 장치들 각각은 컬럼 선택 라인의 비활성화 상태를 유지할 수 있다. 논-타겟 메모리 장치들 각각은 수신한 입력 데이터(즉, 더미 데이터)를 복수의 메모리 셀에 저장하지 않을 수 있다.
도 11b는 도 9의 메모리 시스템의 부분 쓰기 동작을 보여주는 타이밍도이다. 제1 바이트 데이터(BD1)만 유효한 데이터 값을 가지며, 나머지 바이트 데이터들(BD0, BD2~BD31)은 더미 값을 가질 수 있다. 즉, 호스트(1100)는 제1 바이트 데이터(BD1)에 대한 부분 쓰기 동작을 수행할 수 있다. 설명의 편의를 위하여, 앞서 설명된 요소들에 대한 상세한 설명은 생략된다.
메모리 시스템(1000)은 도 11b에 도시된 타이밍도를 기반으로 부분 쓰기 동작을 수행할 수 있다. 호스트(1100)는 제1 시점(t1)에서, 커맨드 및 어드레스를 메모리 모듈(1200)로 전송할 수 있다. 호스트(1100)는 커맨드 라인을 통해 부분 쓰기 커맨드(PWR)를 전송할 수 있다. 호스트(1100)는 뱅크 그룹 어드레스 라인을 통해 뱅크 그룹 어드레스(BG)를 전송할 수 있다. 호스트(1100)는 어드레스 라인을 통해 뱅크 어드레스(BA), 컬럼 어드레스(CA), 부분 쓰기 활성화 신호(PWE), 및 복수의 마스크 신호들(MS)을 전송할 수 있다.
일 실시 예에서, 부분 쓰기 커맨드 및 어드레스가 전송된 시점(t1)으로부터 쓰기 레이턴시(WL)가 경과한 이후에, 입력 데이터(Din)는 데이터 라인들(DQ0~DQ31)을 통해 전송될 수 있다.
일 실시 예에서, 메모리 모듈(1200)은 커맨드/어드레스 입력 구간(T1) 동안 호스트(1100)로부터 부분 쓰기 커맨드(PWR) 및 어드레스를 수신할 수 있다. 부분 쓰기 커맨드(PWR) 및 어드레스가 전송된 시점(t1)으로부터 쓰기 레이턴시(WL)가 경과한 이후에, 메모리 모듈(1200)은 데이터 입력 구간(T2) 동안 호스트(1100)로부터 입력 데이터를 수신할 수 있다. 부분 쓰기 커맨드(PWR)에 대한 커맨드 진리표는 앞서 설명하였으므로, 이에 대한 상세한 설명은 생략된다.
일 실시 예에서, 입력 데이터 중 제1 바이트 데이터(BD1)는 유효한 값을 가지며, 나머지 바이트 데이터들(BD0, BD2~BD31)은 더미 값을 가질 수 있다. 제0 입력 데이터(Din_0) 중 일부는 유효한 값을 가질 수 있다. 제1 내지 제7 입력 데이터(Din_1~Din_7)는 전부 더미 값을 가질 수 있다. 제0 입력 데이터(Din_0) 중 제2 및 제3 니블 데이터(ND2, ND3)는 유효한 값을 가질 수 있다. 제0 입력 데이터(Din_0) 중 제0, 제1, 제4, 제5, 제6, 제7 니블 데이터(ND0, ND1, ND4, ND5, ND6, ND7)는 더미 값을 가질 수 있다.
제1 바이트 데이터(BD1)는 제0 입력 데이터(Din_0)에 포함되어 있으므로, 제1 시점(t1)에서 호스트(1100)는 부분 쓰기 활성화 신호(PWE)를 로직-하이(H)로 설정하고, 제0 마스크 신호(MS0)는 로직-로우(L)로 설정하고, 제1 내지 제7 마스크 신호들(MS1~MS7)은 로직-하이(H)로 설정할 수 있다.
제0 버스트 길이(BL0)에서, 메모리 모듈(1100)은 유효한 값을 포함하는 입력 데이터(예를 들어, 제0 입력 데이터(Din_0))를 수신할 수 있다. 제1 내지 제7 버스트 길이(BL1~BL8)에서, 메모리 모듈(1100)은 더미 값을 갖는 입력 데이터(예를 들어, 제1 내지 제7 입력 데이터(Din_1~Din_7))를 수신할 수 있다.
제0 마스크 신호(MS0)는 비활성화 상태를 가리키는 로직-로우(L)이므로, 메모리 모듈(1100)은 제0 마스크 신호(MS0)에 대응하는 입력 데이터(예를 들어, 제0 입력 데이터(Din_0)) 중 전부 또는 일부를 메모리 셀에 저장할 수 있다. 제1 내지 제7 마스크 신호들(MS1~MS7)은 활성화 상태를 가리키는 로직-로우(L)이므로, 메모리 모듈(1100)은 제1 내지 제7 마스크 신호들(MS1~MS7)에 대응하는 입력 데이터(예를 들어, 제1 내지 제7 입력 데이터(Din_1~Din_7))를 메모리 셀에 저장하지 않을 수 있다.
제0 마스크 신호(MS)가 로직-로우(L)임에도 불구하고, 복수의 메모리 장치들(1220~1227) 모두에 유효한 데이터가 입력되지 않을 수 있다. 즉, 마스크 신호가 비활성화 상태를 가리키더라도, 마스크 신호에 대응하는 입력 데이터 중 일부는 더미 값을 가질 수 있다. 즉, 제0 입력 데이터(Din_0)는 더미 데이터를 포함할 수 있다. 이에 따라, 1개의 버스트 길이 동안 메모리 모듈(1100)로 입력되는 데이터(즉, 버스트 데이터)(예를 들어, 제0 입력 데이터(Din_0)) 중 유효 여부는 데이터 스트로브 신호(DQS)를 통해 판별될 수 있다.
제0 입력 데이터(Din_0) 중 제2 및 제3 니블 데이터(ND2, ND3)는 유효한 값을 갖고, 제0 입력 데이터(Din_0) 중 나머지 니블 데이터(ND0, ND1, ND4, ND5, ND6, ND7)는 더미 값을 가지므로, 제2 및 제3 메모리 장치들(1222, 1223)은 유효한 데이터를 수신하고, 나머지 메모리 장치들(1220, 1221, 1224, 1225, 1226, 1227)은 더미 데이터를 수신할 수 있다.
일 실시 예에서, 호스트(1100)는 제2 및 제3 데이터 스트로브 신호들(DQS2, DQS3)을 토글시킬 수 있다. 호스트(1100) 제2 및 제3 데이터 스트로브 신호들(DQS2, DQS3)을 제2 시점(t2)으로부터 쓰기 프리앰블 레이턴시(tWPRE) 이전에 토글시키기 시작할 수 있다. 호스트(1100)는 제2 및 제3 데이터 스트로브 신호들(DQS2, DQS3)을 마지막 입력 데이터(예를 들어, 제7 입력 데이터(Din_7))가 전송된 시점(t3)으로부터 쓰기 포스트앰블 레이턴시(tWPST) 경과한 이후까지 토글시킬 수 있다. 즉, 제2 및 제3 데이터 스트로브 신호들(DQS2, DQS3)은 스트로브 토글 구간(T3)동안 토글할 수 있다.
예를 들어, 쓰기 프리앰블 레이턴시(tWPRE)는 모드 레지스터 설정을 통해 설정될 수 있다. 예를 들어, 쓰기 프리앰블 레이턴시(tWPRE)는 모드 레지스터 설정을 통해 1tck 또는 2tck일 수 있다. 쓰기 포스트앰블 레이턴시(tWPST)를 미리 결정된 값일 수 있다. 예를 들어, 쓰기 포스트앰블 레이턴시(tWPST)는 0.5tck일 수 있다.
호스트(1100)는 제0, 제1, 제4, 제5, 제6, 및 제7 데이터 스트로브 신호들(DQS0, DQS1, DQS4, DQS5, DQS6, DQS7)을 스트로브 토글 구간(T3)동안 토글 시키지 않을 수 있다. 즉, 호스트(1100)는 제0, 제1, 제4, 제5, 제6, 및 제7 데이터 스트로브 신호들(DQS0, DQS1, DQS4, DQS5, DQS6, DQS7)을 스트로브 토글 구간(T3)동안 로직-하이(H)로 설정할 수 있다.
상술된 바와 같이, 호스트(1100)는 타겟 메모리 장치들(예를 들어, 1222, 1223)로 출력하는 데이터 스트로브 신호(DQS)를 스트로브 토글 구간(T3)동안 토글시키고, 복수의 데이터 라인들(DQ)을 통해 데이터를 출력할 수 있다. 호스트(1100)는 논-타겟 메모리 장치들(예를 들어, 1220, 1221, 1224, 1225, 1226, 1227)로 출력하는 데이터 스트로브 신호(DQS)를 스트로브 토글 구간(T3) 동안 로직-하이(H)로 설정하고, 복수의 데이터 라인들(DQ)을 통해 더미 데이터를 출력할 수 있다.
복수의 메모리 장치들(1220~1227) 각각은 부분 쓰기 활성화 신호(PWE), 복수의 마스크 신호들(MS), 및 데이터 스트로브 신호(DQS)를 통해 부분 쓰기 동작을 수행할 수 있다. 복수의 메모리 장치들(1220~1227) 각각은 부분 쓰기 활성화 신호(PWE)가 로직-하이(H)이므로, 부분 쓰기 커맨드(PWR)를 식별할 수 있다.
복수의 메모리 장치들(1220~1227) 각각은 제1 내지 제7 마스크 신호들(MS1~MS7)이 로직-하이(H)이므로 제1 내지 제7 입력 데이터(Din_1~Din_7)가 더미 데이터임을 식별할 수 있다. 복수의 메모리 장치들(1220~1227) 각각은 제1 내지 제7 입력 데이터(Din_1~Din_7)에 대응하는 컬럼 선택 라인을 비활성화시킬 수 있다. 복수의 메모리 장치들(1220~1227) 각각은 제1 내지 제7 입력 데이터(Din_1~Din_7)를 메모리 셀에 저장하지 않을 수 있다.
복수의 메모리 장치들(1220~1227) 각각은 토글하는 데이터 스트로브 신호(DQS)에 대한 수신 여부를 판별할 수 있다. 복수의 메모리 장치들(1220~1227) 각각은 스트로브 토글 구간(T3) 동안 대응하는 데이터 스트로브 신호(DQS)가 토글하는지 여부를 판별할 수 있다. 복수의 메모리 장치들(1220~1227) 각각은 스트로브 토글 구간(T3) 동안 데이터 스트로브 신호(DQS)가 토글하는 경우, 입력 데이터 중 전부 또는 일부는 유효데이터임을 판별할 수 있다. 복수의 메모리 장치들(1220~1227) 각각은 스트로브 토글 구간(T3) 동안 데이터 스트로브 신호(DQS)가 로직-하이(H)인 경우, 입력 데이터 전부가 더미 데이터임을 판별할 수 있다.
예를 들어, 타겟 메모리 장치들(1222, 1223)은 스트로브 토글 구간(T3) 동안 데이터 스트로브 신호(DQS)가 토글하는 것을 판별할 수 있다. 제2 메모리 장치(1222)는 제2 데이터 스트로브 신호(DQS2)가 스트로브 토글 구간(T3) 동안 토글하고, 제0 마스크 신호(MS)가 비활성화 상태를 가리키므로, 제2 니블 데이터(ND2)를 메모리 셀에 저장할 수 있다. 제3 메모리 장치(1223)는 제3 데이터 스트로브 신호(DQS3)가 스트로브 토글 구간(T3) 동안 토글하고, 제0 마스크 신호(MS)가 비활성화 상태를 가리키므로, 제3 니블 데이터(ND3)를 메모리 셀에 저장할 수 있다.
논-타겟 메모리 장치들(1220, 1221, 1224~1227)은 스트로브 토글 구간(T3) 동안 데이터 스트로브 신호(DQS)가 로직-하이(H)를 유지하는 것을 판별할 수 있다. 논-타겟 메모리 장치들(1220, 1221, 1224~1227)은 스트로브 토글 구간(T3) 동안, 대응하는 데이터 스트로브 신호들(DQS0, DQS1, DQS4~DQS7) 각각이 로직-하이(H)를 유지하므로, 입력 데이터 전부가 더미 데이터임을 판별할 수 있다. 논-타겟 메모리 장치들(1220, 1221, 1224~1227)은 제0 버스트 길이(BL0) 동안 입력되는 입력 데이터를 메모리 셀에 저장하지 않을 수 있다. 논-타겟 메모리 장치들(1220, 1221, 1224~1227)은 입력 데이터 전부를 메모리 셀에 저장하지 않을 수 있다.
도 12a는 도 9의 메모리 장치들 각각의 부분 쓰기 동작을 설명하기 위한 순서도이다. 도 9 및 도 12a를 참조하면, S310 단계에서, 메모리 장치들(1220~1227) 각각은 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들(MS)을 포함하는 부분 쓰기 커맨드(PWR)를 수신할 수 있다. S310 단계는 도 11a의 S210 단계의 동작과 유사하므로, 이에 대한 상세한 설명은 생략된다.
S320 단계에서, 메모리 장치들(1220~1270) 각각은 토글하는 데이터 스트로브 신호(DQS)를 수신 여부를 판별할 수 있다. 메모리 장치들(1220~1270) 각각은 토글하는 데이터 스트로브 신호(DQS)를 수신하는 경우 S330 단계를 진행하고, 토글하는 데이터 스트로브 신호(DQS)를 수신하지 않는 경우 S330 단계 내지 S350 단계를 진행하지 않을 수 있다. 즉, 토글하는 데이터 스트로브 신호(DQS)를 수신하는 타겟 메모리 장치는 S330 단계를 진행하고, 로직-하이(H)로 유지되는 데이터 스트로브 신호(DQS)를 수신하는 논-타겟 메모리 장치는 S330 단계 내지 S350 단계를 진행하지 않을 수 있다.
S330 단계 내지 S350 단계는 도 11a의 S230 단계 내지 S250 단계와 유사하므로, 이에 대한 상세한 설명은 생략된다. 도 11a와 비교하여, 논-타겟 메모리 장치들 각각은 복수의 데이터 라인들(DQ)을 통해 입력 데이터(Din)를 수신하지 않을 수 있다.
도 12b는 도 9의 메모리 시스템의 부분 쓰기 동작을 보여주는 타이밍도이다. 호스트(1100)는 논-타겟 메모리 장치들(1220, 1221, 1224, 1225, 1226, 1227)로 출력하는 데이터 스트로브 신호(DQS)를 스트로브 토글 구간(T3) 동안 로직-하이(H)로 설정하고, 데이터 라인들(DQ)을 통해 더미 데이터도 출력하지 않을 수 있다. 논-타겟 메모리 장치(1220, 1221, 1224, 1225, 1226, 1227)는 커맨드/어드레스 입력 구간(T1) 동안 부분 쓰기 커맨드(PWR) 및 어드레스를 수신하고, 데이터 입력 구간(T2) 동안 입력 데이터를 수신하지 않고, 스트로브 토글 구간(T3) 동안 로직-하이(H) 유지되는 데이터 스트로브 신호(DQS)를 수신할 수 있다.
호스트(1100)는 도 11b와 마찬가지로, 타겟 메모리 장치들(1222, 1223)로 커맨드/어드레스 입력 구간(T1) 동안 부분 쓰기 커맨드(PWR) 및 어드레스를 출력하고, 데이터 입력 구간(T2) 동안 대응하는 니블 데이터(ND2, ND3) 각각을 출력하고, 스트로브 토글 구간(T3) 동안 토글하는 데이터 스트로브 신호(DQS2, DQS3) 각각을 출력할 수 있다.
도 13a 및 도 13b는 본 개시에 따른 메모리 시스템의 부분 쓰기 동작을 보여주는 타이밍도이다. 도 9 및 도 13a를 참조하면, 호스트(1100)는 쓰기 커맨드(WR) 및 데이터 스트로브 신호(DQS)를 통해 부분 쓰기 동작을 수행할 수 있다. 호스트(1100)는 제0 내지 제7 버스트 길이(BL0~BL7) 동안 제2 및 제3 메모리 장치들로(1222, 1223) 유효한 데이터를 출력하고, 나머지 메모리 장치들(1220, 1221, 1224, 1225, 1226, 1227)로 더미 데이터를 출력하는 것으로 가정한다.
호스트(1100)는 커맨드/어드레스 입력 구간(T1) 동안, 표 1 및 표 2에 도시된 바와 같이, 커맨드/어드레스 신호(C/A)를 제어하여, 쓰기 커맨드(WR)를 메모리 모듈(1200)로 출력할 수 있다.
호스트(11)는 스트로브 토글 구간(T3), 타겟 메모리 장치(1222, 1223)로 토글하는 데이터 스트로브 신호(DQS)를 출력할 수 있다. 호스트(11)는 스트로브 토글 구간(T3) 동안, 논-타겟 메모리 장치(1220, 1221, 1224, 1225, 1226, 1227)로 로직-하이(H)로 유지되는 데이터 스트로브 신호(DQS)를 출력할 수 있다.
호스트(11)는 데이터 입력 구간(T2) 동안, 타겟 메모리 장치(1222, 1223)로 유효한 데이터를 출력할 수 있다. 호스트(11)는 데이터 입력 구간(T2) 동안, 논-타겟 메모리 장치(1220, 1221, 1224, 1225, 1226, 1227)로 더미 데이터를 출력할 수 있다.
타겟 메모리 장치(1222, 1223)는 쓰기 커맨드(WR)에 응답하여, 수신한 입력 데이터를 메모리 셀에 저장할 수 있다. 논-타겟 메모리 장치(1220, 1221, 1224, 1225, 1226, 1227)는 스트로브 토글 구간(T3) 동안, 로직-하이(H)로 유지되는 데이터 스트로브 신호(DQS)를 수신하였으므로, 입력 데이터 전부가 더미 데이터임을 판별할 수 있다. 논-타겟 메모리 장치(1220, 1221, 1224, 1225, 1226, 1227)는 입력 데이터 전부가 더미 데이터임을 판별하였으므로, 수신한 입력 데이터 전부를 메모리 셀 어레이에 저장하지 않을 수 있다.
도 9 및 도 13b를 참조하면, 메모리 시스템(1100)은 부분 쓰기 커맨드(PWR), 데이터 스트로브 신호(DQS), 및 데이터 마스크 신호(DM_n)를 통해 부분 쓰기 동작을 수행할 수 있다. 데이터 마스크 신호(DM_n)를 사용하므로, 복수의 메모리 장치들(1220~1227)은 X8 메모리 장치로 가정한다. 메모리 시스템(1100)은 데이터 마스크 신호(DM_n) 및 부분 쓰기 커맨드를 동시에 사용하여, 니블 단위로 부분 쓰기 동작을 수행할 수 있다.
일 실시 예에서, 제0 메모리 장치(1220)는 제0 내지 제7 데이터 라인들(DQ0~DQ7)을 통해 호스트(1100)와 데이터를 송수신할 수 있다. 제1 메모리 장치(1221)는 제8 내지 제15 데이터 라인들(DQ8~DQ15)을 통해 호스트(1100)와 데이터를 송수신할 수 있다. 제2 메모리 장치(1222)는 제16 내지 제23 데이터 라인들(DQ16~DQ23)을 통해 호스트(1100)와 데이터를 송수신할 수 있다. 제3 메모리 장치(1223)는 제24 내지 제31 데이터 라인들(DQ24~DQ31)을 통해 호스트(1100)와 데이터를 송수신할 수 있다. 제4 메모리 장치(1224)는 제32 내지 제39 데이터 라인들(DQ32~DQ39)을 통해 호스트(1100)와 데이터를 송수신할 수 있다. 제5 메모리 장치(1225)는 제40 내지 제47 데이터 라인들(DQ40~DQ47)을 통해 호스트(1100)와 데이터를 송수신할 수 있다. 제6 메모리 장치(1226)는 제48 내지 제55 데이터 라인들(DQ48~DQ55)을 통해 호스트(1100)와 데이터를 송수신할 수 있다. 제7 메모리 장치(1227)는 제56 내지 제63 데이터 라인들(DQ56~DQ63)을 통해 호스트(1100)와 데이터를 송수신할 수 있다.
일 실시 예에서, 제0 메모리 장치(1220)는 제0 데이터 마스크 라인을 통해 제0 데이터 마스크 신호(DM_n0)를 호스트(1100)로부터 수신하고, 제1 메모리 장치(1221)는 제1 데이터 마스크 라인을 통해 제1 데이터 마스크 신호(DM_n1)를 호스트(1100)로부터 수신하고, 제2 메모리 장치(1222)는 제2 데이터 마스크 라인을 통해 제2 데이터 마스크 신호(DM_n2)를 호스트(1100)로부터 수신하고, 제3 메모리 장치(1223)는 제3 데이터 마스크 라인을 통해 제3 데이터 마스크 신호(DM_n3)를 호스트(1100)로부터 수신하고, 제4 메모리 장치(1224)는 제4 데이터 마스크 라인을 통해 제4 데이터 마스크 신호(DM_n4)를 호스트(1100)로부터 수신하고, 제5 메모리 장치(1225)는 제5 데이터 마스크 라인을 통해 제5 데이터 마스크 신호(DM_n5)를 호스트(1100)로부터 수신하고, 제6 메모리 장치(1226)는 제6 데이터 마스크 라인을 통해 제6 데이터 마스크 신호(DM_n6)를 호스트(1100)로부터 수신하고, 제7 메모리 장치(1227)는 제7 데이터 마스크 라인을 통해 제7 데이터 마스크 신호(DM_n7)를 호스트(1100)로부터 수신할 수 있다.
일 실시 예에서, 호스트(1100)는 부분 쓰기 커맨드(PWR) 및 데이터 마스크 신호들(DM_n)을 사용하여, 니블 단위에 부분 쓰기 동작을 수행할 수 있다. 예를 들어, 호스트(1100)는 커맨드/어드레스 입력 구간(T1) 동안, 표 3 및 표 4에 도시된 바와 같이, 커맨드/어드레스 신호(C/A)를 제어하여, 부분 쓰기 커맨드(PWR)를 메모리 모듈(1200)로 출력할 수 있다. 호스트(1100)는 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들(MS)을 메모리 모듈(1200)로 전송할 수 있다.
일 실시 예에서, 복수의 마스크 신호들(MS) 각각은 제0 내지 제3 데이터 라인들(DQ0~DQ3), 제8 내지 제11 데이터 라인들(DQ8~DQ11), 제16 내지 제19 데이터 라인들(DQ16~DQ19), 제24 내지 제27 데이터 라인들(DQ24~DQ27), 제32 내지 제35 데이터 라인들(DQ32~DQ35), 제40 내지 제43 데이터 라인들(DQ40~DQ43), 제48 내지 제51 데이터 라인들(DQ48~DQ51), 제56 내지 제59 데이터 라인들(DQ56~DQ59)을 통해 입력되는 데이터에 대한 마스킹 여부를 가리킬 수 있다.
데이터 마스크 신호들(DM_n) 각각은 제4 내지 제7 데이터 라인들(DQ4~DQ7), 제12 내지 제15 데이터 라인들(DQ12~DQ15), 제20 내지 제23 데이터 라인들(DQ20~DQ23), 제28 내지 제31 데이터 라인들(DQ28~DQ31), 제36 내지 제39 데이터 라인들(DQ36~DQ39), 제44 내지 제47 데이터 라인들(DQ44~DQ47), 제52 내지 제55 데이터 라인들(DQ52~DQ55), 제60 내지 제63 데이터 라인들(DQ60~DQ63)을 통해 입력되는 데이터에 대한 마스킹 여부를 가리킬 수 있다.
도 11b의 복수의 마스크 신호들(MS) 각각은 1개의 버스트 길이 내에서, 메모리 장치들 각각으로 입력되는 데이터 전부에 대한 마스킹 여부를 가리킬 수 있다. 예를 들어, 제0 메모리 장치(1220)를 기준으로, 제0 마스크 신호(MS)는 제0 버스트 길이(BL0) 동안 제0 내지 제3 데이터 라인들(DQ0~DQ3)을 통해 입력되는 제0 니블 데이터(ND0)에 대한 마스킹 여부를 가리킬 수 있다.
반면에, 도 13b의 복수의 마스크 신호들(MS) 각각은 1개의 버스트 길이 내에서, 메모리 장치들 각각으로 입력되는 데이터 일부에 대한 마스킹 여부를 가리킬 수 있다. 예를 들어, 제0 메모리 장치(1220)를 기준으로, 제0 마스크 신호(MS)는 제0 버스트 길이(BL0) 동안 제0 내지 제3 데이터 라인들(DQ0~DQ3)을 통해 입력되는 제0 니블 데이터(ND0)에 대한 마스킹 여부를 가리킬 수 있다. 제0 버스트 길이(BL0) 동안 입력되는 제0 데이터 마스크 신호(DM_0n)는 제0 버스트 길이(BL0) 동안 제4 내지 제7 데이터 라인들(DQ4~DQ7)을 통해 입력되는 제1 니블 데이터(ND1)에 대한 마스킹 여부를 가리킬 수 있다.
메모리 시스템(1000)은 데이터 마스크 신호들(DM_n)만 사용한다면, 바이트 단위로 부분 쓰기 동작을 수행할 수 있다. 본 개시의 실시 예에 따른 메모리 시스템(1000)은 데이터 마스크 신호들(DM_n), 및 부분 쓰기 커맨드(PWR)를 통해 니블 단위로 부분 쓰기 동작을 수행할 수 있다.
호스트(1100)는 도 11b와 마찬가지로 논-타겟 메모리 장치들(1220, 1221, 1224, 1225, 1226, 1227)로 스트로브 토글 구간(T3) 동안 대응하는 데이터 스트로브 신호들을 로직-하이(H)로 설정할 수 있다.
도 14는 본 개시에 따른 메모리 장치가 적용된 컴퓨팅 시스템(2000)을 예시적으로 보여주는 블록도이다. 도 14를 참조하면, 컴퓨팅 시스템(2000)은 컴퓨터, 휴대용 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 서버 컴퓨터, 넷-북(net-book), PDA, 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), 디지털 카메라(digital camera), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나를 포함할 수 있다.
컴퓨팅 시스템(2000)은 프로세서(2100), 메모리 모듈(2200), 칩셋(2300), GPU(또는 그래픽 모듈)(2400), 입출력 장치(2500), 및 스토리지 장치(2600)를 포함한다. 프로세서(2100)는 컴퓨팅 시스템(2000)의 제반 동작을 제어할 수 있다. 프로세서(2100)는 컴퓨팅 시스템(2000)에서 수행되는 다양한 연산을 수행할 수 있다.
메모리 모듈(2200)은 프로세서(2100)와 직접적으로 연결될 수 있다. 예를 들어, 메모리 모듈(2200)은 듀얼 인-라인 메모리 모듈(DIMM, Dual In-line Memory Module) 형태를 가질 수 있고, 메모리 모듈(2200)은 프로세서(2100)와 직접적으로 연결된 DIMM 소켓에 장착되어 프로세서(2100)와 통신할 수 있다. 예시적으로, 메모리 모듈(2200)은 도 1 내지 도 8을 참조하여 설명된 메모리 장치를 포함할 수 있다. 메모리 모듈(2200)은 도 9 내지 도 13을 참조하여 설명된 메모리 모듈로서, 부분 쓰기 동작을 수행할 수 있다.
칩셋(2300)은 프로세서(2100)와 전기적으로 연결되고, 프로세서(2100)의 제어에 따라 컴퓨팅 시스템(2000)의 하드웨어를 제어할 수 있다. 예를 들어, 칩셋(2300)은 주요 버스들을 통해 GPU(2400), 입출력 장치(2500), 및 스토리지 장치(2600) 각각과 연결되고, 주요 버스들에 대한 브릿지 역할을 수행할 수 있다.
GPU(2400)는 컴퓨팅 시스템(2000)의 영상 데이터를 출력하기 위한 일련의 연산 동작을 수행할 수 있다. 예시적으로, GPU(2400)는 시스템-온-칩 형태로 프로세서(2100) 내에 설정될 수 있다. 예시적으로, GPU(2400)는 도 1 내지 도 13을 참조하여 설명된 메모리 장치 또는 메모리 모듈을 포함할 수 있다.
입출력 장치(2500)는 사용자 시스템(2000)으로 데이터 또는 명령어를 입력하거나 또는 외부로 데이터를 출력하는 다양한 장치들을 포함한다. 스토리지 장치(2600)는 컴퓨팅 시스템(2000)의 대용량 저장 매체로서 사용될 수 있다. 스토리지 장치(2600)는 하드 디스크 드라이브, SSD, 메모리 카드, 메모리 스틱 등과 같은 대용량 저장 매체들을 포함할 수 있다.
도 15는 본 개시의 실시 예에 따른 스토리지 시스템을 예시적으로 보여주는 블록도이다. 도 1을 참조하면, 스토리지 시스템(3000)은 호스트(3100) 및 스토리지 장치(3200)를 포함할 수 있다. 일 실시 예에서, 스토리지 시스템(3000)은 개인용 컴퓨터, 랩탑, 서버, 워크스테이션, 스마트폰, 태블릿 PC, 디지털 카메라, 블랙박스 등과 같이 다양한 정보를 처리하고, 처리된 정보를 저장하도록 구성된 정보 처리 장치들 중 하나일 수 있다.
호스트(3100)는 스토리지 시스템(3000)의 제반 동작을 제어할 수 있다. 예를 들어, 호스트(3100)는 스토리지 장치(3200)에 데이터(DATA)를 저장하거나 또는 스토리지 장치(3200)에 저장된 데이터(DATA)를 읽기 위한, 요청(RQ; request)을 스토리지 장치(3200)로 전송할 수 있다. 일 실시 예에서, 호스트(3100)는 스토리지 시스템(3000)을 제어하도록 구성된 중앙 처리 유닛(CPU; central processing unit), 애플리케이션 프로세서(AP; application processor)와 같은 프로세서 코어이거나 또는 네트워크를 통해 연결된 컴퓨팅 노드일 수 있다.
일 실시 예에서, 호스트(3100)는 호스트 컨트롤러(3110) 및 호스트 메모리(3120)를 포함할 수 있다. 호스트 컨트롤러(3110)는 호스트(3100)의 제반 동작을 제어하거나 또는 호스트(3100) 측에서, 스토리지 장치(3200)를 제어하도록 구성된 장치일 수 있다. 호스트 메모리(3120)는 호스트(3100)에서 사용되는 버퍼 메모리, 캐시 메모리 또는 동작 메모리일 수 있다.
스토리지 장치(3200)는 호스트(3100)의 제어에 따라 동작할 수 있다. 스토리지 장치(3200)는 스토리지 컨트롤러(3210), 불휘발성 메모리 장치(3220), 버퍼 메모리(3230)를 포함할 수 있다. 스토리지 컨트롤러(3210)는 호스트(3100)의 제어에 따라 불휘발성 메모리 장치(3220)에 데이터를 저장하거나 또는 불휘발성 메모리 장치(3220)에 저장된 데이터를 읽을 수 있다. 일 실시 예에서, 스토리지 컨트롤러(3210)는 불휘발성 메모리 장치(3220)를 효율적으로 사용하기 위한 다양한 관리 동작을 수행할 수 있다.
스토리지 컨트롤러(3210)는 중앙 처리 유닛(CPU; central processing unit)(3211), 플래시 변환 계층(FTL; flash translation layer)(3212), 에러 정정 코드(ECC; error correction code) 엔진(3213), AES(advanced encryption standard) 엔진(3214), 버퍼 인터페이스 회로(3215), 호스트 인터페이스 회로(3216), 및 메모리 인터페이스 회로(3217)를 포함할 수 있다.
CPU(3211)는 스토리지 컨트롤러(3210)의 제반 동작을 제어할 수 있다. FTL(3212)은 불휘발성 메모리 장치(3220)를 효율적으로 사용하기 위한 다양한 동작을 수행할 수 있다. 예를 들어, 호스트(3100)는 스토리지 장치(3200)의 저장 공간을 논리 어드레스로서 관리할 수 있다. FTL(3212)은 호스트(3100)로부터의 논리 어드레스 및 스토리지 장치(3200)의 물리 어드레스 사이의 어드레스 맵핑을 관리하도록 구성될 수 있다. FTL(3212)은 웨어 레벨링 동작을 수행하여, 불휘발성 메모리 장치(3220)의 메모리 블록들 중 특정 메모리 블록에 대한 과도한 열화를 방지할 수 있다. FTL(3212)의 웨어 레벨링 동작에 의해 불휘발성 메모리 장치(3220)의 수명이 향상될 수 있다. FTL(3212)은 불휘발성 메모리 장치(3220)에 대한 가비지 콜렉션을 수행하여, 자유 메모리 블록을 확보할 수 있다.
일 실시 예에서, FTL(3212)은 소프트웨어 또는 하드웨어 형태로 구현될 수 있다. FTL(3212)이 소프트웨어 형태로 구현되는 경우, FTL(3212)과 관련된 프로그램 코드 또는 정보는 버퍼 메모리(3230) 또는 캐시 메모리(예를 들어, SRAM)(미도시) 에 저장될 수 있고, CPU(3211)에 의해 실행될 수 있다. FTL(3212)이 하드웨어 형태로 구현되는 경우, FTL(3212)의 동작을 수행하도록 구성된 하드웨어 가속기가 CPU(3212)와 별도로 구비될 수 있다.
ECC 엔진(3213)은 불휘발성 메모리 장치(3220)로부터 읽은 데이터에 대한 에러 검출 및 에러 정정을 수행할 수 있다. 예를 들어, ECC 엔진(3213)은 불휘발성 메모리 장치(3220)에 기입될 데이터에 대한 에러 정정 코드(또는 패리티 비트)를 생성할 수 있다. 생성된 에러 정정 코드(또는 패리티 비트)는 기입될 데이터와 함께 불휘발성 메모리 장치(3220)에 저장될 수 있다. 이후에, 불휘발성 메모리 장치(3220)로부터 기입된 데이터가 독출될 경우, ECC 엔진(3213)은 독출된 데이터 및 대응하는 에러 정정 코드(또는 대응하는 패리티 비트)를 기반으로 독출된 데이터의 에러를 검출하고 정정할 수 있다.
AES 엔진(3214)은 호스트(3100) 또는 불휘발성 메모리 장치(3220)로부터 수신된 데이터에 대한 암호화(encryption) 동작 또는 복호화 동작(decryption) 동작을 수행할 수 있다. 일 실시 예에서, 암호화(encryption) 동작 또는 복호화 동작(decryption) 동작은 대칭 키 알고리즘(symmetric-key algorithm)을 기반으로 수행될 수 있다.
버퍼 인터페이스 회로(3215)는 미리 정해진 인터페이스 규약에 따라, 버퍼 메모리(3230)와 통신하도록 구성될 수 있다. 일 실시 예에서, 미리 정해진 인터페이스 규약은 DDR(Double Data Rate), LPDDR(Low-Power DDR), USB(Universal Serial Bus) 등과 같은 다양한 인터페이스 규약들 중 적어도 하나를 포함할 수 있다. 버퍼 인터페이스 회로(3215)는 미리 정해진 인터페이스 규약에 기반된 신호를 버퍼 메모리(3230)로 전송할 수 있다. 버퍼 인터페이스 회로(3215)는 미리 정해진 인터페이스 규약에 기반된 신호를 버퍼 메모리(3230)로부터 수신할 수 있다.
버퍼 인터페이스 회로(3215)는 CPU(3211) 또는 DMA(Direct Memory Access) 엔진으로부터의 요청에 응답하여 버퍼 메모리(3230)에 데이터를 저장하거나 또는 저장된 데이터를 읽을 수 있다. 버터 인터페이스 회로(3215)는 커맨드/어드레스 신호(C/A)를 버퍼 메모리(3230)로 전송할 수 있다. 버퍼 인터페이스 회로(3215)는 복수의 데이터 라인들(DQ)을 통해 버퍼 메모리(3230)와 데이터를 주고받을 수 있다. 버퍼 인터페이스 회로(3215)는 데이터 스트로브 신호(DQS)를 메모리 장치(100)와 주고받을 수 있다.
버퍼 인터페이스 회로(3215)는 캐시 라인 단위뿐만 아니라, 바이트 단위 또는 니블 단위로 읽기 또는 쓰기 요청을 CPU(3211)로부터 수신할 수 있다. 버퍼 인터페이스 회로(3215)는 버퍼 메모리(3230)와 부분 쓰기 동작을 수행할 수 있다.
일 실시 예에서, 버퍼 인터페이스 회로(3215)는 마스크 제어 회로(3218)를 포함할 수 있다. 마스크 제어 회로(3218)는 CPU(3211)로부터 수신한 부분 쓰기 요청에 응답하여, 복수의 마스크 신호들(MS), 부분 쓰기 활성화 신호(PWE), 데이터 스트로브 신호(DQS)를 제어할 수 있다.
마스크 제어 회로(3218)는 부분 쓰기 커맨드(PWR)를 버퍼 메모리(3230)로 전송할 수 있다. 마스크 제어 회로(3218)는 커맨드/어드레스 입력 구간에서 제12 어드레스 라인(A12)을 통해 부분 쓰기 활성화 신호(PWE)를 출력할 수 있다. 마스크 제어 회로(3218)는 커맨드/어드레스 입력 구간에서 제0 어드레스 라인(A0)을 통해 제0 마스크 신호(MS0)를 출력하고, 제1 어드레스 라인(A1)을 통해 제1 마스크 신호(MS1)를 출력하고, 제2 어드레스 라인(A2)을 통해 제2 마스크 신호(MS2)를 출력하고, 제11 어드레스 라인(A11)을 통해 제3 마스크 신호(MS3)를 출력하고, 제13 어드레스 라인(A13)을 통해 제4 마스크 신호(MS4)를 출력하고, 제0 칩 식별자 라인(C0)을 통해 제5 마스크 신호(MS5)를 출력하고, 제1 칩 식별자 라인(C1)을 통해 제6 마스크 신호(MS6)를 출력하고, 제2 칩 식별자 라인(C2)을 통해 제7 마스크 신호(MS7)를 출력할 수 있다.
마스크 제어 회로(3218)는 복수의 마스크 신호들을 생성할 수 있다. 마스크 제어 회로(3218)는 유효한 데이터를 포함하는 입력 데이터의 버스트 길이에 대응하는 마스크 신호를 비활성화 상태를 가리키도록 설정하고, 더미 데이터만을 포함하는(즉, 유효한 데이터를 포함하지 않는) 입력 데이터의 버스트 길이에 대응하는 마스크 신호를 활성화 상태를 가리키도록 설정할 수 있다. 복수의 마스크 신호들을 전체 버스트 길이 동안 버퍼 메모리(3230)로 입력되는 데이터 중 유효 데이터의 위치를 가리킬 수 있다.
예를 들어, 마스크 제어 회로(3218)는 제1 바이트 데이터(BD1)를 제0 버스트 길이(BL0) 동안 버퍼 메모리(3230)로 출력하는 경우, 커맨드/어드레스 입력 구간 동안 제0 마스크 신호(MS0)를 로직-로우(L)로 설정하고, 나머지 마스크 신호들(MS1~MS7)은 로직-하이(H)로 설정할 수 있다.
마스크 제어 회로(3218)는 데이터 유효 여부를 가리키는 데이터 스트로브 신호(DQS)를 버퍼 메모리(3230)로 전송할 수 있다. 마스크 제어 회로(3218)는 스트로브 토글 구간(T3) 동안 타겟 메모리 장치와 연결된 데이터 스트로브 신호(DQS)를 토글 시킬 수 있다. 마스크 제어 회로(3218)는 스트로브 토글 구간(T3) 동안 논-타겟 메모리 장치와 연결된 데이터 스트로브 신호(DQS)를 로직-하이(H)로 설정할 수 있다.
마스크 제어 회로(3218)는 니블 또는 바이트 단위의 데이터를 갱신하기 위한, 어드레스 및 데이터를 CPU(3211)로부터 수신할 수 있다. 마스크 제어 회로(3218)는 바이트 단위에 대응하는 데이터 및 어드레스를 CPU(3211)로부터 수신할 수 있다. 이하에서, 도 2b에 도시된 바와 같이, 마스크 제어 회로(3218)는 제1 메모리 셀 그룹(MCG1)에 저장된 데이터를 갱신하는 것으로 가정한다.
마스크 제어 회로(3218)는 CPU(3211)로부터 수신한 데이터를 기반으로, 제3 데이터(DT3)를 생성할 수 있다. 마스크 제어 회로(3218)는 CPU(3211)로부터 수신한 데이터를 제1 바이트 데이터(BD1)로 하고, 더미 데이터를 추가하여 제3 데이터(DT3)를 생성할 수 있다. 마스크 제어 회로(3218)는 유효한 값을 갖는 제1 바이트 데이터(BD1) 및 더미 값을 갖는 제0, 제2 내지 제31 바이트 데이터(BD0, BD2~BD31)를 포함하는 제3 데이터(DT3)를 생성할 수 있다. 예를 들어, 더미 값은 미리 정해진 값 또는 랜덤 값일 수 있다. 마스크 제어 회로(3218)는 제3 데이터(DT3)를 복수의 데이터 라인들(DQ)을 통해 버퍼 메모리(3230)로 전송할 수 있다.
버퍼 메모리(3230)는 스토리지 컨트롤러(3210)로 입력된 데이터를 임시 저장하도록 구성된 쓰기 버퍼 또는 읽기 버퍼일 수 있다. 또는 버퍼 메모리(3230)는 스토리지 컨트롤러(3210)가 동작하는데 필요한 다양한 정보를 저장하도록 구성될 수 있다. 예를 들어, 버퍼 메모리(3230)는 FTL(3212)에 의해 관리되는 매핑 테이블을 저장할 수 있다. 또는 버퍼 메모리(3230)는 FTL(3212)과 관련된 소프트웨어, 펌웨어, 또는 정보를 저장할 수 있다.
버퍼 메모리(3230)는 버퍼 인터페이스 회로(3215)의 제어에 따라 동작할 수 있다. 예를 들어, 버퍼 메모리(32300)는 버퍼 인터페이스 회로(3215)로부터 수신된 신호들에 응답하여, 데이터를 저장하거나 또는 저장된 데이터를 버퍼 인터페이스 회로(3215)로 제공할 수 있다. 일 실시 예에서, 버퍼 메모리(3230)는 DRAM(Dynamic Random Access Memory) 장치일 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니다. 버퍼 메모리(3230)는 도 1 내지 도 14를 참조하여 설명된 부분 쓰기 동작을 수행할 수 있다.
호스트 인터페이스 회로(3216)는 미리 정해진 인터페이스 규약에 따라, 호스트(3100)와 통신하도록 구성될 수 있다. 일 실시 예에서, 미리 정해진 인터페이스 규약은 ATA(Advanced Technology Attachment) 인터페이스, SATA(Serial ATA) 인터페이스, e-SATA(external SATA) 인터페이스, SCSI(Small Computer Small Interface) 인터페이스, SAS(Serial Attached SCSI) 인터페이스, PCI(Peripheral Component Interconnection) 인터페이스, PCIe(PCI express) 인터페이스, NVMe(NVM express) 인터페이스, IEEE 1394, USB(Universal Serial Bus) 인터페이스, SD(Secure Digital) 카드, MMC(Multi-Media Card) 인터페이스, eMMC(embedded Multi-Media Card) 인터페이스, UFS(Universal Flash Storage) 인터페이스, eUFS(embedded Universal Flash Storage) 인터페이스, CF(Compact Flash) 카드 인터페이스, 또는 네트워크 인터페이스 등과 같은 다양한 인터페이스 규약들 중 적어도 하나를 포함할 수 있다. 호스트 인터페이스 회로(116)는 미리 정해진 인터페이스 규약에 기반된 신호를 호스트(3100)로부터 수신하고, 수신된 신호를 기반으로 동작할 수 있다. 또는 호스트 인터페이스 회로(116)는 미리 정해진 인터페이스 규약에 기반된 신호를 호스트(3100)로 전송할 수 있다.
메모리 인터페이스 회로(3217)는 미리 정해진 인터페이스 규약에 따라 불휘발성 메모리 장치(3220)와 통신하도록 구성될 수 있다. 일 실시 예에서, 미리 정해진 인터페이스 규약은 토글 인터페이스, 온파이(ONFI) 인터페이스 등과 같은 다양한 인터페이스 규약들 중 적어도 하나를 포함할 수 있다. 일 실시 예에서, 메모리 인터페이스 회로(3217)는 토글 인터페이스를 기반으로 불휘발성 메모리 장치(3220)와 통신할 수 있다. 이 경우, 메모리 인터페이스 회로(3217)는 복수의 채널들(CHs)을 통해 불휘발성 메모리 장치(3220)와 통신할 수 있다. 일 실시 예에서, 복수의 채널들(CHs) 각각은 다양한 제어 신호들(예를 들어, /CE, CLE, ALE, /WE, /RE, R/B 등), 데이터 신호들, 및 데이터 스트로브 신호를 전송하도록 구성된 복수의 신호 라인들을 포함할 수 있다.
도 16은 도 15의 마스크 제어 회로의 동작을 보여주는 순서도이다. 도 15 및 도 16을 참조하면, S410 단계에서, 마스크 제어 회로(3218)는 CPU(3211) 또는 DMA 엔진(미도시)으로부터 쓰기 요청 및 제4 데이터(DT4)를 수신할 수 있다. 제4 데이터(DT4)는 캐시 라인 단위보다 작은 니블 단위 또는 바이트 단위의 데이터일 수 있다. 이하에서, 제4 데이터(DT4)는 바이트 단위의 데이터로 가정한다. 예를 들어, 쓰기 요청은 쓰기 커맨드 및 어드레스를 포함하고, 어드레스는 도 2b의 제1 메모리 셀 그룹(MCG1)을 가리키는 것으로 가정한다.
S420 단계에서, 마스크 제어 회로(3218)는 제4 데이터(DT4)를 기반으로 제3 데이터(DT3)를 생성할 수 있다. 마스크 제어 회로(3218)는 바이트 단위의 제4 데이터(DT4)를 제3 데이터(DT3)의 제1 바이트 데이터(BD1)로 하고, 더미 데이터를 추가하여 제3 데이터(DT3)를 생성할 수 있다.
S430 단계에서, 마스크 제어 회로(3218)는 복수의 마스크 신호들(MS)을 제3 데이터(DT3)를 기반으로 생성할 수 있다. 마스크 제어 회로(3218)는 유효한 제1 바이트 데이터(BD1)가 제0 입력 데이터(Din_0)에 포함되므로, 제0 마스크 신호(MS0)를 로직-로우(L)로 설정하고, 제1 내지 제7 마스크 신호(MS7)를 로직-하이(H)로 설정할 수 있다.
S440 단계에서, 마스크 제어 회로(3218)는 커맨드/어드레스 입력 구간 동안, 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들(MS)을 포함하는 부분 쓰기 커맨드(PWR)를 버퍼 메모리(3230)로 출력할 수 있다. 예를 들어, 마스크 제어 회로(3218)는 활성화 상태를 가리키는 부분 쓰기 활성화 신호(PWE)를 제12 어드레스 라인(A12)을 통해 커맨드/어드레스 입력 구간 동안 출력할 수 있다.
마스크 제어 회로(3218)는 커맨드/어드레스 입력 구간 동안, 비활성화 상태를 가리키는 제0 마스크 신호(MS0)를 제0 어드레스 라인(A0)을 통해 출력하고, 활성화 상태를 가리키는 제1 마스크 신호(MS1)를 제1 어드레스 라인(A1)을 통해 출력하고, 활성화 상태를 가리키는 제2 마스크 신호(MS2)를 제2 어드레스 라인(A2)을 통해 출력하고, 활성화 상태를 가리키는 제3 마스크 신호(MS3)를 제11 어드레스 라인(A11)을 통해 출력하고, 활성화 상태를 가리키는 제4 마스크 신호(MS4)를 제13 어드레스 라인(A13)을 통해 출력하고, 활성화 상태를 가리키는 제5 마스크 신호(MS5)를 제0 칩 식별자 라인(C0)을 통해 출력하고, 활성화 상태를 가리키는 제6 마스크 신호(MS6)를 제1 칩 식별자 라인(C1)을 통해 출력하고, 활성화 상태를 가리키는 제7 마스크 신호(MS7)를 제2 칩 식별자 라인(C2)을 통해 출력할 수 있다.
S450 단계에서, 마스크 제어 회로(3218)는 스트로브 토글 구간 동안 데이터 스트로브 신호(DQS)를 버퍼 메모리(3230)로 출력할 수 있다. 버퍼 메모리(3230)가 도 9와 같이 복수의 메모리 장치들을 포함하는 경우, 마스크 제어 회로(3218)는 스트로브 토글 구간 동안 타겟 메모리 장치로 토글하는 데이터 스트로브 신호(DQS)를 출력하고, 논-타겟 메모리 장치로 로직-하이(H)로 유지되는 데이터 스트로브 신호(DQS)를 출력할 수 있다.
S460 단계에서, 마스크 제어 회로(3218)는 복수의 데이터 라인들(DQ)을 통해 제3 데이터(DT3)를 버퍼 메모리(3230)로 출력할 수 있다. 버퍼 메모리(3230)가 도 9와 같이 복수의 메모리 장치들을 포함하는 경우, 마스크 제어 회로(3218)는 타겟 메모리 장치 및 논-타겟 메모리 장치로 데이터를 출력할 수 있다. 또는 타겟 메모리 장치로 데이터를 출력하고, 논-타겟 메모리 장치로 데이터를 출력하지 않을 수 있다.
상술된 바와 같이, 메모리 시스템은 부분 쓰기 동작을 수행할 수 있다. 호스트는 별도의 데이터 마스크 신호를 사용하지 않고, 커맨드/어드레스 신호를 이용하여, 복수의 마스크 신호들 및 부분 쓰기 활성화 신호를 커맨드/어드레스 입력 구간 동안 메모리 장치로 전송할 수 있다. 메모리 장치는 부분 쓰기 커맨드에 응답하여, 복수의 마스크 신호들 및 데이터 스트로브 신호를 기반으로 입력 데이터 중 전부 또는 일부를 메모리 셀에 저장할 수 있다.
상술된 내용은 본 개시를 실시하기 위한 구체적인 실시 예들이다. 본 개시는 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 개시는 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 개시의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
10: 메모리 시스템
11: 호스트
100: 메모리 장치
110: 마스크 회로

Claims (20)

  1. 복수의 메모리 셀들을 포함하는 메모리 장치의 동작 방법에 있어서,
    커맨드/어드레스 입력 구간 동안, 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들을 포함하는 부분 쓰기 커맨드를 수신하는 단계;
    상기 부분 쓰기 커맨드를 수신한 이후에, 데이터 스트로브 라인을 통해 데이터 스트로브 신호를 수신하는 단계;
    데이터 입력 구간 동안, 상기 데이터 스트로브 신호에 동기화하여 복수의 데이터 라인들을 통해 복수의 데이터를 수신하는 단계; 및
    데이터 기입 구간 동안, 상기 부분 쓰기 활성화 신호(PWE)에 응답하여, 상기 복수의 마스크 신호들을 기반으로 상기 복수의 데이터 중 일부를 상기 복수의 메모리 셀들에 저장하는 단계를 포함하는 동작 방법.
  2. 제 1 항에 있어서,
    데이터 기입 구간 동안, 상기 부분 쓰기 활성화 신호(PWE)에 응답하여, 상기 복수의 마스크 신호들을 기반으로 상기 복수의 데이터 중 일부를 상기 복수의 메모리 셀들에 저장하는 단계는:
    상기 부분 쓰기 활성화 신호(PWE)에 응답하여, 상기 복수의 마스크 신호들을 기반으로 컬럼 선택 신호를 활성화시키는 단계; 및
    상기 복수의 데이터 중 일부를 상기 컬럼 선택 신호에 의해 선택되는 상기 메모리 셀들에 저장하는 단계를 더 포함하는 동작 방법.
  3. 제 1 항에 있어서,
    상기 부분 쓰기 활성화 신호(PWE) 및 상기 복수의 마스크 신호들을 포함하는 상기 부분 쓰기 커맨드를 수신하는 단계는, 상기 부분 쓰기 활성화 신호(PWE) 및 상기 복수의 마스크 신호들을 칩 식별자(Chip ID) 라인들 또는 어드레스 라인들을 통해 수신하는 단계를 포함하는 동작 방법.
  4. 제 1 항에 있어서,
    상기 부분 쓰기 활성화 신호(PWE) 및 상기 복수의 마스크 신호들을 포함하는 상기 부분 쓰기 커맨드를 수신하는 단계는:
    상기 복수의 마스크 신호들 중 제0 내지 제2 마스크 신호는 제0 내지 제2 어드레스 라인들(A0~A2)을 통해 수신하는 단계;
    상기 복수의 마스크 신호들 중 제3 마스크 신호는 제11 어드레스 라인(A11)을 통해 수신하는 단계;
    상기 복수의 마스크 신호들 중 제4 마스크 신호는 제13 어드레스 라인(A13)을 통해 수신하는 단계;
    상기 복수의 마스크 신호들 중 제5 내지 제7 마스크 신호들은 제0 내지 제2 칩 식별자 라인들(C0~C2)을 통해 수신하는 단계; 및
    상기 부분 쓰기 활성화 신호(PWE)는 제12 어드레스 라인(A12)을 통해 수신하는 단계를 포함하는 동작 방법.
  5. 제 1 항에 있어서,
    상기 부분 쓰기 커맨드 수신한 시점부터 쓰기 레이턴시(WL) 경과한 이후에, 상기 데이터 입력 구간 동안, 로직-하이 레벨을 유지하는 상기 데이터 스트로브 신호를 수신하는 단계; 및
    상기 로직-하이 레벨을 유지하는 상기 데이터 스트로브 신호에 응답하여, 상기 복수의 데이터 전부를 상기 복수의 메모리 셀들에 저장하지 않는 단계를 더 포함하는 동작 방법.
  6. 제 5 항에 있어서,
    상기 로직-하이 레벨을 유지하는 상기 데이터 스트로브 신호에 응답하여, 상기 복수의 데이터 전부를 상기 복수의 메모리 셀들에 저장하지 않는 단계는,
    상기 로직-하이 레벨을 유지하는 상기 데이터 스트로브 신호에 응답하여, 상기 데이터 기입 구간 동안 컬럼 선택 라인을 비활성화 시키는 단계를 포함하는 동작 방법.
  7. 제 1 항에 있어서,
    니블 단위 또는 바이트 단위로 복수의 데이터 중 일부를 상기 복수의 메모리 셀들에 저장하는 동작 방법.
  8. 제 1 항에 있어서,
    상기 복수의 데이터는 상기 복수의 메모리 셀들에 저장되는 유효 데이터 및 상기 복수의 메모리 셀들에 저장되지 않는 더미 데이터를 포함하는 동작 방법.
  9. 복수의 메모리 장치들을 포함하는 메모리 모듈의 동작 방법에 있어서,
    제1 시점에, 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들을 포함하는 부분 쓰기 커맨드를 수신하는 단계;
    상기 제1 시점 이후 스트로브 토글 구간 동안, 상기 복수의 메모리 장치들 중 제1 메모리 장치와 연결된 제1 데이터 스트로브 라인을 통해 토글하는 제1 데이터 스트로브 신호를 수신하고, 상기 복수의 메모리 장치들 중 제2 메모리 장치와 연결된 제2 데이터 스트로브 라인을 통해 로직-하이(H)로 유지되는 제2 데이터 스트로브 신호를 수신하는 단계; 및
    상기 제1 시점 이후 데이터 입력 구간 동안, 복수의 데이터 라인들을 통해 복수의 데이터를 수신하는 단계를 포함하는 동작 방법.
  10. 제 9 항에 있어서,
    상기 부분 쓰기 활성화 신호(PWE)에 응답하여, 상기 복수의 마스크 신호들을 기반으로 상기 복수의 데이터 중 일부를 상기 제1 메모리 장치에 포함된 복수의 메모리 셀들에 저장하는 단계를 더 포함하는 동작 방법.
  11. 제 10 항에 있어서,
    상기 복수의 마스크 신호들은 제1 및 제2 마스크 신호들을 포함하고,
    상기 제1 마스크 신호는 제1 버스트 길이 동안 입력되는 제1 입력 데이터에 대응하고, 상기 제2 마스크 신호는 제2 버스트 길이 동안 입력되는 제2 입력 데이터에 대응하고,
    상기 부분 쓰기 활성화 신호(PWE)에 응답하여, 상기 복수의 마스크 신호들을 기반으로 상기 복수의 데이터 중 일부를 상기 제1 메모리 장치에 포함된 복수의 메모리 셀들에 저장하는 단계는:
    상기 제1 마스크 신호가 비활성화 상태를 가리키는 경우, 상기 제1 입력 데이터를 일부를 상기 제1 메모리 장치에 포함된 복수의 메모리 셀들에 저장하는 단계; 및
    상기 제2 마스크 신호가 활성화 상태를 가리키는 경우, 상기 제2 입력 데이터를 상기 제1 메모리 장치에 포함된 복수의 메모리 셀들에 저장하지 않는 단계를 포함하는 동작 방법.
  12. 제 11 항에 있어서,
    상기 제1 마스크 신호가 비활성화 상태를 가리키는 경우, 상기 제1 입력 데이터를 일부를 상기 제1 메모리 장치에 포함된 복수의 메모리 셀들에 저장하는 단계:
    상기 제1 입력 데이터의 제1 컬럼 어드레스에 대응하는 제1 컬럼 선택 라인을 활성화 시키는 단계;
    상기 제1 컬럼 선택 라인에 응답하여, 상기 제1 입력 데이터를 상기 제1 메모리 장치에 포함된 상기 복수의 메모리 셀들에 저장하는 단계를 포함하고,
    상기 제2 마스크 신호가 활성화 상태를 가리키는 경우, 상기 제2 입력 데이터를 상기 제1 메모리 장치에 포함된 복수의 메모리 셀들에 저장하지 않는 단계는:
    상기 제2 입력 데이터의 제2 컬럼 어드레스 대응하는 제2 컬럼 선택 라인을 비활성화 시키는 단계; 및
    상기 제2 컬럼 선택 라인에 응답하여, 상기 제2 입력 데이터를 상기 제1 메모리 장치에 포함된 상기 복수의 메모리 셀들에 저장하지 않는 단계를 포함하는 동작 방법.
  13. 제 9 항에 있어서,
    상기 제1 시점 이후 데이터 입력 구간 동안, 복수의 데이터 라인들을 통해 복수의 데이터를 수신하는 단계는:
    상기 제1 메모리 장치와 연결된 제1 데이터 라인들을 통해 유효한 데이터를 포함하는 데이터를 수신하는 단계; 및
    상기 제2 메모리 장치와 연결된 제2 데이터 라인들을 통해 더미 데이터를 수신하는 단계를 포함하는 동작 방법.
  14. 제 13 항에 있어서,
    상기 복수의 마스크 신호들은 제1 및 제2 마스크 신호들을 포함하고,
    상기 제1 마스크 신호는 제1 버스트 길이 동안 입력되는 제1 입력 데이터에 대응하고, 상기 제2 마스크 신호는 제2 버스트 길이 동안 입력되는 제2 입력 데이터에 대응하고, 상기 제1 마스크 신호는 비활성화 상태를 가리키고, 상기 제2 마스크 신호는 활성화 상태를 가리키는 경우,
    상기 제1 메모리 장치와 연결된 제1 데이터 라인들을 통해 상기 복수의 데이터를 수신하는 단계는:
    제1 버스트 길이 동안, 유효한 제1 입력 데이터를 수신하는 단계; 및
    제2 버스트 길이 동안, 더미 데이터인 제2 입력 데이터를 수신하는 단계를 포함하는 동작 방법.
  15. 제 9 항에 있어서,
    상기 제1 시점 이후 데이터 입력 구간 동안, 복수의 데이터 라인들을 통해 복수의 데이터를 수신하는 단계는:
    상기 제1 메모리 장치와 연결된 제1 데이터 라인들을 통해 상기 복수의 데이터를 수신하는 단계; 및
    다른 커맨드를 수신하지 않은 경우, 상기 제2 메모리 장치와 연결된 제2 데이터 라인들을 통해 데이터를 수신하지 않는 단계를 포함하는 동작 방법.
  16. 제 9 항에 있어서,
    상기 부분 쓰기 활성화 신호(PWE) 및 상기 복수의 마스크 신호들을 포함하는 상기 부분 쓰기 커맨드를 수신하는 단계는,
    상기 부분 쓰기 활성화 신호 및 상기 복수의 마스크 신호들을 커맨드/어드레스 라인 중 예비(reserved) 라인들을 통해 수신하는 단계를 포함하는 동작 방법.
  17. 제 9 항에 있어서,
    상기 부분 쓰기 활성화 신호(PWE) 및 상기 복수의 마스크 신호들을 포함하는 상기 부분 쓰기 커맨드를 수신하는 단계는,
    상기 복수의 마스크 신호들 중 제0 내지 제2 마스크 신호는 제0 내지 제2 어드레스 라인들(A0~A2)을 통해 수신하는 단계;
    상기 복수의 마스크 신호들 중 제3 마스크 신호는 제11 어드레스 라인(A11)을 통해 수신하는 단계;
    상기 복수의 마스크 신호들 중 제4 마스크 신호는 제13 어드레스 라인(A13)을 통해 수신하는 단계;
    상기 복수의 마스크 신호들 중 제5 내지 제7 마스크 신호들은 제0 내지 제2 칩 식별자 라인들(C0~C2)을 통해 수신하는 단계; 및
    상기 부분 쓰기 활성화 신호(PWE)는 제12 어드레스 라인(A12)을 통해 수신하는 단계를 포함하는 동작 방법.
  18. 제 9 항에 있어서,
    상기 데이터 입력 구간은 상기 제1 시점부터 쓰기 레이턴시(WL) 경과한 이후인 제2 시점부터 시작하여 제3 시점에 종료하고,
    상기 스트로브 토글 구간은 상기 제2 시점부터 쓰기 프리앰블 레이턴시(tWPRE) 이전에 시작하여, 제3 시점부터 포스트앰블 레이턴시(tWPST) 경과한 이후에 종료하는 동작 방법.
  19. 메모리 모듈과 연결된 호스트의 동작 방법에 있어서,
    캐시 라인 단위보다 작은 단위의 제1 데이터에 더미 데이터를 추가하여 제2 데이터를 생성하는 단계;
    커맨드/어드레스 입력 구간 동안, 부분 쓰기 활성화 신호(PWE) 및 복수의 마스크 신호들을 포함하는 부분 쓰기 커맨드를 상기 메모리 모듈로 출력하는 단계;
    상기 커맨드/어드레스 입력 구간 이후에, 데이터 스트로브 토글 구간 동안, 데이터 스트로브 신호를 상기 메모리 모듈로 출력하는 단계;
    상기 커맨드/어드레스 입력 구간 이후에, 데이터 입력 구간 동안, 복수의 데이터 라인들을 통해 상기 제2 데이터를 상기 메모리 모듈로 출력하는 단계를 포함하는 동작 방법.
  20. 제 19 항에 있어서,
    상기 데이터 스트로브 신호는 상기 메모리 모듈 중 타겟 메모리 장치와 연결된 제1 데이터 스트로브 신호, 및 상기 메모리 모듈 중 논-타겟 메모리 장치와 연결된 제2 데이터 스트로브 신호를 포함하고,
    상기 커맨드/어드레스 입력 구간 이후에, 상기 데이터 스트로브 토글 구간 동안, 상기 데이터 스트로브 신호를 상기 메모리 모듈로 출력하는 단계는:
    상기 데이터 스트로브 토글 구간 동안, 상기 제1 데이터 스트로브 신호를 토글시키는 단계; 및
    상기 데이터 스트로브 토글 구간 동안, 상기 제2 데이터 스트로브 신호를 로직-하이로 설정하는 단계를 포함하는 동작 방법.
KR1020210062719A 2021-05-14 2021-05-14 전자 장치, 호스트의 동작 방법, 메모리 모듈의 동작 방법, 및 메모리 장치의 동작 방법 KR20220155518A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020210062719A KR20220155518A (ko) 2021-05-14 2021-05-14 전자 장치, 호스트의 동작 방법, 메모리 모듈의 동작 방법, 및 메모리 장치의 동작 방법
US17/535,861 US11887692B2 (en) 2021-05-14 2021-11-26 Electronic device, operation method of host, operation method of memory module, and operation method of memory device
CN202210030774.3A CN115346566A (zh) 2021-05-14 2022-01-12 主机、存储器模块以及存储器装置的操作方法
EP22164020.4A EP4089678B1 (en) 2021-05-14 2022-03-24 Electronic device, operation method of host, operation method of memory module, and operation method of memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210062719A KR20220155518A (ko) 2021-05-14 2021-05-14 전자 장치, 호스트의 동작 방법, 메모리 모듈의 동작 방법, 및 메모리 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20220155518A true KR20220155518A (ko) 2022-11-23

Family

ID=83946973

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210062719A KR20220155518A (ko) 2021-05-14 2021-05-14 전자 장치, 호스트의 동작 방법, 메모리 모듈의 동작 방법, 및 메모리 장치의 동작 방법

Country Status (3)

Country Link
US (1) US11887692B2 (ko)
KR (1) KR20220155518A (ko)
CN (1) CN115346566A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117370023A (zh) * 2023-10-25 2024-01-09 中科驭数(北京)科技有限公司 字符串数据处理方法、装置、加速单元和计算机存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62278651A (ja) 1986-05-28 1987-12-03 Hitachi Ltd 部分書込制御装置
KR100360408B1 (ko) 2000-09-16 2002-11-13 삼성전자 주식회사 독출동작시 데이터 스트로브 신호와 동일한 신호를출력하는 데이터 마스킹핀을 갖는 반도체 메모리장치 및이를 구비하는 메모리 시스템
US6718444B1 (en) 2001-12-20 2004-04-06 Advanced Micro Devices, Inc. Read-modify-write for partial writes in a memory controller
US20050108460A1 (en) 2003-11-14 2005-05-19 Intel Corporation Partial bank DRAM refresh
US7562271B2 (en) 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US7610417B2 (en) 2005-11-30 2009-10-27 Rambus Inc. Data-width translator coupled between variable-width and fixed-width data ports and supporting multiple data-width configurations
US8239637B2 (en) 2007-01-19 2012-08-07 Spansion Llc Byte mask command for memories
JP2008305350A (ja) * 2007-06-11 2008-12-18 Spansion Llc メモリシステム、メモリ装置、およびメモリ装置の制御方法
JP2009187615A (ja) 2008-02-05 2009-08-20 Elpida Memory Inc 半導体記憶装置
US8006033B2 (en) * 2008-09-09 2011-08-23 Intel Corporation Systems, methods, and apparatuses for in-band data mask bit transmission
US9911477B1 (en) * 2014-04-18 2018-03-06 Altera Corporation Memory controller architecture with improved memory scheduling efficiency
KR102472123B1 (ko) 2016-03-16 2022-11-30 에스케이하이닉스 주식회사 반도체 시스템 및 그의 동작 방법
CN108139993B (zh) 2016-08-29 2020-06-16 华为技术有限公司 内存装置、内存控制器、数据缓存装置及计算机系统
US10510398B2 (en) * 2017-11-29 2019-12-17 Micron Technology, Inc. Systems and methods for improving write preambles in DDR memory devices
US10635357B2 (en) * 2018-07-03 2020-04-28 Nvidia Corporation Method for overlapping memory accesses

Also Published As

Publication number Publication date
US11887692B2 (en) 2024-01-30
CN115346566A (zh) 2022-11-15
US20220366949A1 (en) 2022-11-17

Similar Documents

Publication Publication Date Title
CN107068175B (zh) 易失性存储器设备、其信息提供方法及其刷新控制方法
US9772803B2 (en) Semiconductor memory device and memory system
US20160351244A1 (en) Memory device and memory system having the same
US11416426B2 (en) Memory device and method of operating the same
US20140237177A1 (en) Memory module and memory system having the same
US9355703B2 (en) Devices, systems and methods with improved refresh address generation
US10991418B2 (en) Semiconductor memory device comprising an interface conforming to JEDEC standard and control device therefor
TWI766016B (zh) 具有阻抗校準電路的記憶體系統
US9449673B2 (en) Memory device and memory system having the same
KR20180022016A (ko) 반도체장치
JP7216247B1 (ja) バンク割り当てを備えたマルチポート不揮発性メモリデバイスおよび関連するシステムおよび方法
KR20160061703A (ko) 내부 카피 동작을 수행하는 메모리 장치
US11726717B2 (en) NAND dropped command detection and recovery
US20220147274A1 (en) Storage device and operating method thereof
US11887692B2 (en) Electronic device, operation method of host, operation method of memory module, and operation method of memory device
US9728234B1 (en) Operating method of semiconductor memory device
EP4089678B1 (en) Electronic device, operation method of host, operation method of memory module, and operation method of memory device
CN112309470B (zh) 存储器装置及其操作方法
US20240020234A1 (en) Storage module supporting single serialized write interfacing scheme and operation method thereof
US20240020235A1 (en) Storage module supporting prefetch function and operation method thereof
US11797450B2 (en) Electronic device, system-on-chip, and operating method thereof
US20230112776A1 (en) Operation method of memory module, operation method of memory controller, and operation method of memory system
KR20180086817A (ko) 반도체장치
KR20170085923A (ko) 이종의 메모리들을 액세스하는 방법 및 이종의 메모리들을 포함하는 메모리 모듈

Legal Events

Date Code Title Description
A201 Request for examination