KR20160014053A - 데이터 기입 방법 및 메모리 시스템 - Google Patents

데이터 기입 방법 및 메모리 시스템 Download PDF

Info

Publication number
KR20160014053A
KR20160014053A KR1020157036978A KR20157036978A KR20160014053A KR 20160014053 A KR20160014053 A KR 20160014053A KR 1020157036978 A KR1020157036978 A KR 1020157036978A KR 20157036978 A KR20157036978 A KR 20157036978A KR 20160014053 A KR20160014053 A KR 20160014053A
Authority
KR
South Korea
Prior art keywords
data
data block
change
cache line
column address
Prior art date
Application number
KR1020157036978A
Other languages
English (en)
Other versions
KR101785189B1 (ko
Inventor
페이 시아
데준 지앙
진 시옹
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20160014053A publication Critical patent/KR20160014053A/ko
Application granted granted Critical
Publication of KR101785189B1 publication Critical patent/KR101785189B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • 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/0877Cache access modes
    • G06F12/0879Burst mode
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명의 실시예들은 데이터 기입 방법 및 메모리 시스템을 제공한다. 이 방법은, 메모리 제어기 및 메모리 디바이스를 적어도 포함하는 메모리 시스템에 적용가능하며, 이 방법은, 메모리 제어기가 캐시에 의해 송신된 변경 정보를 수신하는 단계 - 변경 정보는, 캐시가 최종 레벨 캐시(LLC)의 제1의 기입될 캐시 라인을 적어도 하나의 데이터 블록으로 분할한 이후에 생성되며, 각각의 데이터 블록 상의 데이터가 변경되는지 여부를 표시하는 정보임 -; 및 메모리 제어기가, 변경 정보에 따라, 데이터가 변경되는 각각의 변경 데이터 블록에 대하여 대응하는 컬럼 어드레스 및 대응하는 데이터를 메모리 디바이스에 송신하여, 메모리 디바이스가 각각의 변경 데이터 블록에 데이터를 기입하고, 데이터가 변경되지 않는 데이터 블록에는 데이터를 기입하지 않게 하는 단계를 포함하고, 그에 의해, 유효 데이터를 신속하게 기입하고 메모리 시스템의 에너지 소비를 감소시키고 메모리 시스템의 성능을 개선하는 목적을 달성한다.

Description

데이터 기입 방법 및 메모리 시스템{DATA WRITING METHOD AND MEMORY SYSTEM}
본 출원은, 2013년 6월 29일자로 중국 특허청에 출원되었으며 발명의 명칭이 "데이터 기입 방법 및 메모리 시스템(DATA WRITING METHOD AND MEMORY SYSTEM)"인 중국 특허 출원 제201310270239.6호에 대해 우선권을 주장하며, 이 특허 출원은 참고로 본 명세서에 완전히 포함되어 있다.
기술분야
본 발명의 실시예들은 컴퓨터 기술에 관한 것이며, 구체적으로는 데이터 기입 방법 및 메모리 시스템에 관한 것이다.
기존의 메모리 시스템은 기본적으로 메모리 제어기(Memory cController, MC), 메모리 디바이스 등을 포함한다. 메모리 제어기와 메모리 디바이스는 더블 데이터 레이트(dDouble dData rRate, DDR) 프로토콜을 이용함으로써 데이터를 교환한다. 메모리 제어기는 버스트(burst) 기입 방식으로 데이터를 메모리 디바이스에 기입하고, 1회의 버스트 기입이 수행되는 데이터 블록의 크기가 메모리 데이터 버스 폭이며; 캐시(cache)와 메모리 시스템은 캐시 라인(cache line)의 단위로 데이터를 교환하고, 매회 판독되거나 기입되는 데이터의 크기는 캐시에서의 최종 레벨 캐시(LLC: last level cache)의 하나의 캐시 라인의 크기이다. 그러므로, 메모리 제어기는 하나의 캐시 라인의 데이터를 메모리 디바이스에 기입하기 위해 복수의 연속적인 버스트 기입을 수행할 필요가 있고, 여기서 연속적인 버스트 기입들의 분량(quantity)은 버스트 길이(BL: burst length)라고 지칭된다.
DDR3 프로토콜에서, BL은 일반적으로 8과 동일하고, 1회의 버스트 기입에서의 데이트 블록의 크기는 하나의 캐시 라인을 복수의 데이터 블록으로 분할하기 위한 입도(granularity)로서 이용된다. 예를 들어, LLC의 하나의 캐시 라인의 크기가 64 바이트이고, 메모리 데이터 버스 폭이 64 비트인 경우, 버스트 기입 데이터가 데이터 버스 상에 나타날 때, 메모리 제어기는 LLC의 하나의 캐시 라인의 데이터를 메모리 디바이스에 기입하기 위해 연속적인 4개의 클록 사이클에서 8회의 버스트 기입을 수행할 필요가 있다. 그러나, 실제로는, LLC의 하나의 캐시 라인의 데이터가 메모리 디바이스에 기입될 때, 많은 데이터 블록이 변경되지 않는다. 기입 프로세스 동안, 일부 버스트 기입들에서 무효 데이터가 메모리 디바이스에 기입되는 것이 가능하다. 결과적으로, 유효 데이터를 기입하는 속도가 낮고, 대량의 무효 데이터의 기입은 메모리 시스템의 전력 소비의 증가를 초래하며, 그에 의해 메모리 시스템의 성능을 감소시킨다.
DDR3 프로토콜에 의해 지원되는 BC4 기술에서, 메모리 제어기가 메모리 디바이스에 데이터를 기입할 때, 하나의 캐시 라인의 전반부 또는 후반부의 데이터를 메모리 디바이스에 기입하기 위해, 2개의 연속적인 클록 사이클에서 총 4회의 버스트 기입이 발생하고, 후속하는 2개의 클록 사이클에서는 버스트 기입이 없다. 이러한 프로세스 동안, 처음의 2개의 클록 사이클 내에서, 데이터 블록에서의 데이터가 변경되는지 여부가 고려되지 않는 기입 방식에서는, 일부 버스트 기입들에서 무효 데이터가 메모리 디바이스에 기입되는 것이 또한 가능하다. 결과적으로, 유효 데이터를 기입하는 속도가 낮고, 대량의 무효 데이터의 기입은 메모리 시스템의 전력 소비의 증가를 초래하며, 그에 의해 메모리 시스템의 성능을 감소시킨다.
본 발명의 실시예들은, 유효 데이터를 신속하게 기입하고 메모리 시스템의 전력 소비를 감소시키고 메모리 시스템의 성능을 개선하는 목적들이 달성되도록, 캐시 라인의 데이터 블록에서의 데이터가 변경되는지 여부가 구별되고, 변경 데이터 블록에 대해서만 기입이 수행되는 데이터 기입 방법 및 메모리 시스템을 제공한다.
제1 양태에 따르면, 본 발명의 실시예는, 메모리 제어기 및 메모리 디바이스를 적어도 포함하는 메모리 시스템에 적용되는 데이터 기입 방법을 제공하는데, 이 방법은,
메모리 제어기에 의해, 캐시에 의해 송신된 변경 정보를 수신하는 단계 - 변경 정보는, 캐시가 최종 레벨 캐시 LLC의 제1의 기입될(to-be-written) 캐시 라인(cache line)을 적어도 하나의 데이터 블록으로 분할한 이후에 생성되며, 각각의 데이터 블록에서의 데이터가 변경되는지 여부를 표시하는데 이용되는 정보임 -;
변경 정보에 의해 표시되는 바와 같이 데이터가 변경되지 않는 각각의 미변경 데이터 블록에 대하여, 메모리 제어기에 의해, 변경 정보에 따라, 각각의 미변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 미변경 데이터 블록에 대응하는 데이터를 메모리 디바이스에 송신하는 것을 스킵하고; 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되는 각각의 변경 데이터 블록에 대하여, 메모리 제어기에 의해, 변경 정보에 따라, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터를 메모리 디바이스에 송신하는 단계; 및
메모리 디바이스에 의해, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터에 따라, 버스트 길이의 데이터를 각각의 변경 데이터 블록에 기입하는 단계 - 버스트 길이는 적어도 하나의 데이터 블록의 분량과 동일함 -
를 포함한다.
제1 양태의 제1 가능한 구현 방식에서, 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되는 각각의 변경 데이터 블록에 대하여, 메모리 제어기에 의해, 변경 정보에 따라, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터를 메모리 디바이스에 송신하는 단계는, 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량이 버스트 길이와 동일한 경우, 메모리 제어기에 의해, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터를 메모리 디바이스에 송신하는 단계를 포함하고,
메모리 디바이스에 의해, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터에 따라, 버스트 길이의 데이터를 각각의 변경 데이터 블록에 기입하는 단계는, 메모리 디바이스에 의해, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터에 따라, 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대해 버스트 길이의 데이터의 기입을 수행하는 단계를 포함한다.
제1 양태의 제2 가능한 구현 방식에서, 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되는 각각의 변경 데이터 블록에 대하여, 메모리 제어기에 의해, 변경 정보에 따라, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터를 메모리 디바이스에 송신하는 단계는, 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량이 버스트 길이 미만인 경우, 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스와 데이터, 및 적어도 하나의 제2의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스와 데이터를 메모리 디바이스에 송신하는 단계를 포함하고 - 적어도 하나의 제2의 기입될 캐시 라인의 변경 데이터 블록들의 분량과 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량의 합계는 버스트 길이 이하임 -,
메모리 디바이스에 의해, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터에 따라, 버스트 길이의 데이터를 각각의 변경 데이터 블록에 기입하는 단계는, 메모리 디바이스에 의해, 제1의 기입될 캐시 라인의 각각의 컬럼 어드레스 및 적어도 하나의 제2의 기입될 캐시 라인의 각각의 컬럼 어드레스에 따라, 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록 및 적어도 하나의 제2의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대해 버스트 길이의 데이터의 기입을 수행하는 단계를 포함하고, 제2의 기입될 캐시 라인은 LLC에서 제1의 기입될 캐시 라인을 제외한 기입될 캐시 라인이다.
제1 양태의 제2 가능한 구현 방식을 참조하여, 제1 양태의 제3 가능한 구현 방식에서, 제1의 기입될 캐시 라인 및 적어도 하나의 제2의 기입될 캐시 라인은 동일한 저장 그룹인 뱅크(Bank)의 동일한 로우에 있고, LLC에서 동일한 로우의 판독 커맨드는 존재하지 않는다.
제1 양태, 또는 제1 양태의 제1 내지 제3 가능한 구현 방식 중 어느 하나를 참조하여, 제1 양태의 제4 가능한 구현 방식에서, 메모리 디바이스에 의해, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터에 따라, 버스트 길이의 데이터를 각각의 변경 데이터 블록에 기입하는 단계는, 버스트 길이와 동일한 분량을 갖는 컬럼 어드레스 버퍼들 및 버스트 길이와 동일한 분량을 갖는 컬럼 디코더들이 메모리 디바이스 상에 배치될 때, 독립적인 컬럼 어드레스 버퍼 및 독립적인 컬럼 디코더를 이용하여 각각의 변경 데이터 블록에 대해 데이터의 기입을 수행하는 단계를 포함한다.
제2 양태에 따르면, 본 발명의 실시예는, 메모리 제어기 및 메모리 디바이스를 적어도 포함하는 메모리 시스템을 제공하는데,
메모리 제어기는 캐시에 의해 송신된 변경 정보를 수신하고 - 변경 정보는, 캐시가 최종 레벨 캐시 LLC의 제1의 기입될 캐시 라인(cache line)을 적어도 하나의 데이터 블록으로 분할한 이후에 생성되며, 각각의 데이터 블록에서의 데이터가 변경되는지 여부를 표시하는데 이용되는 정보임 -; 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되지 않는 각각의 미변경 데이터 블록에 대하여, 변경 정보에 따라, 각각의 미변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 미변경 데이터 블록에 대응하는 데이터를 메모리 디바이스에 송신하는 것을 스킵하고; 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되는 각각의 변경 데이터 블록에 대하여, 변경 정보에 따라, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터를 메모리 디바이스에 송신하도록 구성되고,
메모리 디바이스는, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터에 따라, 버스트 길이의 데이터를 각각의 변경 데이터 블록에 기입하도록 구성되며, 버스트 길이는 적어도 하나의 데이터 블록의 분량과 동일하다.
제2 양태의 제1 가능한 구현 방식에서, 메모리 제어기는, 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량이 버스트 길이와 동일한 경우, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터를 메모리 디바이스에 송신하도록 구성되고,
메모리 디바이스는, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터에 따라, 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대해 버스트 길이의 데이터의 기입을 수행하도록 구성된다.
제2 양태의 제2 가능한 구현 방식에서, 메모리 제어기는, 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량이 버스트 길이 미만인 경우, 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스와 데이터, 및 적어도 하나의 제2의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스와 데이터를 메모리 디바이스에 송신하도록 구성되고 - 적어도 하나의 제2의 기입될 캐시 라인의 변경 데이터 블록들의 분량과 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량의 합계는 버스트 길이 이하임 -,
메모리 디바이스는, 제1의 기입될 캐시 라인의 각각의 컬럼 어드레스 및 적어도 하나의 제2의 기입될 캐시 라인의 각각의 컬럼 어드레스에 따라, 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록 및 적어도 하나의 제2의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대해 버스트 길이의 데이터의 기입을 수행하도록 구성되고, 제2의 기입될 캐시 라인은 LLC에서 제1의 기입될 캐시 라인을 제외한 기입될 캐시 라인이다.
제2 양태의 제2 가능한 구현 방식을 참조하여, 제2 양태의 제3 가능한 구현 방식에서, 제1의 기입될 캐시 라인 및 적어도 하나의 제2의 기입될 캐시 라인은 동일한 저장 그룹인 뱅크의 동일한 로우에 있고, LLC에서 동일한 로우의 판독 커맨드는 존재하지 않는다.
제2 양태, 또는 제2 양태의 제1, 제2 또는 제3 가능한 구현 방식을 참조하여, 제2 양태의 제4 가능한 구현 방식에서, 버스트 길이와 동일한 분량을 갖는 컬럼 어드레스 버퍼들 및 버스트 길이와 동일한 분량을 갖는 컬럼 디코더들이 메모리 디바이스 상에 배치될 때, 독립적인 컬럼 어드레스 버퍼 및 독립적인 컬럼 디코더를 이용하여 각각의 변경 데이터 블록에 대해 데이터의 기입이 수행된다.
본 발명의 실시예들에서 제공되는 데이터 기입 방법 및 메모리 시스템에서, 메모리 제어기는, 캐시에 의해 송신된 변경 정보에 따라, 데이터가 변경되는 데이터 블록에 대해서만 컬럼 어드레스 및 데이터를 메모리 디바이스에 송신하고, 그에 의해, 메모리 디바이스는 각각의 변경 데이터 블록에 대해 데이터 기입을 수행하고, 데이터가 변경되지 않는 데이터 블록에 대해서는 기입을 수행하지 않게 된다. 그러므로, 유효 데이터를 신속하게 기입하고 메모리 시스템의 전력 소비를 감소시키고 메모리 시스템의 성능을 개선하는 목적들이 달성된다.
본 발명의 실시예들 또는 종래 기술의 기술적 해결책들을 보다 명확하게 설명하기 위해서, 이하에서는 이러한 실시예들 또는 종래 기술을 설명하기 위해 요구되는 첨부 도면들을 간략하게 소개한다. 명백하게도, 다음의 설명에서의 첨부 도면들은 본 발명의 일부 실시예들을 도시하며, 관련 기술분야의 통상의 기술자라면 창조적 노력 없이 이러한 첨부 도면들로부터 다른 도면들을 여전히 도출할 수 있다.
도 1은 본 발명에 따른 데이터 기입 방법의 플로우차트이다.
도 2는 본 발명에 따른 데이터 기입 방법에서의 LLC의 작동을 도시하는 개략도이다.
도 3은 본 발명에 따른 데이터 기입 방법에서의 메모리 제어기의 작동을 도시하는 개략도이다.
도 4는 본 발명에 따른 데이터 기입 방법에서의 메모리 디바이스의 작동을 도시하는 개략도이다.
도 5는 본 발명에 따른 데이터 기입 방법에서의 기입 커맨드 결합의 시퀀스도이다.
도 6은 본 발명에 따른 메모리 시스템의 개략적인 구조도이다.
이하, 본 발명의 실시예들의 목적들, 기술적 해결책들 및 이점들을 보다 명확하게 하기 위해서, 본 발명의 실시예들의 첨부 도면들을 참조하여 본 발명의 실시예들에서의 기술적 해결책들을 명확하고 완전하게 설명한다. 명백하게도, 설명된 실시예들은 본 발명의 실시예들 전부가 아닌 일부이다. 창조적 노력 없이 본 발명의 실시예들에 기초하여 관련 기술분야의 통상의 기술자에 의해 획득되는 다른 모든 실시예들은 본 발명의 보호 범위 내에 있을 것이다.
도 1은 본 발명의 실시예 1에 따른 데이터 기입 방법의 플로우차트이다. 본 실시예는, 메모리 제어기 및 메모리 디바이스를 적어도 포함하는 메모리 시스템에 데이터가 기입되는 시나리오에 적용된다. 구체적으로, 본 실시예는 다음의 단계들을 포함한다:
101. 메모리 제어기가 캐시에 의해 송신된 변경 정보를 수신하는 단계 - 변경 정보는, 캐시가 최종 레벨 캐시 LLC의 제1의 기입될 캐시 라인(cache line)을 적어도 하나의 데이터 블록으로 분할한 이후에 생성되며, 적어도 하나의 데이터 블록 각각에서의 데이터가 변경되는지 여부를 표시하는데 이용되는 정보임 -.
캐시는 중앙 처리 유닛(central processing unit, CPU)과 대용량 메모리 시스템 사이에 위치되고, 비교적 높은 액세스 레이트를 갖는다. 이 단계에서, 캐시는 최종 레벨 캐시 LLC의 제1의 기입될 캐시 라인(cache line)을 적어도 하나의 데이터 블록으로 분할하고, 적어도 하나의 데이터 블록 각각에 하나의 플래그 비트를 추가하며, 플래그 비트는 데이터 블록에서의 데이터가 변경되는지 여부를 표시하고, 하나의 캐시 라인은 복수의 플래그 비트를 필요로 하며, 각각의 캐시 라인의 복수의 플래그 비트는 캐시 라인의 적어도 하나의 데이터 블록 각각에서의 데이터가 변경되는지 여부를 표시하는 변경 정보를 구성한다. 예를 들어, 하나의 캐시 라인은 메모리 데이터 버스 폭을 입도로서 이용하여 복수의 데이터 블록으로 분할되고, 0 또는 1로 표현되는 하나의 플래그 비트가 복수의 데이터 블록 각각에 추가되며, 0은 데이터 블록에서의 데이터가 변경되지 않는 것, 즉 데이터 블록의 값이 변경되지 않는 것을 나타내고; 1은 데이터 블록에서의 데이터가 변경되는 것, 즉 데이터 블록의 값이 변경되는 것을 나타낸다. 각각의 캐시 라인의 플래그 비트들은 캐시 라인의 변경 블록 벡터(changed block vector, CBV), 즉 변경 정보를 구성한다. 구체적으로, 하나의 캐시 라인의 크기는 64 바이트이고, 메모리 데이터 버스 폭은 64 비트라고 가정하면, 하나의 캐시 라인은 8개의 데이터 블록으로 분할될 수 있고, 버스트 길이(BL)는 8과 동일한데, 즉 하나의 CBV의 크기는 8 비트이다.
도 2는 본 발명에 따른 데이터 기입 방법에서의 LLC의 작동을 도시하는 개략도이다. 도 2에 도시된 바와 같이, 캐시의 상위 레벨 캐시가 데이터를 LLC의 하나의 캐시 라인에 기입할 때, 상위 레벨 캐시는 먼저 캐시 라인에서의 오래된 데이터(old data)를 판독하고, 오래된 데이터와 기입될 데이터(새로운 데이터(new data))를 비교하고; 하나의 데이터 블록에서의 데이터가 변경되지 않는 경우, 상위 레벨 캐시는 이 데이터 블록의 플래그 비트를 0으로 설정하고; 데이터가 변경되는 경우, 상위 레벨 캐시는 이 데이터 블록의 플래그 비트를 1로 설정한다. LLC가 캐시 라인의 데이터를 메모리 시스템에 기입할 때, 캐시 라인에 대응하는 CBV 정보가 메모리 시스템의 메모리 제어기에 전달되고, 메모리 제어기는 CBV 정보를 수신하는데, 즉 대응하는 변경 정보를 수신한다. 태그가 Tag1인 데이터 블록을 예로 들면, 상위 레벨 캐시는 다음의 단계들을 실행한다: (1) 데이터를 LLC의 캐시 라인에 기입할 때, 데이터 블록에서의 오래된 데이터 D1을 판독하고, 먼저 비교기를 이용하여 D1과 기입될 데이터 D2를 비교하고, 비교 결과를 CBV에 기록하는 단계. 마찬가지로, 상위 레벨 캐시는 캐시 라인의 다른 데이터 블록들의 데이터를 판독하고, 이러한 데이터와 이들 데이터 블록들에 기입될 새로운 데이터를 비교하고, 다른 데이터 블록들 각각의 비교 결과를 CBV에 기록하여, 이러한 캐시 라인의 CBV 정보, 즉 변경 정보를 획득한다. LLC가 다음의 단계, 즉 (2) 데이터를 메모리 시스템에 기입하고, 즉 데이터를 기입하기 위해 기입 요청을 메모리 시스템에 송신하는 단계를 실행할 때, LLC는 동시에 다음의 단계를 실행한다: (3) 기입될 캐시 라인의 변경 정보를 메모리 시스템에 송신하는 단계.
102. 변경 정보에 따라, 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되지 않는 각각의 미변경 데이터 블록에 대하여, 메모리 제어기는 각각의 미변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 미변경 데이터 블록에 대응하는 데이터를 메모리 디바이스에 송신하지 않고; 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되는 각각의 변경 데이터 블록에 대하여, 메모리 제어기는 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터를 메모리 디바이스에 송신하는 단계.
이 단계에서, 메모리 시스템의 메모리 제어기는, 수신된 변경 정보에 따라, 제1의 기입될 캐시 라인의 각각의 데이터 블록에 대해 기입을 수행하도록 요구되는지를 판정한다. 구체적으로, 도 3을 참조한다.
도 3은 본 발명에 따른 데이터 기입 방법에서의 메모리 제어기의 작동을 도시하는 개략도이다. 도 3을 참조하면, 메모리 시스템의 메모리 제어기는 요청 큐(트랜잭션 큐(tansaction queue)), 커맨드 큐(command queue) 등을 포함한다. LLC의 기입 요청은 먼저 요청 큐에 배치되고, 메모리 제어기는 기입 요청을 메모리 디바이스를 동작시키기 위한 특정 커맨드로 변환하고, 이 커맨드를 커맨드 큐에 저장한다. 메모리 제어기는, 제1의 기입될 캐시 라인의 변경 정보에 따라, 제1의 기입될 캐시 라인의 적어도 하나의 데이터 블록 각각에 대해 기입을 수행하도록 요구되는지를 판정한다. 구체적으로, 데이터가 변경되지 않는 미변경 데이터 블록에 대해서는, 버스트 기입이 수행되지 않고; 데이터가 변경되는 변경 데이터 블록에 대해서는, 각각의 비트(beat)에서 변경 데이터 블록에 대응하는 컬럼 어드레스 및 데이터가 어드레스 버스, 데이터 버스 등을 이용하여 메모리 제어기에 송신된다. DDR 기술에서는 하나의 클록 사이클의 상승 에지 및 하강 에지 둘 다에서 데이터가 전송되고, 데이터 버스의 데이터 주파수는 데이터 버스의 클록 주파수의 2배이기 때문에, 각각의 비트(beat)는 클록 사이클의 절반이다.
103. 메모리 디바이스가, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터에 따라, 버스트 길이의 데이터를 각각의 변경 데이터 블록에 기입하는 단계 - 버스트 길이는 적어도 하나의 데이터 블록의 분량과 동일함 -.
일반적으로, 제1의 기입될 캐시 라인이 분할되는 데이터 블록들의 분량은 연속적인 버스트 기입들의 분량이다. 이 단계에서, 메모리 디바이스는, 각각의 수신된 컬럼 어드레스 및 각각의 수신된 데이터 단편에 따라, 각각의 변경 데이터 블록에 대해 버스트 길이의 데이터 기입을 수행한다.
선택적으로, 종래 기술에서 하나의 메모리 디바이스가 하나의 컬럼 어드레스 버퍼 및 하나의 컬럼 디코더만을 갖는 것과 비교하여, 본 실시예의 메모리 디바이스는 복수의 컬럼 어드레스 버퍼 및 복수의 컬럼 디코더를 포함한다. 도 4는 본 발명에 따른 데이터 기입 방법에서의 메모리 디바이스의 작동을 도시하는 개략도이다. 도 4를 참조하면, 본 실시예에서, 메모리 디바이스는 로우 어드레스 버퍼(row address buffer), 로우 어드레스 디코더(로우 디코더(row decoder)), 버스트 길이와 동일한 분량을 갖는 컬럼 어드레스 버퍼(column address buffer), 버스트 길이와 동일한 분량을 갖는 컬럼 어드레스 디코더(컬럼 디코더(column decoder)), 감지 증폭기 어레이(sense amplifier array, SAA), 메모리 어레이(memory array), 기입된 데이터(버퍼 내 데이터(data in buffer))를 갖는 버퍼 등을 포함한다. 각각의 변경 데이터 블록에 대하여, 메모리 디바이스는 독립적인 컬럼 어드레스 버퍼 및 독립적인 컬럼 디코더를 이용하여 데이터 기입을 수행한다. 데이터가 기입될 때마다, 메모리 제어기에 의해 송신된 복수의 컬럼 어드레스가 상이한 컬럼 어드레스 버퍼들에 저장되고, 상이한 컬럼 디코더들을 이용하여 동시에 디코딩되며, SAA에서의 상이한 컬럼들이 선택되고, 데이터는 이러한 선택된 컬럼들에 기입되며, 최종적으로는 SAA에서의 데이터가 메모리 어레이에 기입된다.
본 발명의 본 실시예에서 제공되는 데이터 기입 방법에서, 메모리 제어기는, 캐시에 의해 송신된 변경 정보에 따라, 데이터가 변경되는 데이터 블록에 대해서만 컬럼 어드레스 및 데이터를 메모리 디바이스에 송신하고, 그에 의해, 메모리 디바이스는 각각의 변경 데이터 블록에 대해 데이터 기입을 수행하고, 데이터가 변경되지 않는 데이터 블록에 대해서는 기입을 수행하지 않게 된다. 그러므로, 유효 데이터를 신속하게 기입하고 메모리 시스템의 전력 소비를 감소시키고 메모리 시스템의 성능을 개선하는 목적들이 달성된다.
선택적으로, 전술한 실시예 1에서, 메모리 제어기는, 변경 정보에 따라, 적어도 하나의 데이터 블록 각각에 대해 기입을 수행하도록 요구되는지를 판정한다. 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되는 각각의 변경 데이터 블록에 대하여, 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량이 버스트 길이와 동일한 경우, 메모리 제어기는 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터를 메모리 디바이스에 송신한다. 그에 대응하여, 메모리 디바이스는, 각각의 컬럼 어드레스에 따라, 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대해 버스트 길이의 데이터 기입을 수행한다.
구체적으로, 캐시는 LLC의 제1의 기입될 캐시 라인을 적어도 하나의 데이터 블록으로 분할하고, 적어도 하나의 데이터 블록 각각에 대해 1회의 버스트 기입을 수행하며, 분할 후에 획득되는 데이터 블록들의 분량은 버스트 기입들의 분량, 즉 버스트 길이이다. 본 실시예에서, 변경 데이터 블록들의 분량이 버스트 길이와 동일한 경우, 즉 분할 후에 획득되는 모든 데이터 블록에서의 데이터가 변경되는 경우, 메모리 제어기에 의해 수신되는 변경 정보는 캐시 라인의 모든 데이터 블록에서의 데이터가 변경된다는 것을 표시한다. 이 경우, 제1의 기입될 캐시 라인의 적어도 하나의 데이터 블록 각각에 대하여, 메모리 제어기는 데이터 블록에 대응하는 컬럼 어드레스 및 데이터를 메모리 디바이스에 송신하고; 메모리 디바이스는 복수의 수신된 컬럼 어드레스를 상이한 컬럼 어드레스 버퍼들에 저장하고, 상이한 컬럼 어드레스 디코더들을 이용하여 동시에 디코딩을 수행하고, SAA에서의 상이한 컬럼들을 선택하고, 데이터를 이러한 선택된 컬럼들에 기입하며, 최종적으로는 SAA에서의 데이터를 메모리 어레이에 기입한다. 이러한 방식으로, 제1의 기입될 캐시 라인의 적어도 하나의 데이터 블록 각각에 대해 기입이 수행된다. 예를 들어, 제1의 기입될 캐시 라인은 메모리 데이터 버스 폭을 입도로서 이용하여 8개의 데이터 블록으로 분할되고, 모든 8개의 데이터 블록에서의 데이터가 변경된다. 그러므로, 메모리 제어기는 8개의 컬럼 어드레스 및 대응하는 데이터를 메모리 디바이스에 송신한다. 8개의 컬럼 어드레스 버퍼 및 8개의 컬럼 디코더는 메모리 디바이스 상에 배치되고, 각각의 컬럼 어드레스 버퍼는 하나의 컬럼 어드레스를 저장하고, 컬럼 어드레스들에 대응하는 디코더들은 디코딩을 동시에 수행한다.
선택적으로, 전술한 실시예 1에서, 메모리 제어기는, 변경 정보에 따라, 각각의 데이터 블록에 대해 기입을 수행하도록 요구되는지를 판정한다. 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되는 각각의 변경 데이터 블록에 대하여, 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량이 버스트 길이 미만인 경우, 메모리 제어기는 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스와 데이터, 및 적어도 하나의 제2의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스와 데이터를 메모리 디바이스에 송신한다. 적어도 하나의 제2의 기입될 캐시 라인의 변경 데이터 블록들의 분량과 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량의 합계는 버스트 길이 이하이다. 그에 대응하여, 메모리 디바이스는, 제1의 기입될 캐시 라인의 각각의 컬럼 어드레스 및 적어도 하나의 제2의 기입될 캐시 라인의 각각의 컬럼 어드레스에 따라, 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록 및 적어도 하나의 제2의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대해 버스트 길이의 데이터 기입을 수행하고, 제2의 기입될 캐시 라인은 LLC에서 제1의 기입될 캐시 라인을 제외한 기입될 캐시 라인이다.
일반적으로, 캐시는 LLC의 제1의 기입될 캐시 라인을 적어도 하나의 데이터 블록으로 분할하고, 적어도 하나의 데이터 블록 각각에 대해 1회의 버스트 기입을 수행하며, 분할 후에 획득되는 데이터 블록들의 분량은 버스트 기입들의 분량, 즉 버스트 길이이다. 본 실시예에서, 변경 데이터 블록들의 분량이 버스트 길이 미만인 경우, 분할 후에 획득되는 데이터 블록들 중 일부 데이터 블록들에서의 데이터만이 변경된다. 이 경우, 커맨드 스케줄링을 수행할 때, 메모리 제어기는 기입 커맨드들을 결합하고, 기입 커맨드들을 결합하는 방식으로 하나의 고정된 버스트 길이의 클록 사이클에서 복수의 기입을 완료하고, 그에 의해 클록 사이클의 낭비를 방지하고, 메모리 시스템의 전력 소비를 감소시키며, 메모리 시스템의 성능을 개선한다.
구체적으로, LLC에 의해 메모리 제어기에 송신되고 캐시 라인의 크기의 데이터가 기입되는 것을 요청하기 위해 이용되는 기입 요청들은 먼저 요청 큐에 저장되고, 메모리 제어기는 이러한 기입 요청들을 메모리 디바이스를 동작시키기 위한 기입 커맨드들로 변환하고, 이 기입 커맨드들을 커맨드 큐에 저장한다. 메모리 디바이스가 제1의 기입될 캐시 라인의 기입 커맨드를 송신할 때, 메모리 제어기가, 제1의 기입될 캐시 라인의 변경 정보에 따라, 캐시 라인의 변경 데이터 블록들의 분량이 버스트 길이 미만임을 발견하는 경우, 적어도 하나의 제2의 기입될 캐시 라인에 대응하는 기입 커맨드가 커맨드 큐로부터 선택된다. 적어도 하나의 제2의 기입될 캐시 라인의 변경 데이터 블록들의 분량과 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량의 합계는 버스트 길이 이하이다. BL과 동일한 분량을 갖는 버스트 기입들에서, 메모리 제어기는, 제1의 기입될 캐시 라인의 하나의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 데이터를 각각의 비트(beat)에서 메모리 디바이스에 송신하고; 제1의 기입될 캐시 라인의 변경 데이터 블록들에 대응하는 컬럼 어드레스들 및 데이터가 송신된 이후에, 메모리 제어기는 후속하여 제2의 기입될 캐시 라인의 하나의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 데이터를 각각의 비트(beat)에서 메모리 디바이스에 계속하여 송신하고, BL과 동일한 분량을 갖는 데이터 블록들에 데이터가 기입될 때까지, 또는 결합될 수 있는 기입 커맨드들이 커맨드 큐에서 발견될 수 없을 때까지, 즉 데이터가 기입되는 데이터 블록들의 분량이 BL 미만일 때까지 이 프로세스를 반복한다.
제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량이 버스트 길이 미만이고, 제1의 기입될 캐시 라인에 대응하는 기입 커맨드 및 적어도 하나의 제2의 기입될 캐시 라인에 대응하는 기입 커맨드가 데이터 기입 프로세스 동안 결합될 필요가 있는 경우, 다음의 조건, 즉 적어도 하나의 제2의 기입될 캐시 라인의 변경 데이터 블록들의 분량과 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량의 합계가 버스트 길이 이하라는 것이 충족될 필요가 있으며, 제1의 기입될 캐시 라인 및 적어도 하나의 제2의 기입될 캐시 라인은 결합될 수 있는 기입 커맨드들에 대응한다. 추가로, 기입 커맨드들은 다음의 조건, 즉 제1의 기입될 캐시 라인 및 적어도 하나의 제2의 기입될 캐시 라인이 동일한 저장 그룹인 뱅크의 동일한 로우에 있고, LLC에서 동일한 로우의 판독 커맨드가 없다는 것을 또한 충족할 필요가 있다. 즉, 제1의 기입될 캐시 라인에 대응하는 기입 커맨드 및 적어도 하나의 제2의 기입될 캐시 라인에 대응하는 기입 커맨드들은 동일한 저장 그룹인 뱅크의 동일한 로우에서의 기입을 위해 이용되고, 적어도 하나의 제2의 기입될 캐시 라인에 대응하는 기입 커맨드들에서 동일한 로우의 판독 요청은 없다. 이 경우, 도 4를 참조하면, 메모리 디바이스는 동일한 저장 그룹인 뱅크의 동일한 로우에서의 데이터 기입을 수행하기 위해 기입 커맨드들이 이용되는지를 테스트하도록 구성되는 하나의 로우 테스트(row test)를 더 포함한다.
구체적으로, LLC의 하나의 캐시 라인의 크기가 64 바이트라고 가정하면, 메모리 데이터 버스 폭은 64 비트이고, 버스트 길이(BL)는 8과 동일하다. 표 1은 메모리 제어기의 커맨드 큐에서의 커맨드들에 관한 정보를 제시하는데, 동일한 뱅크를 동작시키기 위해 3개의 기입 커맨드가 이용되고, 기입 커맨드들 Write1 및 Write3은 로우 Row1에서의 기입을 위해 이용되고, 기입 커맨드 Write2는 로우 Row2에서의 기입을 위해 이용된다.
Figure pct00001
표 1로부터 알 수 있는 바와 같이, Write1 및 Write3은 동일한 로우에서의 기입을 위해 이용되고; CBV, 즉 변경 정보는 (표 1에서 교차 해칭으로 도시된 바와 같이) Write1에 대응하는 캐시 라인의 변경 데이터 블록들의 분량과 Write3에 대응하는 캐시 라인의 변경 데이터 블록들의 분량의 합계가 8과 동일함을 나타낸다. 그러므로, Write1 및 Write3에 대해 기입 커맨드 결합이 수행되며; 메모리 제어기는 Write1 및 Write3의 스케줄링을 완료한 후에 Write2를 스케줄링한다. 구체적으로, 도 5을 참조한다.
도 5는 본 발명에 따른 데이터 기입 방법에서의 기입 커맨드 결합의 시퀀스도이다. 도 5에 도시된 바와 같이, 처음의 4개의 비트(beat)에서, 즉 클록 사이클들 T0 및 T1의 상승 에지들 및 하강 에지들에서, 메모리 제어기는 Write1 및 컬럼 어드레스 컬럼들 col1, col2, col3 및 col4를 송신하고; 후속하는 4개의 비트(beat)에서, 즉 클록 사이클들 T2 및 T3의 상승 에지들 및 하강 에지들에서, 메모리 제어기는 Write3 및 컬럼 어드레스들 col3, col4, col5 및 col6을 송신한다. 다음으로, 메모리 제어기는 Write2에 대응하는 컬럼 어드레스들을 송신한다. 순간 T5에서, 버스트 기입 데이터 Dn이 데이터 버스 상에 나타나고, 8회의 버스트 기입이 수행되며, 그에 의해, Write1에 대응하는 캐시 라인 및 Write3에 대응하는 캐시 라인의 변경 데이터 블록들이 메모리 디바이스에 기입된다. Col1은 Write1에 대응하는 캐시 라인의 8개의 데이터 블록 중 제1 데이터 블록에 대응하는 컬럼 어드레스를 나타내고, D1은 제1 데이터 블록에 대응하는 데이터를 나타내고, 나머지는 유추에 의해 추론될 수 있다.
전술한 실시예에서, 본 발명은, 2개의 기입 커맨드 Write1 및 Write3이 결합되고 Write1에 대응하는 캐시 라인의 변경 데이터 블록들의 분량과 Write2에 대응하는 캐시 라인의 변경 데이터 블록들의 분량의 합계가 BL과 동일한 예를 이용하여 상세하게 설명된다는 점에 유의해야 한다. 그러나, 본 발명은 이에 제한되지는 않는다. 다른 가능한 구현 방식에서, 복수의 기입 커맨드가 결합될 수 있다. 예를 들어, Write1에 대응하는 캐시 라인의 변경 데이터 블록들의 분량과 Write3에 대응하는 캐시 라인의 변경 데이터 블록들의 분량의 합계가 BL 미만이고, 결합될 수 있는 다른 기입 커맨드들이 커맨드 큐로부터 선택될 수 있다. 추가로, 커맨드 큐에서의 결합될 수 있는 모든 기입 커맨드에 대응하는 캐시 라인들의 변경 데이터 블록들의 분량들의 합계가 BL 미만인 경우, BL과 동일한 분량을 갖는 버스트 기입들이 수행되고, BL과 동일한 분량을 갖는 버스트 기입들에서의 일부 클록 사이클들 또는 클록 사이클의 일부 비트들(beats)은 유휴 상태이다. 추가로, 도 5는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM)의 3개의 메모리 클록(내부 CK(internal CK))만을 도시한다. 사실상, 총 8개의 메모리 클록이 있다.
도 6은 본 발명에 따른 메모리 시스템의 개략적인 구조도이고, 도 1의 본 발명의 실시예에 대응하는 장치 실시예이며; 따라서, 구체적인 구현 프로세스는 여기에 다시 설명되지 않는다. 구체적으로, 본 실시예의 메모리 시스템(100)은 메모리 제어기(10) 및 메모리 디바이스(11)를 적어도 포함한다.
구체적으로, 메모리 제어기(10)는 캐시에 의해 송신된 변경 정보를 수신하고 - 변경 정보는, 캐시가 최종 레벨 캐시 LLC의 제1의 기입될 캐시 라인(cache line)을 적어도 하나의 데이터 블록으로 분할한 이후에 생성되며, 적어도 하나의 데이터 블록 각각에서의 데이터가 변경되는지 여부를 표시하는데 이용되는 정보임 -; 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되지 않는 각각의 미변경 데이터 블록에 대하여, 변경 정보에 따라, 각각의 미변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 미변경 데이터 블록에 대응하는 데이터를 메모리 디바이스에 송신하는 것을 스킵하고; 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되는 각각의 변경 데이터 블록에 대하여, 변경 정보에 따라, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터를 메모리 디바이스에 송신하도록 구성되고,
메모리 디바이스(11)는, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터에 따라, 버스트 길이의 데이터를 각각의 변경 데이터 블록에 기입하도록 구성되며, 버스트 길이는 적어도 하나의 데이터 블록의 분량과 동일하다.
또한, 메모리 제어기(10)는, 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량이 버스트 길이와 동일한 경우, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터를 메모리 디바이스(10)에 송신하도록 구성된다.
메모리 디바이스(11)는, 각각의 컬럼 어드레스에 따라, 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대해 버스트 길이의 데이터 기입을 수행하도록 구성된다.
또한, 메모리 제어기(10)는, 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량이 버스트 길이 미만인 경우, 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스와 데이터, 및 적어도 하나의 제2의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스와 데이터를 메모리 디바이스(11)에 송신하도록 구성되고 - 적어도 하나의 제2의 기입될 캐시 라인의 변경 데이터 블록들의 분량과 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량의 합계는 버스트 길이 이하임 -,
메모리 디바이스(11)는, 제1의 기입될 캐시 라인의 각각의 컬럼 어드레스 및 적어도 하나의 제2의 기입될 캐시 라인의 각각의 컬럼 어드레스에 따라, 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록 및 적어도 하나의 제2의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대해 버스트 길이의 데이터 기입을 수행하도록 구성되고, 제2의 기입될 캐시 라인은 LLC에서 제1의 기입될 캐시 라인을 제외한 기입될 캐시 라인이다.
또한, 제1의 기입될 캐시 라인 및 적어도 하나의 제2의 기입될 캐시 라인은 동일한 저장 그룹인 뱅크의 동일한 로우에 있고, LLC에서 동일한 로우의 판독 커맨드는 없다.
또한, 버스트 길이와 동일한 분량을 갖는 컬럼 어드레스 버퍼들 및 버스트 길이와 동일한 분량을 갖는 컬럼 디코더들이 메모리 디바이스(11) 상에 배치될 때 - 그 수는 버스트 길이와 동일함 -, 독립적인 컬럼 어드레스 버퍼 및 독립적인 컬럼 디코더를 이용하여 각각의 변경 데이터 블록에 대해 데이터 기입이 수행된다.
관련 기술분야의 통상의 기술자라면, 방법 실시예들의 단계들의 전부 또는 일부가 관련 하드웨어에 지시하는 프로그램에 의해 구현될 수 있다는 것을 이해할 수 있다. 프로그램은 컴퓨터 판독가능 저장 매체에 저장될 수 있다. 프로그램이 구동될 때, 방법 실시예들의 단계들이 수행된다. 전술한 저장 매체는, ROM, RAM, 자기 디스크 또는 광학 디스크와 같이, 프로그램 코드를 저장할 수 있는 임의의 매체를 포함한다.
최종적으로, 전술한 실시예들은 본 발명을 제한하기 위한 것이 아니라 본 발명의 기술적 해결책들을 설명하기 위해 의도될 뿐이라는 점에 유의해야 한다. 본 발명이 전술한 실시예들을 참조하여 상세하게 설명되었지만, 관련 기술분야의 통상의 기술자라면, 본 발명의 실시예들의 기술적 해결책들의 범위로부터 벗어나지 않고, 여전히 전술한 실시예들에 설명된 기술적 해결책들에 대한 수정을 행할 수 있거나 그것의 기술적 특징들의 일부 또는 전부에 대해 등가의 대체를 행할 수 있다는 것을 이해하여야 한다.

Claims (10)

  1. 메모리 제어기 및 메모리 디바이스를 적어도 포함하는 메모리 시스템에 적용되는 데이터 기입 방법으로서,
    상기 메모리 제어기에 의해, 캐시에 의해 송신된 변경 정보를 수신하는 단계 - 상기 변경 정보는, 상기 캐시가 최종 레벨 캐시(last level cache) LLC의 제1의 기입될(to-be-written) 캐시 라인(cache line)을 적어도 하나의 데이터 블록으로 분할한 이후에 생성되며, 각각의 데이터 블록에서의 데이터가 변경되는지 여부를 표시하는데 이용되는 정보임 -;
    상기 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되지 않는 각각의 미변경 데이터 블록에 대하여, 상기 메모리 제어기에 의해, 상기 변경 정보에 따라, 각각의 미변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 미변경 데이터 블록에 대응하는 데이터를 상기 메모리 디바이스에 송신하는 것을 스킵하고; 상기 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되는 각각의 변경 데이터 블록에 대하여, 상기 메모리 제어기에 의해, 상기 변경 정보에 따라, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터를 상기 메모리 디바이스에 송신하는 단계; 및
    상기 메모리 디바이스에 의해, 각각의 변경 데이터 블록에 대응하는 상기 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 상기 데이터에 따라, 버스트 길이의 데이터를 각각의 변경 데이터 블록에 기입하는 단계 - 상기 버스트 길이는 상기 적어도 하나의 데이터 블록의 데이터 블록 분량(data block quantity)과 동일함 -
    를 포함하는 데이터 기입 방법.
  2. 제1항에 있어서,
    상기 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되는 각각의 변경 데이터 블록에 대하여, 상기 메모리 제어기에 의해, 상기 변경 정보에 따라, 각각의 변경 데이터 블록에 대응하는 상기 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 상기 데이터를 상기 메모리 디바이스에 송신하는 단계는, 상기 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량이 상기 버스트 길이와 동일한 경우, 상기 메모리 제어기에 의해, 각각의 변경 데이터 블록에 대응하는 상기 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 상기 데이터를 상기 메모리 디바이스에 송신하는 단계를 포함하고,
    상기 메모리 디바이스에 의해, 각각의 변경 데이터 블록에 대응하는 상기 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 상기 데이터에 따라, 버스트 길이의 데이터를 각각의 변경 데이터 블록에 기입하는 단계는, 상기 메모리 디바이스에 의해, 각각의 변경 데이터 블록에 대응하는 상기 컬럼 어드레스 및 상기 데이터에 따라, 상기 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대해 상기 버스트 길이의 데이터의 기입을 수행하는 단계를 포함하는, 데이터 기입 방법.
  3. 제1항에 있어서,
    상기 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되는 각각의 변경 데이터 블록에 대하여, 상기 메모리 제어기에 의해, 상기 변경 정보에 따라, 각각의 변경 데이터 블록에 대응하는 상기 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 상기 데이터를 상기 메모리 디바이스에 송신하는 단계는, 상기 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량이 상기 버스트 길이 미만인 경우, 상기 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대응하는 상기 컬럼 어드레스와 상기 데이터, 및 적어도 하나의 제2의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스와 데이터를 상기 메모리 디바이스에 송신하는 단계를 포함하고 - 상기 적어도 하나의 제2의 기입될 캐시 라인의 변경 데이터 블록들의 분량과 상기 제1의 기입될 캐시 라인의 변경 데이터 블록들의 상기 분량의 합계는 상기 버스트 길이 이하임 -,
    상기 메모리 디바이스에 의해, 각각의 변경 데이터 블록에 대응하는 상기 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 상기 데이터에 따라, 버스트 길이의 데이터를 각각의 변경 데이터 블록에 기입하는 단계는, 상기 메모리 디바이스에 의해, 상기 제1의 기입될 캐시 라인의 각각의 컬럼 어드레스 및 상기 적어도 하나의 제2의 기입될 캐시 라인의 각각의 컬럼 어드레스에 따라, 상기 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록 및 상기 적어도 하나의 제2의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대해 상기 버스트 길이의 데이터의 기입을 수행하는 단계를 포함하고, 상기 제2의 기입될 캐시 라인은 상기 LLC에서 상기 제1의 기입될 캐시 라인을 제외한 기입될 캐시 라인인, 데이터 기입 방법.
  4. 제3항에 있어서,
    상기 제1의 기입될 캐시 라인 및 상기 적어도 하나의 제2의 기입될 캐시 라인은 동일한 저장 그룹인 뱅크(Bank)의 동일한 로우에 있고, 상기 LLC에서 상기 동일한 로우의 판독 커맨드는 존재하지 않는, 데이터 기입 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 메모리 디바이스에 의해, 각각의 변경 데이터 블록에 대응하는 상기 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 상기 데이터에 따라, 버스트 길이의 데이터를 각각의 변경 데이터 블록에 기입하는 단계는, 상기 버스트 길이와 동일한 분량을 갖는 컬럼 어드레스 버퍼들 및 상기 버스트 길이와 동일한 분량을 갖는 컬럼 디코더들이 상기 메모리 디바이스 상에 배치될 때, 독립적인 컬럼 어드레스 버퍼 및 독립적인 컬럼 디코더를 이용하여 각각의 변경 데이터 블록에 대해 상기 데이터의 기입을 수행하는 단계를 포함하는, 데이터 기입 방법.
  6. 메모리 제어기 및 메모리 디바이스를 적어도 포함하는 메모리 시스템으로서,
    상기 메모리 제어기는 캐시에 의해 송신된 변경 정보를 수신하고 - 상기 변경 정보는, 상기 캐시가 최종 레벨 캐시 LLC의 제1의 기입될 캐시 라인(cache line)을 적어도 하나의 데이터 블록으로 분할한 이후에 생성되며, 각각의 데이터 블록에서의 데이터가 변경되는지 여부를 표시하는데 이용되는 정보임 -; 상기 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되지 않는 각각의 미변경 데이터 블록에 대하여, 상기 변경 정보에 따라, 각각의 미변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 미변경 데이터 블록에 대응하는 데이터를 상기 메모리 디바이스에 송신하는 것을 스킵하고; 상기 변경 정보에 의해 표시되는 바와 같이 데이터가 변경되는 각각의 변경 데이터 블록에 대하여, 상기 변경 정보에 따라, 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 데이터를 상기 메모리 디바이스에 송신하도록 구성되고,
    상기 메모리 디바이스는, 각각의 변경 데이터 블록에 대응하는 상기 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 상기 데이터에 따라, 버스트 길이의 데이터를 각각의 변경 데이터 블록에 기입하도록 구성되며, 상기 버스트 길이는 상기 적어도 하나의 데이터 블록의 분량과 동일한, 메모리 시스템.
  7. 제6항에 있어서,
    상기 메모리 제어기는, 상기 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량이 상기 버스트 길이와 동일한 경우, 각각의 변경 데이터 블록에 대응하는 상기 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 상기 데이터를 상기 메모리 디바이스에 송신하도록 구성되고,
    상기 메모리 디바이스는, 각각의 변경 데이터 블록에 대응하는 상기 컬럼 어드레스 및 각각의 변경 데이터 블록에 대응하는 상기 데이터에 따라, 상기 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대해 상기 버스트 길이의 데이터의 기입을 수행하도록 구성되는, 메모리 시스템.
  8. 제6항에 있어서,
    상기 메모리 제어기는, 상기 제1의 기입될 캐시 라인의 변경 데이터 블록들의 분량이 상기 버스트 길이 미만인 경우, 상기 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대응하는 상기 컬럼 어드레스와 상기 데이터, 및 적어도 하나의 제2의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대응하는 컬럼 어드레스와 데이터를 상기 메모리 디바이스에 송신하도록 구성되고 - 상기 적어도 하나의 제2의 기입될 캐시 라인의 변경 데이터 블록들의 분량과 상기 제1의 기입될 캐시 라인의 변경 데이터 블록들의 상기 분량의 합계는 상기 버스트 길이 이하임 -,
    상기 메모리 디바이스는, 상기 제1의 기입될 캐시 라인의 각각의 컬럼 어드레스 및 상기 적어도 하나의 제2의 기입될 캐시 라인의 각각의 컬럼 어드레스에 따라, 상기 제1의 기입될 캐시 라인의 각각의 변경 데이터 블록 및 상기 적어도 하나의 제2의 기입될 캐시 라인의 각각의 변경 데이터 블록에 대해 상기 버스트 길이의 데이터의 기입을 수행하도록 구성되고, 상기 제2의 기입될 캐시 라인은 상기 LLC에서 상기 제1의 기입될 캐시 라인을 제외한 기입될 캐시 라인인, 메모리 시스템.
  9. 제8항에 있어서,
    상기 제1의 기입될 캐시 라인 및 상기 적어도 하나의 제2의 기입될 캐시 라인은 동일한 저장 그룹인 뱅크의 동일한 로우에 있고, 상기 LLC에서 상기 동일한 로우의 판독 커맨드는 존재하지 않는, 메모리 시스템.
  10. 제6항 내지 제9항 중 어느 한 항에 있어서,
    상기 버스트 길이와 동일한 분량을 갖는 컬럼 어드레스 버퍼들 및 상기 버스트 길이와 동일한 분량을 갖는 컬럼 디코더들이 상기 메모리 디바이스 상에 배치될 때, 독립적인 컬럼 어드레스 버퍼 및 독립적인 컬럼 디코더를 이용하여 각각의 변경 데이터 블록에 대해 상기 데이터의 기입이 수행되는, 메모리 시스템.
KR1020157036978A 2013-06-29 2014-06-17 데이터 기입 방법 및 메모리 시스템 KR101785189B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310270239.6A CN104252420B (zh) 2013-06-29 2013-06-29 数据写入方法及内存系统
CN201310270239.6 2013-06-29
PCT/CN2014/080073 WO2014206220A1 (zh) 2013-06-29 2014-06-17 数据写入方法及内存系统

Publications (2)

Publication Number Publication Date
KR20160014053A true KR20160014053A (ko) 2016-02-05
KR101785189B1 KR101785189B1 (ko) 2017-10-12

Family

ID=52141031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157036978A KR101785189B1 (ko) 2013-06-29 2014-06-17 데이터 기입 방법 및 메모리 시스템

Country Status (9)

Country Link
US (1) US20160110286A1 (ko)
EP (1) EP2998867B1 (ko)
JP (1) JP6159478B2 (ko)
KR (1) KR101785189B1 (ko)
CN (2) CN104252420B (ko)
AU (1) AU2014301874B2 (ko)
BR (1) BR112015031803A2 (ko)
RU (1) RU2621611C1 (ko)
WO (1) WO2014206220A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112214244A (zh) * 2016-08-05 2021-01-12 中科寒武纪科技股份有限公司 一种运算装置及其操作方法
CN109324982B (zh) * 2017-07-31 2023-06-27 上海华为技术有限公司 一种数据处理方法以及数据处理装置
US20210200695A1 (en) * 2019-12-27 2021-07-01 Advanced Micro Devices, Inc. Staging memory access requests
CN113918508A (zh) * 2021-12-15 2022-01-11 苏州浪潮智能科技有限公司 一种缓存加速方法、装置、设备及可读存储介质
CN117396857A (zh) * 2021-12-21 2024-01-12 华为技术有限公司 一种数据存储方法、存储装置及设备

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02113353A (ja) * 1988-10-24 1990-04-25 Hitachi Ltd 半導体メモリ
JPH03164849A (ja) * 1989-11-22 1991-07-16 Matsushita Electric Ind Co Ltd マイクロプロセッサおよびマイクロプロセッサシステム
RU2010318C1 (ru) * 1991-10-28 1994-03-30 Институт точной механики и вычислительной техники им.С.А.Лебедева РАН Устройство управления памятью
JPH05282208A (ja) * 1992-04-03 1993-10-29 Hitachi Ltd キャッシュメモリ制御方式
US5459842A (en) * 1992-06-26 1995-10-17 International Business Machines Corporation System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory
EP0683457A1 (en) * 1994-05-20 1995-11-22 Advanced Micro Devices, Inc. A computer system including a snoop control circuit
JP3204295B2 (ja) * 1997-03-31 2001-09-04 日本電気株式会社 キャッシュメモリシステム
US6658533B1 (en) * 2000-09-21 2003-12-02 Intel Corporation Method and apparatus for write cache flush and fill mechanisms
JP2004246754A (ja) * 2003-02-17 2004-09-02 Renesas Technology Corp 半導体記憶装置およびその制御装置
WO2005050454A1 (ja) * 2003-11-18 2005-06-02 Matsushita Electric Industrial Co., Ltd. キャッシュメモリおよびその制御方法
ATE410733T1 (de) * 2004-06-16 2008-10-15 Freescale Semiconductor Inc Datum-pufferspeichersystem
KR100575004B1 (ko) * 2005-01-15 2006-04-28 삼성전자주식회사 버스트 동작이 가능한 에스램 메모리 장치
KR101443231B1 (ko) * 2007-11-27 2014-09-19 삼성전자주식회사 라이트-백 동작시 라이트-백 데이터의 버스트 길이를조절할 수 있는 캐시 메모리와 이를 포함하는 시스템
US8001331B2 (en) * 2008-04-17 2011-08-16 Arm Limited Efficiency of cache memory operations
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8464002B2 (en) * 2009-10-14 2013-06-11 Board Of Regents Of The University Of Texas System Burst-based cache dead block prediction
US8924652B2 (en) * 2009-11-23 2014-12-30 Marvell Israel (M.I.S.L.) Ltd. Simultaneous eviction and cleaning operations in a cache
CN102135941B (zh) * 2010-08-26 2013-09-11 华为技术有限公司 从缓存写数据到内存的方法和装置
CN102012850B (zh) * 2010-12-09 2012-09-12 首都师范大学 基于硬件监视和微包协议的关键数据恢复方法
RU2487398C1 (ru) * 2011-12-13 2013-07-10 Общество с ограниченной ответственностью "ЛАН-ПРОЕКТ" Способ формирования виртуальной памяти и устройство для его реализации
WO2013097246A1 (zh) * 2011-12-31 2013-07-04 华为技术有限公司 高速缓冲存储器控制方法、装置和系统
CN102662992B (zh) * 2012-03-14 2014-10-08 北京搜狐新媒体信息技术有限公司 一种海量小文件的存储、访问方法及装置
CN102999441B (zh) * 2012-11-15 2015-06-17 清华大学 一种细粒度内存访问的方法
CN105408875B (zh) * 2014-02-23 2019-06-21 拉姆伯斯公司 在存储器接口上的分布式过程执行和文件系统

Also Published As

Publication number Publication date
JP6159478B2 (ja) 2017-07-05
BR112015031803A2 (pt) 2017-07-25
AU2014301874B2 (en) 2017-05-04
KR101785189B1 (ko) 2017-10-12
WO2014206220A1 (zh) 2014-12-31
EP2998867A1 (en) 2016-03-23
CN104252420B (zh) 2017-08-29
EP2998867A4 (en) 2016-07-06
RU2621611C1 (ru) 2017-06-06
CN104252420A (zh) 2014-12-31
JP2016524251A (ja) 2016-08-12
AU2014301874A1 (en) 2016-01-21
EP2998867B1 (en) 2019-09-18
CN107577614B (zh) 2020-10-16
US20160110286A1 (en) 2016-04-21
CN107577614A (zh) 2018-01-12

Similar Documents

Publication Publication Date Title
US9773531B2 (en) Accessing memory
KR101785189B1 (ko) 데이터 기입 방법 및 메모리 시스템
JP5351145B2 (ja) メモリ制御装置、メモリシステム、半導体集積回路およびメモリ制御方法
US8661180B2 (en) Memory controlling device and memory controlling method
US20090019234A1 (en) Cache memory device and data processing method of the device
WO2016176807A1 (zh) 一种dram刷新方法、装置和系统
CN101212680B (zh) 图像数据的存储器存取方法及系统
US20160314821A1 (en) Method for accessing multi-port memory module, method for increasing write ports of memory module and associated memory controller
US10423548B2 (en) Memory controller, control method for the memory controller, and control method for memory
US6738840B1 (en) Arrangement with a plurality of processors having an interface for a collective memory
CN100536021C (zh) 大容量高速缓冲存储器
JP2011013835A (ja) メモリシステム、メモリアクセス方法、及びプログラム
US9601197B2 (en) Memory system and control method
US8484411B1 (en) System and method for improving access efficiency to a dynamic random access memory
JP5204777B2 (ja) メモリ装置及びその制御方法
US11308010B2 (en) Memory system having memories of different capacities
US20070121398A1 (en) Memory controller capable of handling precharge-to-precharge restrictions
KR102545175B1 (ko) 어드레스 테이블을 포함하는 메모리 장치, 및 메모리 컨트롤러의 동작 방법
EP2503465A1 (en) Server and method for accessing volumes thereof
US20190339875A9 (en) Method, electronic device and computer program product for data processing
US10719440B2 (en) Semiconductor device and memory access method
WO2023189358A1 (ja) メモリ制御装置
WO2022160321A1 (zh) 一种访问内存的方法和装置
CN102073604A (zh) 一种同步动态存储器读写控制方法、装置和系统
JP2012137944A (ja) メモリアクセス装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant