KR20160111643A - 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치 및 그의 선택적 리프레쉬 방법 - Google Patents

변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치 및 그의 선택적 리프레쉬 방법 Download PDF

Info

Publication number
KR20160111643A
KR20160111643A KR1020150036511A KR20150036511A KR20160111643A KR 20160111643 A KR20160111643 A KR 20160111643A KR 1020150036511 A KR1020150036511 A KR 1020150036511A KR 20150036511 A KR20150036511 A KR 20150036511A KR 20160111643 A KR20160111643 A KR 20160111643A
Authority
KR
South Korea
Prior art keywords
page
refresh
dram
tlb
management unit
Prior art date
Application number
KR1020150036511A
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 KR1020150036511A priority Critical patent/KR20160111643A/ko
Publication of KR20160111643A publication Critical patent/KR20160111643A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40607Refresh operations in memory devices with an internal cache or data buffer
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4082Address Buffers; level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1018Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
    • G11C7/1021Page serial bit line access mode, i.e. using an enabled row address stroke pulse with its associated word line address and a sequence of enabled column address stroke pulses each with its associated bit line address
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/401Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C2211/406Refreshing of dynamic cells
    • G11C2211/4065Low level details of refresh operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Dram (AREA)

Abstract

본 발명은 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치 및 그의 선택적 리프레쉬 방법을 개시한다. 즉, 본 발명은 변환 색인 버퍼의 페이지 거주 정보를 근거로 동적 메모리 장치에서 선택적 리프레쉬 기능을 수행함으로써, 현재 사용하는 페이지만을 선택적으로 리프레쉬하며 DRAM의 파워 및 에너지 소모를 줄일 수 있으며, 이미 프로세서에 탑재된 변환 색인 버퍼를 이용하기 때문에 리프레쉬가 필요한 페이지를 선택하기 위한 추가적인 하드웨어 저장 장소를 필요로 하지 않는다.

Description

변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치 및 그의 선택적 리프레쉬 방법{DRAM device with page residence in translation lookaside buffer and selective refresh method thereof}
본 발명은 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치 및 그의 선택적 리프레쉬 방법에 관한 것으로, 특히 변환 색인 버퍼의 페이지 거주 정보를 근거로 동적 메모리 장치에서 선택적 리프레쉬 기능을 수행하는 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치 및 그의 선택적 리프레쉬 방법에 관한 것이다.
DRAM(Dynamic Random Access Memory)과 같은 동적인 반도체 메모리 장치는 1-트랜지스터와 1-커패시터로 구성되는 메모리 셀 구조의 특성상 리프레쉬(refresh) 동작이 필수적이다.
또한, DRAM 셀 커패시터에 저장된 데이터는 주기적인 리프레쉬 동작을 통하여 유지 및 보존된다.
또한, 동적 메모리 장치에서의 이러한 리프레쉬 동작은 전력 소모를 증가시키며, 리프레쉬 동작이 많을수록 레이턴시(latency) 및 소모되는 파워가 증가하여 데이터 입출력 속도 및 에너지의 효율성을 저하시키는 요인으로 작용하게 된다.
이러한 점을 개선하기 위해서, 종래에도 선택적 리프레쉬 방식을 통해 동적 메모리 사용의 효율성을 향상시키는 구성 및 방법이 있었다.
하지만, 종래의 동적 메모리에서의 선택적 리프레쉬 구성 및 방법은 프로세서의 페이지 사용이 끝났음에도 OS에서 할당 해제(deallocation)할 때까지 리프레쉬를 수행해야하며, 페이지 접근 패턴을 기록하기 위하여 메모리 컨트롤러에 매우 큰 하드웨어 저장 장소가 필요하며, 데이터의 중요도를 판단하기 위하여 프로그래머의 노력이 필요하고 모든 데이터가 중요하다면 페이지의 사용 여부에 상관없이 리프레쉬를 수행해야 하는 등의 이유로 근본적인 리프레쉬 효율의 향상을 기대하기 어려운 점이 있다.
한국등록특허 제10-0642759호 [명칭: 선택적 리프레쉬가 가능한 반도체 메모리 디바이스]
본 발명의 목적은 변환 색인 버퍼의 페이지 거주 정보를 근거로 동적 메모리 장치에서 선택적 리프레쉬 기능을 수행하는 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치 및 그의 선택적 리프레쉬 방법을 제공하는 데 있다.
본 발명의 다른 목적은 변환 색인 버퍼에 위치하더라도 LRU(Least Recently Used)에 위치한 페이지들은 리프레쉬를 수행하지 않는 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치 및 그의 선택적 리프레쉬 방법을 제공하는 데 있다.
본 발명의 실시예에 따른 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치는 TLB(Translation Lookaside Buffer)의 페이지 거주 정보를 이용한 동적 메모리 장치에 있어서, 메모리에 접근하는 코어; 및 상기 코어가 메모리에 접근할 때, 상기 TLB의 페이지 테이블 엔트리 여부를 판단하고, 상기 TLB에 페이지 테이블 엔트리가 있을 때 상기 TLB에 거주하지 않는 페이지에 대해서는 리프레쉬를 수행하지 않으며 상기 TLB에 존재하는 하나 이상의 페이지에 대한 리프레쉬를 결정하며, 상기 TLB 내에서 MRU(Most Recently Used)쪽에 위치하는 페이지들에 대해서는 리프레쉬를 수행하고, LRU(Least Recently Used)쪽에 위치하는 페이지들에 대해서를 리프레쉬를 수행하지 않도록 구성하는 메모리 관리부를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 메모리 관리부는, 미리 설정된 단위 시간 동안의 리프레쉬하지 않는 페이지로의 액세스 횟수를 리프레쉬하는 페이지로의 액세스 횟수를 나눈 값과, 미리 설정된 기준값을 비교하고, 상기 비교 결과, 상기 나눈 값이 상기 기준값보다 클 때, 상기 TLB의 전체 사이즈 중에서 리프레쉬하지 않는 페이지의 비율을 미리 설정된 값만큼 감소시킬 수 있다.
본 발명과 관련된 일 예로서 상기 메모리 관리부는, 미리 설정된 단위 시간 동안의 리프레쉬하지 않는 페이지로의 액세스 횟수를 리프레쉬하는 페이지로의 액세스 횟수를 나눈 값과, 미리 설정된 기준값을 비교하고, 상기 비교 결과, 상기 나눈 값이 상기 기준값보다 작거나 같을 때, 상기 TLB의 전체 사이즈 중에서 리프레쉬하지 않는 페이지의 비율을 미리 설정된 값만큼 증가시킬 수 있다.
본 발명과 관련된 일 예로서 상기 메모리 관리부는, 상기 TLB에 존재하는 하나 이상의 페이지에 대한 리프레쉬 결정에 대한 메시지 및 상기 하나 이상의 페이지에 대응하는 물리 주소를 전달할 수 있다.
본 발명과 관련된 일 예로서 상기 메모리 관리부로부터 전달되는 상기 리프레쉬 결정에 대한 메시지 및 상기 물리 주소를 전달하는 캐쉬 컨트롤러; 및 상기 캐쉬 컨트롤러로부터 전달되는 상기 리프레쉬 결정에 대한 메시지 및 상기 물리 주소를 DRAM(Dynamic Random Access Memory)에 전달하는 메모리 컨트롤러를 더 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 메모리 관리부는, 상기 TLB에서 특정 페이지가 축출될 때, 상기 축출되는 페이지가 클린 페이지인지 여부를 확인하고, 상기 확인 결과, 상기 축출되는 페이지가 클린 페이지일 때, 상기 축출되는 페이지에 대해서 리프레쉬하지 않도록 결정하고, 논리프레슁 결정에 대한 메시지 및 상기 축출되는 페이지에 대응하는 물리 주소를 상기 캐쉬 컨트롤러와 상기 메모리 컨트롤러 통해 상기 DRAM에 전달할 수 있다.
본 발명과 관련된 일 예로서 상기 메모리 관리부는, 상기 TLB에서 특정 페이지가 축출될 때, 상기 축출되는 페이지가 클린 페이지인지 여부를 확인하고, 상기 확인 결과, 상기 축출되는 페이지가 더티 페이지일 때, 상기 축출되는 페이지에 해당하는 모든 캐쉬 라인을 상기 DRAM으로 라이트 백(write back)한 후, 상기 축출되는 페이지에 대해서 리프레쉬하지 않도록 결정하고, 논리프레슁 결정에 대한 메시지 및 상기 축출되는 페이지에 대응하는 물리 주소를 상기 캐쉬 컨트롤러와 상기 메모리 컨트롤러 통해 상기 DRAM에 전달할 수 있다.
본 발명의 실시예에 따른 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치는 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치에 있어서, 미리 설정된 주기를 카운트하는 리프레쉬 카운터; DRAM 페이지의 리프레쉬 동작을 결정하기 위해서, 각 DRAM 로우(row)마다 하나의 DRAM 리프레쉬 플래그를 추가하고, 프로세서로부터 전달된 리프레쉬 동작 여부를 결정하는 메시지인 리프레슁 결정에 대한 메시지 또는 논리프레슁 결정에 대한 메시지를 상기 각각의 DRAM 리프레쉬 플래그에 적용하는 리프레쉬 결정 로직; 리프레쉬 여부를 저장하기 위한 추가 1 비트를 페이지 테이블 엔트리에 추가하고, 리프레쉬 동작 여부에 따라 상기 페이지 테이블 엔트리의 상기 추가 1 비트를 설정하는 메모리 관리부; 및 상기 미리 설정된 주기마다 상기 페이지 테이블 엔트리의 추가 1 비트 값을 확인하고, 상기 확인 결과를 근거로 상기 추가 1 비트에 대응하는 페이지의 프리(free) 여부를 판단하는 코어를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 리프레쉬 결정 로직은, 상기 미리 설정된 주기마다 리프레쉬가 필요한 DRAM 로우 그룹의 DRAM 리프레쉬 플래그를 확인하고, 상기 확인 결과, 적어도 하나의 DRAM 리프레쉬 플래그가 미리 설정된 값으로 설정된 상태일 때 상기 미리 설정된 값으로 설정된 DRAM 로우 그룹에 대하여 리프레쉬를 수행할 수 있다.
본 발명과 관련된 일 예로서 상기 리프레쉬 결정 로직은, 상기 확인 결과, 모든 DRAM 리프레쉬 플래그가 상기 미리 설정된 다른 값으로 설정된 상태일 때, 모든 DRAM 로우 그룹에 대하여 리프레쉬를 수행하지 않도록 제어할 수 있다.
본 발명의 실시예에 따른 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법은 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법에 있어서, 메모리 관리부를 통해, 코어가 메모리에 접근할 때, 상기 TLB의 페이지 테이블 엔트리 여부를 판단하는 단계; 및 상기 판단 결과, 상기 TLB에 페이지 테이블 엔트리가 있을 때, 상기 메모리 관리부를 통해, 상기 TLB에 거주하지 않는 페이지에 대해서는 리프레쉬를 수행하지 않으며 상기 TLB에 존재하는 하나 이상의 페이지에 대한 리프레쉬를 결정하며, 상기 TLB 내에서 MRU쪽에 위치하는 페이지들에 대해서는 리프레쉬를 수행하고, LRU쪽에 위치하는 페이지들에 대해서를 리프레쉬를 수행하지 않도록 구성하는 단계를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 메모리 관리부를 통해, 상기 TLB에 존재하는 하나 이상의 페이지에 대한 리프레쉬 결정에 대한 메시지 및 상기 하나 이상의 페이지에 대응하는 물리 주소를 캐쉬 컨트롤러 및 메모리 컨트롤러를 통해 DRAM에 전달하는 단계; 및 상기 DRAM을 통해, 미리 설정된 주기마다 상기 전달되는 하나 이상의 페이지에 대한 리프레쉬 결정에 대한 메시지 및 물리 주소를 근거로 리프레쉬를 수행하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따른 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법은 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법에 있어서, 리프레쉬 결정 로직을 통해, DRAM 페이지의 리프레쉬 동작을 결정하기 위해서, 각 DRAM 로우(row)마다 하나의 DRAM 리프레쉬 플래그를 추가하는 단계; 상기 리프레쉬 결정 로직을 통해, 프로세서로부터 전달된 리프레쉬 동작 여부를 결정하는 메시지인 리프레슁 결정에 대한 메시지 또는 논리프레슁 결정에 대한 메시지를 상기 각각의 DRAM 리프레쉬 플래그에 적용하는 단계; 메모리 관리부를 통해, 리프레쉬 여부를 저장하기 위한 추가 1 비트를 페이지 테이블 엔트리에 추가하는 단계; 상기 메모리 관리부를 통해, 리프레쉬 동작 여부에 따라 상기 페이지 테이블 엔트리의 상기 추가 1 비트를 설정하는 단계; 코어를 통해, 상기 미리 설정된 주기마다 상기 페이지 테이블 엔트리의 추가 1 비트 값을 확인하는 단계; 상기 코어를 통해, 상기 확인 결과를 근거로 상기 추가 1 비트에 대응하는 페이지의 프리(free) 여부를 판단하는 단계; 상기 리프레쉬 결정 로직을 통해, 미리 설정된 주기마다 리프레쉬가 필요한 DRAM 로우 그룹의 DRAM 리프레쉬 플래그를 확인하는 단계; 상기 확인 결과, 적어도 하나의 DRAM 리프레쉬 플래그가 미리 설정된 값으로 설정된 상태일 때, 상기 리프레쉬 결정 로직을 통해, 상기 미리 설정된 값으로 설정된 DRAM 로우 그룹에 대하여 리프레쉬를 수행하는 단계; 및 상기 확인 결과, 모든 DRAM 리프레쉬 플래그가 상기 미리 설정된 다른 값으로 설정된 상태일 때, 상기 리프레쉬 결정 로직을 통해, 모든 DRAM 로우 그룹에 대하여 리프레쉬를 수행하지 않도록 제어하는 단계를 포함할 수 있다.
본 발명은 변환 색인 버퍼의 페이지 거주 정보를 근거로 동적 메모리 장치에서 선택적 리프레쉬 기능을 수행함으로써, 현재 사용하는 페이지만을 선택적으로 리프레쉬하며 DRAM의 파워 및 에너지 소모를 줄일 수 있으며, 이미 프로세서에 탑재된 변환 색인 버퍼를 이용하기 때문에 리프레쉬가 필요한 페이지를 선택하기 위한 추가적인 하드웨어 저장 장소를 필요로 하지 않는 효과가 있다.
또한, 본 발명은 변환 색인 버퍼에 위치하더라도 LRU(Least Recently Used)에 위치한 페이지들은 리프레쉬를 수행하지 않도록 함으로써, DRAM 파워 및 에너지소모를 더욱 줄일 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치의 구성을 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따른 프로세서의 구성을 나타낸 블록도이다.
도 3은 본 발명의 실시예에 따른 메모리 컨트롤러의 제어에 따른 TLB 내에서의 페이지 추가 또는 축출과 관련한 내용을 나타낸 도이다.
도 4는 본 발명의 실시예에 따른 TLB 내에서의 리프레슁 페이지 및 논리프레슁 페이지의 결정과 관련한 내용을 나타낸 도이다.
도 5는 본 발명의 실시예에 따른 클린 DRAM 페이지에 대한 에너지 절약 효과를 나타낸 도이다.
도 6은 본 발명의 실시예에 따른 더티 DRAM 페이지에 대한 에너지 절약 효과를 나타낸 도이다.
도 7은 본 발명의 실시예에 따른 DRAM의 구성을 나타낸 블록도이다.
도 8은 본 발명의 실시예에 따른 DRAM 리프레쉬 플래그와 관련한 내용을 나타낸 도이다.
도 9는 본 발명의 제 1 실시예에 따른 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법을 나타낸 흐름도이다.
도 10은 본 발명의 제 2 실시예에 따른 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법을 나타낸 흐름도이다.
도 11은 본 발명의 제 3 실시예에 따른 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법을 나타낸 흐름도이다.
본 발명에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서 "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
도 1은 본 발명의 실시예에 따른 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치(100)의 구성을 나타낸 블록도이다.
도 1에 도시한 바와 같이, 동적 메모리 장치(10)는 프로세서(100) 및 DRAM(200)으로 구성된다. 도 1에 도시된 동적 메모리 장치(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 동적 메모리 장치(10)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 동적 메모리 장치(10)가 구현될 수도 있다.
또한, 도 2에 도시한 바와 같이, 상기 프로세서(processor)(100)는 코어(110), 메모리 관리부(120), TLB(변환 색인 버퍼)(130), 캐쉬(140), 캐쉬 컨트롤러(150) 및 메모리 컨트롤러(160)로 구성된다. 도 2에 도시된 프로세서(100)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 2에 도시된 구성 요소보다 많은 구성 요소에 의해 프로세서(100)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 프로세서(100)가 구현될 수도 있다.
상기 코어(또는 코어부, core)(110)는 상기 메모리 관리부(120)를 거쳐 가상 주소(virtual address)를 물리 주소(physical address)로 변환한 후, 상기 캐쉬(140)에 접근한다. 이때, 상기 주소 변환(또는 상기 가상 주소의 물리 주소로의 변환)은 상기 TLB(130)에 등록된 페이지 정보를 이용할 수 있다.
또한, 상기 코어(110)는 상기 메모리 관리부(120), 상기 메모리 컨트롤러(160) 등과 연동한다.
또한, 상기 코어(110)는 미리 설정된 주기마다 상기 메모리 관리부(120)에 의해 페이지 테이블 엔트리(page table entry)에 새로 추가된 1 비트 값을 확인한다.
즉, 상기 코어(110)는 상기 미리 설정된 주기마다 상기 페이지 테이블 엔트리에 새로 추가된 1 비트 값이 '1'인지 또는 '0'인지 여부를 확인한다.
상기 확인 결과, 상기 페이지 테이블 엔트리의 추가 1 비트 값이 상기 미리 설정된 값인 '1'인 경우, 상기 코어(110)는 상기 추가 1 비트에 대응하는 페이지에 대해서 리프레쉬를 수행하지 않으므로 해당 페이지가 유효하지 않는 것으로 판단하고, 해당 페이지를 프리(free)시킨다.
또한, 상기 확인 결과, 상기 페이지 테이블 엔트리의 추가 1 비트 값이 상기 미리 설정된 값인 '0'인 경우, 상기 코어(110)는 상기 추가 1 비트에 대응하는 페이지에 대해서 리프레쉬를 수행하므로 해당 페이지가 유효한 것으로 판단한다.
상기 메모리 관리부(또는 메모리 관리 유닛, Memory Management Unit: MMU)(120)는 상기 DRAM(200)의 하나 이상의 페이지에 대한 리프레쉬 여부를 결정한다.
또한, 상기 메모리 관리부(120)는 상기 코어(110), 상기 TLB(130), 상기 캐쉬 컨트롤러(150) 등과 연동한다.
또한, 상기 코어(110)가 메모리(또는 DRAM(200))에 접근하는 경우, 상기 메모리 관리부(120)는 상기 TLB(130)의 페이지 테이블 엔트리 여부를 판단(또는 확인)한다.
또한, 상기 판단 결과, 상기 TLB(130)에 페이지 테이블 엔트리가 없는 경우 TLB 미스가 발생하고, 도 3에 도시한 바와 같이, 상기 메모리 관리부(120)는 상기 TLB(130)에 새로운 페이지가 등록되도록 제어(310)한다.
또한, 상기 메모리 관리부(120)는 상기 TLB(130)에 새로 등록된 해당 페이지에 대해서, 리프레쉬하도록 결정하고, 리프레슁 결정에 대한 메시지(예를 들어 REF_ACT 메시지) 및 해당 페이지에 대응하는 물리 주소를 상기 캐쉬 컨트롤러(150)와 상기 메모리 컨트롤러(160)를 통해 상기 DRAM(200)에 전달한다.
또한, 상기 판단 결과, 상기 TLB(130)에 페이지 테이블 엔트리가 있는 경우, 상기 메모리 관리부(120)는 상기 TLB(130)에 존재하는 해당 페이지에 대해서 리프레쉬하도록 결정하고, 리프레슁 결정에 대한 메시지(예를 들어 REF_ACT 메시지) 및 해당 페이지에 대응하는 물리 주소를 상기 캐쉬 컨트롤러(150)와 상기 메모리 컨트롤러(160)를 통해 상기 DRAM(200)에 전달한다.
이때, 상기 TLB(130)에 페이지 테이블 엔트리가 있는 경우라 할지라도, 상기 메모리 관리부(120)는 해당 TLB(130) 내에서 MRU(Most Recently Used)쪽에 위치하는 페이지들에 대해서는 리프레쉬를 수행하고 LRU(Least Recently Used)쪽에 위치하는 페이지들에 대해서를 리프레쉬를 수행하지 않도록 구성할 수도 있다.
즉, 상기 TLB(130)의 크기가 일반적으로 매우 크기 때문에, 상기 TLB(130)에 거주하고 있는(또는 기록/저장되고 있는) 모든 페이지에 대하여 리프레쉬를 수행할 필요는 없다. 따라서, 상기 메모리 관리부(120)는 상기 TLB에 거주하지 않는 페이지에 대해서는 리프레쉬를 수행하지 않으며, 상기 TLB(130)에 거주하고 있지만, 리프레쉬가 필요없는 페이지를 선택하여 리프레쉬를 수행하지 않도록 결정(또는 구성)할 수 있다.
또한, 상기 TLB(130)에 거주하고 있지만 리프레쉬를 하지 않아도 되는 페이지를 선택하는 방법에 있어서, 상기 메모리 관리부(120)는 상기 TLB(130)의 LRU 위치에 있는 페이지는 상기 프로세서(100)가 앞으로 사용하지 않을 페이지일 가능성이 높기 때문에, 리프레쉬를 수행하지 않도록 구성한다.
또한, 상기 메모리 관리부(120)는 상기 TLB(130)의 LRU에 근접한(또는 가까운) 페이지들에 대해서도 리프레쉬를 수행하지 않도록 구성할 수도 있다.
즉, 상기 메모리 관리부(120)는 응용 프로그램의 특성을 고려하여 리프레쉬를 수행하는 페이지와 리프레쉬를 수행하지 않는 페이지의 비율을 조절하여, 상기 LRU에 가까운 페이지들(또는 상기 LRU에 가까운 하나 이상의 페이지)은 리프레쉬를 수행하지 않도록 구성한다.
또한, 상기 리프레쉬를 수행하는 페이지와 수행하지 않는 페이지의 비율을 조절(또는 설정/제어/선택)하는 방법에 있어서, 상기 메모리 관리부(120)는 상기 프로세서(100)의 메모리 접근 수와 리프레쉬를 하지 않는 페이지(또는 LRU에 위치하는 페이지)의 접근 수를 비교하여, 상기 리프레쉬를 하지 않는 페이지에 대한 접근 수가 상기 메모리 접근 수보다 상대적으로 적은 경우, 리프레쉬를 하지 않는 페이지의 비율을 높인다. 이와 반대로, 상기 메모리 관리부(120)는 리프레쉬를 하지 않는 페이지에 대한 접근 수가 상기 메모리 접근 수보다 상대적으로 많거나 같은 경우, 리프레쉬를 하는 페이지의 비율을 높인다.
즉, 상기 메모리 관리부(120)는 미리 설정된 단위 시간 동안의 리프레쉬하지 않는 페이지로의 액세스 횟수를 리프레쉬하는 페이지로의 액세스 횟수를 나눈 값과, 미리 설정된 기준값(또는 임계값)(예를 들어 0.01)을 비교한다.
또한, 도 4에 도시한 바와 같이, 클린 페이지(clean page)에 대해서, 상기 비교 결과, 상기 나눈 값이 상기 기준값보다 큰 경우(410), 상기 메모리 관리부(120)는 상기 TLB(130)의 전체 사이즈 중에서 리프레쉬하지 않는 페이지의 비율을 미리 설정된 값(예를 들어 상기 TLB(130)의 전체 사이즈의 0.1%)(420)만큼 감소시키고, 상대적으로 리프레쉬하는 페이지의 비율을 상기 미리 설정된 값만큼 증가시킨다. 상기 리프레쉬하지 않는 페이지의 초기 사이즈는 상기 TLB(130)의 전체 사이즈의 0.2% 정도로 설정되며, 상기 리프레쉬하지 않는 페이지의 사이즈는 상기 TLB(130)의 전체 사이즈의 0.1% 내지 0.9% 범위 내에서 설정할 수 있다.
또한, 도 4에 도시한 바와 같이, 클린 페이지에 대해서, 상기 비교 결과, 상기 나눈 값이 상기 기준값보다 작거나 같은 경우(430), 상기 메모리 관리부(120)는 상기 TLB(130)의 전체 사이즈 중에서 리프레쉬하지 않는 페이지의 비율을 상기 미리 설정된 값만큼 증가시키고(440), 상대적으로 리프레쉬하는 페이지의 비율을 상기 미리 설정된 값만큼 감소시킨다.
이와 같이, 상기 메모리 관리부(120)는 상기 TLB(130)에 존재하는 페이지 중에서 상기 MRU쪽에 위치하는 페이지들에 대해서만 리프레쉬를 수행하도록 해당 MRU쪽에 위치하는 페이지들에 대한 리프레슁 결정에 대한 메시지 및 해당 페이지들에 대응하는 물리 주소들을 상기 캐쉬 컨트롤러(150)와 메모리 컨트롤러(160)를 통해 DRAM(200)에 전달할 수도 있다.
또한, 리프레쉬를 하지 않는 DRAM 페이지는 미리 설정된 기간(예를 들어 64msec)이 지나면, 데이터를 잃어버리기 때문에, 상기 코어(110)가 리프레쉬를 하지 않는 페이지를 요청하는 경우, 상기 메모리 관리부(120)는 SSD와 같은 하위 레벨 저장 장소로부터 해당 요청된 페이지를 읽어오도록 제어한다.
이러한 동작을 통해, DRAM 리프레쉬는 상기 TLB(130)에 거주하는 페이지에 대해서만 수행할 수 있다.
또한, 상기 TLB(130)에서 특정 페이지가 축출되는 경우, 상기 메모리 관리부(120)는 상기 축출되는 페이지가 클린 페이지인지 여부를 확인(또는 판단)한다.
또한, 상기 확인 결과, 상기 축출되는 페이지가 클린 페이지인 경우, 상기 도 3에 도시한 바와 같이, 상기 메모리 관리부(120)는 상기 축출되는 페이지에 대해서 리프레쉬하지 않도록 결정하고, 논리프레슁 결정(또는 낫리프레슁 결정)에 대한 메시지(예를 들어 REF_DEACT 메시지) 및 상기 축출되는 페이지에 대응하는 물리 주소를 상기 캐쉬 컨트롤러(150)와 메모리 컨트롤러(160)를 통해 상기 DRAM(200)에 전달(320)한다.
또한, 상기 확인 결과, 상기 축출되는 페이지가 더티 페이지(dirty page)인 경우(또는 클린 페이지가 아닌 경우), 상기 도 3에 도시한 바와 같이, 상기 메모리 관리부(120)는 상기 축출되는 페이지에 해당하는 모든 캐쉬 라인을 상기 DRAM(200)으로 라이트 백(write back: WB)한 후(330), 상기 DRAM(200)의 페이지를 SSD(Solid State Drive)와 같은 하위 레벨 저장 장소에 라이트 백한다.
이와 같은 과정을 통해, 상기 DRAM(200)의 페이지(또는 상기 DRAM(200)에서 축출되는 페이지)를 클린 상태로 만들 수 있다.
또한, 상기 축출되는 페이지가 더티 상태에서 클린 상태로 변환된 이후, 상기 도 3에 도시한 바와 같이, 상기 메모리 관리부(120)는 상기 축출되는 페이지에 대해서 리프레쉬하지 않도록 결정하고, 논리프레슁 결정에 대한 메시지(예를 들어 REF_DEACT 메시지) 및 상기 축출되는 페이지에 대응하는 물리 주소를 상기 캐쉬 컨트롤러(150)와 메모리 컨트롤러(160)를 통해 상기 DRAM(200)에 전달(340)한다.
이와 같이, 도 5에 도시한 바와 같이, 클린 DRAM 페이지에 대해서, 상기 TLB(130)에 등록된 페이지에 대해서만 리프레쉬를 수행하고 해당 TLB(130)에 등록되지 않은 페이지에 대해서는 리프레쉬를 수행하지 않도록 구성하여, 상기 TLB(130)에서 축출되는 해당 페이지에 대해서는 추후 리프레쉬를 수행하지 않음에 따른 에너지 절약 효과(510)를 얻을 수 있다.
또한, 상기 도 5에 도시한 바와 같이, 상기 TLB(130) 내에서 상기 MRU에 근접한 페이지에 대해서만 리프레쉬를 수행하고 상기 LRU에 근접한 페이지에 대해서는 리프레쉬를 수행하지 않도록 구성하여, 보다 나은 에너지 절약 효과(520)를 얻을 수 있다.
또한, 상기 도 5에 도시한 바와 같이, 기존의 OS-Based의 경우에 있어서는, 계속하여 미리 설정된 주기마다 리프레쉬를 수행함에 따라, 에너지 절약 효과(530)를 얻을 수 없으며, 이상적인(ideal) 경우에 있어서는 리프레쉬를 수행한 이후에는 더이상 리프레쉬를 수행하지 않도록 구성(540)하는 것이다.
또한, 도 6에 도시한 바와 같이, 더티 DRAM 페이지에 대해서, 상기 TLB(130) 내에서 상기 MRU에 근접한 페이지에 대해서만 리프레쉬를 수행하고 상기 LRU에 근접한 페이지에 대해서는 리프레쉬를 수행하지 않도록 구성하여, 에너지 절약 효과(610)를 얻을 수 있다.
또한, 상기 메모리 관리부(120)는 페이지 폴트를 처리하기 위해서 리프레쉬 여부를 저장하기 위한 추가 1 비트를 페이지 테이블 엔트리에 추가한다.
즉, 상기 메모리 관리부(120)는 페이지 폴트 처리를 위해서, 리프레쉬 여부를 나타내는 추가 1 비트를 상기 페이지 테이블 엔트리에 추가한다.
또한, 상기 메모리 관리부(120)는 상기 프로세서(100)로부터 전달되는 리프레쉬 동작 여부에 따라 상기 페이지 테이블 엔트리의 상기 추가 1 비트를 설정(또는 적용/세트)한다.
즉, 상기 메모리 관리부(120)는 상기 리프레쉬 동작 여부를 근거로 상기 추가 1 비트에 리프레쉬가 필요 없는 미리 설정된 값인 '1'을 적용하거나 리프레쉬가 필요한 미리 설정된 값인 '0'을 적용한다.
상기 변환 색인 버퍼(변환 색인 버퍼부, Translation Lookaside Buffer: TLB, 이하 'TLB'라 함)(130)는 상기 메모리 관리부(120)와 연동한다.
또한, 상기 TLB(130)는 페이지 정보를 저장한다.
즉, 상기 프로세서(100)가 자주 사용하는 페이지는 상기 TLB(130)에 거주(또는 임시 저장)한다. 또한, 상기 프로세서(100)가 사용하지 않는 페이지는 상기 TLB(130)에 거주하지 않는다.
또한, 상기 프로세서(100)가 사용한 후 더 이상 사용하지 않는 페이지는 상기 TLB(130) 내의 LRU 위치로 이동하다가 상기 메모리 관리부(120)의 제어에 의해 결국 축출된다.
또한, 상기 TLB(130)는 상기 메모리 관리부(120)의 제어에 의해 페이지 정보에 대한 저장 기능(또는 등록 기능), 축출(eviction) 기능 등을 수행한다.
즉, 상기 TLB(130)는 상기 메모리 관리부(120)의 제어에 의해 새로운 페이지를 등록한다.
또한, 상기 TLB(130)는 상기 메모리 관리부(120)의 제어에 의해 기존 등록된 하나 이상의 페이지를 축출한다.
이와 같이, 상기 TLB(130)에서 축출될 페이지는 리프레쉬를 수행하지 않는다.
상기 캐쉬(또는 캐쉬부, caches)(140)는 페이지를 임시 저장한다.
또한, 상기 캐쉬(140)는 상기 캐쉬 컨트롤러(150) 등과 연동한다.
또한, 상기 캐쉬(140)에 대한 접근은 상기 코어(110)에서 상기 메모리 관리부(120) 및 상기 캐쉬 컨트롤러(150)를 통해 수행될 수 있다.
상기 캐쉬 컨트롤러(캐쉬 제어부, cache controller)(150)는 상기 코어(110), 상기 메모리 관리부(120), 상기 캐쉬(140), 상기 메모리 컨트롤러(160) 등과 연동한다.
또한, 상기 캐쉬 컨트롤러(150)는 상기 메모리 관리부(120)로부터 전달되는 리프레슁 결정에 대한 메시지(예를 들어 REF_ACT 메시지) 및 해당 페이지에 대응하는 물리 주소를 상기 메모리 컨트롤러(160)에 전달한다.
또한, 상기 캐쉬 컨트롤러(150)는 상기 메모리 관리부(120)로부터 전달되는 논리프레슁 결정에 대한 메시지(예를 들어 REF_DEACT 메시지) 및 상기 축출되는 페이지에 대응하는 물리 주소를 상기 메모리 컨트롤러(160)에 전달한다.
상기 메모리 컨트롤러(메모리 컨트롤러부, memory controller)(160)는 상기 캐쉬 컨트롤러(150) 등과 연동한다.
또한, 상기 메모리 컨트롤러(160)는 상기 캐쉬 컨트롤러(150)로부터 전달되는 리프레슁 결정에 대한 메시지(예를 들어 REF_ACT 메시지) 및 해당 페이지에 대응하는 물리 주소를 상기 DRAM(200)에 전달한다.
또한, 상기 메모리 컨트롤러(160)는 상기 캐쉬 컨트롤러(150)로부터 전달되는 논리프레슁 결정에 대한 메시지(예를 들어 REF_DEACT 메시지) 및 상기 축출되는 페이지에 대응하는 물리 주소를 상기 DRAM(200)에 전달한다.
상기 DRAM(200)은 미리 설정된 주기(예를 들어 7.8㎲)마다 상기 프로세서(100)로부터 전달되는 리프레슁 결정에 대한 메시지(예를 들어 REF_ACT 메시지) 및 해당 페이지에 대응하는 물리 주소를 근거로 해당 페이지에 대한 리프레쉬를 수행한다.
또한, 상기 DRAM(200)은 상기 주기마다 상기 프로세서(100)로부터 전달되는 논리프레슁 결정에 대한 메시지(예를 들어 REF_DEACT 메시지) 및 해당 페이지에 대응하는 물리 주소를 근거로 해당 페이지에 대한 리프레쉬를 수행하지 않는다(또는 해당 페이지에 대한 리프레쉬를 생략한다/건너뛴다).
또한, 상기 프로세서(100)에 의해 축출되는 페이지가 더티 페이지인 경우, 상기 DRAM(200)은 상기 프로세서(100)와의 연동에 의해 해당 축출되는 페이지에 해당하는 모든 캐쉬 라인에 대한 라이트 백 기능을 수행한다. 이후, 상기 DRAM(200)은 해당 DRAM(200)의 페이지를 SSD와 같은 하위 레벨 저장 장소에 라이트 백한다.
이와 같이, 상기 TLB(130)의 페이지 거주 정보를 이용하여 상기 메모리 관리부(120)가 결정한 리프레쉬 수행 여부는 상기 DRAM(200) 또는 상기 메모리 컨트롤러(160) 내부와 같은 추가적인 저장 장소에 기록할 수 있으며, 상기 저장된 정보를 통해 상기 DRAM(200)은 선택적인 리프레쉬를 수행한다.
또한, 본 발명의 실시예에서는, 상기 DRAM(200) 칩 내에서 리프레쉬의 여부를 결정하는 정보를 저장하고, 상기 저장된 정보를 통해 선택적으로 리프레쉬를 수행하는 방법을 예로 들어 설명한다.
도 7에 도시한 바와 같이, 상기 DRAM(200)은 리프레쉬 카운터(210) 및 리프레쉬 결정 로직(220)으로 구성된다. 도 7에 도시된 DRAM(200)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 7에 도시된 구성 요소보다 많은 구성 요소에 의해 DRAM(200)이 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 DRAM(200)이 구현될 수도 있다.
상기 리프레쉬 카운터(refresh counter)(210)는 미리 설정된 주기(예를 들어 7.8㎲)를 카운트한다.
또한, 상기 리프레쉬 카운터(210)는 상기 카운트되는 값(또는 카운팅 값)을 상기 리프레쉬 결정 로직(220)에 제공한다.
상기 리프레쉬 결정 로직(refresh decision logic)(220)은 상기 DRAM(200)의 전반적인 제어 기능을 수행한다.
또한, 도 8에 도시된 바와 같이, 상기 리프레쉬 결정 로직(220)은 DRAM 페이지의 리프레쉬 동작을 결정하기 위해서, 각 DRAM 로우(row)마다 하나의 비트 셀(또는 DRAM 리프레쉬 플래그)(810)을 추가한다.
또한, 상기 도 8에 도시된 바와 같이, 상기 리프레쉬 결정 로직(220)은 상기 프로세서(100)로부터 전달된 리프레쉬 동작 여부를 결정하는 메시지인 리프레슁 결정에 대한 메시지(예를 들어 REF_ACT 메시지)(821) 또는 논리프레슁 결정에 대한 메시지(예를 들어 REF_DEACT 메시지)(822)를 상기 각각의 DRAM 리프레쉬 플래그에 적용(또는 반영)한다.
또한, 상기 리프레쉬 결정 로직(220)은 리프레쉬 카운터(210)를 근거로 미리 설정된 주기(예를 들어 7.8㎲)마다 리프레쉬를 수행한다.
즉, 상기 리프레쉬 결정 로직(220)은 상기 미리 설정된 주기마다 리프레쉬가 필요한 DRAM 로우 그룹의 DRAM 리프레쉬 플래그를 확인한다.
또한, 상기 확인 결과, 적어도 하나의 DRAM 리프레쉬 플래그가 상기 미리 설정된 값인 '1'로 설정되어 있는 경우, 상기 리프레쉬 결정 로직(220)은 해당 DRAM 로우 그룹에 대하여 리프레쉬를 수행한다.
또한, 상기 확인 결과, 모든 DRAM 리프레쉬 플래그가 상기 미리 설정된 값인 '0'으로 설정되어 있는 경우, 상기 리프레쉬 결정 로직(220)은 모든 DRAM 로우 그룹에 대하여 리프레쉬를 수행하지 않는다.
이와 같이, 변환 색인 버퍼의 페이지 거주 정보를 근거로 동적 메모리 장치에서 선택적 리프레쉬 기능을 수행할 수 있다.
또한, 이와 같이, 변환 색인 버퍼에 위치하더라도 LRU(Least Recently Used)에 위치한 페이지들은 리프레쉬를 수행하지 않도록 할 수 있다.
이하에서는, 본 발명에 따른 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법을 도 1 내지 도 10을 참조하여 상세히 설명한다.
도 9는 본 발명의 제 1 실시예에 따른 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법을 나타낸 흐름도이다.
먼저, 코어(110)가 메모리(또는 DRAM(200))에 접근하는 경우, 메모리 관리부(120)는 TLB(130)의 페이지 테이블 엔트리 여부를 판단(또는 확인)한다.
일 예로, 상기 코어(110)가 메모리에 접근할 때, 상기 메모리 관리부(120)는 상기 TLB(130)의 페이지 테이블 엔트리 여부를 판단한다(S910).
이후, 상기 판단 결과, 상기 TLB(130)에 페이지 테이블 엔트리가 없는 경우, 상기 메모리 관리부(120)는 상기 페이지 테이블 엔트리의 추가 1 비트 값을 확인한다.
일 예로, 상기 TLB(130)에 페이지 테이블 엔트리가 없을 때, 상기 메모리 관리부(120)는 리프레쉬 여부를 저장한 상기 페이지 테이블 엔트리의 추가 1 비트 값이 미리 설정된 0(또는 페이지 유효에 대응하는 값)인지 1(또는 페이지 프리에 대응하는 값)인지 여부를 확인한다(S920).
상기 확인 결과, 상기 페이지 테이블 엔트리의 추가 1 비트 값이 상기 페이지 유효를 나타내는 미리 설정된 0인 경우, 상기 메모리 관리부(120)는 상기 TLB(130)에 새로운 페이지가 등록되도록 제어한다.
일 예로, 상기 페이지 테이블 엔트리의 추가 1 비트 값이 상기 페이지 유효를 나타내는 미리 설정된 0일 때, 상기 메모리 관리부(120)는 상기 TLB(130)에 새로운 제 1 페이지가 등록되도록 제어한다(S930).
또한, 상기 확인 결과, 상기 페이지 테이블 엔트리의 추가 1 비트 값이 상기 페이지 프리를 나타내는 미리 설정된 1인 경우, 상기 메모리 관리부(120)는 페이지 폴트 처리 후, 상기 TLB(130)에 새로운 페이지가 등록되도록 제어한다.
일 예로, 상기 페이지 테이블 엔트리의 추가 1 비트 값이 상기 페이지 프리를 나타내는 미리 설정된 1일 때, 상기 메모리 관리부(120)는 페이지 폴트 처리 과정을 수행한 후, 상기 TLB(130)에 새로운 제 1 페이지가 등록되도록 제어한다(S940).
이후, 상기 메모리 관리부(120)는 상기 TLB(130)에 새로 등록된 해당 페이지에 대해서, 리프레쉬하도록 결정하고, 리프레슁 결정에 대한 메시지(예를 들어 REF_ACT 메시지) 및 해당 페이지에 대응하는 물리 주소를 캐쉬 컨트롤러(150)와 메모리 컨트롤러(160)를 통해 DRAM(200)에 전달한다.
일 예로, 상기 메모리 관리부(120)는 상기 TLB(130)에 새로 등록된 제 1 페이지에 대해서, 리프레쉬 수행을 위한 리프레슁 결정에 대한 메시지(예를 들어 REF_ACT 메시지) 및 제 1 페이지에 대응하는 물리 주소를 상기 캐쉬 컨트롤러(150)와 메모리 컨트롤러(160)를 통해 상기 DRAM(200)에 전달한다.
또한, 상기 DRAM(200)에서는 미리 설정된 주기(예를 들어 7.8㎲)마다 상기 캐쉬 컨트롤러(150)와 메모리 컨트롤러(160)를 통해 상기 메모리 관리부(120)로부터 전달되는 리프레슁 결정에 대한 메시지(예를 들어 REF_ACT 메시지) 및 해당 페이지에 대응하는 물리 주소를 근거로 리프레쉬를 수행한다(S950).
또한, 상기 판단 결과, 상기 TLB(130)에 페이지 테이블 엔트리가 있는 경우, 상기 메모리 관리부(120)는 상기 TLB(130)에 존재하는 해당 페이지에 대해서 리프레쉬하도록 결정하고, 리프레슁 결정에 대한 메시지(예를 들어 REF_ACT 메시지) 및 해당 페이지에 대응하는 물리 주소를 캐쉬 컨트롤러(150)와 메모리 컨트롤러(160)를 통해 상기 DRAM(200)에 전달한다.
이때, 상기 TLB(130)에 페이지 테이블 엔트리가 있는 경우라 할지라도, 상기 메모리 관리부(120)는 해당 TLB(130) 내에서 MRU쪽에 위치하는 페이지들에 대해서는 리프레쉬를 수행하고 LRU쪽에 위치하는 페이지들에 대해서를 리프레쉬를 수행하지 않도록 구성할 수도 있다.
또한, 리프레쉬를 수행하는 페이지와 수행하지 않는 페이지의 비율을 조절하는 방법으로, 상기 메모리 관리부(120)는 미리 설정된 단위 시간 동안의 리프레쉬하지 않는 페이지로의 액세스 횟수를 리프레쉬하는 페이지로의 액세스 횟수를 나눈 값과, 미리 설정된 기준값(또는 임계값)을 비교한다. 이후, 상기 비교 결과, 상기 나눈 값이 상기 기준값보다 큰 경우, 상기 메모리 관리부(120)는 상기 TLB(130)의 전체 사이즈 중에서 리프레쉬하지 않는 페이지의 비율을 미리 설정된 값(예를 들어 상기 TLB(130)의 전체 사이즈의 0.1%)만큼 감소시킨다. 또한, 상기 비교 결과, 상기 나눈 값이 상기 기준값보다 작거나 같은 경우, 상기 메모리 관리부(120)는 상기 TLB(130)의 전체 사이즈 중에서 리프레쉬하지 않는 페이지의 비율을 상기 미리 설정된 값만큼 증가시킨다.
이와 같이, 상기 메모리 관리부(120)는 상기 TLB(130)에 존재하는 페이지 중에서 상기 MRU쪽에 위치하는 페이지들에 대해서만 리프레쉬를 수행하도록 해당 MRU쪽에 위치하는 페이지들에 대한 리프레슁 결정에 대한 메시지 및 해당 페이지들에 대응하는 물리 주소들을 상기 캐쉬 컨트롤러(150)와 메모리 컨트롤러(160)를 통해 상기 DRAM(200)에 전달할 수도 있다.
또한, 상기 DRAM(200)에서는 미리 설정된 주기(예를 들어 7.8㎲)마다 상기 캐쉬 컨트롤러(150)와 메모리 컨트롤러(160)를 통해 상기 메모리 관리부(120)로부터 전달되는 리프레슁 결정에 대한 메시지(예를 들어 REF_ACT 메시지) 및 해당 페이지들에 대응하는 물리 주소들을 근거로 리프레쉬를 수행한다(S960).
이후, 상기 TLB(130)에서 특정 페이지가 축출되는 경우, 상기 메모리 관리부(120)는 상기 축출되는 페이지가 클린 페이지인지 여부를 확인(또는 판단)한다.
일 예로, 상기 TLB(130)에서 제 2 페이지가 축출되는 경우, 상기 메모리 관리부(120)는 상기 축출되는 제 2 페이지가 클린 페이지인지 여부를 확인한다(S970).
이후, 상기 확인 결과, 상기 축출되는 페이지가 클린 페이지인 경우, 상기 메모리 관리부(120)는 상기 축출되는 페이지에 대해서 리프레쉬하지 않도록 결정하고, 논리프레슁 결정에 대한 메시지(예를 들어 REF_DEACT 메시지) 및 상기 축출되는 페이지에 대응하는 물리 주소를 상기 캐쉬 컨트롤러(150)와 메모리 컨트롤러(160)를 통해 상기 DRAM(200)에 전달한다.
일 예로, 상기 축출되는 제 2 페이지가 클린 페이지일 때, 상기 메모리 관리부(120)는 상기 축출되는 제 2 페이지에 대해서, 리프레쉬 미수행을 위한 논리프레슁 결정에 대한 메시지(예를 들어 REF_DEACT 메시지) 및 상기 제 2 페이지에 대응하는 물리 주소를 상기 캐쉬 컨트롤러(150)와 메모리 컨트롤러(160)를 통해 상기 DRAM(200)에 전달한다.
또한, 상기 DRAM(200)에서는 미리 설정된 주기(예를 들어 7.8㎲)마다 상기 캐쉬 컨트롤러(150)와 메모리 컨트롤러(160)를 통해 상기 메모리 관리부(120)로부터 전달되는 논리프레슁 결정에 대한 메시지(예를 들어 REF_DEACT 메시지) 및 상기 축출되는 페이지에 대응하는 물리 주소를 근거로 해당 페이지에 대한 리프레쉬를 수행하지 않는다(또는 해당 제 2 페이지에 대한 리프레쉬를 생략한다/건너뛴다)(S980).
또한, 상기 확인 결과, 상기 축출되는 페이지가 더티 페이지인 경우(또는 클린 페이지가 아닌 경우), 상기 메모리 관리부(120)는 상기 축출되는 페이지에 해당하는 모든 캐쉬 라인을 상기 DRAM(200)으로 라이트 백(write back: WB)한 후, 상기 DRAM(200)의 페이지를 SSD와 같은 하위 레벨 저장 장소에 라이트 백한다.
이와 같은 과정을 통해, 상기 DRAM(200)의 페이지(또는 상기 DRAM(200)에서 축출되는 페이지)를 클린 상태로 만들 수 있다.
일 예로, 상기 축출되는 제 2 페이지가 더티 페이지일 때, 상기 메모리 관리부(120)는 상기 축출되는 제 2 페이지에 해당하는 모든 캐쉬 라인을 상기 DRAM(200)으로 라이트 백한다. 또한, 상기 DRAM(200)은 해당 제 2 페이지를 SSD에 라이트 백한다(S990).
이후, 상기 메모리 관리부(120)는 상기 축출되는 페이지에 대해서 리프레쉬하지 않도록 결정하고, 논리프레슁 결정에 대한 메시지(예를 들어 REF_DEACT 메시지) 및 상기 축출되는 페이지에 대응하는 물리 주소를 상기 캐쉬 컨트롤러(150)와 메모리 컨트롤러(160)를 통해 상기 DRAM(200)에 전달한다.
또한, 상기 DRAM(200)에서는 상기 미리 설정된 주기(예를 들어 7.8㎲)마다 상기 캐쉬 컨트롤러(150)와 메모리 컨트롤러(160)를 통해 상기 메모리 관리부(120)로부터 전달되는 논리프레슁 결정에 대한 메시지(예를 들어 REF_DEACT 메시지) 및 상기 축출되는 페이지에 대응하는 물리 주소를 근거로 해당 페이지에 대한 리프레쉬를 수행하지 않는다(또는 해당 페이지에 대한 리프레쉬를 생략한다/건너뛴다)(S1000).
도 10은 본 발명의 제 2 실시예에 따른 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법을 나타낸 흐름도이다.
먼저, 리프레쉬 결정 로직(220)은 DRAM 페이지의 리프레쉬 동작을 결정하기 위해서, 각 DRAM 로우(row)마다 하나의 비트 셀(또는 DRAM 리프레쉬 플래그)을 추가한다.
일 예로, 도 8에 도시된 바와 같이, 상기 리프레쉬 결정 로직(220)은 각 DRAM 로우마다 하나의 DRAM 리프레쉬 플래그(810)를 각각 추가한다(S1010).
이후, 상기 리프레쉬 결정 로직(220)은 상기 프로세서(100)로부터 전달된 리프레쉬 동작 여부를 결정하는 메시지인 리프레슁 결정에 대한 메시지(예를 들어 REF_ACT 메시지) 또는 논리프레슁 결정에 대한 메시지(예를 들어 REF_DEACT 메시지)를 상기 각각의 DRAM 리프레쉬 플래그에 적용(또는 반영)한다.
일 예로, 상기 도 8에 도시된 바와 같이, 상기 리프레쉬 결정 로직(220)은 상기 리프레슁 결정에 대한 메시지를 근거로 리프레쉬가 필요한 DRAM 리프레쉬 플래그에 미리 설정된 값인 '1'을 적용(또는 세팅)(821)하고, 상기 논리프레슁 결정에 대한 메시지를 근거로 리프레쉬가 필요없는 DRAM 리프레쉬 플래그에 미리 설정된 값인 '0'을 적용(822)한다(S1020).
이후, 메모리 관리부(120)는 페이지 폴트를 처리하기 위해서 리프레쉬 여부를 저장하기 위한 추가 1 비트를 페이지 테이블 엔트리에 추가한다.
즉, 상기 메모리 관리부(120)는 페이지 폴트 처리를 위해서, 리프레쉬 여부를 나타내는 추가 1 비트를 상기 페이지 테이블 엔트리에 추가한다.
일 예로, 상기 메모리 관리부(120)는 상기 페이지 테이블 엔트리에 리프레쉬 여부를 저장하기 위한 1 비트를 추가한다(S1030).
이후, 상기 메모리 관리부(120)는 상기 프로세서(100)로부터 전달되는 리프레쉬 동작 여부에 따라 상기 페이지 테이블 엔트리의 상기 추가 1 비트를 설정(또는 적용/세트)한다.
즉, 상기 메모리 관리부(120)는 상기 리프레쉬 동작 여부를 근거로 상기 추가 1 비트에 리프레쉬가 필요 없는 미리 설정된 값인 '1'을 적용하거나 리프레쉬가 필요한 미리 설정된 값인 '0'을 적용한다.
일 예로, 상기 메모리 관리부(120)는 상기 리프레쉬 동작 여부를 근거로 상기 추가 1 비트에 리프레쉬가 필요 없는 미리 설정된 값인 '1'을 적용하거나 리프레쉬가 필요한 '0'을 적용한다(S1040).
이후, 도 11에 도시된 바와 같이, 코어(110)는 미리 설정된 주기마다 상기 페이지 테이블 엔트리의 추가 1 비트 값을 확인한다.
일 예로, 상기 코어(110)는 상기 미리 설정된 주기마다 상기 페이지 테이블 엔트리의 추가 1 비트 값이 '1'인지 또는 '0'인지 여부를 확인한다.
상기 확인 결과, 상기 페이지 테이블 엔트리의 추가 1 비트 값이 상기 미리 설정된 값인 '1'인 경우, 상기 코어(110)는 상기 추가 1 비트에 대응하는 페이지에 대해서 리프레쉬를 수행하지 않으므로 해당 페이지가 유효하지 않는 것으로 판단하고, 해당 페이지를 프리(free)시킨다.
일 예로, 상기 페이지 테이블 엔트리의 추가 1 비트 값이 상기 미리 설정된 값인 '1'일 때, 상기 코어(110)는 상기 추가 1 비트에 대응하는 해당 페이지를 프리시킨다.
또한, 상기 확인 결과, 상기 페이지 테이블 엔트리의 추가 1 비트 값이 상기 미리 설정된 값인 '0'인 경우, 상기 코어(110)는 상기 추가 1 비트에 대응하는 페이지에 대해서 리프레쉬를 수행하므로 해당 페이지가 유효한 것으로 판단한다.
일 예로, 상기 페이지 테이블 엔트리의 추가 1 비트 값이 상기 미리 설정된 값인 '0'일 때, 상기 코어(110)는 상기 추가 1 비트에 대응하는 해당 페이지에 대해서 리프레쉬가 필요한 것으로 판단한다.
이후, 상기 리프레쉬 결정 로직(220)은 리프레쉬 카운터(210)를 근거로 미리 설정된 주기(예를 들어 7.8㎲)마다 리프레쉬를 수행한다.
즉, 상기 리프레쉬 결정 로직(220)은 상기 미리 설정된 주기마다 리프레쉬가 필요한 DRAM 로우 그룹의 DRAM 리프레쉬 플래그를 확인한다.
일 예로, 상기 리프레쉬 결정 로직(220)은 상기 주기마다 상기 도 8에 도시된 리프레쉬가 필요한 DRAM 로우 그룹의 DRAM 리프레쉬 플래그(821)를 확인한다(S1050).
이후, 상기 확인 결과, 적어도 하나의 DRAM 리프레쉬 플래그가 상기 미리 설정된 값인 '1'로 설정되어 있는 경우, 상기 리프레쉬 결정 로직(220)은 해당 DRAM 로우 그룹에 대하여 리프레쉬를 수행한다.
즉, 상기 확인 결과, 적어도 하나의 DRAM 리프레쉬 플래그가 상기 미리 설정된 값인 '1'로 설정되어 있는 경우, 상기 리프레쉬 결정 로직(220)은 상기 미리 설정된 값인 '1'로 설정된 해당 DRAM 로우 그룹에 대하여 리프레쉬를 수행한다.
일 예로, 상기 도 8에 도시된 해당 DRAM 리프레쉬 플래그(821)가 상기 미리 설정된 값인 '1'로 설정된 상태일 때, 상기 리프레쉬 결정 로직(220)은 상기 도 8에 도시된 해당 DRAM 리프레쉬 플래그(821)에 대한 DRAM 로우 그룹에 대하여 리프레쉬를 수행하고, 상기 미리 설정된 값인 '0'으로 설정된 해당 DRAM 리프레쉬 플래그(822)에 대한 DRAM 로우 그룹에 대해서는 리프레쉬를 수행하지 않는다(S1060).
또한, 상기 확인 결과, 모든 DRAM 리프레쉬 플래그가 상기 미리 설정된 값인 '0'으로 설정되어 있는 경우, 상기 리프레쉬 결정 로직(220)은 모든 DRAM 로우 그룹에 대하여 리프레쉬를 수행하지 않는다.
일 예로, 모든 DRAM 리프레쉬 플래그가 상기 미리 설정된 값인 '0'으로 설정된 상태일 때, 상기 리프레쉬 결정 로직(220)은 모든 DRAM 로우 그룹에 대하여 리프레쉬를 수행하지 않는다(S1070).
본 발명의 실시예는 앞서 설명된 바와 같이, 변환 색인 버퍼의 페이지 거주 정보를 근거로 동적 메모리 장치에서 선택적 리프레쉬 기능을 수행하여, 현재 사용하는 페이지만을 선택적으로 리프레쉬하며 DRAM의 파워 및 에너지 소모를 줄일 수 있으며, 이미 프로세서에 탑재된 변환 색인 버퍼를 이용하기 때문에 리프레쉬가 필요한 페이지를 선택하기 위한 추가적인 하드웨어 저장 장소를 필요로 하지 않는다.
또한, 본 발명의 실시예는 앞서 설명된 바와 같이, 변환 색인 버퍼에 위치하더라도 LRU(Least Recently Used)에 위치한 페이지들은 리프레쉬를 수행하지 않도록하여, DRAM 파워 및 에너지소모를 더욱 줄일 수 있다.
전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명은 변환 색인 버퍼의 페이지 거주 정보를 근거로 동적 메모리 장치에서 선택적 리프레쉬 기능을 수행함으로써, 현재 사용하는 페이지만을 선택적으로 리프레쉬하며 DRAM의 파워 및 에너지 소모를 줄일 수 있으며, 이미 프로세서에 탑재된 변환 색인 버퍼를 이용하기 때문에 리프레쉬가 필요한 페이지를 선택하기 위한 추가적인 하드웨어 저장 장소를 필요로 하지 않는 것으로, 동적 메모리 장치 분야, 메모리 분야 등에서 광범위하게 이용될 수 있다.
10: 동적 메모리 장치 100: 프로세서
200: DRAM 110: 코어
120: 메모리 관리부 130: TLB
140: 캐쉬 150: 캐쉬 컨트롤러
160: 메모리 컨트롤러 210: 리프레쉬 카운터
220: 리프레쉬 결정 로직

Claims (13)

  1. TLB(Translation Lookaside Buffer)의 페이지 거주 정보를 이용한 동적 메모리 장치에 있어서,
    메모리에 접근하는 코어; 및
    상기 코어가 메모리에 접근할 때, 상기 TLB의 페이지 테이블 엔트리 여부를 판단하고, 상기 TLB에 페이지 테이블 엔트리가 있을 때 상기 TLB에 거주하지 않는 페이지에 대해서는 리프레쉬를 수행하지 않으며 상기 TLB에 존재하는 하나 이상의 페이지에 대한 리프레쉬를 결정하며, 상기 TLB 내에서 MRU(Most Recently Used)쪽에 위치하는 페이지들에 대해서는 리프레쉬를 수행하고, LRU(Least Recently Used)쪽에 위치하는 페이지들에 대해서를 리프레쉬를 수행하지 않도록 구성하는 메모리 관리부를 포함하는 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치.
  2. 제 1 항에 있어서,
    상기 메모리 관리부는,
    미리 설정된 단위 시간 동안의 리프레쉬하지 않는 페이지로의 액세스 횟수를 리프레쉬하는 페이지로의 액세스 횟수를 나눈 값과, 미리 설정된 기준값을 비교하고, 상기 비교 결과, 상기 나눈 값이 상기 기준값보다 클 때, 상기 TLB의 전체 사이즈 중에서 리프레쉬하지 않는 페이지의 비율을 미리 설정된 값만큼 감소시키는 것을 특징으로 하는 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치.
  3. 제 1 항에 있어서,
    상기 메모리 관리부는,
    미리 설정된 단위 시간 동안의 리프레쉬하지 않는 페이지로의 액세스 횟수를 리프레쉬하는 페이지로의 액세스 횟수를 나눈 값과, 미리 설정된 기준값을 비교하고, 상기 비교 결과, 상기 나눈 값이 상기 기준값보다 작거나 같을 때, 상기 TLB의 전체 사이즈 중에서 리프레쉬하지 않는 페이지의 비율을 미리 설정된 값만큼 증가시키는 것을 특징으로 하는 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치.
  4. 제 1 항에 있어서,
    상기 메모리 관리부는,
    상기 TLB에 존재하는 하나 이상의 페이지에 대한 리프레쉬 결정에 대한 메시지 및 상기 하나 이상의 페이지에 대응하는 물리 주소를 전달하는 것을 특징으로 하는 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치.
  5. 제 4 항에 있어서,
    상기 메모리 관리부로부터 전달되는 상기 리프레쉬 결정에 대한 메시지 및 상기 물리 주소를 전달하는 캐쉬 컨트롤러; 및
    상기 캐쉬 컨트롤러로부터 전달되는 상기 리프레쉬 결정에 대한 메시지 및 상기 물리 주소를 DRAM(Dynamic Random Access Memory)에 전달하는 메모리 컨트롤러를 더 포함하는 것을 특징으로 하는 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치.
  6. 제 5 항에 있어서,
    상기 메모리 관리부는,
    상기 TLB에서 특정 페이지가 축출될 때, 상기 축출되는 페이지가 클린 페이지인지 여부를 확인하고, 상기 확인 결과, 상기 축출되는 페이지가 클린 페이지일 때, 상기 축출되는 페이지에 대해서 리프레쉬하지 않도록 결정하고, 논리프레슁 결정에 대한 메시지 및 상기 축출되는 페이지에 대응하는 물리 주소를 상기 캐쉬 컨트롤러와 상기 메모리 컨트롤러 통해 상기 DRAM에 전달하는 것을 특징으로 하는 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치.
  7. 제 5 항에 있어서,
    상기 메모리 관리부는,
    상기 TLB에서 특정 페이지가 축출될 때, 상기 축출되는 페이지가 클린 페이지인지 여부를 확인하고, 상기 확인 결과, 상기 축출되는 페이지가 더티 페이지일 때, 상기 축출되는 페이지에 해당하는 모든 캐쉬 라인을 상기 DRAM으로 라이트 백(write back)한 후, 상기 축출되는 페이지에 대해서 리프레쉬하지 않도록 결정하고, 논리프레슁 결정에 대한 메시지 및 상기 축출되는 페이지에 대응하는 물리 주소를 상기 캐쉬 컨트롤러와 상기 메모리 컨트롤러 통해 상기 DRAM에 전달하는 것을 특징으로 하는 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치.
  8. TLB의 페이지 거주 정보를 이용한 동적 메모리 장치에 있어서,
    미리 설정된 주기를 카운트하는 리프레쉬 카운터;
    DRAM 페이지의 리프레쉬 동작을 결정하기 위해서, 각 DRAM 로우(row)마다 하나의 DRAM 리프레쉬 플래그를 추가하고, 프로세서로부터 전달된 리프레쉬 동작 여부를 결정하는 메시지인 리프레슁 결정에 대한 메시지 또는 논리프레슁 결정에 대한 메시지를 상기 각각의 DRAM 리프레쉬 플래그에 적용하는 리프레쉬 결정 로직;
    리프레쉬 여부를 저장하기 위한 추가 1 비트를 페이지 테이블 엔트리에 추가하고, 리프레쉬 동작 여부에 따라 상기 페이지 테이블 엔트리의 상기 추가 1 비트를 설정하는 메모리 관리부; 및
    상기 미리 설정된 주기마다 상기 페이지 테이블 엔트리의 추가 1 비트 값을 확인하고, 상기 확인 결과를 근거로 상기 추가 1 비트에 대응하는 페이지의 프리(free) 여부를 판단하는 코어를 포함하는 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치.
  9. 제 8 항에 있어서,
    상기 리프레쉬 결정 로직은,
    상기 미리 설정된 주기마다 리프레쉬가 필요한 DRAM 로우 그룹의 DRAM 리프레쉬 플래그를 확인하고, 상기 확인 결과, 적어도 하나의 DRAM 리프레쉬 플래그가 미리 설정된 값으로 설정된 상태일 때 상기 미리 설정된 값으로 설정된 DRAM 로우 그룹에 대하여 리프레쉬를 수행하는 것을 특징으로 하는 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치.
  10. 제 9 항에 있어서,
    상기 리프레쉬 결정 로직은,
    상기 확인 결과, 모든 DRAM 리프레쉬 플래그가 상기 미리 설정된 다른 값으로 설정된 상태일 때, 모든 DRAM 로우 그룹에 대하여 리프레쉬를 수행하지 않도록 제어하는 것을 특징으로 하는 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치.
  11. TLB의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법에 있어서,
    메모리 관리부를 통해, 코어가 메모리에 접근할 때, 상기 TLB의 페이지 테이블 엔트리 여부를 판단하는 단계; 및
    상기 판단 결과, 상기 TLB에 페이지 테이블 엔트리가 있을 때, 상기 메모리 관리부를 통해, 상기 TLB에 거주하지 않는 페이지에 대해서는 리프레쉬를 수행하지 않으며 상기 TLB에 존재하는 하나 이상의 페이지에 대한 리프레쉬를 결정하며, 상기 TLB 내에서 MRU쪽에 위치하는 페이지들에 대해서는 리프레쉬를 수행하고, LRU쪽에 위치하는 페이지들에 대해서를 리프레쉬를 수행하지 않도록 구성하는 단계를 포함하는 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법.
  12. 제 11 항에 있어서,
    상기 메모리 관리부를 통해, 상기 TLB에 존재하는 하나 이상의 페이지에 대한 리프레쉬 결정에 대한 메시지 및 상기 하나 이상의 페이지에 대응하는 물리 주소를 캐쉬 컨트롤러 및 메모리 컨트롤러를 통해 DRAM에 전달하는 단계; 및
    상기 DRAM을 통해, 미리 설정된 주기마다 상기 전달되는 하나 이상의 페이지에 대한 리프레쉬 결정에 대한 메시지 및 물리 주소를 근거로 리프레쉬를 수행하는 단계를 더 포함하는 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법.
  13. TLB의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법에 있어서,
    리프레쉬 결정 로직을 통해, DRAM 페이지의 리프레쉬 동작을 결정하기 위해서, 각 DRAM 로우(row)마다 하나의 DRAM 리프레쉬 플래그를 추가하는 단계;
    상기 리프레쉬 결정 로직을 통해, 프로세서로부터 전달된 리프레쉬 동작 여부를 결정하는 메시지인 리프레슁 결정에 대한 메시지 또는 논리프레슁 결정에 대한 메시지를 상기 각각의 DRAM 리프레쉬 플래그에 적용하는 단계;
    메모리 관리부를 통해, 리프레쉬 여부를 저장하기 위한 추가 1 비트를 페이지 테이블 엔트리에 추가하는 단계;
    상기 메모리 관리부를 통해, 리프레쉬 동작 여부에 따라 상기 페이지 테이블 엔트리의 상기 추가 1 비트를 설정하는 단계;
    코어를 통해, 상기 미리 설정된 주기마다 상기 페이지 테이블 엔트리의 추가 1 비트 값을 확인하는 단계;
    상기 코어를 통해, 상기 확인 결과를 근거로 상기 추가 1 비트에 대응하는 페이지의 프리(free) 여부를 판단하는 단계;
    상기 리프레쉬 결정 로직을 통해, 미리 설정된 주기마다 리프레쉬가 필요한 DRAM 로우 그룹의 DRAM 리프레쉬 플래그를 확인하는 단계;
    상기 확인 결과, 적어도 하나의 DRAM 리프레쉬 플래그가 미리 설정된 값으로 설정된 상태일 때, 상기 리프레쉬 결정 로직을 통해, 상기 미리 설정된 값으로 설정된 DRAM 로우 그룹에 대하여 리프레쉬를 수행하는 단계; 및
    상기 확인 결과, 모든 DRAM 리프레쉬 플래그가 상기 미리 설정된 다른 값으로 설정된 상태일 때, 상기 리프레쉬 결정 로직을 통해, 모든 DRAM 로우 그룹에 대하여 리프레쉬를 수행하지 않도록 제어하는 단계를 포함하는 TLB의 페이지 거주 정보를 이용한 동적 메모리 장치의 선택적 리프레쉬 방법.
KR1020150036511A 2015-03-17 2015-03-17 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치 및 그의 선택적 리프레쉬 방법 KR20160111643A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150036511A KR20160111643A (ko) 2015-03-17 2015-03-17 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치 및 그의 선택적 리프레쉬 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150036511A KR20160111643A (ko) 2015-03-17 2015-03-17 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치 및 그의 선택적 리프레쉬 방법

Publications (1)

Publication Number Publication Date
KR20160111643A true KR20160111643A (ko) 2016-09-27

Family

ID=57101068

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150036511A KR20160111643A (ko) 2015-03-17 2015-03-17 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치 및 그의 선택적 리프레쉬 방법

Country Status (1)

Country Link
KR (1) KR20160111643A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100642759B1 (ko) 2005-01-28 2006-11-10 삼성전자주식회사 선택적 리프레쉬가 가능한 반도체 메모리 디바이스

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100642759B1 (ko) 2005-01-28 2006-11-10 삼성전자주식회사 선택적 리프레쉬가 가능한 반도체 메모리 디바이스

Similar Documents

Publication Publication Date Title
US11636038B2 (en) Method and apparatus for controlling cache line storage in cache memory
US9158685B2 (en) System cache with cache hint control
US8010764B2 (en) Method and system for decreasing power consumption in memory arrays having usage-driven power management
US9098417B2 (en) Partitioning caches for sub-entities in computing devices
RU2435237C1 (ru) Система и способ снижения энергопотребления динамического озу посредством использования указателей действительных данных
EP0470734A1 (en) Cache memory management system
US10031854B2 (en) Memory system
US9086882B2 (en) DRAM energy use optimization using application information
US20030028711A1 (en) Monitoring in-use memory areas for power conservation
US9990293B2 (en) Energy-efficient dynamic dram cache sizing via selective refresh of a cache in a dram
US9043570B2 (en) System cache with quota-based control
US10108553B2 (en) Memory management method and device and memory controller
Pourshirazi et al. Refree: A refresh-free hybrid DRAM/PCM main memory system
US9396122B2 (en) Cache allocation scheme optimized for browsing applications
US8977817B2 (en) System cache with fine grain power management
US9128856B2 (en) Selective cache fills in response to write misses
US10503658B2 (en) Page migration with varying granularity
US9639467B2 (en) Environment-aware cache flushing mechanism
EP3506112A1 (en) Multi-level system memory configurations to operate higher priority users out of a faster memory level
US10713165B2 (en) Adaptive computer cache architecture
Zhang et al. DualStack: A high efficient dynamic page scheduling scheme in hybrid main memory
KR20160111643A (ko) 변환 색인 버퍼의 페이지 거주 정보를 이용한 동적 메모리 장치 및 그의 선택적 리프레쉬 방법
Hameed et al. Rethinking on-chip DRAM cache for simultaneous performance and energy optimization
Pourshirazi Improving Energy Efficiency and Lifetime of Emerging Memory Systems
Manohar et al. Towards optimizing refresh energy in embedded-DRAM caches using private blocks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application