KR20160125887A - 메모리 관리 - Google Patents

메모리 관리 Download PDF

Info

Publication number
KR20160125887A
KR20160125887A KR1020160043950A KR20160043950A KR20160125887A KR 20160125887 A KR20160125887 A KR 20160125887A KR 1020160043950 A KR1020160043950 A KR 1020160043950A KR 20160043950 A KR20160043950 A KR 20160043950A KR 20160125887 A KR20160125887 A KR 20160125887A
Authority
KR
South Korea
Prior art keywords
data
mapping
hint
circuit
memory
Prior art date
Application number
KR1020160043950A
Other languages
English (en)
Other versions
KR102568051B1 (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 KR20160125887A publication Critical patent/KR20160125887A/ko
Application granted granted Critical
Publication of KR102568051B1 publication Critical patent/KR102568051B1/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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • 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

데이터 처리 시스템(4)은 물리 어드레스들의 서로 다른 영역들에 대한 가상-물리 어드레스 매핑을 표시하는 매핑 데이터 엔트리들(10)을 기억하는 변환 색인 퍼(6)를 구비한다. 변환 색인 버퍼(6)에 접속된 힌트 발생기(20)는 변환 색인 버퍼 (6) 내부의 매핑 데이터 엔트리들의 기억에 따라 힌트 데이터를 발생한다. 힌트 발생기(20)는 매핑 데이터 엔트리들의 로딩과 변환 색인 버퍼(6)로부터의 매핑 데이터 엔트리들의 퇴출을 추적한다. 힌트 데이터는 메모리 제어기(8)에 공급되고 메모리 제어기는 물리 어드레스들의 각각의 서로 다른 영역들에 대응하는 데이터가 이종 메모리 시스템 내부에 기억되는 방식, 예를 들어, 서로 다른 영역들을 기억하는 메모리들의 서로 다른 부분들의 전력 상태와, 어떤 종류의 메모리를 사용하여 서로 다른 영역들을 기억하는지를 제어한다.

Description

메모리 관리{MEMORY MANAGEMENT}
본 발명은 데이터 처리 시스템 분야에 관한 것이다. 특히, 본 발명은 메모리 시스템의 제어에 관한 것이다.
물리 어드레스로 변환되는 가상 어드레스를 발생하고, 그후 이 물리 어드레스를 사용하여 메모리 시스템의 어드레스를 지정하는 데이터 처리 시스템을 제공하는 것이 알려져 있다. 이와 같은 시스템 내에서는, 추가적인 변환이 동일한 변환 지정 데이터를 요구할 것이라는 가능성에서 이와 같은 가상-물리 어드레스 변환을 행하기 위한 데이터를 명시하는 최근에 사용된 변환을 기억하는 변환 색인 버퍼(translation lookaside buffer: TLB)를 설치하는 것이 알려져 있으며, 전체 메모리 어드레스 공간에 대한 가상-물리 어드레스 매핑을 기술하는 페이지 테이블들의 세트 내에서의 페이지 테이블 워크(page table walk)를 요구하는 것이 아니라 상기한 변환 색인 버퍼로부터 이 최근에 사용된 변환이 공급될 수 있다.
일면에 따르면, 본 발명은,
가상 어드레스 공간 내부의 가상 어드레스들의 영역과 물리 어드레스 공간 내부의 물리 어드레스들의 영역 사이의 매핑을 각각 표시하는 한 개 이상의 매핑 데이터 엔트리들을 기억하고, 상기 가상 어드레스들의 영역 내부의 가상 어드레스로부터 상기 물리 어드레스들의 영역 내부의 물리 어드레스로 매핑을 행하는 매핑회로와,
상기 매핑회로에 접속되고 상기 매핑회로 내의 매핑 데이터 엔트리들의 기억에 따라 힌트(hint) 데이터를 발생하는 힌트 발생회로와,
상기 힌트 데이터에 따라, 물리 어드레스들의 각각의 서로 다른 영역들에 대응하는 데이터가 메모리 시스템 내부에 기억되는 방식을 제어하는 기억 제어회로를 구비한 데이터 처리장치를 제공한다.
또 다른 일면에 따르면, 본 발명은,
가상 어드레스 공간 내부의 가상 어드레스들의 영역과 물리 어드레스 공간 내부의 물리 어드레스들의 영역 사이의 매핑을 각각 표시하는 한 개 이상의 매핑 데이터 엔트리들을 기억하고, 상기 가상 어드레스들의 영역 내부의 가상 어드레스로부터 상기 물리 어드레스들의 영역 내부의 물리 어드레스로 매핑을 행하는 매핑수단과,
상기 매핑수단에 접속되고 상기 매핑수단 내의 매핑 데이터 엔트리들의 기억에 따라 힌트 데이터를 발생하는 힌트 발생수단과,
상기 힌트 데이터에 따라, 물리 어드레스들의 각각의 서로 다른 영역들에 대응하는 데이터가 메모리 시스템 내부에 기억되는 방식을 제어하는 기억 제어수단을 구비한 데이터 처리장치를 제공한다.
또 다른 일면에 따르면, 본 발명은,
가상 어드레스 공간 내부의 가상 어드레스들의 영역과 물리 어드레스 공간 내부의 물리 어드레스들의 영역 사이의 매핑을 각각 표시하는 한 개 이상의 매핑 데이터 엔트리들을 기억하는 단계와,
상기 한 개 이상의 매핑 데이터 엔트리들 중에서 적어도 한 개를 사용하여, 상기 가상 어드레스들의 영역 내부의 가상 어드레스로부터 상기 물리 어드레스들의 영역 내부의 물리 어드레스로 매핑을 행하는 단계와,
매핑 데이터 엔트리들의 기억에 따라 힌트 데이터를 발생하는 단계와,
상기 힌트 데이터에 따라, 물리 어드레스들의 각각의 서로 다른 영역들에 대응하는 데이터가 메모리 시스템 내부에 기억되는 방식을 제어하는 단계를 포함하는 데이터 처리방법을 제공한다.
본 발명의 전술한 목적, 특징 및 이점은 다음의 첨부도면을 참조하여 주어지는 예시적인 실시예들의 상세한 설명으로부터 명백해질 것이다.
도 1은 이종 메모리 시스템을 갖고 가상-물리 어드레스 변환을 채용하는 데이터 처리 시스템을 개략적으로 나타낸 것이다.
도 2는 변환 색인 버퍼 내부에 기억되는 매핑 데이터 엔트리를 개략적으로 나타낸 것이다.
도 3은 매핑 데이터 엔트리들의 기억에 따라 발생되는 힌트 데이터를 개략적으로 나타낸 것이다.
도 4는 수신된 힌트 데이터에 따른 DRAM 뱅크 전력 제어를 개략적으로 나타낸 흐름도이다.
도 5는 수신된 힌트 데이터에 따른 메모리 종류 및 액세스 회로 전력의 제어를 개략적으로 나타낸 흐름도이다.
도 6은 페이지 테이블 워크가 힌트 발생을 기동하는 방법을 개략적으로 나타낸 흐름도이다.
도 7은 에이징 희생자 목록(aging victim list)의 발생을 개략적으로 나타낸 흐름도이다.
도 8은 에이징 희생자 감시(aging victim watchdog)의 동작을 개략적으로 나타낸 흐름도이다.
도 9는 힌트 발생기가 복수의 변환 색인 버퍼들에 대해 염탐(snoop) 요구를 행하는 데이터 처리 시스템을 개략적으로 나타낸 것이다.
도 10은 힌트 발생기가 공유 메모리를 이용하여 복수의 변환 색인 버퍼들 내부의 매핑 데이터 엔트리들을 추적하는 데이터 처리 시스템을 개략적으로 나타낸 것이다.
도 1은 프로그램 명령들의 스트림을 실행하는 프로세서 코어(4)를 포함하는 데이터 처리 시스템(2)을 개략적으로 나타낸 것이다. 이들 프로그램 명령들의 일부는 가상 어드레스(VA)를 사용하여 액세스할 데이터의 어드레스를 명시하는 로드 명령 또는 저장(store) 명령이다. 이와 같은 가상 어드레스는 변환 색인 버퍼(6)에 주어져, 가상-물리 어드레스 변환을 겪어 물리 어드레스(PA)를 발생하고, 그후 이 물리 어드레스는 메모리 제어기(8)로 주어진다. 변환 색인 버퍼는 복수의 매핑 데이터 엔트리(10)를 기억한다. 매핑 데이터 엔트리들(10)은 본 기술분야의 당업자에게 있어서 자명한 페이지 테이블 워크를 사용하여 시스템 내부의 다른 것에 기억된 페이지 테이블 데이터(12)로부터 판독된다. 페이지 테이블 데이터(12)는, 전체 메모리 어드레스 공간과 관련된 가상-물리 어드레스 매핑과 기타의 메모리 속성들을 기술한다. 개별적인 매핑 데이터 엔트리들(10)은, 가상 어드레스 공간 내부의 가상 어드레스들의 영역(예를 들어, 4kB 페이지)과 물리 어드레스 공간 내부의 물리 어드레스들의 영역인 메모리 페이지들에 대한 가상-물리 어드레스 변환 및 메모리 속성들과, 해당 메모리의 페이지의 액세스 허가(판독/기록/실행가능), 캐시 가능성(cacheability) 및 기타 속성들 등의 기타 메모리 속성들을 명시한다.
변환 색인 버퍼(6)에 의해 수신된 가상 어드레스가 변환 색인 버퍼(6) 내부에 이미 기억된 대응하는 매핑 데이터 엔트리(10)를 갖지 않는 경우에는, 페이지 테이블 데이터(12)에 걸친 페이지 테이블 워크를 개시하여 적절한 매핑 데이터 엔트리를 판독함으로써, 이 매핑 데이터 엔트리가 추후의 사용을 위해 변환 색인 버퍼(6) 내부에 기억되고 변환 색인 버퍼(6) 내부에 대한 이 매핑 데이터 엔트리의 로딩을 기동한 메모리 액세스를 위해 사용된다. 새롭게 판독된 매핑 데이터 엔트리에 대해 변환 색인 버퍼(6) 내부에 불충분한 기억 공간이 존재하는 경우에는, 새로운 엔트리를 위해 이용가능한 공간을 만들기 위해 현재 기억된 매핑 데이터 엔트리(10)가 퇴출된다. 변환 색인 버퍼(6)는, 물리 어드레스 공간 내부의 물리 어드레스들의 영역에 대한 가상 어드레스 내부의 가상 어드레스들의 영역의 매핑 사이에 지시적으로 한 개 이상의 매핑 데이터 엔트리를 각각 기억하는 역할을 하는 한가지 형태의 매핑회로의 예이다.
메모리 제어기(8)는, 본 실시예에서는 제 1 DRAM 메모리(DRAM0)(14), 제 1 불휘발성 메모리(NVM0)(16), 제 2 불휘발성 메모리(NVM1)(17) 및 제 2 DRAM 메모리(DRAM1)(180을 포함하는 이종 메모리 시스템에 대한 액세스를 제어하는 기억 제어회로로서 기능한다. 이들 다른 형태의 메모리는, 데이터를 기억하기 위한 소비전력, 데이터를 기억하기 위한 에너지 소비, 데이터를 액세스하기 위한 에너지 소비, 데이터를 액세스하기 위한 소비전력, 액세스 대기시간, 변동성(volatility) 및 마모율(wear rate) 등의 서로 다른 성능 특성을 갖는다. 일례로서, 제 1 DRAM 메모리(14)는 매우 휘발성이 크므로 정기적인 리플레시를 필요로 하여 데이터를 기억하기 위한 비교적 높은 소비전력을 갖지만 다른 형태의 메모리에 비해 데이터를 액세스시에 최저의 액세스 대기시간을 제공한다. 또한, DRAM 메모리 14는 마모 효과(wear effect)를 겪지 않아도 된다. 이에 반해, 제 2 DRAM 메모리(18)는 데이터를 기억하기 위한 더 낮은 소비전력을 갖지만 제 1 DRAM 메모리(14)보다 높은 액세스 대기시간을 갖는다, 불휘발성 메모리들(16, 17)은, 제 1 및 제 2 DRAM메모리들(14, 18)보다 데이터를 기억하기 위한 더 낮은 소비전력을 갖지만, 더 높은 액세스 대기시간을 갖고, 또한 마모 효과를 겪음으로써, 메모리에 대한 데이터의 반복된 기록이 결국 플래시 메모리 16의 적어도 일부의 고장을 일으키게 된다.
이종 메모리 시스템의 서로 다른 부품들의 서로 다른 성능 특성은, 이들 서로 다른 부품들이 서로 다른 종류의 데이터의 기억을 위해 더 잘 맞는다는 효과를 나타낸다는 것을 알 수 있다. 예를 들어, 제 1 DRAM 메모리(14)는 조작할 데이터 값들의 기억에 적합하여, 이들 데이터 값에 대한 빈번한 낮은 대기시간의 판독 및 기록이 바람직하며 DRAM 메모리 18과 관련된 전력 및/또는 에너지 비용을 정당화한다. 제 2 DRAM 메모리(18)는 더 큰 볼륨의 작은 대기시간의 민감한 데이터의 기억에 적합하다. 불휘발성 메모리 16은 판독되지만 기록되지 않는 일정한 파라미터들의 기억에 적합하다. 메모리 제어기(8)가 적절한 형태의 메모리를 이용하여 물리 어드레스들의 영역으로부터 데이터를 기억함으로써, 이 데이터의 액세스 특징 및 사용이 이 데이터를 기록하는데 이용되는 이종 메모리 시스템 부분의 성능 특성과 부합될 수 있다면, 에너지 절감과 성능 이득이 이루어진다.
변환 색인 버퍼(6) 및 메모리 제어기(8)에 접속된 힌트 발생기(20)는, 변환 색인 버퍼(6) 내부의 매핑 데이터 엔트리들(10)의 기억에 의존하는 힌트 데이터를 발생하는 역할을 한다. 이와 같은 힌트 데이터는 메모리 제어기(8)에 공급되고, 이 메모리 제어기는 이 힌트 데이터를 사용하여, 본 실시예에서는, 제 1 및 제 2 DRAM 메모리(14, 18) 및 불휘발성 메모리(16, 17)를 포함하는 이종 메모리 시스템 내부에 물리 어드레스들의 각각의 서로 다른 영역들에 대응하는 데이터가 기억되는 방식을 제어한다. 상위 레벨에서, 힌트 발생기(20) 및 힌트 데이터의 이용의 한가지 예는, 물리 어드레스들의 영역에 대한 매핑 데이터 엔트리가 변환 색인 버퍼(6)로부터 퇴출된 것을 힌트 발생기(20)가 검출하는 경우에, 변환 색인 버퍼(6)에 의해 사용된 희생자 선택 알고리즘이 물리 어드레스들의 이 영역을 비교적 드물게 액세스되는 것으로 식별했을 가능성이 있으며, 이에 따라 물리 어드레스들의 이 영역에 액세스하기 위해 비트 셀들의 뱅크의 전력을 올릴 추후의 필요에 의해 발생되는 이 데이터를 액세스하기 위한 대기시간의 증가를 전력 절감이 더 보상하게 되므로, 메모리 제어기(8)가 이 메모리의 영역을 포함하는 제 1 DRAM 메모리(14) 내부의 비트 셀들의 뱅크의 전력을 낮출 수 있다는 것일 것이다. 더구나, 매핑 데이터 엔트리가 변환 색인 버퍼(6)로부터 퇴출되었기 때문에, 이 데이터를 다시 액세스하는데 필요한 매핑 데이터 엔트리를 다시 로드하기 위해서는 비교적 느린 페이지 테이블 워크가 필요하게 되고, 이 페이지 테이블 워크를 행하는데 걸리는 시간이 충분하여, 비트 셀들의 뱅크의 전력을 올리는데 걸리는 시간이 페이지 테이블 워크가 완료하는데 걸리는 시간보다 적어지므로, 비트 셀들의 뱅크의 전력을 올리는데 걸리는 시간을 숨길 수 있다. 힌트 데이터가 사용되는 방법의 또 다른 예는, 물리 어드레스들의 특정한 영역이 제 1 또는 제 2 DRAM 메모리(14, 18)가 비해 불휘발성 메모리 16 등의 더 긴 액세스 대기시간을 갖지만 더 낮은 에너지 소비의 메모리 내부에 기억하는데 가장 적합한 것이라는 것을 메모리 제어기(8)에 표시하는 것이다.
또한, 제 1 불휘발성 메모리(16) 및 제 2 불휘발성 메모리(17)에 대한 데이터 액세스를 제어/조정하기 위해 각각 설치된 액세스 회로들(22, 23)이 도 1에 더 도시되어 있다. (변환 색인 버퍼(6) 내부에 대응하는 매핑 데이터 엔트리의 부재로 표시되는 것과 같이) 제 1 불휘발성 메모리(16) 또는 제 2 불휘발성 메모리(17)의 각각의 내부에 기억된 물리 어드레스들의 영역들이 현재 활성이 아니라는 것을 힌트 발생기(20)로부터 메모리 제어기(8)에 주어진 힌트 데이터가 표시하는 경우에, 적절한 액세스 회로(22, 23)의 전력을 낮춤으로써 전력을 절감한다. 이것은 액세스 대기시간을 증가시키지만, 에너지의 절감이 이와 같은 증가를 정당화한다.
도 2는 매핑 데이터 엔트리(10)를 개략적으로 나타낸 것이다. 본 실시예에서, 매핑 데이터 엔트리(10)는 가상 TAG(26) 및 물리 TAG(28)를 포함한다. 가상 TAG(26) 및 물리 TAG(28)는 가상-물리 어드레스 매핑을 제공하는데 사용된다. 수신된 가상 어드레스를 변환 색인 버퍼(6) 내부에 기억된 매핑 데이터 엔트리(10)의 가상 TAG와 비교하여, 적절한 매핑 데이터 엔트리가 존재하는지 여부를 판정한다. 적중(hit)이 일어나면, 매핑 데이터 엔트리 적중으로부터의 물리 TAG(28)가 수신된 가상 어드레스의 일부에 대한 변환을 제공함으로써, 적절한 물리 어드레스가 발생된다. 매핑 데이터 엔트리(10)는 (판독 허가, 기록 허가, 실행 허가 등의) 액세스 허가 데이터(30)를 더 포함한다. 캐시 가능성 플래그(32)를 사용하여 메모리의 이 영역으로부터의 데이터가 프로세서 코어(4)의 캐시 내부에 기억되는지 여부를 표시한다. 이때, 데이터 처리 시스템(2)은, 한 개 이상의 캐시 메모리들이 변환 색인 버퍼(6)의 하류측에(downstream) 또는 변환 색인 버퍼와 병렬로 있을 때 물리 가상 어드레스 또는 가상 어드레스들을 사용하여 어드레스가 지정되는 한 개 이상의 캐시 메모리(미도시, 예를 들어, 데이터 캐시, 명령 캐시, 통합 레벨 2 캐시 등)를 더 구비해도 된다. 매핑 데이터 엔트리(10)는, 가상-물리 어드레스 변환을 행하기 위해 이 매핑 데이터 엔트리(10)가 얼마나 자주 사용되는지를 추적하여 매핑 데이터 엔트리의 퇴출이 필요할 때 적절한 희생자를 선택하는데 도움이 되기 위해 변환 색인 버퍼(6)에 의해 사용된 사용 계수값(34)을 포함한다.
도 3은 힌트 발생기(20)에 의해 발생되어 메모리 제어기(8)에 주어지는 힌트 데이터(38)의 한가지 예시적인 형태를 개략적으로 나타낸 것이다. 이 힌트 데이터(38)는, 본 실시예에서는, 변환 색인 버퍼(6)로부터 퇴출되거나 변환 색인 버퍼(6)에 로드된, 매핑 데이터 엔트리(10) 내부의 데이터의 모든 필드를 포함한다. 이들 필드 이외에, 힌트 데이터(38)는, 힌트 데이터가 변환 색인 버퍼(6)로부터 퇴출된 매핑 데이터 엔트리와 관련되는지 또는 변환 색인 버퍼(6)에 로드된 매핑 데이터 엔트리와 관련되는지를 명시하는 플래그(36)를 포함한다.
따라서, 변환 색인 버퍼(6)가 채워지지 않을 때, 변환 색인 버퍼 부적중(miss)은 페이지 테이블 워크의 기동과 새로운 매핑 데이터 엔트리(10)의 로딩과 함께 이 로드된 매핑 데이터 엔트리(10)에 대응하는 힌트 데이터의 발생을 일으키고, 퇴출/로드 플래그(36)는 이 힌트 데이터가 매핑 데이터 엔트리 로드에 관련된다는 것을 표시하도록 설정된다. 매핑 데이터 엔트리(10)의 로드가 발생하고 변환 색인 버퍼(6)가 이미 채워져 있으면, 변환 색인 버퍼(6) 내부에 이미 기억된 매핑 데이터 엔트리(10)가 교체용의 희생자로서 선택되고, 새롭게 로드된 매핑 데이터 엔트리(10)에 대한 힌트 데이터 이외에, 퇴출된 매핑 데이터 엔트리와 관련된 힌트 데이터가 발생되고 퇴출/로드 플래그(36)가 이 힌트 데이터가 매핑 데이터 엔트리 퇴출과 관련된다는 것을 표시하도록 설정된다.
일부 실시예에서는, 이하에서 더욱 상세히 설명하는 것과 같이, 매핑 데이터 엔트리 퇴출과 관련된 힌트 데이터가 메모리 제어기(8)로 전달되기 전에, 힌트 발생기(20) 내부의 희생자 캐시(40)가 이 힌트 데이터를 임시로 기억하는 역할을 한다. 따라서, 희생자 캐시(40)는, 힌트 데이터(38)를 사용하여 메모리 제어기(8)에 매핑 데이터 엔트리의 통지함에 있어서 지연, 또는 잠재적으로는 폐기(quash)를 도입한다.
도 4는 메모리 제어기(8)를 사용하여 DRAM 메모리 14 내부의 비트 셀들의 서로 다른 뱅크들에 대한 전력제어를 행하는 방법을 개략적으로 나타낸 흐름도이다. 도 4의 단순한 흐름도는, DRAM 메모리 14만 존재하고 물리 어드레스들의 영역들의 크기가 DRAM 메모리 14 내부의 비트 셀들의 뱅크 크기와 일치하는 예시적인 실시예를 가정한다. 스텝 42에서, 힌트 데이터가 수신될 때까지 처리를 대기한다. 그후, 스텝 44는 힌트 데이터가 매핑 데이터 엔트리 퇴출과 관련되는지 여부를 판정한다. 힌트 데이터가 매핑 데이터 엔트리 퇴출과 관련되면, 스텝 46은 변환 색인 버퍼(6)로부터 매핑 데이터 엔트리가 퇴출된 물리 어드레스들의 영역을 기억하는 DRAM 뱅크를 저전력 상태로 전환하는 역할을 한다. 스텝 44에서의 판정이 힌트 데이터가 퇴출과 관련되지 않는 것인 경우에는, 로드에 관련되는 것으로 가정되며, 따라서 스텝 48로 처리를 진행하여, 매핑 데이터 엔트리가 변환 색인 버퍼(6) 내부에 로드된 물리 어드레스들의 영역을 기억하는 DRAM 뱅크가 고전력 상태로 전환된다. DRAM 메모리 14는 복수의 뱅크들의 비트 셀들로 이루어진다. 각각의 뱅크는, 뱅크가 그것의 저전력 상태(높은 대기시간을 갖지만 기억에 대한 낮은 소비전력)에 있는지 또는 그것의 고전력 상태(낮은 대기시간을 갖지만, 기억에 대한 높은 소비전력)에 있는지를 표시하는 전력신호의 형태로 공급된 가변 동작 파라미터를 갖는다.
도 5는 메모리 제어기(8)(기억 제어회로)에 의해 행해지는 또 다른 형태의 제어를 개략적으로 나타낸 흐름도이다. 특히, 메모리 제어기(8)는, 물리 어드레스들의 특정한 영역을 기억하기 위해 어떤 메모리 종류가 사용되는지와 함께, 메모리 시스템의 서로 다른 부분들을 액세스하기 위한 액세스 회로의 전력 상태를 제어한다.
스텝 50에서는, 힌트 데이터가 수신될 때까지 처리를 대기한다. 그후, 스텝 52는 힌트 데이터가 변환 색인 버퍼(6) 내부에 로드된 매핑 데이터 엔트리를 명시하는지 여부를 판정한다. 힌트 데이터가 로드에 관련되면, 스텝 54로 처리를 진행하여, 힌트 데이터의 액세스 허가로부터, 물리 어드레스들의 영역이 판독 전용 영역인지 여부에 대해 판정이 행해진다. 매핑 데이터 엔트리가 변환 색인 버퍼(6) 내부에 새롭게 로드된 물리 어드레스들의 영역이 판독 전용 영역인 것으로 액세스 허가가 표시하는 경우에, 스텝 56은 해당 물리 어드레스들의 영역에 대한 데이터를 저속의 제 2 NVM 메모리(17)로부터 고속의 제 1 NVM 메모리(16)로 이동하는 역할을 한다. 이 데이터는, 예를 들면, 처리 연산이 행해지는데 사용된 데이터 상수이어도 된다.
스텝 54에서의 판정이 데이터의 영역이 판독 전용이 아닌 것인 경우에, 스텝 58로 처리를 진행하여, 데이터가 고속 DRAM 메모리(14)로 이동한다. 이것은, 물리 어드레스들의 이 영역이, 예를 들어, 이후의 처리 중에 판독 및 기록을 위해 빈번하게 액세스될 피연산자 값들인 데이터 값들을 기억하고 있는 것으로 가정한다.
이때, 물리 어드레스들의 특정한 영역들이 이종 메모리 시스템 내부의 어느 위치에 (메모리 제어기(8)에 의해 매핑되어) 기억될 것인지의 선택은 구현예마다 그리고 이 구현예에 대한 우선순위에 따라 변동될 수 있다는 것을 알 수 있다. 전술한 실시예는 단지 예시적으로 주어진 것이다.
스텝 52에서의 판정이 힌트 데이터가 변환 색인 버퍼(6) 내부에 로드된 매핑 데이터 엔트리에 관련되지 않은 것인 경우에는, 이것이 퇴출과 관련된 것으로 가정한다. 따라서, 스텝 64로 처리를 진행하여, 퇴출된 매핑 데이터 엔트리에 대응하는 물리 어드레스들의 영역에 대한 데이터가 그것의 현재 위치로부터 불휘발성 메모리 17로 이동한다. 스텝 66에서, 변환 색인 버퍼 내부에 현재 대응하는 매핑 데이터 엔트리들이 존재하는 제 1 NVM 메모리(16)로 메모리 제어기(8)에 의해 매핑된 물리 어드레스들의 영역들이 존재하는지 여부에 대해 판정이 행해진다. 이와 같은 영역이 존재하지 않는 경우에, 스텝 68은 제 1 불휘발성 메모리(16)에 대한 액세스 회로 22의 전력을 낮추는 역할을 한다. 액세스 회로 22는 그후 제 1 불휘발성 메모리(16) 자체의 전력을 낮추어도 된다. 변환 색인 버퍼(6) 내부에 현재 매핑 데이터 엔트리(10)가 존재하는 플래시 메모리 16으로 메모리 제어기(8)에 의해 매핑된 물리 어드레스들의 적어도 한 개의 영역이 존재하는 것으로 스텝 66에서 판정된 경우에는, 스텝 68을 우회한다.
이때, 도 5에 도시된 제어는 어떤 부품들이 메모리 시스템을 구성하는지와 이들 부품의 성능 특성에 따라 변화할 수 있다는 것을 알 수 있다.
도 6은 페이지 테이블 워크를 사용하여 힌트 발생을 기동하는 방법의 흐름도를 개략적으로 나타낸 것이다. 스텝 74는 페이지 테이블 워크가 필요한지 여부를 판정한다. 수신된 가상 어드레스에 대해 필요한 가상-물리 변환을 행하는데 적절한 매핑 데이터 엔트리가 이용가능하지 않은 것에 의한 변환 색인 버퍼(6) 내부의 부적중으로 인해 페이지 테이블 워크가 필요하다. 페이지 테이블 워크가 필요하면, 스텝 76은 페이지 테이블 워크를 개시한다. 전용 회로(미도시)를 사용하여 본 기술분야의 당업자에게 있어서 자명한 방법으로 이와 같은 페이지 테이블 워크를 행한다. 그후, 페이지 테이블 워크의 최종 스테이지가 도달할 때까지 스텝 78이 대기한다. 페이지 테이블 워크의 최종 스테이지는, 가상-물리 어드레스 변환 데이터가 완료되고 메모리 영역의 기타 속성들이 판독되는 스테이지이다. 페이지 테이블 워크의 최종 스테이지에 도달하면, 스텝 80은 영역 속성 데이터(가상-물리 어드레스 매핑, 액세스 허가, 캐시 가능성 등)를 변환 색인 버퍼(6)에 송신하여 매핑 데이터 엔트리(10)를 형성하는 역할을 한다. 그후, 스텝 82는 이 영역 속성 데이터를 힌트 발생기(20)에 송신하고, 이 데이터를 사용하여 힌트 발생기(20)에 의해 메모리 제어기(8)로 송신된 힌트 데이터(38)를 형성한다.
도 7은 힌트 발생기(20)의 일부를 구성하는 희생자 캐시(40) 내부에 기억된 에이징 희생자 목록의 발생을 개략적으로 나타낸 흐름도이다. 스텝 84는 스텝 84가 마지막으로 실행된 이후 매핑 데이터 엔트리 퇴출이 있었는지 여부를 판정한다. 이와 같은 퇴출이 존재한 경우에, 스텝 86은 매핑 데이터 엔트리를 희생자 캐시(40) 내부에 기억된 희생자 데이터에 추가하는 역할을 한다. 스텝 84에서의 판정이 스텝 84의 최종 실행 이후에 매핑 데이터 엔트리 퇴출이 존재하지 않았던 것인 경우에는, 스텝 88로 처리를 진행하여, 스텝 88의 최종 실행 이후 매핑 데이터 엔트리 로드가 존재하였는지 아닌지에 대해 판정이 행해진다. 이와 같은 매핑 데이터 엔트리 로드가 없는 경우에, 스텝 90은 이 매핑 데이터 엔트리 로드가 희생자 캐시 내부에 기억된 매핑 데이터 엔트리, 즉 변환 색인 버퍼(6)로부터 최근에 퇴출된 매핑 데이터 엔트리와 일치하는지 여부를 판정한다. 이와 같은 일치가 존재하는 경우에, 스텝 92는 희생자 캐시(40) 내부에 기억된 것으로부터 해당 매핑 데이터 엔트리를 소거하는 역할을 하고, 스텝 84로 처리를 진행한다. 따라서, 매핑 데이터 엔트리가 소정의 기간 내에 다시 액세스되는 경우, 이 매핑 데이터 엔트리가 힌트 데이터의 발생을 기동하기 전에 희생자 목록으로부터 제거된다. (다른 실시예들에서는, 이 엔트리에 대한 기억 시간이 액세스에 의해 리셋될 수도 있다) 스텝 90이 이와 같은 일치를 판정하지 않으면, 매핑 데이터 엔트리 로드가 변환 색인 버퍼(6) 내부에 기전에 기억되지 않았거나 또는 얼마 전에 이 버퍼로부터 퇴출되었던 새로운 매핑 데이터 엔트리의 로드이므로, 도 8과 관련하여 이하에서 설명하는 희생자 데이터 내부에 대응하는 엔트리가 존재하지 않는다.
도 8은 매핑 데이터 엔트리 퇴출과 관련된 힌트 데이터를 발생하는 에이징 희생자 감시를 개략적으로 나타낸 흐름도이다. 스텝 96에서는, 감시에 응답하여 희생자 캐시(40) 내부에 기억된 희생자 데이터의 다음의 갱신이 필요한 감시 시간에 도달할 때까지 처리를 대기한다. 스텝 98은 희생자 캐시(40) 내부의 각각의 희생자 데이터 엔트리들에 대해 기록된 기억 시간을 증분하는 역할을 한다. 희생자 캐시 내부의 각각의 엔트리는 희생자 캐시(40) 내부에 이 엔트리가 얼마나 오랫동안 기억되었는지를 나타내는 데이터와 연관된다. 따라서, 희생자 캐시(40) 내부의 엔트리들이 노화(age)될 때, 희생자 캐시 내부의 이들의 기억에 대해 언급된 시간이 점점 증가하게 된다.
스텝 100에서, 희생자 캐시(40) 내부의 희생자 데이터 엔트리들 중에서 어느 한 개가 이들 희생자 데이터 엔트리들이 희생자 캐시(40) 내부에 기억된 임계 시간에 도달하였는지에 대한 판정이 이루어진다. 이와 같은 엔트리가 존재하는 경우에, 스텝 102는 이들 희생자 데이터 엔트리들에 대한 퇴출 힌트 데이터를 발생하고 이들 희생자 데이터 엔트리들을 희생자 캐시(40)로부터 소거하는 역할을 한다. 전반적인 레벨에서, 매핑 데이터 엔트리가 변환 색인 버퍼(6) 내부에서 발생할 때, 이 매핑 데이터 퇴출에 대한 상세내용을 제공하는 희생자 데이터가 희생자 캐시(40) 내부에 임시로 기억되고, 이 매핑 데이터 엔트리가 다시 로드되지 않고 매핑 데이터 엔트리가 임계 기간보다 더 오랫동안 희생자 데이터 캐시 내부에 기억된 상태로 유지되면, 힌트 발생기(20)에 의해 힌트 데이터가 발생되어 메모리 제어기(18)로 송신된다. 이와 같은 거동은 변환 색인 버퍼(6)로부터 매핑 데이터 엔트리들의 퇴출에 관련된 힌트 데이터의 발생을 효과적으로 완충시켜(damp), 매핑 데이터 엔트리가 다시 로드되는 것이 비교적 신속하게 뒤따르는 퇴출로 인해 발생하는, 물리 데이터의 영역들이 기억되는 방식의 부적절한 변화를 방지한다. 퇴출 힌트 데이터의 발생이 완충되지 않고 희생자 캐시가 설치되거나 사용되지 않으며 퇴출이 발생하자마자 퇴출 힌트 데이터가 메모리 제어기로 송신되는 다른 실시예들로 가능하다.
도 9는 데이터 처리 시스템(104)의 또 다른 실시예를 나타낸 것이다. 이 데이터 처리 시스템(104)은, 적어도 가상-물리 어드레스 변환을 행하는 각각의 변환 색인 버퍼(114, 116, 118, 120)를 각각 갖는 복수의 프로세서 코어들(106, 108, 110, 112)을 구비한다. 힌트 발생기(122)는, 변환 색인 버퍼들(114, 116, 118, 120)에 접속되고, 다양한 변환 색인 버퍼들(114, 116, 118, 120) 내부의 매핑 데이터 엔트리들의 기억에 따라 기억 제어기(124)에 공급할 힌트 데이터를 발생하는 역할을 한다. 기억 제어기(124)는, 물리 어드레스들의 각각의 서로 다른 영역들에 대응하는 데이터가 기억 제어기(124)에 접속된 이종 메모리 시스템 내부에 기억되는 방식을 제어하는 역할을 한다.
본 실시예에서는, 변환 색인 버퍼들(114, 116, 118, 120) 중에서 한 개로부터 매핑 데이터 엔트리가 퇴출될 때, 해당 변환 색인 버퍼(114, 116, 118, 120)에 의해 힌트 발생기(122)로 이것이 통보된다. 그후, 힌트 발생기(122)는 퇴출 통보를 송신하지 않은 변환 색인 버퍼들(114, 116, 118, 120) 중에서 나머지 변환 색인 버퍼들에게 송신된 염탐 요구를 발생하여, 이들 나머지 변환 색인 버퍼들(114, 116, 118, 120)이 해당 매핑 데이터 엔트리의 복사본을 포함하는지 여부를 판정한다. 역으로, 나머지 변환 색인 버퍼들(114, 116, 118, 120) 중에서 어느 것도 퇴출의 통지가 수신된 매핑 데이터 엔트리의 복사본을 포함하지 않는 것으로 염탐 응답이 표시하는 경우에는, 이 퇴출에 대응하는 힌트 데이터의 발생을 계속 행하는 것이 허용되고 힌트 데이터가 메모리 제어기(124)로 공급된다. 그후, 에를 들어, 전술한 것과 같이, 메모리 제어기(124)는 물리 어드레스들의 각각의 서로 다른 영역들에 대응하는 데이터가 이 힌트 데이터에 따라 메모리 시스템 내부에 기억되는 방식을 제어할 수 있다.
도 10은은 데이터 처리 시스템(126)의 또 다른 실시예를 개략적으로 나타낸 것이다. 본 실시예에서는, 복수의 프로세서(128, 130, 132, 134) 각각이 적어도 가상-물리 어드레스 변환을 행하는 그들 자신의 변환 색인 버퍼(136, 138, 140, 142)를 구비한다. 힌트 발생기(144)는 각각의 변환 색인 버퍼들(136, 138, 140, 142)로부터 매핑 데이터 엔트리 퇴출 및 로드의 통지를 수신하는 역할을 한다. 힌트 발생기(144)는, 변환 색인 버퍼들(136, 138, 140, 142) 중에서 어느 한 개에 기억된 모든 매핑 데이터 엔트리들을 추적하는 관련된 공유 메모리(146)를 갖는다. 공유 메모리(146) 내부에서, 각각의 매핑 데이터 엔트리가 식별되고, 이 매핑 데이터 엔트리의 복사본이 이 각각의 변환 색인 버퍼(136, 138, 140, 142) 내부에 기억되어 있는지 아닌지를 표시하기 위해 각각의 변환 색인 버퍼들(136, 138, 140, 142)에 대해 각각의 매핑 데이터 엔트리와 관련된 플래그 비트가 설정된다.
힌트 발생기(144)가 매핑 데이터 엔트리의 퇴출을 통보받으면, 힌트 발생기(144)는, 공유 메모리(146) 내부의 대응하는 엔트리로부터, 이 퇴출 후에 나머지 변환 색인 버퍼들(136, 138, 140, 142) 중에서 어느 한 개가 이 매핑 데이터 엔트리의 복사본을 기억하고 있는지 여부를 판정하고, 기억하고 있지 않은 경우에는, 이 외출에 대응하는 힌트 데이터가 발생된다. 이 매핑 데이터 엔트리의 나머지 복사본들이 공유 메모리(146) 내부에 기억된 데이터에 의해 표시된 것과 같이 나머지 변환 색인 버퍼들(136, 138, 140, 142) 내부에 기억되어 있는 경우에는, 이 퇴출에 대응하는 힌트 데이터의 발생이 금지된다. 힌트 발생기(144)는 공유 메모리(146) 내부의 플래그들/엔트리들을 설정함으로써 매핑 데이터 엔트리 로드도 추적한다.
이때, 상기한 내용으로부터, 매핑회로 내부의 매핑 데이터 엔트리들의 기억을 표시하는 힌트 데이터를 이용하여, 물리 어드레스들의 각각의 서로 다른 영역들에 대응하는 데이터가 메모리 시스템 내부에 기억되는 방식의 제어가 달성되는 다양한 다른 방법이 존재한다는 것을 알 수 있다. 기억 제어회로는, 예를 들어, 주어진 시간에 이종 메모리 시스템의 어떤 부분들에 전력이 공급되거나 전력이 공급되지 않는지, 및/또는 사용된 이종 메모리 시스템의 일부의 성능 특성이 매핑회로 내부의 대응하는 매핑 데이터 엔트리들의 기억으로부터 결정될 수 있는 이 영역의 이용의 특징과 일치하도록 물리 어드레스들의 서로 다른 영역들이 이 이종 메모리 시스템 내부의 어느 곳에 매핑되는지를 제어하는 역할을 한다.
힌트 데이터는 다양한 다른 형태를 취해도 된다. 힌트 데이터는, 모든 로드 및 퇴출을 추적하거나, 일정한 시점에 매핑회로 내부의 매핑 데이터 엔트리들의 모든 콘텐츠를 표시하는 데이터를 주기적으로 공급함으로써, 매핑 데이터 엔트리가 언제 매핑회로에서 제거되었는지, 매핑 데이터 엔트리가 언제 매핑회로 내부에 기억되었는지를 표시하거나, 매핑회로 내부에 어떤 매핑 데이터 엔트리들이 기억되어 있는지를 표시해도 된다.
전술한 실시예에서는, 매핑회로가 변환 색인 버퍼의 형태를 취하였다, 다른 형태의 매핑회로가 사용될 수도 있다.
전술한 실시예에서는, 매핑 데이터 엔트리들이 페이지 테이블 워크를 이용하여 액세스된 페이지 테이블 데이터로부터 판독되었다. 환경설정 레지스터 내부에 기억된 데이터 등과 같이, 매핑 데이터가 다른 방법으로 도출되는 다른 실시예도 가능하다.
물리 어드레스들의 각각의 서로 다른 영역들에 대응하는 데이터가 기억되는 방법의 제어가 행해지는 방식과 관련된 전술한 다양한 기술은 단지 일례이며, 본 발명의 특정한 구현에 대해 적절히 서로 다른 조합으로 본 발명의 발명내용에 따라 이들 및 다른 기술이 이용되어도 된다.
첨부도면을 참조하여 본 발명의 예시적인 실시예들을 상세히 설명하였지만, 본 발명은 이들 실시예에 한정되지 않으며, 첨부된 청구범위의 보호범위 및 사상을 벗어나지 않으면서 본 발명이 속한 기술분야의 당업자에 의해 다양한 변경, 부가 및 변화가 행해질 수 있다는 것은 자명하다. 예를 들면, 종속항들의 특징들의 다양한 조합이 독립항들의 특징과 행해질 수도 있다.

Claims (20)

  1. 가상 어드레스 공간 내부의 가상 어드레스들의 영역과 물리 어드레스 공간 내부의 물리 어드레스들의 영역 사이의 매핑을 각각 표시하는 한 개 이상의 매핑 데이터 엔트리들을 기억하고, 상기 가상 어드레스들의 영역 내부의 가상 어드레스로부터 상기 물리 어드레스들의 영역 내부의 물리 어드레스로 매핑을 행하는 매핑회로와,
    상기 매핑회로에 접속되고 상기 매핑회로 내의 매핑 데이터 엔트리들의 기억에 따라 힌트 데이터를 발생하는 힌트 발생회로와,
    상기 힌트 데이터에 따라, 물리 어드레스들의 각각의 서로 다른 영역들에 대응하는 데이터가 메모리 시스템 내부에 기억되는 방식을 제어하는 기억 제어회로를 구비한 데이터 처리장치.
  2. 제 1항에 있어서,
    상기 힌트 데이터는 매핑 데이터 엔트리가 언제 상기 매핑회로에서 제거되었는지를 표시하는 데이터 처리장치.
  3. 제 1항에 있어서,
    상기 힌트 데이터는 매핑 데이터 엔트리가 언제 상기 매핑회로 내부에 기억되었는지를 표시하는 데이터 처리장치.
  4. 제 1항에 있어서,
    상기 힌트 데이터는 어떤 매핑 데이터 엔트리들이 상기 매핑회로 내부에 기억되는지 표시하는 데이터 처리장치.
  5. 제 1항에 있어서,
    상기 힌트 데이터는,
    물리 어드레스들의 적어도 한 개의 영역,
    가상 어드레스들의 적어도 한 개의 영역,
    액세스 허가 데이터,
    캐시 가능성 명시 데이터, 및
    상기 매핑회로에 기억되는 동안 매핑 데이터 엔트리를 사용하여 가상 어드레스로부터 물리 어드레스로 매핑한 횟수를 표시하는 계수값 중에서
    한 개 이상을 명시하는 데이터 처리장치.
  6. 제 1항에 있어서,
    데이터가 기억되는 방식의 상기 제어는, 상기 메모리 시스템 내부의 적어도 한 개의 영역의 가변 동작 파라미터의 값을 명시하는 데이터 처리장치.
  7. 제 6항에 있어서,
    상기 가변 파라미터는 상기 적어도 한 개의 영역의 전력 상태인 데이터 처리장치.
  8. 제 7항에 있어서,
    매핑 데이터 엔트리가 상기 매핑회로에서 제거되었다고 상기 힌트 데이터가 표시할 때, 상기 기억 제어회로는 상기 매핑 데이터 엔트리에 의해 매핑된 데이터를 기억하는 상기 메모리 시스템의 영역을 제 1 전력 상태로 전환하고,
    상기 매핑 데이터 엔트리가 상기 매핑회로 내부에 기억되었다고 상기 힌트 데이터가 표시할 때, 상기 기억 제어회로는 상기 매핑 데이터 엔트리에 의해 매핑된 데이터를 기억하는 상기 메모리 시스템의 상기 영역을 제 2 전력 상태로 전환하고,
    상기 제 2 전력 상태가 상기 제 1 전력 상태보다 높은 소비전력을 갖는 데이터 처리장치.
  9. 제 1항에 있어서,
    데이터가 기억되는 방식의 상기 제어는, 상기 메모리 시스템 내부에 있으며 서로 성능 특성들을 갖는 복수의 서로 다른 영역들 중에서 어느 것을 사용하여 물리 어드레스들의 소정의 영역에 대응하는 데이터를 기억하는지 명시하는 데이터 처리장치.
  10. 제 9항에 있어서,
    상기 서로 다른 성능 특성들은,
    데이터를 기억하기 위한 소비전력
    데이터를 기억하기 위한 에너지 소비,
    데이터를 액세스하기 위한 소비전력
    데이터를 액세스하기 위한 에너지 소비,
    액세스 대기시간,
    변동성, 및
    마모율 중에서
    한 개 이상을 포함하는 데이터 처리장치.
  11. 제 1항에 있어서,
    상기 메모리 시스템은 상기 메모리 시스템의 각각의 서로 다른 부분들 내부에 기억된 데이터를 액세스하는 복수의 액세스 회로들을 구비하고, 데이터가 기억되는 방식의 상기 제어는, 상기 복수의 액세스 회로들 중에서 어느 것이 제 1 전력 상태에 있고 상기 복수의 액세스 회로들 중에서 어느 것이 제 2 전력 상태에 있는지를 제어하고, 상기 제 1 전력 상태는 상기 제 2 전력 상태보다 높은 소비전력을 갖는 데이터 처리장치.
  12. 제 1항에 있어서,
    상기 매핑회로는 변환 색인 버퍼를 구비한 데이터 처리장치.
  13. 제 12항에 있어서,
    상기 매핑 데이터 엔트리는 페이지 테이블 워크를 사용하여 액세스된 페이지 테이블 데이터에 의해 명시되는 데이터 처리장치.
  14. 제 13항에 있어서,
    상기 매핑회로에 매핑 데이터 엔트리를 기억하는 것의 일부로서 상기 페이지 테이블 워크 내부의 소정의 스테이지에 도달시에, 상기 힌트 발생회로가 상기 매핑 데이터 엔트리에 대응하는 힌트 데이터를 발생하는 데이터 처리장치.
  15. 제 1항에 있어서,
    상기 힌트 발생회로는 상기 매핑회로에서 퇴출된 매핑 데이터 엔트리들을 명시하는 희생자 데이터를 기억하는 희생자 캐시를 구비한 데이터 처리장치.
  16. 제 15항에 있어서,
    상기 힌트 발생회로는 상기 매핑회로에서 퇴출된 소정의 매핑 데이터 엔트리를 표시하고, 상기 소정의 매핑 데이터 엔트리에 의해 매핑된 메모리 액세스가 임계 시간보다 오랫동안 발생하지 않은 경우, 상기 소정의 매핑 데이터 엔트리에 대응하는 힌트 데이터가 발생되는 데이터 처리장치.
  17. 제 1항에 있어서,
    프로그램 명령의 각각의 스트림들을 실행하고 한 개 이상의 매핑 데이터 엔트리들을 기억하는 매핑회로의 인스턴스(instance)를 각각 갖는 복수의 프로세서들을 구비하고, 상기 매핑회로의 인스턴스로부터 매핑 데이터 엔트리의 제거시에, 한 개 이상의 염탐 요구가 상기 매핑회로의 나머지 인스턴스들에 송신되어, 매핑회로의 상기 인스턴스들의 어느 것도 상기 매핑 데이터 엔트리를 기억하고 있지 않은지 여부를 판정하고, 매핑회로의 상기 인스턴스들의 어느 것도 상기 매핑 데이터 엔트리를 기억하고 있지 않은 경우에 힌트 데이터를 발생하는 데이터 처리장치.
  18. 제 1항에 있어서,
    프로그램 명령의 각각의 스트림들을 실행하고 한 개 이상의 매핑 데이터 엔트리들을 기억하는 매핑회로의 인스턴스를 각각 갖는 복수의 프로세서들과, 매핑회로의 상기 인스턴스들 중에서 어느 것이 어느 매핑 데이터 엔트리들을 기억하고 있는지를 표시하는 데이터를 기억하는 공유 메모리를 구비하고, 상기 매핑회로의 인스턴스로부터 매핑 데이터 엔트리의 제거시에, 매핑회로의 상기 인스턴스들 중에서 어느 것도 상기 매핑 데이터 엔트리를 기억하고 있지 않는 것으로 상기 공유 메모리가 표시하는 경우, 힌트 데이터를 발생하는 데이터 처리장치.
  19. 가상 어드레스 공간 내부의 가상 어드레스들의 영역과 물리 어드레스 공간 내부의 물리 어드레스들의 영역 사이의 매핑을 각각 표시하는 한 개 이상의 매핑 데이터 엔트리들을 기억하고, 상기 가상 어드레스들의 영역 내부의 가상 어드레스로부터 상기 물리 어드레스들의 영역 내부의 물리 어드레스로 매핑을 행하는 매핑수단과,
    상기 매핑수단에 접속되고 상기 매핑수단 내의 매핑 데이터 엔트리들의 기억에 따라 힌트 데이터를 발생하는 힌트 발생수단과,
    상기 힌트 데이터에 따라, 물리 어드레스들의 각각의 서로 다른 영역들에 대응하는 데이터가 메모리 시스템 내부에 기억되는 방식을 제어하는 기억 제어수단을 구비한 데이터 처리장치.
  20. 가상 어드레스 공간 내부의 가상 어드레스들의 영역과 물리 어드레스 공간 내부의 물리 어드레스들의 영역 사이의 매핑을 각각 표시하는 한 개 이상의 매핑 데이터 엔트리들을 기억하는 단계와,
    상기 한 개 이상의 매핑 데이터 엔트리들 중에서 적어도 한 개를 사용하여, 상기 가상 어드레스들의 영역 내부의 가상 어드레스로부터 상기 물리 어드레스들의 영역 내부의 물리 어드레스로 매핑을 행하는 단계와,
    매핑 데이터 엔트리들의 기억에 따라 힌트 데이터를 발생하는 단계와,
    상기 힌트 데이터에 따라, 물리 어드레스들의 각각의 서로 다른 영역들에 대응하는 데이터가 메모리 시스템 내부에 기억되는 방식을 제어하는 단계를 포함하는 데이터 처리방법.
KR1020160043950A 2015-04-22 2016-04-11 메모리 관리 KR102568051B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/692,959 US10162762B2 (en) 2015-04-22 2015-04-22 Managing memory based on hint data generated from mapping data entries
US14/692,959 2015-04-22

Publications (2)

Publication Number Publication Date
KR20160125887A true KR20160125887A (ko) 2016-11-01
KR102568051B1 KR102568051B1 (ko) 2023-08-18

Family

ID=55752861

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160043950A KR102568051B1 (ko) 2015-04-22 2016-04-11 메모리 관리

Country Status (4)

Country Link
US (1) US10162762B2 (ko)
KR (1) KR102568051B1 (ko)
CN (1) CN106066831B (ko)
GB (1) GB2537960B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210090682A (ko) * 2018-12-14 2021-07-20 후아웨이 테크놀러지 컴퍼니 리미티드 저장 장치 및 전자 장치

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10061376B2 (en) * 2015-06-26 2018-08-28 Intel Corporation Opportunistic power management for managing intermittent power available to data processing device having semi-non-volatile memory or non-volatile memory
CN106933751B (zh) * 2015-12-29 2019-12-24 澜起科技股份有限公司 用于保护动态随机访问存储器的方法和设备
US11221957B2 (en) 2018-08-31 2022-01-11 International Business Machines Corporation Promotion of ERAT cache entries
CN110047537B (zh) * 2019-04-09 2020-07-03 无锡科技职业学院 一种半导体存储装置及计算机系统
US11868638B2 (en) * 2020-08-31 2024-01-09 Micron Technology, Inc. Inter-memory movement in a multi-memory system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6886085B1 (en) * 2000-04-19 2005-04-26 International Business Machines Corporation Method and apparatus for efficient virtual memory management
US20140025923A1 (en) * 2012-07-18 2014-01-23 Micron Technology, Inc. Memory management for a hierarchical memory system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093100B2 (en) * 2003-11-14 2006-08-15 International Business Machines Corporation Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes
US7581064B1 (en) 2006-04-24 2009-08-25 Vmware, Inc. Utilizing cache information to manage memory access and cache utilization
US20090049272A1 (en) * 2007-08-13 2009-02-19 International Business Machines Corporation Method for improving the performance of software-managed tlb
CN201540564U (zh) * 2009-12-21 2010-08-04 东南大学 利用虚存机制对片上异构存储资源动态分配的电路
US9417794B2 (en) * 2011-07-26 2016-08-16 Apple Inc. Including performance-related hints in requests to composite memory
WO2013112124A1 (en) * 2012-01-23 2013-08-01 Empire Technology Development Llc Managing addressable memory in heterogeneous multicore processors
US10303618B2 (en) 2012-09-25 2019-05-28 International Business Machines Corporation Power savings via dynamic page type selection
US10078597B2 (en) * 2015-04-03 2018-09-18 Via Alliance Semiconductor Co., Ltd. System and method of distinguishing system management mode entries in a translation address cache of a processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6886085B1 (en) * 2000-04-19 2005-04-26 International Business Machines Corporation Method and apparatus for efficient virtual memory management
US20140025923A1 (en) * 2012-07-18 2014-01-23 Micron Technology, Inc. Memory management for a hierarchical memory system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210090682A (ko) * 2018-12-14 2021-07-20 후아웨이 테크놀러지 컴퍼니 리미티드 저장 장치 및 전자 장치

Also Published As

Publication number Publication date
CN106066831A (zh) 2016-11-02
CN106066831B (zh) 2021-07-23
US10162762B2 (en) 2018-12-25
GB2537960B (en) 2018-01-17
KR102568051B1 (ko) 2023-08-18
US20160314078A1 (en) 2016-10-27
GB201602865D0 (en) 2016-04-06
GB2537960A (en) 2016-11-02

Similar Documents

Publication Publication Date Title
KR102568051B1 (ko) 메모리 관리
US11341059B2 (en) Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations
US20120017039A1 (en) Caching using virtual memory
US20150234745A1 (en) Data cache prefetch controller
US8909870B2 (en) Cache evictions from data cache based on content of address translation table cache and address translation table
KR20170100003A (ko) 가상 주소들을 사용하여 액세스된 캐시
KR20200035061A (ko) 어드레스 변환 캐시
US10031854B2 (en) Memory system
JPH08272693A (ja) 仮想アドレスについてのキャッシュ可能性属性ビットを備えた変換テーブル・エントリ及びそのビットを用いた仮想アドレスの参照方法並びにその仮想アドレスの参照装置
JP6478843B2 (ja) 半導体装置及びキャッシュメモリ制御方法
JP6088951B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
US8856453B2 (en) Persistent prefetch data stream settings
US10489306B2 (en) Apparatus and method for processing data, including cache entry replacement performed based upon content data read from candidates selected using victim selection
US10606517B2 (en) Management device and information processing device
US10635614B2 (en) Cooperative overlay
WO2011151944A1 (ja) キャッシュメモリ装置、プログラム変換装置、キャッシュメモリ制御方法及びプログラム変換方法
JP6800904B2 (ja) モデル生成装置、情報処理装置、モデル生成方法およびプログラム
JP2020046761A (ja) 管理装置、情報処理装置およびメモリ制御方法
JP2019164630A (ja) 推定装置、推定方法およびプログラム
US20200143275A1 (en) Information processing device, information processing method, and computer program product
US8065485B2 (en) Method and apparatus for determining cache storage locations based on latency requirements
US20140156941A1 (en) Tracking Non-Native Content in Caches
JP2015179320A (ja) キャッシュメモリおよびプロセッサシステム
KR102027573B1 (ko) 캐시 메모리 제어 방법 및 그 장치
JP2010108381A (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