KR20170138765A - 메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법 - Google Patents

메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법 Download PDF

Info

Publication number
KR20170138765A
KR20170138765A KR1020160070997A KR20160070997A KR20170138765A KR 20170138765 A KR20170138765 A KR 20170138765A KR 1020160070997 A KR1020160070997 A KR 1020160070997A KR 20160070997 A KR20160070997 A KR 20160070997A KR 20170138765 A KR20170138765 A KR 20170138765A
Authority
KR
South Korea
Prior art keywords
cache
memory
policy
memory device
tags
Prior art date
Application number
KR1020160070997A
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 KR1020160070997A priority Critical patent/KR20170138765A/ko
Priority to CN201710328968.0A priority patent/CN107491397A/zh
Priority to US15/604,944 priority patent/US20170357600A1/en
Priority to TW106118520A priority patent/TW201801088A/zh
Priority to JP2017113223A priority patent/JP2017220242A/ja
Publication of KR20170138765A publication Critical patent/KR20170138765A/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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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
    • 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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/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
    • G06F12/0871Allocation or management of cache space
    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • G06F2212/6046Using a specific cache allocation policy other than replacement policy

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)
  • Memory System (AREA)

Abstract

메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법이 개시된다. 본 개시의 실시예에 따른 메모리 장치는 복수의 캐시라인 및 상기 복수의 캐시라인에 대응하는 복수의 태그를 저장하는 셀 어레이; 복수의 관리 정책 중 적어도 하나를 선택하고, 선택된 관리 정책에 기초하여 캐시 정책을 설정하는 캐시 정책 설정 회로; 및 상기 캐시 정책에 기초하여 상기 복수의 캐시라인을 관리하는 캐시 로직을 포함할 수 있다.

Description

메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법{Memory device, memory module and operating method of memory device}
본 개시는 반도체 메모리 장치에 관한 것으로, 더 상세하게는 캐시 메모리로 동작하는 메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법에 관한 것이다.
컴퓨팅 시스템에서, 메인 메모리의 긴 엑세스 레이턴시에 따른 성능 저하를 줄이기 위하여 캐시 메모리가 사용된다. 메인 메모리의 용량이 증가함에 따라 캐시 메모리의 용량 또한 증가되고 있다. 이에 따라 DRAM과 같은 고용량으로 구현 가능한 메모리가 캐시 메모리로 사용될 수 있다.
본 개시의 기술적 사상이 해결하려는 기술적 과제는 동적으로 캐시 정책을 변경하는 메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법을 제공하는 것이다.
상기 기술적 과제를 달성하기 위한 본 개시의 실시 예에 따른 메모리 장치는, 복수의 캐시라인 및 상기 복수의 캐시라인에 대응하는 복수의 태그를 저장하는 셀 어레이; 복수의 관리 정책 중 적어도 하나를 선택하고, 선택된 관리 정책에 기초하여 캐시 정책을 설정하는 캐시 정책 설정 회로; 및 상기 캐시 정책에 기초하여 상기 복수의 캐시라인을 관리하는 캐시 로직을 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 본 개시의 실시 예에 따른 메모리 모듈은, 복수의 캐시라인을 저장하는 복수의 제1 메모리 장치; 상기 복수의 캐시라인에 대응하는 복수의 캐시 태그를 저장하고, 복수의 관리 정책 중 적어도 하나를 캐시 정책으로서 선택하고, 캐시 정책 및 상기 복수의 캐시 태그에 기초하여 상기 복수의 캐시라인을 관리하는 제2 메모리 장치를 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 본 개시의 실시 예에 따른 메모리 장치의 동작 방법은, 캐시 정책에 기초하여 복수의 캐시라인을 관리하는 단계; 외부 장치로부터 커맨드를 수신하는 단계; 수신된 커맨드에 기초하여 복수의 관리 정책 중 하나를 캐시 정책으로 선택함으로써, 상기 캐시 정책을 변경하는 단계; 및 변경된 캐시 정책에 기초하여 상기 복수의 캐시라인을 관리하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른 메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법에 따르면, 메모리 장치가 사용 환경에 적합하도록 동적으로 캐시 정책을 변경함으로써, 메인 메모리의 신뢰성이 향상되고, 메모리 장치 또는 메모리 모듈이 적용되는 메모리 시스템의 성능이 향상될 수 있다.
본 개시의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 개시의 실시예에 따른, 전자 시스템을 간략하게 나타내는 블록도이다.
도 2는 본 개시의 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 3은 본 개시의 실시예에 따른 메모리 장치를 나타내는 블록도이다.
도 4a는 도 1의 캐시 메모리와 메인 메모리의 데이터 맵핑을 나타내는 도면이다.
도 4b는 도 1의 캐시 메모리를 엑세스하기 위한 어드레스 구조의 일 예를 나타내는 도면이다.
도 5a 및 도 5b는 본 개시의 실시예들에 따른 캐시 정책 설정 회로를 나타내는 블록도이다.
도 6은 도 5b의 모니터 회로의 일 구현예를 나타내는 블록도이다.
도 7a 및 도 7b는 본 개시의 실시예에 따른 메모리 장치의 동작을 나타내는 도면이다.
도 8 내지 도 11은 본 개시의 실시예에 따른 메모리 장치의 동작을 나타내는 흐름도이다.
도 12는 본 개시의 실시예에 따른 메모리 시스템의 동작을 나타내는 흐름도이다.
도 13 및 도 14는 본 개시의 실시예들에 따른 메모리 장치를 나타내는 회로도이다.
도 15는 본 개시의 실시예에 따른 메모리 모듈을 나타내는 도면이다.
도 16 및 도 17은 본 개시의 실시예에 따른 메모리 모듈의 동작을 나타내는 흐름도이다.
도 18은 본 개시의 실시예에 따른 메모리 모듈을 나타내는 도면이다.
도 19는본 개시의 실시예에 따른 메모리 모듈을 나타내는 도면이다.
도 20 내지 도 22는 본 개시의 실시예들에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 23은 본 개시의 실시예에 따른 모바일 시스템을 나타내는 블록도이다.
이하, 본 개시의 다양한 실시예가 첨부된 도면과 연관되어 기재된다. 본 개시의 다양한 실시예는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들이 도면에 예시되고 관련된 상세한 설명이 기재되어 있다. 그러나, 이는 본 개시의 다양한 실시예를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 다양한 실시예의 사상 및 기술 범위에 포함되는 모든 변경 및/또는 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용되었다.
본 개시의 다양한 실시예에서 사용될 수 있는“포함한다” 또는 “포함할 수 있다” 등의 표현은 개시(disclosure)된 해당 기능, 동작 또는 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작 또는 구성요소 등을 제한하지 않는다. 또한, 본 개시의 다양한 실시예에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시의 다양한 실시예에서 “또는” 등의 표현은 함께 나열된 단어들의 어떠한, 그리고 모든 조합을 포함한다. 예를 들어, “A 또는 B”는, A를 포함할 수도, B를 포함할 수도, 또는 A 와 B 모두를 포함할 수도 있다.
본 개시의 다양한 실시예에서 사용된 “제 1,”“제 2,”“첫째,”또는“둘째,”등의 표현들은 다양한 실시예들의 다양한 구성요소들을 수식할 수 있지만, 해당 구성요소들을 한정하지 않는다. 예를 들어, 상기 표현들은 해당 구성요소들의 순서 및/또는 중요도 등을 한정하지 않는다. 상기 표현들은 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 수 있다. 예를 들어, 제 1 사용자 기기와 제 2 사용자 기기는 모두 사용자 기기이며, 서로 다른 사용자 기기를 나타낸다. 예를 들어, 본 개시의 다양한 실시예의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 새로운 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
도 1은 본 개시의 실시예에 따른, 전자 시스템을 간략하게 나타내는 블록도이다.
도 1을 참조하면, 전자 시스템(1000)은 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 카메라(camera), 또는 웨어러블 장치(wearable device), 서버, 차량용 전자 장치, 선박용 전자 장비(예: 선박용 항법 장치 및 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 산업용 또는 가정용 로봇, 금융 기관의 ATM(automatic teller' s machine), 전자 의료기기, 가전 제품, 스마트 가구 또는 건물/구조물의 일부 중 적어도 하나로 구현될 수 있다.
전자 시스템(1000)은 호스트 시스템(1200), 캐시 메모리(1100) 및 메인 메모리(1300)를 포함할 수 있다.
호스트 시스템(1200)은 전자 시스템(1000)의 전반적인 동작을 제어하고, 논리 연산을 수행할 수 있다. 예를 들어 호스트 시스템(1200)은 시스템-온-칩(SoC, System-on-chip)으로 구성될 수 있다. 호스트 시스템(1200)은 중앙 처리 장치(1210) 및 지능 소자(Intellectual Properties; 이하 IP라고 함)를 포함할 수 있다.
중앙 처리 장치(Centrol Processing Unit; 이하 CPU라고 함)(1210)는 메인 메모리(1300)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 실시예에 있어서, CPU(1210)는 멀티-코어 프로세서로 구현될 수 있다. 실시예에 있어서, CPU(1210)는 동일한 칩 상에 위치하는 캐시(예컨대 L1 캐시, 미도시)를 포함할 수 있다.
IP(1220)는 전자 시스템(1000)에 집적될 수 있는 회로, 로직, 또는 이들의 조합을 의미한다. 상기 회로 또는 로직에는 컴퓨팅 코드(Code)가 저장될 수 있다.
IP(1220)는 예를 들면, GPU(Graphic Processing Unit), MFC(Multi-Format Codec), 비디오 모듈(예컨대, 카메라 인터페이스(Camera Interface), JPEG(Joint Photographic Experts Group) 프로세서, 비디오 프로세서(Video Processor), 또는 믹서(Mixer), 등), 오디오 시스템(Audio System), 드라이버(Driver), 디스플레이 드라이버(Display Driver), 휘발성 메모리(Volatile Memory Device), 비휘발성 메모리(Non-volatile Memory), 메모리 컨트롤러(Memory Controller), 캐시 메모리(Cache Memory), 시리얼 포트(Serial Port), 시스템 타이머(System Timer), 워치독타이머(Watch Dog Timer) 또는 아날로그-디지털 컨버터(Analog-to-Digital Converter) 등을 포함할 수 있다.
실시예에 따라, IP(1220)는 내부에 캐시 메모리를 포함할 수 있다. 도 1 에서 호스트 시스템(1200)은 하나의 IP(1220)를 포함하는 것으로 도시되었으나, 이에 제한되는 것은 아니며, 호스트 시스템(1200)은 복수의 IP를 포함할 수 있다.
메인 메모리(1300)는 호스트 시스템(1200)로부터 요청되는 데이터를 저장 또는 독출할 수 있다. 예를 들어, 메인 메모리(1300)는 CPU(1210)가 실행하기 위한 명령 및 데이터를 저장할 수 있다. 또한 메인 메모리(1300)는 IP(1220)로부터 요청되는 데이터를 저장하거나 또는 독출할 수 있다.
메인 메모리(1300)는 휘발성 메모리 장치 또는 불휘발성 메모리 장치로 구현될 수 있다. 휘발성 메모리 장치는 DRAM(dynamic random access memory), SRAM (static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.
불휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque(STT)-MRAM), Conductive bridging RAM(CBRAM), FeRAM (Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM: RRAM), 나노튜브 RRAM(nanotube RRAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(nano Floating Gate Memory: nFGm), 홀로그래픽 메모리 (holographic memory), 분자 전자 메모리 소자(molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.
캐시 메모리(1100)는 메인 메모리(1300)에 저장된 데이터 또는 저장될 데이터의 일부를 임시 저장하는 메모리로서, 프로그램이 수행될 때 나타나는 시간적 또는 공간적 지역성(locality)을 이용하여 메인 메모리(1300)나 디스크(미도시)에서 사용되는 데이터를 빠르게 접근할 수 있도록 하는 메모리이다.
캐시 메모리(1100)는 호스트 시스템(1100)과 메인 메모리(1300) 사이에 배치될 수 있다. 메인 메모리(1300)에 저장된 데이터의 일부는 캐시 메모리(1100)에 복사되며, 메인 메모리(1300)의 어느 위치에 저장된 데이터가 캐시 메모리(1100)에 복사(Copy)되었는지를 나타내는 태그가 캐시 메모리(1100)에 더 저장될 수 있다. 하나의 태그에 대응하는 데이터 단위, 다시 말해 캐시 메모리(1100)와 메인 메모리(1300) 사이에 전송하는 데이터 블록을 캐시라인(cacheline)이라고 한다. 이에 대한 자세한 내용 도 4a 및 4b를 참조하여 후술하기로 한다.
태그 비교 동작에 기반하여, 호스트 시스템(1100)이 엑세스 요청한 데이터가 캐시 메모리(1100)에 존재하는지 판별되고, 엑세스 요청한 데이터가 캐시 메모리(1100)에 존재하는 경우(예컨대, 캐시 히트), 캐시 메모리(1100)의 데이터가 호스트 시스템(1100)으로 제공될 수 있다. 엑세스 요청된 데이터가 캐시 메모리(1100)에 존재하지 않는 경우(예컨대, 캐시 미스), 요청된 데이터를 포함하는 일정 사이즈의 데이터가 메인 메모리(1100)로부터 독출되어 캐시 메모리(1100)에 복사되고, 복사된 데이터 중 호스트 시스템(1100)으로부터 요청된 데이터가 독출되어 호스트 시스템(1100)으로 제공될 수 있다.
이때, 캐시 메모리(1100)의 캐시 정책에 기초하여 캐시 메모리(1100)에 저장된 캐시라인들 중 희생 캐시라인이 선택되고, 희생 캐시라인이 저장된 셀 영역(웨이라고 함)에 상기 메인 메모리(1100)로부터 독출되는 데이터가 복사될 수 있다. 캐시 메모리(1100)는 사용 환경, 예컨대 호스트 시스템(1100)으로부터의 요청 패턴을 기초로 캐시 정책을 동적으로 변경할 수 있다. 예를 들어, 캐시 정책은 캐시라인 교체 정책을 포함할 수 있으며, 캐시 메모리(1100)는 LRU(least recently used) 기반의 교체 정책을 사용하던 중, 호스트 시스템(1100)으로부터 기입 요청이 많은 경우, 클린 캐시라인 우선 교체 정책을 적용할 수 있다.
캐시 메모리(1100)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다. 이하에서는, 캐시 메모리(1100)로서 DRAM이 적용된 예가 설명될 것이다. 그러나, 본 개시의 기술적 사상은 이에 국한될 필요는 없으며, 페이지 단위로 메모리 셀 어레이에 액세스 가능한 메모리 장치 또는 칼럼 어드레스 및 로우 어드레스로 메모리 셀 어레이에 엑세스 가능한 다양한 메모리 장치들이 적용될 수 있다.
플래시 메모리나 PRAM과 같은 불휘발성 메모리를 메인 메모리(1300)로 사용하는 경우, 쓰기 횟수에 제한이 있어 사용 수명에 제한이 발생할 수 있다. 따라서, 캐시 메모리(1100)가 Read Latency 기반의 캐시 정책을 적용하는 경우, 더티 캐시라인이 자주 교체될 수 있다. 이때 더티 캐시라인은 메인 메모리(1300)에 저장되어 있는 값과 다른 데이터를 저장하고 있는 캐시라인을 의미한다. 이로 인해 메인 메모리(1100)의 수명이 급격하게 줄어들 수 있다. 또한, 메인 메모리(1100)의 기입 횟수를 줄이기 위해, 더티 캐시라인을 오래 남겨두는 경우, 캐시 재참조율이 떨어질 수 있다. 그러나, 본 개시의 실시예에 따른 캐시 메모리(1100)는 전술한 바와 같이, 사용 환경에 맞도록 동적으로 캐시 정책을 변경할 수 있으며, 이에 따라 전자 시스템(1000)의 성능 및 메인 메모리(1300)의 신뢰성을 향상시킬 수 있다.
도 2는 본 개시의 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 2를 참조하면, 메모리 시스템(1500)은 메모리 장치(100) 및 메모리 컨트롤러(200)를 포함할 수 있다. 메모리 장치(100)는 캐시 메모리로서 동작할 수 있다. 메모리 장치(100)는 도 1의 캐시 메모리(1100)에 적용될 수 있으며, 도 1을 참조하여 설명한 캐시 메모리(1100)에 대한 개시는 메모리 장치(100)에 적용될 수 있다. 메모리 장치(100)는 DRAM 장치를 포함하는 것으로 가정하기로 한다.
메모리 컨트롤러(200)는 메모리 장치(100)에 커맨드 신호(CMD), 클록(CLK) 및 어드레스 신호(ADDR)를 전송하고, 기록/독출 데이터(DATA)를 메모리 장치(100)와 송수신할 수 있다. 메모리 컨트롤러(200)는 외부 장치, 예컨대 호스트 시스템(도 1의 1200)로부터 엑세스 요청을 기초로, 커맨드 신호(CMD) 및 어드레스 신호(ADDR)를 생성할 수 있다.
커맨드 신호(CMD)는 메모리 장치(100)의 노멀 동작, 예컨대 기입 또는 독출 동작을 제어하는 동작 커맨드(CMD_OP) 를 나타낼 수 있다. 커맨드 신호(CDM)는 또한, 메모리 장치(100)의 캐시 정책 변경을 제어하는 캐시 정책 설정 커맨드(CMD_CP)를 나타낼 수 있다. 실시예에 있어서, 캐시 정책 설정 커맨드(CMD_CP)는 메모리 장치(100)의 입출력 핀들 중 동작 커맨드(CMD_OP)가 수신되는 입출력 핀과는 다른 입출력 핀을 통해 메모리 장치(100)에 수신될 수 있다. 다른 실시예에 있어서, 캐시 정책 설정 커맨드(CMD_CP)가 수신되는 입출력 핀은 동작 커맨드(CMD_OP)가 수신되는 입출력 핀들과 동일할 수 있다.
어드레스 신호(ADDR)는 인덱스(INDEX) 및 태그(TAG)를 포함할 수 있다. 어드레스 신호(ADDR)는 오프셋을 더 포함할 수 있다. 어드레스 신호(ADDR)는 외부 장치로부터 요청된 어드레스(예컨대 메인 메모리(도 1의 1300)의 어드레스)에 대응하는 데이터가 메모리 장치(100)에 저장되어 있는지 판별하기 위한 신호로서, 요청된 어드레스의 일부 또는 전부의 비트를 포함할 수 있다.
메모리 장치(100)는 메모리 셀 어레이(110), 캐시 로직(120) 및 캐시 정책 설정 회로(130)를 포함할 수 있다.
메모리 셀 어레이(110)는 복수의 DRAM 셀들을 포함할 수 있다. 메모리 셀 어레이(110)는 복수의 캐시라인을 및 상기 복수의 캐시라인에 대응하는 복수의 태그를 저장할 수 있다.
캐시 정책 설정 회로(130)는 메모리 장치(100)의 캐시 정책을 설정할 수 있다. 예컨대, 캐시 정책은, 교체 정책, 할당 정책 및 기입 정책 중 하나를 포함할 수 있다. 실시예에 있어서 캐시 정책 설정 회로(130)는 복수의 관리 정책 중 적어도 하나를 선택하고, 선택된 관리 정책에 기초하여 캐시 정책을 설정할 수 있다. 실시예에 있어서, 캐시 정책 설정 회로(130)는 수신되는 캐시 정책 설정 커맨드(CMD_CP)에 응답하여 캐시 정책을 변경할 수 있다. 실시예에 있어서, 캐시 정책 설정 회로(130)는 액세스 커맨드, 예컨대 동작 커맨드(CMD_OP)를 모니터링하고, 모니터링 결과에 기초하여 캐시 정책을 변경할 수 있다.
캐시 로직(120)은 캐시 히트 또는 캐시 미스를 판단할 수 있다. 캐시 로직(120)은 또한 설정된 캐시 정책을 기초로, 메모리 장치(100)의 캐시 동작을 제어할 수 있다. 캐시 로직(120)은 메모리 셀 어레이(110)에 저장된 복수의 캐시라인 또는 복수의 태그를 관리할 수 있다. 예컨대, 캐시 로직(120)은 캐시 미스 발생 시, 캐시 정책을 기초로 희생 캐시라인을 선택하고, 캐시라인을 교체할 수 있다.
도 3은 본 개시의 실시예에 따른 메모리 장치를 나타내는 블록도이다.
도 3을 참조하면, 메모리 장치(100)는 메모리 셀 어레이(110), 캐시 로직(120), 캐시 정책 선정 회로(130), 로우 디코더(140), 로우 버퍼(150), 칼럼 디코더(160), 입출력 버퍼(170), 커맨드 디코더(180) 및 어드레스 레지스터(190)를 포함할 수 있다.
메모리 셀 어레이(110)는 복수의 캐시라인(CL) 및 복수의 캐시라인(CL)에 대응하는 복수의 태그(TAGs)를 저장할 수 있다. 태그는 대응하는 캐시라인이 메인 메모리의 어느 위치에 저장되었는지를 나타낼 수 있다.
메모리 셀 어레이(110)는 복수의 로우 및 복수의 컬럼에 따라 행열로 배열된 복수의 메모리 셀을 포함할 수 있다. 메모리 셀 어레이(110)는 워드 라인(WL) 및 비트 라인(BL)을 통해 로우 디코더(140) 및 로우 버퍼(150)에 연결될 수 있다.
메모리 셀 어레이(110)에서 각 로우는 인덱스 번호(INDX1~INDEXm)로 구별될 수 있다. 예컨대, 하나의 로우는 하나의 인덱스 번호에 대응할 수 있다. 복수의 로우 각각은 복수의 웨이(WAY1~WAYn)를 포함할 수 있다. 복수의 로우는 복수의 웨이(WAY1~WAYn)에 대응하는 복수의 캐시라인(CL1~CLn) 및 복수의 캐시라인(CL1~CLn)에 대응하는 복수의 태그(T1~Tn)를 저장할 수 있다. 설명의 편의를 위하여, 하나의 로우에서 복수의 웨이(WAY1~WAYn) 각각에 대응하는 캐시라인(CL) 및 태그는 동일한 번호를 사용하기로 한다. 도 3에서는, 복수의 태그(TAGs)와 복수의 캐시라인(CL)이 구별되어 저장되는 것으로 도시되었으나, 이에 제한되는 것은 아니며, 복수의 태그(TAGs)와 복수의 캐시라인(CL)이 하나의 로우 내에서 교번적으로 저장될 수도 있다.
복수의 로우는 복수의 캐시라인(CL1~CLn) 각각에 대한 상태 정보(예컨대 더티 또는 클린, 유효 또는 무효)를 더 포함할 수 있다. 복수의 로우 각각에 저장된 복수의 캐시라인(CL), 복수의 태그(TAGs) 및 상태 정보는 하나의 세트(SET)를 구성할 수 있다.
커맨드 디코더(180)는 컨트롤러(도 2의 200)로부터 수신되는 커맨드 신호, 예컨대 칩 선택 신호(chip select; /CS), 로우 어드레스 스트로브(Row Address Strobe; /RAS), 컬럼 어드레스 스트로브(Column Address strobe; /CAS), 기록 인에이블 신호(Write enable; /WE) 및 클록 인에이블 신호(Clock enable; CKE)를 입력 받아 디코딩 동작을 수행한다. 커맨드 디코더(180)는 디코딩 동작에을 통해 확인되는 커맨드에 따른 내부 제어 신호(CTRL)를 생성할 수 있다. 커맨드 디코더(180)는 제어 신호(CTRL)를 로우 디코더(140) 및 캐시 정책 설정 회로(130)에 제공할 수 있으며, 그 밖의 메모리 장치(100)의 다른 구성 요소에 제공할 수도 있다.
캐시 정책 설정 회로(130)는 메모리 장치(100)의 캐시 정책을 설정할 수 있다. 캐시 정책 설정 회로(130)는 복수의 관리 정책(MP1, MP2, MP3)을 포함하고, 이 중 적어도 하나를 선택함으로써 캐시 정책을 설정할 수 있다. 도 3에서는 세 개의 관리 정책이 도시되었으나 이에 제한되는 것은 아니며, 다양한 수의 종류 및 다양한 수의 관리 정책을 포함할 수 있다. 예를 들어, 복수의 관리 정책(MP1~MP3)은 교체 정책, 할당 정책 또는 기입 정책을 포함할 수 있다. 복수의 관리 정책(MP1~MP3)은 알고리즘, 회로 또는 알고리즘을 실행하는 회로로서 구현될 수 있다.
캐시 정책 설정 회로(130)는 수신되는 제어 신호(CTRL)를 기초로 동적으로 캐시 정책을 변경할 수 있다.
컨트롤러(200)로부터 수신되는 어드레스 신호(ADDR)는 어드레스 레지스터(190)에 저장될 수 있다. 어드레스 레지스터(190)는 어드레스 신호(ADDR) 중 인덱스(INDEX)를 로우 어드레스(X-ADDR)로서 로우 디코더(140)에 제공하고, 태그(TAG)를 캐시 로직(120)에 제공할 수 있다.
로우 디코더(140)는 제어 신호(CTRL) 및 로우 어드레스(X-ADDR)에 기초하여 워드라인(WL)을 선택할 수 있다. 이에 따라 로우 어드레스(X-ADDR)에 대응하는 인덱스를 갖는 로우가 활성화될 수 있다. 활성화된 로우에 저장된 데이터, 다시 말해 복수의 캐시라인(CL) 및 복수의 태그(TAGs)가 비트 라인(BL)을 통해 로우 버퍼(150)에 로딩될 수 있다. 로우 버퍼(150)는 비트라인(BL)에 연결된 메모리 셀의 데이터를 센싱하는 센스 엠프 회로로 구현될 수 있다.
캐시 로직(120)은 어드레스 레지스터(190)로부터 제공된 태그(TAG), 다시 말해 수신된 태그를, 로우 버퍼(150)에 로딩된 복수의 태그들(T1~Tn)과 비교하여 캐시 히트 여부를 판단한다. 캐시 로직(120)은 수신된 태그(TAG)가 복수의 태그들(T1~Tn) 중 하나와 매칭되면 캐시 히트이고, 매칭되지 않으면 캐시 미스로 판단할 수 있다.
캐시 히트의 경우, 캐시 로직(120)은 로우 버퍼(150)에 로딩된 복수의 캐시라인들(CL1~CLn) 중 매칭된 태그에 대응하는 캐시라인을 나타내는 정보(예컨대 웨이 정보 등)를 기초로 칼럼 어드레스(Y-ADDR)를 생성할 수 있다. 캐시 미스의 경우, 캐시 로직(120)은 캐시 정책 설정 회로(130)에서 설정된 캐시 정책을 기초로 교체 캐시라인을 선택하고, 캐시라인을 나타내는 정보를 기초로 칼럼 어드레스(Y-ADDR)를 생성할 수 있다.
캐시 로직(120)은 칼럼 어드레스(Y-ADDR)를 컬럼 디코더(160)에 제공할 수 있다. 컬럼 디코더(160)는 로우 버퍼(150)에 로딩된 데이터들 중 칼럼 어드레스(Y-ADDR)에 대응하는 캐시라인의 데이터(또는 캐시라인의 일부 데이터)를 선택할 수 있다. 로우 버퍼(150)는 선택된 데이터(DATA) 및 선택된 데이터(DATA)에 대응하는 태그(TAG)를 입출력 버퍼(170)를 통해 외부로 출력할 수 있다. 데이터(DATA) 및 태그(TAG)는 메모리 컨트롤러(도 2의 200) 또는 메인 메모리(도 1의 1300)로 전송될 수 있다.
도 4a는 도 1의 캐시 메모리와 메인 메모리의 데이터 맵핑을 나타내는 도면이다. 도 4a는 맵핑 동작의 일 예로서 n-웨이 집합 연상 맵핑(n-way Set Associative Mapping)이 도시된다.
메인 메모리(300)는 일정 크기의 복수의 블록들(301~30k)로 구분되며, 구분된 블록들 각각에 대응하여 태그(TAG) 값이 할당된다. 예컨대, 제1 블록(301)의 태그(TAG) 값은 0000이고, 제2 블록의 태그(TAG) 값은 0001일 수 있다. 각 블록들(301~30k)은 복수의 영역들로 구분되며, 복수의 영역들 각각에 대응하여 인덱스(INDEX) 값이 할당될 수 있다.
캐시 메모리(100)는 복수의 웨이(WAY1~WAYn)를 포함할 수 있다. 각 웨이의 사이즈는 메인 메모리(300)의 각 블록(301~30k)의 사이즈와 동일할 수 있다.
메인 메모리(300)의 데이터를 캐시 메모리(100)에 복사함에 있어서, 일정 사이즈의 데이터를 나타내는 캐시라인(CL) 및 해당 캐시라인의 태그(TAG) 값이 캐시 메모리(100)에 기록될 수 있다. 또한, 해당 캐시라인에 대한 상태 정보(V, D)가 캐시 메모리(100)에 기록될 수 있다. 복수의 웨이(WAY1~WAYn)에서 동일한 인덱스 값을 갖는 캐시라인(CL), 태그(TAG) 및 상태 정보(V, D)가 하나의 세트(SET)를 구성할 수 있다.
이후, 캐시 메모리(100)에 저장된 데이터를 독출하는 경우, 세트(SET)를 지시하는 인덱스 정보에 따라 다수의 세트(SET)들 중 어느 하나가 선택되며, 하나의 세트에 포함된 다수의 캐시라인(CL)에 대해서는, 태그(TAG) 값의 비교 동작에 기반하여 하나의 캐시라인이 선택될 수 있다.
도 4b는 도 1의 캐시 메모리를 엑세스하기 위한 어드레스 구조의 일 예를 나타내는 도면이다.
도 4b를 참조하면, 메모리 어드레스(MEM_ADDR)는 태그(TAG) 필드, 인덱스(INDEX) 필드, 오프셋(OFFSET) 필드를 포함할 수 있다. 인덱스(INDEX)필드의 값을 이용하여 다수의 세트들 중 어느 하나의 세트가 선택되며, 태그(TAG) 필드의 값을 이용하여 다수의 캐시라인들 중 하나가 선택될 수 있다. 또한, 오프셋(OFFSET) 필드의 값을 이용하여 하나의 캐시라인에 대한 바이트 단위의 엑세스도 가능하다.
도 5a및 도 5b는 본 개시의 실시예들에 따른 캐시 정책 설정 회로를 나타내는 블록도이다. 설명의 편의를 위하여 메모리 컨트롤러(200) 및 캐시 로직(120)을 함께 도시하기로 한다.
도 5a를 참조하면, 메모리 컨트롤러(200)는 외부 장치, 예컨대 호스트 시스템으로부터의 캐시 정책 변경 요청(REQ_PC)이 있으면, 상기 요청에 대응하는 캐시 정책 설정 커맨드(CMD_CP)를 생성하고, 이를 메모리 장치(100a)에 제공할 수 있다. 실시예에 있어서, 캐시 정책 변경 요청(REQ_PC)은 메모리 장치(100a)의 기 설정된 캐시 정책을 다른 캐시 정책으로 변경할 것을 요구하는 신호를 포함할 수 있다. 실시예에 있어서, 캐시 정책 변경 요청(REQ_PC)은 호스트 시스템의 엑세스 요청이 가지는 특성(예컨대 엑세스 요청이 기입 중심 요청인지 독출 중심 요청 인지 등)을 나타내는 신호를 포함할 수 있다. 다른 실시예에 있어서, 메모리 컨트롤러(200)는 호스트 시스템으로부터의 엑세스 요청(기입 또는 독출 요청)을 분석하여 엑세스 요청의 특성을 기초로 캐시 정책 설정 커맨드(CMD_CP)를 생성할 수 있다.
캐시 정책 설정 회로(130a)는 복수의 관리 정책(131), 정책 레지스터(133) 및 캐시 정책 선택기(132)를 포함할 수 있다.
복수의 관리 정책(131)은 알고리즘, 회로 또는 알고리즘을 실행하는 회로로서 구현될 수 있다. 복수의 관리 정책(131)은 캐시 동작과 관련된 교체 정책, 할당 정책, 기입 정책 등을 포함할 수 있다.
캐시 정책 선택기(132)는 복수의 관리 정책(131) 중 적어도 하나를 선택할 수 있다. 캐시 정책 선택기(132)는 메모리 컨트롤러(200)로부터 캐시 정책 설정 커맨드(CMD_CP)가 수신되면, 캐시 정책 설정 커맨드(CMD_CP)에 응답하여 관리 정책을 선택할 수 있다. 캐시 정책 선택기(132)는 정책 레지스터(133)에, 선택된 관리 정책을 나타내는 값을 제공할 수 있다.
정책 레지스터(133)는 선택된 관리 정책에 대한 정보를 저장할 수 있다. 이로써, 캐시 정책 설정 회로(130a)는 정책 레지스터(133)에 저장된 값을 기초로 복수의 관리 정책(131) 중 적어도 하나에 기초하여 캐시 정책을 설정할 수 있다.
캐시 로직(120)은 캐시 정책(CP)을 기초로 메모리 장치(100a)의 캐시 동작을 제어할 수 있다.
도 5b를 참조하면, 캐시 정책 설정 회로(130b)는 복수의 관리 정책(131), 정책 레지스터(133), 캐시 정책 선택기(132) 및 모니터 회로(134)를 포함할 수 있다. 도 5a와 비교하면 도 5b의 캐시 정책 설정 회로(130b)는 모니터 회로(134)를 더 포함할 수 있다. 도 5b의 캐시 정책 설정 회로(130b)는 도 5a의 캐시 정책 설정 회로(130a)의 동작을 수행할 수 있으며, 모니터 회로(134)의 모니터링에 따른 동작을 추가로 수행할 수 있다.
메모리 컨트롤러(200)는 외부 장치, 예컨대 호스트 시스템으로부터 엑세스 요청(REQ_ACC)을 수신하면, 기입 또는 독출 명령을 포함하는 동작 커맨드(CMD_OP)를 생성하고, 동작 커맨드(CMD_OP)를 메모리 장치(100b)에 제공할 수 있다. 동작 커맨드(CMD_OP)는 예컨대 기입 커맨드(CMD_WR) 또는 독출 커맨드(CMD_RD)를 포함할 수 있다.
모니터 회로(134)는 메모리 장치(100b)에 요청되는 동작 패턴을 분석할 수 있다. 모니터 회로(134)는 수신되는 동작 커맨드(CMD_OP) 또는 데이터 입출력을 모니터링할 수 있다. 모니터 회로(134)는 모니터링 결과를 기초로, 메모리 장치(100b)에 요청되는 동작 패턴 또는 워크로드를 분석할 수 있다. 모니터 회로(134)는 분석 결과를 캐시 정책 선택기(132)에 제공할 수 있다.
캐시 정책 선택기(132)는 분석 결과를 기초로 기 설정된 캐시 정책의 변경 여부를 결정할 수 있다. 캐시 정책의 변경이 필요하다고 판단되는 경우, 캐시 정책 선택기(132)는 분석 결과를 기초로, 복수의 관리 정책(131) 중 적어도 하나를 선택할 수 있다.
도 6은 도 5b의 모니터 회로의 일 구현예를 나타내는 블록도이다.
도 6을 참조하면, 모니터 회로(134a)는 카운터(10) 및 패턴 분석기(20)를 포함할 수 있다. 카운터(10)는 수신되는 동작 커맨드(CMD_OP)를 카운팅할 수 있다. 구체적으로, 동작 커맨드(CMD_OP)는 기입 커맨드(CMD_WR) 및 독출 커맨드(CMD_RD)를 포함할 수 있고, 카운터(10)는 기입 커맨드(CMD_WR) 및 독출 커맨드(CMD_RD)를 각각 카운팅 할 수 있다.
일 실시예에 있어서, 카운터(10)는 미리 설정된 기간 내에 수신되는 기입 커맨드(CMD_WR) 및 독출 커맨드(CMD_RD)를 각각 카운팅할 수 있다. 다른 실시예에 있어서, 카운터(10)는 수신되는 액세스 요청, 다시 말해 기입 커맨드(CMD_WR) 및 독출 커맨드(CMD_RD)를 차례로 미리 설정된 횟수만큼 카운팅하고, 카운팅된 횟수 중 기입 커맨드(CMD_WR)의 카운팅 횟수와 독출 커맨드(CMD_RD)의 카운팅 횟수를 구분할 수 있다.
패턴 분석기(20)는 기입 커맨드(CMD_WR) 및 독출 커맨드(CMD_RD)의 카운팅 결과를 기초로 동작 패턴을 분석할 수 있다. 패턴 분석기(20)는 기입 커맨드(CMD_WR)의 카운팅 횟수가 미리 설정된 임계값 이상이거나 또는 액세스 요청 중 기입 요청의 비, 다시 말해 기입 커맨드(CMD_WR) 및 독출 커맨드(CMD_RD)의 카운팅 횟수에 대한 기입 커맨드(CMD)WR)의 비가 임계값 이상이면, 기입 요청이 빈번하다고 분석할 수 있다.
캐시 정책 설정 회로(132)는 분석 결과에 기초하여 캐시 미스 발생 시, 복수의 캐시라인 중 클린 캐시라인을 우선적으로 희생 캐시라인으로 선택하도록하는 관리 정책을 선택하고, 이에 따라 캐시 정책이 변경될 수 있다.
이상에서, 도 6을 참조하여 본 개시의 실시예에 따른 도 5b의 모니터 회로의 일 구현예를 설명하였다. 그러나, 이는 실시예일뿐이며, 모니터 회로의 구성 및 동작은 본 개시의 기술적 사상을 포함하는 한에서 다양하게 변경될 수 있다.
도 7a 및 도 7b는 본 개시의 실시예에 따른 메모리 장치의 동작을 나타내는 도면이다. 도 7a는 메모리 장치(100)가 캐시 히트를 판단하는 동작을 설명하는 도면이고, 도 7b는 캐시 미스 시 캐시라인 교체 동작을 설명하는 도면이다.
도 7a를 참조하면, 메모리 장치(100)는 수신되는 엑티브 커맨드 및 인덱스(INDEX)에 기초하여, 인덱스(INDEX)에 대응하는 로우에 저장된 데이터들을 로우 버퍼(150)에 로딩할 수 있다. 상기 로딩되는 데이터는 선택된 로우의 캐시라인들(152) 및 캐시라인들에 대응하는 메타 데이터(151)를 포함할 수 있다. 메타 데이터(151)는 로딩된 캐시라인들(152)에 대응하는 태그들(TAGs) 및 상태 정보들(VBs, DBs)을 포함할 수 있다.
캐시 로직(120)은 메타 데이터(151)의 태그들(T1~Tn) 및 유효 정보(V1~Vn)를 수신된 태그(TAG)와 비교하여 캐시 히트를 판단할 수 있다. 캐시 로직(120)은 수신된 태그(TAG)와 매칭되는 태그에 대응하는 캐시라인을 선택할 수 있다. 선택된 캐시라인의 적어도 일부의 데이터(DATA) 및 매칭되는 태그(TAG_S)이 외부로 출력될 수 있다.
도 7b를 참조하면, 캐시 미스 시, 캐시 로직(120)은 캐시 정책 설정 회로(130)에서 설정된 캐시 정책(CP)을 기초로 캐시라인을 교체할 수 있다. 캐시 로직(120)은 캐시 정책(CP) 중 교체 정책을 기초로 희생 캐시라인을 선택할 수 있다. 로우 버퍼(150)는 캐시라인을 교체할 수 있다. 로우 버퍼(150)는 선택된 희생 캐시라인의 데이터(DATA) 및 희생 캐시라인에 대응하는 태그(TAG_S)를 외부로 출력하고, 새로운 캐시라인의 데이터(DATA) 및 태그(TAG_S)를 수신할 수 있다. 이후, 메모리 셀 어레이(110)는 프리차지 될 수 있다. 로우 버퍼(150)에 로딩된 캐시라인들 및 메타 데이터가 인덱스(INDEX)에 대응하는 로우에 저장됨으로써, 인덱스(INDEX)에 저장된 데이터가 업데이트될 수 있다.
도 8 내지 도 11은 본 개시의 실시예에 따른 메모리 장치의 동작을 나타내는 흐름도이다.
구체적으로, 도 8 및 도 9는 본 개시의 실시예들에 따른 메모리 장치의 캐시 정책 변경 동작을 설명하는 흐름도이다.
도 8을 참조하면, 메모리 장치(도 2의 100)는 미리 설정된 캐시 정책에 기초하여 복수의 캐시라인을 관리할 수 있다(S110). 예를 들어, 정책 레지스터(도 5a의 133)에는 디폴트값이 세팅되고, 복수의 관리 정책들 중 디폴트값에 따른 관리 정책이 선택되고, 선택된 관리 정책에 기초하여 캐시 정책이 설정될 수 있다.
메모리 컨트롤러(도 2의 200)로부터 캐시 정책 설정 커맨드가 수신될 수 있다(S120). 메모리 장치(100)는 캐시 정책 설정 커맨드에 따른 캐시 정책이 상기 미리 설정된 캐시 정책과 다르면 캐시 정책을 변경할 수 있다(S130). 예컨대 캐시 정책 선택기(도 5a의 132)는 복수의 관리 정책들 중 캐시 정책 설정 커맨드에 대응하는 적어도 하나를 선택하고, 선택된 관리 정책들에 대한 정보를 나타내는 값을 정책 레지스터(133)에 제공할 수 있다.
메모리 장치(100)는 변경된 캐시 정책에 기초하여 복수의 캐시라인을 관리할 수 있다(S140).
도 9를 참조하면, 메모리 장치(100)는 미리 설정된 캐시 정책에 기초하여 복수의 캐시라인을 관리할 수 있다(S210). 메모리 장치(100)는 수신되는 기입 및 독출 커맨드를 모니터링 하고, 동작 패턴을 분석할 수 있다(S320). 실시예에 있어서, 메모리 장치(100)는 주기적으로 동작 패턴을 분석할 수 있다. 실시예에 있어서, 메모리 장치(100)는 메모리 컨트롤러로부터의 동작 커맨드가 수신되기 시작한 후 소정의 기간 동안 동작 패턴을 분석할 수 있다.
메모리 장치(100)는 동작 패턴을 기초로 캐시 정책 변경이 필요한지 여부를 판단할 수 있다(S230). 메모리 장치(100)는 동작 패턴에 따라 캐시 성능을 향상시키는 캐시 정책을 결정할 수 있고, 기 설정된 캐시 정책이 동작 패턴에 따라 결정되는 캐시 정책에 부합하는지 판단할 수 있다.
메모리 장치(100)는 기 설정된 캐시 정책이 동작 패턴에 따라 결정되는 캐시 정책에 부합하지 않으면, 캐시 정책 변경이 필요하다고 판단하고 캐시 정책을 변경할 수 있다(S240). 이후, 메모리 장치(100)는 변경된 캐시 정책에 기초하여 복수의 캐시라인을 관리할 수 있다(S250).
도 10은 본 개시의 실시예에 따른 메모리 장치의 동작을 나타내는 흐름도이다. 구체적으로, 도 10은 독출 커맨드 수신 시, 메모리 장치의 캐시 히트 판단 및 캐시라인 교체 동작을 나타낸다.
도 10을 참조하면, 메모리 장치(100)는 메모리 컨트롤러(도 2의 200)로부터 엑티브 커맨드 및 인덱스를 수신할 수 있다(S310).
메모리 장치(100)는 메모리 셀 어레이로부터 수신된 인덱스에 대응하는 캐시라인들, 태그들 및 상태 정보를 독출할 수 있다(S320). 예컨대 독출된 상기 데이터는 로우 버퍼에 로딩될 수 있다.
메모리 장치(100)는 메모리 컨트롤러(도 2의 200)로부터 독출 커맨드 및 태그가 수신되면(S330), 캐시 히트를 판단할 수 있다(S340). 메모리 장치(100)는 로우 버퍼에 로딩된 태그들을 수신된 태그와 비교하여 매칭되는 태그를 찾고, 매칭된 태그에 대응하는 캐시라인이 유효하면, 캐시 히트라고 판단할 수 있다. 매칭되는 태그가 없거나, 매칭되는 태그에 대응하는 캐시라인이 무효 상태이면, 캐시 미스라고 판단할 수 있다.
캐시 히트인 경우, 메모리 장치(100)는 태그에 대응하는 캐시라인을 선택하고, 선택된 캐시라인의 데이터를 출력할 수 있다(S350). 메모리 장치(100)는 또한 매칭되는 태그를 출력할 수 있다.
캐시 미스인 경우, 메모리 장치(100)는 캐시라인을 교체할 수 있다(S370). 메모리 장치(100)는 설정된 캐시 교체 정책을 기초로 희생 캐시라인을 선택할 수 있다(S360). 희생 캐시라인이 더티 상태이면, 희생 캐시라인의 데이터를 메인 메모리에 저장할 수 있다. 이후, 메모리 장치(100)는 액세스 요청된 데이터를 포함하는 캐시라인 및 상기 캐시라인에 대응하는 태그를 메인 메모리로부터 독출하고, 이를 희생 캐시라인이 저장되었던 웨이에 저장할 수 있다.
도 11은 본 개시의 실시예에 따른 동작 방법을 나타내는 흐름도이다. 구체적으로 도 11은 도 10의 희생 캐시라인을 선택하는 단계의 일 구현예를 보다 상세하게 나타낸다.
도 11을 참조하면, 캐시 미스 시, 메모리 장치(100)는 캐시 교체 정책을 기초로 희생 캐시라인을 검색할 수 있다(S361). 메모리 장치(100)는 로우 버퍼에 로딩된 캐시라인 중 희생 캐시라인으로 선택될 캐시라인을 찾을 수 있다. 예를 들어 캐시 교체 정책이 클린 캐시라인을 우선적으로 교체 캐시라인으로 선택하는 관리 정책에 기초하여 설정된 경우, 로우 버퍼에 로딩된 캐시라인 중 클린 캐시라인을 찾을 수 있다.
메모리 장치(100)는 캐시 교체 정책에 부합하는 캐시라인이 존재하는지를 판단할 수 있다(S362). 메모리 장치(100)는 캐시 교체 정책에 부합하는 캐시라인이 존재하면, 상기 캐시라인을 희생 캐시라인으로 선택하고(S363) 캐시라인을 교체할 수 있다(S370).
캐시 교체 정책에 부합하는 캐시라인이 존재하지 않는다면, 메모리 장치(100)는 메모리 컨트롤러에 희생 캐시라인을 찾지 못했음을 나타내는 페일 신호를 전송하고(S364) 캐시 교체 정책을 변경할 수 있다(S360). 실시예에 있어서, 메모리 장치(100)는 메모리 컨트롤러로부터 캐시 정책 설정 커맨드를 재수신하고, 이에 기초하여 캐시 교체 정책을 변경할 수 있다. 실시예에 있어서, 메모리 장치(100)는 디폴트로 설정된 관리 정책을 기초로 캐시 교체 정책을 변경할 수 있다. 이후, 메모리 장치(100)는 변경된 캐시 교체 정책을 기초로 희새 캐시라인을 재검색하고, 캐시 교체 정책에 부합하는 캐시라인을 희생 캐시라인으로 선택할 수 있다(S366).
도 12는 본 개시의 실시예에 따른 메모리 시스템의 동작을 나타내는 흐름도이다.
도 12를 참조하면, 메모리 장치(100)는 디폴트 캐시 정책을 설정할 수 있다(S410). 예컨대, 정책 레지스터(도 5a의 133)에 디폴트로 저장된 값에 대응하는 관리 정책에 기초하여 디폴트 캐시 정책이 설정될 수 있다.
메모리 컨트롤러(200)는 메모리 장치(100)에 설정된 캐시 정책 또는 캐시 정책에 대한 정보를 요청할 수 있다(S420). 메모리 장치(100)는 메모리 컨트롤러(200)의 요청에 응답하여, 설정된 캐시 정책 또는 캐시 정책에 대한 정보를 메모리 컨트롤러(200)에 전송할 수 있다(S430). 캐시 정책의 변경이 요구되는 경우, 메모리 컨트롤러(200)는 캐시 정책 설정 커맨드를 메모리 장치(100)에 송신할 수 있다(S440). 예컨대, 메모리 컨트롤러(200)는 호스트 시스템으로부터 요청되는 동작에 적합한 캐시 정책이 메모리 장치(100)에 기 설정된 캐시 정책과 상이한 경우, 호스트 시스템으로부터 요청되는 캐시 정책을 설정하기 위한 캐시 정책 설정 커맨드를 송신할 수 있다.
메모리 장치(100)는 수신되는 캐시 정책 설정 커맨드에 기초하여 캐시 정책을 변경할 수 있다(S450). 실시예에 있어서, 호스트 시스템으로부터 요청되는 동작이 한시적인 경우, 메모리 컨트롤러(200)는 한시적으로 캐시 정책을 변경하고, 호스트 시스템으로부터의 요청되는 동작이 끝나면, 캐시 정책을 디폴트 캐시 정책으로 다시 변경할 수 있다.
도 13 은 본 개시의 실시예들에 따른 메모리 장치를 나타내는 블록도이다.
도 13은 도 3의 메모리 장치(100)의 또 다른 실시예이다. 도 3의 메모리 장치(100)와 도 13의 메모리 장치(100c)에서 동일한 참조번호를 갖는 구성 요소의 동작은 동일한 바, 이에 대한 중복되는 설명은 생략하기로 한다.
도 13을 참조하면, 메모리 장치(100c)는 제1 메모리 셀 어레이(111) 및 제2 메모리 셀 어레이(112)를 포함할 수 있다. 또한 메모리 장치(100c)는 제 1 메모리 셀 어레이(111)에 연결되는 제1 로우 디코더(141), 제1 로우 버퍼(151), 제1 컬럼 디코더(161)를 포함하고, 제2 메모리 셀 어레이(112)에 연결되는 제2 로우 디코더(142), 제2 로우 버퍼(152) 및 제2 컬럼 디코더(162)를 포함할 수 있다.
제2 메모리 셀 어레이(112)에는 복수의 캐시라인들이 저장되고, 제1 메모리 셀 어레이(1111)에는 복수의 캐시라인들 각각에 대응하는 복수의 태그들(TAGs)이 저장될 수 있다. 동일한 인덱스를 갖는 복수의 캐시라인들(CL1~CLn) 및 복수의 태그들(T1~Tn)이 같은 세트에 포함될 수 있다. 제1 컬럼 디코더(161) 및 제2 컬럼 디코더(162)는 동일한 로우 어드레스(X-ADDR)를 수신하고, 이에 응답하여 동작할 수 있다.
동일한 인덱스를 갖는 복수의 캐시라인들(CL1~CLn) 및 복수의 태그들(T1~Tn)은 각각 제1 로우 버퍼(151) 및 제2 로우 버퍼(152)에 로딩될 수 있다. 캐시 로직(120)은 제1 로우 버퍼(151)에 로딩된 복수의 태그들(T1~Tn)을 수신되는 태그(TAG)와 비교하고, 매칭되는 태그에 대응하는 캐시라인의 위치를 나타내는 제2 칼럼 어드레스(Y-ADDR2)를 제2 로우 버퍼(152)에 제공할 수 있다. 캐시 로직(120)은 또한 매칭되는 태그의 위치를 나타내는 제1 칼럼 어드레스(Y-ADDR2)를 제1 로우 버퍼(151)에 제공할 수 있다. 제1 로우 버퍼(151) 및 제2 로우 버퍼(152)는 각각 태그(TAG) 및 데이터(DATA)를 출력할 수 있다. 제1 로우 버퍼(151) 및 제2 로우 버퍼(152)는 또한, 수신되는 태그(TAG) 및 데이터(DATA)를 제1 칼럼 어드레스(Y-ADDR1) 및 제2 칼럼 어드레스(Y-ADDR2)가 각각 나타내는 제1 로우 버퍼(151) 및 제2 로우 버퍼(152) 내의 위치에 로딩할 수 있다.
도 14는 본 개시의 실시예들에 따른 메모리 장치를 나타내는 블록도이다.
도 14는 도 3의 메모리 장치(100)의 또 다른 실시예이다. 도 3의 메모리 장치(100)와 도 14의 메모리 장치(100d)에서 동일한 참조번호를 갖는 구성 요소의 동작은 동일한 바, 이에 대한 중복되는 설명은 생략하기로 한다.
도 14를 참조하면, 메모리 장치(100d)는 복수의 뱅크(BANK0~BANK3)를 포함할 수 있다. 복수의 뱅크(BANK0~BANK3) 각각은, 메모리 셀 어레이(110), 로우 디코더(140), 로우 버퍼(150), 캐시 로직(120), 캐시 정책 설정 회로(130) 및 컬럼 디코더(160)를 포함할 수 있다. 이에 따라 복수의 뱅크(BANK0~BANK3) 각각은 서로 다른 캐시 정책에 기초하여 캐시 동작을 수행할 수 있다. 한편, 복수의 뱅크(BANK0~BANK3) 중 하나를 선택하기 위하여, 메모리 장치(100d)는 뱅크 제어 로직(195)를 포함할 수 있다. 메모리 장치(100d)에 수신되는 인덱스(INDEX) 중 일부 비트가 뱅크 어드레스(B-ADDR)로서 뱅크 로직(195)에 제공될 수 있다. 뱅크 제어 로직(195)는 뱅크 어드레스(B-ADDR)를 기초로 복수의 뱅크(BANK0~BANK3) 중 적어도 하나의 뱅크를 선택할 수 있다.
도 15는 본 개시의 실시예에 따른 메모리 모듈을 나타내는 도면이다.
도 15를 참조하면, 메모리 모듈(3000)은 복수의 제1 메모리(3100), 적어도 하나의 제2 메모리(3200), 레지스터(3300; RCD) 및 탭(3400)을 포함할 수 있다. 메모리 모듈은 RDIMM(Registered Dual In-Line Module)일 수 있다. 도 15에서는 9개의 메모리들(3100, 3200)이 도시되었으나 이에 제한되는 것은 아니다. 메모리들(3100, 3200)의 수는 메모리 모듈(3000)의 구조와 I/O 구성(configuration)에 따라 결정될 수 있다.
복수의 제1 메모리(3100)는 복수의 캐시라인들(CLs)을 저장할 수 있다. 복수의 캐시라인들(CLs) 각각은 복수의 제1 메모리(3100)에 분산되어 저장될 수 있다. 다시 말해, 하나의 캐시라인의 비트들이 복수의 제1 메모리(3100)에 분산되어 저장될 수 있으며, 하나의 제1 메모리(3100)에는 복수의 캐시라인들의 일부 비트가 저장될 수 있다.
제2 메모리(3200)는 복수의 캐시라인들(CLs)에 대응하는 복수의 태그(TAGs)를 저장할 수 있다. 제2 메모리(3200)는 또한 캐시 로직(CLGC) 및 캐시 정책 설정 회로(CPSC)를 포함할 수 있다. 캐시 정책 설정 회로(CPSC)는 메모리 모듈(3000)의 전술한 실시예들에 따라 캐시 정책을 설정하고 또한 캐시 정책을 변경할 수 있다. 캐시 로직(CLGC)은 어드레스(ADDR)에 포함되는 태그를 기초로 캐시 히트를 판단하고, 캐시 히트 시 매칭되는 태그에 대응하는 캐시라인이 저장된 웨이 정보(WIFO)를 레지스터(3300)에 제공할 수 있다. 캐시 로직(CLGC)은 캐시 미스 시, 캐시 정책에 기초하여 희새 캐시라인을 선택하고 희생 캐시라인이 저장된 웨이 정보(WIFO)를 레지스터(3300)에 제공할 수 있다.
레지스터(3300)는 메모리 모듈(3000)의 전반적인 동작을 제어할 수 있다. 레지스터(3300)는 클럭(CLK), 커맨드(CMD) 및 어드레스(ADDR)를 수신할 수 있다. 레지스터(3300)는 복수의 제1 메모리(3100) 및 제2 메모리(3200)에 클럭(CLK), 로우 어드레스(X-ADDR) 및 제어신호(CTRL)을 제공할 수 있다. 레지스터(3300)는 또한, 제2 메모리(3200)로부터 수신되는 웨이 정보(WIFO)를 기초로 칼럼 어드레스(Y-ADDR)를 생성하고, 이를 복수의 제1 메모리(3100) 및 제2 메모리(3200)에 제공할 수 있다.
복수의 제1 메모리(3100)는 레지스터(3300)로부터 제공되는 로우-어드레스(X-ADDR)에 대응하는 로우에 저장된 캐시라인들(CLs)을 내부의 로우 버퍼에 로딩하고, 로우 버퍼에 로딩된 캐시라인들(CLs) 중 칼럼 어드레스(Y-ADDR)에 대응하는 캐시라인의 데이터(DATA)를 출력할 수 있다.
제2 메모리(3200)는 로우 어드레스(X-ADDR)에 대응하는 로우에 저장된 태그들(TAGs)을 내부의 로우 버퍼에 로딩하고, 로우 버퍼에 로딩된 태그들(TAGs) 중 칼럼 어드레스(Y-ADDR)에 대응하는 태그(TAG)를 출력할 수 있다.
메모리 모듈(3000)의 기판의 에지부에는 탭(3400)이 형성되어 있을 수 있다. 탭(3400)은 탭 핀이라고도 불리우는 커넥팅 단자를 복수로 가질 수 있다. 탭(3400)에는 커맨드/어드레스 신호 입력 핀들, 클럭 입력 핀들, 데이터 입/출력 신호 핀들이 할당될 수 있다.
이하, 도 16 및 도 17을 참조하여 도 15의 메모리 모듈의 동작을 보다 상세하게 설명하기로 한다.
도 16 및 도 17은 도 15의 메모리 모듈의 동작을 나타내는 흐름도이다.
도 16을 참조하면, 레지스터(3300)가 엑티브 커맨드, 인덱스를 수신할 수 있다(S510). 레지스터(3300)가 인덱스에 따른 로우 어드레스(X-ADDR)를 복수의 제1 메모리(3100) 및 적어도 하나의 제2 메모리(3200)에 전송할 수 있다(S520). 복수의 제1 메모리 및 적어도 하나의 제2 메모리 (3200) 각각은 로우 어드레스(X-ADDR)가 나타내는 로우의 데이터를 내부 로우 버퍼에 로딩할 수 있다(S530). 복수의 제1 메모리(3100)는 복수의 캐시라인을 로우 버퍼에 로딩하고, 제2 메모리(3200)는 상기 복수의 캐시라인에 대응하는 태그들을 로우 버퍼에 로딩할 수 있다.
이후, 제2 메모리(3200)가 독출 커맨드 및 태그를 수신할 수 있다(S540). 실시예에 있어서, 제2 메모리(3200)가 커맨드/어드레스 신호 입력 핀들 로부터 직접 독출 커맨드 및 태그를 수신할 수 있다. 다른 실시예에 있어서, 레지스터(3300)가 독출 커맨드 및 태그를 수신하고, 수신된 독출 커맨드 및 태그를 제2 메모리(3200)에 제공할 수 있다.
제2 메모리(3200)는 로우 버퍼에 로딩된 태그들과 수신된 태그를 비교하여 캐시 히트를 판단할 수 있다(S550). 캐시 히트 시, 제2 메모리(3200)는 매칭된 태그의 웨이 정보(WIFO)(또는 매칭된 태그에 해당하는 캐시라인의 웨이 정보(WIFO))를 레지스터(3300)에 제공할 수 있다(S560).
레지스터(3400)는 웨이 정보(WIFO)에 대응하는 칼럼 어드레스(Y-ADDR)를 복수의 제1 메모리(3100) 및 제2 메모리(3200)에 각각에 제공할 수 있다(S570).
복수의 제1 메모리(3100) 및 제2 메모리(3200)는 로우 버퍼에 로딩된 테이터들 중 칼럼 어드레스에 대응하는 데이터를 출력할 수 있다(S580). 복수의 제1 메모리(3100)는 선택된 캐시라인의 데이터(DATA)를 출력하고, 제2 메모리(3200)는 선택된 캐시라인에 대응하는 태그(TAG)를 출력할 수 있다.
도 17을 참조하면, 캐시 미스 시, 제2 메모리(3200)는 설정된 캐시 교체 정책에 기초하여 희생 캐시라인을 선택하고(S610), 희생 캐시라인의 웨이 정보(WIFO)를 레지스터(3300)에 제공할 수 있다.
레지스터(3300)가 웨이 정보(WIFO)에 대응하는 칼럼 어드레스(Y-ADDR)를 복수의 제1 메모리(3100) 및 제2 메모리(3200) 각각에 제공할 수 있다(S630). 희생 캐시라인이 더티 상태인 경우, 캐시라인을 메인 메모리에 저장하여야 하므로, 복수의 제1 메모리(3100) 및 제2 메모리(3200)는 각각 로우 버퍼에 로딩된 데이터들 중 칼럼 어드레스에 대응하는 데이터, 다시 말해 희생 캐시라인의 데이터 및 태그를 출력할 수 있다(S640). 출력된 희생 캐시라인의 데이터 및 태그는 메모리 컨트롤러 또는 메인 메모리에 제공될 수 있다.
이후, 복수의 제1 메모리(3100) 및 제2 메모리(3200)는 각각 수신되는 데이터 또는 태그를 로우 버퍼 중 칼럼 어드레스(Y-ADDR)에 대응하는 영역에 로딩하고(650), 로우 버퍼의 데이터를 인덱스에 대응하는 로우에 저장함으로써, 캐시라인을 교체할 수 있다(S660).
도 18은 본 개시의 실시예에 따른 메모리 모듈을 나타내는 도면이다. 도 18은 도 15의 메모리 모듈(3000)의 또 다른 실시예이다.
복수의 제1 메모리(3100)의 동작은 도 15의 메모리 모듈(3000)의 복수의 제1 메모리(3100)의 동작과 동일한 바 중복되는 설명은 생략하기로 한다.
메모리 모듈(3000a)은 적어도 하나의 제2 메모리 모듈(3200a)을 포함할 수 있으며, 제2 메모리(3200a)는 복수의 태그(TAGs)를 저장하고, 캐시 로직(CLGC), 캐시 정책 설정 회로(CPSC) 및 어드레스 변환 회로(ACC)를 포함할 수 있다. 어드레스 변환 회로(ACC)는 도 15의 레지스터(3300)의 기능의 일부를 수행할 수 있다. 어드레스 변환 회로(ACC)는 어드레스 신호(ADDR)를 수신하고, 어드레스 신호(ADDR)에 포한되는 인덱스를 기초로 로우 어드레스(X-ADDR)를 생성할 수 있다. 어드레스 변환 회로(ACC)는 또한, 선택된 캐시라인의 웨이 정보를 기초로 칼럼 어드레스(Y-ADDR)를 생성할 수 있다. 제2 메모리(3200a)는 로우 어드레스(X-ADDR), 칼럼 어드레스(Y-ADDR), 클럭(CLK) 및 제어신호(CTRL)를 복수의 제1 메모리(3100)에 제공할 수 있다.
도 19는 본 개시의 실시예에 따른 메모리 모듈을 나타내는 도면이다.
도 19를 참조하면, 메모리 모듈(4000)은 복수의 메모리(4100)를 포함할 수 있다. 메모리 모듈(4000)은 LRDIMM(Load Reduced Dual In-Line Module)일 수 있다. 도 15에서는 메모리 모듈(4000)이 9개의 메모리들(4100)을 포함하는 것으로 도시되었으나 이에 제한되는 것은 아니다. 메모리들(4100)의 수는 메모리 모듈(4000)의 구조와 I/O 구성(configuration)에 따라 결정될 수 있다.
메모리(4100) 각각은 복수의 캐시라인들(CLs) 및 복수의 캐시라인들(CLs)에 대응하는 복수의 태그들(TAGs)을 저장할 수 있다. 메모리(4100) 각각은 캐시 로직(CLGC), 캐시 정책 설정 회로(CPSC)를 포함할 수 있다.
실시예에 있어서, 복수의 캐시라인들(CLs) 및 복수의 태그들(TAGs) 각각은 복수의 메모리(4100)에 분산되어 저장될 수 있다. 다시 말해, 하나의 캐시라인 및 하나의 태그의 비트들이 복수의 메모리(4100)에 분산되어 저장될 수 있으며, 하나의 메모리(4100)에는 복수의 캐시라인들의 일부 비트 및 복수의 태그의 일부 비트가 저장될 수 있다. 복수의 메모리(4100)는 동일한 인덱스 및 태그를 수신하고 동일하게 동작할 수 있다.
다른 실시예에 있어서, 서로 다른 캐시라인들 및 태그들(TAGs)이 복수의 메모리(4100)에 저장될 수 있다. 다시 말해, 도2의 메모리 장치(100)가 복수의 메모리(4100)에 적용될 수 있으며, 복수의 메모리(4100)은 각각 독립적으로 동작할 수 있다.
이상에서, 도 15 내지 도 19를 참조하여 본 개시의 실시예에 따른 메모리 모듈에 대하여 설명하였다. 그러나, 이는 실시예일뿐이며, 메모리 모듈의 구조 및 동작은 본 개시의 기술적 사상을 포함하는 한에서 다양하게 변경될 수 있다.
도 20 내지 22는 본 개시의 실시예들에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 20을 참조하면, 컴퓨팅 시스템(5100)은 CPU(5010), 제1 메모리 시스템(5020), 제2 메모리 시스템(5030), 유저 인터페이스(5040), 모뎀(5050) 및 버스(5060)을 포함할 수 있다. 이외에도, 컴퓨팅 시스템(5100)은 다양한 구성 요소를 더 포함할 수 있다. 제1 메모리 시스템(5020), 제2 메모리 시스템(5030), 유저 인터페이스(5040) 및 모뎀(5050)은 버스(5060)에 전기적으로 연결되고, 버스(5060)를 통해 데이터 및 신호를 송수신할 수 있다.
CPU(5010)는 컴퓨팅 시스템(5100)의 연산, 데이터 처리 및 제어를 수행할 수 있다.
제1 메모리 시스템(5020)은 제1 메모리 컨트롤러(5021) 및 캐시 메모리(5022)를 포함할 수 있다. 도 2의 메모리 시스템(1500)이 제1 메모리 시스템(5020)에 적용될 수 있다. 제1 메모리 컨트롤러(5021)는 컴퓨팅 시스템(5100)의 다른 구성 요소들, 예컨대 CPU(5010), 유저 인터페이스(5040) 또는 모뎀(5050)과 캐시 메모리(5022) 사이의 인터페이스를 제공할 수 있다.
도 2 내지 도 19를 참조하여 설명한 메모리 장치 또는 메모리 모듈이 캐시 메모리(5011)에 적용될 수 있다. 캐시 메모리(5022)는 캐시 로직(CLGC) 및 캐시 정책 설정 회로(CPSC)를 포함할 수 있다. 실시예에 있어서 캐시 메모리(5022)는 페이지 기반으로 데이터를 기입 및 독출할 수 있다. 실시예에 있어서, 캐시 메모리(5022)는 DRAM 메모리 셀을 포함할 수 있다.
제2 메모리 시스템(5030)은 제2 메모리 컨트롤러(5031) 및 메인 메모리(5032)를 포함할 수 있다. 제2 메모리 컨트롤러(5021)는 컴퓨티 시스템(5100)의 다른 구성 요소들과 메인 메모리(5032)간의 인터페이스를 제공할 수 있다. 메인 메모리(5032)는 캐시 메모리(5022)와 동종 또는 이종의 메모리 셀 어레이를 포함할 수 있다. 메인 메모리(5032)의 동작 속도는 캐시 메모리(5022)의 동작 속도 이하일 수 있다. 실시예에 있어서, 메인 메모리(5032)는 불휘발성 메모리 셀을 포함할 수 있다.
유저 인터페이스(5040)는 외부와 신호를 교환할 수 있다. 예를 들어, 유저 인터페이스(5040)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 마이크, 진동 센서 등과 같은 유저 입력 인터페이스들을 포함할 수 있다. 유저 인터페이스(5040)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diode), AMOLED(Active Matrix OLED), LED, 스피커, 모터 등과 같은 유저 출력 인터페이스들을 포함할 수 있다.
모뎀(5050)은 CPU(5010)의 제어에 따라 외부 장치와 무선 또는 유선 통신을 수행할 수 있다. 모뎀(5050)은 와이파이, CDMA, GSM, LTE, 블루투스, NFC 등과 같은 다양한 통신 표준들 중 적어도 하나에 기반하여 통신을 수행할 수 있다.
도 21을 참조하면, 컴퓨팅 시스템(5200)은 CPU(5010), 메모리 시스템(5070), 유저 인터페이스(5040), 모뎀(5050) 및 버스(5060)를 포함할 수 있다.
메모리 시스템(5060)은 메모리 컨트롤러(5071), 캐시 메모리(5072) 및 메인 메모리(5073)을 포함할 수 있다. 캐시 메모리(5072)는 도 2 내지 도 19를 참조하여 설명한 메모리 장치 또는 메모리 모듈을 포함할 수 있다. 도 21에 도시된 바와 같이, 메모리 컨트롤러(5071)는 캐시 메모리(5072) 및 메인 메모리(5073)에 대한 인터페이스를 제공하고, 캐시 메모리(5072) 및 메인 메모리(5073)를 제어할 수 있다. 이와 같이, 캐시 메모리 (5072) 및 메인 메모리(5073)은 동일한 메모리 컨트롤러에 의하여 제어될 수 있다.
도 22를 참조하면, 컴퓨팅 시스템(5300)은 CPU(5010), 메모리 시스템(5080), 유저 인터페이스(5040), 모뎀(5050) 및 버스(5060)를 포함할 수 있다. 메모리 시스템(5080)은 메모리 컨트롤러(5081), 캐시 메모리(5083) 및 메인 메모리(5083)를 포함할 수 있다. 캐시 메모리(5082)는 도 2 내지 도 19를 참조하여 설명한 메모리 장치 또는 메모리 모듈을 포함할 수 있다. 캐시 메모리 (5082) 및 메인 메모리(5083)은 같은 메모리 컨트롤러(5081)에 의하여 제어될 수 있다. 캐시 메모리 (5082) 및 메인 메모리(5083)는 또한 도시된 바와 같이 동일한 채널, 다시 말해 동일한 데이터 전송 라인에 연결될 수 있다. 이에 따라, 캐시라인 교체 등과 같이 캐시 메모리(5082) 및 메인 메모리(5083) 사이에 데이터가 송수신될 때, 데이터는 메모리 컨트롤러(5081)를 거치지 않고 캐시 메모리(5082) 및 메인 메모리(5083) 사이에서 직접적으로 송수신될 수 있다.
도 23은 본 개시의 실시예에 따른 모바일 시스템을 나타내는 블록도이다.
도 23을 참조하면, 모바일 시스템(6000)은 애플리케이션 프로세서(6100), 캐시 메모리(6200), 메인 메모리(6300), 디스플레이(6400) 및 모뎀(6500)을 포함할 수 있다.
애플리케이션 프로세서(6100)는 모바일 시스템(6000)에서 실행이 요구되는 동작을 제어할 수 있다. 애플리케이션 프로세서(6100)는 중앙 처리 장치(CPU)(6114), 디지털 신호 처리기(DSP)(6115), 시스템 메모리(6116), 메모리 컨트롤러(6114), 디스플레이 컨트롤러(6115), 통신 인터페이스(6116) 및 이들을 각각 전기적으로 연결하는 버스를 포함할 수 있다. 일 실시예에 있어서, 애플리케이션 프로세서(6100)는 시스템 온 칩(SoC; System on Chip)으로 구현될 수 있다.
CPU(6114)는 애플리케이션 프로세서(6100)의 연산, 데이터 처리 및 제어를 수행할 수 있다. DSP(6115)는 고속으로 디지털 신호 처리를 수행할 수 있으며, 애플리케이션 프로세서(6000)의 연산, 데이터 처리 중 일부를 수행할 수 있다.
시스템 메모리(6116)는 CPU(6114)가 동작을 수행하는데 요구되는 데이터를 로드(load)할 수 있다. 시스템 메모리(6116)는 SRAM(Static Random Access Memory), DRAM(Dynamic Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectrics Random Access Memory) 및 RRAM(Resistive Random Access Memory) 등으로 구현될 수 있다.
메모리 컨트롤러(6114)는 애플리케이션 프로세서(6100)와 캐시 메모리(6200) 및 메인 메모리(6300) 사이의 인터페이스를 제공할 수 있다. 메인 메모리(6300)는 애플리케이션 프로세서(6100)의 동작 메모리로 사용될 수 있다. 예를 들어, 애플리케이션 프로세서(6100)에서 애플리케이션(application)의 실행에 따른 데이터가 로드될 수 있다. 실시예에 있어서, 메인 메모리(6300)는 불휘발성 메모리일 수 있다.
캐시 메모리(6200)는 도 2 내지 도 19를 참조하여 설명한 메모리 장치 또는 메모리 모듈을 포함할 수 있다. 캐시 메모리(6200)는 사용 환경에 맞도록 동적으로 캐시 정책을 변경할 수 있으며, 이에 따라 모바일 시스템(6000)의 성능 및 메인 메모리(6300)의 신뢰성을 향상시킬 수 있다.
도 23에서, 메모리 컨트롤러(6114)가 메인 메모리(6300) 및 캐시 메모리(6200)에 연결되는 것으로 도시되었으나 이에 제한되는 것은 아니다. 애플리케이션 프로세서(6100)는 캐시 메모리(6200)를 제어하는 별도의 메모리 컨트롤러를 더 포함할 수 있다.
디스플레이 컨트롤러(6225)는 애플리케이션 프로세서(6100)와 디스플레이(6400) 사이의 인터페이스를 제공할 수 있다. 디스플레이(6400)는 터치 스크린, LCD, OLED, AMOLED, LED 등의 평판 디스플레이 또는 플랙서블 디스플레이를 포함할 수 있다.
통신 인터페이스(6116)는 애플리케이션 프로세서(6100)와 모뎀(6500) 사이의 인터페이스를 제공할 수 있다. 모뎀(6500)은 와이파이(WiFi), LTE(Long Term Evolution), 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(IrDA, infrared Data Association), UWB(Ultra Wideband), ZigBee, WFD(Wi-Fi Direct) 및 NFC(Near Field Communication) 등 다양한 통신 프로토콜(protocol) 중 적어도 하나 이상을 이용한 통신을 지원할 수 있다. 애플리케이션 프로세서(6100)는 통신 인터페이스(6116) 및 모뎀(6500)을 통해, 다른 전자 장치 또는 다른 시스템과 통신할 수 있다.
본 개시는 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
1000: 메모리 시스템 100, 100a, 100b, 100c, 100d: 메모리 장치
110: 메모리 셀 어레이 120: 캐시 로직
130, 130a, 130b: 캐시 정책 설정 회로 131: 복수의 관리 정책
132: 캐시 정책 선택기 133: 정책 레지스터
200: 메모리 컨트롤러 3000, 3000a, 4000: 메모리 모듈
5100, 5200, 5300: 컴퓨팅 시스템

Claims (20)

  1. 복수의 캐시라인 및 상기 복수의 캐시라인에 대응하는 복수의 태그를 저장하는 셀 어레이;
    복수의 관리 정책 중 적어도 하나를 선택하고, 선택된 관리 정책에 기초하여 캐시 정책을 설정하는 캐시 정책 설정 회로; 및
    상기 캐시 정책에 기초하여 상기 복수의 캐시라인을 관리하는 캐시 로직을 포함하는 메모리 장치.
  2. 제1 항에 있어서, 상기 캐시 정책 설정 회로는,
    외부 장치로부터 수신되는 커맨드를 기초로 상기 복수의 관리 정책 중 다른 적어도 하나를 선택함으로써, 상기 캐시 정책을 변경하는 것을 특징으로 하는 메모리 장치.
  3. 제1 항에 있어서, 상기 캐시 정책 설정 회로는,
    외부 메모리 컨트롤러로부터 수신되는 캐시 정책 설정 커맨드에 응답하여 상기 캐시 정책을 변경하는 것을 특징으로 하는 메모리 장치.
  4. 제3 항에 있어서, 상기 캐시 정책 설정 커맨드는 독출 커맨드 및 기입 커맨드가 수신되는 입출력 핀과 상이한 입출력 핀을 통해 수신되는 것을 특징으로 하는 메모리 장치.
  5. 제1 항에 있어서, 상기 캐시 정책 설정 회로는,
    외부 메모리 컨트롤러로부터 수신되는 액세스 커맨드를 모니터링하고, 모니터링 결과에 기초하여 상기 캐시 정책을 변경하는 것을 특징으로 하는 메모리 장치.
  6. 제1 항에 있어서, 상기 캐시 정책 설정 회로는,
    상기 복수의 관리 정책 중 적어도 하나를 선택하는 정책 선택기; 및
    상기 선택된 관리 정책에 대한 정보를 저장하는 정책 레지스터를 포함하는 것을 특징으로 하는 메모리 장치.
  7. 제6 항에 있어서, 상기 캐시 정책 설정 회로는,
    상기 메모리 장치로 수신되는 액세스 커맨드 또는 데이터 입출력을 모니터링하여, 상기 메모리 장치의 동작 패턴을 분석하는 모니터 회로를 더 포함하는 메모리 장치.
  8. 제1 항에 있어서, 상기 캐시 정책 설정 회로는,
    미리 설정된 기간 내에 상기 메모리 장치에 대한 기입 요청이 임계값 이상이라고 판단되면, 상기 복수의 캐시라인들 중 클린 캐시라인을 우선적으로 교체 캐시라인으로 선택하는 관리 정책을 선택하는 것을 특징으로 하는 메모리 장치.
  9. 제1 항에 있어서, 상기 복수의 관리 정책은,
    복수의 교체 정책, 복수의 할당 정책 및 복수의 기입 정책 중 적어도 하나를 포함하는 것을 특징으로 하는 메모리 장치.
  10. 제1 항에 있어서, 상기 셀 어레이는,
    복수의 로우를 포함하고, 상기 복수의 로우 각각은 복수의 캐시라인 및 상기 복수의 캐시라인들에 대응하는 복수의 태그들을 저장하는 것을 특징으로 하는 메모리 장치.
  11. 제10 항에 있어서,
    상기 복수의 로우 중 수신되는 인덱스에 기초하여 선택되는 로우에 저장된 상기 복수의 캐시라인들 및 상기 복수의 태그들을 로딩하는 로우 버퍼를 더 포함하고,
    상기 캐시 로직은 상기 로딩된 복수의 태그들 및 수신되는 태그를 기초로 캐시 히트 여부를 판단하는 것을 특징으로 하는 메모리 장치.
  12. 제11 항에 있어서, 상기 캐시 로직은,
    캐시 히트되면, 상기 복수의 태그들 중 상기 수신되는 태그와 매칭된 태그의 웨이를 기초로 상기 복수의 캐시라인들 중 하나를 선택하고,
    캐시 미스되면, 상기 캐시 정책에 기초하여, 상기 복수의 캐시라인들 중 희생 캐시라인을 선택하는 것을 특징으로 하는 메모리 장치.
  13. 제1 항에 있어서, 상기 셀 어레이는,
    다이나믹 랜덤 엑세스 메모리 셀을 포함하는 것을 특징으로 하는 메모리 장치.
  14. 복수의 캐시라인을 저장하는 복수의 제1 메모리 장치;
    상기 복수의 캐시라인에 대응하는 복수의 캐시 태그를 저장하고, 복수의 관리 정책 중 적어도 하나를 캐시 정책으로서 선택하고, 캐시 정책 및 상기 복수의 캐시 태그에 기초하여 상기 복수의 캐시라인을 관리하는 제2 메모리 장치를 포함하는 메모리 모듈.
  15. 제14 항에 있어서, 상기 제2 메모리 장치는,
    수신되는 캐시 설정 커맨드 또는 동작 커맨드에 기초하여 상기 복수의 관리 정책 중 다른 정책을 선택함으로써, 상기 캐시 정책을 변경하는 것을 특징으로 하는 메모리 모듈.
  16. 제14 항에 있어서, 상기 복수의 제1 메모리 장치 및 상기 제2 메모리 장치는 동일한 인덱스를 수신하고, 상기 인덱스에 대응하는 로우의 복수의 캐시라인 및 복수의 캐시 태그를 각각의 내부에 구비되는 로우 버퍼에 로딩하는 것을 특징으로 하는 메모리 모듈.
  17. 제14 항에 있어서, 상기 제2 메모리 장치는,
    상기 복수의 캐시 태그를 저장하는 셀 어레이;
    복수의 관리 정책을 기초로 상기 캐시 정책을 설정하는 캐시 정책 설정 회로; 및
    캐시 히트여부를 판단하고, 상기 캐시 정책을 기초로 상기 복수의 캐시라인 중 하나를 선택하는 캐시 로직을 포함하는 메모리 모듈.
  18. 제17 항에 있어서,
    상기 제2 메모리 장치로부터 선택된 캐시라인의 웨이 정보를 수신하고, 상기 웨이에 대한 로우 어드레스를 상기 복수의 제1 메모리 장치에 제공하는 레지스터를 더 포함하는 메모리 모듈.
  19. 제17 항에 있어서, 상기 제2 메모리 장치는,
    상기 캐시 로직으로부터 수신되는 선택된 캐시라인의 웨이 정보를 기초로 로우 어드레스를 생성하고, 상기 로우 어드레스를 상기 복수의 제1 메모리 장치에 제공하는 어드레스 변환 회로를 더 포함하는 메모리 모듈.
  20. 제14 항에 있어서,
    상기 복수의 제1 메모리 장치 및 상기 제2 메모리 장치 중 적어도 하나는 행열로 배열되는 메모리 셀들을 포함하는 메모리 셀 어레이를 포함하는 메모리 모듈.
KR1020160070997A 2016-06-08 2016-06-08 메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법 KR20170138765A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020160070997A KR20170138765A (ko) 2016-06-08 2016-06-08 메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법
CN201710328968.0A CN107491397A (zh) 2016-06-08 2017-05-11 存储设备、存储模块和存储设备的操作方法
US15/604,944 US20170357600A1 (en) 2016-06-08 2017-05-25 Memory device, memory module, and operating method of memory device
TW106118520A TW201801088A (zh) 2016-06-08 2017-06-05 記憶體裝置、記憶體模組、及記憶體裝置之操作方法
JP2017113223A JP2017220242A (ja) 2016-06-08 2017-06-08 メモリ装置、メモリモジュール、及びメモリ装置の動作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160070997A KR20170138765A (ko) 2016-06-08 2016-06-08 메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20170138765A true KR20170138765A (ko) 2017-12-18

Family

ID=60573969

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160070997A KR20170138765A (ko) 2016-06-08 2016-06-08 메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법

Country Status (5)

Country Link
US (1) US20170357600A1 (ko)
JP (1) JP2017220242A (ko)
KR (1) KR20170138765A (ko)
CN (1) CN107491397A (ko)
TW (1) TW201801088A (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200008710A (ko) * 2018-07-17 2020-01-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US10664394B2 (en) 2018-04-11 2020-05-26 MemRay Corporation Memory controlling device and memory system including the same
WO2020176628A1 (en) * 2019-02-28 2020-09-03 Micron Technology, Inc. Separate read-only cache and write-read cache in a memory sub-system
US10908821B2 (en) 2019-02-28 2021-02-02 Micron Technology, Inc. Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system
US10970222B2 (en) 2019-02-28 2021-04-06 Micron Technology, Inc. Eviction of a cache line based on a modification of a sector of the cache line
US11106609B2 (en) 2019-02-28 2021-08-31 Micron Technology, Inc. Priority scheduling in queues to access cache data in a memory sub-system
WO2022211285A1 (ko) * 2021-03-30 2022-10-06 삼성전자 주식회사 메모리를 관리하기 위한 전자 장치 및 그의 동작 방법
US12007917B2 (en) 2021-07-27 2024-06-11 Micron Technology, Inc. Priority scheduling in queues to access cache data in a memory sub-system

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2572158B (en) 2018-03-20 2020-11-25 Advanced Risc Mach Ltd Random tag setting instruction
US10983922B2 (en) * 2018-05-18 2021-04-20 International Business Machines Corporation Selecting one of multiple cache eviction algorithms to use to evict a track from the cache using a machine learning module
US11436041B2 (en) 2019-10-03 2022-09-06 Micron Technology, Inc. Customized root processes for groups of applications
US11599384B2 (en) 2019-10-03 2023-03-07 Micron Technology, Inc. Customized root processes for individual applications
CN110941569B (zh) * 2019-11-18 2021-01-26 新华三半导体技术有限公司 数据处理方法、装置及处理器芯片
TWI760702B (zh) 2020-03-03 2022-04-11 瑞昱半導體股份有限公司 資料寫入系統與方法
CN113377684B (zh) * 2020-03-09 2024-03-08 瑞昱半导体股份有限公司 数据写入系统与方法
CN113392042B (zh) * 2020-03-12 2024-04-09 伊姆西Ip控股有限责任公司 用于管理缓存的方法、电子设备和计算机程序产品
US11366752B2 (en) 2020-03-19 2022-06-21 Micron Technology, Inc. Address mapping between shared memory modules and cache sets
US11836087B2 (en) 2020-12-23 2023-12-05 Micron Technology, Inc. Per-process re-configurable caches
US11782851B2 (en) * 2021-09-01 2023-10-10 Micron Technology, Inc. Dynamic queue depth adjustment
CN113641626B (zh) * 2021-10-18 2022-02-18 睿思芯科(深圳)技术有限公司 一种sram读写控制方法及行缓冲控制器
US20230214323A1 (en) * 2021-12-30 2023-07-06 Micron Technology, Inc. Selectable cache writing policies for cache management

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10664394B2 (en) 2018-04-11 2020-05-26 MemRay Corporation Memory controlling device and memory system including the same
US11809317B2 (en) 2018-04-11 2023-11-07 MemRay Corporation Memory controlling device and memory system including the same
US11288192B2 (en) 2018-04-11 2022-03-29 MemRay Corporation Memory controlling device and memory system including the same
KR20200008710A (ko) * 2018-07-17 2020-01-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US11288199B2 (en) 2019-02-28 2022-03-29 Micron Technology, Inc. Separate read-only cache and write-read cache in a memory sub-system
US11106609B2 (en) 2019-02-28 2021-08-31 Micron Technology, Inc. Priority scheduling in queues to access cache data in a memory sub-system
US10970222B2 (en) 2019-02-28 2021-04-06 Micron Technology, Inc. Eviction of a cache line based on a modification of a sector of the cache line
US10908821B2 (en) 2019-02-28 2021-02-02 Micron Technology, Inc. Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system
US11675705B2 (en) 2019-02-28 2023-06-13 Micron Technology, Inc. Eviction of a cache line based on a modification of a sector of the cache line
WO2020176628A1 (en) * 2019-02-28 2020-09-03 Micron Technology, Inc. Separate read-only cache and write-read cache in a memory sub-system
US11914520B2 (en) 2019-02-28 2024-02-27 Micron Technology, Inc. Separate read-only cache and write-read cache in a memory sub-system
WO2022211285A1 (ko) * 2021-03-30 2022-10-06 삼성전자 주식회사 메모리를 관리하기 위한 전자 장치 및 그의 동작 방법
US12007917B2 (en) 2021-07-27 2024-06-11 Micron Technology, Inc. Priority scheduling in queues to access cache data in a memory sub-system

Also Published As

Publication number Publication date
JP2017220242A (ja) 2017-12-14
CN107491397A (zh) 2017-12-19
US20170357600A1 (en) 2017-12-14
TW201801088A (zh) 2018-01-01

Similar Documents

Publication Publication Date Title
KR20170138765A (ko) 메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법
US20180341588A1 (en) Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
US9286205B2 (en) Apparatus and method for phase change memory drift management
US9075725B2 (en) Persistent memory for processor main memory
US20130275682A1 (en) Apparatus and method for implementing a multi-level memory hierarchy over common memory channels
US10503647B2 (en) Cache allocation based on quality-of-service information
US10108549B2 (en) Method and apparatus for pre-fetching data in a system having a multi-level system memory
EP3506116A1 (en) Shared memory controller in a data center
WO2017155638A1 (en) Technologies for increasing associativity of a direct-mapped cache using compression
US11934317B2 (en) Memory-aware pre-fetching and cache bypassing systems and methods
JP2021034052A (ja) 異種メモリを有するメモリシステム、これを含むコンピュータシステム及びそのデータ管理方法
CN110597742A (zh) 用于具有持久系统存储器的计算机系统的改进存储模型
US20220230688A1 (en) Memory devices and methods of processing security data thereof
CN108139983B (zh) 用于在多级系统存储器中固定存储器页面的方法和设备
US20190163639A1 (en) Caching bypass mechanism for a multi-level memory
US10402325B2 (en) Memory system
US10180904B2 (en) Cache memory and operation method thereof
US11216326B2 (en) Memory system and operation method thereof
KR20230072283A (ko) 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
US11526448B2 (en) Direct mapped caching scheme for a memory side cache that exhibits associativity in response to blocking from pinning
KR20140016405A (ko) 메모리 시스템 및 그 관리 방법
US20240112719A1 (en) Memory devices, memory systems having the same and operating methods thereof
US20240012755A1 (en) Memory system and operating method thereof
KR20220042673A (ko) 컨트롤러, 컨트롤러의 동작 방법, 및 이를 포함하는 메모리 시스템
KR20140064546A (ko) 반도체 메모리 장치 및 이를 포함하는 컴퓨터 시스템