KR20220030440A - 전자 장치, 시스템-온-칩, 및 그것의 동작 방법 - Google Patents

전자 장치, 시스템-온-칩, 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20220030440A
KR20220030440A KR1020200110638A KR20200110638A KR20220030440A KR 20220030440 A KR20220030440 A KR 20220030440A KR 1020200110638 A KR1020200110638 A KR 1020200110638A KR 20200110638 A KR20200110638 A KR 20200110638A KR 20220030440 A KR20220030440 A KR 20220030440A
Authority
KR
South Korea
Prior art keywords
data
cache
memory device
dirty
sector
Prior art date
Application number
KR1020200110638A
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 KR1020200110638A priority Critical patent/KR20220030440A/ko
Priority to US17/232,844 priority patent/US11797450B2/en
Priority to CN202110744225.8A priority patent/CN114115710A/zh
Publication of KR20220030440A publication Critical patent/KR20220030440A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명의 실시 예에 따른 전자 장치는 복수의 섹터 데이터 및 복수의 섹터 데이터 각각에 대응하는 복수의 더티 비트들을 포함하는 제1 캐시 세트를 포함하는 캐시 메모리, 복수의 섹터 데이터를 복수의 데이터 라인들을 통해 출력하고, 복수의 더티 비트들을 기반으로 데이터 마스크 라인을 통해 데이터 마스크 신호를 출력하도록 구성된 메모리 컨트롤러, 및 복수의 데이터 라인들을 통해 복수의 섹터 데이터를 수신하고, 데이터 마스크 라인을 통해 수신된 데이터 마스크 신호를 기반으로 복수의 섹터 데이터 중 적어도 하나의 섹터 데이터를 마스킹하도록 구성된 메모리 장치를 포함한다.

Description

전자 장치, 시스템-온-칩, 및 그것의 동작 방법{ELECTRONIC DEVICE, SYSTEM-ON-CHIP, AND OPERATING METHOD}
본 발명은 반도체 메모리에 관한 것으로 좀더 상세하게는 전자 장치, 시스템-온-칩, 및 그것의 동작 방법에 관한 것이다.
반도체 메모리는 SRAM, DRAM 등과 같이 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 휘발성 메모리 장치 및 플래시 메모리 장치, PRAM, MRAM, RRAM, FRAM 등과 같이 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 불휘발성 메모리 장치로 구분된다.
캐시 메모리는 메인 메모리보다 빠른 액세스 속도를 가질 수 있다. 즉, 메인 메모리에 저장된 데이터 중 일부를 캐시 메모리에 저장함으로써, 프로세서의 요청에 따른 액세스 속도가 향상될 수 있다.
본 발명의 목적은 향상된 안정성을 갖고, 전력 소모를 최소화할 수 있는 전자 장치, 시스템-온-칩, 및 그것의 동작 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 전자 장치는 복수의 섹터 데이터 및 복수의 섹터 데이터 각각에 대응하는 복수의 더티 비트들을 포함하는 제1 캐시 세트를 포함하는 캐시 메모리, 복수의 섹터 데이터를 복수의 데이터 라인들을 통해 출력하고, 복수의 더티 비트들을 기반으로 데이터 마스크 라인을 통해 데이터 마스크 신호를 출력하도록 구성된 메모리 컨트롤러, 및 복수의 데이터 라인들을 통해 복수의 섹터 데이터를 수신하고, 데이터 마스크 라인을 통해 수신된 데이터 마스크 신호를 기반으로 복수의 섹터 데이터 중 적어도 하나의 섹터 데이터를 마스킹하도록 구성된 메모리 장치를 포함한다.
본 발명의 실시 예에 따른 복수의 섹터 데이터 및 복수의 섹터 데이터 각각에 대응하는 복수의 더티 비트들을 포함하는 제1 캐시 세트를 포함하는 캐시 메모리를 포함하고, 메모리 장치를 제어하도록 구성된 시스템-온-칩(SoC; System-on-Chip)의 동작 방법은 메모리 장치로, 커맨드/어드레스(CA; command/address) 라인들을 통해 제1 마스크 쓰기(MWR; Mask Write) 커맨드를 전송하는 단계, 메모리 장치로, 복수의 섹터 데이터를 복수의 데이터 라인들을 통해 출력하고, 복수의 더티 비트들을 기반으로 데이터 마스크 라인을 통해 데이터 마스크 신호를 출력하는 단계를 포함한다.
본 발명의 실시 예에 따른 시스템-온-칩(SoC; System-on-Chip)은 캐시 메모리 및 메모리 컨트롤러를 제어하도록 구성된 프로세서, 제1 및 제2 섹터 데이터, 및 제1 및 제2 섹터 데이터 각각에 대응하는 제1 및 제2 더티 비트들을 포함하는 제1 캐시 세트를 포함하는 캐시 메모리, 및 외부 메모리 장치로, 커맨드/어드레스(CA; command/address) 라인들을 통해 제1 마스크 쓰기(MWR; Mask Write) 커맨드를 전송하고, 제1 구간 동안 제1 섹터 데이터를 복수의 데이터 라인들을 통해 출력하고, 제2 구간 동안 제2 섹터 데이터를 복수의 데이터 라인들을 통해 출력하고, 제1 구간 동안 데이터 마스크 라인을 통해 비활성화된 데이터 마스크 신호를 출력하고, 제2 구간 동안 데이터 마스크 라인을 통해 활성화된 데이터 마스크 신호를 출력하도록 구성된 메모리 컨트롤러를 포함하고, 제1 더티 비트는 더티 상태를 가리키고, 제2 더티 비트는 클린 상태를 가리킨다.
본 발명에 따르면, 캐시 메모리 장치에서 캐시 라인 보다 작은 섹터 단위로 더티 정보를 저장하고, 더티 정보를 메모리 컨트롤러로 전송함으로써, 메모리 컨트롤러는 데이터 마스크 신호를 생성할 수 있다. 메모리 장치는 메모리 컨트롤러로부터 수신한 데이터 마스크 신호에 기반하여, 선택적으로 데이터를 저장할 수 있다. 이에 따라, 캐시 메모리 장치에서 갱신되지 않은 데이터가 메모리 장치에 저장되는 것을 방지하여, 향상된 안정성을 갖고, 전력 소모를 최소화할 수 있는 전자 장치, 시스템-온-칩, 및 그것의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 전자 장치를 예시적으로 보여주는 블록도이다.
도 2는 도 1의 전자 장치의 캐시 구조를 설명하기 위한 도면이다.
도 3a 내지 도 3c는 전자 장치의 동작을 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 캐시 세트를 설명하기 위한 도면이다.
도 5a 내지 도 5c는 도 1의 전자 장치의 동작을 보여주는 도면이다.
도 6은 도 1의 메모리 컨트롤러의 동작을 보여주는 순서도이다.
도 7은 도 6 순서도의 S400 단계의 동작을 좀더 상세하게 보여주는 타이밍도이다.
도 8은 도 1의 메모리 장치를 상세하게 보여주는 블록도이다.
도 9a 및 도 9b는 도 1의 메모리 장치의 동작을 설명하기 위한 타이밍도들이다.
도 10a 내지 도 10c 도 1의 전자 장치의 동작을 예시적인 실시 예에서 보여주는 순서도이다.
도 11은 본 발명의 실시 예에 따른 스토리지 장치를 예시적으로 보여주는 블록도이다.
도 12는 도 11의 메모리 컨트롤러를 예시적으로 보여주는 블록도이다.
도 13은 본 발명에 따른 SSD 시스템을 보여주는 블록도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 전자 장치를 예시적으로 보여주는 블록도이다. 도 1을 참조하면, 전자 장치(1000)는 시스템-온-칩(1100)(SoC; System-on-Chip) 및 메모리 장치(1200)를 포함할 수 있다. 예시적으로, 전자 장치(1000)는 데스크톱(desktop) 컴퓨터, 랩톱(laptop) 컴퓨터, 워크스테이션, 서버, 스마트폰, 태블릿 PC, 디지털 카메라, 블랙박스 등과 같은 다양한 컴퓨팅 장치들 중 하나일 수 있다.
SoC(1100)는 전자 장치(1000)의 전반적인 동작을 제어할 수 있다. 예를 들어, SoC(1100)는 전자 장치(1000)의 전반적인 동작을 제어하도록 구성된 애플리케이션 프로세서(AP; Application Processor)일 수 있다. SoC(1100)는 전자 장치(1000)에서 실행되는 운영 체제, 프로그램, 또는 애플리케이션을 실행할 수 있다.
SoC(1100)는 메모리 장치(1200)에 데이터를 저장하거나 또는 메모리 장치(1200)에 저장된 데이터를 읽을 수 있다. SoC(1100)는 프로세서(1110), 캐시 메모리 장치(1120), 및 메모리 컨트롤러(1130)를 포함할 수 있다. 프로세서(1110)는 전자 장치(1000)에서 수행되는 다양한 연산을 수행하고, 데이터를 처리할 수 있다.
캐시 메모리 장치(1120)는 프로세서(1110)로부터 수신된 신호들에 응답하여, 데이터를 저장하거나 또는 저장된 데이터를 프로세서(1110)로 제공할 수 있다. 캐시 메모리 장치(1120)는 메모리 장치(1200)보다 빠른 액세스 속도를 가질 수 있다. 즉, 메모리 장치(1200)에 저장된 데이터 중 일부가 캐시 메모리 장치(1120)에 저장됨으로써, 프로세서(1110)의 요청에 따른 액세스 속도가 향상될 수 있다. 예시적인 실시 예에서, 캐시 메모리 장치(1120)는 SRAM(Static Random Access Memory) 장치 일 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
예시적인 실시 예에서, 캐시 메모리 장치(1120)는 더티 정보(DI)를 생성할 수 있다. 캐시 메모리 장치(1120)는 더티 정보(DI), 및 데이터를 메모리 컨트롤러(1130)에게 전송할 수 있다. 더티 정보(DI)는 메모리 장치(1200)로부터 로드한 캐시 데이터에 대하여 갱신 여부를 가리킬 수 있다.
메모리 컨트롤러(1130)는 메모리 장치(1200)를 제어할 수 있다. 예를 들어, 메모리 컨트롤러(1130)는 메모리 장치(1200)를 제어하기 위한 어드레스(ADDR), 커맨드(CMD), 제어 신호(CTRL), 및 데이터 마스크 신호(DM)를 메모리 장치(1200)로 전송할 수 있고, 메모리 장치(1200)와 데이터 라인(DQ)을 통해 데이터(DATA)를 주고받을 수 있다.
메모리 장치(1200)는 메모리 컨트롤러(1130)의 제어에 따라 동작할 수 있다. 예를 들어, 메모리 장치(1200)는 메모리 컨트롤러(1130)로부터 수신된 신호들에 응답하여, 데이터(DATA)를 저장하거나 또는 저장된 데이터(DATA)를 메모리 컨트롤러(1130)로 제공할 수 있다. 예시적인 실시 예에서, 메모리 장치(1200)는 DRAM(Dynamic Random Access Memory) 장치일 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
예시적인 실시 예에서, 메모리 컨트롤러(1130) 및 메모리 장치(1200)는 미리 정해진 인터페이스를 기반으로 서로 통신할 수 있다. 미리 정해진 인터페이스는 LPDDR(Low Power Double DDR)일 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니며, 미리 정해진 인터페이스는 DDR(Double Data Rate), USB(Universal Serial Bus), MMC(multimedia card), PCI(peripheral component interconnection), PCI-E(PCI-express), ATA(Advanced Technology Attachment), SATA(Serial-ATA), PATA(Parallel-ATA), SCSI(small computer small interface), ESDI(enhanced small disk interface), IDE(Integrated Drive Electronics), MIPI(Mobile Industry Processor Interface), 또는 NVM-e(Nonvolatile Memory-express) 등과 같은 다양한 인터페이스들 중 적어도 하나를 포함할 수 있다.
예시적인 실시 예에서, 메모리 컨트롤러(1130)는 데이터 마스크 제어 회로(131)를 포함할 수 있다. 데이터 마스크 제어 회로(1131)는 캐시 메모리 장치(1120)로부터 더티 정보(DI)를 수신할 수 있다. 데이터 마스크 제어 회로(1131)는 수신한 더티 정보(DI)를 기반으로 데이터 마스크 라인을 통해 데이터 마스크 신호(DM)를 출력하도록 구성될 수 있다.
프로세서(1110)가 쓰기 요청을 전송하는 경우, 쓰기 요청된 데이터를 메모리 장치(1200)에 바로 저장하지 않고, 캐시 메모리 장치(1120)에 임시적으로 저장할 수 있다. 데이터가 캐시 메모리 장치(1120)에 저장된 이후에 쓰기 완료 신호가 프로세서(1110)로 전송될 수 있다. 이러한 쓰기 동작을 라이트-백(write-back) 방식이라 한다. 반면에, 프로세서(1110)는 쓰기 요청을 전송하는 경우, 쓰기 요청된 데이터를 캐시 메모리 장치(1120)에 저장하고, 곧바로 메모리 장치(1200)에 저장할 수 있다. 쓰기 완료 신호는 메모리 장치(1200)에 데이터가 저장된 이후에 프로세서(1110)로 전송될 수 있다. 이러한 쓰기 동작을 라이트-쓰루(write-through) 방식이라 한다.
라이트-백 방식으로 쓰기 동작이 수행되는 경우, 메모리 장치(1200)에서 캐시 메모리 장치(1120)로의 라인 필(Line Fill) 동작이 수행될 수 있으며, 라인 필 동작 중에 데이터 손상이 발생할 수 있다. 라인 필 동작은 캐시 메모리 장치(1120)에서 캐시 미스(cache miss)가 발생한 경우, 메모리 장치(1200)에서 대응하는 데이터를 읽고, 읽은 데이터를 캐시 메모리 장치(1120)에 저장하는 동작을 가리킬 수 있다. 즉, 라인 필 동작 수행 중에, 인터페이스 또는 캐시 메모리 장치(1120)에서 오류가 발생하여, 손상된 데이터가 캐시 메모리 장치(1120)에 저장될 수 있다. 또한, 손상된 데이터가 저장된 캐시 라인에 대하여 플러시 동작이 수행되어, 메모리 장치(1200)에 손상된 데이터가 저장될 수 있다.
예시적인 실시 예에서, 캐시 라인은 프로세서(1110)가 메모리 장치(1200)로 전송하는 읽기 또는 쓰기 요청에 따른 최소 액세스 단위일 수 있다. 캐시 라인들 각각의 크기는 예를 들어, 32 byte 또는 64 byte 일 수 있다. 이는 예시적인 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다.
종래의 전자 장치는 캐시 라인 단위로 메모리 장치를 액세스하고, 캐시 라인 단위로 더티 정보를 관리한다. 이에 따라, 종래의 전자 장치는 캐시 라인 전체에 대하여, 라인 필 동작 또는 플러시 동작을 수행함으로써, 캐시 라인에 포함된 데이터 중 일부 데이터가 손상된 경우, 손상된 데이터가 메모리 장치에 저장될 수 있다.
반면에, 본 발명에 따른 전자 장치(1000)는 캐시 라인보다 작은 섹터 단위로 더티 정보를 관리할 수 있다. 전자 장치(1000)는 섹터 단위로 관리되는 더티 정보를 기반으로 데이터 마스크 신호(DM)를 생성함으로써, 섹터 단위로 메모리 장치(1200)에 쓰기 동작을 수행할 수 있다. 따라서, 캐시 메모리 장치(1120)에서 프로세서(1110)에 의해 갱신되지 않은 섹터는 메모리 장치(1200)에 저장되지 않을 수 있다. 이로 인해, 불필요한 데이터 저장 동작이 최소화될 수 있으며, 따라서 메모리 장치(1200)에서의 오류가 감소될 수 있다. 본 발명에 따른 전자 장치(1000)의 동작은 이하의 도면들을 참조하여 더욱 상세하게 설명된다.
도 2는 도 1의 전자 장치의 캐시 구조를 설명하기 위한 도면이다. 간결한 설명을 위하여, 캐시 메모리 장치(1120)의 캐시 구조를 설명하는데 불필요한 구성 요소들은 생략된다.
캐시 메모리 장치(1120)는 복수의 캐시 세트들(CS1~CSn)을 포함할 수 있다. 캐시 세트(CS; cache set)는 캐시 라인, 및 캐시 엔트리(Entry)를 포함할 수 있다. 캐시 엔트리는 유효 비트(V), 더티 비트(D), 및 태그(TAG)를 포함할 수 있다.
메모리 장치(1200)는 복수의 캐시 라인들(CL1~CLm)을 포함할 수 있다. 예시적인 실시 예에서, 복수의 캐시 라인들(CL1~CLm)은 프로세서(1110) 요청에 따른 데이터 액세스 단위의 저장 공간을 가리킬 수 있다.
메모리 장치(1200)에 저장된 데이터 중 일부가 캐시 메모리 장치(1120)에 저장될 수 있다. 예시적인 실시 예에서, 제1 캐시 라인(CL1)은 제1 캐시 세트(CS1)와 대응되고, 제2 캐시 라인(CL2)은 제2 캐시 세트(CS2)와 대응되고, 제3 캐시 라인(CL3)은 제3 캐시 세트(CS3)와 대응되고, 제m 캐시 라인(CLm)은 제n 캐시 세트(CSn)와 대응될 수 있다.
캐시 라인은 제1 내지 제4 섹터들(S1~S4)을 포함할 수 있다. 제1 내지 제4 섹터들(S1~S4) 각각은 동일한 크기를 가질 수 있다. 예를 들어, 캐시 라인의 크기가 64 Byte 인 경우, 섹터의 크기는 8 Byte일 수 있다.
태그(TAG)는 각 캐시 세트에 저장된 캐시 데이터에 대한 어드레스 정보를 가리킬 수 있다. 예시적인 실시 예에서, 태그(TAG)는 캐시 데이터가 메모리 장치(1200)의 캐시 라인들 중 어느 캐시 라인과 대응되는지에 대한 정보일 수 있다. 태그(TAG)는 프로세서(1110)로부터 수신한 어드레스에 대응하는 데이터가 캐시 메모리 장치(1120)에 존재하는지 판별하기 위해서 사용될 수 있다. 즉, 태그(TAG)는 캐시 히트(cache hit)인지 캐시 미스(cache miss)인지 판별하는데 사용될 수 있다. 캐시 히트는 프로세서(1110)로부터 수신한 어드레스에 대응하는 데이터가 캐시 메모리 장치(1120)에 저장되어 있는 경우를 가리킬 수 있다. 캐시 미스는 프로세서(1110)로부터 수신한 어드레스에 대응하는 데이터가 캐시 메모리 장치(1120)에 저장되어 있지 않는 경우를 가리킬 수 있다.
더티 비트(D)는 각 캐시 세트에 캐시 데이터가 저장된 후에 갱신이 발생하였는지를 가리킬 수 있다. 즉, 캐시 데이터와 메모리 장치(1200)에 저장된 대응하는 데이터가 동일한지 여부를 가리킬 수 있다. 갱신이 발생하지 않은 경우, 더티 비트(D)는 클린 상태를 가리키도록 유지될 수 있다. 갱신이 발생한 경우, 더티 비트(D)는 더티 상태를 가리키도록 설정될 수 있다.
예시적인 실시 예에서, 더티 비트(D)가 제1 논리 값인 경우, 메모리 장치(1200)에 저장된 대응하는 데이터, 및 캐시 데이터가 동일함을 가리킬 수 있다. 더티 비트(D)가 제2 논리 값인 경우, 메모리 장치(1200)에 저장된 대응하는 데이터, 및 캐시 데이터가 동일하지 않음을 가리킬 수 있다.
유효 비트(V)는 메모리 장치(1200)로부터 해당 캐시 세트로 데이터가 업데이트된 적이 있는지 없는지를 나타내는 비트일 수 있다. 유효 비트(V)가 활성화된 상태를 가리키는 제2 논리 값인 경우, 메모리 장치(1200)로부터 해당 캐시 세트로 데이터가 로드된 적이 있다는 것을 나타내고, 유효 비트(V)가 비활성화된 상태를 가리키는 제1 논리 값인 경우, 메모리 장치(1200)로부터 해당 캐시 세트로 데이터가 로드된 적이 없다는 것을 나타낼 수 있다.
예시적인 실시 예에서, 복수의 캐시 라인들(CL1~CLm) 각각은 프로세서(1110)로부터 제공되는 어드레스에 의해 구분 또는 선택될 수 있다. 즉, 프로세서(1110)로부터 제공되는 어드레스에 의해 복수의 캐시 라인들(CL1~CLm) 중 적어도 하나의 캐시 라인이 선택되고, 선택된 캐시 라인에 대한 액세스 동작이 수행될 수 있다.
복수의 캐시 세트들(CS1~CSn) 각각은 프로세서(1110)로부터 제공되는 어드레스 중 적어도 일부(예를 들어, 부분 어드레스)에 의해 구분 또는 선택될 수 있다. 즉, 프로세서(1110)로부터 제공되는 어드레스 중 적어도 일부에 의해 복수의 캐시 세트들(CS1~CSn) 중 적어도 하나의 캐시 세트가 선택되고, 선택된 캐시 세트들에 대한 액세스 동작이 수행될 수 있다.
태그(TAG)는 프로세서(1110)로부터 제공되는 어드레스 중 적어도 일부 또는 나머지 일부를 포함할 수 있다. 예를 들어, 어드레스에 의해 또는 어드레스 중 적어도 일부에 의해 복수의 캐시 세트들(CS1~CSn) 중 적어도 하나가 선택되고, 선택된 캐시 세트들로부터의 태그들(TAG) 중 적어도 하나가 어드레스에 포함되는 경우, 캐시 히트인 것으로 판별될 수 있다. 또는 어드레스의 적어도 일부에 의해 복수의 캐시 세트들(CS1~CSn) 중 적어도 하나가 선택되고, 선택된 캐시 세트들로부터의 태그들(TAG)이 어드레스에 포함되지 않는 경우, 캐시 미스인 것으로 판별될 수 있다.
도 3a 내지 도 3c는 전자 장치의 동작을 보여주는 도면이다. 도면의 간결성을 위하여, 캐시 메모리 장치(1120)는 제1 내지 제3 캐시 세트들(CS1~CS3)을 포함하고, 메모리 장치(1200)는 제1 내지 제3 캐시 라인(CL1~CL3)을 포함하는 것으로 가정한다. 또한 제1 캐시 라인(CL1)은 제1 캐시 세트(CS1)와 대응되고, 제2 캐시 라인(CL2)은 제2 캐시 세트(CS2)와 대응되고, 제3 캐시 라인(CL3)은 제3 캐시 세트(CS3)와 대응되는 것으로 가정한다. 제1 캐시 라인(CL1)에 섹터 데이터(A1, A2, A3, A4)가 저장되고, 제3 캐시 라인(CL3)에 섹터 데이터(B1, B2, B3, B4)가 저장되는 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.
도 1, 도 2, 및 도 3a를 참조하면, 프로세서(1110)는 메모리 장치(1200)의 제3 캐시 라인(CL3)에 저장된 데이터를 캐시 메모리 장치(1120)의 제3 캐시 세트(CS3)에 저장하는 라인 필 동작을 수행할 수 있다. 예시적인 실시 예에서, 제3 캐시 라인(CL3)의 복수의 섹터 데이터(B1, B2, B3, B4)는 제3 캐시 세트(CS3)에 저장될 수 있다. 제3 캐시 라인(CL3)에서 제3 캐시 세트(CS3)로 라인 필 동작 수행 이후에, 제3 캐시 세트(CS3)의 유효 비트(V)는 활성화된 상태를 가리키는 제2 논리 값이 저장될 수 있고, 제3 캐시 세트(CS3)의 더티 비트(D)는 제1 논리 값이 저장될 수 있고, 제3 캐시 세트(CS3)의 태그(TAG)는 제3 캐시 라인(CL3)의 어드레스 정보를 가리키는 제3 태그(TAG3)가 저장될 수 있다.
그러나, 메모리 장치(1200)에서 캐시 메모리 장치(1120)으로 라인 필 동작을 수행함에 있어서, 데이터가 메모리 장치(1200)에서 캐시 메모리 장치(1120)로 전송되는 과정에서 오류가 발생할 수 있다. 또는 캐시 메모리 장치(1120)에서 데이터가 저장되는 과정에서 오류가 발생할 수 있다.
예시적인 실시 예에서, 프로세서(1110)는 메모리 장치(1200)의 제1 캐시 라인(CL1)에 저장된 데이터를 캐시 메모리 장치(1120)의 제1 캐시 세트(CS1)에 라인 필 동작을 수행할 수 있다. 예시적인 실시 예에서, 복수의 섹터 데이터(A1, A2', A3, A4)는 제1 캐시 세트(CS1)에 저장될 수 있다. 즉, 인터페이스 상의 오류 또는 캐시 메모리 장치(1120)의 오류로 인하여, 제1 캐시 라인(CL1)의 제2 섹터 데이터(A2)가 아닌, 손상된 제2 섹터 데이터(A2')가 제1 캐시 세트(CS1)에 저장될 수 있다. 제1 캐시 라인(CL1)에서 제1 캐시 세트(CS1)로 라인 필 동작 수행 이후에, 제1 캐시 세트(CS1)의 유효 비트(V)는 활성화된 상태를 가리키는 제2 논리 값이 저장될 수 있고,제1 캐시 세트(CS1)의 더티 비트(D)는 제1 논리 값이 저장될 수 있고, 제1 캐시 세트(CS1)의 태그(TAG)는 제1 캐시 라인(CL1)의 어드레스 정보를 가리키는 제1 태그(TAG1)가 저장될 수 있다.
도 3b를 참조하면, 프로세서(1110)는 라이트-백 방식의 쓰기 동작을 수행할 수 있다. 프로세서(1110)는 제1 캐시 라인(CL1)의 제3 섹터(S3)를 가리키는 제1 어드레스(ADDR1)에 대한 쓰기 요청을 캐시 메모리 장치(1120)에 전송할 수 있다. 예시적인 실시 예에서, 프로세서(1110)는 제1 어드레스(ADDR1)를 포함하는 쓰기 요청 및 섹터 데이터(A3')를 캐시 메모리 장치(1120)에 전송할 수 있다.
캐시 메모리 장치(1120)는 수신한 제1 어드레스(ADDR1), 및 제1 태그(TAG1)를 비교함으로써, 제1 어드레스(ADDR1)에 대응하는 데이터가 제1 캐시 세트(CS1)에 저장되어 있는지 판별할 수 있다. 즉, 캐시 히트인지 판별할 수 있다. 제1 태그(TAG1)는 제1 캐시 라인(CL1)을 가리키므로, 캐시 메모리 장치는 캐시 히트라고 판별할 수 있다. 캐시 메모리 장치(1120)는 수신한 섹터 데이터(A3')를 제1 캐시 세트(CS1)의 제3 섹터(S3)에 저장할 수 있다.
캐시 메모리 장치(1120)는 제1 캐시 세트(CS1)의 더티 비트(D)에 제2 논리 값을 저장할 수 있다. 즉, 메모리 장치(1200)로부터 라인 필 동작 수행 후에 데이터가 갱신되었으므로, 제1 캐시 세트(CS1)의 더티 비트(D)는 더티 상태를 가리키도록 설정될 수 있다.
도 3c를 참조하면, 프로세서(1110)로부터 제1 캐시 라인(CL1)을 가리키는 제2 어드레스(ADDR2)에 대한 플러시 요청을 수신한 경우, 또는 캐시 메모리 장치(1120) 내부 동작에 의하여 플러시 동작이 필요하다고 판단된 경우, 캐시 메모리 장치(1120)는 제1 캐시 세트(CS1)에 대한 플러시 동작을 수행할 수 있다. 예시적인 실시 예에서, 캐시 메모리 장치(1120)의 복수의 캐시 세트들의 수는 한정적이므로, 주기적으로 또는 캐시 미스가 발생한 경우, 다른 캐시 라인을 위하여 플러시 동작을 수행할 수 있다.
캐시 메모리 장치(1120)는 플러시 동작을 수행하기 위해서 복수의 캐시 세트들 중 희생 캐시 세트를 선택할 수 있다. 예시적인 실시 예에서, 제1 캐시 세트(CS1)가 희생 캐시 세트로 선택되었다면, 캐시 메모리 장치(1120)는 제1 캐시 세트(CS1)가 더티 상태 또는 클린 상태 여부를 판별할 수 있다. 제1 캐시 세트(CS1)의 더티 비트(D)에 제2 논리 값이 저장되어 있으므로, 캐시 메모리 장치(1120)는 제1 캐시 세트(CS1)가 더티 상태임을 판별할 수 있다.
캐시 메모리 장치(1120)는 제1 캐시 세트(CS1)에 대하여 플러시 동작을 수행할 수 있다. 캐시 메모리 장치(1120)는 제1 태그(TAG1)가 가리키는 제2 어드레스(ADDR2)에 대한 쓰기 요청, 및 제1 캐시 세트에 저장된 복수의 섹터 데이터(A1, A2', A3', A4)를 메모리 장치(1200)로 전송할 수 있다.
메모리 장치(1200)는 수신한 쓰기 요청에 응답하여, 제2 어드레스(ADDR2)가 가리키는 제1 캐시 라인(CL1)에 복수의 섹터 데이터(A1, A2', A3', A4)를 저장할 수 있다. 이에 따라, 제1 캐시 라인(CL1)에 손상된 제2 섹터 데이터(A2')가 저장될 수 있다. 즉, 캐시 메모리 장치(1120)에서 제1 캐시 세트(CS1)의 제3 섹터(S3)만 갱신되고, 제1 캐시 세트(CS1)의 제2 섹터(S2)는 갱신되지 않았지만, 제1 캐시 세트(CS1)에 저장된 복수의 섹터 데이터(A1, A2', A3', A4) 모두 메모리 장치(1200)에 다시 저장되면서, 손상된 데이터가 메모리 장치(1200)에 저장되고 시스템 오류를 발생시킬 수 있다.
도 4는 본 발명의 실시 예에 따른 캐시 세트를 설명하기 위한 도면이다. 도 2, 및 도 4를 참조하면, 캐시 세트는 캐시 라인, 및 캐시 엔트리(Entry)를 포함할 수 있다. 캐시 엔트리(Entry)는 유효 비트(V), 더티 비트맵(D1, D2, D3, D4), 태그(TAG)를 포함할 수 있다. 캐시 라인은 N개의 섹터들(단, N은 양수)을 포함할 수 있고, 더티 비트맵은 섹터들에 대응하는 N개의 더티 비트들을 포함할 수 있다. 도면의 간결성, 및 설명의 편의를 위하여, 더티 비트맵은 제1 내지 제4 더티 비트들(D1~D4)을 포함하고, 및 캐시 라인은 제1 내지 제4 섹터들(S1~S4)을 포함하는 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.
제1 내지 제4 더티 비트들(D1~D4) 각각은 제1 내지 제4 섹터들(S1~S4) 각각과 대응될 수 있다. 즉, 제1 더티 비트(D1)는 제1 섹터(S1)에 대한 더티 정보를 가리키고, 제2 더티 비트(D2)는 제2 섹터(S2)에 대한 더티 정보를 가리키고, 제3 더티 비트(D3)는 제3 섹터(S3)에 대한 더티 정보를 가리키고, 제4 더티 비트(D4)는 제4 섹터(S4)에 대한 더티 정보를 가리킬 수 있다. 태그(TAG), 유효 비트(V) 및 제1 내지 제4 섹터(S1~S4)에 대하여 도 2에서 설명하였으므로, 상세한 설명은 생략된다.
도 5a 내지 도 5c는 도 1의 전자 장치의 동작을 보여주는 도면이다. 도면의 간결성을 위하여, 캐시 메모리 장치(1120)는 제1 내지 제3 캐시 세트들(CS1~CS3)을 포함하고, 메모리 장치(1200)는 제1 내지 제3 캐시 라인(CL1~CL3)을 포함하는 것으로 가정한다. 또한 제1 캐시 라인(CL1)은 제1 캐시 세트(CS1)와 대응되고, 제2 캐시 라인(CL2)은 제2 캐시 세트(CS2)와 대응되고, 제3 캐시 라인(CL3)은 제3 캐시 세트(CS3)와 대응되는 것으로 가정한다. 제1 캐시 라인(CL1)에 섹터 데이터(A1, A2, A3, A4)가 저장되고, 제3 캐시 라인(CL3)에 섹터 데이터(B1, B2, B3, B4)가 저장되는 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.
프로세서(1110)는 제3 캐시 라인(CL3)에 대한 라인 필 동작을 수행할 수 있다. 제3 캐시 라인(CL3)에 대한 라인 필 동작은 도 3a을 참조하여 설명된 바와 유사하므로, 이에 대한 상세한 설명은 생략된다. 다만, 섹터 단위로 더티 정보를 관리하므로, 제3 캐시 세트(CS3)의 제1 내지 제4 더티 비트들(D1~D4) 각각은 제1 논리 값이 저장될 수 있다.
메모리 장치(1200)에서 캐시 메모리 장치(1120)로 라인 필 동작을 수행함에 있어서, 데이터가 메모리 장치(1200)에서 캐시 메모리 장치(1120)로 전송되는 과정에서 오류가 발생할 수 있다. 또는 캐시 메모리 장치(1120)에서 데이터가 저장되는 과정에서 오류가 발생할 수 있다.
예시적인 실시 예에서, 프로세서(1110)는 메모리 장치(1200)의 제1 캐시 라인(CL1)에 저장된 데이터를 캐시 메모리 장치(1120)의 제1 캐시 세트(CS1)에 저장하는 라인 필 동작을 수행할 수 있다. 도 3a를 참조하여 설명된 바와 같이, 복수의 섹터 데이터(A1, A2', A3, A4)는 제1 캐시 세트(CS1)에 저장될 수 있다. 이에 대한 상세한 설명은 상술하였으므로 생략된다. 다만, 제1 캐시 세트(CS1)의 제1 내지 제4 더티 비트들(D1~D4)은 제1 논리 값이 저장될 수 있다.
도 5b를 참조하면, 프로세서(1110)는 라이트-백 방식의 쓰기 동작을 수행할 수 있다. 프로세서(1110)는 제1 캐시 라인(CL1)의 제3 섹터(S3)를 가리키는 제1 어드레스(ADDR1)에 대한 쓰기 요청을 캐시 메모리 장치(1120)에 전송할 수 있다. 예시적인 실시 예에서, 프로세서(1110)는 제1 어드레스(ADDR1)를 포함하는 쓰기 요청 및 섹터 데이터(A3')를 캐시 메모리 장치(1120)에 전송할 수 있다. 캐시 메모리 장치(1120)는 수신한 섹터 데이터(A3')를 제1 캐시 세트(CS1)의 제3 섹터(S3)에 저장할 수 있다.
캐시 메모리 장치(1120)는 제1 캐시 세트(CS1)의 제3 더티 비트(D3)에 제2 논리 값을 저장할 수 있다. 즉, 메모리 장치(1200)로부터 라인 필 동작 수행 후에 제1 캐시 세트(CS1)의 제3 섹터(S3)가 갱신되었으므로, 대응되는 제1 캐시 세트(CS1)의 제3 더티 비트(D3)는 더티 상태를 가리키도록 설정될 수 있다.
도 5c를 참조하면, 프로세서(1110)로부터 제1 캐시 라인(CL1)을 가리키는 제2 어드레스(ADDR2)에 대한 플러시 요청을 수신한 경우, 또는 캐시 메모리 장치(1120) 내부 동작에 의하여 플러시 동작이 필요하다고 판단된 경우, 캐시 메모리 장치(1120)는 제1 캐시 세트(CS1)에 대한 플러시 동작을 수행할 수 있다.
캐시 메모리 장치(1120)는 제1 태그(TAG1)가 가리키는 제2 어드레스(ADDR2)에 대한 쓰기 요청, 제1 캐시 세트에 저장된 복수의 섹터 데이터(A1, A2', A3', A4), 및 더티 정보(DI)를 메모리 컨트롤러(1130)로 전송할 수 있다.
더티 정보(DI)는 더티 비트맵 또는 제1 내지 제4 더티 비트들(D1~D4)을 포함할 수 있다. 더티 정보(DI)의 제1 내지 제4 더티 비트들(D1~D4)은 제1 캐시 세트(CS1)의 제1 내지 제4 더티 비트들(D1~D4)과 대응될 수 있다. 도 5b의 실시 예에서, 더티 정보(DI)의 제1 더티 비트(D1), 제2 더티 비트(D2), 및 제4 더티 비트(D4)는 클린 상태를 가리키는 제1 논리 값을 가지고, 제3 더티 비트(D3)는 더티 상태를 가리키는 제2 논리 값을 가질 수 있다.
메모리 컨트롤러(1130)의 데이터 마스크 제어 회로(1131)는 더티 정보(DI)를 수신할 수 있다. 메모리 컨트롤러(1130)는 수신한 제2 어드레스(ADDR2), 복수의 섹터 데이터(A1, A2', A3', A4), 및 더티 정보(DI)에 응답하여, 데이터 마스크 신호(DM)를 생성할 수 있다. 예시적인 실시 예에서, 더티 정보(DI)의 제1 더티 비트(D1), 제2 더티 비트(D2), 및 제4 더티 비트(D4)는 클린 상태를 가리키는 제1 논리 값이므로, 제1 섹터 데이터(A1), 제2 섹터 데이터(A2'), 및 제4 섹터 데이터(A4)에 대응하는 데이터 마스크 신호(DM)는 활성화 상태를 가리키는 제2 논리 값을 가질 수 있다. 더티 정보(DI)의 제3 더티 비트(D3)는 더티 상태를 가리키는 제2 논리 값이므로, 제3 섹터 데이터(A3')에 대응하는 데이터 마스크 신호(DM)는 비활성화 상태를 가리키는 제1 논리 값을 가질 수 있다. 메모리 컨트롤러(1130)는 데이터 마스크 신호(DM)를 데이터 마스크 라인을 통해 메모리 장치(1200)에게 전송할 수 있다. 이에 대한 보다 상세한 설명은 이하의 도면을 참조하여 설명된다.
메모리 장치(1200)는 수신한 쓰기 요청에 응답하여, 데이터 마스크 신호(DM)를 기반으로, 데이터를 선택적으로 저장할 수 있다. 즉, 제1, 제2, 및 제4 섹터 데이터(A1, A2', A4)에 대응하는 데이터 마스크 신호(DM)는 활성화 상태를 가리키는 제2 논리 값이므로, 제1 섹터 데이터(A1), 제2 섹터 데이터(A2'), 및 제4 섹터 데이터(A4)는 메모리 셀 어레이에 저장되지 않을 수 있다. 다시 말해, 메모리 장치(1200)는 데이터 마스크 신호(DM)를 기반으로 제1, 제2, 및 제4 섹터 데이터(A1, A2', A4)를 메모리 셀 어레이에 저장하지 않거나, 블록하거나, 또는 마스킹(Masking)할 수 있다. 마스킹은 활성화된 데이터 마스크 신호(DM)에 대응하는 데이터를 메모리 장치(1200)에 저장 또는 기입하지 않는 것을 가리킬 수 있다. 제3 섹터 데이터(A3')에 대응하는 데이터 마스크 신호(DM)는 비활성화 상태를 가리키는 제1 논리 값이므로, 제3 섹터 데이터(A3')는 메모리 셀 어레이에 저장될 수 있다. 이에 따라, 제1 캐시 라인(CL1)에 손상된 제2 섹터 데이터(A2')가 메모리 장치(1200)에 저장되지 않을 수 있다.
상술된 바와 같이, 본 발명의 실시 예에 따른 전자 장치(1000)는, 라이트-백 방식으로 쓰기 동작을 수행함에 있어서, 캐시 세트는 복수의 더티 비트들을 포함할 수 있다. 즉, 전자 장치(1000)는 캐시 라인보다 작은 섹터 단위로 더티 비트를 관리함으로써, 섹터 마다 클린 상태 또는 더티 상태 여부를 판별할 수 있다. 캐시 메모리 장치(1120)는 더티 정보(DI)를 메모리 컨트롤러(1130)에게 전송할 수 있다. 메모리 컨트롤러(1130)는 더티 정보(DI)를 기반으로 데이터 마스크 신호(DM)를 생성할 수 있다. 메모리 장치(1200)는 데이터 마스크 라인을 통해 데이터 마스크 신호(DM)를 수신할 수 있다. 메모리 장치(1200)는 데이터 마스크 신호(DM)를 기반으로 선택적으로 데이터를 메모리 셀 어레이에 저장할 수 있다.
그 결과, 메모리 장치(1200)에서 캐시 메모리 장치(1120)로 라인 필 동작 수행 중, 인터페이스 또는 캐시 메모리 장치(1120) 오류로 인하여 데이터가 손상될 수 있다. 종래에는 손상된 데이터가 캐시 메모리 장치(1120)에 저장되고, 이후에 메모리 장치(1200)로 손상된 데이터기 플러시될 수 있다. 그 결과, 손상된 데이터가 메모리 장치(1200)에 저장되고, 시스템 오류가 발생할 수 있다.
반면에, 본 발명의 실시 예에 따른 전자 장치(1000)는 더티 정보(DI), 및 데이터 마스크 신호(DM)를 통해 섹터 단위로 데이터를 메모리 장치(1200)에 저장할 수 있으므로, 갱신되지 않은 섹터 데이터가 메모리 장치(1200)에 저장되지 않을 수 있다. 따라서, 데이터를 메모리 셀 어레이에 저장하기 위해 사용되는 전류를 감소시켜 전력 소모를 최소화할 수 있다. 향상된 전자 장치를 제공할 수 있다.
도 6은 도 1의 메모리 컨트롤러의 동작을 보여주는 순서도이다. 설명의 편의를 위해, 메모리 컨트롤러(1130)는 제1 내지 제16 데이터 라인들(DQ1~DQ16)을 통해 데이터를 주고받는 것으로 가정한다. 또한 메모리 컨트롤러(1130)는 제1 내지 제16 데이터 라인들(DQ1~DQ16)에 대하여 하나의 데이터 마스크 라인을 갖는 것으로 가정한다. 그러나 본 발명의 범위는 이에 한정되는 것은 아니다.
설명의 편의를 위하여, 하나의 캐시 라인의 크기는 64 byte인 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다. 예시적인 실시 예에서, 제1 내지 제16 데이터 라인들(DQ1~DQ16)을 통해 캐시 라인에 대응하는 데이터를 전송하기 위해서, 버스트 길이(BL; burst length)는 BL=32로 설정되는 것으로 가정한다.
도 5c, 및 도 6을 참조하면, S100 단계에서, 메모리 컨트롤러(1130)는 프로세서(1110)로부터 쓰기 요청을 수신할 수 있다. 예시적인 실시 예에서, 메모리 컨트롤러(1130)는 어드레스, 더티 정보(DI)를 포함하는 쓰기 요청(또는 쓰기 커맨드), 및 쓰기 데이터(DATA)를 수신할 수 있다. 더티 정보(DI)는 제1 내지 제4 더티 비트들(D1~D4) 또는 더티 비트맵을 포함할 수 있다. 쓰기 데이터(DATA)는 제1 내지 제4 섹터 데이터(A1, A2', A3', A4)를 포함할 수 있다.
S200 단계에서, 메모리 컨트롤러(1130)는 쓰기 데이터(DATA)를 제1 내지 제16 데이터 라인들(DQ1~DQ16)로 출력할 수 있도록, 버스트 길이(BL=32)에 대응하는 데이터 비트들로 순차 배열할 수 있다. 즉, 제1 섹터 데이터(A1)는 제1 내지 제8 버스트 길이 동안 데이터 라인들(DQ1~DQ16)을 통해 출력하도록 배열하고, 제2 섹터 데이터(A2')는 제9 내지 제16 버스트 길이 동안 데이터 라인들(DQ1~DQ16)을 통해 출력하도록 배열하고, 제3 섹터 데이터(A3')는 제17 내지 제24 버스트 길이 동안 데이터 라인들(DQ1~DQ16)을 통해 출력하도록 배열하고, 제4 섹터 데이터(A4)는 제25 내지 제32 버스트 길이 동안 데이터 라인들(DQ1~DQ16)을 통해 출력하도록 배열할 수 있다.
쓰기 데이터(DATA)는 제1 내지 제32 입력 데이터(Din_1~Din_32)를 포함할 수 있다. 예시적인 실시 예에서, 쓰기 데이터(DATA)는 제1 버스트 길이 동안 복수의 데이터 라인들(DQ1~DQ16)에 전송되는 제1 입력 데이터(Din_1), 제2 버스트 길이 동안 복수의 데이터 라인들(DQ1~DQ16)에 전송되는 제2 입력 데이터(Din_2), 제3 버스트 길이 동안 복수의 데이터 라인들(DQ1~DQ16)에 전송되는 제3 입력 데이터(Din_3), 제4 버스트 길이 동안 복수의 데이터 라인들(DQ1~DQ16)에 전송되는 제4 입력 데이터(Din_4)를 포함할 수 있다. 나머지 입력 데이터들(Din_5~Din_32)은 이와 유사한 구조를 가지므로, 상세한 설명은 생략된다.
즉, 제1 섹터 데이터(A1)는 제1 내지 제8 입력 데이터(Din_1~Din_8)에 대응되고, 제2 섹터 데이터(A2')는 제9 내지 제16 입력 데이터(Din_9~Din_16)에 대응되고, 제3 섹터 데이터(A3')는 제17 내지 제24 입력 데이터(Din_17~Din_24)에 대응되고, 제4 섹터 데이터(A4)는 제25 내지 제32 입력 데이터(Din_25~Din_32)에 대응될 수 있다.
S300 단계에서, 메모리 컨트롤러(1130)는 더티 정보(DI)를 기반으로, 데이터 마스크 신호(DM)를 생성할 수 있다. 데이터 마스크 신호(DM)는 버스트 길이(BL=32)에 대응하여, 제1 내지 제32 데이터 마스크 신호들(DM1~DM32)을 포함할 수 있다. 데이터 마스크 신호들(DM1~DM32) 각각은 복수의 입력 데이터들(Din_1~Din_32) 각각과 대응될 수 있다. 즉, 제1 데이터 마스크 신호(DM1)는 제1 입력 데이터(Din_1)에 대한 마스크 정보를 가리키고, 제2 데이터 마스크 신호(DM2)는 제2 입력 데이터(Din_2)에 대한 마스크 정보를 가리키고, 제3 데이터 마스크 신호 (DM3)는 제3 입력 데이터(Din_3)에 대한 마스크 정보를 가리키고, 제4 데이터 마스크 신호(DM4)는 제4 입력 데이터(Din_4)에 대한 마스크 정보를 가리킬 수 있다. 나머지 데이터 마스크 신호들(DM5~DM32)은 이와 유사한 구조를 가지므로, 상세한 설명은 생략된다.
예시적인 실시 예에서, 더티 비트가 제1 논리 값인 경우, 대응하는 데이터는 클린 상태이므로, 메모리 장치(1200)에 저장되지 않을 수 있다. 즉, 메모리 장치(1200)는 데이터를 마스킹할 수 있다. 따라서, 메모리 컨트롤러(1130)는 데이터 마스크 신호(DM)를 활성화 상태를 가리키는 제2 논리 값으로 설정할 수 있다. 더티 비트가 제2 논리 값인 경우, 대응하는 데이터는 더티 상태이므로, 메모리 장치(1200)에 저장될 수 있다. 따라서, 메모리 컨트롤러(1130)는 데이터 마스크 신호(DM)를 비활성화 상태를 가리키는 제1 논리 값으로 설정할 수 있다. 데이터 마스크 신호를 생성하는 방법에 관한 보다 상세한 설명은 도 7에서 설명된다.
S400 단계에서, 메모리 컨트롤러(1130)는 데이터 스트로브 신호(DQS)에 동기하여 쓰기 데이터(DATA), 및 데이터 마스크 신호(DM)를 출력할 수 있다. 즉, 메모리 컨트롤러(1130)는 마스크 쓰기(MWR; Mask Write) 동작을 수행할 수 있다. 예시적인 실시 예에서, 메모리 컨트롤러(1130)는 데이터 스트로브 신호(DQS)를 기반으로 데이터 라인들(DQ1~DQ16)을 통해 쓰기 데이터를 전송할 수 있다. 예를 들어, 메모리 컨트롤러(1130)는 데이터 스트로브 신호(DQS)를 생성하고, 생성된 데이터 스트로브 신호(DQS)에 동기하여 쓰기 데이터를 데이터 라인들(DQ1~DQ16)을 통해 출력할 수 있다. 또한 메모리 컨트롤러(1130)는 데이터 스트로브 신호(DQS)에 동기하여 데이터 마스크 신호(DM)를 데이터 마스크 라인을 통해 출력할 수 있다.
도 7은 도 6 순서도의 S400 단계의 동작을 좀더 상세하게 보여주는 타이밍도이다. 도 1 및 도 7을 참조하면, 메모리 컨트롤러(1130)는 데이터 스트로브 신호(DQS)에 동기하여 쓰기 데이터, 및 데이터 마스크 신호(DM)를 출력할 수 있다. 예시적인 실시 예에서, 메모리 컨트롤러(1130)는 데이터 스트로브 신호(DQS)를 기반으로 데이터 라인들(DQ1~DQ16)을 통해 쓰기 데이터를 전송할 수 있다. 예를 들어, 메모리 컨트롤러(1130)는 데이터 스트로브 신호(DQS)의 상승 에지 및 하강 에지에 동기하여 쓰기 데이터를 데이터 라인들(DQ1~DQ16)을 통해 출력할 수 있다. 또한 메모리 컨트롤러(1130)는 데이터 스트로브 신호(DQS)에 동기하여 데이터 마스크 신호(DM)를 데이터 마스크 라인을 통해 출력할 수 있다.
예시적인 실시 예에서, 도 5c를 참조하면, 더티 정보(DI)의 제1 더티 비트(D1)는 제1 논리 값을 가지고, 제2 더티 비트(D2)는 제1 논리 값을 가지고, 제3 더티 비트(D3)는 제2 논리 값을 가지고, 제4 더티 비트(D4)는 제1 논리 가지는 것으로 가정한다. 복수의 섹터 데이터(A1, A2', A3', A4)가 메모리 장치(1200)로 전송되는 것으로 가정한다. 하지만, 발명의 범위가 이에 한정되는 것은 아니다. 상술한 바와 같이, 제1 논리 값은 클린 상태를 의미하고, 제2 논리 값은 더티 상태를 의미할 수 있다.
더티 정보의(DI) 제1 더티 비트(D1)는 제1 논리 값을 가지므로, 제1 섹터 데이터(A1)는 메모리 장치(1200)에 저장될 필요가 없고, 제2 더티 비트(D2)는 제1 논리 값을 가지므로, 제2 섹터 데이터(A2')는 메모리 장치(1200)에 저장될 필요가 없고, 제3 더티 비트(D3)는 제2 논리 값을 가지므로, 제3 섹터 데이터(A3')는 메모리 장치(1200)에 저장될 필요가 있고, 제4 더티 비트(D4)는 제1 논리 값을 가지므로, 제4 섹터 데이터(A4)는 메모리 장치(1200)에 저장될 필요가 없을 수 있다.
따라서, 제1 섹터 데이터(A1)에 대응되는 제1 내지 제8 입력 데이터들(Din_1~Din_8)은 마스킹 활성화되고, 제2 섹터 데이터(A2')에 대응되는 제9 내지 제16 입력 데이터들(Din_9~Din_16)은 마스킹 활성화되고, 제3 섹터 데이터(A3')에 대응되는 제17 내지 제24 입력 데이터들(Din_17~Din_24)은 마스킹 비활성화되고, 제4 섹터 데이터(A4)에 대응되는 제25 내지 제32 입력 데이터들(Din_25~Din_32)은 마스킹 활성화될 수 있다.
즉, 제1 내지 제8 입력 데이터들(Din_1~Din_8)에 대응되는 제1 내지 제8 데이터 마스크 신호들(DM1~DM8)은 제2 논리 값을 가지고, 제9 내지 제16 입력 데이터들(Din_9~Din_16)에 대응되는 제9 내지 제16 데이터 마스크 신호들(DM9~DM16)은 제2 논리 값을 가지고, 제17 내지 제24 입력 데이터들(Din_17~Din_24)에 대응되는 제17 내지 제24 데이터 마스크 신호들(DM17~DM24)은 제1 논리 값을 가지고, 제25 내지 제32 입력 데이터들(Din_25~Din_32)에 대응되는 제25 내지 제32 데이터 마스크 신호들(DM25~DM32)은 제1 논리 값을 가질 수 있다.
다시 말해, 제1 논리 값이 로직 로우이고, 제2 논리 값이 로직 하이라고 가정하는 경우, 제1 구간(T1) 동안, 데이터 마스크 신호(DM)는 로직 하이이고, 제2 구간(T2) 동안 데이터 마스크 신호(DM)는 로직 하이이고, 제3 구간(T3) 동안 데이터 마스크 신호(DM)는 로직 로우이고, 제4 구간(T4) 동안 데이터 마스크 신호(DM)는 로직 하이일 수 있다.
데이터 마스크 신호는 DDR 4.0 사양(Specification)의 프로토콜을 참조하면, 데이터 마스크(DM_n; Data Mask) 신호에 대응될 수 있다. 전자 장치(1000)는 모드 레지스터를 설정함으로써, 데이터 마스크 기능을 활성화 또는 비활성화할 수 있다. 전자 장치(1000)는 제5 모드 레지스터(MR5)의 제10 어드레스(A10)를 통해 데이터 마스크 기능을 활성화 또는 비활성화 할 수 있다. 전자 장치(1000)는 제5 모드 레지스터(MR5)의 제10 어드레스(A10)를 '0'으로 설정함으로써, 데이터 마스크 기능을 비활성화하고, 제5 모드 레지스터(MR5)의 제10 어드레스(A10)를 '1'로 설정함으로써, 데이터 마스크 기능을 활성화할 수 있다.
예시적인 실시 예에서, 도 5c를 참조하면, 제1 더티 비트, 제2 더티 비트, 및 제4 더티 비트들(D1, D2, D4)은 제1 논리 값이고, 제3 더티 비트(D3)는 제2 논리 값을 갖는 더티 정보(DI)를 수신할 수 있다. 메모리 컨트롤러(1130)는 더티 정보(DI)를 기반으로 DM_n 신호를 전송할 수 있다.
즉, 제1 구간(T1) 동안, DM_n 신호를 로직 로우로 함으로써, 제1 내지 제8 입력 데이터들(Din_1~Din_8)을 마스킹 하고, 제2 구간(T2) 동안, DM_n 신호를 로직 로우로 함으로써, 제8 내지 제16 입력 데이터들(Din_8~Din_16)을 마스킹 하고, 제3 구간(T3) 동안, DM_n 신호를 로직 하이로 함으로써, 제17 내지 제 24 입력 데이터들(Din_17~Din_24)을 마스킹 하지 않고, 제4 구간(T4) 동안, DM_n 신호를 로직 로우로 함으로써, 제25 내지 제32 입력 데이터들(Din_25~Din_32)을 마스킹할 수 있다.
도 8은 도 1의 메모리 장치를 상세하게 보여주는 블록도이다. 도 1 및 도 8을 참조하면, 메모리 장치(1200)는 메모리 셀 어레이(1210), 행 디코더(1220), 열 디코더(1230), 제어 로직 회로(1240), 및 입출력 회로(1250)를 포함할 수 있다.
메모리 셀 어레이(1210)는 복수의 메모리 셀들을 포함할 수 있다. 복수의 메모리 셀들은 스토리지 캐패시터 및 트랜지스터를 포함하는 DRAM(Dynamic Random Access Memory) 셀일 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 복수의 메모리 셀들은 복수의 워드라인들 및 복수의 비트라인들과 각각 연결될 수 있다.
행 디코더(1220)는 제어 로직 회로(1240)의 제어에 따라 복수의 워드라인들 중 적어도 하나의 워드라인을 선택하고, 선택된 워드라인을 구동할 수 있다. 열 디코더(1230)는 제어 로직 회로(1240)의 제어에 따라 복수의 비트라인들 중 적어도 하나의 비트라인을 선택하고, 선택된 비트라인을 구동할 수 있다.
제어 로직 회로(1240)는 메모리 컨트롤러(1130)로부터 어드레스(ADDR), 커맨드(CMD), 및 제어 신호(CTRL) 수신하고, 수신된 신호들을 기반으로 메모리 장치(1200)의 구성 요소들을 제어할 수 있다. 제어 로직 회로(1240)는 메모리 컨트롤러(1130)로부터 데이터 마스크 라인을 통해 데이터 마스크 신호(DM)를 수신할 수 있다.
제어 로직 회로(1240)는 데이터 마스크 신호(DM)를 기반으로 선택적으로 데이터를 메모리 셀 어레이(1210)에 저장할 수 있다. 예시적인 실시 예에서, 데이터 마스크 신호(DM)가 제1 논리 값인 경우, 제어 로직 회로(1240)는 대응하는 입력 데이터를 메모리 셀 어레이(1210)에 저장할 수 있다. 데이터 마스크 신호(DM)가 제2 논리 값인 경우, 제어 로직 회로(1240)는 대응하는 입력 데이터를 메모리 셀 어레이(1210)에 저장하지 않을 수 있다.
입출력 회로(1250)는 메모리 컨트롤러(1130)로부터 데이터 스트로브 신호(DQS)와 함께 데이터 라인들(DQ1~DQ16)을 통해 쓰기 데이터(DATA)를 수신할 수 있다.
상술된 바와 같이, 본 발명의 실시 예에 따른 전자 장치(1000)는 캐시 라인보다 작은 섹터 단위로 더티 비트를 두고, 더티 정보를 메모리 컨트롤러로 전송함으로써, 메모리 장치(1200)는 데이터 마스크 신호(DM)에 기반하여, 선택적으로 데이터를 저장할 수 있다. 그 결과, 시스템 안정성을 향상시키고, 전력 소모를 최소화할 수 있다.
도 9a 및 도 9b는 도 1의 메모리 장치의 동작을 설명하기 위한 타이밍도들이다. 도 9a 및 도 9b를 참조하여, 마스크 쓰기(MWR; Mask Write) 동작이 설명된다. MWR 동작은 JEDEC 표준에 의해 정의된 LPDDR, DDR, GDDR 등과 같은 다양한 표준 인터페이스를 통해 지원되는 다양한 동작들과 대응될 수 있다. 도1, 및 도 9를 참조하면, 전자 장치(1000)는 도 9에 도시된 타이밍도를 기반으로 마스크 쓰기 동작을 수행할 수 있다.
데이터 마스크 신호는 데이터 마스크 반전(DMI; Data Mask Inversion) 신호에 대응될 수 있다. 전자 장치(1000)는 DMI 신호를 통해 데이터 마스크 기능, 및 데이터 버스 반전(DBI; Data Bus Inversion) 기능을 수행할 수 있다. 전자 장치(1000)는 모드 레지스터를 설정함으로써, 데이터 마스크 기능, 및 데이터 버스 반전 기능을 활성화 또는 비활성화할 수 있다. 전자 장치(1000)는 제3 모드 레지스터(MR3)의 제7 동작 코드(OP[7])를 통해 데이터 버스 반전 기능을 활성화 또는 비활성화할 수 있다. 전자 장치(1000)는 제13 모드 레지스터(MR13)의 제5 동작 코드(OP[5])를 통해 데이터 마스크 기능을 활성화 또는 비활성화 할 수 있다.
전자 장치(1000)는 제3 모드 레지스터(MR3)의 제7 동작 코드(OP[7])를 '1'로 설정함으로써 데이터 버스 반전 기능을 활성화하고, '0'으로 설정함으로써 데이터 버스 반전 기능을 비활성화할 수 있다. 전자 장치(1000)는 제13 모드 레지스터(MR13)의 제5 동작 코드(OP[5])를 '0'으로 설정함으로써 데이터 마스크 기능을 활성화하고, '1'로 설정함으로써 데이터 마스크 기능을 비활성화할 수 있다.
우선, 데이터 마스크 기능은 활성화되고, 데이터 버스 반전 기능이 비활성화 된 경우, MWR 동작이 설명된다. 예를 들어, 메모리 컨트롤러(1130)는 제1 시점(t1)에서, 커맨드/어드레스 신호(CA)를 통해 버스트 길이(BL)를 전송할 수 있고, 제2 시점(t2)에서, 커맨드/어드레스 신호(CA)를 통해 뱅크 어드레스(BA), 열 어드레스(CA), 및 오토 프리차지(AP)를 전송할 수 있다. 제1 및 제2 시점들(t1, t2)에서의 버스트 길이(BL), 및 뱅크 어드레스(BA), 열 어드레스(CA), 오토 프리차지(AP)는 제1 MWR 커맨드(MWR-1)를 구성할 수 있다. 예시적으로, 제1 시점(t1)에서 칩 선택 신호(CS)를 로직 하이로 하고, 제2 시점(t2)에서 칩 선택 신호(CS)를 로직 로우로 함으로써, 제1 MWR 커맨드(MWR-1)에 포함된 버스트 길이(BL), 및 뱅크 어드레스(BA), 열 어드레스(CA), 오토 프리차지(AP)가 구분될 수 있다.
제1 MWR 커맨드(MWR-1)가 전송된 직후에, 제3 및 제4 시점들(t3, t4) 각각에서, 전자 장치(1000)는 커맨드/어드레스 신호(CA)를 통해 열 어드레스들(CAn)을 전송할 수 있다. 2개의 열 어드레스들(CAn)은 제2 CAS 커맨드(CAS-2)를 구성할 수 있다. 예시적으로, 제3 시점(t3)에서 칩 선택 신호(CS)를 로직 하이로 하고, 제4 시점(t4)에서 칩 선택 신호(CS)를 로직 로우로 함으로써, 제2 CAS 커맨드(CAS-2)에 포함된 2개의 열 어드레스들(CAn)이 서로 구분될 수 있다.
예시적으로, 표 1은 LPDDR 4.0 사양(Specification)의 프로토콜에 기반된, 제1 MWR 커맨드(MWR-1) 및 제2 CAS 커맨드(CAS-2)에 대한 예시적은 커맨드 진리표를 보여준다.
CS CA0 CA1 CA2 CA3 CA4 CA5 CK_t
MRW-1 H L L H H L L R1
L BA0 BA1 BA2 V C9 AP R2
CAS-2 H L H L L H C8 R1
L C2 C3 C4 C5 C6 C7 R2
표 1에 도시된 바와 같이 칩 선택 신호(CS) 및 복수의 커맨드/어드레스 신호(CA)를 제어함으로써, 제1 MWR 커맨드(MWR-1) 및 제2 CAS 커맨드(CAS-2)가 전송될 수 있다. 예를 들어, 커맨드/어드레스 신호(CA)는 제0 내지 제5 커맨드/어드레스 신호들(CA0~CA5)을 포함할 수 있다. 메모리 컨트롤러(1130)는 클럭 신호(CK_t)의 첫 번째 상승 에지(R1)(예를 들어, 제1 시점(t1))에서, 칩 선택 신호(CS), 및 제2, 및 제3 커맨드/어드레스 신호들(CA2, CA3)을 하이(H)로 하고, 제0, 제1, 제4, 제5 커맨드/어드레스 신호들(CA0, CA1, CA4, CA5)을 로우(L)로 설정함으로써, 제1 MWR 커맨드(MWR-1)의 제1 부분을 전송할 수 있다. 메모리 컨트롤러(1130)는 클럭 신호(CK_t)의 두 번째 상승 에지(R2)(예를 들어, 제2 시점(t2))에서, 칩 선택 신호(CS)를 로우(L)로 설정하고, 제0 내지 제2 커맨드/어드레스 신호들(CA0~CA2) 각각에 제0 내지 제2 뱅크 어드레스들(BA0~BA2)을 설정하고, 제4 커맨드/어드레스 신호(CA4)를 제9 열 어드레스(C9)를 설정하고, 제5 커맨드/어드레스 신호(CA5)를 오토 프리차지(AP)를 설정함으로써, 제1 MWR 커맨드(MWR-1)의 제2 부분을 전송할 수 있다. 즉, 메모리 컨트롤러(1130)는 클럭 신호(CK_t)의 2개의 상승 에지들(R1, R2)에서, 칩 선택 신호(CS) 및 복수의 커맨드/어드레스 신호들(CA0~CA5)을 표 1과 같이 설정함으로써, 제1 MWR 커맨드(MWR-1)를 전송할 수 있다.마찬가지로, 메모리 컨트롤러(1130)는 제1 MWR 커맨드(MWR-1)를 전송한 이후에, 클럭 신호의 첫 번째 상승 에지(R1)(예를 들어, 제3 시점(t3))에서, 칩 선택 신호(CS), 및 제1 및 제4 커맨드/어드레스 신호들(CA1, CA4)을 하이(H)로 설정하고, 제0, 제2, 및 제3 커맨드/어드레스 신호들(CA0, CA2, CA3)을 로우(L)로 설정하고, 제5 커맨드/어드레스 신호(CA5)를 제8 열 어드레스(C8)로 설정함으로써, 제2 CAS 커맨드(CAS-2)의 제1 부분을 전송할 수 있다. 이후에, 메모리 컨트롤러(1130)는 칩 선택 신호(CS)를 로우(L)로 설정하고, 제0 내지 제5 커맨드/어드레스 신호들(CA0~CA5) 각각에 제2 내지 제7 열 어드레스들(C2~C7)을 설정함으로써, 제2 CAS 커맨드(CAS-2)의 제2 부분을 전송할 수 있다. 즉, 메모리 컨트롤러(1130)는 클럭 신호(CK_t)의 2개의 상승 에지들(R1, R2)에서, 칩 선택 신호(CS) 및 복수의 커맨드/어드레스 신호들(CA0~CA5)을 표 1과 같이 설정함으로써, 제2 CAS 커맨드(CAS-2)를 전송할 수 있다.
예시적인 실시 예에서, 제2 CAS 커맨드(CAS-2)가 전송된 시점(t4)으로부터 쓰기 레이턴시(WL)가 경과한 이후에, 데이터 스트로브 신호(DQS)가 토글하기 시작할 수 있다. 입력 데이터는 데이터 라인들(DQ)을 통해 데이터 스트로브 신호(DQS)에 동기하여 전송될 수 있다. 데이터 마스크 반전 신호(DMI)는 데이터 스트로브 신호(DQS)에 동기하여 전송될 수 있다.
예시적인 실시 예에서, 도 5c를 참조하면, 제1 더티 비트, 제2 더티 비트, 및 제4 더티 비트들(D1, D2, D4)은 제1 논리 값이고, 제3 더티 비트(D3)는 제2 논리 값을 갖는 더티 정보(DI)를 수신할 수 있다. 메모리 컨트롤러(1130)는 더티 정보(DI)를 기반으로 DMI 신호를 전송할 수 있다.
즉, 메모리 컨트롤러(1130)는 제1 구간(T1) 동안, DMI 신호를 로직 하이로 함으로써, 제1 내지 제8 입력 데이터들(Din_1~Din_8)을 마스킹 하고, 제2 구간(T2) 동안, DMI 신호를 로직 하이로 함으로써, 제8 내지 제16 입력 데이터들(Din_8~Din_16)을 마스킹 하고, 제3 구간(T3) 동안, DMI 신호를 로직 로우로 함으로써, 제17 내지 제 24 입력 데이터들(Din_17~Din_24)을 마스킹 하지 않고, 제4 구간(T4) 동안, DMI 신호를 로직 하이로 함으로써, 제25 내지 제32 입력 데이터들(Din_25~Din_32)을 마스킹할 수 있다.
도 9b를 참조하여, 데이터 마스크 기능 및 데이터 버스 반전 기능 모두가 활성화된 경우, MWR 동작이 설명된다. 제1 MWR 커맨드(MWR-1) 및 제2 CAS 커맨드(CAS-2)에 대한 구체적인 설명은 상술하였으므로 생략된다.
데이터 버스 반전 기능이 활성화되었으므로, DMI 신호가 로직 하이인 경우, 대응하는 데이터는 반전되었음을 가리키고, DMI 신호가 로직 로우인 경우, 대응하는 데이터는 반전되지 않았음을 가리킬 수 있다. 즉, 도 9a와 달리, 데이터 반전 기능이 활성화된 경우, 메모리 컨트롤러(1130)는 DMI 신호는 데이터 마스크 기능에 사용되지 않을 수 있다. 대신에, 메모리 컨트롤러(1130)는 데이터 라인들(DQ1~DQ16)을 통해 마스킹된 쓰기 데이터를 전송할 수 있다.
구체적으로, DMI 신호는 로직 로우로 설정하고, 제2 내지 제7 데이터 라인들(DQ2~DQ7)에 전송되는 데이터 비트들 중 '1'의 개수가 5개 이상이거나, 또는 제10 내지 제15 데이터 라인들(DQ10~DQ15)에 전송되는 데이터 비트들 중 '1'의 개수가 5개 이상인 경우, 그에 대응하는 데이터는 마스킹된 것으로 가리킬 수 있다.
예시적인 실시 예에서, 도 5c를 참조하면, 제1 더티 비트, 제2 더티 비트, 및 제4 더티 비트들(D1, D2, D4)은 제1 논리 값이고, 제3 더티 비트(D3)는 제2 논리 값을 갖는 더티 정보(DI)를 수신할 수 있다. 메모리 컨트롤러(1130)는 더티 정보(DI)를 기반으로 마스킹된 데이터를 생성할 수 있다.
예시적인 실시 예에서, 제1 내지 제4 구간들(T1~T4) 동안, 메모리 컨트롤러(1130)는 DMI 신호를 로직 로우로 설정될 수 있다. 제3 더티 비트(D3)는 제2 논리 값을 가리키므로, 이에 대응하는 데이터는 마스킹되지 않을 수 있다. 즉, 제 17 내지 제24 입력 데이터들(Din_17~Din_24)은 변경되지 않을 수 있다. 반면에, 제1, 제2, 및 제4 더티 비트들(D1, D2, D4)은 제1 논리 값을 가리키므로, 이에 대응하는 데이터는 마스킹될 수 있다. 즉, 제1 내지 제8 입력 데이터들(Din_1~Din_8), 제9 내지 제16 입력 데이터들(Din_9~Din_16), 및 제25 내지 제32 입력 데이터들(Din_25~Din_32)은 마스킹된 데이터로 변경되어 전송될 수 있다. 즉, 제1, 제2, 및 제4 구간들(T1, T2, T4) 동안, 제2 내지 제7 데이터 라인들(DQ2~DQ7)에 전송되는 데이터 비트들 중 적어도 5개 이상은 '1'일 수 있거나, 또는 제10 내지 제15 데이터 라인들(DQ10~DQ15)에 전송되는 데이터 비트들 중 적어도 5개 이상은 '1'일 수 있다.
상술된 바와 같이, 메모리 컨트롤러(1130)는 도 9a 및 도 9b를 참조하여 설명된 MWR 동작을 기반으로, 메모리 장치(1200)에 입력 데이터, 및 데이터 마스크 신호를 제공할 수 있다.
도 10a는 도 1의 전자 장치의 동작을 예시적인 실시 예에서 보여주는 순서도이다. 도 1, 도 2, 및 도 4를 참조하면, S1010 단계에서, 프로세서(1110)는 제1 어드레스(ADDR1)를 포함한 읽기 요청을 캐시 메모리 장치(1120)에게 전송할 수 있다. 제1 어드레스(ADDR1)는 메모리 장치(1200)의 저장 공간 중 읽기 데이터가 저장된 공간에 대응하는 어드레스일 수 있다.
S1020 단계에서, 캐시 메모리 장치(1120)는 수신한 읽기 요청에 응답하여, 제1 어드레스(ADDR1)에 대응하는 데이터가 캐시 메모리 장치(1120)에 저장되어 있는지 판별할 수 있다. 예를 들어, 캐시 메모리 장치(1120)는 태그(TAG)를 기반으로 캐시 히트 또는 캐시 미스 여부를 판별할 수 있다. 캐시 메모리 장치(1120)는 태그(TAG), 및 프로세서(1110)로부터 수신한 제1 어드레스(ADDR1) 전체 또는 적어도 일부를 비교하여, 캐시 히트 또는 캐시 미스 여부를 판별할 수 있다.
예시적인 실시 예에서, 캐시 메모리 장치(1120)는 복수의 캐시 세트들 중 수신된 제1 어드레스(ADDR1) 또는 수신된 제1 어드레스(ADDR1)의 일부와 대응되는 캐시 세트들의 태그들(TAG)을 읽을 수 있다. 캐시 메모리 장치(1120)는 수신한 제1 어드레스(ADDR1), 및 태그(TAG)를 비교하여, 캐시 히트인지 판별할 수 있다. 단, 발명의 범위는 이에 한정되지 아니하며, 다양한 방법으로 캐시 히트인지 또는 캐시 미스인지 판별될 수 있다. 캐시 히트인 경우, 캐시 메모리 장치(1120)는 S1140 단계에서, 제1 어드레스(ADDR1)에 대응하는 제1 데이터(DATA1)를 프로세서(1110)로 전송할 수 있다.
캐시 히트가 아닌 경우, 즉, 캐시 미스인 경우, 캐시 메모리 장치(1120)는 S1030 단계의 동작을 진행한다. 캐시 메모리 장치(1120)는 수신한 제1 어드레스(ADDR1)에 대응하는 데이터를 저장하기 위한 새로운 캐시 세트를 할당하기 위해서, 복수의 캐시 세트들 중 하나의 희생 캐시 세트(Victim CS)를 선택할 수 있다. 예시적인 실시 예에서, 캐시 메모리 장치(1120)는 예를 들어, 가장 적게 사용된 캐시 세트를 선택하는 방식(LRU, Least Recently Used), 가장 최근에 사용된 캐시 세트를 선택하는 방식(MRU, Most Recently Used), 가장 먼저 저장된 캐시 세트를 선택하는 방식(FIFO, First In First Out) 등에 의하여 희생 캐시 세트(Victim CS)를 선택할 수 있다.
S1040 단계에서, 희생 캐시 세트(Victim CS)가 더티 상태인지 판별할 수 있다. 예시적인 실시 예에서, 캐시 메모리 장치(1120)는 희생 캐시 세트(Victim CS)의 복수의 더티 비트들(D1~D4) 중 적어도 하나의 더티 비트가 제2 논리 값을 가리키는 경우, 희생 캐시 세트(Victim CS)를 더티 상태로 판별할 수 있다. 희생 캐시 세트(Victim CS)가 더티 상태가 아닌 경우, 즉, 클린 상태인 경우, 희생 캐시 세트(Victim CS)에 대한 플러시 동작 수행 없이, S1080 단계에서, 캐시 미스 정보를 포함하는 캐시 정보(INFO)를 전송할 수 있다. 희생 캐시 세트(Victim CS)가 더티 상태의 경우, 희생 캐시 세트(Victim CS)에 대하여 플러시 동작을 수행하기 위하여 S1050 단계의 동작을 진행한다.
S1050 단계에서, 캐시 메모리 장치(1120)는 캐시 정보(INFO)를 프로세서(1110)로 전송할 수 있다. 예시적인 실시 예에서, 캐시 정보(INFO)는 희생 캐시 세트(Victim CS)에 대한 정보를 포함할 수 있다.
S1060 단계에서, 프로세서(1110)는 희생 캐시 세트(Victim CS)에 대한 정보를 포함하는 캐시 정보(INFO)에 응답하여, 희생 캐시 세트(Victim CS)에 대한 플러시 동작을 수행할 수 있다. 이 경우, 프로세서(1110)는 메모리 컨트롤러(1130)로 쓰기 요청을 전송할 수 있다. 예시적인 실시 예에서, 프로세서(1110)는 희생 캐시 세트(Victim CS)에 대응하는 메모리 장치(1200)의 캐시 라인을 가리키는 어드레스를 포함하는 쓰기 요청을 전송할 수 있다. 프로세서(1110)는 희생 캐시 세트(Victim CS)의 제1 내지 제4 더티 비트들(D1~D4)을 포함하는 더티 정보(DI)를 메모리 컨트롤러(1130)에 전송할 수 있다. 프로세서(1110)는 희생 캐시 세트(Victim CS)의 데이터를 메모리 컨트롤러(1130)에 전송할 수 있다.
S1070 단계에서, 메모리 컨트롤러(1130)는 어드레스를 포함하는 쓰기 요청, 더티 정보(DI), 및 데이터에 응답하여, 데이터 마스크 신호(DM) 및 데이터를 메모리 장치(1200)에 전송할 수 있다. 예시적인 실시 예에서, 메모리 컨트롤러(1130)는 어드레스를 포함하는 쓰기 요청, 더티 정보(DI), 및 데이터를 수신할 수 있다. 메모리 컨트롤러(1130)는 데이터를 데이터 라인들(DQ1~DQ16)로 출력할 수 있도록, 버스트 길이에 대응하는 데이터 비트들로 순차 배열할 수 있다. 메모리 컨트롤러(1130)는 더티 정보(DI)를 기반으로, 데이터 마스크 신호(DM)를 생성할 수 있다. 메모리 컨트롤러(1130)는 데이터 스트로브 신호(DQS)에 동기하여 데이터, 및 데이터 마스크 신호(DM)를 출력할 수 있다. 이에 대한 상세한 설명은 상술되었으므로, 생략된다.
S1080 단계에서, 캐시 메모리 장치(1120)는 캐시 정보(INFO)를 프로세서(1110)로 전송할 수 있다. 예시적인 실시 예에서, 캐시 정보(INFO)는 제1 어드레스(ADDR1)에 대한 캐시 미스 정보를 포함할 수 있다.
예시적인 실시 예에서, 희생 캐시 세트(Victim CS)가 더티 상태의 경우, S1080 단계를 생략되고, S1050 단계에서, 제1 어드레스(ADDR1)에 대한 캐시 미스 정보를 포함하는 캐시 정보를 함께 전송할 수 있다. 또한 S1030 단계 내지 S1070 단계의 동작들, 및 S1080 단계의 동작은 순서가 변경될 수 있으며, 동시에 수행될 수 있다. 순서도는 하나의 실시 예에 불과하며, S1020 단계 내지 S1040 단계의 동작들은 프로세서(1110)에 의해 수행될 수 있다.
S1080 단계에서, 프로세서(1110)는 캐시 미스 정보를 포함하는 캐시 정보(INFO)에 응답하여, 캐시 메모리 장치(1120)에 제1 어드레스(ADDR1)에 대응하는 데이터가 저장되어 있지 않음을 인지할 수 있다. 이 경우, 프로세서(1110)는 메모리 컨트롤러(1130)로 읽기 요청을 전송할 수 있다.
예시적인 실시 예에서, 프로세서(1110)는 메모리 장치(1200)의 복수의 캐시 라인들(CL1~CLm) 중 적어도 하나의 캐시 라인을 가리키는 제2 어드레스(ADDR2)를 포함한 읽기 요청을 메모리 컨트롤러(1130)에게 전송할 수 있다. 캐시 라인은 프로세서(1110)가 메모리 장치(1200)로 전송하는 읽기 또는 쓰기 요청에 따른 최소 액세스 단위일 수 있다. 따라서, 제1 어드레스(ADDR1)가 복수의 캐시 라인들(CL1~CLm) 중 적어도 하나의 캐시 라인을 가리키지 않는 경우, 프로세서(1110)는 제1 어드레스(ADDR1)를 포함하는 캐시 라인을 가리키는 제2 어드레스(ADDR2)에 대한 읽기 요청을 전송할 수 있다.
즉, 제1 어드레스(ADDR1)가 복수의 캐시 라인들(CL1~CLm) 중 적어도 하나의 캐시 라인을 가리키는 경우, 제2 어드레스(ADDR2)와 제1 어드레스(ADDR1)는 동일할 수 있다. 반면에, 제1 어드레스(ADDR1)는 캐시 라인의 시작 어드레스가 아닌, 캐시 라인 내부의 임의의 공간을 가리키는 경우, 제2 어드레스(ADDR2)와 제1 어드레스(ADDR1)는 상이할 수 있다.
S1100 단계에서, 메모리 컨트롤러(1130)는 메모리 장치(1200)로 읽기 요청을 전송할 수 있다. 예시적인 실시 예에서, 메모리 컨트롤러(1130)는 커맨드, 및 제2 어드레스(ADDR2)를 메모리 장치(1200)에게 전송할 수 있다. S1110 단계에서, 메모리 장치(1200)는 읽기 요청에 응답하여, 읽기 요청에 대응하는 제2 데이터(DATA2)를 메모리 셀 어레이로부터 읽고, 읽은 제2 데이터(DATA2)를 출력할 수 있다.
S1120 단계에서, 메모리 컨트롤러(1130)는 메모리 장치(1200)로부터 수신한 제2 데이터(DATA2)를 캐시 메모리 장치(1120)에 전송할 수 있다. S1130 단계에서, 캐시 메모리 장치(1120)는 수신한 제2 데이터(DATA2)를 희생 캐시 세트(Victim CS)에 저장할 수 있다. 예시적인 실시 예에서, 캐시 메모리 장치(1120)는 더티 비트(D)를 초기화 할 수 있다. 즉, 캐시 메모리 장치(1120)는 복수의 더티 비트들(D1~D4)에 제1 논리 값을 저장할 수 있다.
이와 같이, S1100 단계 내지 S1130 단계의 동작을 수행하면서, 인터페이스상에서 데이터가 손상되거나, 또는 캐시 메모리 장치(1120)에 데이터가 저장되면서, 손상된 데이터가 저장될 수 있다. 즉, 메모리 장치(1200)로부터 캐시 메모리 장치(1120)로 라인 필 동작을 수행하면서, 동일한 어드레스에 대하여 메모리 장치(1200)에 올바른 데이터가 저장되어 있는 반면에, 캐시 메모리 장치(1120)에만 손상된 데이터 저장될 수 있다.
S1140 단계에서, 캐시 메모리 장치(1120)는 제1 어드레스(ADDR1)에 대응하는 제1 데이터(DATA1)를 프로세서(1110)에 전송할 수 있다. 제1 데이터(DATA1)는 캐시 라인의 크기와 동일하거나 그보다 작을 수 있다. 반면에, 제2 데이터(DATA2)는 캐시 라인의 크기와 동일할 수 있다.
도 10b는 도 1의 전자 장치의 동작을 예시적인 실시 예에서 보여주는 순서도이다. 도 1, 도 2, 및 도 4를 참조하면, S2010 단계에서, 프로세서(1110)는 제1 어드레스(ADDR1)를 포함한 라이브-백 방식의 쓰기 요청, 및 제1 데이터(DATA1)를 캐시 메모리 장치(1120)에게 전송할 수 있다.
S2020 단계에서, 캐시 메모리 장치(1120)는 수신한 쓰기 요청에 응답하여, 제1 어드레스(ADDR1)에 대응하는 데이터가 캐시 메모리 장치(1120)에 저장되어 있는지 판별할 수 있다. 캐시 메모리 장치(1120)는 태그(TAG)를 기반으로 캐시 히트 또는 캐시 미스 여부를 판별할 수 있다. 이에 대한 상세한 설명은 도 10a를 참조하여 설명되었으므로 생략된다. 캐시 히트인 경우, S2140 단계의 동작을 진행한다. 캐시 히트가 아닌 경우, 즉, 캐시 미스인 경우, S2030 단계의 동작을 진행한다.
S2030 단계 내지 S2130 단계의 동작들은 도 10a의 도 S1030 단계 내지 1130 단계의 동작들과 동일하므로, 상세한 설명은 생략된다. S2140 단계에서, 캐시 메모리 장치(1120)는 프로세서(1110)로부터 수신한 제1데이터(DATA1)를 저장할 수 있다.
예시적인 실시 예에서, 프로세서(1110)로부터 캐시 라인 크기에 대응하는 제1 데이터(DATA1)를 수신한 경우, 캐시 세트의 제1 내지 제4 섹터 데이터 모두가 갱신될 수 있다. 또는 프로세서(1110)로부터 섹터 크기에 대응하는 제1 데이터(DATA1)를 수신한 경우, 캐시 세트의 복수의 섹터 데이터 중 특정 섹터 데이터만 갱신될 수 있다.
S2150 단계에서, 캐시 메모리 장치(1120)는 제1 데이터(DATA1)에 대응하는 적어도 하나의 더티 비트들을 더티 상태를 가리키는 제2 논리 값을 설정할 수 있다. 예시적인 실시 예에서, 프로세서(1110)로부터 캐시 라인 크기에 대응하는 제1 데이터(DATA1)를 수신한 경우, 제1 내지 제4 더티 비트들(D1~D4) 모두가 제2 논리 값이 설정될 수 있다. 또는 제1 어드레스(ADDR1)는 제3 섹터(S3)를 가리키고, 프로세서(1110)로부터 섹터 크기에 대응하는 제1 데이터(DATA1)를 수신한 경우, 제3 더티 비트(D3)만 제2 논리 값이 설정될 수 있다.
프로세서(1110)는 라이트-백 방식의 쓰기 요청을 전송하였으므로, 캐시 메모리 장치(1120)에 저장된 데이터만 갱신하고, 메모리 장치(1200)에 저장된 데이터는 갱신하지 않을 수 있다. 즉, 캐시 메모리 장치(1120)에 저장된 데이터와, 이에 대응하는 메모리 장치(1200)에 저장된 데이터는 동일하지 않을 수 있다.
도 10c는 도 1의 전자 장치의 동작을 예시적인 실시 예에서 보여주는 순서도이다. 도 1, 도 2, 및 도 4를 참조하면, S3010 단계에서, 프로세서(1110)는 제1 어드레스(ADDR1)를 포함한 라이트-쓰루 방식의 쓰기 요청, 및 제1 데이터(DATA1)를 캐시 메모리 장치(1120)에게 전송할 수 있다.
S3020 단계에서, 캐시 메모리 장치(1120)는 수신한 쓰기 요청에 응답하여, 제1 어드레스(ADDR1)에 대응하는 데이터가 캐시 메모리 장치(1120)에 저장되어 있는지 판별할 수 있다. 캐시 메모리 장치(1120)는 태그(TAG)를 기반으로 캐시 히트 또는 캐시 미스 여부를 판별할 수 있다. 이에 대한 상세한 설명은 도 10a를 참조하여 설명되었으므로 생략된다. 캐시 히트인 경우, S3140 단계의 동작을 진행한다. 캐시 히트가 아닌 경우, 즉, 캐시 미스인 경우, S3030 단계의 동작을 진행한다.
S3030 단계 내지 S2150 단계의 동작들은 도 10b의 도 S2030 단계 내지 2130 단계의 동작들과 동일하므로, 상세한 설명은 생략된다. S3160 단계에서, 프로세서(1110)는 제2 어드레스(ADDR2)를 포함한 방식의 쓰기 요청, 더티 정보(DI) 및 데이터를 메모리 컨트롤러(1130)에게 전송할 수 있다. 더티 정보(DI)는 제2 어드레스(ADDR2)에 대응하는 캐시 세트의 제1 내지 제4 더티 비트들(DI1~DI4)을 포함할 수 있다. 프로세서(1110)는 S3010 단계에서, 라이트-쓰루 방식의 쓰기 요청을 전송했으므로, 캐시 메모리 장치(1120)뿐만 아니라 메모리 장치(1200)에 있는 데이터도 갱신할 수 있다.
S3170 단계에서, 메모리 컨트롤러(1130)는 제2 어드레스(ADDR2)를 포함한 방식의 쓰기 요청, 더티 정보(DI) 및 데이터에 응답하여, 데이터 마스크 신호(DM) 및 데이터를 메모리 장치(1200)에 전송할 수 있다. 예시적인 실시 예에서, 메모리 컨트롤러(1130)는 어드레스를 포함하는 쓰기 요청, 더티 정보(DI), 및 데이터를 수신할 수 있다. 메모리 컨트롤러(1130)는 데이터를 데이터 라인들(DQ1~DQ16)로 출력할 수 있도록, 버스트 길이에 대응하는 데이터 비트들로 순차 배열할 수 있다. 메모리 컨트롤러(1130)는 더티 정보(DI)를 기반으로, 데이터 마스크 신호(DM)를 생성할 수 있다. 메모리 컨트롤러(1130)는 데이터 스트로브 신호(DQS)에 동기하여 데이터, 및 데이터 마스크 신호(DM)를 출력할 수 있다. 이에 대한 상세한 설명은 상술되었으므로, 생략된다.
상술된 바와 같이, 본 발명에 따른 전자 장치(1000)는 캐시 라인보다 작은 섹터 단위로 더티 정보를 관리할 수 있다. 전자 장치(1000)는 섹터 단위로 관리되는 더티 정보를 기반으로 데이터 마스크 신호를 생성함으로써, 섹터 단위로 메모리 장치(1200)에 쓰기 동작을 수행할 수 있다. 따라서, 캐시 메모리 장치(1120)에서 프로세서(1110)에 의해 갱신되지 않은 섹터는 메모리 장치(1200)에 저장되지 않을 수 있다. 이로 인해, 불필요한 데이터 저장 동작이 최소화될 수 있으며, 따라서 메모리 장치(1200)에서의 오류가 감소될 수 있다.
도 11은 본 발명의 실시 예에 따른 스토리지 장치를 예시적으로 보여주는 블록도이다. 도 11을 참조하면, 스토리지 장치(2000)는 메모리 컨트롤러(2100), 버퍼 메모리(2200), 및 불휘발성 메모리 장치(2300)를 포함한다. 예시적으로, 스토리지 장치(2000)는 솔리드 스테이트 드라이브(SSD), UBS 메모리, 하드 디스크, USB 스틱 등과 같은 대용량 저장 매체일 수 있다.
메모리 컨트롤러(2100)는 호스트(Host)로부터의 요청에 응답하여 데이터를 교환할 수 있다. 메모리 컨트롤러(2100)는 호스트로부터의 요청에 응답하여 불휘발성 메모리 장치(2300)로부터 데이터를 읽고, 읽은 데이터를 버퍼 메모리(2200)에 일시적으로 저장한 후, 호스트로 제공할 수 있다. 또한 메모리 컨트롤러(2100)는 호스트로부터의 요청에 응답하여 호스트로부터 수신된 데이터(DATA)를 일시적으로 버퍼 메모리(2200)에 저장한 후, 불휘발성 메모리 장치(2300)에 프로그램 할 수 있다.
메모리 컨트롤러(2100)는 상술된 동작을 수행하기 위하여 어드레스, 커맨드, 및 제어 신호를 불휘발성 메모리 장치(2300)로 제공할 수 있고, 불휘발성 메모리 장치(2300)와 데이터를 주고받을 수 있다. 메모리 컨트롤러(2100)는 상술된 동작을 수행하기 위하여 어드레스, 커맨드, 제어 신호, 및 데이터 마스크 신호(DM)를 버퍼 메모리(2200)로 제공할 수 있고, 버퍼 메모리(2200)와 데이터를 주고받을 수 있다.
메모리 컨트롤러(2100)는 불휘발성 메모리 장치(2300)를 관리 또는 제어할 수 있다. 예시적인 실시 예에서, 메모리 컨트롤러(2100)는 불휘발성 메모리 장치(2300)에 대한 매핑 테이블 관리, 배드 블록 관리, 웨어 레벨링 등과 같은 다양한 유지 관리 동작을 수행할 수 있다.
버퍼 메모리(2200)는 메모리 컨트롤러(2100)의 제어에 따라 동작할 수 있다. 예를 들어, 버퍼 메모리(2200)는 메모리 컨트롤러(2100)로부터 수신된 신호들에 응답하여, 데이터를 저장하거나 또는 저장된 데이터를 메모리 컨트롤러(2100)로 제공할 수 있다. 예시적인 실시 예에서, 버퍼 메모리(2200)는 DRAM(Dynamic Random Access Memory) 장치일 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
버퍼 메모리(2200)는 불휘발성 메모리 장치(2300)에 대한 매핑 테이블을 저장할 수 있다. 예시적인 실시 예에서, 버퍼 메모리(2200)는 호스트로부터 수신한 데이터를 일시적으로 저장할 수 있다. 또는 버퍼 메모리(2200)는 불휘발성 메모리 장치(2300)으로부터 읽은 데이터를 일시적으로 저장할 수 있다.
불휘발성 메모리 장치(2300)는 메모리 컨트롤러(2100)로부터 수신된 신호들에 응답하여 데이터를 출력하거나 또는 수신된 데이터를 프로그램 할 수 있다. 예시적으로, 불휘발성 메모리 장치(2300)는 낸드 플래시 메모리를 포함할 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 불휘발성 메모리 장치(2300)는 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) 등과 같은 불휘발성 메모리를 포함할 수 있다.
도 12는 도 11의 메모리 컨트롤러를 예시적으로 보여주는 블록도이다. 도 11 및 도 12를 참조하면, 메모리 컨트롤러(2100)는 프로세서(2110), 캐시 메모리 장치(2120), ROM(2130), 호스트 인터페이스 회로(2140), 버퍼 메모리 인터페이스 회로(2150), 및 플래시 인터페이스 회로(2160)를 포함할 수 있다.
프로세서(2110)는 메모리 컨트롤러(2100)의 제반 동작을 제어할 수 있다. 캐시 메모리 장치(2120)는 SRAM(Static Random Access Memory) 장치 일 수 있다. ROM(2130)은 메모리 컨트롤러(2100)가 동작하는데 요구되는 다양한 정보를 펌웨어 형태로 저장할 수 있다.
예시적인 실시 예에서, 불휘발성 메모리 장치(2300)를 제어하는데 요구되는 다양한 정보(예를 들어, 플래시 변환 계층, 매핑 테이블 등)는 캐시 메모리 장치(2120) 또는 버퍼 메모리(2200)에 저장될 수 있고, 이러한 정보는 프로세서(2110)에 의해 관리되거나 또는 구동될 수 있다.
캐시 메모리 장치(2120)는 버퍼 메모리(2200)보다 빠른 액세스 속도를 가질 수 있다. 즉, 버퍼 메모리(2200)에 저장된 데이터 중 일부가 캐시 메모리 장치(2120)에 저장됨으로써, 프로세서(2110)의 요청에 따른 액세스 속도가 향상될 수 있다. 캐시 메모리 장치(2120)는 복수의 캐시 세트들을 포함할 수 있다. 캐시 메모리 장치(2120)는 캐시 라인 단위로 더티 비트를 관리하는 것이 아니라, 섹터 단위로 더티 비트를 관리할 수 있다. 예시적인 실시 예에서, 캐시 메모리 장치(2120)는 제1 내지 제4 더티 비트들을 포함할 수 있다. 도 4를 참조하여, 캐시 세트에 대하여 설명하였으므로, 상세한 설명은 생략된다.
메모리 컨트롤러(2100)는 호스트 인터페이스 회로(2140)를 통해 외부 장치(예를 들어, 호스트(Host))와 통신할 수 있다. 예시적인 실시 예에서, 호스트 인터페이스 회로(2140)는 DDR(Double Data Rate), LPDDR(Low-Power DDR), USB(Universal Serial Bus), MMC(multimedia card), PCI(peripheral component interconnection), PCI-E(PCI-express), ATA(Advanced Technology Attachment), SATA(Serial-ATA), PATA(Parallel-ATA), SCSI(small computer small interface), ESDI(enhanced small disk interface), IDE(Integrated Drive Electronics), MIPI(Mobile Industry Processor Interface), NVM-e(Nonvolatile Memory-express), UFS(Universal Flash Storage) 등과 같은 다양한 인터페이스들 중 적어도 하나를 포함할 수 있다.
메모리 컨트롤러(2100)는 버퍼 메모리 인터페이스 회로(2150)를 통해 버퍼 메모리(2200)와 통신할 수 있다. 예시적인 실시 예에서, 메모리 컨트롤러(2100)는 다양한 신호들을 버퍼 메모리 인터페이스 회로(2150)를 기반으로 버퍼 메모리(2200)에 제공할 수 있다. 예시적인 실시 예에서, 버퍼 메모리 인터페이스 회로(2150)는 DDR(Double Data Rate), LPDDR(Low-Power DDR), USB(Universal Serial Bus) 등과 같은 디램 인터페이스를 포함할 수 있다.
버퍼 메모리 인터페이스 회로(2150)는 데이터 마스크 제어 회로(2151)를 포함할 수 있다. 데이터 마스크 제어 회로(2151)는 캐시 메모리 장치(2120)로부터 더티 정보(DI)를 수신할 수 있다. 데이터 마스크 제어 회로(2151)는 수신한 더티 정보(DI)를 기반으로 데이터 마스크 라인을 통해 데이터 마스크 신호(DM)를 출력하도록 구성될 수 있다.
메모리 컨트롤러(2100)는 플래시 인터페이스 회로(2160)를 통해 불휘발성 메모리 장치(2300)와 통신할 수 있다. 예시적인 실시 예에서, 메모리 컨트롤러(2100)는 다양한 신호들(예를 들어, CLE, ALE, RE/, WE/, CMD, ADDR, SQRI, DT 등)을 플래시 인터페이스 회로(2160)를 기반으로 불휘발성 메모리 장치(2300)로 제공할 수 있다. 예시적인 실시 예에서, 플래시 인터페이스 회로(2160)는 Toggle NAND 인터페이스 또는 ONFI(Open Nand Flash Interface) 등과 같은 낸드 인터페이스를 포함할 수 있다.
도 12에 도시된 메모리 컨트롤러(2100)는 예시적인 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다. 메모리 컨트롤러(2100)는 ECC(Error Correction Code) 엔진, 랜더마이저 등과 같은 다른 다양한 구성 요소들을 더 포함할 수 있다.
본 발명의 실시 예에 따른 스토리지 장치(2000)는 도 1내지 도 10c를 참조하여 설명된 바와 같이, 캐시 라인 보다 작은 섹터마다 더티 정보를 관리할 수 있다. 스토리지 장치(2000)는 더티 정보를 기반으로 데이터 마스크 라인을 통해 버퍼 메모리(2200)로 데이터 마스크 신호(DM)를 출력할 수 있다. 버퍼 메모리(2200)는 데이터 마스크 신호(DM)를 기반으로, 캐시 메모리 장치(2120)에서 갱신되지 않은 섹터 데이터를 저장하지 않을 수 있다.
도 13은 본 발명에 따른 SSD 시스템(3000)을 보여주는 블록도이다. 도 13을 참조하면, SSD 시스템(3000)은 호스트(3100) 및 SSD(3200)를 포함한다.
SSD(3200)는 신호 커넥터(3201)를 통해 호스트(3100)와 신호(SIG)를 주고받고, 전원 커넥터(3202)를 통해 전원(PWR)을 입력 받는다. SSD(3200)는 SSD 컨트롤러(3210), 복수의 플래시 메모리들(3221~322n), 보조 전원 장치(3230), 및 버퍼 메모리(3240)를 포함한다. 예시적으로, SSD 컨트롤러(3210)는 도 1 내지 도 12를 참조하여 설명된 섹터마다 더티 정보를 관리하고, 더티 정보를 기반으로 데이터 마스크 신호를 생성함으로써, 캐시 메모리 장치에서 갱신되지 않은 섹터는 버퍼 메모리(3240)에 저장되지 않도록 구성될 수 있다. 이로 인해, 불필요한 데이터 저장 동작이 최소화될 수 있으며, 버퍼 메모리(3240)에서의 오류가 감소될 수 있다.
SSD 컨트롤러(3210)는 호스트(3100)로부터 수신된 신호(SIG)에 응답하여 복수의 플래시 메모리들(3221~322n)을 제어할 수 있다. 복수의 플래시 메모리들(3221~322n)은 SSD 컨트롤러(3210)의 제어에 따라 동작할 수 있다. 보조 전원 장치(3230)는 전원 커넥터(3002)를 통해 호스트(3100)와 연결된다. 보조 전원 장치(3230)는 호스트(3100)로부터 전원(PWR)을 입력 받고, 충전할 수 있다. 보조 전원 장치(3230)는 호스트(3100)로부터의 전원 공급이 원활하지 않을 경우, SSD(3200)의 전원을 제공할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.

Claims (10)

  1. 복수의 섹터 데이터 및 상기 복수의 섹터 데이터 각각에 대응하는 복수의 더티 비트들을 포함하는 제1 캐시 세트를 포함하는 캐시 메모리;
    복수의 데이터 라인들을 통해 상기 복수의 섹터 데이터를 출력하고, 데이터 마스크 라인을 통해 상기 복수의 더티 비트들에 기반된 데이터 마스크 신호를 출력하도록 구성된 메모리 컨트롤러; 및
    상기 복수의 데이터 라인들을 통해 상기 복수의 섹터 데이터를 수신하고, 상기 데이터 마스크 라인을 통해 상기 데이터 마스크 신호를 수신하는 메모리 장치를 포함하는 전자 장치.
  2. 제 1 항에 있어서,
    상기 메모리 컨트롤러는, 상기 복수의 데이터 라인들을 통해 상기 복수의 섹터 데이터를 출력하기 전에, 상기 메모리 장치로 커맨드/어드레스(CA; command/address) 라인들을 통해 제1 마스크 쓰기(MWR; Mask Write) 커맨드를 전송하도록 더 구성된 저장 장치.
  3. 제 2 항에 있어서,
    상기 메모리 컨트롤러는 상기 제1 MWR 커맨드를 상기 메모리 장치로 전송하기 전에, 상기 메모리 장치의 제13 모드 레지스터의 제5 동작 코드를 통해 데이터 마스크 기능을 활성화하고, 상기 메모리 장치의 제3 모드 레지스터의 제7 동작 코드를 통해 데이터 버스 반전 기능을 비활성화하도록 더 구성된 저장 장치.
  4. 제 3 항에 있어서,
    상기 메모리 컨트롤러는 상기 복수의 섹터 데이터 중 제1 섹터 데이터를 제1 구간 동안 출력하고, 상기 복수의 섹터 데이터 중 제2 섹터 데이터를 제2 구간 동안 출력하고,
    상기 메모리 컨트롤러는, 상기 복수의 더티 비트 중 상기 제1 섹터 데이터에 대응하고 클린 상태인 제1 더티 비트에 응답하여, 상기 제1 구간 동안 상기 데이터 마스크 신호를 활성화하고, 상기 복수의 더티 비트들 중 상기 제2 섹터 데이터에 대응하고 더티 상태인 제2 더티 비트에 응답하여, 상기 제2 구간 동안 상기 데이터 마스크 신호를 비활성화는 전자 장치.
  5. 제 4 항에 있어서,
    상기 메모리 장치는 복수의 메모리 셀들을 포함하고,
    상기 메모리 장치는 상기 데이터 마스크 신호에 응답하여, 상기 제1 섹터 데이터를 상기 복수의 메모리 셀들에 저장하고, 상기 제2 섹터 데이터를 상기 복수의 메모리 셀들에 저장하지 않도록 더 구성된 전자 장치.
  6. 복수의 섹터 데이터 및 상기 복수의 섹터 데이터 각각에 대응하는 복수의 더티 비트들을 포함하는 제1 캐시 세트를 포함하는 캐시 메모리 및 메모리 장치를 포함하는 전자 장치의 동작 방법에 있어서,
    상기 메모리 장치로, 커맨드/어드레스(CA; command/address) 라인들을 통해 제1 마스크 쓰기(MWR; Mask Write) 커맨드를 전송하는 단계; 및
    상기 메모리 장치로, 복수의 데이터 라인들을 통해 상기 복수의 섹터 데이터를 전송하고, 데이터 마스크 라인을 통해, 상기 복수의 더티 비트들에 기반된 데이터 마스크 신호를 전송하는 단계를 포함하는 동작 방법.
  7. 제 6 항에 있어서,
    복수의 데이터 라인들을 통해 상기 복수의 섹터 데이터를 전송하고, 데이터 마스크 라인을 통해, 상기 복수의 더티 비트들에 기반된 데이터 마스크 신호를 출력하는 단계,
    제1 구간 동안 상기 복수의 섹터 데이터 중 제1 섹터 데이터를 상기 복수의 데이터 라인들을 통해 출력하는 단계;
    제2 구간 동안 상기 복수이 섹터 데이터 중 제2 섹터 데이터를 상기 복수의 데이터 라인들을 통해 출력하는 단계를 포함하고,
    상기 복수의 더티 비트들 중 상기 제1 섹터 데이터와 대응하는 제1 더티 비트는 클린 상태를 가리키고, 상기 복수의 더티 비트들 중 상기 제2 섹터 데이터와 대응하는 제2 더티 비트는 더티 상태를 가리키는 경우, 상기 제1 구간 동안, 상기 데이터 마스크 신호는 활성화되고, 상기 제2 구간 동안 상기 데이터 마스크 신호는 비활성화되는 동작 방법.
  8. 제1 및 제2 섹터 데이터 및 상기 제1 및 제2 섹터 데이터 각각에 대응하는 제1 및 제2 더티 비트들을 포함하는 제1 캐시 세트를 포함하는 캐시 메모리; 및
    상기 제1 및 제2 더티 비트들을 기반으로 상기 제1 및 제2 섹터 데이터를 외부 메모리 장치로 플러쉬하도록 구성된 버퍼 메모리 인터페이스 회로를 포함하고,
    상기 버퍼 메모리 인터페이스는 상기 제1 더티 비트는 더티 상태를 가리키고, 상기 제2 더티 비트는 클린 상태를 가리키는 경우, 상기 제1 섹터 데이터를 마스킹하여 마스킹된 제1 섹터 데이터를 생성하고, 상기 외부 메모리 장치로 제1 구간 동안 복수의 데이터 라인들을 통해 상기 마스킹된 제1 섹터 데이터를 출력하고, 제2 구간 동안 상기 복수의 데이터 라인들을 통해 상기 제2 섹터 데이터를 출력하는 솔리드-스테이트 드라이브(SSD) 컨트롤러.
  9. 제 8 항에 있어서,
    상기 버퍼 메모리 인터페이스 회로는 상기 복수의 데이터 라인들을 통해 상기 상기 제1 및 제2 섹터 데이터를 출력하기 전에, 상기 외부 메모리 장치로, 커맨드/어드레스(CA; command/address) 라인들을 통해 제1 마스크 쓰기(MWR; Mask Write) 커맨드를 전송하도록 더 구성된 SSD 컨트롤러.
  10. 제 8 항에 있어서,
    상기 버퍼 메모리 인터페이스 회로는, 상기 외부 메모리 장치의 제13 모드 레지스터의 제5 동작 코드를 통해 데이터 마스크 기능을 활성화하고, 상기 외부 메모리 장치의 제3 모드 레지스터의 제7 동작 코드를 통해 데이터 버스 반전 기능을 활성화하도록 더 구성된 SSD 컨트롤러.
KR1020200110638A 2020-08-31 2020-08-31 전자 장치, 시스템-온-칩, 및 그것의 동작 방법 KR20220030440A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200110638A KR20220030440A (ko) 2020-08-31 2020-08-31 전자 장치, 시스템-온-칩, 및 그것의 동작 방법
US17/232,844 US11797450B2 (en) 2020-08-31 2021-04-16 Electronic device, system-on-chip, and operating method thereof
CN202110744225.8A CN114115710A (zh) 2020-08-31 2021-07-01 电子设备及其操作方法、固态硬盘控制器、存储器件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200110638A KR20220030440A (ko) 2020-08-31 2020-08-31 전자 장치, 시스템-온-칩, 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20220030440A true KR20220030440A (ko) 2022-03-11

Family

ID=80358606

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200110638A KR20220030440A (ko) 2020-08-31 2020-08-31 전자 장치, 시스템-온-칩, 및 그것의 동작 방법

Country Status (3)

Country Link
US (1) US11797450B2 (ko)
KR (1) KR20220030440A (ko)
CN (1) CN114115710A (ko)

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100262453B1 (ko) 1996-08-19 2000-08-01 윤종용 비디오데이터처리방법및장치
JP3204295B2 (ja) 1997-03-31 2001-09-04 日本電気株式会社 キャッシュメモリシステム
US6311280B1 (en) 1999-02-22 2001-10-30 Nband Communications Low-power memory system with incorporated vector processing
JP4434534B2 (ja) 2001-09-27 2010-03-17 株式会社東芝 プロセッサ・システム
US8219745B2 (en) 2004-12-02 2012-07-10 International Business Machines Corporation Memory controller to utilize DRAM write buffers
US8074026B2 (en) 2006-05-10 2011-12-06 Intel Corporation Scatter-gather intelligent memory architecture for unstructured streaming data on multiprocessor systems
JP2008107905A (ja) 2006-10-23 2008-05-08 Toshiba Corp キャッシュメモリ装置
US9342461B2 (en) * 2012-11-28 2016-05-17 Qualcomm Incorporated Cache memory system and method using dynamically allocated dirty mask space
KR20150106132A (ko) 2014-03-11 2015-09-21 삼성전자주식회사 전자 장치의 캐시 메모리 제어 방법 및 장치
US20170212840A1 (en) 2016-01-21 2017-07-27 Qualcomm Incorporated Providing scalable dynamic random access memory (dram) cache management using tag directory caches
US10482033B2 (en) 2016-03-24 2019-11-19 Samsung Electronics Co., Ltd Method and device for controlling memory
US10169128B1 (en) * 2016-06-06 2019-01-01 Crossbar, Inc. Reduced write status error polling for non-volatile resistive memory device
US10359954B2 (en) * 2017-05-31 2019-07-23 Alibaba Group Holding Limited Method and system for implementing byte-alterable write cache
JP2018205859A (ja) * 2017-05-31 2018-12-27 キヤノン株式会社 メモリコントローラとその制御方法
US10430186B2 (en) * 2017-10-27 2019-10-01 Vmware, Inc. Speeding up transactions in non-volatile memory using hardware transactional memory
JP7197998B2 (ja) * 2018-05-02 2022-12-28 キヤノン株式会社 メモリコントローラおよびメモリコントローラで実施される方法
KR20200008759A (ko) 2018-07-17 2020-01-29 에스케이하이닉스 주식회사 캐시 메모리 및 이를 포함하는 메모리 시스템, 캐시 메모리의 축출 방법
US11340984B2 (en) * 2020-06-24 2022-05-24 Micron Technology, Inc. Apparatuses, systems, and methods for error correction

Also Published As

Publication number Publication date
CN114115710A (zh) 2022-03-01
US20220066938A1 (en) 2022-03-03
US11797450B2 (en) 2023-10-24

Similar Documents

Publication Publication Date Title
JP5585919B2 (ja) 電源遮断管理
JPWO2007119267A1 (ja) フラッシュメモリ用のメモリコントローラ
US20210223979A1 (en) On-ssd-copy techniques using copy-on-write
US20200057725A1 (en) Data storage device and operating method thereof
US11360707B2 (en) Memory controller for replacing bad blocks with reserved blocks and operating method thereof
KR20190102781A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US11861223B2 (en) Memory controller and storage device for scheduling addresses
US11520694B2 (en) Data storage device and operating method thereof
CN113535605A (zh) 存储装置及其操作方法
US20230139864A1 (en) Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
KR20210147696A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11449235B2 (en) Storage device for processing merged transactions and method of operating the same
TW201935232A (zh) 記憶體管理方法及使用所述方法的儲存控制器
KR20210156010A (ko) 저장 장치 및 그 동작 방법
KR102589609B1 (ko) 분할된 저장장치에서의 스냅샷 관리
US11887692B2 (en) Electronic device, operation method of host, operation method of memory module, and operation method of memory device
KR20220030440A (ko) 전자 장치, 시스템-온-칩, 및 그것의 동작 방법
CN111309642B (zh) 一种存储器及其控制方法与存储系统
US11281590B2 (en) Controller, operating method thereof and storage device including the same
CN115114178A (zh) 存储器系统及其操作方法
US11875038B2 (en) Block allocation for multi-CE/die structure SSD
US12032824B2 (en) Event log management method, controller and storage device
CN112015339B (zh) 一种存储器的数据保存系统,保存方法及存储系统
US11645197B2 (en) Memory controller and method of operating the same
CN113849120B (zh) 存储装置及其操作方法