KR20130041836A - 메모리 디바이스의 전력 소비를 감소시키기 위한 방법 및 시스템 - Google Patents

메모리 디바이스의 전력 소비를 감소시키기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20130041836A
KR20130041836A KR1020127034099A KR20127034099A KR20130041836A KR 20130041836 A KR20130041836 A KR 20130041836A KR 1020127034099 A KR1020127034099 A KR 1020127034099A KR 20127034099 A KR20127034099 A KR 20127034099A KR 20130041836 A KR20130041836 A KR 20130041836A
Authority
KR
South Korea
Prior art keywords
cache memory
way
data
access
logic
Prior art date
Application number
KR1020127034099A
Other languages
English (en)
Other versions
KR101456860B1 (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 KR20130041836A publication Critical patent/KR20130041836A/ko
Application granted granted Critical
Publication of KR101456860B1 publication Critical patent/KR101456860B1/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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

메모리 디바이스의 전력 소비를 감소시키기 위한 방법 시스템이 개시된다. 본 발명의 일 실시예에서, 메모리 디바이스는 N-웨이 세트-연관 1차(L1) 캐시 메모리이고, 로드 명령 또는 저장 명령에 응답하여 N-웨이 세트-연관 L1 캐시 메모리의N-웨이의 일부만으로의 액세스를 가능하게 하기 위해 데이터 캐시 메모리와 결합된 로직이 존재한다. 각각의 로드 또는 저장 요구를 위한 N-웨이 세트-연관 L1 캐시 메모리에 액세스하기 위한 웨이의 수를 감소시킴으로써, N-웨이 세트-연관 L1 캐시 메모리의 전력 요구는 본 발명의 일 실시예에서 감소된다. 본 발명의 일 실시예에서, 캐시 메모리로의 액세스가 N-웨이 세트-연관 L1 캐시 메모리의 데이터 어레이만을 요구한다는 판정이 행해질 때, 필 버퍼로의 액세스는 비활성화되거나 불능화된다.

Description

메모리 디바이스의 전력 소비를 감소시키기 위한 방법 및 시스템{METHOD AND SYSTEM TO REDUCE THE POWER CONSUMPTION OF A MEMORY DEVICE}
본 발명은 메모리 디바이스에 관한 것으로서, 더 구체적으로는 비한정적으로, 메모리 디바이스의 전력 소비를 감소시키기 위한 방법 및 시스템에 관한 것이다.
캐시 메모리와 같은 메모리 디바이스는 캐시 메모리의 캐시 라인 내에 메인 메모리의 가장 최근에 사용된 사본(copy)을 저장함으로써 프로세서가 명령을 더 고속으로 실행할 수 있게 한다. 프로그램의 액세스 지연 시간은 그 요구된 명령 또는 데이터가 캐시 메모리의 캐시 라인 내에 저장되면 감소될 수 있다.
비블로킹(non-blocking) 캐시 메모리가 캐시 메모리 부적중(miss) 이벤트가 발생할 때 프로세서의 스톨링(stalling)을 회피하기 위해 비순차적(out-of-order) 마이크로 아키텍처에 사용된다. 필 버퍼(fill buffer)와 같은 전용 하드웨어는 캐시 메모리 부적중 이벤트가 존재하더라도, 이후의 로드(load) 및 저장 요구가 서빙될 수 있게 한다. 필 버퍼는 임의의 상태에서 캐시 라인의 사본을 포함할 수 있고 데이터 캐시가 로드 또는 저장 요구의 실행 중에 액세스될 때마다 액세스된다. 메인 메모리의 메모리 라인은 필 버퍼 내에 또는 데이터 캐시 내에 위치될 수 있지만, 동시에 양자 모두 내에 위치되지는 않는다.
1차 캐시 메모리가 프로세서에 의해 빈번히 액세스되고, 그 크기 및 세트-연관(set-associative) 구성은 프로세스의 성능에 영향을 미칠 수 있다. 예를 들어, 1차 캐시 메모리는 32 킬로바이트의 크기, 8 웨이(way) 세트 연관 구성을 가질 수 있고, 캐시 메모리 라인당 64 바이트를 유지할 수 있다. 로드 요구를 위해 1차 캐시 메모리에 액세스하기 위해, 캐시 메모리의 세트의 모든 8개의 웨이는 어느 웨이가 요구 데이터를 취득하기 위한 것인지를 판정하기 위해 판독되어야 한다.
도 1은 본 발명의 일 실시예에 따른 프로세싱 유닛의 블록 다이어그램.
도 2는 본 발명의 일 실시예에 따른 메모리 실행 유닛 및 1차 데이터 캐시 메모리의 블록 다이어그램.
도 3은 본 발명의 일 실시예에 따른 물리적 어드레스로의 가상 어드레스의 맵핑을 도시하는 도면.
도 4는 본 발명의 일 실시예에 따른 앨리어싱(aliasing) 이벤트를 취급하기 위한 흐름도.
도 5는 본 발명의 일 실시예에 따른 캐시 메모리의 전력 소비를 감소시키기 위한 흐름도.
도 6은 본 발명의 일 실시예에 따른 본 명세서에 개시된 방법을 구현하기 위한 시스템을 도시하는 도면.
본 발명의 특징 및 장점은 본 발명의 요지의 이하의 상세한 설명으로부터 명백해질 것이다.
본 명세서에 설명된 본 발명의 실시예가 첨부 도면에 한정이 아니라 예시로서 도시되어 있다. 도시의 간단화 및 명료화를 위해, 도면에 도시된 요소는 반드시 실제 크기로 도시된 것은 아니다. 예를 들어, 몇몇 요소의 치수는 명료화를 위해 다른 요소에 대해 과장되어 있을 수도 있다. 또한, 적절한 것으로 고려되면, 도면 부호는 대응 또는 유사 요소를 지시하기 위해 도면들간에 반복되어 있다. 명세서에서 본 발명의 "일 실시예" 또는 "실시예"의 언급은 실시예와 관련하여 설명된 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 명세서 전체에 걸쳐 다양한 위치에서 구문 "일 실시예에서"의 출현은 반드시 모두 동일한 실시예를 언급하는 것은 아니다.
본 발명의 실시예는 메모리 디바이스의 전력 소비를 감소시키기 위한 방법 및 시스템을 제공한다. 본 발명의 일 실시예에서, 메모리 디바이스는 N-웨이 세트-연관 1차(L1) 캐시 메모리이고, 여기서 N은 정수이고 1보다 큰 값을 갖는다. 로드 명령 또는 저장 명령에 응답하여 N-웨이 세트-연관 L1 캐시 메모리의 N-웨이의 일부만으로의 액세스를 가능하게 하기 위해 데이터 캐시 메모리와 결합된 로직(logic)이 존재한다. 각각의 로드 또는 저장 요구를 위해 N-웨이 세트-연관 L1 캐시 메모리에 액세스하기 위한 웨이의 수를 감소시킴으로써, N-웨이 세트-연관 L1 캐시 메모리의 전력 요구가 본 발명의 일 실시예에서 감소된다.
예를 들어, 본 발명의 일 실시예에서, 메모리 디바이스는 8-웨이 세트-연관 L1 캐시 메모리이고, 이는 각각의 어레이가 4개의 액세스의 웨이를 갖는 2개의 어레이의 그룹으로 분할된다. 로드 또는 저장 명령이 수신될 때, 2개의 어레이의 그룹 중 단지 하나만이, 즉 8-웨이 세트-연관 L1 캐시 메모리의 8개의 웨이 중 단지 4개만이 액세스된다. 본 발명의 일 실시예에서, 2개의 어레이의 그룹 사이의 선택은 8-웨이 세트-연관 L1 캐시 메모리의 가상 어드레스의 어드레스 비트에 기초한다.
본 발명의 일 실시예에서, N-웨이 세트-연관 L1 캐시 메모리는 비순차적 명령이 프로세서 상에서 실행될 수 있게 하기 위한 하나 이상의 필 버퍼를 갖는데, 즉 N-웨이 세트-연관 L1 캐시 메모리는 비블로킹 캐시 메모리이다. 본 발명의 일 실시예에서, 필 버퍼로의 액세스는 캐시 메모리로의 액세스가 단지 N-웨이 세트-연관 L1 캐시 메모리의 데이터 어레이만을 요구하는 예측이 수행될 때 비활성화되거나 불능화된다. N-웨이 세트-연관 L1 캐시 메모리의 전력 소비는 필 버퍼와 연관된 로직이 본 발명의 일 실시예에서 비활성화됨에 따라 감소된다. 메모리 디바이스는 이들에 한정되는 것은 아니지만, 캐시 메모리, 캐시 데이터 어레이, 캐시 태그 어레이 등을 포함한다.
도 1은 본 발명의 일 실시예에 따른 프로세싱 유닛(105)의 블록 다이어그램(100)을 도시한다. 프로세싱 유닛(105)은 본 발명의 일 실시예에서 명령 페치(fetch) 및 이슈(issue) 유닛(110), 버스 제어기(120), 실행 유닛(130) 및 L1 데이터 캐시 메모리(140)를 갖는다.
프로세싱 유닛(105)의 버스 제어기(120)는 이들에 한정되는 것은 아니지만, 메인 메모리, 2차 캐시 메모리, 칩셋 등을 포함하는 다른 구성 요소에 접속을 위해 시스템 인터페이스(150)와 결합된다. 명령 페치 및 이슈 유닛(110)은 외부 메모리 또는 메인 메모리로부터 시스템 인터페이스(150)를 경유하여 버스 제어기(120)를 통해 또는 임의의 다른 외부 버스를 통해 명령을 페치(fetch)한다. 페치된 명령은 명령 캐시 메모리(115)에 저장된다. 본 발명의 일 실시예에서, 버스 제어기(120)는 프로세싱 유닛(105) 내의 캐시 일관성 전달을 관리한다.
실행 유닛(130)은 명령 페치 및 이슈 유닛(110)으로부터 페치된 명령을 수신하여 실행하고, 이들에 한정되는 것은 아니지만 가산, 감산, 논리 AND, 정수 곱셈, 메모리 연산 등을 포함하는 산술 및 논리 연산을 수행한다. 본 발명의 일 실시예에서, 실행 유닛(130)은 이들에 한정되는 것은 아니지만 프로세싱 유닛(105) 내의 로드 및 저장 동작을 포함하는 메모리 액세스 동작을 실행하기 위한 메모리 실행 유닛(135)을 갖는다. 메모리 실행 유닛(135)은 스케쥴러로부터 로드 및 저장 동작을 수신하고, 이들을 실행하여 메모리 액세스 동작을 완료한다.
메모리 실행 유닛(135)은 본 발명의 일 실시예에서 L1 데이터 어레이(142), L1 태그 어레이(144) 및 필 버퍼(146)를 갖는 L1 데이터 캐시 메모리(140)와 결합된다. L1 데이터 캐시 메모리(140)는 도시의 명료화를 위해 도 1에는 도시되어 있지 않은 변환 색인 버퍼(translation lookaside buffer: TLB)와 같은 다른 구성 요소를 갖는다. 본 발명의 일 실시예에서, L1 데이터 캐시 메모리(140)는 필 버퍼(146)의 액세스를 제어하고 L1 데이터 어레이(142) 및 L1 태그 어레이(144)의 캐시 웨이의 일부만으로만 메모리 액세스 동작을 제한하기 위한 로직을 갖는다.
도 2는 본 발명의 일 실시예에 따른 메모리 실행 유닛(135) 및 L1 데이터 캐시 메모리(140)의 블록 다이어그램(200)을 도시한다. 도시의 명료화를 위해, 도 2는 도 1을 참조하여 설명된다. 본 발명의 일 실시예에서, L1 데이터 캐시 메모리(140)는 8-웨이 세트-연관 L1 캐시 메모리이다. L1 데이터 캐시 메모리(140)의 L1 데이터 어레이(142) 및 L1 태그 어레이(144)는 본 발명의 일 실시예에서 2개의 부분 또는 그룹으로 분할된다. L1 데이터 어레이(142)는 4-웨이 L1 데이터 어레이[3-0](220) 및 4-웨이 L1 데이터 어레이[7-4](225)로 분할된다.
L1 웨이 3-0 판독 인에이블 신호(202) 및 L1 웨이[7-4] 판독 인에이블 신호(204)는 4-웨이 L1 데이터 어레이[3-0](220) 및 4-방향 L1 데이터 어레이[7-4](225) 각각의 액세스 또는 활성화를 제어한다. 예를 들어, 본 발명의 일 실시예에서, 단지 4-웨이 L1 데이터 어레이[3-0](220)가 액세스가 허용되거나 요구되면, L1 웨이 3-0 판독 인에이블 신호(202)는 4-웨이 L1 데이터 어레이[3-0](220)를 인에이블하기 위해 어서트(assert)되고 L1 웨이 7-4 판독 인에이블 신호(204)는 4-웨이 L1 데이터 어레이[7-4](225)를 불능화하기 위해 디어서트(de-assert)된다.
세트 선택 신호(206)는 4-웨이 L1 데이터 어레이[3-0](220) 및 4-웨이 L1 데이터 어레이[7-4](225)와 결합되어 액세스될 원하는 또는 요구된 세트를 선택한다. 예를 들어, 본 발명의 일 실시예에서, L1 데이터 캐시 메모리(140)는 32 킬로바이트, 64 세트를 갖는 캐시 메모리이고, 각각의 세트는 8개의 웨이의 캐시 액세스를 갖는다. 로드 또는 저장 명령을 수행하기 위해, 원하는 세트는 세트 선택 신호(206)를 사용하여 선택되고, 8-웨이 멀티플렉서(mux)(260)는 판독 데이터(262)로서 원하는 세트의 어느 웨이를 선택한다.
8-웨이 mux(260)의 제어 신호는 웨이 적중(hit) 벡터[7-0](270)에 의해 생성된다. 웨이 적중 벡터[7-0](270)는 본 발명의 일 실시예에서 L1 데이터 캐시 메모리(140)의 8개의 웨이 중 어느 것이 판독 데이터(262)로서 선택되는지를 표현하기 위해 8개의 비트를 갖는다. 웨이 적중 벡터[7-0](270)는 본 발명의 일 실시예에서 L1 태그 어레이(144), L1 태그 비교기(240) 및 AND 게이트 블록(250)으로부터 생성된다. L1 태그 어레이(144)는 4-웨이 L1 태그 어레이[3-0](230) 및 4-웨이 L1 태그 어레이[7-4](235)로 분할된다.
세트 선택 신호(206)는 4-웨이 L1 태그 어레이[3-0](230) 및 4-웨이 L1 태그 어레이[7-4](235)와 결합되어 액세스될 원하는 또는 요구된 세트를 선택한다. 4-웨이 L1 태그 어레이[3-0](230) 및 4-웨이 L1 태그 어레이[7-4](235)는 L1 태그 비교기(240) 내의 4-웨이 L1 태그 비교기[3-0](242) 및 4-웨이 L1 태그 비교기[7-4](244) 각각과 결합된다. L1 태그 비교기(240)는 4-웨이 L1 태그 어레이[3-0](230) 및 4-웨이 L1 태그 어레이[7-4](235)의 선택된 세트의 웨이들 내의 태그 어드레스를 로드 또는 저장 명령의 물리적 어드레스(246)와 비교한다. 정합이 발견되면, L1 태그 비교기(240) 내의 각각의 태그 비교기는 AND 게이트 블록(250)에 논리 1 신호를 생성한다. 정합이 발견되지 않으면, L1 태그 비교기(240) 내의 각각의 태그 비교기는 AND 게이트 블록(250)에 논리 0 신호를 생성한다.
4-웨이 L1 태그 비교기[3-0](242)는 각각의 웨이 3-0을 위한 신호를 생성하고, 각각의 신호는 AND 게이트 블록(250) 내의 각각의 AND 게이트에 결합된다. 유사하게, 4-웨이 L1 태그 비교기[7-4](244)는 각각의 웨이 7-4를 위한 신호를 생성하고, 각각의 신호는 AND 게이트 블록(250) 내의 각각의 AND 게이트에 결합된다. 4-웨이 L1 태그 비교기[3-0](242)와 결합된 각각의 AND 게이트는 OR 게이트(210)의 출력과 결합된다. OR 게이트(210)의 출력은 필 버퍼 차단 신호(208) 및 L1 웨이 3-0 판독 인에이블 신호(202)에 의해 구동된다. 유사하게, 4-웨이 L1 태그 비교기[7-4](244)와 결합된 각각의 AND 게이트는 OR 게이트(212)의 출력과 결합된다. OR 게이트(212)의 출력은 필 버퍼 차단 신호(208) 및 L1 웨이 7-4 판독 인에이블 신호(204)에 의해 구동된다.
필 버퍼 차단 신호(208)는 L1 태그 어레이(144)의 제어가 L1 3-0 판독 인에이블 신호(202) 및 L1 웨이 7-4 판독 인에이블 신호(204)에 의해 결정되어야 하는지 여부를 선택한다. OR 게이트(210, 212)의 출력은 4-웨이 L1 태그 어레이[3-0](230) 및 4-웨이 L1 태그 어레이[7-4](235) 각각과 결합되어 이들의 동작을 인에이블하거나 불능화한다. 예를 들어, 본 발명의 일 실시예에서, 필 버퍼 차단 신호(208)가 어서트되거나 논리 1로 설정될 때, OR 게이트(210, 212)의 출력은 논리 1로 어서트되어 4-웨이 L1 태그 어레이[3-0](230) 및 4-웨이 L1 태그 어레이[7-4](235)의 모두를 인에이블한다.
필 버퍼 차단 신호(208)가 논리 1로 설정될 때, L1 웨이 3-0 판독 인에이블 신호(202) 및 L1 웨이 7-4 판독 인에이블 신호(204)는, OR 게이트(210, 212)의 출력이 필 버터 차단 신호(208)에 의해 논리 1로 설정되기 때문에, 4-웨이 L1 태그 어레이[3-0](230) 및 4-웨이 L1 태그 어레이[7-4](235)의 동작에 영향을 미치지 않는다. 유사하게, AND 게이트 블록(250) 내의 AND 게이트는 필 버퍼 차단 신호(208)가 논리 1로 설정될 때 L1 웨이 3-0 판독 인에이블 신호(202) 및 L1 웨이 7-4 판독 인에이블 신호(204)에 의해 영향을 받지 않는다.
필 버퍼 차단 신호(208)가 디어서트되거나 논리 0으로 설정될 때, 4-웨이 L1 태그 어레이[3-0](230) 및 4-웨이 L1 태그 어레이[7-4](235)의 제어는 L1 웨이 3-0 판독 인에이블 신호(202) 및 L1 웨이 7-4 판독 인에이블 신호(204)에 의해 각각 결정된다. 이것은 필 버터 차단 신호(208)가 논리 0으로 설정될 때 OR 게이트(210, 212)의 출력이 4-웨이 L1 태그 어레이[3-0](230) 및 4-웨이 L1 태그 어레이[7-4](235)의 상태에만 의존하기 때문이다.
예를 들어, 본 발명의 일 실시예에서, 웨이 3-0이 인에이블되고 웨이 7-4가 불능화될 때, L1 웨이 3-0 판독 인에이블 신호(202) 및 L1 웨이 7-4 판독 인에이블 신호(204)는 각각 논리 1 및 0으로 설정된다. 4-웨이 L1 데이터 어레이[3-0](220)는 L1 웨이 3-0 판독 인에이블 신호(202)에 의해 활성화된다. L1 웨이 3-0 판독 인에이블 신호(202)는 OR 게이트(210)의 출력을 논리 1로 설정하고 4-웨이 L1 태그 어레이[3-0](230)가 인에이블된다. 4-웨이 L1 태그 비교기[3-0](242)에 결합된 AND 게이트는 OR 게이트(210)의 출력으로서 논리 1로 인에이블된다.
L1 웨이 7-4 판독 가능 신호(204)는 논리 0으로 설정되기 때문에, 4-웨이 L1 데이터 어레이[7-4](225)가 불능화된다. OR 게이트(212)의 출력은 L1 웨이 7-4 판독 인에이블 신호(204) 및 필 버퍼 차단 신호(208)의 모두가 논리 0으로 설정되기 때문에 논리 0으로 설정된다. OR 게이트(212)의 출력은 논리 0으로 설정되기 때문에, 4-웨이 L1 태그 어레이[7-4](235)가 불능화되고 4-웨이 L1 태그 비교기[7-4](244)에 결합된 AND 게이트가 불능화된다.
웨이 적중 벡터[7-0](270)는 OR 게이트[3-0](280) 및 OR 게이트[7-4](282)와 결합된다. OR 게이트[3-0](280)의 4개의 입력은 웨이 적중 벡터[7-0](270)의 웨이 3-0에 결합된다. 유사하게, OR 게이트[7-4](282)의 4개의 입력은 웨이 적중 벡터[7-0](270)의 웨이 7-4에 결합된다. AND 게이트(290)는 OR 게이트[3-0](280) 및 L1 웨이 3-0 판독 인에이블 신호(202)의 출력에 결합된다. AND 게이트(290, 292)의 양 출력은 OR 게이트(294)와 결합되어 L1 캐시 적중/부적중 신호(296)를 생성한다. L1 캐시 적중/부적중 신호(296)는 L1 데이터 캐시 메모리(140)의 캐시 메모리 적중 또는 부적중이 존재하는지 여부를 지시한다.
본 발명의 일 실시예에서, L1 데이터 캐시 메모리(140) 내의 L1 데이터 어레이(142) 및 L1 태그 어레이(144)는 캐시 액세스의 웨이의 수가 감소되기 때문에 전력 소비를 감소시키면서 프로세싱 유닛(105)의 성능을 유지한다. 도 2의 L1 데이터 캐시 메모리(140)의 도시는 한정적으로 의도되는 것은 아니다. 본 발명의 다른 실시예에서, 데이터 및 태그 어레이의 상이한 구조 및 구성이 본 발명의 작동에 영향을 미치지 않고 사용될 수 있다.
예를 들어, 본 발명의 다른 실시예에서, 각각의 데이터 및 태그 어레이는 2개 초과의 파티션으로 분할되고 개별 제어 신호는 데이터 및 태그 어레이의 어느 파티션 또는 그룹이 로드 또는 저장 동작을 위해 선택되는지를 선택하도록 생성될 수 있다. 당 기술 분야의 숙련자는 L1 데이터 캐시 메모리(140)의 상이한 구성을 지원하기 위해 로직을 어떻게 수정하는지를 즉시 이해할 수 있고 이는 본 명세서에 설명되지 않을 것이다.
도 3은 본 발명의 일 실시예에 따른 물리적 어드레스(330)로의 가상 어드레스(310)의 맵핑(300)을 도시한다. 가상 또는 선형 어드레스(310)는 본 발명의 일 실시예에서 페이지 오프셋(312) 및 가상 페이지 번호(314)를 갖는다. 페이지 오프셋(312)은 가상 어드레스(310)의 최초 12개의 어드레스 비트[11:0]로 구성되고 가상 어드레스(310)가 물리적 어드레스(330)로 변환될 때 변환되지 않는다.
본 발명의 일 실시예에서, 가상 어드레스(310)의 6개의 어드레스 비트[11:6]가 세트 어드레스로서 사용된다. 6개의 어드레스 비트에 의해, 64개의 세트가 선택될 수 있다. 본 발명의 일 실시예에서, 세트 선택 신호(206)는 가상 어드레스(310)의 어드레스 비트 [11:6]에 기초하여 생성된다. 가상 페이지 번호(334)가 본 발명의 일 실시예에서 물리적 페이지 번호(334)를 얻기 위해 변환 로직(320)을 경유하여 변환된다. 변환 로직(320)은 이에 한정되는 것은 아니지만 TLB 내에 룩업 테이블을 포함한다. 본 발명의 일 실시예에서, L1 웨이 3-0 판독 인에이블 신호(202) 및 L1 웨이 7-4 판독 인에이블 신호(204)는 가상 어드레스(310)의 어드레스 비트[12]에 기초하여 생성된다. 예를 들어, 본 발명의 일 실시예에서, 어드레스 비트[12]가 어서트될 때, L1 웨이 3-0 판독 인에이블 신호(202) 및 L1 웨이 7-4 판독 인에이블 신호(204)는 각각 어서트되고 디어서트된다. 어드레스 비트[12]가 디어서트될 때, L1 웨이 3-0 판독 인에이블 신호(202) 및 L1 웨이 7-4 판독 인에이블 신호(204)는 각각 디어서트되고 어서트된다.
어드레스 비트[12]는 L1 데이터 캐시 메모리(140)의 4개의 웨이가 액세스되어야 하는지를 판정하기 위해 어떠한 캐시 메모리 액세스보다 먼저 설정된다. 당 기술 분야의 숙련자는 L1 웨이 3-0 판독 인에이블 신호(202) 및 L1 웨이 7-4 판독 인에이블 신호(204)를 생성하는 다른 방식이 본 발명의 작동에 영향을 미치지 않고 사용될 수 있고 이들 다른 방식은 본 명세서에 설명되지는 않을 것이라는 것을 즉시 이해할 수 있을 것이다. 본 발명의 일 실시예에서, 가상 어드레스(310)의 다른 비트 또는 비트들이 L1 웨이 3-0 판독 인에이블 신호(202) 및 L1 웨이 7-4 판독 인에이블 신호(204)를 생성하는데 사용될 수 있다. 본 발명의 다른 실시예에서, 다른 레지스터의 다른 비트 또는 비트들이 L1 웨이 3-0 판독 인에이블 신호(202) 및 L1 웨이 7-4 판독 인에이블 신호(204)를 생성하는데 사용될 수 있다. 가상 어드레스(310) 및 물리적 어드레스(330)는 본 발명의 다른 실시예에서 32 비트 초과를 가질 수 있다.
도 4는 본 발명의 일 실시예에 따른 앨리어싱 이벤트를 취급하기 위한 흐름도(400)를 도시한다. 가상 인덱싱된 캐시 메모리에서, 특정 캐시 메모리 라인을 로케이팅하는데 사용된 비트의 수는 페이지 크기보다 크고 하나 이상의 비트가 앨리어싱될 수 있다. 예를 들어, 본 발명의 일 실시예에서, 동일한 물리적 페이지가 앨리어싱된 비트의 값에 기초하여 캐시 메모리 내의 2개의 상이한 위치에서 참조될 수 있다. 이와 같이, L1 데이터 캐시 메모리(140) 내의 2개의 상이한 캐시 메모리 라인은 동일한 물리적 메모리의 상이한 버전을 유지할 수 있다.
흐름(400)은 본 발명의 일 실시예에 따라 앨리어싱 이벤트를 취급하기 위한 방법을 도시한다. 단계 410에서, 흐름은 저장 또는 로드 요구를 수신한다. 단계 420에서, 흐름은 L1 데이터 캐시 메모리(140) 내에 저장 또는 로드 요구의 참 적중 이벤트가 존재하는지 여부를 점검한다. 본 발명의 일 실시예에서, 참 적중 이벤트는 저장 또는 로드 요구의 메모리 위치가 L1 데이터 캐시 메모리(140)의 선택된 4개의 웨이 중 하나에 캐시될 때 발생한다.
예를 들어, 본 발명의 일 실시예에서, 프로세싱 유닛(105)은 가상 어드레스(X)에서 저장 요구를 수신한다. 메모리 실행 유닛(135)은 L1 데이터 캐시 메모리(140)의 웨이 3-0 또는 웨이 7-4가 액세스되어야 하는지 여부를 판정하기 위해 가상 어드레스(X)의 어드레스 비트 [12]를 점검한다. 웨이 3-0이 어드레스 비트[12]에 의해 선택되는 것으로 가정하면, L1 태그 비교기[3-0](240)는 4-웨이 L1 태그 어레이[3-0](242) 중 하나가 가상 어드레스(X)에 정합할 때 L1 적중 신호, 즉 참 신호를 생성한다.
단계 420에서 참 적중 이벤트가 존재하면, 흐름(400)은 종료한다. 단계 420에서 참 적중 이벤트가 존재하지 않으면, 흐름(400)은 단계 430으로 진행하여 L1 데이터 캐시 메모리(140) 내에 저장 또는 로드 요구의 참 적중 이벤트가 존재하는지를 점검한다. 본 발명의 일 실시예에서, 참 적중 이벤트는 저장 또는 로드 요구의 메모리 위치가 L1 데이터 캐시 메모리(140)의 모든 8개의 웨이에서 캐시되지 않을 때 발생한다.
예를 들어, 본 발명의 일 실시예에서, 프로세싱 유닛(105)은 가상 어드레스(Y)에서 로드 요구를 수신한다. 메모리 실행 유닛(135)은 L1 데이터 캐시 메모리(140)의 웨이 3-0 또는 웨이 7-4가 액세스되어야 하는지 여부를 판정하기 위해 가상 어드레스(Y)의 어드레스 비트 [12]를 점검한다. L1 태그 비교기(240)는 4-웨이 L1 태그 어레이 [3-0](242) 또는 4-웨이 L1 태그 어레이 [7-4](244) 내의 태그 어레이의 어느 것도 가상 어드레스(Y)에 정합하지 않을 때 L1 부적중 신호를 생성, 즉 참 부적중을 생성한다.
단계 430에서 참 적중 이벤트가 존재하면, 흐름(400)은 종료한다. 단계 430에서 참 적중 이벤트가 존재하지 않으면, 흐름(400)은 단계 440으로 진행하여 L1 데이터 캐시 메모리(140) 내에 저장 또는 로드 요구의 거짓 적중 이벤트가 존재하는지를 점검한다. 본 발명의 일 실시예에서, 거짓 적중 이벤트는 L1 태그 비교기(240)가 적중을 생성하지만 어드레스 비트 [12]가 데이터 어레이의 부정확한 그룹을 선택할 때 발생한다.
예를 들어, 본 발명의 일 실시예에서, 프로세싱 유닛(105)은 가상 어드레스(Z)에서 로드 요구를 수신한다. 메모리 실행 유닛(135)은 L1 데이터 캐시 메모리(140)의 웨이 3-0 또는 웨이 7-4가 액세스되어야 하는지 여부를 판정하기 위해 가상 어드레스(Z)의 어드레스 비트[12]를 점검한다. 웨이 3-0이 어드레스 비트[12]에 의해 선택되는 것으로 가정하면, 4-웨이 L1 데이터 어레이 [3-0](220)가 선택된다. 그러나, 앨리어싱에 기인하여, L1 태그 비교기(240)가 로드 요구의 물리적 어드레스를 비교할 때 4-웨이 L1 태그 비교기 [3-0](242) 대신에 4-웨이 L1 태그 비교기 [7-4](244)에 의해 적중 신호, 즉 거짓 신호가 생성된다.
단계 440에서 어떠한 거짓 적중 이벤트도 존재하지 않으면, 흐름(400)은 종료한다. 단계 440에서 거짓 적중 이벤트가 존재하지 않으면, 흐름(400)은 단계 450으로 진행하여 저장 또는 요구를 반복하고 L1 데이터 어레이(142)의 모든 웨이를 인에이블하거나 활성화하고, 흐름은 종료한다.
도 5는 본 발명의 일 실시예에 따른 캐시 메모리의 전력 소비를 감소시키기 위한 흐름도(500)를 도시한다. 도시의 명료화를 위해, 도 5는 도 2를 참조하여 설명된다.
단계 510에서, 흐름(500)은 L1 데이터 캐시 메모리(140)의 연속적인 캐시 메모리 적중의 수를 결정한다. 본 발명의 일 실시예에서, 프로세싱 유닛(105)은 연속적인 캐시 메모리 적중의 수를 예측하기 위한 로직을 포함한다. 본 발명의 다른 실시예에서, 단계 510은 L1 데이터 캐시 메모리(140)의 캐시 메모리 적중의 연속적인 클럭의 수를 결정한다.
단계 520에서, 흐름(500)은 부적중의 수 또는 부적중의 클럭 사이클의 수가 임계치를 초과하는지를 점검한다. 본 발명의 일 실시예에서, 임계치는 L1 데이터 캐시 메모리(140)에서 128 클럭의 캐시 적중으로 설정된다. 만일 아니오이면, 흐름(500)은 단계 510으로 복귀한다. 만일 예이면, 흐름(500)은 단계 530으로 진행하여 본 발명의 일 실시예에서 필 버퍼(146)와 연관된 로직을 비활성화한다. 본 발명의 다른 실시예에서, 단계 530은 필 버퍼(146)로의 액세스를 제한한다. 본 발명의 일 실시예에서, 필 버퍼(146)와 연관된 로직의 입력 클럭(들)은 필 버퍼(146)와 연관된 로직이 비활성화될 때 정지되거나 불능화된다.
본 발명의 일 실시예에서, 필 버퍼(146) 및 L1 데이터 캐시 메모리(140)는 동일한 캐시 라인을 동시에 보유하거나 저장하지 않는데, 즉 필 버퍼(146) 또는 L1 데이터 캐시 메모리(140)는 로드 또는 저장 동작을 위해 액세스된다. 프로세싱 유닛(105) 내의 로직이 모든 로드 및 저장 동작이 L1 데이터 캐시 메모리(140) 내에 적중되거나 발견되는 시간 기간이 존재하는 것을 예측할 때, 요구된 캐시 라인이 L1 데이터 캐시 메모리(140) 내에 있기 때문에 필 버퍼 룩업은 요구되지 않는다. 단계 530은 필러 버퍼(146)의 비활성화를 검출하고 필 버퍼와 연관된 로직을 비활성화한다. 각각의 메모리 상의 프로세싱 유닛(105)은 필 버퍼(146)와 연관된 로직이 비활성화될 때 낮은 또는 최소 전력을 소비한다.
단계 540에서, 흐름(500)은 L1 태그 어레이(144)의 액세스 웨이의 수를 감소시킨다. 예를 들어, 본 발명의 일 실시예에서, L1 태그 어레이(144)의 8개의 웨이 중 단지 4개만이 로드 또는 저장 동작 중에 액세스된다. 본 발명의 일 실시예에서, 단계 540은 L1 웨이 3-0 판독 인에이블 신호(202) 및 L1 웨이 7-4 판독 인에이블 신호(204)가 L1 태그 어레이(144)의 활성화를 제어할 수 있게 하기 위해 필 버퍼 차단 신호(208)를 디어서트한다. 단계 550에서, 흐름(500)은 임의의 캐시 부적중이 존재하는지를 점검한다. 만일 아니오이면, 흐름(500)은 단계 550으로 복귀한다.
만일 예이면, 흐름(500)은 단계 560으로 진행하여 필 버퍼(146)와 연관된 로직을 활성화한다. 단계 560은 필 버퍼(146)와 연관된 로직이 비활성화된 후에 L1 데이터 캐시 메모리(140)의 제 1 캐시 메모리 부적중을 검출한다. 제 1 부적중은 필 버퍼(146)와 연관된 로직을 활성화하기 위한 페널티를 초래할 수 있지만, 캐시의 긴 시퀀스가 L1 데이터 캐시 메모리(140)에 적중한 후에 필 버퍼(146)가 차단되기 때문에 프로세싱 유닛(105)의 성능에 대한 영향은 최소이다. 단계 540에서, L1 태그 어레이(144)의 모든 웨이는 액세스를 위해 인에이블되고 흐름은 종료한다. 본 발명의 일 실시예에서, 필 버퍼 차단 신호(208)는 L1 웨이 3-0 판독 인에이블 신호(202) 및 L1 웨이 7-4 판독 인에이블 신호(204)가 L1 태그 어레이(144)의 활성화를 제어하는 것을 방지하기 위해 어서트되고, L1 태그 어레이(144)의 모든 웨이가 모든 로드 또는 저장 동작에서 점검된다.
도 6은 본 발명의 일 실시예에 따라 본 명세서에 개시된 방법을 구현하기 위한 시스템(600)을 도시한다. 시스템(600)은 이들에 한정되는 것은 아니지만, 데스크탑 컴퓨터, 랩탑 컴퓨터, 넷북, 노트북 컴퓨터, 개인 휴대 정보 단말(PDA), 서버, 워크스테이션, 휴대폰, 모바일 컴퓨팅 디바이스, 인터넷 기기 또는 임의의 다른 유형의 컴퓨팅 디바이스를 포함한다. 다른 실시예에서, 본 명세서에 개시된 방법을 구현하는데 사용된 시스템(600)은 시스템 온 칩(SOC) 시스템일 수 있다.
프로세서(610)는 시스템(600)의 명령을 실행하기 위한 프로세싱 코어(612)를 갖는다. 프로세싱 코어(612)는 이들에 한정되는 것은 아니지만, 명령을 페치하기 위한 프리페치 로직, 명령을 디코딩하기 위한 디코딩 로직, 명령을 실행하기 위한 실행 로직 등을 포함한다. 프로세서(610)는 시스템(600)의 명령 및/또는 데이터를 캐시하기 위한 캐시 메모리(616)를 갖는다. 본 발명의 다른 실시예에서, 캐시 메모리(616)는 이들에 한정되는 것은 아니지만, 1차, 2차 및 3차 캐시 메모리 또는 프로세서(610) 내의 임의의 다른 구성의 캐시 메모리를 포함한다.
메모리 제어 허브(MCH)(614)는 프로세서(610)가 휘발성 메모리(632) 및/또는 비휘발성 메모리(634)를 포함하는 메모리(630)에 액세스하여 통신하는 것을 가능하게 하는 기능을 수행한다. 휘발성 메모리(632)는 이들에 한정되는 것은 아니지만, 동기적 동적 랜덤 액세스 메모리(SDRAM), 동적 랜덤 액세스 메모리(DRAM), RAMBUS 동적 랜덤 액세스 메모리(RDRAM) 및/또는 임의의 다른 유형의 랜덤 액세스 메모리 디바이스를 포함한다. 비휘발성 메모리(634)는 이들에 한정되는 것은 아니지만, NAND 플래시 메모리, 상 변화 메모리(PCM), 판독 전용 메모리(ROM), 전기 소거 가능 프로그램 가능 판독 전용 메모리(EEPROM) 또는 임의의 다른 유형의 비휘발성 메모리 디바이스를 포함한다.
메모리(630)는 프로세서(610)에 의해 실행될 정보 및 명령을 저장한다. 메모리(630)는 또한 프로세서(610)가 명령을 실행하는 동안 임시 변수 또는 다른 중간 정보를 저장할 수 있다. 칩셋(620)은 점대점(PtP) 인터페이스(617, 622)를 경유하여 프로세서(610)와 접속한다. 칩셋(620)은 프로세서(610)가 시스템(600) 내의 다른 모듈에 접속할 수 있게 한다. 본 발명의 일 실시예에서, 인터페이스(617, 622)는 Intel
Figure pct00001
퀵패스 상호 접속(QuickPath Interconnect)(QPI) 등과 같은 PtP 통신 프로토콜에 따라 동작한다. 칩셋(620)은 이들에 한정되는 것은 아니지만, 액정 디스플레이(LCD), 음극선관(CRT) 디스플레이 또는 임의의 다른 형태의 시각적 디스플레이 디바이스를 포함하는 디스플레이 디바이스(640)에 접속한다.
게다가, 칩셋(620)은 다양한 모듈(674, 660, 662, 664, 666)을 상호 접속하는 하나 이상의 버스(650, 655)에 접속된다. 버스(650, 655)는 버스 속도 또는 통신 프로토콜에 오정합이 존재하면 버스 브리지(672)를 경유하여 함께 상호 접속될 수 있다. 칩셋(620)은 이들에 한정되는 것은 아니지만, 비휘발성 메모리(660), 대용량 저장 디바이스(들)(662), 키보드/마우스(664) 및 네트워크 인터페이스(666)와 결합된다. 대용량 저장 장치(662)는 이들에 한정되는 것은 아니지만, 고체 상태 드라이브, 하드 디스크 드라이브, 범용 직렬 버스 플래시 메모리 드라이브 또는 임의의 다른 형태의 컴퓨터 데이터 저장 매체를 포함한다. 네트워크 인터페이스(666)는 이들에 한정되는 것은 아니지만, 이더넷 인터페이스, 범용 직렬 버스(USB) 인터페이스, 주변 장치 상호 접속(PCI) 익스프레스 인터페이스, 무선 인터페이스 및/또는 임의의 다른 적합한 유형의 인터페이스를 포함하는 임의의 유형의 공지의 네트워크 인터페이스 표준을 사용하여 구현된다. 무선 인터페이스는 이들에 한정되는 것은 아니지만, IEEE 802.11 표준 및 그 관련 패밀리, 홈 플러그 AV(HPAV), 초광대역(UWB), 블루투스, WiMax 또는 임의의 형태의 무선 통신 프로토콜에 따라 동작한다.
도 6에 도시된 모듈은 시스템(600) 내의 개별 블록으로서 도시되어 있지만, 이들 블록의 일부에 의해 수행된 기능은 단일의 반도체 회로 내에 집적될 수 있고 또는 2개 이상의 개별 집적 회로를 사용하여 구현될 수 있다. 예를 들어, 캐시 메모리(616)는 프로세서(610) 내의 개별 블록으로서 도시되어 있지만, 캐시 메모리(616)는 프로세서 코어(612) 내에 각각 합체될 수 있다. 시스템(600)은 본 발명의 다른 실시예에서 하나 초과의 프로세서/프로세싱 코어를 포함할 수 있다.
본 명세서에 개시된 방법은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 다른 조합으로 구현될 수 있다. 개시된 요지의 실시예의 예가 설명되었지만, 당 기술 분야의 숙련자는 개시된 요지를 구현하는 다수의 다른 방법이 대안적으로 사용될 수도 있다는 것을 즉시 이해할 수 있을 것이다. 상기 설명에서, 개시된 요지의 다양한 양태가 설명되어 있다. 설명의 목적으로, 특정 수, 시스템 및 구성이 요지의 철저한 이해를 제공하기 위해 설명되었다. 그러나, 요지는 특정 상세 없이 실시될 수도 있다는 것이 본 개시 내용의 이득을 갖는 관련 분야의 숙련자에게 명백하다. 다른 경우에, 공지의 특징, 구성 요소 또는 모듈은 개시된 요지를 불명료하게 하지 않기 위해 생략되고, 간단화되고, 조합되거나, 분할된다.
본 명세서에 사용된 용어 "~동작 가능한"은 디바이스, 시스템, 프로토콜 등이 디바이스 또는 시스템이 오프 전원 상태에 있을 때 그 원하는 기능을 위해 동작 가능하거나 동작하도록 적용된 것을 의미한다. 개시된 요지의 다양한 실시예는 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있고, 머신에 의해 액세스될 때 머신이 작업을 수행하게 하고, 추상적 데이터 유형 또는 저레벨 하드웨어 콘텍스트를 규정하거나 결과를 생성하게 하는 명령, 기능, 절차, 데이터 구조, 로직, 응용 프로그램, 디자인 표현 또는 시뮬레이션, 에뮬레이션 및 디자인의 제조를 위한 포맷과 같은 프로그램 코드를 참조하여 또는 이들과 함께 설명될 수도 있다.
도면에 도시된 기술은 범용 컴퓨터 또는 컴퓨팅 디바이스와 같은 하나 이상의 컴퓨팅 디바이스 상에 저장되고 실행되는 코드 및 데이터를 사용하여 구현될 수 있다. 이러한 컴퓨팅 디바이스는 머신 판독 가능 저장 매체(예를 들어, 자기 디스크, 광학 디스크, 랜덤 액세스 메모리, 판독 전용 메모리, 플래시 메모리 디바이스, 상 변화 메모리)와 같은 머신 판독 가능 매체 및 머신 판독 가능 통신 매체(예를 들어, 전기, 광학, 음향 또는 다른 형태의 전파 신호 - 반송파, 적외선 신호, 디지털 신호 등)를 사용하여 코드 및 데이터를 저장하고 통신한다(내부적으로 그리고 네트워크를 통해 다른 컴퓨팅 디바이스와).
개시된 요지는 예시적인 실시예를 참조하여 설명되었지만, 본 설명은 한정의 개념으로 해석되도록 의도된 것은 아니다. 예시적인 실시예의 다양한 수정, 뿐만 아니라 개시된 요지가 속하는 분야의 숙련자들에게 명백한 요지의 다른 실시예는 개시된 요지의 범주 내에 있는 것으로 간주된다.
105: 프로세싱 유닛 110: 명령 페치 및 이슈 유닛
115: 명령 캐시 120: 버스 제어기
130: 실행 유닛 135: 메모리 실행 유닛
140: L1 데이터 캐시 142: L1 데이터 어레이
144: L1 태그 어레이 146: 필 버퍼
150: 시스템 인터페이스 310: 가상 어드레스
314: 가상 페이지 번호 312: 페이지 오프셋
320: 변환 334: 물리적 페이지 번호
332: 페이지 오프셋 330: 물리적 어드레스
630: 메모리 632: 휘발성 메모리
634: 비휘발성 메모리 610: 프로세서
612: 프로세서 코어 616: 캐시 메모리
640: 디스플레이 디바이스 620: 칩셋
672: 버스 브리지 674: I/O 디바이스
680: 비휘발성 메모리 682: 저장 디바이스
684: 키보드/마우스 686: 네트워크 인터페이스

Claims (20)

  1. 복수의 웨이(a plurality of ways)를 갖는 데이터 캐시 메모리와,
    상기 데이터 캐시 메모리와 결합되어, 로드 명령 또는 저장 명령에 응답하여 상기 데이터 캐시 메모리의 상기 복수의 웨이 중 일부만으로의 액세스를 가능하게 하는 로직을 포함하는
    장치.
  2. 제 1 항에 있어서,
    상기 데이터 캐시 메모리의 상기 복수의 웨이 중 일부만으로의 액세스를 가능하게 하는 상기 로직은 상기 데이터 캐시 메모리의 가상 어드레스의 어드레스 비트에 적어도 부분적으로 기초하여 상기 데이터 캐시 메모리의 상기 복수의 웨이 중 일부만으로의 액세스를 가능하게 하는
    장치.
  3. 제 1 항에 있어서,
    상기 데이터 캐시 메모리는 데이터 어레이를 포함하고, 상기 로직은 또한 상기 데이터 어레이의 연속적인 캐시 메모리 적중(consecutive cache memory hits)의 수가 임계치를 초과하는지 여부를 판정하는
    장치.
  4. 제 3 항에 있어서,
    상기 데이터 캐시 메모리는 상기 복수의 웨이를 갖는 태그 어레이를 포함하고, 상기 로직은 또한
    상기 데이터 어레이의 연속적인 캐시 메모리 적중의 수가 상기 임계치를 초과한다는 판정에 응답하여 상기 태그 어레이의 상기 복수의 웨이 중 일부만으로의 액세스를 가능하게 하는
    장치.
  5. 제 3 항에 있어서,
    하나 이상의 필 버퍼(fill buffers)를 더 포함하고, 상기 로직은 또한 상기 데이터 어레이의 연속적인 캐시 메모리 적중의 수가 상기 임계치를 초과한다는 판정에 응답하여 상기 하나 이상의 필 버퍼와 연관된 로직을 불능화하는
    장치.
  6. 제 5 항에 있어서,
    상기 로직은, 또한
    상기 데이터 어레이의 캐시 메모리 부적중(a cache memory miss)이 존재하는지 여부를 판정하고,
    상기 데이터 어레이의 캐시 메모리 부적중이 존재한다는 판정에 응답하여 상기 하나 이상의 필 버퍼와 연관된 로직을 인에이블하는
    장치.
  7. 제 4 항에 있어서,
    상기 로직은, 또한
    상기 로드 명령 또는 상기 저장 명령과 연관된 가상 어드레스가 다른 가상 어드레스에 맵핑되는 물리적 어드레스를 인덱싱하는지 여부를 판정하고,
    상기 로드 명령 또는 상기 저장 명령과 연관된 가상 어드레스가 상기 다른 가상 어드레스에 맵핑되는 물리적 어드레스를 인덱싱한다는 판정에 응답하여 상기 데이터 캐시 메모리의 상기 복수의 웨이의 모든 웨이에 액세스를 가능하게 하는
    장치.
  8. 1차(level one: L1) 비블로킹 캐시 메모리와,
    상기 L1 비블로킹 캐시 메모리에 결합되어,
    상기 L1 비블로킹 캐시 메모리의 캐시 메모리 적중의 연속적인 클럭의 수가 임계치를 초과하는지 여부를 판정하고,
    상기 L1 비블로킹 캐시 메모리의 캐시 메모리 적중의 연속적인 클럭의 수가 상기 임계치를 초과하였다는 판정에 응답하여 복수의 필 버퍼로의 액세스를 비활성화하는 로직을 포함하는
    장치.
  9. 제 8 항에 있어서,
    상기 로직은, 또한
    상기 L1 비블로킹 캐시 메모리의 캐시 메모리 부적중이 존재하는지 여부를 판정하고,
    상기 L1 비블로킹 캐시 메모리의 캐시 메모리 부적중이 존재한다는 판정에 응답하여 상기 복수의 필 버퍼로의 액세스를 활성화하는
    장치.
  10. 제 8 항에 있어서,
    상기 L1 비블로킹 캐시 메모리는 N-웨이 데이터 어레이를 갖는 N-웨이 세트 연관 캐시 메모리이고, 상기 N-웨이 데이터 어레이는 2개 이상의 그룹으로 분할되고, 상기 로직은 또한
    상기 N-웨이 세트 연관 캐시 메모리에 액세스하기 위해 로드 요구 또는 저장 요구를 수신하고,
    수신된 상기 로드 요구 또는 상기 저장 요구에 응답하여 상기 N-웨이 데이터 어레이의 2개 이상의 그룹 중 하나만으로의 액세스를 허용하는
    장치.
  11. 제 10 항에 있어서,
    상기 N-웨이 데이터 어레이의 2개 이상의 그룹 중 하나만으로의 액세스를 허용하는 상기 로직은 상기 L1 비블로킹 캐시 메모리의 가상 어드레스의 어드레스 비트에 적어도 부분적으로 기초하여 상기 N-웨이 데이터 어레이의 2개 이상의 그룹 중 하나만으로의 액세스를 허용하는
    장치.
  12. 제 10 항에 있어서,
    상기 N-웨이 데이터 어레이의 각각의 그룹은 인에이블 신호를 갖고, 상기 N-웨이 데이터 어레이의 2개 이상의 그룹 중 하나만으로의 액세스를 허용하는 상기 로직은 상기 N-웨이 데이터 어레이의 각각의 그룹의 각각의 인에이블 신호에 적어도 부분적으로 기초하여 상기 N-웨이 데이터 어레이의 2개 이상의 그룹 중 하나만으로의 액세스를 허용하는
    장치.
  13. 제 10 항에 있어서,
    상기 N-웨이 세트 연관 캐시 메모리는 N-웨이 태그 어레이를 더 포함하고, 상기 N-웨이 태그 어레이는 2개 이상의 그룹으로 분할되고, 상기 로직은 또한
    상기 L1 비블로킹 캐시 메모리의 캐시 메모리 적중의 연속적인 클럭의 수가 상기 임계치를 초과하였다는 판정에 응답하여 수신된 상기 로드 요구 또는 상기 저장 요구에 응답하여 상기 N-웨이 태그 어레이의 2개 이상의 그룹 중 하나만으로의 액세스를 허용하는
    장치.
  14. 제 8 항에 있어서,
    상기 장치는 비순차적 프로세서인
    장치.
  15. 복수의 웨이를 갖는 세트 연관 캐시 메모리에 액세스하기 위한 로드 명령 또는 저장 명령을 수신하는 단계와,
    수신된 상기 로드 명령 또는 상기 저장 명령에 응답하여 세트 연관 캐시 메모리의 복수의 웨이 중 일부만으로의 액세스를 가능하게 하는 단계를 포함하는
    방법.
  16. 제 15 항에 있어서,
    상기 세트 연관 캐시 메모리의 캐시 메모리 적중의 연속적인 클럭의 수가 임계치를 초과하는지 여부를 판정하는 단계를 더 포함하는
    방법.
  17. 제 16 항에 있어서,
    상기 세트 연관 캐시 메모리의 캐시 메모리 적중의 연속적인 클럭의 수가 상기 임계치를 초과하였다는 판정에 응답하여 복수의 필 버퍼로의 액세스를 비활성화하는 단계를 더 포함하는
    방법.
  18. 제 17 항에 있어서,
    세트 연관 캐시 메모리의 캐시 메모리 부적중이 존재하는지 여부를 판정하는 단계와,
    상기 세트 연관 캐시 메모리의 캐시 메모리 부적중이 존재한다는 판정에 응답하여 상기 복수의 필 버퍼로의 액세스를 활성화하는 단계를 더 포함하는
    방법.
  19. 제 15 항에 있어서,
    상기 세트 연관 캐시 메모리는 상기 복수의 웨이를 갖는 데이터 어레이를 포함하고, 상기 데이터 어레이는 2개 이상의 그룹으로 분할되고, 상기 세트 연관 캐시 메모리의 상기 복수의 웨이 중 일부만으로의 액세스를 가능하게 하는 단계는 상기 데이터 어레이의 2개 이상의 그룹 중 하나만으로의 액세스를 허용하는 단계를 포함하는
    방법.
  20. 제 15 항에 있어서,
    상기 세트 연관 캐시 메모리의 상기 복수의 웨이 중 일부만으로의 액세스를 가능하게 하는 단계는 상기 세트 연관 캐시 메모리의 가상 어드레스의 어드레스 비트에 적어도 부분적으로 기초하여 상기 세트 연관 캐시 메모리의 상기 복수의 웨이 중 일부만으로의 액세스를 가능하게 하는 단계를 포함하는
    방법.
KR1020127034099A 2010-06-24 2011-06-22 메모리 디바이스의 전력 소비를 감소시키기 위한 방법 및 시스템 KR101456860B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/823,047 US8352683B2 (en) 2010-06-24 2010-06-24 Method and system to reduce the power consumption of a memory device
US12/823,047 2010-06-24
PCT/US2011/041527 WO2011163417A2 (en) 2010-06-24 2011-06-22 Method and system to reduce the power consumption of a memory device

Publications (2)

Publication Number Publication Date
KR20130041836A true KR20130041836A (ko) 2013-04-25
KR101456860B1 KR101456860B1 (ko) 2014-11-03

Family

ID=45353649

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127034099A KR101456860B1 (ko) 2010-06-24 2011-06-22 메모리 디바이스의 전력 소비를 감소시키기 위한 방법 및 시스템

Country Status (7)

Country Link
US (1) US8352683B2 (ko)
EP (1) EP2585892A4 (ko)
JP (1) JP5709988B2 (ko)
KR (1) KR101456860B1 (ko)
CN (1) CN102298554B (ko)
TW (1) TWI454909B (ko)
WO (1) WO2011163417A2 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412971B2 (en) * 2010-05-11 2013-04-02 Advanced Micro Devices, Inc. Method and apparatus for cache control
US8635408B2 (en) * 2011-01-04 2014-01-21 International Business Machines Corporation Controlling power of a cache based on predicting the instruction cache way for high power applications
US20130013867A1 (en) * 2011-07-06 2013-01-10 Advanced Micro Devices, Inc. Data prefetcher mechanism with intelligent disabling and enabling of a prefetching function
US9396117B2 (en) * 2012-01-09 2016-07-19 Nvidia Corporation Instruction cache power reduction
CN102541761B (zh) * 2012-01-17 2014-10-22 苏州国芯科技有限公司 应用于嵌入式芯片的只读高速缓冲存储器
US9552032B2 (en) 2012-04-27 2017-01-24 Nvidia Corporation Branch prediction power reduction
US9547358B2 (en) 2012-04-27 2017-01-17 Nvidia Corporation Branch prediction power reduction
US20140189192A1 (en) * 2012-12-28 2014-07-03 Shlomo Raikin Apparatus and method for a multiple page size translation lookaside buffer (tlb)
US9311239B2 (en) 2013-03-14 2016-04-12 Intel Corporation Power efficient level one data cache access with pre-validated tags
US9176856B2 (en) * 2013-07-08 2015-11-03 Arm Limited Data store and method of allocating data to the data store
CN104536911B (zh) * 2014-12-31 2018-01-02 华为技术有限公司 一种多路组相联的高速缓冲存储器及其处理方法
EP3262556A4 (en) * 2015-06-18 2018-02-07 Hewlett-Packard Enterprise Development LP Protected loading of a module
CN105843360B (zh) * 2016-03-23 2018-06-12 中国电子科技集团公司第三十八研究所 一种降低指令高速缓冲存储器功耗的装置及方法
US10073787B2 (en) * 2016-04-18 2018-09-11 Via Alliance Semiconductor Co., Ltd. Dynamic powering of cache memory by ways within multiple set groups based on utilization trends
US10579522B2 (en) * 2016-09-13 2020-03-03 Andes Technology Corporation Method and device for accessing a cache memory
US10156887B2 (en) * 2016-09-29 2018-12-18 Qualcomm Incorporated Cache memory clock generation circuits for reducing power consumption and read errors in cache memory
US10229061B2 (en) 2017-07-14 2019-03-12 International Business Machines Corporation Method and arrangement for saving cache power
KR101952827B1 (ko) * 2018-06-29 2019-02-27 주식회사 맴레이 메모리 제어 장치 및 이를 포함하는 메모리 시스템
US11409446B2 (en) 2020-11-11 2022-08-09 Micro Technology, Inc. Media management on power-up

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359723A (en) * 1991-12-16 1994-10-25 Intel Corporation Cache memory hierarchy having a large write through first level that allocates for CPU read misses only and a small write back second level that allocates for CPU write misses only
JPH08329860A (ja) * 1995-05-30 1996-12-13 Toshiba Corp 陰極線管用偏向装置
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
JPH11134077A (ja) * 1997-10-30 1999-05-21 Hitachi Ltd データ処理装置及びデータ処理システム
JP3438650B2 (ja) * 1999-05-26 2003-08-18 日本電気株式会社 キャッシュメモリ
JP2002236616A (ja) * 2001-02-13 2002-08-23 Fujitsu Ltd キャッシュメモリシステム
US6643739B2 (en) 2001-03-13 2003-11-04 Koninklijke Philips Electronics N.V. Cache way prediction based on instruction base register
US6944724B2 (en) * 2001-09-14 2005-09-13 Sun Microsystems, Inc. Method and apparatus for decoupling tag and data accesses in a cache memory
JP2005196430A (ja) * 2004-01-07 2005-07-21 Hiroshi Nakamura 半導体装置および半導体装置の電源電圧/クロック周波数制御方法
US20070043965A1 (en) 2005-08-22 2007-02-22 Intel Corporation Dynamic memory sizing for power reduction
US7562191B2 (en) * 2005-11-15 2009-07-14 Mips Technologies, Inc. Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
JP4846383B2 (ja) * 2006-02-10 2011-12-28 株式会社日立製作所 情報処理装置
US7689772B2 (en) 2006-05-04 2010-03-30 Intel Corporation Power-performance modulation in caches using a smart least recently used scheme
US20090006756A1 (en) * 2007-06-29 2009-01-01 Donley Greggory D Cache memory having configurable associativity
US8271732B2 (en) 2008-12-04 2012-09-18 Intel Corporation System and method to reduce power consumption by partially disabling cache memory

Also Published As

Publication number Publication date
JP5709988B2 (ja) 2015-04-30
US8352683B2 (en) 2013-01-08
TW201214114A (en) 2012-04-01
US20110320723A1 (en) 2011-12-29
KR101456860B1 (ko) 2014-11-03
WO2011163417A3 (en) 2012-04-19
TWI454909B (zh) 2014-10-01
JP2013529816A (ja) 2013-07-22
WO2011163417A2 (en) 2011-12-29
CN102298554B (zh) 2014-11-05
CN102298554A (zh) 2011-12-28
EP2585892A4 (en) 2014-04-23
EP2585892A2 (en) 2013-05-01

Similar Documents

Publication Publication Date Title
KR101456860B1 (ko) 메모리 디바이스의 전력 소비를 감소시키기 위한 방법 및 시스템
US9280474B2 (en) Adaptive data prefetching
US9886385B1 (en) Content-directed prefetch circuit with quality filtering
US7516275B2 (en) Pseudo-LRU virtual counter for a locking cache
US9727482B2 (en) Address range priority mechanism
US9063860B2 (en) Method and system for optimizing prefetching of cache memory lines
JP2001195303A (ja) 機能が並列に分散された変換索引バッファ
US20140189243A1 (en) Sectored cache with hybrid line granularity
US20170286118A1 (en) Processors, methods, systems, and instructions to fetch data to indicated cache level with guaranteed completion
US20140189192A1 (en) Apparatus and method for a multiple page size translation lookaside buffer (tlb)
US9183161B2 (en) Apparatus and method for page walk extension for enhanced security checks
EP3757799A1 (en) System and method to track physical address accesses by a cpu or device
US8359433B2 (en) Method and system of handling non-aligned memory accesses
KR20150079408A (ko) 데이터 포워딩을 위한 프로세서, 그것의 동작 방법 및 그것을 포함하는 시스템
US10013352B2 (en) Partner-aware virtual microsectoring for sectored cache architectures
US8661169B2 (en) Copying data to a cache using direct memory access
US8341355B2 (en) Reducing energy consumption of set associative caches by reducing checked ways of the set association
US10303504B2 (en) Systems, methods, and apparatuses for resource monitoring
KR20240067880A (ko) 프로세서 기반 디바이스에서의 메모리 블록 액세스 빈도 추적
JP4307604B2 (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