KR20140012186A - 메모리 페이지들의 일부에 저장된 메타데이터를 갖는 메모리 - Google Patents

메모리 페이지들의 일부에 저장된 메타데이터를 갖는 메모리 Download PDF

Info

Publication number
KR20140012186A
KR20140012186A KR1020137034015A KR20137034015A KR20140012186A KR 20140012186 A KR20140012186 A KR 20140012186A KR 1020137034015 A KR1020137034015 A KR 1020137034015A KR 20137034015 A KR20137034015 A KR 20137034015A KR 20140012186 A KR20140012186 A KR 20140012186A
Authority
KR
South Korea
Prior art keywords
page
metadata
memory device
data
bits
Prior art date
Application number
KR1020137034015A
Other languages
English (en)
Other versions
KR101559023B1 (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 KR20140012186A publication Critical patent/KR20140012186A/ko
Application granted granted Critical
Publication of KR101559023B1 publication Critical patent/KR101559023B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

기존의 전용 메타데이터가 없는 페이지-기반 메모리 디바이스를 구성하기 위한 시스템들 및 방법. 방법은 메모리 디바이스의 페이지의 메타데이터 부분으로부터 메타데이터를 판독하는 단계, 및 메타데이터에 기초하여 페이지의 특성을 결정하는 단계를 포함한다. 메모리 디바이스는 캐시로서 구성될 수 있다. 메타데이터는, 어드레스 태그들을 포함할 수 있어서, 특성을 결정하는 단계는, 페이지에 원하는 정보가 존재하는지 여부를 결정하는 단계, 및 페이지에 원하는 정보가 존재하는 것으로 결정되면 그 원하는 정보를 판독하는 단계를 포함할 수 있다. 메타데이터는 또한 에러-정정 코드(ECC)를 포함할 수 있어서, 특성을 결정하는 단계는 페이지에 저장된 데이터에 존재하는 에러들을 검출하는 단계를 포함할 수 있다. 메타데이터는 디렉토리 정보, 메모리 코히어런시 정보 또는 더티/유효/락 정보를 더 포함할 수 있다.

Description

메모리 페이지들의 일부에 저장된 메타데이터를 갖는 메모리{MEMORY WITH METADATA STORED IN A PORTION OF THE MEMORY PAGES}
개시된 실시예들은, 고속 저전력 애플리케이션들을 위한 메모리 구조들을 구성하는 것에 관한 것이다. 더 구체적으로, 예시적인 실시예들은, 캐시 메모리로서 이용하기 위한 대용량 동적 랜덤 액세스 메모리(DRAM) 구조들을 구성하는 것에 관한 것이다.
컴퓨터 프로세싱 시스템들은 일반적으로 몇몇 레벨들의 메모리를 포함한다. 프로세싱 코어 또는 중앙 프로세싱 유닛(CPU)에 가장 가까이 있는 것은, 제 1 레벨 캐시와 같은 캐시들이고, CPU로부터 가장 멀리 있는 것은 메인 메모리이다. 특히 캐시들이 CPU에 가까이 있고 온-칩(on-chip)으로 배치되면, 캐시들은 고속 및 작은 사이즈들의 요건들을 갖는다. 따라서, CPU에 가장 가까이 있는 캐시들은 통상적으로, 고속을 특징으로 하는 정적 랜덤 액세스 메모리(SRAM)로부터 형성된다. 그러나, SRAM은 또한 비싸다. 한편 동적 랜덤 액세스 메모리(DRAM)는 SRAM보다 느리지만, 또한 덜 비싸다. 따라서, DRAM은 연혁적으로, CPU로부터 더 멀리 있고 메인 메모리에 더 가까이 있는 위치에서 발견되어 왔다.
기술에서 최근의 진보들은, 큰 저장 용량 및 저전력 특징들을 갖는 DRAM 시스템들을 제조하는 것을 실현가능하게 해왔다. 예를 들어, 넓은 입력/출력(IO) 인터페이스들 및 에너지 효율적 스택킹(stacking)은, (2GB만큼 높은) 큰 저장 용량, 높은 대역폭 데이터 전송들, 및 또한 DRAM에 대해 이전에 공지된 것보다 더 낮은 레이턴시들을 갖는 DRAM 시스템들의 제조를 가능하게 해왔다.
따라서, 비교적 대용량 저장소는, 저전력 스택트(stacked) DRAM 시스템들이 몇몇 저전력 내장 시스템들 및 핸드헬드 디바이스 애플리케이션들에서 온-칩 메인 메모리 시스템들로서 동작하는 것을 가능하게 할 수 있다. 그러나, 이러한 저전력 스택트 DRAM 시스템들은 고성능 프로세싱 시스템들의 메인 메모리에 대해서는 적절한 대체물이 되지 못할 수 있는데, 이는, 이들의 저장 용량이 메인 메모리의 요구들을 충족시킬만큼 크지 않을 수 있기 때문이다.
한편, 저전력 및 고속을 특징으로 하는 저전력 스택트 DRAM 시스템들은 이제, CPU에 가까이 있는 캐시들에 대해 더 매력적이 될 수 있다. 예를 들어, 저전력 스택트 DRAM 시스템들은, CPU에 가까이 배치되기에는 너무 느릴 수 있는 종래의 DRAM 시스템들에 대한 캐시들로서 구성될 수 있다. 따라서, 저전력 스택트 DRAM 시스템들은, CPU에 가까이 있는 캐시 메모리들에서, 이전에 공지된 것보다 더 높은 저장 용량을 제공할 수 있다.
그러나, 현재 이용가능한 규격(off-the-shelf) 저전력 스택트 DRAM 모델들은, CPU에 가까이 있는 이러한 캐시 메모리 애플리케이션들에 대한 이들의 용이한 적용가능성을 제한할 수 있는 몇몇 제한들을 겪을 수 있다. 예를 들어, 규격 저전력 스택트 DRAM 시스템들은 에러 정정 코드들(ECC)과 같은 특징들을 구비하지 않을 수 있다. DRAM 셀들은 에러들에 매우 취약하고 누설형(leaky)일 수 있다. 따라서, ECC 메커니즘들과 같은 에러 검출 및 에러 정정 능력의 결핍은, 저전력 스택트 DRAM 시스템들을, CPU에 가까이 있는 캐시들에서 또는 에러-저항성 시스템에서 임의의 다른 종류의 저장소로서 이용하기에는 부적절하게 할 수 있다.
캐시 메모리로서 이용하기 위한 규격 저전력 스택트 DRAM 시스템들의 구성 시의 다른 장애물은, 태깅(tagging) 메커니즘들과 같이 고속 데이터 액세스를 가능하게 하는 특징들에 대한 이들의 지원 결핍이다. 주지된 바와 같이, 캐시 메모리들은, 캐시에서 각각의 카피된 라인에 대응하는 메모리 어드레스를 특정하는 태깅 메커니즘들을 포함한다. 효율적인 태그 구조들은, 캐시 메모리들에서 요청된 데이터에 대한 고속 검색들을 가능하게 한다. 그러나, 규격 저전력 스택트 DRAM 시스템들은 태깅 메커니즘들을 특징으로 하지 않아서, 태그 저장소에 대한 대안적 기술들의 부재시에, 이들을 캐시들로서 이용하는 것을 부적절하게 한다. DRAM들과 함께 이용하기 위한 적절한 태깅 메커니즘들을 설계하는 것은 몇몇 난제들을 제시한다. 예를 들어, 대용량 DRAM들(예를 들어, 2GB)의 경우, 태그 필드들 자체가 수 MB의 저장 공간을 요구할 것이다. 이러한 큰 태그 공간 오버헤드는, 태그들의 온-칩 구성 및 배치에서 몇몇 난제들을 유발시킨다.
추가적으로, 저전력 스택트 DRAM들에 대한 태깅 메커니즘들의 설계는, 더 큰 세트-연관성을 위해 태그 공간을 희생시키는 것과 관련된 내포적 균형에 의해 복잡하고, 따라서, 높은 손실율의 문제들을 도입시킨다. 유사하게, 디렉토리 정보 또는 멀티-프로세서 환경들에 대한 다른 메모리 코히어런시(coherency) 정보와 연관된 지능을 포함하도록 저전력 스택트 DRAM 시스템들을 설계할 때 난제들이 또한 제시된다.
따라서, CPU에 가까이 있는 캐시 메모리 애플리케이션들에서의 이용을 위해 저전력 스택트 DRAM 시스템들을 유리하게 활용하기 위해, 종래의 DRAM 시스템들에서 에러들에 대한 민감성, 효율적인 태깅 메커니즘들의 결핍 및 관련된 지능 특징들에 의해 발생되는 난제들을 극복할 필요가 있다.
본 발명의 예시적인 실시예들은, 캐시 메모리로서 이용하기 위한 대용량 동적 랜덤 액세스 메모리(DRAM) 구조들을 구성하기 위한 시스템들 및 방법에 관한 것이다.
예를 들어, 예시적인 실시예는, 페이지 기반 메모리를 포함하는, 기존의 전용 메타데이터가 없는 메모리 디바이스에 관한 것이고, 여기서 각각의 페이지는 제 1 부분 및 제 2 부분으로 분할되어, 제 1 부분은 데이터를 포함하고, 제 2 부분은 제 1 부분의 데이터에 대응하는 메타데이터를 포함한다. 예시적인 실시예들에서, 메타데이터는, 에러 정정 코드(ECC), 어드레스 태그들, 디렉토리 정보, 메모리 코히어런시 정보 또는 더티(dirty)/유효(valid)/락(lock) 정보 중 적어도 하나를 포함할 수 있다.
다른 예시적인 실시예는, 기존의 전용 메타데이터가 없는 페이지-기반 메모리 디바이스를 구성하는 방법에 관한 것이고, 이 방법은, 메모리 디바이스의 페이지의 메타데이터 부분으로부터 메타데이터를 판독하는 단계, 및 메타데이터에 기초하여 페이지의 특성을 결정하는 단계를 포함한다.
또 다른 예시적인 실시예는, 기존의 메타데이터가 없는 페이지-기반 메모리 디바이스를 포함하는 메모리 시스템에 관한 것이고, 여기서 메모리 디바이스의 페이지는 제 1 저장 수단 및 제 2 저장 수단, 제 1 저장 수단에 저장된 메타데이터, 및 제 2 저장 수단에 저장된 데이터를 포함하고, 여기서 제 1 저장 수단의 메타데이터는 제 2 저장 수단의 데이터와 연관된다.
다른 예시적인 실시예는, 프로세서에 의해 실행되는 경우 프로세서로 하여금, 기존의 전용 메타데이터가 없는 페이지-기반 메모리 디바이스를 구성하기 위한 동작들을 수행하게 하는 코드를 포함하는 비일시적(non-transitory) 컴퓨터 판독가능 저장 매체에 관한 것이고, 비일시적 컴퓨터 판독가능 저장 매체는, 메모리 디바이스의 페이지의 메타데이터 부분으로부터 메타데이터를 판독하기 위한 코드, 및 메타데이터에 기초하여 페이지의 특성을 결정하기 위한 코드를 포함한다.
첨부된 도면들은 본 발명의 실시예들의 설명을 보조하도록 제시되고, 실시예들의 제한이 아니라 이들의 오직 예시를 위해 제공된다.
도 1은, 관련된 메타데이터가 없는 데이터의 페이지를 포함하는 종래의 DRAM 시스템을 도시한다.
도 2는, 예시적인 실시예들에 따른 DRAM 시스템을 도시하고, 여기서 DRAM 시스템의 페이지는, 페이지에 저장된 데이터에 대응하는, 페이지와 관련된 메타데이터를 포함함으로써, 캐시에서 이용하기 위해 구성된다.
도 3은, 캐리로서 이용하기 위해, 구성된 예시적인 DRAM 시스템의 파이프라인화된 액세스에 대한 예시적인 타임 라인을 도시한다.
도 4는, 캐시로서 이용하기 위해, 기존의 메타데이터가 없는 페이지-기반 메모리 시스템을 구성하는 예시적인 방법을 상세화하는 흐름도를 도시한다.
본 발명의 양상들은, 본 발명의 특정한 실시예들에 대한 하기 설명 및 관련된 도면들에서 개시된다. 본 발명의 범위를 벗어남이 없이 대안적인 실시예들이 고안될 수 있다. 추가적으로, 본 발명의 관련된 세부사항들을 모호하게 하지 않기 위해, 본 발명의 주지의 엘리먼트들은 상세히 설명되지 않거나 생략될 것이다.
용어 "예시적인"은 "예시, 예 또는 예증으로 기능하는"을 의미하도록 본 명세서에서 사용된다. 본 명세서에서 "예시적인" 것으로 설명되는 임의의 실시예는 반드시 다른 실시예들에 비해 선호되거나 유리한 것으로 해석될 필요는 없다. 유사하게, 용어 "본 발명의 실시예들"은, 본 발명의 모든 실시예들이 논의된 특징, 이점 또는 동작 모드를 포함하도록 요구하는 것은 아니다.
본 명세서에서 사용되는 용어는 오직 특정한 실시예들을 설명하기 위한 목적이고, 본 발명의 실시예들의 제한으로 의도되지 않는다. 본 명세서에서 사용되는 바와 같이, 단수 형태들("a", "an" 및 "the")은, 문맥상 달리 명확하게 나타내지 않으면 복수 형태들을 또한 포함하도록 의도된다. 용어들 "포함하는("comprises", "comprising,", "includes" 및/또는 "including")"은 본 명세서에서 사용되는 경우 언급된 특징들, 정수들, 단계들, 동작들, 엘리먼트들 및/또는 컴포넌트들의 존재를 특정하지만, 하나 또는 그 초과의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지 않음이 추가로 이해될 것이다.
추가로, 많은 실시예들은 예를 들어, 컴퓨팅 디바이스의 엘리먼트들에 의해 수행될 동작들의 시퀀스들의 관점에서 설명된다. 본 명세서에서 설명되는 다양한 동작들은, 특정한 회로들(예를 들어, 주문형 집적 회로들(ASIC들))에 의해, 하나 또는 그 초과의 프로세서들에 의해 실행되는 프로그램 명령들에 의해, 또는 이 둘의 조합에 의해 수행될 수 있음이 인식될 것이다. 추가적으로, 본 명세서에서 설명되는 동작들의 이러한 시퀀스는, 실행 시에 연관 프로세서로 하여금 본 명세서에서 설명되는 기능을 수행하게 할 컴퓨터 명령들의 대응 세트가 저장된 임의의 형태의 컴퓨터 판독가능 저장 매체 내에서 완전히 구현되는 것으로 간주될 수 있다. 따라서, 본 발명의 다양한 양상들은 다수의 상이한 형태들로 구현될 수 있고, 이들 전부는 청구된 청구 요지의 범위 내에 있는 것으로 고려된다. 또한, 본 명세서에서 설명되는 실시예들 각각에 대해, 임의의 이러한 실시예들의 대응 형태는, 예를 들어, 설명된 동작을 수행하도록 "구성되는 로직"으로 본 명세서에서 설명될 수 있다.
앞서 제시된 바와 같이, 저전력 스택트 DRAM 시스템들과 같은 현재 이용가능한 규격 DRAM 시스템들은 에러에 매우 취약할 수 있고, 따라서 캐시 메모리들에서 요구되는 데이터 신뢰도의 결정적인 표준들을 충족시키지 못할 수 있다. 따라서, 예시적인 실시예들은, 에러 검출 및 에러 정정 특징들, 이를테면 ECC 메커니즘들이 도입된 이러한 저전력 스택트 DRAM 시스템들의 구성들을 포함한다. 실시예들은 또한, 최소의 저장 공간 오버헤드 및 고속 액세스로 ECC 비트들을 도입시키기 위해, 저전력 스택트 DRAM 시스템들의 페이지-기반 메모리 아키텍쳐 및 데이터 저장 공간의 효율적 활용을 포함한다.
예시적인 실시예들은 또한, 이용가능한 규격 저전력 스택트 DRAM 아키텍쳐들에서 고속 데이터 탐색들을 위한 빌트-인(built-in) 태깅 메커니즘들이 결핍됨을 인식한다. DRAM 시스템들은 종래에 데이터를 페이지들에 저장한다. 예를 들어, DRAM 시스템은 1KB 페이지 사이즈들에 저장된 데이터를 포함할 수 있다. 실시예들은, 각각의 페이지를 세트-연관 캐시의 세트로서 취급함으로써, 페이지-기반 DRAM 메모리의, 태깅 메커니즘들을 갖는 캐시형 메모리로의 변환을 실현한다. 이하, 일반화의 손실없이, 설명은, 이해의 용이함을 위해, 단일 세트를 갖는 캐시로서 구성되는 저전력 스택트 DRAM 시스템들의 단일 페이지에 집중될 것이다. 그 다음, 페이지의 각각의 라인은 세트-연관 캐시의 웨이(way)로서 취급될 수 있고, 태그들은 각각의 라인에 적용될 수 있다. 태그들은, 캐시에 특정한 메모리 위치가 존재하는지 여부를 식별하도록 요구되는 비트들을 포함한다. 통상적으로, 메모리 어드레스의 몇몇 선택된 비트들은 라인의 바이트들을 식별하는데 이용될 수 있고, 몇몇 다른 선택된 다른 비트들은, 메모리 어드레스가 대응하는 세트를 식별하는데 이용될 수 있고, 나머지 어드레스 비트들은 태그를 형성하기 위해 활용될 수 있도록, 메모리 어드레스들이 구성된다. 그러나, 이 프로세스에 의해 도입되는 태그 필드들은, 이들의 저장, 구성 및 배치에서 난제들을 제시한다.
먼저, 태그 필드들은 상당한 저장 공간을 요구한다. 예를 들어, 실시예는, 1 킬로 바이트(KB)의 페이지 사이즈들을 갖는 저전력 스택트 DRAM의, 캐시 메모리로서의 구성을 수반할 수 있다. 따라서, 1KB 페이지는 64 바이트(B) 라인들을 갖는 16-웨이 캐시로서 구성될 수 있다. 물리적 메모리가 1 테라바이트(TB) 사이즈인 것으로 가정하면, 물리적 메모리 공간에 어드레스하기 위해 40-비트들이 요구될 수 있다. 따라서, 64B 라인에서 바이트를 식별하기 위해 6-비트들이 요구될 수 있고, 세트를 식별하기 위해 21-비트들이 요구될 수 있다. 따라서, 대략 2백만개의 세트들을 갖는 1KB 16-웨이 DRAM 캐시에서 각각의 라인에 대한 태그를 형성하기 위해 40-(6+21), 즉 13-비트들이 요구될 수 있다. 따라서, 16-웨이들 각각당 하나의 캐시 라인을 갖는 16-웨이 캐시의 경우, 태그 비트들의 수는 13x16, 즉 208-비트들일 수 있다. 인식될 바와 같이, DRAM 데이터의 각각의 1KB 페이지 사이즈에 대한 태그들의 208-비트들은 상당한 태그 공간 오버헤드를 나타낸다.
둘째로, 태그 공간을 감소시키기 위해, 캐시 라인 사이즈는 증가될 수 있고, 캐시 라인 엔트리들이 수는 감소될 수 있어서 캐시의 전체 저장 용량은 불변으로 유지됨이 인식될 것이다. 그러나, 캐시 엔트리들의 수를 감소시키는 대가로 캐시 라인 사이즈를 증가시키는 것은 손실율을 증가시킬 수 있다. 추가로, 캐시 라인 사이즈를 증가시키는 것은 또한, 캐시 라인이 채워지거나 판독되는 경우 전송되는 데이터의 양을 증가시키는 효과를 갖는다. 추가로, 캐시 라인들 및 페이지들의 지능적 구성은, 요청된 데이터를 탐색하는 프로세스에서 액세스될 필요가 있을 수 있는 페이지들의 수에 대해 상당한 영향을 미친다. 따라서, 예시적인 실시예들은, 태그 공간 오버헤드 및 구성에 수반되는 난제들에 대한 효율적인 솔루션들을 설명할 것이다. 예를 들어, 특정한 실시예들은, 페이지 판독 시에, 태그들이 히트(hit)를 나타내면, 페이지가 여전히 오픈된 동안 대응하는 데이터가 액세스될 수 있도록, 페이지 자체 내에서 페이지의 데이터에 대응하는 태그 필드들을 포함한다. 추가적으로, 예시적인 실시예들은 또한, 멀티-프로세서 환경들에 대한 메모리 코히어런시 정보 및 디렉토리 정보의 효율적인 구성에 대한 요구를 고려한다.
본 명세서에서 사용되는 바와 같이, 용어 "메타데이터"는, 예시적인 실시예들에서 DRAM 시스템들에 도입되는 데이터에 대응하는 정보 및 에러 정정 코드들의 다양한 비트들을 포괄적으로 지칭한다. 예를 들어, ECC-비트들, 태그 정보(이 분야에 공지된 바와 같이, 더티/유효/락된(locked) 모드 정보를 포함함), 디렉토리 정보 및 다른 메모리 코히어런시 정보가 총괄적으로 메타데이터로 지칭될 수 있다. 예시적인 실시예들은, 이러한 메타데이터가 결핍된 DRAM 시스템들에 메타데이터를 도입시키기 위한 기술들에 관한 것이다. 실시예들은 추가로, DRAM 시스템들을 신뢰가능하고 높은 효율의 캐시 시스템들로서 구성하기 위한, 메타데이터의 효율적 저장, 구성 및 액세스에 관한 것이다.
상기와 같이 저전력 스택트 DRAM 시스템들을 구성하는 것을 참조하고 이에 집중하지만, 본 명세서에서 설명되는 실시예들은 이에 제한되는 것이 아니라, 메타데이터가 없는 임의의 메모리 시스템을, 메타데이터를 포함하는 메모리 시스템으로 변환하는 것으로 쉽게 확장될 수 있음이 인식될 것이다.
아래에서, 에러 검출/정정 특징들이 결핍된 저전력 스택트 DRAM 시스템들과 같은 DRAM 시스템을, 효율적인 ECC 구현들을 포함하는 예시적인 DRAM 시스템으로 구성하는 예시적인 프로세스를 설명한다. 도 1을 참조하면, 페이지(102)를 포함하는 종래의 DRAM 시스템(100)이 도시되어 있다. 페이지(102)는, 도시된 바와 같이, 16개의 행들(워드 라인들) 및 8x64=512개의 열들(비트 라인들)로 분할된 1KB 사이즈이다. 페이지(102)는 1KB DRAM 비트 셀들에 데이터를 저장하고, 각각의 비트 셀은, 정보를 전하 형태로 저장하는 커패시터로 형성된다.
앞서 논의된 바와 같이, DRAM 시스템(100)은, 비트 셀들의 커패시터들이 누설형이기 때문에 휘발성이다. 커패시터에 저장된 정보를 보유하기 위해, 커패시터들의 일정한 리프레쉬가 요구된다. 아울러, 정보는, 전자기장들에서의 변동들과 같은 다양한 외부 팩터들에 의해 도입되는 에러들에 취약하다. 따라서, 에러 검출 및 정정은, 저장된 데이터의 신뢰도를 보장하기 위해 중요하다.
에러 검출 및 정정을 위한 통상적인 기술은 ECC 비트들의 이용을 수반한다. ECC 비트들은 데이터 비트들과 연관된 리던던시의 레벨을 표현한다. 이 리던던시는 데이터의 일관성을 체크하는데 이용된다. ECC 비트들은 초기에, 정확한 것으로 알려진 원래의 데이터 값들에 기초하여 계산된다. 간단한 예로서, ECC 비트들은 패리티 값을 표현하여, 이 패리티 값은, 원래의 데이터에 존재하는 로직 "1들"의 수가 홀수인지 짝수인지 여부를 나타낼 수 있다. 추후의 시점에, 패리티 값은 데이터에 대해 다시 생성되어 존재하고, ECC 비트들과 비교될 수 있다. 미스매치가 존재하면, 원래의 데이터에 적어도 하나의 에러가 도입된 것으로 결정될 수 있다. ECC의 기본적 원리들을 이용하여, 에러들(발견되었다면)의 정교한 분석, 및 에러들의 후속적 정정을 위한 더 복잡한 알고리즘들이 이 분야에 주지되어 있다. 당업자들은, 예시적인 실시예들에 의해 인에이블되는 특정한 애플리케이션들에 대한 적절한 에러 검출/정정 알고리즘들을 인식할 것이기 때문에, 이러한 알고리즘들의 상세한 설명들은 본 명세서에서 제공되지 않을 것이다.
이제 도 1의 DRAM 시스템(100)으로 되돌아가면, 예를 들어, 페이지(102)에 ECC 비트들을 도입시키기 위해 몇몇 옵션들이 이용가능하다. 종래에는, 싱글-에러-정정/더블-에러-검출(SEC/DED)을 인에이블하기 위해, 데이터의 각각의 64 비트들에 대해 8 비트들의 ECC 정보 이용되고, 이것은, ECC 비트들에 의해 도입되는 12.5%의 오버헤드를 포함한다. 이러한 종래의 구현은, 데이터의 매 64-비트들에 대한 ECC의 8-비트들의, 시장에서의 스톡(stock) 이용가능성에 의해 동기부여될 수 있음이 인식된다. 그러나, 메모리의 에러들을 정정하기 위해 평균적으로 더 적은 비트들이 요구되도록, 데이터와 함께 빌트-인된 ECC 비트들의 커스터마이징된 구현은 더 효율적인 SEC/DED가 가능하다. 예시적인 실시예들은, SEC/DED에 대해 데이터의 512-비트들당 11 ECC-비트들을 이용함으로써 2.1%까지, 그리고 더블-에러-정정(DEC)에 대해 데이터의 512-비트들당 21 ECC-비트들을 이용함으로써 4.1%까지, 오버헤드를 감소시킬 수 있다. 따라서, 1 KB 또는 1024 바이트들의 데이터를 포함하는 페이지(102)는 16개의 64-B(512-비트들) 라인들로 세그먼트화될 수 있다. 따라서, SEC/DED 구현은 페이지당 16*11 즉 176 비트들의 ECC를 요구할 수 있다.
이제 도 2를 참조하면, 페이지 내에서 ECC 비트들의 효율적인 배치가 도시되어 있다. 도 2는, 예시적인 실시예들에 따라 구성되는 DRAM 시스템(200)을 도시한다. DRAM 시스템(200)은 예시적인 실시예들에서 저전력 스택트 DRAM 모델로부터 형성될 수 있다. DRAM 시스템(200)은, 데이터 비트들과 함께 ECC 비트들을 저장하도록 구성되는 페이지(202)를 포함한다. 페이지(202)는 16-웨이들 또는 라인들 L0-L15를 포함하고, 각각의 라인은 64-바이트들(512 비트들)을 포함한다. 라인들 L1-L15는 데이터를 저장하기 위해 활용되고, 라인 L0은 메타데이터를 위해 배정된다. 도 2는 라인 L0에서 16개의 32-비트 필드들 E0-E15를 도시한다. 필드들 E0-E15는 라인들 L0-L15 중 하나에 대한 메타데이터에 각각 고유하게 대응한다. 다른 정보 중, 필드들 E0-E15는 라인들 L0-L15와 관련된 ECC 비트들을 포함할 수 있다.
예시적인 실시예들에 따르면, 라인들 L1-L15는 먼저, 페이지(202)에 저장될 데이터로 채워질 수 있다. 그 다음, ECC 비트들이 데이터 L1-L15의 라인들 각각에 대해 계산될 수 있고, ECC 비트들은 필드들 E1-E15에 각각 저장될 수 있다. 앞서 도시된 바와 같이, ECC의 11-비트들은 512-비트 라인들 L1-L15 각각의 SEC/DED에 대해 충분할 수 있다. 이 예에서, 필드들 E1-E15 각각에서 32-비트들 중 11개는 ECC 비트들에 의해 점유될 수 있어서, 아래에서 추가로 설명되는 바와 같이, 라인들 L1-L15와 관련된 다른 메타데이터 정보에 의한 이용을 위해 이용가능한 21-비트들이 되게 한다. 필드 E0에 관하여, 또한 가능한 에러들로부터의 보호가 메타데이터 필드들에 부여될 수 있도록, 필드들 E1-E15와 관련된 ECC 정보는 필드 E0에서 이용가능하게 될 수 있다. 특정한 구현들에서, 필드 E0은 ECC 계산들을 수행하기 위해 제로-값으로 설정될 수 있다. 당업자들은, 앞서 상세화된 기술에 기초하여, 특정한 애플리케이션들에 대한 ECC의 효율적인 구현 세부사항들을 인식할 것이다.
이제, 도 2의 페이지(202)에서 데이터의 고속 탐색을 위한 태깅 메커니즘들의 효율적인 구현들에 대한 설명이 제공될 것이다. 이전에 도입된 바와 같이, 전체 물리적 메모리 공간은 1 TB의 사이즈로 가정될 수 있다. 1TB의 물리적 메모리 공간은 40-비트들로 어드레스될 수 있다. 전제 1TB의 물리적 메모리가 64-바이트(즉, 2^6 바이트) 입도(granularity)로 어드레스되는 것으로 가정하면, 1TB(즉, 2^40 바이트)의 물리적 메모리는 2^34개의 이러한 64-바이트 라인들을 포함할 것이다. 태그들을 형성하기 위해 총 27-비트들의 어드레싱은 요구되지 않을 것이다. 따라서, 40-비트 어드레스 공간 중 나머지 13-비트들은, 64-바이트 라인들 각각에 대응하도록 효율적인 태그들을 형성하기에 충분할 것이다. 따라서, 이 예에서, 태그 정보의 13-비트들은, 라인들 L1-L15에 대응하는 필드들 E1-E15 각각에 저장될 수 있다.
도 2를 계속 참조하면, 필드들 E1-E15에 이렇게 저장된 태그들은, 페이지(202)의 라인들 L1-L15에 대응하는 태그들 모두가 페이지(202)에 내에 포함되는 것을 보장할 것이다. 이제 나타날 바와 같이, 대응하는 데이터와 동일한 페이지 내에서의 태그들의 이러한 구성은, 페이지(202)가 캐시로서 구성되는 경우, 요청된 데이터에 대한 액세스 및 탐색 속도들을 유리하게 개선시킨다.
예시적인 실시예들에서, 데이터 요청이 DRAM 시스템(200)의 페이지(202)에 의도되는 경우, 페이지(202)는 먼저 검사를 위해 오픈된다. 다음으로, 라인 L0이 액세스되는 경우, 필드들 E1-E15에서 태그들을 포함하는 메타데이터가 분석된다. 필드들 E1-E15에서 태그들 중 하나에 히트가 존재하면, 히트를 초래한 그 태그에 대응하는 라인 L1-L15은 요청된 데이터를 포함하는 라인으로 결정될 것이다. 그 다음, 요청된 데이터를 포함하는 데이터 라인은, 예를 들어, 판독 동작에서 판독될 수 있다. 한편, 필드들 E1-E15에 저장된 태그들 중 어떠한 태그에서도 히트가 존재하지 않으면, 페이지(202)는 그 요청된 데이터를 포함하지 않는 것으로 신속하게 결정될 수 있고, 페이지(202)는 신속하게 클로즈될 수 있다. 대안적으로, 요청된 데이터가 캐시에 존재하지 않고 미스를 초래하여, 데이터가 캐시에서 후속적으로 배치되는 것을 초래하면, 새로운 라인에 대해, 그리고 또한 미스의 결과로서 또한 다시 기록될 필요가 있을 수 있는 임의의 배척된(evicted) 라인에 대해 적절한 페이지가 오픈된다. 각각의 페이지는 예시적인 실시예들에서 세트로서 취급되기 때문에, 페이지(202)가 요청된 데이터를 포함하지 않는 것으로 결정되고 페이지(202)가 클로즈되면, 요청된 데이터는 DRAM 시스템(200)에 존재하지 않는 것으로 결정될 수 있다. 그 후, 실시예들은 데이터 요청을 서비스하기 위해 메인 메모리에 대한 액세스를 개시할 수 있다. 따라서, 데이터 및 대응하는 태그들을 동일한 페이지에 구성하는 것은, 태그 데이터베이스에 대한 별개의 악화된 액세스들에 후속하는 저장된 데이터에 대한 액세스에 대한 필요성을 회피하여, 액세스 속도들 및 에너지 효율을 개선시킴을 인식할 것이다.
이제, 속도 및 효율을 추가로 개선하기 위해, 예시적인 실시예들에서 메타데이터의 구성에 대한 몇몇 최적화들이 설명될 것이다. 메모리 액세스 동작이 몇몇 단계들로 분해될 수 있도록, 메모리 액세스들은 프로세싱 시스템들에서 파이프라인화될 수 있고, 각각의 단계는 시스템 클럭의 단일 사이클에서 실행된다. 이러한 단계들은 "빗트들(beats)"로서 표현될 수 있고, 여기서 메모리 동작의 제 1 빗트는 제 1 클럭 사이클에서 수행될 수 있고, 제 2 빗트는 다음 클럭 사이클에서 수행되는 식이다. 처음 몇몇 빗트들 동안 더 많은 결정적 정보가 이용가능하게 되도록 메타데이터가 구성될 수 있다. 이러한 구성은, 검사를 위해 오픈된 특정한 페이지의 유용성의 신속한 결정을 가능하게 할 수 있다.
예를 들어, 일 실시예에서, 13-비트 태그들의 최하위 8-비트들은, 페이지(202)가 오픈된 후 제 1 빗트에서 이용가능하게 되는 방식으로 필드들 E1-E15에 배치될 수 있다. 태그들의 이러한 최하위 8-비트들은, 페이지(202) 내에서 요청된 데이터에 대한 히트 또는 미스의 우도(likelihood)에 대한 매우 양호한 추정을 제공한다. 필드들 E1-E15에서 태그들 중 오직 하나가 최하위 8-비트들에서 히트를 나타내는 경우, 그 히트는 거짓일 가능성이 더 적은 것으로 결정될 수 있다 (한편, 다수의 히트들이 존재하면, 페이지(202)에서 그 요청된 데이터의 존재를 정확하게 결정하기에는 최하위 8-비트들이 불충분할 수 있는 가능성이 있다). 따라서, 제 1 빗트에서 단일 히트가 결정되면, 그 대응하는 데이터에 대한 조기 페치(fetch) 요청이 발행될 수 있다.
그 후, 태그의 나머지 비트들은 제 2 빗트에서 액세스될 수 있고, 제 1 빗트에서 액세스된 태그의 최하위 8-비트들과 함께 연구된다. 그 다음, 완전한 태그가 히트 또는 미스에 대해 분석될 수 있고, 그에 따라 동작이 취해질 수 있다. 예를 들어, 제 2 빗트에서, 제 1 빗트에서의 히트 표시가 거짓인 것으로 결정되면, 임의의 발행된 조기 페치 요청들이 중단(abort)될 수 있다. 대안적으로, 제 2 빗트에서 히트가 결정 또는 확인되면, 페치 요청이 각각 개시 또는 유지될 수 있다. 제 1 및 제 2 빗트들에서 미스 표시는, DRAM 시스템(200) 내에서 상이한 페이지로 진행하도록 탐색 프로세스를 트리거링할 수 있다. 당업자들은, 예시적인 실시예들의 범위를 벗어남이 없이, 앞서 설명된 것과 유사한 라인들에 대해 다양한 대안적인 구현들을 인식할 것이다.
추가적인 최적화들은, ECC 비트들을 필드들 E1-E15에 배치하는 것을 포함할 수 있어서, ECC 비트들은, 결정적 태그 정보 이후 추후의 빗트들에서 액세스될 수 있다. 이는, ECC 비트들이 페이지(202)에서의 요청된 데이터의 존재에 대한 신속한 결정에 대해 무관할 수 있기 때문이다. 특정한 실시예들에서, ECC 비트들은 또한 메타데이터 자체에 대해 결정될 수 있다(예를 들어, 필드 E0에 저장될 수 있다). 이러한 ECC 비트들이, 태그들에서 에러가 발생할 수 있었음을 나타내면, 더 앞선 빗트들에서 히트들/미스들에 대한 이전의 결정은 적절히 개정될 필요가 있을 수 있다. 더 앞선 빗트들에서 히트/미스 결정에 기초한 데이터의 추측성 페칭(fetching)은 속도와 전력 요건들 사이의 허용가능한 트레이드오프들에 기초하여 실시예들에서 적절히 계량될 수 있는데, 이는 추측성 페치들이, 오예측(misprediction)의 경우 버닝 파워(burning power)를 대가로 속도를 개선시킬 수 있기 때문이다.
이제, 도 3을 참조하면, 메타데이터의 최적화된 구성에 기초하여, 페이지(202)에 대한 데이터 요청을 프로세싱하기 위한 예시적인 타임 라인이 도시되어 있다. 도시된 바와 같이, 시간(302)에서, 검사를 위해 페이지(202)를 오픈하라는 커맨드가 발행된다. 시간(304)에서, 필드들 E1-E15로부터의 태그들은 페이지(202)의 라인 L0으로부터 검사를 위해 요청된다. 시간(306)에서, 태그들의 최하위 8-비트들이 이용가능하게 된다.(제 1 빗트). 시간(308)에서, 태그의 나머지 비트들 및 임의의 추가적 메타데이터가 페이지(202)로부터 이용가능하게 된다(제 2 빗트). 리트리브된 태그 비트들에 기초하여, 제 1 및/또는 제 2 빗트들에서 히트/미스 결정들이 수행될 수 있다. 리트리브된 태그들 중 하나에서 거짓이 아닌 히트가 실현된 것으로 가정하면, 대응하는 라인으로부터의 요청이 탐색 프로세스에 의해 생성되어 시간(310)에서 페이지(202)에 도달한다. 시간들(312 및 314)에서, 11개의 ECC 비트들이 (예를 들어, 제 3 및 제 4 빗트들 동안) 파트들 1 및 2에서 필드들 E0-E15로부터 리트리브될 수 있다. 제 1 및 제 2 빗트들 동안 히트를 초래한 라인으로부터 요청된 데이터에 어떠한 에러들도 존재하지 않음을 ECC 비트들이 나타내는 것으로 가정하면, 데이터(64-바이트들)는 시간들(316-322)에서 4개의 빗트들에서 리트리브된다. 따라서, 페이지(202) 상에서 탐색 요청을 프로세싱하는 파이프라인화된 실행이 수행될 수 있고, 이것은, 예시적인 실시예들에서 메타데이터의 최적화된 구성을 유리하게 활용한다.
특정한 실시예들에서, 추가적인 유리한 특징들이 포함될 수 있다. 예를 들어, 실시예들은, 이제 설명될 바와 같이, 대응하는 데이터와 동일한 페이지에 메타데이터를 보유하는 것으로부터 추가적인 이점들을 도출할 수 있다. 종래의 인덱싱 방식들은 태그들을 형성하기 위해 최하위 비트들에 의존하여, 세트-연관 캐시 구조에서 연속적으로 어드레스되는 라인들이 연속적 세트들에서 구성된다. 이러한 종래의 인덱싱 원리들을 예시적인 실시예들로 확장하는 것은, 각각의 페이지가 세트로서 구성되었기 때문에, 연속적으로 어드레스된 라인들 상의 연속적 미스들에 대해 새로운 페이지가 오픈될 필요가 있을 수 있음을 의미할 것이다. 이러한 연속적 미스들과 연관된 부정적 영향들을 최소화하기 위해, 실시예들은, 최하위 비트들과는 반대로, 인덱싱을 위해, 태그의 중간 비트들을 활용할 수 있다. 따라서, 연속적으로 어드레스된 라인들 상의 미스들은 동일한 DRAM 페이지 내에 속할 수 있도록 보장될 것이어서, 다수의 DRAM 페이지들은 연속적으로 오픈될 필요가 없다.
예시적인 예로서, 예시적인 실시예들의 태그들의 13-비트들 중 최하위 6-비트들은 64-바이트 라인에서 개별적인 바이트들을 어드레스하는데 이용될 수 있다. 따라서, 종래의 기술들에서와 같이 최하위 비트들을 이용하는 대신에, 위치들 8-29에서 더 상위의(higher order) 비트들이 예시적인 실시예들에서 인덱싱을 위해 이용될 수 있고, 이는, 연속적으로 어드레스된 라인들이 세트에 속하는 것을 용이하게 할 것이어서, 연속적으로 어드레스된 라인들 상의 미스들이 동일한 DRAM 페이지 내에 속하게 한다. DRAM 페이지-캐시 내에서 라인들의 이러한 구성은 페이지의 다양한 라인들 사이에서 충돌 압력을 증가시킬 수 있지만, 이러한 구성들은 레이턴시를 유리하게 개선할 것이다. 인식될 바와 같이, 페이지(202)의 16개의 라인들은, 15-웨이 캐시(라인들 L1-L15: 라인 L0은 메타데이터에 대해 이용됨)를 형성하도록 구성된다.
추가적인 유리한 양상들은, 필드들 E0-E15에서 이용가능할 수 있는 미사용 메타데이터 공간에 기초하여, 예시적인 실시예들에 포함될 수 있다. 페이지(202)에 대해 설명된 바와 같이, 필드들 E0-E15 각각은 32-비트들을 포함한다. ECC 비트들은 11-비트들을 점유하고, 상태 비트들(유효/더티/락된 상태들을 표현함)을 포함하는 태그 정보는 13+3=16-비트들을 점유한다. 이것은, 메타데이터 필드들에서 5-비트들의 미사용된 공간을 남긴다. 이전에 설명된 바와 같이, 디렉토리 정보 및 다른 캐시-코히어런시 관련 정보는 메타데이터의 나머지 5-비트들에 저장될 수 있다. 추가로, "유효", "더티" 및 "락된" 비트들은 또한 메타데이터 필드들에 도입될 수 있다. 유효 및 더티 비트들은 오래된/변형된 캐시 라인들의 추적 및 대체를 보조할 수 있다. 때때로, 관련된 DRAM 캐시 라인을 무효 및 락된 것으로 지정함으로써, 결함있는 부분들이 복원될 수 있다. 더 효율적인 대체 정책들 또는 프리페치 기술들을 용이하게 하는 정보와 같은 다른 정보가 또한 메타데이터 필드들에 도입될 수 있다. 다양한 다른 형태들의 지능이 메타데이터 필드들에 포함될 수 있고, 당업자들은, 본 명세서에 제공된 예시적인 설명들에 기초하여, 메타데이터의 적절한 구성들을 인식할 수 있을 것이다.
추가적으로, 캐시된 메타데이터에 대응하여 빈번하게 액세스되는 캐시 라인들과 관련된 정보가 신속하게 리트리브될 수 있도록, 예시적인 실시예들은 또한 메타데이터를 별도로 캐시하도록 구성될 수 있다. 구현들은, 이러한 메타데이터를 캐시하기 위한 별개의 캐싱 구조들을 수반할 수 있거나, 또는 대안적으로, 이러한 캐시는 DRAM 시스템(200)과 같은 DRAM 시스템의 하나 또는 그 초과의 페이지들에서 수행될 수 있다. 추가적인 최적화로서, 메모리 시스템 상에서 실행되고 있는 애플리케이션들의 특성에 기초하여, 오픈 페이지들에서 대응하는 캐시 라인들이 장래의 액세스의 높은 우도를 갖는 것으로 알려진 경우, 오픈된 것으로 현재 알려진 페이지들과 관련된 메타데이터만이 캐시될 수 있다.
예시적인 실시예들의 앞선 개시로부터, (도 2의 DRAM 시스템(200)과 같은) 페이지 기반 메모리 디바이스는, 메모리 디바이스의 (페이지(202)와 같은) 각각의 페이지가 제 1 부분(예를 들어, 라인들 L1-L15) 및 (라인 L0과 같은) 제 2 부분으로 분할될 수 있어서, 제 1 부분은 데이터를 포함하고, 제 2 부분은 제 1 부분의 데이터에 대응하는 메타데이터를 포함하도록 구성될 수 있음이 보여질 것이다.
실시예들은, 본 명세서에서 개시된 프로세스들, 기능들 및/또는 알고리즘들을 수행하기 위한 다양한 방법들을 포함하는 것이 또한 인식될 것이다. 예를 들어, 도 4에 도시된 바와 같이, 실시예는, 캐시로서, 전용 메타데이터가 없는 페이지-기반 메모리 디바이스를 이용하는 방법을 포함할 수 있고, 이 방법은, 메모리 디바이스의 페이지(예를 들어, 도 2의 페이지(200))의 메타데이터 부분(예를 들어, 도 2의 제 2 부분(202))으로부터 메타데이터(예를 들어, 도 2에 도시된 것과 같은 필드들 E0-E15 ―이들은 어드레스 태그들 또는 ECC 비트들을 포함할 수 있음―)를 판독하는 단계(블록(402)); 및 메타데이터에 기초하여, 페이지의 특성을 결정하는 단계(예를 들어, 어드레스 태그들을 포함하는 메타데이터에 기초하여 원하는 정보가 존재하는지 여부를 결정하는 단계, 또는 ECC 비트들을 포함하는 메타데이터에 기초하여, 페이지에 존재하는 데이터에서 에러가 검출되는지 여부를 결정하는 단계 ―(블록(404)))를 포함한다. 특성을 결정하는 단계의 결과에 기초하여, 방법은, 선택적으로, 원하는 정보가 페이지에 존재하면 그 원하는 정보를 판독하는 단계, 또는 검출되었을 수 있는 에러를 정정하는 단계와 같은 추가적 동작을 취하는 단계를 포함할 수 있다(미도시).
추가로, DRAM 시스템(200)과 같은 저전력 스택트 DRAM은, 넓은 입력/출력 인터페이스, TSV(true silicon via) 인터페이스 또는 스택트 인터페이스를 통해 프로세싱 코어와 같은 마스터 디바이스에 의해 액세스될 수 있음이 인식될 것이다.
이 분야의 당업자들은, 정보 및 신호들이 다양한 상이한 기법들 및 기술들 중 임의의 기법 및 기술을 이용하여 표현될 수 있음을 인식할 것이다. 예를 들어, 상기 설명 전체에서 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자계들 또는 자기 입자들, 광 필드들 또는 광 입자들, 또는 이들의 임의의 조합에 의해 표현될 수 있다.
추가로, 이 분야의 당업자들은, 본 명세서에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어 또는 이 둘의 조합들로 구현될 수 있음을 인식할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 호환성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 일반적으로 그들의 기능적 관점에서 앞서 설명되었다. 이러한 기능이 하드웨어로 구현되는지 또는 소프트웨어로 구현되는지 여부는 특정 애플리케이션 및 전체 시스템에 대해 부과된 설계 제한들에 의존한다. 당업자들은 설명된 기능을 각각의 특정 애플리케이션에 대해 다양한 방식들로 구현할 수 있지만, 이러한 구현 결정들이 본 발명의 범위를 벗어나는 것을 야기하는 것으로 해석되어서는 안 된다.
본 명세서에서 개시된 실시예들과 관련하여 설명된 방법들, 시퀀스들 및/또는 알고리즘들은 하드웨어로 직접적으로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 상기 둘의 조합으로 구현될 수 있다. 소프트웨어 모듈은, RAM 메모리, 플래쉬 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 착탈식 디스크, CD-ROM 또는 이 분야에 공지된 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있고록 프로세서에 커플링된다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다.
따라서, 본 발명의 실시예는, 캐시로서 이용하기 위한 메모리 디바이스를 구성하는 방법을 구현하는 컴퓨터 판독가능 매체들을 포함할 수 있다. 따라서, 본 발명은 설명된 예들에 한정되지 않고, 본 명세서에서 설명된 기능을 수행하기 위한 임의의 수단은 본 발명의 실시예들에 포함된다.
전술한 개시가 본 발명의 예시적인 실시예들을 설명하지만, 첨부된 청구항들에 의해 정의되는 본 발명의 범위를 벗어나지 않고 본 명세서에서 다양한 변경들 및 변형들이 행해질 수 있음을 유의해야 한다. 본 명세서에서 설명된 본 발명의 실시예들에 따라 방법 청구항들의 기능들, 단계들 및/또는 동작들은 임의의 특정한 순서로 수행될 필요는 없다. 게다가, 비록 본 발명의 엘리먼트들이 단수로 설명 또는 청구될 수 있지만, 단수로의 제한이 명시적으로 언급되지 않으면 복수가 고려된다.

Claims (27)

  1. 기존의 전용 메타데이터가 없는 메모리 디바이스로서,
    페이지 기반 메모리를 포함하고,
    각각의 페이지는 제 1 부분 및 제 2 부분으로 분할되어, 상기 제 1 부분은 데이터를 포함하고, 상기 제 2 부분은 상기 제 1 부분의 상기 데이터에 대응하는 메타데이터를 포함하는,
    메모리 디바이스.
  2. 제 1 항에 있어서,
    상기 메타데이터는 동일한 페이지의 데이터에만 대응하는, 메모리 디바이스.
  3. 제 1 항에 있어서,
    상기 메타데이터는 ECC 정보를 포함하는, 메모리 디바이스.
  4. 제 1 항에 있어서,
    상기 메타데이터는 어드레스 태그 정보를 포함하는, 메모리 디바이스.
  5. 제 1 항에 있어서,
    상기 메타데이터는, 디렉토리 정보, 메모리 코히어런시 정보 또는 더티(dirty)/유효(valid)/락(lock) 정보 중 적어도 하나를 포함하는, 메모리 디바이스.
  6. 제 1 항에 있어서,
    상기 메모리 디바이스는 캐시로서 구성되는, 메모리 디바이스.
  7. 제 1 항에 있어서,
    상기 메모리 디바이스는, 넓은 입력/출력 인터페이스, TSV(true silicon via) 인터페이스 또는 스택트 인터페이스 중 적어도 하나를 통해 마스터 디바이스에 커플링되는, 메모리 디바이스.
  8. 제 7 항에 있어서,
    상기 메모리 디바이스는 동적 랜덤 액세스 메모리(DRAM) 디바이스인, 메모리 디바이스.
  9. 제 1 항에 있어서,
    적어도 하나의 반도체 다이에 집적되는, 메모리 디바이스.
  10. 기존의 전용 메타데이터가 없는 페이지-기반 메모리 디바이스를 구성하는 방법으로서,
    상기 메모리 디바이스의 페이지의 메타데이터 부분으로부터 메타데이터를 판독하는 단계; 및
    상기 메타데이터에 기초하여, 상기 페이지의 특성을 결정하는 단계를 포함하는,
    페이지-기반 메모리 디바이스를 구성하는 방법.
  11. 제 10 항에 있어서,
    상기 특성을 결정하는 단계는, 상기 페이지에 원하는 정보가 존재하는지 여부를 결정하는 단계를 포함하는, 페이지-기반 메모리 디바이스를 구성하는 방법.
  12. 제 11 항에 있어서,
    상기 원하는 정보가 상기 페이지에 존재하면, 상기 메모리 디바이스로부터 상기 원하는 정보를 판독하는 단계를 더 포함하는, 페이지-기반 메모리 디바이스를 구성하는 방법.
  13. 제 11 항에 있어서,
    상기 원하는 정보가 상기 페이지에 존재하지 않으면, 미리 결정된 동작을 취하는 단계를 더 포함하는, 페이지-기반 메모리 디바이스를 구성하는 방법.
  14. 제 11 항에 있어서,
    상기 메타데이터에 기초하여 상기 원하는 정보에서 에러를 검출하는 단계를 더 포함하는, 페이지-기반 메모리 디바이스를 구성하는 방법.
  15. 제 11 항에 있어서,
    상기 메타데이터는 어드레스 태그를 포함하는, 페이지-기반 메모리 디바이스를 구성하는 방법.
  16. 제 15 항에 있어서,
    오픈할 페이지를 결정하기 위해 어드레스의 중간 비트들이 이용되는, 페이지-기반 메모리 디바이스를 구성하는 방법.
  17. 제 16 항에 있어서,
    상기 어드레스의 최하위 비트들은 태그의 부분으로서 이용되는, 페이지-기반 메모리 디바이스를 구성하는 방법.
  18. 제 17 항에 있어서,
    상기 태그의 부분을 판독하는 단계, 및 상기 태그의 부분에 기초하여 미리 결정된 동작을 취하는 단계를 포함하는, 페이지-기반 메모리 디바이스를 구성하는 방법.
  19. 제 10 항에 있어서,
    상기 페이지-기반 메모리 디바이스는 캐시 메모리 디바이스인, 페이지-기반 메모리 디바이스를 구성하는 방법.
  20. 제 19 항에 있어서,
    상기 메타데이터를 별개의 캐시에 저장하는 단계를 포함하는, 페이지-기반 메모리 디바이스를 구성하는 방법.
  21. 제 20 항에 있어서,
    오픈된 페이지들에 대한 메타데이터만이 상기 별개의 캐시에 저장되는, 페이지-기반 메모리 디바이스를 구성하는 방법.
  22. 제 10 항에 있어서,
    상기 메타데이터는 상기 페이지의 데이터 부분의 데이터와 관련된 에러 정정 코드(ECC)를 포함하고;
    상기 특성을 결정하는 단계는, 상기 데이터에 에러가 존재하는지 여부를 결정하는 단계를 포함하는, 페이지-기반 메모리 디바이스를 구성하는 방법.
  23. 메모리 시스템으로서,
    기존의 메타데이터가 없는 페이지-기반 메모리 디바이스 ―상기 메모리 디바이스의 페이지는 제 1 저장 수단 및 제 2 저장 수단을 포함함―;
    상기 제 1 저장 수단에 저장된 메타데이터; 및
    상기 제 2 저장 수단에 저장된 데이터를 포함하고,
    상기 제 1 저장 수단의 상기 메타데이터는 상기 제 2 저장 수단의 상기 데이터와 연관되는, 메모리 시스템.
  24. 프로세서에 의해 실행되는 경우 상기 프로세서로 하여금, 기존의 전용 메타데이터가 없는 페이지-기반 메모리 디바이스를 구성하기 위한 동작들을 수행하게 하는 코드를 포함하는 비일시적(non-transitory) 컴퓨터 판독가능 저장 매체로서,
    상기 메모리 디바이스의 페이지의 메타데이터 부분으로부터 메타데이터를 판독하기 위한 코드; 및
    상기 메타데이터에 기초하여 상기 페이지의 특성을 결정하기 위한 코드를 포함하는,
    비일시적 컴퓨터 판독가능 저장 매체.
  25. 제 23 항에 있어서,
    상기 특성을 결정하기 위한 코드는, 상기 페이지에 원하는 정보가 존재하는지 여부를 결정하기 위한 코드를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  26. 제 24 항에 있어서,
    상기 원하는 정보가 상기 페이지에 존재하면, 상기 페이지로부터 상기 원하는 정보를 판독하기 위한 코드를 더 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  27. 제 23 항에 있어서,
    상기 메타데이터는, 상기 페이지의 데이터 부분의 데이터와 관련된 에러 정정 코드(ECC)를 포함하고, 상기 특성을 결정하기 위한 코드는, 상기 데이터에 에러가 존재하는지 여부를 결정하기 위한 코드를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020137034015A 2011-05-20 2012-05-21 메모리 페이지들의 일부에 저장된 메타데이터를 갖는 메모리 KR101559023B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/112,132 US20120297256A1 (en) 2011-05-20 2011-05-20 Large Ram Cache
US13/112,132 2011-05-20
PCT/US2012/038794 WO2012162225A1 (en) 2011-05-20 2012-05-21 Memory with metadata stored in a portion of the memory pages

Publications (2)

Publication Number Publication Date
KR20140012186A true KR20140012186A (ko) 2014-01-29
KR101559023B1 KR101559023B1 (ko) 2015-10-08

Family

ID=46245618

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137034015A KR101559023B1 (ko) 2011-05-20 2012-05-21 메모리 페이지들의 일부에 저장된 메타데이터를 갖는 메모리

Country Status (6)

Country Link
US (1) US20120297256A1 (ko)
EP (1) EP2710472B1 (ko)
JP (1) JP5745168B2 (ko)
KR (1) KR101559023B1 (ko)
CN (1) CN103597450B (ko)
WO (1) WO2012162225A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230110838A (ko) * 2021-01-21 2023-07-25 퀄컴 인코포레이티드 메모리에서의 동적 메타데이터 재배치

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9753858B2 (en) * 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
US9208082B1 (en) * 2012-03-23 2015-12-08 David R. Cheriton Hardware-supported per-process metadata tags
KR102204391B1 (ko) 2014-08-18 2021-01-18 삼성전자주식회사 공유 가능한 ecc 셀 어레이를 갖는 메모리 장치
US9842021B2 (en) * 2015-08-28 2017-12-12 Intel Corporation Memory device check bit read mode
US10467092B2 (en) * 2016-03-30 2019-11-05 Qualcomm Incorporated Providing space-efficient storage for dynamic random access memory (DRAM) cache tags
US10180906B2 (en) 2016-07-26 2019-01-15 Samsung Electronics Co., Ltd. HBM with in-memory cache manager
US10572389B2 (en) * 2017-12-12 2020-02-25 Advanced Micro Devices, Inc. Cache control aware memory controller
US10761749B2 (en) * 2018-10-31 2020-09-01 Micron Technology, Inc. Vectorized processing level calibration in a memory component
US11403043B2 (en) * 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
US11287987B2 (en) 2020-03-04 2022-03-29 Micron Technology, Inc. Coherency locking schemes
US11681620B2 (en) * 2021-07-23 2023-06-20 Advanced Micro Devices, Inc. Using error correction code (ECC) bits for retaining victim cache lines in a cache block in a cache memory
US11914472B2 (en) * 2022-07-13 2024-02-27 Dell Products L.P. Use of CXL expansion memory for metadata offload

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1154931C (zh) * 1995-08-04 2004-06-23 吴乾弥 流水线式-脉冲式-单指令多数据阵列处理结构及其方法
US5862154A (en) * 1997-01-03 1999-01-19 Micron Technology, Inc. Variable bit width cache memory architecture
JP4085478B2 (ja) * 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
US6571323B2 (en) * 1999-03-05 2003-05-27 Via Technologies, Inc. Memory-access management method and system for synchronous dynamic Random-Access memory or the like
US6687789B1 (en) * 2000-01-03 2004-02-03 Advanced Micro Devices, Inc. Cache which provides partial tags from non-predicted ways to direct search if way prediction misses
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US7526608B2 (en) * 2004-05-28 2009-04-28 Sony Computer Entertainment Inc. Methods and apparatus for providing a software implemented cache memory
JP4725181B2 (ja) * 2005-04-28 2011-07-13 アイシン・エィ・ダブリュ株式会社 ナビゲーションシステム及びキャッシュ管理方法
DE102005060901A1 (de) * 2005-12-20 2007-06-28 Robert Bosch Gmbh Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers
WO2008063477A2 (en) * 2006-11-20 2008-05-29 Kopin Corporation Shifter register for low power consumption application
US7761740B2 (en) * 2007-12-13 2010-07-20 Spansion Llc Power safe translation table operation in flash memory
US8694714B2 (en) * 2008-01-18 2014-04-08 Spansion Llc Retargeting of a write operation retry in the event of a write operation failure
US8726126B2 (en) * 2010-03-23 2014-05-13 Apple Inc. Non-regular parity distribution detection via metadata tag

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230110838A (ko) * 2021-01-21 2023-07-25 퀄컴 인코포레이티드 메모리에서의 동적 메타데이터 재배치

Also Published As

Publication number Publication date
US20120297256A1 (en) 2012-11-22
WO2012162225A1 (en) 2012-11-29
JP2014517394A (ja) 2014-07-17
EP2710472A1 (en) 2014-03-26
CN103597450A (zh) 2014-02-19
EP2710472B1 (en) 2018-10-10
JP5745168B2 (ja) 2015-07-08
KR101559023B1 (ko) 2015-10-08
CN103597450B (zh) 2018-03-27

Similar Documents

Publication Publication Date Title
KR101559023B1 (ko) 메모리 페이지들의 일부에 저장된 메타데이터를 갖는 메모리
US11119940B2 (en) Sequential-write-based partitions in a logical-to-physical table cache
US10474584B2 (en) Storing cache metadata separately from integrated circuit containing cache controller
TWI285810B (en) Method, apparatus, and system for partitioning a shared cache of a chip multi-processor, and computer-readable recording medium having stored thereon related instructions
US10303613B2 (en) Cache architecture for comparing data
US9405703B2 (en) Translation lookaside buffer
US9424195B2 (en) Dynamic remapping of cache lines
CN109952565B (zh) 内存访问技术
KR102268601B1 (ko) 데이터 포워딩을 위한 프로세서, 그것의 동작 방법 및 그것을 포함하는 시스템
US11934317B2 (en) Memory-aware pre-fetching and cache bypassing systems and methods
US20220398198A1 (en) Tags and data for caches
US20120215959A1 (en) Cache Memory Controlling Method and Cache Memory System For Reducing Cache Latency
US20060143400A1 (en) Replacement in non-uniform access cache structure
US10877889B2 (en) Processor-side transaction context memory interface systems and methods
US9230620B1 (en) Distributed hardware tree search methods and apparatus for memory data replacement
US20130332665A1 (en) Memory with bank-conflict-resolution (bcr) module including cache
US20040078544A1 (en) Memory address remapping method
CN116244218A (zh) 数据缓存预取装置、方法及处理器
US11604735B1 (en) Host memory buffer (HMB) random cache access
US11354246B2 (en) Memory-side transaction context memory interface systems and methods based on clock cycles and wires
KR101967857B1 (ko) 다중 캐시 메모리를 구비한 지능형 반도체 장치 및 지능형 반도체 장치에서의 메모리 접근 방법
US9195607B1 (en) Content matching using a multi-hash function for replacement of a faulty memory cell
US20240143440A1 (en) Page retirement techniques for multi-page dram faults
US20130339593A1 (en) Reducing penalties for cache accessing operations

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: 20180928

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 5