KR100626770B1 - 메모리 페이지 종료 기법의 동적 조절 방법 - Google Patents

메모리 페이지 종료 기법의 동적 조절 방법 Download PDF

Info

Publication number
KR100626770B1
KR100626770B1 KR1020047010521A KR20047010521A KR100626770B1 KR 100626770 B1 KR100626770 B1 KR 100626770B1 KR 1020047010521 A KR1020047010521 A KR 1020047010521A KR 20047010521 A KR20047010521 A KR 20047010521A KR 100626770 B1 KR100626770 B1 KR 100626770B1
Authority
KR
South Korea
Prior art keywords
memory
page
bank
access
termination
Prior art date
Application number
KR1020047010521A
Other languages
English (en)
Other versions
KR20040064742A (ko
Inventor
옵허 디. 크한
제프리 알. 윌콕스
Original Assignee
인텔 코오퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Publication of KR20040064742A publication Critical patent/KR20040064742A/ko
Application granted granted Critical
Publication of KR100626770B1 publication Critical patent/KR100626770B1/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
    • 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/0215Addressing or allocation; Relocation with look ahead addressing means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
  • Storage Device Security (AREA)

Abstract

하나 이상의 메모리 뱅크로 분할된 다양한 유형의 DRAM 메모리 컴퓨터 시스템을 위한 메모리 페이지 종료 기법을 동적으로 조절하기 위한 방법 및 이를 구현하기 위한 회로가 개시된다. 일반적으로, 본 발명에 의한 방법은 메모리 뱅크로의 메모리 액세스들을 모니터링하는 단계; 및 상기 메모리 액세스들의 집약도 특성에 기초하여 메모리 뱅크에 대하여 메모리 페이지 종료 기법을 동적으로 조절함으로써 메모리 지연을 감소시키는 단계를 포함한다. 일실시예에서, 컴퓨터 시스템 프로세서로부터의 메모리 요청에 응답하여, DRAM 메모리로의 액세스가 페이지를 기반으로 해서 이루어진다. 각 메모리 페이지가 액세스될 때, 페이지-미스, 페이지-히트 또는 페이지-공백 상태가 생성된다. 메모리로 액세스하는 어플리케이션(들)의 개별 집약적 특성을 일반적으로 반영하는 페이지 액세스 상태에 따라서, 페이지-종료 세트 포인트가 조정된다. 페이지에 해당하는 타이밍 카운트가 페이지-종료 세트 포인트를 초과하면, 메모리 페이지는 종료한다.
페이지-미스, 페이지-히트, 페이지-공백, 트립 포인트

Description

메모리 페이지 종료 기법의 동적 조절 방법{METHOD FOR DYNAMICALLY ADJUSTING A MEMORY PAGE CLOSING POLICY}
본 발명은 일반적으로 컴퓨터 메모리(예를 들어 DRAM)의 이용 및 동작에 관한 것이며, 더욱 구체적으로는 DRAM 페이지 종료 기법을 동적으로 조절하기 위한 방법 및 이러한 방법을 수행하기 위한 메모리 제어기 및 회로에 관한 것이다.
메모리 제어기 회로들은 다양한 컴퓨터 시스템(예를 들어, 데스크톱 개인용 컴퓨터, 노트북 컴퓨터, PDA 등)에서 사용되어 컴퓨터 시스템의 프로세서가 메모리 칩들에 액세스하는 것을 용이하게 한다. 이러한 메모리 칩들은 일반적으로 컴퓨터 시스템의 메인 메모리를 포함하며, 이는 통상적으로 복수의 DRAM(Dynamic Random Access Memory) 칩을 포함하는데, 여기에는 예를 들어 SDRAM(Synchronous DRAM) 칩, EDO(Extended Data Out) DRAM 칩, Rambus
Figure 112004029493566-pct00001
DRAM 칩, DDR(Double Data Rate) SDRAM 칩 등이 포함될 수 있다. 메모리 제어기는 이러한 DRAM 칩 중 하나 이상에 대한 접속을 위한 메모리 인터페이스 및 시스템 프로세서(들)에 접속하기 위한 시스템 인터페이스를 제공한다. 메모리 제어기는 이러한 인터페이스들을 이용함으로써, 적절한 주소 및 제어 신호들을 이용하여 프로세서와 DRAM 칩들 사이에서 데이터를 라우팅(routing)한다.
일반적으로, 오늘날의 컴퓨터에서 사용되는 DRAM 칩들은 그룹들로 조직되어 하나 이상의 "메모리 모듈" 상에 장착된다. 오늘날 사용되는 대부분의 일반적인 메모리 모듈들은 DIMM(Dual In-line Memory Modules)으로서 알려져 있으며, 이는 바닥에 168 핀의 양면 커넥터(connector)를 갖는 작은 회로 보드(복수의 DRAM 칩들 및 하나 이상의 제어기 칩들이 장착됨)를 포함한다. (그 대신, 상기 DRAM 칩들은 그 안에 내장형 제어기 회로를 가질 수도 있다.) 다른 일반적인 메모리 모듈들은 144 핀의 SODIMM(Small Outline DIMMs; 랩톱 컴퓨터들에 사용됨) 및 SIMM(Single In-line Memory Modules)는 물론, 다양한 다른 유형의 구성들을 포함한다.
통상적으로, 오늘날의 DIMM은 32, 64, 128, 256 및 512 메가바이트(Mb)의 메모리를 저장할 수 있으며, 이는 DIMM 상의 메모리 칩들의 전체 메모리 용량에 대응된다. 각 DRAM 칩 상의 메모리는 메모리 "셀"들의 복수의 열 및 행을 포함하는 메모리 어레이(array) 내에 논리적으로 구성된다. 각 메모리 셀은 특정한 주소를 가지며, 단일 비트의 데이터를 저장한다. 이러한 메모리 어레이는 하나 이상의 메모리 "뱅크"로 논리적으로 분할(partition)된다. 많은 DRAM 칩들에는 4개의 메모리 뱅크가 존재한다. 페이지 모드, EDO 및 SDRAM 칩들과 같은 오늘날의 DIMM 칩들에서는, 메모리가 "페이지" 기준으로 액세스되며, 여기서 어떤 뱅크 내의 소정의 열에 대한 메모리 셀들은 한 메모리 "페이지"를 포함한다. 메모리 페이지들은 통상적으로 512, 1024(1K), 2048(2K), 4098(4K), 8196(8K), 16392(16K) 또는 32,768(32K) 비트의 데이터를 포함한다.
DRAM을 액세스하는 것은 일반적으로 메모리 제어기에 의해 이하의 방식으로 수행되는 다단계 프로세스이다. 우선, 요청된 데이터 또는 명령어들에 대응하는 페이지 또는 페이지들이 식별된다. 일단 페이지 또는 페이지들이 알려지면, 페이지(들)에 대응하는 적합한 뱅크가 판정된다. 그 후 메모리 제어기는 적합한 뱅크(들) 및 적합한 페이지(들)을 "개시(open)"한다. 일반적으로, 요청된 데이터의 특정한 페이지(들)은 최초에 페이지 히트(page hit), 페이지 공백(page empty), 또는 페이지 미스(page miss)의 세 가지 상태 중 하나에 있게 된다. 상태가 페이지 히트인 경우는, 원하는 페이지가 그 페이지가 저장된 메모리 뱅크에 대응하는 감지 증폭기들(앰프들)의 뱅크에 이미 로딩되어 있는 경우이다. 페이지 공백 상태인 경우, 원하는 페이지에 대응되는 데이터는 그것이 액세스될 수 있기 전에 "활성화(activate)" 명령을 통해 적합한 감지 증폭기 뱅크에 로딩될 필요가 있을 것이다. 뱅크의 상태가 페이지 미스인 경우는, 지정된 뱅크가 요청된 데이터와 상이한 데이터의 페이지를 포함하는 경우이다. 이러한 기존 페이지는 우선 "종료(close)"될 것이 요구되는 바, 여기에는 "프리차지(precharge)" 명령을 이용하여 그 페이지를 메모리 어레이에 다시 기록하는 것이 포함되며, 그 후 적합한 페이지가 활성화 명령을 이용하여 감지 증폭기 뱅크에 로딩될 필요가 있을 것이다.
이상의 세 가지 상태들은 액세스 지연(access latency)에 대해 영향을 미친다. 페이지 히트 상태는 페이지가 추가적인 지연 없이 액세스될 준비가 되어 있음을 의미한다. 페이지 공백 상태는 활성화 명령을 필요로 하는 반면, 페이지 미스는 프리차지 및 활성화 명령들 모두를 필요로 하는 바, 이들 각각은 하나 이상의 클록 사이클을 취할 수 있다. 각각의 액세스 유형에 대한 실제의 페널티(즉, 딜레 이)는 메모리 기술, 메모리 조직 및 아키텍처(architecture), 그리고 각 메모리 기술에 있어 특정한 그 밖의 규칙(rule)들에 따라 좌우된다. 그러나 일반적인 규칙은 페이지 히트가 가장 빠르고, 페이지 공백이 이보다 느리며, 페이지 미스가 가장 느리다는 것이다.
통상적인 기존의 페이지 관리 기법들은 "페이지 개시(page-open)" 및 "페이지 종료(page-close)" 및 타이머 메커니즘들을 포함한다. 페이지 개시 기법 하에서는, 페이지들이 페이지 미스로 인하여 종료될 필요가 있을 때까지{또는 이들을 리프레쉬해야 할 필요가 있는 경우와 같은, 어떠한 다른 메모리 아키텍처 규칙으로 인해 종료될 필요가 있을 때까지} 개시된 상태로 존재한다. 페이지 종료 기법 하에서, 페이지들은 현재의 액세스가 완료된 후에 가능한 한 빨리 "프리차지" 명령으로 종료된다. 타이머 메커니즘들을 이용하는 경우, "유휴(idle)" 타이머들을 이용하여 일반적으로는 메모리, 특별하게는 특정 뱅크가 N 클록 사이클동안 유휴 상태였는지를 판정한다. 액세스 없이 N 클록 사이클이 만료되면, 페이지(들)이 종료된다. 카운터들은 뱅크 단위로 있을 수 있으며, 이러한 경우 그 뱅크의 페이지들만이 타이머의 만료시에 종료될 것이다. 다른 구현예들에 있어서는, 타이머들이 열 단위로, 또는 시스템 메모리 전체에 대하여 존재할 수 있으며, 이러한 경우 열 또는 시스템 메모리 전체에 있는 모든 페이지들이 타이머 만료시에 종료될 수 있다.
본 발명의 이상의 특징 및 여러 장점들은 이하의 상세한 설명 및 관련 첨부 도면들을 참조함으로써 더욱 용이하게 이해될 수 있을 것이다.
도 1은 본 발명의 동적으로 조절되는 페이지 종료 기법 메커니즘이 구현될 수 있는 본 발명의 실시예에 대응되는 아키텍처를 도시한 개략도.
도 2는 본 발명의 동적으로 조절되는 페이지 종료 기법 메커니즘의 일 실시예에 따라 언제 메모리 페이지가 종료될지를 판정하는 데 사용되는 타이머 트립 포인트를 조절하는 경우에 메모리 제어기가 사용하는 로직을 도시한 흐름도.
도 3은 도 2의 실시예에 따라 현재 타이머 값과 타이머 트립 포인트에 기초하여 페이지를 종료하기 위해 메모리 제어기가 사용하는 로직을 도시한 흐름도.
도 4는 본 발명의 구현에 적합한 예시 컴퓨터 시스템의 개략도.
이제, DRAM 페이지 종료 기법(DRAM page closing policy)을 동적으로 조정하기 위한 방법과, 이를 수행하기 위한 메모리 제어 회로에 대한 실시예들을 기술한다. 이하의 상세한 설명에는, 본 발명의 실시예들에 대한 완전한 이해를 돕기 위해 다수의 특정된 세부항목들이 제공될 것이다. 그러나, 관련 기술 분야에서 통상의 지식을 가진 자라면, 위 특정된 세부항목들 중 하나 이상이 없이도 본 발명이 구현될 수 있으며, 또한 다른 방법들, 구성요소들, 재료 등을 이용해서도 구현될 수 있다는 것을 인식할 것이다. 한편, 다른 예들에서는, 본 발명의 모습이 가려지는 것을 피하기 위해, 널리 알려진 구조, 재료, 또는 동작 방법을 상세히 나타내거나 기술하지 않았다.
본 명세서에서, "일 실시예" 또는 "실시예"라고 인용하는 것은, 실시예와 관련되어 기술되는 구체적인 특징, 구조 또는 특성이 본 발명의 적어도 하나 이상의 실시예에 포함되어 있다는 것을 의미한다. 따라서, "일 실시예에 있어서" 또는 "실시예에 있어서"라는 구절이 본 명세서의 도처에 나타나는 것이, 반드시 동일한 실시예를 가리키는 것은 아니다. 더욱이, 구체적인 특징, 구조, 또는 특성이 하나 이상의 실시예들에 적절한 방법으로 결합될 수 있다.
통상적인 컴퓨터 시스템들에서는, 페이지-종료 기법이 메모리 제어기에 의해 대체로 정적인 방식으로 제어된다. 예를 들어, 페이지 종료 기법 방식이 부트-업(boot-up) 동안에 설정될 수 있는데, 이 경우에 특정 뱅크(bank) 또는 모든 뱅크 중 하나가 페이지(들)를 종료하기 위해 페이지 미스 시에 프리차지되고, 그렇지 않으면 뱅크들을 그대로 둔다. 다른 경우들에서는, 페이지 종료 기법이 소정의 전형적인 메모리 액세스 패턴(pattern)에 근거하여 설정된다. 종종, 세션(즉, 부트-업부터 컴퓨터가 종료되거나 리셋될 때까지)이 실행되는 동안 내내, 똑같은 페이지-종료 관리 방식이 유지된다. 이러한 정적인 접근 방식에 따르는 문제점은, 동일한 시스템에서 동작되는 서로 다른 어플리케이션들이 완전히 상이한 메모리 액세스 문제들을 나타낸다는 것이다. 어떤 어플리케이션은, 최상의 성능을 위해서 "페이지-종료" 기법을 요구하는 세미-랜덤(semi-random) 액세스 패턴을 보여줄 수 있는 반면에, 다른 것들은 최상의 성능을 위해서 "페이지-개시" 또는 "타이머" 기법을 요구하는 상당한 집약도(즉, 메모리의 동일한 부분에 반복적으로 액세스)을 보여줄 수 있다. 심지어, 동일한 어플리케이션이라도, 그 실행의 다양한 단계들에서 서로 다른 액세스 패턴 동작을 보여줄 수 있다.
본 발명은, 페이지-관리 기법이 실제적인 액세스 패턴들에 기초하여 동적으로 조정될 수 있도록 할 수 있는 메커니즘(mechanism)을 제공함으로써, 위와 같은 문제점을 해결한다. 결과적으로, 각각의 어플리케이션 (또는, 동일한 메모리 뱅크를 액세스하는 어플리케이션들의 집합)에 적절한 기법을 제공하기 위해, 페이지-종료 기법이 각각의 어플리케이션 (또는, 상기 어플리케이션들의 집합)에 대응하여 조정된다. 이하에서 좀더 상세히 설명될 일 실시예에서는, 페이지-종료 기법이, 어플리케이션에 의한 메모리 사용내역(usage)의 모든 일련 기록(aggregated historical record)을 이용함으로써 예측된 미래의 메모리 액세스 동작에 상응하도록 설정된다.
본 발명의 전형적인 구현예에 해당하는 구조(10)가 도 1에 개시되어 있는데, 이러한 구조는 프로세서(12), 메모리 제어기 허브(MCH)(14), DIMM(18)에 포함된 DRAM 칩(16) 사이에서의 다양한 상호 작용을 상세히 보여주고 있다. 상술한 바와 같이, 본 발명은 메모리 제어기{이 예에서는, MCH(14)}의 페이지-종료 기법이 메모리 뱅크 단위로 프로세서(10) 상에서 동작하는 하나 이상의 어플리케이션들의 수행 동안에 일어나는 실제적인 메모리 액세스 패턴들에 대처하기 위해서 동적으로 조정되는 메커니즘을 제공한다.
페이지-종료 기법을 조정하는 것의 이점을 보다 명확하게 평가하고 그것의 동작을 이해하기 위해서, 이제부터는 구조(10)에 따르는 메모리 액세스의 전형적인 순차 작업(sequence)을 기술한다. 위 순차 작업은, 컴퓨터 시스템의 프로세서{예컨대, 프로세서(10)} 상에서 실행되는 어플리케이션{또는, 대부분의 경우에 위 어플리케이션에 대해 프록시(proxy)로서 동작하는 운영 시스템 모듈}에 의해 일 바이트 이상의 데이터 또는 지시들(instructions)에 대한 요청이 이루어지는 때에 시작된다. 전형적으로, 메모리 요청은 원하는 데이터 또는 지시들이 시스템 메모리 내의 어느 곳에 저장되어 있는지에 해당하는 메모리 주소를 지시할 것이다. 예를 들면, 서브루틴(subroutine)을 읽어 오기 위한 요청은 그 서브루틴 지시들이 저장되어 있는 메모리 셀들에 대응하는 시작과 종료 주소를 식별할 것이다. 도시된 실시예에서는, 이러한 요청이 시스템 버스(22)를 통해 프로세서(12)와 연결된 "노스 브리지" 칩셋("North Bridge" chipset)(20)으로 보내진다. 시스템 버스(22)는, 프로세서와 노스 브리지 칩셋(20)에 의해 제공되는 다양한 구성요소들을 포함하는 다른 시스템 구성요소들 사이에서 데이터와 요청들이 전송되도록 할 수 있는 다수의 시스템 데이터 버스 라인(line), 시스템 주소 버스 라인, 및 시스템 제어 라인을 제공한다.
노스 브리지 칩세트(North Bridge chipset)들은 인텔 프로세서를 채택한 컴퓨터와 같이 PCI(Peripheral Component Interface) 장치들과 주변장치(Peripheral )들을 채용한 컴퓨터 시스템에 통상적으로 사용된다. 일반적으로, 노스 브리지 칩세트는 복수의 칩들 또는 하나의 칩에 구현될 수 있는 복수의 기능들을 제공한다. 보통 이 기능들은 MCH(14)와 같은 메모리 제어기에 의해 제공되는 메모리 인터페이스 기능들을 포함한다. 선택 사항으로, MCH(14)(또는 유사한 메모리 제어기)는 시스템 버스(도시하지 않음)를 통해 프로세서(12)에 직접 연결될 수 있다.
메모리 액세스 요청을 수신하면, MCH(14)는 메모리가 저장된 특정 메모리 뱅크를 판단하고, 적절한 주소 신호들(24)과 제어 신호들(26)을 생성하여 상기 뱅크 의 메모리 액세스를 수행한다. 상술한 바와 같이, 각 DRAM 칩은 하나 이상의 뱅크들에 논리 분할된 일련의 셀들을 포함하고 있다. 이는 도 1에 메모리 어레이(28)와 뱅크들(0,1,2 및 3)로 표시되어 있다. 각 메모리 셀들은 그들이 존재하는 행과 열 주소로 식별된다. 일반적으로, 데이터와 명령들은 바이트 또는 데이터 워드로 저장되는데, 여기서 각 바이트는 인접한 8개의 셀들을 포함하고, 각 워드는 같은 행에서 인접해 있는 M개의 메모리 셀들에 저장된 데이터를 포함한다(여기서, M은 워드의 길이를 의미한다). 보통, 특정 워드의 액세스를 위해, 그 워드의 첫번째 비트의 주소가 주어지는데, 워드의 길이를 알려주는 정보가 선택적으로 더 주어질 수도 있다. 따라서, 특정 세트의 바이트 또는 워드(예: 연관된 데이터 또는 명령들)의 액세스를 위해서, 이들 데이터 또는 명령들의 주소 범위가 MCH(14)에 제공될 것이다. 그러나, 대다수의 요즘 DRAM에서는 주어진 주소 범위 내의 데이터/명령들만 액세스하기보다는, 이 주소 범위를 둘러싼 (필요한만큼의) 하나 이상의 페이지들에 대응하는 데이터들이 이 페이지들을 개시함으로써 검색된다. 설명의 편의를 위해, 뱅크(0)에 저장된 하나의 메모리 페이지(30)가 본 예에서는 액세스된다고 가정하자.
메모리 페이지의 개시 과정은 메모리 제어기로 하여금 활성화("ACTIVATE") 명령을 {DIMM(18)을 통해} DRAM 칩(16)으로 전송하게 하는 과정을 포함하는데, 여기서 적절한 세트의 제어 신호들(26)이 주소 신호들(24)과 함께 컴퓨터 시스템의 메모리 버스를 통해 DIMM(18)으로 전송된다. 도시된 예에서, 제어 신호들은 하나의 CS#(chip select, 칩 선택) 신호, 하나의 WE#(write enable, 기입 가능) 신호, 하나의 CAS#(column access strobe, 열 액세스 스트로브) 신호, 및 하나의 RAS#(row access strobe: 행 액세스 스트로브) 신호를 포함하며, 이 신호들은 DRAM 칩(16) 내의 제어 및 리프레쉬 회로 블록(32)에 의해 수신된다. 몇몇 DIMM 아키텍처들에서는, 제어 신호 및 다른 다양한 신호들이, DIMM의 DRAM 칩들에 대한 최상위 제어 동작들을 제공하는 데 사용되는 DIMM 상의 하나 이상의 제어 칩들{DIMM(18) 상에 제어 칩(33)으로 도시됨}에 의해 수신된다. 따라서, 이 구성에서는, 제어 신호들은 제어 칩(들)에 의해 해독되고, 적절한 제어 신호들이 어드레스 신호들에 의해 특정된 페이지 어드레스에 대응하는 적절한 DRAM 칩으로 넘겨지거나 생성되어 보내진다. 이 활성화 명령은, 도시된 실시예에서는 활성화 명령 제어신호를 수신한 DRAM에 응답하여 행 주소 버퍼(32)에 래치된 현재의 행 주소 신호들에 의해 특정된 행을 개시하거나 활성화한다. 메모리 제어기와 메모리 버스의 아키텍처 타입에 따라, 행과 열 주소 신호들은 어드레스 신호 선들의 단일 다중화된 세트(single mutiplexed set)를 통해 또는 주소 신호 선들의 개별 그룹들을 통해 전송될 수 있다. (적절한 세트의 CS#, WE#, CAS# 및 RAS# 신호들의 논리 수준에 의해 특정된) 판독(READ) 또는 기입(WRITE) 명령에 응답하여, 열 주소 데이터는 열 주소 버퍼(36)로 행 주소 데이터가 래치되는 방식과 비슷하게 랫치된다. 요청된 메모리 액세스 주소 범위를 포함하는 대응 뱅크와 페이지를 식별하기 위하여, 행 해독기(38)와 다중화된 열 해독기(40)로 도시되어 있는 바와 같이, DRAM 칩(16) 내의 내부 회로에 의해 행과 열 주소 버퍼들에 저장된 행과 열 주소들이 해독된다.
상술한 바와 같이, 요즘의 DRAM에서는, 데이터는 바이트 또는 워드보다는 보 통 페이지를 기준으로 액세스된다. 언뜻 보기에는, 선택된 메모리 뱅크 내에서 데이터 행을 직접 액세스할 수 있을 것처럼 생각된다. 그러나, DRAM 메모리 셀들이 작동하는 방식 때문에 데이터는 메모리 셀들로부터 직접 액세스될 수 없다. DRAM 칩들은 그 메모리 셀들이 자주(즉, 1초에 1000번 또는 10,000번 이상) 동적으로 리프레쉬되어야만 하기 때문에 "동적인(Dynamic)" RAM이라고 불린다. 이것은 각 메모리 셀이 전하를 매우 짧은 시간 동안만 유지할 수 있는 "누설" 축전기를 포함하고 있기 때문이다. 데이터를 유지하기 위해서는, 계속해서 제어 및 리프레쉬 회로 블록(34)에 의해 자동적으로 수행되는 리프레쉬 사이클을 이용해 논리값 1을 갖는 셀들을 리프레쉬해야(즉, 재충전해야) 한다. 그 결과, 셀을 직접 "판독"하는 경우, 그 셀은 자신의 전하를 잃어버리게 되고, 따라서 데이터도 잃어버리게 된다.
이런 문제점을 피하기 위해서, DRAM은 복수의 감지 증폭기들(42)을 사용하는데, 감지 증폭기는 한 열 당 하나씩 배치된다. 따라서, 감지 증폭기들은 감지 증폭기 뱅크들로 구획되고, 각 뱅크의 폭은 각 대응 메모리 어레이 뱅크의 페이지 길이에 대응한다. 감지 증폭기는 두가지 기능을 수행한다. 하나는, 그 이름이 의미하는 바대로, 각 열 및 현재 어서팅되는 행에 대응하는 메모리 셀에 유지되고 있는 전하를 "감지"한 후에 이를 감지 신호로 증폭하는 것이다. 예를 들어, 주어진 셀 내의 전하가 미리 결정된 임계치를 초과하는 것으로 감지되면, 감지 증폭기는 논리값 "1"에 상응하는 전압 신호 출력을 생성하고, 반대로 감지된 전하가 임계치 미만인 경우에는 감지 증폭기는 논리값 "0"에 상응하는 전압 신호 출력을 생성한다. 감지 증폭기에 의해 제공되는 두번째 기능은, 메모리 내에 저장된 데이터의 전하에 악영향을 주지 않으면서 증폭된 신호들이 액세스될 수 있도록 하는 버퍼링 기능이다.
도시된 실시예에서, 감지 증폭기는 입출력(I/O) 게이팅 블록(44)을 통하여 액세스되는데, 상기 입출력 게이팅 블록(44)은 I/O 제어 블록(48)과 제어 및 리프레쉬 회로 블록(34)에 의하여 생성되는 제어 신호에 응답하여 데이터 I/O 버퍼(46)로 데이터를 송수신한다. 감지 증폭기와 데이터 I/O 버퍼 사이에서 (또는 버퍼링되지 않은 DIMM 내의 메모리 버스로 직접) 데이터를 전달하기 위하여 다양한 다른 아키텍쳐가 사용될 수 있으므로, 도 1에 도시된 아키텍쳐는 단지 예시적이라는 점을 주의해야 한다. 이어서, MCH(14)가, 판독 및 기입 명령에 대응하는 적절한 제어 신호 세트(26)를 이용하여 메모리 데이터 버스(50)를 통하여 데이터 I/O 버퍼(46) 내에 저장된 데이터를 검색할 수 있다.
전형적으로, 페이지 내의 다양한 바이트 또는 워드는 순차 메커니즘을 이용하여 독출된다. 예를 들어, 일부 DRAM은 버스트 모드를 제공하는데, 상기 모드에서 순차적으로 인접한 복수의 바이트 및/또는 워드는 단일의 판독 명령을 이용하여 고속으로 독출될 수 있다. 일반적으로, 이러한 순차 방식은, 순차적으로 변하는 열 액세스 데이터를 제공하는 것과 함께 CAS# 신호를 고속으로 토글링하면서 단일의 행 주소를 어서팅함으로써 수행된다.
일단 데이터가 주어진 페이지로부터 액세스되었으면, 대응하는 데이터는 그 페이지에 대응하는 감지 증폭기 뱅크 내에 유지된다. 동일 뱅크 내의 또 다른 페이지를 액세스하기 위하여, 프리차지 명령이 발행된다. 상기 명령은 최초의 페이 지에 대응하는 메모리 셀의 로우 및 뱅크 내의 전하를 복원하며{이는 재기록(write-back)으로 알려져 있다}, 새로운 데이터 페이지에 대한 감지 증폭 뱅크를 준비시킨다. 일반적으로, 프리차지 명령은 CS#, WE#, CAS# 및 RAS# 신호의 조합 세트를 통하여 발행될 것이다. 많은 메모리 제어 명령 세트에 공통적인 일 실시예에서, 프리차지 명령 신호 세트는 CS#, WE#, CAS# 및 RAS#가 각각 L, L, H, L 신호인 것으로 구성된다. 사용되는 신호의 특정 조합은 MCH(또는 유사한 메모리 제어기)에 의하여 제공되는 제어 신호에 아키텍쳐적으로 특정될 것이다. 이러한 신호 조합은 당업계에 공지되어 있으며, 따라서 이러한 다양한 조합은 본 명세서에서 더 이상 설명되지 않는다. 일단 프리차지 명령이 발행되면, (아키텍쳐에 의존하는) 소정의 시간이 경과될 때까지, 그 뱅크에 대한 후속 액세스는 가능하지 않을 것이다. 또한, 일단 뱅크가 프리차지되면, 그 뱅크는 유휴 또는 공백 상태이고, 그 뱅크에 판독 또는 기입 명령이 발행되기 전에 활성화 명령에 의하여 활성화되어야 한다.
다양한 메모리 액세스 패턴 하에서 상이한 지연 시간이 발생할 것이라는 점은 앞서의 설명으로부터 명백하다. 예를 들어, 페이지-종료(page-close) 기법이 각 페이지 액세스에 대하여 자동적인 페이지 종료를 제공하면, 이러한 기법은 집약도(locality)가 낮은 어플리케이션(예를 들어, 동일한 메모리 페이지를 반복적으로 액세스하지 않는 어플리케이션)에 대해서는 유리할 것이지만, 집약도가 높은 어플리케이션에 대해서는 지연 시간이 높을 것이다. 반면, 페이지 미스가 발생할 때에만 페이지를 종료하는 기법은, 집약도가 높은 어플리케이션에 대해서는 유리할 것이지만, 어플리케이션의 집약도가 낮을 때에는 성능이 나빠질 것이다.
본 발명의 원리에 따르면, 다양한 상이한 유형의 메모리 액세스 패턴을 갖는 어플리케이션에 대하여 지연 시간을 개선하는, 동적으로 조절 가능한 페이지 종료 기법이 제공된다. 일반적으로, 이러한 기능을 가능하게 하는 메커니즘은, 실제 액세스 패턴을 측정하는 것과, 미래의 액세스 패턴이 종래의 액세스 패턴과 유사할 것이라는 원칙 하에서 상기 측정된 액세스 패턴에 기초하여 페이지 종료 기법을 조절하는 것에 기초한다. 그러나, 실제 액세스 패턴의 측정도 동적이므로, 상기 페이지 종료 기법은, 메모리 뱅크(들)를 액세스하는 어플리케이션 또는 공유되는 메모리 뱅크(들)를 액세스하는 어플리케이션 세트 내에서 변화하는 메모리 액세스 패턴에 적응하도록 동적으로 조절될 것이다.
일 실시예에 따르면, 각 뱅크별로 타이머 메커니즘이 구현된다. 본 실시예에서, 각 메모리 뱅크의 액세스는 메모리 제어기(예를 들어, MCH 14)에 의하여 추적되고, 상기 메모리 제어기는 페이지 종료 시기를 결정하기 위하여 각 뱅크별로 하나의 타이머를 사용한다. 만일 타이머의 트립 포인트가 0(또는 소정의 다른 특정 지시)으로 설정되면, 그 페이지는, 그에 대한 최후의 액세스, 즉 판독 또는 기입이 종료되는 즉시 종료될 것이다. 이는 앞서 설명된 "페이지-종료" 기법과 동일하다. 이와는 상반되게, 만일 타이머 트립 포인트가 최대로 설정되면, 제어기는, (다른 DRAM 아키텍쳐 규칙 때문에) 페이지를 종료해야 하는 경우가 아니면 페이지를 종료하지 않거나, 매우 긴 시간 후에 페이지를 종료할 것이다. 이는, 앞서 설명된 "페이지-개시" 기법과 동일하다. 이러한 두 극단 사이의 기법에 대하여, 타이머 트립 포인트는 페이지 종료 시기를 결정할 것이다. 타이머 트립 포인트는 최근의 메모리 액세스 행위에 대응하여 동적으로 조절되는 값이다. 작은 트립 값은 메커니즘이 페이지 종료 기법처럼 동작하도록 하는 반면, 큰 트립 값은 페이지 개시 기법처럼 동작하도록 할 것이다. 본 메커니즘은 또한 각 뱅크에 대하여 개시된 마지막 페이지의 식별을 저장하는 리콜 동작을 구현한다. 즉, 제어기는, 특정 뱅크 내의 페이지가 종료된 후에, 새로운 페이지가 대신 개시되지 않았으면, 그 페이지를 기억한다.
도 2를 참조하면, 페이지 종료 기법 조정 메커니즘은, 본 발명을 수행하는 컴퓨터 시스템의 동작 동안 뱅크 단위(per-bank)를 기초로 다음 동작을 수행한다. 프로세스는 블록(100)에서 시작하고, 여기에서 각각의 뱅크에 대한 트립 포인트는 초기값으로 설정된다. 초기값은 평균값이거나, 특정 어플리케이션을 위하여 특별히 설정될 수 있다. 예를 들어, 어플리케이션이 보통 양호한 집약도를 제공한다고 미리 알려져 있는 경우, 트립 포인트에 대한 초기값은 페이지 개시 기법에 대응하기 위하여 메커니즘 기법의 행동을 초기화하면서, 높은 값으로 설정될 수 있다. 반대로, 만약 어플리케이션이 랜덤하게 메모리에 액세스한다고 알려진 경우(즉, 양호하지 않은 집약도), 초기 트립 포인트는 낮은 값(또는 0까지로도)으로 설정될 수 있고, 그에 의하여 메커니즘의 행동을 초기화하여 페이지 종료 기법으로 지향된다. 일 실시예에서, 모든 뱅크에 대한 트립 포인트의 초기값은 시스템의 부트-업 시퀀스 동안 일반적으로 가능한 셋업 동작 동안 액세스 가능한 것과 같은, 컴퓨터 셋업 파라미터를 사용하여 설정될 수 있다. 또 다른 실시예에서, 어플리케이션 또는 운영체제는 메모리 제어기에 정보를 전달하여 초기 트립 포인트 값을 설정 또는 조정할 수 있다. 모든 실시예에서, 트립 포인트 값은 런 타임 설정을 위한 셋업 파라미터 및 전용 메모리 또는 레지스터 등을 위한 CMOS와 같은, 다양한 잘 알려진 저장 스킴(scheme)을 사용하여 저장될 수 있다. 알고리즘의 동적 특성은 실제 액세스 패턴의 집약 특성에 기초한 최적값에 메모리 페이지-종료 기법을 빠르게 적용하기 때문에, 많은 경우에서 초기 트립 포인트 값이 실질적으로 관련없다는 것을 또한 주목해야 할 것이다.
일 실시예에서, 각각의 뱅크에 대한 트립 포인트는 대응 레지스터에 저장되고, 도 1에서 레지스터(52)에 의하여 묘사된다. "1x-4x" 레퍼런스에 의하여 지적된 것처럼, 주어진 메모리 아키텍쳐에 대한 뱅크 수는 일반적으로 각각의 DIMM의 구조 및 시스템에 설치된 DIMM의 수에 의존하여 4, 8, 12 또는 16의 값을 가질 것이다. 예를 들어, 만약 4-뱅크 아키텍쳐가 사용되고 시스템이 4 DIMM을 포함한다면, 뱅크 수는 16이 될 것이다. 일반적으로, 분리된 레지스터는 각각의 뱅크에 대하여 제공될 것이다. 선택적으로, 레지스터는 레지스터의 길이 및 다른 설계상 고려에 의존하여, 둘 이상의 뱅크에 대응하는 정보를 유지하기 위하여 분할될 수 있다.
초기 트립 값이 설정된 후, 도 2에서의 블록(100) 아래에 도시된 동작은 진행중인 기초상에서 실행되고, 동작 루프에 의하여 묘사된다. 동시에, 도 3에 도시되고 아래에서 논의되는 동작은 계속적으로 실질적으로 비동기인 기초상에서 실행된다. 일 실시예에서, 다양한 종래 기술이 아닌(즉, 신규한) 메모리 제어기 동작 이 뱅크 관리자(54)에 의하여 제공되고, 이것은 도 1에서 설명되는 것처럼, MCH(14)에 의하여 구현되는 로직의 일부이다. 일반적으로, 뱅크 관리자는 당업자에 의하여 인식되는 것처럼, 메모리 제어기 회로에서 사용되는 것과 공통인 게이트-레벨 논리 또는 내장 소프트웨어를 사용하여 구현된다.
동작 루프는 메모리 제어기{예를 들어 MCH(14)}가 프로세서(10)로부터 메모리에 액세스하기 위하여 요청을 수신하고 메모리 액세스를 위하여 뱅크 및 페이지를 결정하는 블록(102)에서 시작한다. 그러면 메모리 제어기는 블록(104)에서 메모리 페이지에 액세스 하려고 시도하고, 페이지 액세스 시도가 결정 블록(106)에서 페이지 미스, 페이지 히트 또는 페이지 공백 상태 중 어느 상태로 귀결될 것인지 결정된다. 만약 페이지가 이전의 액세스를 통하여 이미 로딩된 경우, 페이지 히트 상태는 현재 뱅크에 대한 트립 포인트가 뱅크 관리자(54)에 의하여 증가되는 블록(108)로 논리가 향하도록 할 것이다. 일반적으로, 트립 포인트는 타이머의 속도(및/또는 타이머 분할 요소)에 비례하는 미리 설정된 양에 의하여 증가된다. 간단하게 하기 위하여, 본 예시에서는 트립 포인트가 1씩 증가하는 것으로 한다.
만약 또다른 페이지가 이미 감지 증폭기 뱅크에 로딩된다면, 페이지 미스 상태는 프리차지 명령을 사용하여 페이지가 종료되는 블록(110)으로 로직이 향하도록 할 것이다. 그러면 새로운 페이지는 블록(112)에서 적절한 주소 정보에 따른 활성화 명령(ACTIVATE command)을 사용하여 로딩된다. {블록(110) 및 블록(112)에서 수행되는 동작 모두 페이지 미스 상태가 제어기에 의하여 감지될 때 메모리 제어기에 의하여 자동적으로 수행되는 일반적인 동작이라는 것을 유의하여야 한다.}
상기 페이지를 종료하고 신규 페이지를 활성화시킨 후에, 로직은 트립 포인트가 0보다 더 큰지 여부에 대한 결정이 이루어지는 결정 블록(114)으로 진행한다. 응답이 예(참)이면, 트립 포인트는 뱅크 관리자(54)에 의해 블록(116)에서 감소된다. 트립 포인트를 증가시키는 것과 유사한 방식으로, 타이머 속도(및/또는 타이머 분할 인자)에 비례하는 사전-설정(pre-set) 양만큼 트립 포인트가 감소될 것이다. 단순화를 위해, 현재 예에서 트립 포인트는 1만큼씩 감소된다.
트립 포인트가 증가 또는 감소된 후, 또는 결정 블록(114)의 결과가 아니오(거짓)이면, 로직은 페이지 액세스가 수행되는 블록(118)으로 진행한다. 이는 전형적으로, 널리 알려진 종래의 메모리 제어기 동작에 의해 자동적으로 처리되는, 메모리 판독 또는 메모리 기입을 포함한다. 이후 "최종 페이지" 식별자가 (필요한 경우) 블록(120)에서 업데이트 된다. 최종 페이지 식별자(예를 들면, 페이지 주소 또는 유사한 페이지 식별 표시)는 대응하는 메모리 뱅크로부터 액세스되는 최종 페이지를 식별하는 정보를 저장하는데 사용된다. 일 실시예에서, 각각의 뱅크를 위한 최종 페이지는 MCH(14)내 복수의 각 레지스터들에 저장되거나, 또는 종래의 메모리 제어기에서 페이지 액세스 정보를 기록하기 위해 사용되는 또 다른 저장 메커니즘을 사용하여 저장된다. 일 실시예에서, 트립 포인트들을 저장하는데 사용된 동일한 레지스터들은 또한 최종 페이지 식별자를 저장하기 위해 사용된다. 이후 로직은 메모리 액세스를 위한 다음 요구에 응답하기 위해 루프의 블록(102)으로 복귀한다.
사전에 프리차지 명령이 발행되었고 어떠한 페이지도 활성화되지 않았다면, 결정 블록(106)의 결과는 페이지 공백 상태에 대응할 것이다. 이러한 예에서, 신규 페이지는 블록(122)에서 활성화되고 로직은 결정 블록(124)으로 진행한다. 이 결정 블록은 뱅크를 위해 저장된 페이지 식별자를 체크함으로써(예를 들면, 페이지 식별자가 레지스터들에 저장된 실시예에서 레지스터 룩업을 수행함으로써), 액세스가 결과적으로 최종 프리차지 명령 이전에 뱅크에 이미 존재하던 페이지가 여전히 이용 가능한, 페이지-미스 또는 페이지-히트 상태로 되는지를 확인하기 위해 체크를 수행한다. 액세스가 페이지-미스 상태로 되었다면, 로직은 결정 블록(114)(및 적절하다면 블록(116))으로 진행하는데, 이 때 트립 포인트가 0보다 더 크면 트립 포인트는 감소된다. 페이지 액세스가 페이지-히트 상태로 되었다면, 로직은 트립 포인트를 증가시키기 위해 블록(108)으로 진행한다.
상기 논의된 종래 방법 중 하나로 페이지들을 종료하는 것 이외에, (정상적인 형태의 페이지 미스들에 대한 응답으로 페이지들을 종료하는 것에 더하여) 본 발명은 타이머들 및 트립 포인트 값들이 페이지가 종료될 때를 결정하도록 구현한다. 이 메커니즘을 구현하기 위한 로직은 도 3에 도시되고, 블록(150)에서 각 뱅크를 위한 타이머를 시작함으로써 개시된다. 이러한 목적을 위해 다양한 유형의 타이머들이 사용될 수 있다. 예를 들면, MCH(14)는 MCH(14) 또는 시스템 클록에 의해 제공된 타이밍 신호에 의해 구동되는 하나 이상의 전용 카운터들을 포함할 수 있다. 선택적으로, 기타 다양한 다른 유형의 시스템 타이머들이 사용될 수 있다. 블록(152)에서, 타이머는 증분된다. 일반적으로, 카운터가 타이머용으로 사용될 때, 카운터는 그것이 새로운 클록 사이클을 수신하는 {예를 들어, 카운터가 그것을 구동하는데 사용되는 클록 신호의 논리 레벨 변경 또는 선행 에지(leading edge)를 감지할 때} 각 시간을 증가시킬 것이다.
다음으로, 결정 블록(154)에서, 타이머가 트립 포인트를 초과하는지 여부에 대한 결정이 이루어진다. 초과하지 않는다면, 결정 블록(154)의 판정은 아니오(거짓)이고 로직은 타이머를 증가시키기 위해 루프의 블록(152)으로 복귀하며, 타이머가 트립 포인트를 초과할 때까지 블록들(152 및 154)의 논리가 반복된다. 타이머가 트립 포인트를 초과하면, 결정 블록(154)에 대한 응답은 예(참)가 되고, 로직은 결정 블록(156)으로 진행할 것이며, 이 때 페이지가 공백인지(즉, 신규 페이지의 후속 로딩 없이 이전에 종료되었는지) 여부에 대한 결정이 이루어진다. 응답이 예(참)이면, 로직은 타이머가 리세트되는 블록(158)으로 진행하고, 이후 루프의 블록(152)으로 복귀한다. 페이지가 공백이 아니면, 블록(160)에서 페이지를 종료하기 위해 프리차지 명령이 발행되며 이후 타이머가 블록(158)에서 리셋된다. 페이지를 종료하고 타이머를 리세트하는데 사용된 실제 순서는 선택적임을 이해해야 한다(예를 들면, 구현을 위해 어떤 순서가 바람직하던지 간에, 적절한 조건 하에서 타이머는 페이지를 종료하기 전에 리셋될 수 있고 또는 그 반대가 될 수 있다).
본 발명을 실시하기 위한 예시적인 컴퓨터 시스템
도 4를 참조하면, 본 발명의 실시와 관련된 컴퓨터 시스템에서 사용하기에 적합한 일반적인 종래의 컴퓨터(200)가 도시된다. 종래의 컴퓨터(200)는 본 발명을 구현하기에 적합한 다양한 유형의 컴퓨터 시스템을 예시하는데, 윈도우즈 95, 98, 2000, ME, XP 또는 NT 운영 체제에서 동작하는 PC-계 시스템, UNIX 기반 운영 체제에서 동작하는 UNIX 워크스테이션, 및 LINUX 운영 체제에서 구현되는 다양한 컴퓨터 아키텍쳐이다. 컴퓨터(200)는 또한 다수의 프로세서를 구비한 컴퓨터 뿐만 아니라 다양한 서버 아키텍쳐를 포함한다.
컴퓨터(200)는 프로세서 새시(202)를 포함하는데, 프로세서 새시는 플로피 디스크 드라이브(204), 하드 드라이브(206), 적절한 집적 회로가 설치된 마더 보드(208), 메모리(210)(예를 들어, DRAM DIMM), 하나 이상의 프로세서(CPU; 212) 및 파워 서플라이(도시하지 않음)와 같이 당업자에게 일반적으로 잘 알려진 것들을 포함한다. 마더보드(208)는, MCH(14)에 의해 제공되고 상술된 동작을 수행하도록 구성된 메모리 제어기(도시하지 않음)를 더 포함한다. 예시적인 실시예에서, 프로세서(212)는 인텔 펜티엄 ⅢTM 또는 펜티엄 ⅣTM 프로세서를 포함하고, 인텔 82845 MCH 또는 82815(E) MCH와 같은 프로세서들을 지원하는 다양한 MCH 중 하나를 메모리 제어기가 포함한다. 하드 드라이브(106)가 단일 유닛 또는 다수의 하드 드라이브를 포함할 수 있고, 컴퓨터(200)의 외부에 선택적으로 설치될 수 있다는 것을 이해할 것이다. 컴퓨터에 의해 구동되는 프로그램 모듈과 소프트웨어 프로그램에 의해 생성된 그래픽과 텍스트를 표시하기 위해 모니터(214)가 포함된다. 마우스(216)(또는 다른 포인팅 장치)가 프로세서 새시(202)의 직렬 포트에(또는 버스 포트나 USP 포트에) 연결될 수 있고, 마우스(216)로부터의 신호는 마더보드로 전달되어 디스플레이 상의 커서를 제어하고, 컴퓨터에서 실행되는 소프트웨어 어플 리케이션 프로그램 및 모듈에 의해 모니터(216) 상에 표시된 그래픽 요소, 메뉴 옵션 및 텍스트를 선택한다. 게다가, 컴퓨터에서 실행되는 소프트웨어 프로그램의 구동에 영향을 미치는 텍스트와 명령어의 사용자 엔트리를 위하여 사용자 키보드(218)가 마더보드에 연결된다. 컴퓨터(200)는 또한 근거리 통신망, 원거리 통신망 또는 인터넷과 같은 컴퓨터 네트워크에 컴퓨터를 연결하기 위한 내장 네트워크 어댑터인 네트워크 인터페이스 카드(220)를 포함한다.
컴퓨터(200)는 또한 선택적으로 컴팩트 디스크-판독 전용 메모리(CD-ROM) 드라이브(222)를 포함할 수 있는데, 여기에 CD-ROM 디스크가 삽입되어 디스크 상의 실행 가능한 파일 및 데이터가 판독되어 컴퓨터(200)의 메모리로 및/또는 하드 드라이브(206)의 저장위치로 전송될 수 있다. 광학 기록 매체 또는 DVD 드라이브와 같은 다른 대용량 메모리 저장 장치가 포함될 수 있다. 장치 명령어들은 소프트웨어를 포함하는데, 이 소프트웨어에 의해 CPU가 본 발명의 상술한 기능들을 구현할 수 있고, 장치 명령어들이 플로피 디스크 또는 CD-ROM(또는 다른 메모리 매체)와 같은 장치-판독가능 매체에 분배되고 하드 드라이브에 저장되어 CPU에 의해 실행될 수 있도록 막기억 장치(Random Access Memory; RAM)에 저장될 수 있다. 게다가, 장치-판독가능 매체는 전기, 광학, 음향 또는 다른 형태의 전파되는 신호(예를 들어, 반송파, 적회선 신호, 디지털 신호 등)와 같은 전파 신호를 포함할 수 있는데, 이러한 신호에 의해 장치 명령어들이 컴퓨터 네트워크를 통해 로딩될 수 있다.
본 발명을 실행하고 변경하기에 바람직한 형태로 본 발명이 설명되었지만, 당업자라면 다음의 특허청구범위의 사상 내에서 많은 다양한 변경이 이루어질 수 있다는 것을 이해할 것이다. 따라서, 상술한 설명에 의해 본 발명의 범위가 제한되는 것이 아니며, 다음의 특허청구범위를 참조하여 그 범위가 결정되어야 한다.

Claims (22)

  1. 메모리 뱅크로의 메모리 액세스들을 모니터링(monitoring)하는 단계; 및
    상기 메모리 액세스들의 집약도 특성에 기초하여 메모리 뱅크에 대한 메모리 페이지 종료 기법을 동적으로 조절하는 단계를 포함하며,
    상기 메모리 액세스들을 모니터링하는 단계는,
    각 메모리 페이지 액세스의 결과가 페이지-미스(page-miss) 또는 페이지-히트(page-hit) 상태인지를 판정하는 단계와,
    모니터링된 페이지-미스 상태들보다 페이지-히트 상태들이 많이 존재하면, 페이지-개시 기법(page-open policy) - 상기 페이지-개시 기법은 페이지-미스 또는 메모리 컴포넌트 아키텍쳐 요구조건들(memory component architectural requirements)에 의해 종료가 요구될 때까지 페이지 개시를 유지함 - 쪽으로 상기 메모리 종료 기법을 동적으로 조절하는 단계; 그렇지 않으면,
    페이지-히트 상태들보다 페이지-미스 상태들이 많이 존재하면, 페이지-종료 기법(page-close policy) - 상기 페이지-종료 기법은 상기 메모리 페이지로의 액세스를 완료하면 즉시 메모리 페이지를 종료함 - 쪽으로 상기 메모리 페이지 종료 기법을 동적으로 조절하는 단계
    를 포함하는 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 메모리 페이지 종료 기법을 동적으로 조절하는 단계 후에,
    상기 메모리 뱅크로부터 액세스된 최종 메모리 페이지를 추적하는 단계;
    메모리 페이지 액세스가 페이지 공백 상태를 유발하는지 판정하는 단계, 및 상기 메모리 페이지 액세스가 페이지 공백 상태를 유발하는 경우,
    상기 최종 메모리 페이지가 여전히 상기 메모리 뱅크로 로딩되어 있는 경우에, 페이지-히트 상태로 귀착되면, 상기 페이지 개시 기법 쪽으로 상기 메모리 페이지 종료 기법을 동적으로 조절하는 단계; 그렇지 않으면,
    상기 최종 메모리 페이지가 여전히 상기 메모리 뱅크로 로딩되어 있는 경우에, 페이지-미스 상태로 귀착되면, 상기 페이지 종료 기법 쪽으로 상기 메모리 페이지 종료 기법을 동적으로 조절하는 단계
    를 포함하는 방법.
  4. 제1항에 있어서,
    상기 방법은 복수의 메모리 뱅크로 분할된 시스템 메모리를 구비한 컴퓨터 시스템에서 실행되고,
    상기 방법의 단계들은, 각 메모리 뱅크에 대한 각각의 페이지 종료 기법을 동적으로 조절하기 위하여 상기 복수의 메모리 뱅크 각각에서 동시에 구현되는 방법.
  5. 메모리 페이지 종료 기법을 동적으로 조절하기 위한 방법으로서,
    메모리 종료 트립 포인트(memory close trip point)를 초기화하는 단계;
    타이머 카운트를 개시하는 단계;
    메모리 뱅크의 메모리 페이지에 액세스하는 단계, 그리고 이에 응답하여,
    상기 메모리 페이지를 개시하는 단계;
    상기 메모리 페이지로의 상기 액세스가 페이지-미스 또는 페이지-히트 상태를 생성하는지 여부를 판정하는 단계;
    상기 메모리 페이지 액세스가 페이지-히트 상태를 유발하면 상기 메모리 종료 트립 포인트를 증가시키는 단계;
    상기 메모리 페이지 액세스가 페이지-미스 상태를 유발하면 상기 메모리 종료 트립 포인트를 감소시키고, 상기 메모리 페이지를 종료하며, 상기 타이머 카운트를 재개시하는 단계;
    상기 타이머 카운트가 상기 메모리 종료 트립 포인트를 초과하였는지 판정하는 동안, 상기 메모리 뱅크에서 메모리 페이지들에 반복적으로 액세스하고, 이에 응답하여 선행 단계들을 수행하는 단계;
    상기 메모리 페이지로의 임의의 액세스가 완료한 후 상기 타이머 카운트가 상기 메모리 종료 트립 포인트를 초과하면 임의의 개시된 메모리 페이지를 종료하는 단계
    를 포함하는 방법.
  6. 제5항에 있어서,
    상기 임의의 개시된 메모리 페이지를 종료하는 단계 후에,
    상기 메모리 뱅크로부터 액세스된 최종 메모리 페이지를 추적하는 단계;
    메모리 페이지 액세스가 페이지 공백 상태를 유발하는지 판정하는 단계; 및 상기 메모리 페이지 액세스가 페이지 공백 상태를 유발하는 경우,
    상기 최종 메모리 페이지가 여전히 상기 메모리 뱅크로 로딩되어 있는 경우에, 페이지-히트 상태로 귀착되면, 상기 메모리 종료 트립 포인트를 증가시키는 단계; 또는,
    상기 최종 메모리 페이지가 여전히 상기 메모리 뱅크로 로딩되어 있는 경우에, 페이지-미스 상태로 귀착되면, 상기 메모리 종료 트립 포인트를 감소시키는 단계
    를 포함하는 방법.
  7. 제6항에 있어서, 상기 메모리 뱅크로부터 액세스된 상기 최종 메모리 페이지를 식별하는 데이터는 레지스터에 저장되어 있는 방법.
  8. 제5항에 있어서, 상기 방법은 복수의 메모리 뱅크로 분할된 시스템 메모리를 구비한 컴퓨터 시스템에서 실행되고,
    상기 방법의 단계들은, 각 메모리 뱅크에 대한 각각의 페이지 종료 기법을 동적으로 조절하기 위하여 상기 복수의 메모리 뱅크 각각에서 동시에 구현되는 방법.
  9. 제6항에 있어서, 상기 방법은 복수의 메모리 뱅크로 분할된 시스템 메모리를 구비한 컴퓨터 시스템에서 실행되고,
    상기 방법의 단계들은, 각 메모리 뱅크에 대한 각각의 페이지 종료 기법을 동적으로 조절하기 위하여 상기 복수의 메모리 뱅크 각각에서 동시에 구현되는 방법.
  10. 제9항에 있어서, 각 메모리 뱅크로부터 액세스된 상기 최종 메모리 페이지를 식별하는 표시(indicia)는 각 레지스터에 저장되는 방법.
  11. 회로로서,
    복수의 메모리 뱅크로 분할된 시스템 메모리를 갖는 컴퓨터 시스템에서 메모리 액세스를 제어하는 메모리 제어기로의 인터페이스;
    상기 복수의 메모리 뱅크 각각에 대한 메모리 액세스 패턴들을 모니터링하는 수단;
    상기 메모리 액세스 패턴들 각각의 개별 집약도 특성을 판정하는 수단;
    상기 메모리 뱅크에 대한 상기 집약도 특성을 기초로 하여 상기 복수의 메모리 뱅크 각각에 대한 메모리 페이지 종료 기법을 동적으로 조정하는 수단; 및
    상기 복수의 메모리 뱅크 각각에 대한 상기 메모리 페이지 종료 기법에 대응하는 표시를 상기 메모리 제어기에 제공하는 수단
    을 포함하는 임베디드 로직(embedded logic)을 포함하며,
    메모리 액세스 패턴의 상기 집약도 특성을 판정하는 수단은,
    주어진 메모리 뱅크에 대한 메모리 페이지 액세스가 페이지-미스 또는 페이지 히트 상태를 유발하는지를 판정하는 수단; 및
    상기 뱅크에 대한 메모리 페이지 액세스들 동안, 모니터링되는 페이지 미스 상태들보다 많은 페이지 히트 상태들이 존재하면, 상기 주어진 메모리 뱅크에 대한 상기 메모리 페이지 종료 기법을 페이지-개시 기법 - 상기 페이지-개시 기법은 페이지-미스 또는 메모리 콤포넌트 아키텍쳐 요구조건들에 의해 종료가 요구될 때까지 페이지를 개시 상태로 유지함 - 쪽으로 동적으로 조정하는 수단; 그렇지 않으면,
    페이지 히트 상태들보다 많은 페이지 미스 상태들이 존재하면, 상기 주어진 메모리 뱅크에 대한 상기 메모리 페이지 종료 기법을 페이지-종료 기법 - 상기 페이지 종료 기법은 메모리 페이지로의 액세스를 완료하면 메모리 페이지를 즉시 종료함 - 쪽으로 동적으로 조정하는 수단
    을 포함하는 회로.
  12. 삭제
  13. 제11항에 있어서, 상기 임베디드 로직은,
    상기 복수의 메모리 뱅크 각각으로부터 액세스된 최종 메모리 페이지를 추적하는 수단; 및
    주어진 메모리 뱅크로의 메모리 페이지 액세스가 페이지 공백 상태를 유발하는지를 판정하는 수단, 및 상기 페이지 액세스가 페이지 공백 상태를 유발하면,
    상기 최종 메모리 페이지가 여전히 상기 메모리 뱅크로 로딩되어 있는 경우에, 페이지-히트 상태로 귀착되면, 상기 메모리 뱅크에 대한 상기 메모리 페이지 종료 기법을 상기 페이지-개시 기법 쪽으로 동적으로 조정하는 수단; 또는,
    상기 최종 메모리 페이지가 여전히 상기 메모리 뱅크로 로딩되어 있는 경우에, 페이지-미스 상태로 귀착되면, 상기 메모리 뱅크에 대한 상기 메모리 페이지 종료 기법을 상기 페이지-종료 기법 쪽으로 동적으로 조정하는 수단
    을 더 포함하는 회로.
  14. 제11항에 있어서, 상기 회로는 메모리 제어기 허브에 회로의 일부를 포함하는 회로.
  15. 제11항에 있어서, 상기 회로는 노스 브리지 칩셋 콤포넌트에 회로의 일부를 포함하는 회로.
  16. 메모리 제어 콤포넌트에 있어서,
    메모리 버스에 동작적으로 연결되고 복수의 메모리 뱅크로 분할되는 시스템 메모리를 갖는 컴퓨터 시스템의 프로세서에 상기 메모리 제어 콤포넌트를 동작적으로 연결시키는 시스템 인터페이스;
    상기 메모리 제어 콤포넌트를 상기 메모리 버스로 동작적으로 연결시키는 메모리 인터페이스;
    적어도 하나의 메모리 뱅크에 대한 메모리 종료 트립 포인트를 초기화하는 수단;
    타이머 카운트를 시작하는 수단;
    상기 프로세서로부터의 메모리 액세스 요청들에 응답하여, 메모리 뱅크에 메모리 페이지 액세스들을 수행하는 수단, 및 이에 응답하여
    상기 메모리 페이지를 개시하는 수단;
    상기 메모리 페이지로의 상기 액세스가 페이지-미스 또는 페이지-히트 상태를 야기하는지 판정하는 수단;
    상기 메모리 페이지 액세스가 페이지-히트 상태를 야기하면, 상기 메모리 종료 트립 포인트를 증가시키는 수단;
    상기 메모리 페이지 액세스가 페이지-미스 상태를 야기하면, 상기 메모리 종료 트립 포인트를 감소시키고, 상기 메모리 페이지를 종료하며, 상기 타이머를 재시작하는 수단; 및
    상기 타이머 카운트가 상기 메모리 트립 포인트를 초과하는지 판정하는 동안, 상기 메모리 뱅크 내의 메모리 페이지들을 반복적으로 액세스하고, 이에 응답하여 상기 전술한 수단들을 수행하는 수단; 및
    상기 메모리 페이지로의 임의의 현재 액세스를 완료한 후에, 상기 타이머 카운트가 상기 메모리 종료 트립 포인트를 초과한 경우, 상기 메모리 뱅크 내의 임의의 개시된 메모리 페이지를 종료하는 수단
    을 포함하는 임베디드 로직
    을 포함하는 메모리 제어 콤포넌트.
  17. 제16항에 있어서, 상기 임베디드 로직은, 각각의 메모리 뱅크에 대한 기법들을 종료하는 개별 메모리 페이지를 동적으로 조정하기 위하여, 상기 복수의 메모리 뱅크 각각에 동시에 상기 수단들을 실행시키는 메모리 제어 콤포넌트.
  18. 제16항에 있어서, 상기 임베디드 로직은,
    상기 메모리 뱅크로부터 액세스된 최종 메모리 페이지를 추적하는 수단; 및
    메모리 페이지 액세스가 페이지 공백 상태를 야기하는지를 판정하는 수단, 및 상기 페이지 액세스가 페이지 공백 상태를 야기하면,
    상기 최종 메모리 페이지가 여전히 상기 메모리 뱅크로 로딩되어 있는 경우에, 페이지-히트 상태로 귀착되면, 상기 메모리 종료 트립 포인트를 증가시키는 수단; 또는
    상기 최종 메모리 페이지가 여전히 상기 메모리 뱅크로 로딩되어 있는 경우에, 페이지-미스 상태로 귀착되면, 상기 메모리 종료 트립 포인트를 감소시키는 수단
    을 더 포함하는 메모리 제어 콤포넌트.
  19. 제18항에 있어서, 복수의 레지스터들을 더 포함하고, 상기 복수의 레지스터 각각은 상기 레지스터가 대응하는 상기 메모리 뱅크(들)로부터 액세스된 하나 이상의 최종 메모리 페이지들을 식별하는 표시를 저장하기 위한 메모리 제어 콤포넌트.
  20. 제16항에 있어서, 개별 메모리 뱅크에 대한 타이머 카운트를 각각 제공하는 복수의 타이머를 더 포함하는 메모리 제어 콤포넌트.
  21. 제16항에 있어서, 상기 메모리 제어 콤포넌트는 메모리 제어기 허브를 포함하는 메모리 제어 콤포넌트.
  22. 제16항에 있어서, 상기 메모리 제어 콤포넌트는 노스 브리지 칩셋 콤포넌트의 일부를 포함하는 메모리 제어 콤포넌트.
KR1020047010521A 2002-01-03 2002-12-27 메모리 페이지 종료 기법의 동적 조절 방법 KR100626770B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/039,087 2002-01-03
US10/039,087 US6799241B2 (en) 2002-01-03 2002-01-03 Method for dynamically adjusting a memory page closing policy
PCT/US2002/041550 WO2003058456A1 (en) 2002-01-03 2002-12-27 Method for dynamically adjusting a memory page closing policy

Publications (2)

Publication Number Publication Date
KR20040064742A KR20040064742A (ko) 2004-07-19
KR100626770B1 true KR100626770B1 (ko) 2006-09-25

Family

ID=21903596

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047010521A KR100626770B1 (ko) 2002-01-03 2002-12-27 메모리 페이지 종료 기법의 동적 조절 방법

Country Status (9)

Country Link
US (1) US6799241B2 (ko)
EP (1) EP1461706B1 (ko)
KR (1) KR100626770B1 (ko)
CN (1) CN1284086C (ko)
AT (1) ATE431590T1 (ko)
AU (1) AU2002359868A1 (ko)
DE (1) DE60232367D1 (ko)
TW (1) TWI284261B (ko)
WO (1) WO2003058456A1 (ko)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6906978B2 (en) * 2002-03-19 2005-06-14 Intel Corporation Flexible integrated memory
US6976122B1 (en) * 2002-06-21 2005-12-13 Advanced Micro Devices, Inc. Dynamic idle counter threshold value for use in memory paging policy
US6910114B2 (en) * 2002-11-15 2005-06-21 Intel Corporation Adaptive idle timer for a memory device
JP4250989B2 (ja) * 2003-03-26 2009-04-08 日本電気株式会社 メモリアクセス制御装置
US20050060533A1 (en) * 2003-09-17 2005-03-17 Steven Woo Method, device, software and apparatus for adjusting a system parameter value, such as a page closing time
US7076617B2 (en) * 2003-09-30 2006-07-11 Intel Corporation Adaptive page management
US20050204113A1 (en) * 2004-03-09 2005-09-15 International Business Machines Corp. Method, system and storage medium for dynamically selecting a page management policy for a memory controller
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7299313B2 (en) 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7305574B2 (en) * 2004-10-29 2007-12-04 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7457926B2 (en) 2005-05-18 2008-11-25 International Business Machines Corporation Cache line replacement monitoring and profiling
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US7392338B2 (en) 2006-07-31 2008-06-24 Metaram, Inc. Interface circuit system and method for autonomously performing power management operations in conjunction with a plurality of memory circuits
US7590796B2 (en) * 2006-07-31 2009-09-15 Metaram, Inc. System and method for power management in memory systems
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US8090897B2 (en) 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US7472220B2 (en) 2006-07-31 2008-12-30 Metaram, Inc. Interface circuit system and method for performing power management operations utilizing power management signals
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US7609567B2 (en) 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
KR100714396B1 (ko) * 2005-07-18 2007-05-04 삼성전자주식회사 메모리의 처리속도를 향상시킨 컴퓨터 시스템
GB2444663B (en) 2005-09-02 2011-12-07 Metaram Inc Methods and apparatus of stacking drams
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US7409516B2 (en) * 2006-03-30 2008-08-05 Intel Corporation Pending request scoreboard for out-of-order memory scheduler
US7587547B2 (en) * 2006-03-30 2009-09-08 Intel Corporation Dynamic update adaptive idle timer
US7594055B2 (en) * 2006-05-24 2009-09-22 International Business Machines Corporation Systems and methods for providing distributed technology independent memory controllers
US7724589B2 (en) 2006-07-31 2010-05-25 Google Inc. System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7870459B2 (en) 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
KR100885783B1 (ko) * 2007-01-23 2009-02-26 주식회사 하이닉스반도체 플래시 메모리 장치 및 동작 방법
US7606988B2 (en) * 2007-01-29 2009-10-20 International Business Machines Corporation Systems and methods for providing a dynamic memory bank page policy
US20080282028A1 (en) * 2007-05-09 2008-11-13 International Business Machines Corporation Dynamic optimization of dynamic random access memory (dram) controller page policy
US20080282029A1 (en) * 2007-05-09 2008-11-13 Ganesh Balakrishnan Structure for dynamic optimization of dynamic random access memory (dram) controller page policy
KR100879463B1 (ko) * 2007-05-11 2009-01-20 삼성전자주식회사 억세스 권한 이양 시 프리차아지 스킵을 방지하는 동작을갖는 멀티패쓰 억세스블 반도체 메모리 장치
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8209479B2 (en) 2007-07-18 2012-06-26 Google Inc. Memory circuit system and method
US8080874B1 (en) 2007-09-14 2011-12-20 Google Inc. Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween
KR101598828B1 (ko) * 2008-12-22 2016-03-02 삼성전자주식회사 메모리 장치의 페이지 오픈 시간 조절 방법 및 이를 이용한메모리 시스템
US8347020B2 (en) * 2009-03-20 2013-01-01 Qualcomm Incorporated Memory access controller, systems, and methods for optimizing memory access times
DE202010017690U1 (de) 2009-06-09 2012-05-29 Google, Inc. Programmierung von Dimm-Abschlusswiderstandswerten
US20120059983A1 (en) * 2010-09-03 2012-03-08 David Wilkins Nellans Predictor-based management of dram row-buffers
US20120317376A1 (en) * 2011-06-10 2012-12-13 Advanced Micro Devices, Inc. Row buffer register file
US10838646B2 (en) 2011-07-28 2020-11-17 Netlist, Inc. Method and apparatus for presearching stored data
US10380022B2 (en) 2011-07-28 2019-08-13 Netlist, Inc. Hybrid memory module and system and method of operating the same
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US9684600B2 (en) * 2011-11-30 2017-06-20 International Business Machines Corporation Dynamic process/object scoped memory affinity adjuster
CN102662713B (zh) * 2012-04-12 2014-04-16 腾讯科技(深圳)有限公司 提高应用程序运行速度的方法、装置及终端
CN103136120B (zh) * 2012-12-31 2016-01-27 北京北大众志微系统科技有限责任公司 行缓冲管理策略确定方法和装置、bank划分方法和装置
US10372551B2 (en) 2013-03-15 2019-08-06 Netlist, Inc. Hybrid memory system with configurable error thresholds and failure analysis capability
KR20150138211A (ko) 2013-03-28 2015-12-09 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 메모리 활성화 레이트의 조정
CN105229742A (zh) 2013-04-30 2016-01-06 惠普发展公司,有限责任合伙企业 存储器访问速率
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
US9378127B2 (en) * 2013-06-21 2016-06-28 Intel Corporation Dynamic memory page policy
US10248328B2 (en) 2013-11-07 2019-04-02 Netlist, Inc. Direct data move between DRAM and storage on a memory module
KR101914260B1 (ko) * 2014-04-22 2019-01-14 후아웨이 테크놀러지 컴퍼니 리미티드 파일 관리 방법 및 파일 시스템
KR20160042224A (ko) * 2014-10-07 2016-04-19 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
WO2016089355A1 (en) 2014-12-01 2016-06-09 Hewlett Packard Enterprise Development Lp Auto-negotiation over extended backplane
WO2016122585A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Modifying characteristics of a memory segment
CN105068940B (zh) * 2015-07-28 2018-07-31 北京工业大学 一种基于Bank划分的自适应页策略确定方法
CN107534590B (zh) 2015-10-12 2020-07-28 慧与发展有限责任合伙企业 网络系统
EP3258382B1 (en) * 2016-06-14 2021-08-11 Arm Ltd A storage controller
CN106874106A (zh) * 2016-12-23 2017-06-20 北京北大众志微系统科技有限责任公司 一种主存bank划分方法及装置
US10191689B2 (en) * 2016-12-29 2019-01-29 Intel Corporation Systems and methods for page management using local page information
JP6905195B2 (ja) * 2017-11-16 2021-07-21 富士通株式会社 データ転送装置、演算処理装置及びデータ転送方法
CN108595124A (zh) * 2018-04-27 2018-09-28 江苏华存电子科技有限公司 一种提升多颗闪存平行写入校能的管理方法
US10559348B2 (en) 2018-05-16 2020-02-11 Intel Corporation System, apparatus and method for simultaneous read and precharge of a memory
US10776047B2 (en) 2018-08-30 2020-09-15 Micron Technology, Inc. Memory characteristic based access commands
CN111372369B (zh) 2018-12-25 2023-07-07 奥特斯科技(重庆)有限公司 具有部件屏蔽的部件承载件及其制造方法
KR20200089886A (ko) * 2019-01-18 2020-07-28 에스케이하이닉스 주식회사 데이터 저장 시스템 및 이를 위한 프리차지 정책 설정 방법
US11114150B2 (en) 2019-04-18 2021-09-07 Rambus Inc. Memory system with multiple open rows per bank
US11216386B2 (en) * 2019-09-26 2022-01-04 Intel Corporation Techniques for setting a 2-level auto-close timer to access a memory device
CN112487340A (zh) * 2020-12-23 2021-03-12 深圳市哈哈丫丫互联网有限公司 一种极速简约防盗Linux全屏浏览器的创新技术
US11449267B1 (en) 2021-04-28 2022-09-20 Micron Technology, Inc. Determination of durations of memory device temperatures

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6269433B1 (en) 1998-04-29 2001-07-31 Compaq Computer Corporation Memory controller using queue look-ahead to reduce memory latency
US6389514B1 (en) 1999-03-25 2002-05-14 Hewlett-Packard Company Method and computer system for speculatively closing pages in memory
US6604186B1 (en) * 1999-10-19 2003-08-05 Intel Corporation Method for dynamically adjusting memory system paging policy

Also Published As

Publication number Publication date
WO2003058456A1 (en) 2003-07-17
CN1284086C (zh) 2006-11-08
TWI284261B (en) 2007-07-21
KR20040064742A (ko) 2004-07-19
TW200305803A (en) 2003-11-01
EP1461706B1 (en) 2009-05-13
DE60232367D1 (de) 2009-06-25
CN1613064A (zh) 2005-05-04
EP1461706A1 (en) 2004-09-29
ATE431590T1 (de) 2009-05-15
US6799241B2 (en) 2004-09-28
AU2002359868A1 (en) 2003-07-24
US20030126354A1 (en) 2003-07-03

Similar Documents

Publication Publication Date Title
KR100626770B1 (ko) 메모리 페이지 종료 기법의 동적 조절 방법
US6687172B2 (en) Individual memory page activity timing method and system
US5889714A (en) Adaptive precharge management for synchronous DRAM
US7945737B2 (en) Memory hub with internal cache and/or memory access prediction
US6052134A (en) Memory controller and method for dynamic page management
KR100824487B1 (ko) 버퍼된 기록들 및 메모리 페이지 제어
MX2008014859A (es) Dispositivo de memoria hibrida con interfase individual.
JP4304172B2 (ja) 集積回路装置
US6507897B2 (en) Memory paging control apparatus
KR20160116533A (ko) 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법
US5651130A (en) Memory controller that dynamically predicts page misses
US20080098176A1 (en) Method and Apparatus for Implementing Memory Accesses Using Open Page Mode for Data Prefetching
US6505282B1 (en) Method and apparatus for determining memory types of a multi-type memory subsystem where memory of the different types are accessed using column control signals with different timing characteristics
WO2004053879A2 (en) Memory device and method having low-power, high write latency mode and high-power, low write latency mode and/or independently selectable write latency
US7080217B2 (en) Cycle type based throttling
JP3718599B2 (ja) キャッシュ装置、メモリ制御システムおよび方法、記録媒体
US20050081002A1 (en) Memory system and method of managing a memory system
US5893917A (en) Memory controller and method of closing a page of system memory
US6446169B1 (en) SRAM with tag and data arrays for private external microprocessor bus
EP1012687B1 (en) Method and apparatus for controlling data transfer between a synchronous dram-type memory and a system bus
US7543105B2 (en) Memory access control based on hit prediction
US5940848A (en) Computer system and method for efficiently controlling the opening and closing of pages for an aborted row on page miss cycle
US6785190B1 (en) Method for opening pages of memory with a single command
JPH08328949A (ja) 記憶装置

Legal Events

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

Payment date: 20110830

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20120904

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee