KR20170120109A - 선택적인 트랜슬레이션 룩어사이드 버퍼 탐색 및 페이지 오류 - Google Patents

선택적인 트랜슬레이션 룩어사이드 버퍼 탐색 및 페이지 오류 Download PDF

Info

Publication number
KR20170120109A
KR20170120109A KR1020177022982A KR20177022982A KR20170120109A KR 20170120109 A KR20170120109 A KR 20170120109A KR 1020177022982 A KR1020177022982 A KR 1020177022982A KR 20177022982 A KR20177022982 A KR 20177022982A KR 20170120109 A KR20170120109 A KR 20170120109A
Authority
KR
South Korea
Prior art keywords
power mode
local memory
virtual address
memory
translation
Prior art date
Application number
KR1020177022982A
Other languages
English (en)
Other versions
KR101868389B1 (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 KR20170120109A publication Critical patent/KR20170120109A/ko
Application granted granted Critical
Publication of KR101868389B1 publication Critical patent/KR101868389B1/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/0877Cache access modes
    • 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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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
    • 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/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • 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]
    • G06F2212/684TLB miss handling
    • Y02B60/1225
    • 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)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

TLB(Translation lookaside buffer)는 트랜슬레이션 엔트리들을 저장한다. 트랜슬레이션 엔트리들은 가상 어드레스, 물리적 어드레스 및 메모리 로컬/넌로컬 플래그를 포함한다. 프로세서가 저 전력/로컬 메모리 모드에 있는 경우, 가상 어드레스가 수신된다. 매칭 트랜슬레이션 엔트리는 로컬/넌로컬 플래그를 갖는다. 로컬/넌로컬 플래그가, 매칭 트랜슬레이션 엔트리의 물리적 어드레스가 로컬 메모리 외부에 있다는 것을 나타낼 때, 액세스 범위 외 메모리 액세스 제외가 생성된다.

Description

선택적인 트랜슬레이션 룩어사이드 버퍼 탐색 및 페이지 오류
[0001] 본 출원은 일반적으로 TLB(translation lookaside buffer) 구조 및 관리에 관한 것이다.
[0002] 휴대용 컴퓨팅 디바이스들, 이를 테면, 무선 전화기들 및 PDA(personal digital assistant)들은 데이터 저장 용량 및 프로세싱 속도의 증가를 지속적으로 요구한다. 예를 들어, 무선 전화기는 디지털 카메라, 멀티-미디어 파일 플레이어, 및 휴대용 게임 플레이어로서 동시에 기능할 수 있다. 기능 및 성능 요건들의 증가와 동시에, 예를 들어, 소형 휴대용 디바이스들 및/또는 다른 하드웨어에 의해 점유되는 볼륨으로 인해, 이용가능한 배터리 볼륨이 감소하고 있다.
[0003] 전력을 감소시키기 위한 하나의 공지된 기술은, 예를 들어 명백한 명령들에 대한 응답으로 로컬 메모리/저 전력 모드로 전환하도록 컴퓨팅 디바이스를 구성하는 것이다. 로컬 메모리/저 전력 모드에서, 프로세싱 코어는 저 전력 로컬 리소스들의 세트, 예를 들어, 프로세싱 코어와 밀접하게 결합될 수 있는 로컬 메모리, 및 선택된 다른 저 전력 및/또는 필수 디바이스 리소스들에만 액세스가 허용되고, 넌로컬 리소스들에는 액세스할 수 없게 될 수 있다.
[0004] 로컬 메모리/저 전력 모드에서, 넌로컬 리소스들의 일부 또는 전부가 파워 다운될 수 있거나 그렇지 않으면 비-동작 상태로 배치되어 절전을 제공할 수 있다. 그러나, 넌로컬 리소스들이 프로세서 코어에 액세스가능하기 전에 파워 온 시퀀스가 실행되어야 한다. 이외에도, 로컬 리소스들이 저 전력 모드로 작동하는 동안 넌로컬 리소스들에 액세스하려는 시도들은, 그러한 넌로컬 리소스들이 작동하고 있지 않을 수 있기 때문에 억제되어야 한다. 이러한 액세스를 방지하기 위한 종래의 공지된 기술들은 비용이 많이 들고 기타 단점들을 가질 수 있다.
[0005] 예를 들어, 로컬 메모리/저 전력 모드로 동작 중일 경우 넌로컬 리소스들에 대한 액세스 시도를 방지하기 위한 하나의 알려진 기술은, 그 모드로 전환할 때, 넌로컬 리소스들을 포인팅하는 컴퓨팅 디바이스의 TLB(translation lookaside buffer)의 모든 엔트리들을 무효화하는 것이다. 결과적으로, 로컬 메모리/저 전력 모드에 있는 동안 넌로컬 리소스들에 액세스하려는 임의의 시도는, TLB에 유효한 맵핑 엔트리가 없기 때문에 "페이지 오류 제외"를 발생시킬 것이다. 그러나, 넌로컬 리소스들을 포인팅하는 모든 TLB 엔트리들을 무효화하는 것은 상당한 프로세싱 전력 및 시간을 요구할 수 있다. 또한, 정상 전력(normal power) 동작으로 어웨이크할 때, TLB가 유효한 외부 메모리 트랜슬레이션 엔트리들로 다시채워질(repopulated) 때까지 상당한 수의 TLB 미스(miss)들 및 결과 페이지 워크 탐색(resulting page walk searche)들이 요구될 수 있다. 반복되는 페이지 워크 탐색들은 실질적인 전력 및 시간 비용들을 반송할 수 있다.
[0006] 본 발명의 내용이 몇몇 예시적인 양상들을 식별하며, 개시된 청구물의 총망라하는 설명은 아니다. 특징이 발명의 내용에 포함되거나 발명의 내용으로부터 생략되었는지 여부는 상대적인 중요성의 인디케이터인 것으로 의도되지 않는다. 추가 특징들 및 양상들이 설명되며, 다음의 상세한 설명을 읽고 그의 일 부분을 형성하는 도면들을 볼 때 당업자에게 명백하게 될 것이다.
[0007] 다양한 양상들은, 다른 특징들 중에서도, 로컬 메모리로의 액세스를 한정할 수 있는 로컬 메모리/저 전력 모드와, 예를 들어, 원격 메모리 또는 다른 리소스들에 대한 완전한 액세스를 인에이블하는 정상 전력 모드 사이에서 신속한, 로우 프로세싱 오버헤드 전환을 위한 수단 및 방법들을 제공할 수 있다. 추가 양상들은, 예를 들어, 트랜슬레이션 룩어사이드 버퍼 엔트리들의 무효화를 요구하지 않고 로컬 메모리/저 전력 모드로 전환하는 것, 및 TLB 미스/페이지 워크가 트랜슬레이션 룩어사이드 버퍼를 다시 채울 것(refilling)을 요구하지 않고 정상 전력 모드로 다시 전환하고, 대응하는 완전한 액세스를 제공하는 것을 제공할 수 있다.
[0008] 하나 또는 그 초과의 개시된 방법 양상들에 따른 예들은 메모리의 액세스를 제공할 수 있고, 예시적인 동작들은 트랜슬레이션 룩어사이드 버퍼에 복수의 트랜슬레이션 엔트리들을 저장하는 것을 포함할 수 있으며, 복수의 트랜슬레이션 엔트리들 각각은, 가상 어드레스, 물리적 어드레스 및 로컬 메모리 플래그를 포함할 수 있고, 일 양상에서, 로컬 메모리 플래그는 물리적 어드레스가 로컬 메모리 외부에 있는지 여부를 나타낼 수 있다. 예시적인 동작들은, 프로세서가 저 전력 모드에 있는 경우, 생성된 가상 어드레스를 수신하는 것, 및 생성된 가상 어드레스와 일치하는 가상 어드레스를 갖는 매칭 트랜슬레이션 엔트리의 식별 시, 매칭 트랜슬레이션 엔트리의 로컬 메모리 플래그가, 매칭 트랜슬레이션 엔트리의 물리적 어드레스가 로컬 메모리 외부에 있다는 것을 나타내는 경우, 액세스 범위 외 메모리 액세스 제외(out-of-access-range memory access exception)를 생성하는 것을 더 포함할 수 있으며, 예시적인 동작들은 액세스 범위 외 메모리 액세스 제외를 생성하는 것을 포함할 수 있다.
[0009] 하나 또는 그 초과의 개시된 장치 양상들에 따른 예들은 액세스 메모리를 제공할 수 있으며, 복수의 트랜슬레이션 엔트리들을 저장하도록 구성될 수 있는 TLB(translation lookaside buffer)를 포함할 수 있으며, 복수의 트랜슬레이션 엔트리들 각각은, 가상 어드레스, 물리적 어드레스 및 로컬 메모리 플래그를 포함할 수 있고, 일 양상에서, 로컬 메모리 플래그는 물리적 어드레스가 로컬 메모리 외부에 있는지 여부를 나타낼 수 있다. 하나 또는 그 초과의 양상들에 따른 예시적인 장치들은, 생성된 가상 어드레스를 수신하고, 생성된 가상 어드레스와 일치하는 가상 어드레스를 갖는 매칭 트랜슬레이션 엔트리를 식별하도록 추가로 구성될 수 있다. 하나 또는 그 초과의 양상들에 따른 예시적인 장치들은, 매칭 트랜슬레이션 엔트리의 로컬 플래그가, 매칭 트랜슬레이션 엔트리의 물리적 어드레스가 로컬 메모리 외부에 있다는 것을 나타내는 것에 대한 응답으로, 액세스 범위 외 메모리 액세스 제외를 생성하도록 구성될 수 있는 액세스 외 범위 제외 회로를 더 포함할 수 있다.
[0010] 하나 또는 그 초과의 다른 개시된 장치 양상들에 따른 예들은 메모리의 액세스를 제공하고, 복수의 트랜슬레이션 엔트리들을 저장하기 위한 수단을 포함할 수 있으며, 복수의 트랜슬레이션 엔트리들 각각은 가상 어드레스, 물리적 어드레스 및 로컬 메모리 플래그를 포함할 수 있다. 일 양상에서, 로컬 메모리 플래그는 물리적 어드레스가 로컬 메모리 외부에 있는지 여부를 나타낼 수 있다. 다른 장치 양상들에 따른 예들은, 프로세서가 저 전력 모드에 있는 경우, 생성된 가상 어드레스를 수신하기 위한 수단, 및 생성된 가상 어드레스와 일치하는 가상 어드레스를 갖는 매칭 트랜슬레이션 엔트리를 식별하기 위한 수단을 포함할 수 있으며, 매칭 트랜슬레이션 엔트리의 로컬 메모리 플래그가, 매칭 트랜슬레이션 엔트리의 물리적 어드레스가 로컬 메모리 외부에 있다는 것을 나타내는 경우, 액세스 범위 외 메모리 액세스 제외를 생성하기 위한 수단을 포함할 수 있다.
[0011] 비일시적 컴퓨터 판독가능 매체의 하나 또는 그 초과의 개시된 양상들에 따른 예들은, 코드를 포함할 수 있으며, 코드는, 프로세서에 의해 실행될 경우, 프로세서로 하여금, 복수의 트랜슬레이션 엔트리들을 TLB(translation lookaside buffer)에 저장하게 할 수 있으며, 복수의 트랜슬레이션 엔트리들 각각은 가상 어드레스, 물리적 어드레스 및 로컬 메모리 플래그를 포함할 수 있다. 일 양상에 따른 예들에서, 로컬 메모리 플래그는 물리적 어드레스가 로컬 메모리 외부에 있는지 여부를 나타낼 수 있다. 일 양상에 따른 예들에서, 코드는, 프로세서에 의해 실행될 경우, 프로세서가 저 전력 모드에 있는 경우, 프로세서로 하여금, 생성된 가상 어드레스를 수신하게 하고, 그리고 생성된 가상 어드레스와 일치하는 가상 어드레스를 갖는 매칭 트랜슬레이션 엔트리의 식별 시, 매칭 트랜슬레이션 엔트리의 로컬 메모리 플래그가, 매칭 트랜슬레이션 엔트리의 물리적 어드레스가 로컬 메모리 외부에 있다는 것을 나타내는 경우, 액세스 범위 외 메모리 액세스 제외를 생성하게 할 수 있다.
[0012] 첨부된 도면들은 양상들의 설명을 돕기 위해 제공되며, 양상들에 따라서 그리고 양상들을 나타내는 예시적인 예들을 위해 제공될 뿐이며, 이를 제한하지 않는다.
[0013] 도 1은 하나 또는 그 초과의 양상들에 따른 일 예시적인 전환가능한 전력/메모리 액세스 모드 프로세서의 로지컬 블록 개략도이다.
[0014] 도 2는 하나 또는 그 초과의 양상들에 따른 시스템들 및 방법들에서, 일 로컬 저 전력 모드 메모리 액세스 프로세스의 예시적인 동작들의 로지컬 흐름도를 도시한다.
[0015] 도 3은 하나 또는 그 초과의 양상들에 따른 시스템들 및 방법들에서, 일 정상 전력 모드 메모리 액세스 프로세스의 예시적인 동작들의 로지컬 흐름도를 도시한다.
[0016] 도 4는 하나 또는 그 초과의 양상들에 따른 일 예시적인 개인 통신 및 컴퓨팅 디바이스의 기능적 개략도를 도시한다.
[0017] 양상들이, 다음 설명 및 관련 도면들에 개시된다. 이 개시내용을 읽으면 개시된 양상들의 범위로부터 벗어나지 않은 다양한 대안들이 명백해질 수 있다. 또한, 특정 예시적인 애플리케이션들, 구현들 및 그와 관련된 동작들의 설명에서, 예들이 설명된 컨텍스트로부터 명시적으로 또는 묵시적으로 식별되며, 공지된 종래의 기술들이 특정 컴포넌트들 및 동작들에 대해 활용될 수 있다. 그러한 예시들에서, 활용되는 종래의 기술들의 상세한 설명은, 본 발명의 관련 상세들을 모호하게 하지 않도록 생략될 수 있다.
[0018] 단어 "예시적인"은 본원에서 "예, 예시, 또는 실례로서의 역할을 하는"것을 의미하기 위해 이용된다. "예시적인"으로서 본원에 설명된 임의의 양상 또는 그의 예시적인 구성은 반드시 다른 양상들 또는 구성들에 비해 바람직하거나 유리한 것으로 해석되는 것은 아니다. 마찬가지로, 용어 "본 발명의 양상들"과 관련하여 동작의 모드, 이점, 또는 특징의 설명은, 본 발명의 모든 양상들이 그 설명되는 동작의 모드, 이점, 또는 특징을 포함한다는 것을 암시하지 않는다.
[0019] 본원에 사용되는 용어는 특정 양상들만을 설명하기 위한 것이며 본 발명을 제한하려고 의도되지 않는다. 본원에 사용되는 바와 같이, 단수 표현들은 문맥상 명백하게 다르게 나타내어지지 않는 한, 마찬가지로 복수형들도 포함하는 것으로 의도된다. 이외에도, 용어들 "포함하다(comprises)", "포함하는(comprising)", "구비하다(includes)" 및/또는 "구비하는(including)"은 본 명세서에 이용될 때, 서술된 특징들, 정수들, 단계들, 동작들, 엘리먼트들 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들 및/또는 그들의 그룹들의 존재 또는 추가를 배제하지는 않는다.
[0020] 또한, 특정 양상들이 예시적인 동작들에 관하여 설명된다. 다르게 설명된 것을 제외하고, 이러한 동작들은 특정 회로들(예컨대, ASIC(application specific integrated circuit))에 의해, 하나 또는 그 초과의 프로세서들에 의해 실행되는 프로그램 명령들에 의해, 또는 둘 모두의 조합에 의해 수행될 수 있다는 것을 이해할 것이다. 이외에도, 특정 회로들(예를 들어, ASIC들), 프로세서들 및 이들 중 하나 또는 그 초과의 것에 의해 실행되는 프로그램 명령들은 설명된 동작들 및 액션(들)을 수행"하도록 구성된 로직"으로서 설명될 수 있다. 추가로, 본원에 설명된 액션들의 시퀀스들은, 실행 시 연관된 프로세서로 하여금 본원에 설명된 기능을 수행하게 하는 컴퓨터 명령들의 대응하는 세트가 내부에 저장되는 임의의 형태의 컴퓨터 판독가능 저장 매체 내에서 전적으로 구현되는 것으로 간주될 수 있다. 따라서, 다양한 양상들이 다수의 상이한 형태들로 구현될 수 있고, 이러한 형태들 모두는 청구되는 청구물의 범위 내에 있는 것으로 간주된다.
[0021] 도 1은 하나 또는 그 초과의 양상들에 따른 일 예시적인 전환가능한 전력/메모리 액세스 모드 프로세서(100)의 로지컬 블록 개략도를 도시한다.
[0022] 일 양상에서, 전환가능한 전력/메모리 액세스 모드 프로세서(100)는, 예를 들어, ARMTM 또는 다른 유사한 아키텍처 마이크로프로세서 코어, 또는 컴퓨터 실행가능 명령들을 실행할 수 있는 임의의 다른 아키텍처 프로그램가능한 상태 머신(도 1에 미도시)일 수 있는 명령 실행 회로(102)를 포함할 수 있다. 명령 실행 회로(102)를 위한 컴퓨터-실행가능 명령들은, 예를 들어, 명령 실행 회로(102)에 견고하게 결합되는 로컬 메모리(104), 및 예를 들어, 버스(108)를 통해 명령 실행 회로(102)에 연결될 수 있는 원격 메모리(106)를 포함하는 메모리 리소스들 내에 저장될 수 있다. "로컬 메모리"(104) 및 "원격 메모리"(106)의 컨텍스트에서 용어 "로컬 및 "원격"은 반드시 물리적인 거리의 디스크립터들이 아니라는 것을 이해할 것이다. 예를 들어, 로컬 메모리(104) 및 원격 메모리(106)는 명령 실행 회로(102)로부터 임의의 상대적인 거리를 가질 수 있다. 일 양상에서, 로컬 메모리(104)는, 예를 들어, 전용 링크 또는 버스(도 1에 구체적으로 도시되지 않음)를 통해 명령 실행 회로(102)에 견고하게 결합될 수 있다.
[0023] 계속해서 도 1을 참조하면, 일 양상에서, 명령 실행 회로(102)는 예를 들어, 로컬 메모리(104), 원격 메모리(106) 및 다른 넌로컬 리소스들에 액세스하기 위해 트랜슬레이션 룩어사이드 유닛(110)이 실제의 물리적 어드레스들로 트랜슬레이팅하는 가상 어드레스들을 생성할 수 있다. 트랜슬레이션 룩어사이드 유닛(110)은 150-1, 1502 ... 150-R로 라벨링된 (그리고 총괄하여 "트랜슬레이션 엔트리들(150)"로 지칭되는) 가시적인 예들과 같은 R개의 가상 페이지 엔트리들(이하, "트랜슬레이션 엔트리들")을 저장하는 CAM(content-addressable memory)(도 1에 별개로 도시되지 않음)을 구비하는 TLB(translation lookaside buffer)(112)를 구비할 수 있다. 각각의 트랜슬레이션 엔트리(150)는 가상 페이지(즉, 명령 실행 회로(102) 가상 어드레싱 방식에 따른 페이지)를 물리적 페이지 번호로 맵핑할 수 있다. 물리적 페이지 번호는 로컬 메모리(104), 원격 메모리(106), 또는 다른 넌로컬 리소스에 대응할 수 있다. R개의 트랜슬레이션 엔트리들(150)은 더 큰 (도 1에 미도시) 가상 어드레스-대-물리적 어드레스(이하, "가상-대-물리적") 맵핑의 일 부분일 수 있다(도 1에서는 구체적으로 표시되지 않음).
[0024] TLB(112)는 명령 실행 회로(102)에 의해 생성된 가상 어드레스의 적어도 일 부분(예를 들어, Q 비트 가상 어드레스의 P 비트들)을 이용하여 그의 R개의 트랜슬레이션 엔트리들(150)에 액세스하도록 구성될 수 있다. TLB(112)는 CAM 어드레스 디코더들(도면들에 미도시)을 가질 수 있고, 트랜슬레이션 엔트리들(150)을 업데이트하기 위해 기록 회로(도면들에 미도시)를 포함할 수 있다. CAM 어드레스 디코더들 및 기록 회로는, 보다 구체적으로 후술되는 선택적인 인에이블링에 의해 보충될 수 있는 종래의 TLB 기술들을 이용하여 구현될 수 있다. 일 양상에서, TLB(112)는, 자신이 명령 실행 회로(102)로부터 수신하는 가상 어드레스(또는 그 가상 어드레스의 P 비트 필드)와 매칭 트랜슬레이션 엔트리(150)를 TLB(112)가 발견할 경우 "TLB 히트 이벤트(hit event)"를 표시하도록 구성될 수 있다. 유사한 양상에서, TLB(112)는, 매칭 트랜슬레이션 엔트리(150)를 발견하지 못한 것에 대한 응답으로 "TLB 미스 이벤트"를 식별하도록 구성될 수 있다. 추가 양상에서, TLB(112)는 TLB 미스 이벤트를 식별하는 것과 연관하여, 페이지 오류(page fault) 신호(도 1에서 "PF"로 약칭함)를 생성하도록 구성될 수 있다.
[0025] "150-r"로 라벨링된 대표적인 예시적인 트랜슬레이션 엔트리의 도 1의 확대도를 참조하면, 트랜슬레이션 엔트리들(150)은 VPN(virtual address page number) 필드(1502), 물리적 어드레스 페이지 번호 필드(page number field )(1504)(이하, "페이지 필드(1504)", 및 도 1에서 "PGN"으로 약칭함), 및 일 양상에서, 로컬 메모리 플래그 필드(1506)를 포함할 수 있다. 일 양상에서, 로컬 메모리 플래그 필드(1506)는, 페이지 필드(1504) 내 물리적 어드레스가 로컬 메모리(104) 내의 위치에 있다는 것을 나타내는 제 1 값과 물리적 어드레스가 로컬 메모리(104) 내에 위치하지 않는다는 것을 나타내는 제 2 값 사이에서 전환가능할 수 있는 값을 갖는 "로컬 플래그(local flag)"(도 1에서 "LM"으로 약칭함)를 유지할 수 있다. 설명의 목적으로, 로지컬 "0"이 로컬 메모리 플래그의 제 1 값으로서 할당될 것이고, 로지컬 "1"이 로컬 메모리 플래그의 제 2 값으로서 할당될 것이다. 이 할당은 임의적이며 어떠한 양상의 범위를 제한하려는 의도는 아니다. 로컬 메모리 플래그와 관련된 예시적인 특징들 및 동작들은 이후의 섹션들에서 보다 구체적으로 설명된다.
[0026] 대표적인 트랜슬레이션 엔트리(150-r)를 참조하면, 유효/비-유효 필드, 이를 테면, 예시적인 "유효" 필드(1508)가 또한 포함될 수 있다. 유효 필드(1508)는 공지된 종래의 TLB 유효/비-유효 필드 기술들에 따라 세팅되고 사용될 수 있으며, 따라서 추가의 상세한 설명을 생략한다.
[0027] 도 1을 참조하면, 일 양상에서, 전환가능한 전력/메모리 액세스 모드 프로세서(100)는, 레지스터, 이를 테면, 전력 모드 인디케이터를 저장하도록 구성되거나 할당받는 전력 모드 레지스터(power mode register)(114)(도 1에서 약어 "PWR 모드"로 라벨링됨)를 더 포함할 수 있다. 전력 모드 레지스터(114)는 예를 들어, 트랜슬레이션 룩어사이드 유닛(110)의 특징일 수 있다. 전력 모드 인디케이터는 제 1 값, 예를 들어, 전환가능한 전력/메모리 액세스 모드 프로세서(100)가 그의 정상 전력 모드에 있다는 것을 나타내는 로지컬 "0"과 제 2 값, 예를 들어, 전환가능한 전력/메모리 액세스 모드 프로세서(100)가 그의 저 전력 모드에 있다는 것을 나타내는 로지컬 "1" 사이에서 전환가능한 값을 가질 수 있다. 이 할당은 임의적이며 어떠한 양상의 범위를 제한하려는 의도는 아니다.
[0028] 도 1을 계속 참조하면, 일 양상에서, 트랜슬레이션 룩어사이드 유닛(110)은 임의적인 명칭 "LP(low power) 액세스 제외 로직(116)"에 의해 본 설명에서 간략하게 약칭되는, 저 전력 모드 범위 외 액세스 제외 로직(116)을 포함할 수 있다. LP 액세스 제외 로직(116)은, TLB 히트에 대응하는 리트리빙된 트랜슬레이션 엔트리(150)의 로컬 메모리 플래그를 (예를 들어, 로컬 메모리 플래그 필드(1506)로부터) 수신하고 전력 모드 레지스터(114)로부터 전력 모드 인디케이터를 수신하도록 구성될 수 있다. LP 액세스 제외 로직(116)은, 전환가능한 전력/메모리 액세스 모드 프로세서(100)가 저 전력 모드에 있는 동안, 물리적 어드레스가 로컬 메모리 외부에 있다는 것을 나타내는 TLB 히트의 로컬 메모리 플래그에 대한 응답으로 저 전력 액세스 제외 신호를 생성하도록 구성될 수 있다.
[0029] 도 1을 참조하면, 당업자는, LP 액세스 제외 로직(116)의 특정 구현이 로컬 메모리 플래그에 할당된 로지컬 값(들), 전력 모드 인디케이터, 및 저 전력 액세스 제외 신호의 원하는 극성(polarity)에 적어도 부분적으로 의존할 수 있다는 것을 본 개시내용을 읽음으로써 인식할 것이다.
[0030] 하나의 예시로서, 로지컬 "1"은 활성 저 전력 액세스 제외 신호의 값으로서 할당될 수 있다. 로컬 메모리 플래그로의 값들의 상술된 예시적인 할당은, TLB 히트의 물리적 어드레스가 로컬 메모리(104) 내부 및 외부에 있다는 것을 각각 나타내는 로지컬 "0" 및 로지컬 "1"이다. 전력 모드 레지스터(114)에 저장된 전력 모드 인디케이터로의 값들의 상술된 예시적인 할당은, 전환가능한 전력/메모리 액세스 모드 프로세서(100)가 그의 정상 전력 모드 및 저 전력 모드에 있다는 것을 각각 나타내는 로지컬 "0" 및 로지컬 "1"이다. 그런다음, LP 액세스 제외 로직(116)은, 도 1에서 볼 수 있는 바와 같이, AND 게이트로서 구현될 수 있다. 이후의 섹션들에서 추가로 설명되는, 전환가능한 전력/메모리 액세스 모드 프로세서(100)가 그의 저 전력 모드에 서의 예시적인 동작들에서, 로컬 메모리 외부의 물리적 어드레스를 갖는 TLB 비트는 로컬 메모리 플래그의 로지컬 "1" 값 및 전력 모드 인디케이터의 로지컬 "1" 값의, LP 액세스 제외 로직(116)의 입력들에서 동시발생(즉, 상호 동시 존재 간격)을 발생시킬 것이다. LP 액세스 제외 로직(116)의 예시적인 구현의 AND 동작은, 결과적으로 저 전력 액세스 제외 신호의 활성(로지컬 "1"을 의미함) 값을 출력할 것이다.
[0031] 일 양상에서, 전환가능한 전력/메모리 액세스 모드 프로세서(100)는 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(power mode disabled hardware page walker circuit)(118)를 포함할 수 있다. 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)는, 추가적인 양상에 따라, TLB(112)가 TLB 미스 이벤트에 대한 응답으로 생성하는 페이지 오류 신호를 수신하도록, 그리고 전력 모드 레지스터(114)로부터 전력 모드 인디케이터를 수신하도록 구성될 수 있다. 일 양상에서, 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)는, 이것이 저 전력 모드를 나타내는 값에서 전력 모드 인디케이터를 수신할 경우 그 자신을 디스에이블하도록, 즉 페이지 워킹을 수행하는 것에 관해서는 동작하지 않게 되도록 구성될 수 있다. 도 1을 참조하면, LP모드 디스에이블드 하드웨어 페이지 워커 회로(118)의 가시적인 예는 전력 모드 인디케이터의 수신을 위해서는, "DE"로 임의적으로 라벨링되는, 디스에이블 입력을 갖고, 그리고 페이지 오류 신호를 수신하기 위한 "PW"로 임의적으로 라벨링된 입력을 갖는 것으로 도시된다. 로지컬 "1"은 이 개시내용에서 앞에서 설명된 바와 같이, 저 전력 모드를 나타내는 전력 모드 인디케이터의 값으로서 할당될 수 있다. 전력 모드 인디케이터의 예시적인 할당 값을 가정하면, LP 모드 디스에이블드 하드웨어 페이지 워커 회로(118)는 자신의 DE 입력에서 로지컬 "1"을 수신하는 것에 대한 응답으로 그 자신을 디스에이블하도록 구성될 수 있다.
[0032] 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)는, 추가적인 양상에 따르면, 인에이블되는 동안 (예를 들어, 로지컬 "0"에서 전력 모드 인디케이터를 수신하는 동안) 페이지 오류 신호를 수신하는 것에 대한 응답으로, 이전에 설명된 더 큰 (예를 들어, 전 시스템) 가상-대-물리적 맵핑의 하드웨어 페이지 워크를 수행하도록 구성될 수 있다. 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)는 예를 들어, 공지된 종래의 하드웨어 페이지 워커 회로(구체적으로 도시되지 않음)의, 전력 모드 인디케이터를 수신하도록 구성되는 추가되는 디스에이블링 로직(구체적으로 도시되지 않음)과의 조합으로서 구현될 수 있다. 당업자는 과도한 실험없이, 그러한 당업자들이 소유하고 있는 종래의 엔지니어링 노하우를 본 개시내용에 적용함으로써 종래의 하드웨어 페이지 워커 회로 및 디스에이블링 로직의 이러한 조합을 구현할 수 있다. 따라서, 추가 상세한 설명을 생략한다.
[0033] 일 양상에서, 전환가능한 전력/메모리 액세스 모드 프로세서(100) 또는 외부 프로세서 또는 동작 환경들(도 1에 미도시)은, 특정 제외 핸들러(도면들에서 미도시)를 호출함으로써 LP 액세스 제외 로직(116)으로부터의 저 전력 액세스 제외 신호에 응답하도록 구성될 수 있다. 특정 제외 핸들러는 "허용가능한 액세스 외 범위 제외 핸들러"로 임의로 지칭될 수 있다. 허용가능한 액세스 외 범위 제외 핸들러는, 전환가능한 전력/메모리 액세스 모드 프로세서(100)가 저 전력 모드에 있는 동안, 넌로컬 리소스, 예를 들어, 로컬 메모리(104) 외부의 위치로 액세스하려는 명령 실행 회로(102)의 시도로부터 복원을 제공하도록 구성될 수 있다. 허용가능한 액세스 외 범위 제외 핸들러에 의해 수행되는 특정 복원 동작들은 적어도 부분적으로 애플리케이션-특정적일 수 있지만, 과도한 실험없이 당업자들이 소유하는 종래의 엔지니어링 노하우를 본 개시내용에 적용함으로써 당업자에 의해 용이하게 구현될 수 있다. 따라서, 추가 상세한 설명을 생략한다.
[0034] 전환가능한 전력/메모리 액세스 모드 프로세서(100)의 정상 전력 모드에서의 예시적인 동작들을 이제 설명할 것이다. 일 예에서, 명령 실행 회로(102)는 가상 어드레스를 트랜슬레이션 룩어사이드 유닛(110)에 전송할 수 있다. 가상 어드레스는 앞에 설명된 바와 같이 Q 비트들을 가질 수 있다. 예를 들어, Q 비트들의 P를 이용함으로써, TLB(112)는 그의 R개의 트랜슬레이션 엔트리들(150)을 탐색할 수 있다. 매칭 트랜슬레이션 엔트리가 발견되면, TLB 히트 이벤트가 생성된다. 매칭 트랜슬레이션 엔트리의 로지컬 메모리 플래그 필드(1506)는, 페이지 필드(1504)의 컨텐츠가 로컬 메모리(104)에 대응하는지 여부를 나타내는 로지컬 값("0" 또는 "1")일 수 있는 로컬 메모리 플래그를 가질 수 있다. 그러나, 전환가능한 전력/메모리 액세스 모드 프로세서(100)가 정상 전력 모드에 있을 경우 전력 모드 레지스터(114) 값은 로지컬 "0"이고, 따라서 LP 액세스 제외 로직(116)의 로지컬 AND 동작은 로컬 메모리 플래그가 로지컬 "0" 값이 되게 한다. 따라서, 정상 전력 모드의 전환가능한 전력/메모리 액세스 모드 프로세서(100)는, 로컬 메모리 플래그 값과 관계없이 (예를 들어, 리트리빙된 트랜슬레이션 엔트리(150)의 페이지 필드(1504) 상에서 동작하는 오프셋 회로(120)를 통해) 완전한 물리적 어드레스를 생성함으로써 TLB 히트 이벤트에 응답한다.
[0035] 예시적인 정상 전력 모드 동작을 계속 설명하면, TLB(112)가 R개의 트랜슬레이션 엔트리들(150) 중 트랜슬레이션 엔트리를 발견할 수 없을 경우 TLB 미스 이벤트(도 1에 따로 도시되지 않음)가 생성된다. 응답으로, TLB(112)가, 매칭 트랜슬레이션 엔트리가 발견되지 않았다는 것을 나타내는 페이지 오류 신호를 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)의 PW 입력에 전송한다. DE 입력에서 수신된 전력 모드 인디케이터가 로지컬 "O"이기 때문에, 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)가 인에이블된다. 따라서, 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)는, 앞에서 설명된 바와 같이, 명령 실행 회로(102)가 자신의 메모리 및 다른 리소스들 모두에 액세스하는 것에 대한 완전한, 업데이트된 가상-대-물리적 매핑을 갖는 페이지 테이블들(도 1에 미도시)의 하드웨어 페이지 워크를 수행함으로써 페이지 오류 신호에 응답한다.
[0036] 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)에 의해 수행되는 하드웨어 페이지 워크는 2개의 결과들 중 어느 하나를 생성할 수 있다. 하나는 TLB 미스 이벤트를 유발한 가상 어드레스에 대한 가상-대-물리적 맵핑을 페이지 테이블들에서 발견하는 것이다. 다른 가능한 결과는 어떠한 가상-대-물리적 맵핑도 발견하지 못하는 것이다. 가상-대-물리적 맵핑이 발견되면, 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)는 TLB(112)를 업데이트하기 위해 그것을 트랜슬레이션 룩어사이드 유닛(110)에 제공할 수 있다. TLB(112)의 업데이트는, 종래의 TLB 맵핑 정보 이외에, 하드웨어 페이지 워크에 의해 발견된 물리적 어드레스가 로컬 메모리(104)에 있거나 또는 로컬 메모리(104)에 있지 않은지 여부를 나타내도록 세팅된 그의 로컬 메모리 플래그를 갖는 로컬 메모리 플래그 필드(1506)를 포함하는 신규 트랜슬레이션 엔트리(150)를 생성할 수 있다. 따라서, 일 양상에서, 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118), 트랜슬레이션 룩어사이드 유닛(110), 또는 다른 로직(도 1에서 따로 라벨링되지 않음) 중 하나 또는 그 초과의 것은 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)에 의해 발견된 가상-대-물리적 맵핑의 물리적 어드레스 필드가 로컬 메모리(104)에 있는지 또는 로컬 메모리(104)에 있지 않은지 여부를 식별하도록 구성될 수 있다. 추가 양상에서, 트랜슬레이션 룩어사이드 유닛(110) 및 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118) 중 하나 이상은, 물리적 어드레스 위치가 로컬 메모리(104)에 있는지 또는 있지 않은지 여부의 그 식별에 따라서 TLB(112)의 신규 트랜슬레이션 엔트리의 로컬 메모리 플래그 필드(1506)에 로컬 메모리 플래그를 세팅하도록 구성될 수 있다.
[0037] 상술된 예시적인 동작들은, 전환가능한 전력/메모리 액세스 모드 프로세서(100)가 그의 정상 전력 모드에 있는 것과 연관되었다. 전환가능한 전력/메모리 액세스 모드 프로세서(100)의 예시적인 저 전력 모드 동작들이 이제 설명될 것이다. 전환가능한 전력/메모리 액세스 모드 프로세서(100)는, 예를 들어, 외부적으로 생성된 명령(도 1에서 명시적으로 볼 수 없음)의 수신에 대한 응답으로 저 전력 모드로 전환하도록 구성될 수 있다. 저 전력 모드로의 전환과 연관되어, 전력 모드 레지스터(114)의 전력 모드 인디케이터가 로지컬 "1"로 세팅될 수 있다.
[0038] 일 예시적인 저 전력 모드 액세스 동작은, 명령 실행 회로(102)가 트랜슬레이션 룩어사이드 유닛(110)으로 가상 어드레스를 전송하는 것으로 시작할 수 있다. 트랜슬레이션 룩어사이드 유닛(110)이 매칭 트랜슬레이션 엔트리(150)를 발견하는 경우, 이는 TLB 히트 이벤트(도 1에 구체적으로 도시되지 않음)를 생성한다. 예시적인 동작들은 매칭 트랜슬레이션 엔트리가 발견되었다고 가정하여 먼저 설명될 것이다. 트랜슬레이션 룩어사이드 유닛이 매칭 트랜슬레이션 엔트리를 발견하지 않은 경우 수행될 수 있는 예시적인 동작들이 이후의 섹션들에서 추가로 설명될 것이다. 정상 전력 모드에 있을 경우 수신되는 로지컬 "0"과는 반대로, 저 전력 모드에 있을 경우에는, 전력 모드 레지스터(114)로부터의 전력 모드 인디케이터의 로지컬 "1" 값이 LP 액세스 제외 로직(116)에서 수신된다. 그 로지컬 "1"은 LP 액세스 제외 로직(116)의 출력으로 하여금, 매칭 트랜슬레이션 엔트리(150)의 로컬 메모리 플래그 필드(1506) 내의 로컬 플래그에 의존하게 한다. 따라서, 저 전력 모드에서, TLB 히트 이벤트에 대한 응답으로 전환가능한 전력/메모리 액세스 모드 프로세서(100)의 동작은, 매칭 트랜슬레이션 엔트리(150)의 로컬 메모리 플래그에 의존한다. 로컬 메모리 플래그가, 페이지 필드(1504)의 물리적 페이지 번호가 로컬 메모리(104)에 있다는 것을 나타내는 경우, 동작들은 정상 전력 모드에 대해 설명된 바와 같이 진행될 수 있으며, 즉, 물리적 어드레스가 생성될 수 있고 로컬 메모리(104)에 액세스될 수 있다. 그러나, 로컬 메모리 플래그가, 페이지 필드(1504)의 물리적 페이지 번호가 로컬 메모리(104) 외부에 있다는 것을 식별하는 경우, LP 액세스 제외 로직(116)은 활성(이 예에서, 로지컬 "1") 저 전력 액세스 제외 신호를 출력할 것이다. 일 양상에서, 활성 저 전력 액세스 제외 신호는 앞에서 설명된 허용가능한 액세스 외 범위 제외 핸들러가 호출되게 할 수 있다.
[0039] 도 1을 참조하면, 저 전력 모드에 있는 동안 TLB 히트 이벤트와 연관된 상술된 동작들 동안, 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)는, 그의 DE 입력이 전력 모드 인디케이터의 로지컬 "1" 값을 수신하는 것에 의해 디스에이블되었다. 일 양상에서, 전환가능한 전력/메모리 액세스 모드 프로세서(100)는, 저 전력 모드에 있는 동안 TLB 미스 이벤트에 대한 응답으로, 저 전력 모드 TLB 미스 제외 신호를 발생시키도록 구성되는 로직을 포함할 수 있다. 그러한 로지컬의 일 예시적인 구현은, TLB(112)로부터 출력되는 페이지 오류 신호 및 전력 모드 인디케이터의 로지컬 AND를 수행하도록 구성될 수 있는 로지컬 AND 회로(122)일 수 있다. 저 전력 모드에 있는 동안의 TLB 미스 이벤트는, 로지컬 AND 회로(122)의 입력들에서 TLB(112)의 페이지 오류 출력 및 전력 모드 인디케이터의 동시발생(상호 동시 존재 간격을 의미함)을 생성할 수 있다. 로지컬 AND 회로(122)는 결과적으로 발생된 활성(이 예에서, 로지컬 "1") 저 전력 모드 TLB 미스 제외 신호를 생성할 수 있다.
[0040] 전환가능한 전력/메모리 액세스 모드 프로세서(100)를 전환하는 것은, 전력 모드 레지스터(114)의 전력 모드 인디케이터를 정상 전력 모드를 나타내는 값으로 세팅하는 것을 포함할 수 있다. 그런 다음, 동작은, 정상 전력 모드에 있을 경우, TLB(112)에서, 다른 가상 어드레스를 수신하는 것, 다른 가상 어드레스와 일치하는 가상 어드레스를 갖는 다른 매칭 트랜슬레이션(150) 엔트리를 식별하는 것, 로컬 메모리 플래그와 관계없는 메모리, 예를 들어, 로컬 메모리(104) 또는 원격 메모리(106)에 액세스하는 것을 포함할 수 있다.
[0041] 도 2는 하나 또는 그 초과의 양상들에 따라 저 전력(도 2에서 "LP"로 약칭함) 모드로 전환하는 것과 연관되는 메모리 액세스들의 프로세스들에서의 예시적인 동작들의 로지컬 흐름(200)을 도시한다. 편의상, 예시적인 동작들은 도 1의 전환가능한 전력/메모리 액세스 모드 프로세서(100)를 참조하여 설명될 것이다. 이러한 설명은 그러한 설명의 임의의 양상 또는 실시를 도 1의 전환가능한 전력/메모리 액세스 모드 프로세서(100) 또는 그의 아키텍처로 제한하는 것으로 의도되지 않는다는 것을 이해할 것이다.
[0042] 도 1 및 도 2를 참조하면, 흐름(200)의 동작들은, 예를 들어, 외부 명령(도 1 및 도 2에서 명시적으로 볼 수 없음)에 대한 응답으로, 전환가능한 전력/메모리 액세스 모드 프로세서(100)가 저 전력 모드로 전환하는 202에서 시작할 수 있다. 일 양상에서, 202의 동작들은 저 전력 모드로의 전환을 나타내도록 모드 레지스터를 세팅하는 것을 포함할 수 있다. 예를 들어, 전력 모드 레지스터(114)의 전력 모드 인디케이터가 로지컬 "1"로 세팅될 수 있다. 202에서 저 전력 모드로 전환하는 것과 연관하여, 흐름(200)은 하드웨어 페이지 워크를 디스에이블할 수 있다(204). 도 1을 참조하면, 204에서의 디스에이블링 동작은, 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)에 의해, 그의 DE 입력에서 로지컬 "1" 전력 모드 인디케이터를 수신하는 것에 대한 응답으로 수행될 수 있다.
[0043] 206에서, 예를 들어, 명령 실행 회로(102)로부터 트랜슬레이션 룩어사이드 유닛(110)에서 가상 어드레스를 수신할 때, 흐름(200)은 그런다음, TLB(112)가 그러한 수신된 가상 어드레스를 이용하여 그의 R개의 트랜슬레이션 엔트리들(150)을 탐색할 수 있는 208로 진행할 수 있다. 208에서 탐색이 TLB 히트를 발생시키는 경우(결정 블록(210)에서 "예"로 나타내어짐), 결정 블록(210)에 의해 도시된 바와 같이, 흐름(200)은, 그 매칭 트랜슬레이션 엔트리(150)의 로컬 메모리 플래그 필드(1506) 내 로컬 메모리 플래그에 의존하여 2개의 경로들 중 어느 하나가 택하여지는 결정 블록(212)으로 진행할 수 있다. 도 1을 참조하면, 결정 블록(212)의 동작은, LP 액세스 제외 로직(116)에 의한, 로컬 메모리 플래그와 전력 모드 레지스터(114)로부터의 로지컬 "1" 전력 모드 인디케이터의 로지컬 AND에 의해 제공될 수 있다. 이 설명의 목적들을 위해, 로컬 메모리 플래그의 할당된 값들은, 매칭 트랜슬레이션 엔트리의 물리적 어드레스가 로컬 메모리(104)에 있는 경우 로지컬 "0"이고, 그 물리적 어드레스가 로컬 메모리(104)에 있지 않은 경우 로지컬 "1"이다. 그 할당을 이용하여, 로컬 메모리 플래그가 로지컬 "0"인(즉, 매칭 트랜슬레이션 엔트리(150)의 물리적 어드레스가 로컬 메모리(104)에 있는) 경우, 흐름(200)은 212의 "예" 분기에서 214로 진행하여, 예를 들어, 매칭 트랜슬레이션 엔트리(150)의 페이지 필드(1504)를 이용하여 완전한 물리적 어드레스를 생성할 수 있다. 그런 다음, 흐름(200)은 216으로 진행하고, 214에서 생성된 물리적 어드레스를 이용하여 로컬 메모리(104)에 액세스한 후, 218에서 종료할 수 있다. 206에서 다른 가상 어드레스가 수신될 때 흐름(200)이 반복될 수 있다.
[0044] 상술된 예시적인 동작들에서, 208에서 TLB(112)의 탐색이 히트를 생성하여, 결정 블록(210)으로부터 "예"를 라우팅한다. 도 1 및 도 2를 참조하면, 다른 예에서, 208에서 TLB(112)의 탐색이 히트를 생성하지 못할 수 있으며, 그 결과 결정 블록(210)으로부터 "아니오"를 라우팅한다. 그런 다음, 흐름(200)은 220으로 진행하여, 예를 들어, TLB(112)로부터의 페이지 오류 및 전력 모드 인디케이터에 대해 작용하는 로지컬 AND 회로(122)가 로지컬 "1"인 것에 기초하여, 저 전력 모드 TLB 미스 제외 신호를 생성할 수 있다.
[0045] 도 1 및 도 2를 참조하여, 결정 블록(212)을 다시 참조하면, TLB 탐색(208)에 의해 발견된 매칭 트랜슬레이션 엔트리(150)의 로컬 메모리 플래그가, 그의 페이지 필드(1504)의 물리적 어드레스가 로컬 메모리(104)에 있지 않다는 것을 나타내는 경우(예를 들어, 로컬 메모리 플래그가 로지컬 "1"임), 흐름(200)이 222로 진행하여 저 전력 액세스 제외 신호(블록 아이템 222에서 "LXE"로 약칭함)를 생성할 수 있다. 도 1을 참조하면, 222에서의 동작들은 LP 액세스 제외 로직(116)의 AND 동작을 포함할 수 있다. 그런 다음, 흐름(200)은 224로 진행할 수 있고, 예를 들어, 앞에서 설명된 액세스 외 범위 제외 핸들러를 호출할 수 있다.
[0046] 도 3은 하나 또는 그 초과의 양상들에 따른, 정상 전력 모드로 전환하는 것과 연관되는 메모리 액세스들의 프로세스들의 예시적인 동작들의 로지컬 흐름(300)을 도시한다. 편의상, 흐름(300)의 예시적인 동작들은 도 1의 전환가능한 전력/메모리 액세스 모드 프로세서(100)를 참조하여 설명된다. 이러한 설명이 그의 임의의 양상 또는 실시를 도 1의 전환가능한 전력/메모리 액세스 모드 프로세서(100) 아키텍처로 제한하고자 의도되지 않는다는 것을 이해할 것이다.
[0047] 도 1 및 도 3을 참조하면, 흐름(300)의 동작들은, 예를 들어, 외부 명령(도 1 및 도 3에서 명시적으로 볼 수 없음)에 대한 응답으로, 전환가능한 전력/메모리 액세스 모드 프로세서(100)가 정상 전력 모드(블록 항목(302)에서 "NP"로 약칭함)로 전환하는 302에서 시작할 수 있다. 일 양상에서, 302에서의 동작들은 전력 모드 레지스터(114)의 전력 모드 인디케이터를 로지컬 "0"으로 세팅하는 단계를 포함할 수 있다. 302에서의 정상 전력 모드로 전환하는 것과 관련하여, 흐름(300)은, 304에서, 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)를 인에이블할 수 있다. 도 1을 참조하면, 304에서의 인에이블링 동작은, 그의 DE 입력에서 로지컬 "0" 전력 모드 인디케이터를 수신하는 것에 대한 응답으로 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)에 의해 수행될 수 있다. 그런 다음, 흐름(300)은, 예를 들어, 명령 실행 회로(102)로부터, 306에서 트랜슬레이션 룩어사이드 유닛(110)에 의해 가상 어드레스가 수신될 때까지 대기할 수 있다.
[0048] 계속하여 도 1 및 도 3을 참조하면, 트랜슬레이션 룩어사이드 유닛(110)이 306에서 가상 어드레스를 수신할 때, 흐름(300)은, TLB(112)가 306에서 수신된 가상 어드레스를 이용하여 그의 R개의 트랜슬레이션 엔트리들(150)을 탐색할 수 있는 308로 진행할 수 있다. 308에서의 탐색이 TLB 히트를 초래하면, 즉 매칭 트랜슬레이션 엔트리(150)가 발견되는 경우(결정 블록(310)에서 "예"로 나타내어짐), 흐름(300)이 312로 진행하고, 예를 들어, 매칭 트랜슬레이션 엔트리(150)의 페이지 필드(1504)를 이용하여 완전한 물리적 어드레스를 생성할 수 있다. 그런 다음, 흐름(300)은 314로 진행하고, 312에서 생성된 물리적 어드레스를 이용하여, 그의 메모리 리소스들, 예를 들어, 원격 메모리(106) 및/또는 로컬 메모리(104)에 액세스할 수 있다. 312에서의 액세스 이후에, 흐름(300)이 314에서 종료될 수 있으며, 다른 가상 어드레스가 306에서 수신될 경우에는 반복될 수 있다.
[0049] 도 1의 LP 액세스 제외 로직(116) 및 도 3을 참조하면, LP 액세스 제외 로직(116) 및 정상 전력 모드와 연관된 전력 모드 인디케이터의 로지컬 "0" 값 때문에, 매칭 트랜슬레이션 엔트리(150)의 로컬 메모리 플래그 필드(1506)의 로컬 메모리 플래그가 흐름(300)과 무관하다는 것을 이해할 것이다. 이 특징은, TLB 내의 모든 넌로컬 물리적 어드레스 엔트리들을 무효화하는 종래 기술들에 의해 요구되는 바와 같이, TLB를 다시채우기 위해 TLB 미스들 및 페이지 워크들이 반복될 필요가 있는 것과는 대조적으로, 정상 전력 모드 동작으로의 전환 즉시 전환가능한 전력/메모리 액세스 모드 프로세서(100)에 무제한 메모리 액세스를 제공할 수 있다는 것을 인식할 것이다.
[0050] 도 3을 참조하면, 흐름(300)에서의 동작들의 상술된 예들은 308에서의 탐색으로부터 TLB 히트가 발생됨을 가정한다. 다른 예에서, 도 1 및 도 3을 참조하면, 308에서의 탐색이 TLB(112)에서 매칭 트랜슬레이션 엔트리를 발견하지 못할 수 있다. 응답으로, 결정 블록(310)을 떠나는 "아니오" 분기에 의해 도시된 바와 같이, 흐름(300)은 318로 진행하며 페이지 테이블들의 하드웨어 페이지 워크(도 1에서 명시적으로 볼 수 없음)를 수행할 수 있다. 318에서의 하드웨어 페이지 워크는, 공지된 종래의 하드웨어 페이지 워크 기술들에 따를 수 있으며, 따라서 추가 상세한 설명이 생략된다. 318에서의 하드웨어 페이지 워크 이후 흐름(300)에서의 다음 동작들은, 결정 블록(320)에 의해 도시된 바와 같이, 동작이 가상-대-물리적 맵핑을 발견했는지 여부에 의존할 수 있다. 아무것도 발견하지 않으면, 흐름(300)은, 결정 블록(320)을 떠나 "아니오" 분기에 의해 도시된 바와 같이 322로 진행하여, 페이지 오류 제외를 호출할 수 있다. 322에서의 페이지 오류 제외는 성공적이지 않은 하드웨어 페이지 워크에 대한 응답으로 공지된 종래의 페이지 오류 기술들에 따를 수 있으며, 따라서, 추가 상세한 설명은 생략된다.
[0051] 도 1 및 도 3을 참조하면, 318에서의 하드웨어 페이지 워크가 가상-대-물리적 맵핑(도 1에서 명시적으로 볼 수 없음)을 발견하는 경우, 결정 블록(320)을 떠나는 "예" 분기에 의해 도시된 바와 같이, 흐름(300)은 324로 진행하여, 그 가상-대-물리적 맵핑의 물리적 어드레스 필드가 로컬 메모리, 예를 들어, 로컬 메모리(104)에 대한 것인지 또는 로컬 메모리 외부의 것, 예를 들어, 원격 메모리(106)에 대한 것인지를 결정할 수 있다. 그런 다음, 흐름(300)이 326으로 진행하고 TLB(112)를 신규 트랜슬레이션 맵핑 엔트리(150)로 업데이트할 때 324에서의 그 결정을 이용할 수 있다. 신규 트랜슬레이션 맵핑 엔트리(150)는 예 150-r에 따라 포맷팅될 수 있으며, 150-r는 그의 VPN 필드(1502) 및 페이지 필드(1504)에, 318에서의 하드웨어 페이지 워크에 의해 발견되는 가상-대-물리적 맵핑을 가지며, 그의 로컬 메모리 플래그 필드(1506)에, 물리적 어드레스가 로컬 메모리(104)에 있는지 또는 로컬 메모리 외부에 있는지, 예를 들어, 원격 메모리(106)에 있는지 여부를 나타내는 값(예를 들어, 로지컬 "0" 또는 "1")이 세팅된 로컬 메모리 플래그를 갖는다. 그런 다음, 흐름(300)이 314로 진행하여, 318에서의 하드웨어 페이지 워크에 의해 발견된 가상-대-물리적 맵핑을 이용하여 메모리에 액세스한 후, 316에서 종료될 수 있다.
[0052] 도 4는, 본원에 설명된 바와 같이, 도 1의 프로세서 시스템(100)을 참조로 설명된 기능들 및 특징들을 지원하거나 제공하도록 구성될 수 있는 개인 통신 및 컴퓨팅 디바이스(400) 중 하나의 예를 도시한다. 도 4를 참조하면, 개인 통신 및 컴퓨팅 디바이스(400)는 시스템 버스(402), 그 시스템 버스(402)에 결합된 하나 또는 그 초과의 CPU들(404)을 포함할 수 있다. CPU들(404)은, 예를 들어, 하나 또는 그 초과의 프로세서들 또는 CPU들(406) 및 하나 또는 그 초과의 캐시 메모리들(408)을 포함할 수 있다. CPU(들)(406)는, 예를 들어, 하나 또는 그 초과의 프로그램가능 컴퓨팅 디바이스들, 이를테면, 하나 또는 그 초과의 ARM-타입 프로세싱 디바이스들(이것으로 제한되지 않음)(도 4에서 따로 볼 수 없음)에 의해 구현될 수 있다. CPU(들)(406)는 마스터 디바이스로서 수행할 수 있다. CPU(들)(406)는 예를 들어 시스템 버스(402)를 통해 다양한 마스터 및 슬레이브 디바이스들에 상호결합될 수 있다. CPU들(404)은 종래의 통신 프로토콜들에 따라, 어드레스, 제어, 및 데이터 정보를 시스템 버스(402)를 통해 교환함으로써 이들 다른 디바이스들과 통신할 수 있다. 도 4에 도시되지 않았지만, 다수의 시스템 버스들(402)이 제공될 수 있다. 다수의 시스템 버스들(402)을 갖는 예들에서, 각각의 시스템 버스(402)는 상이한 패브릭을 구성할 수 있다.
[0053] 도 4를 참조하면, CPU(들)(404)는 버스 트랜잭션 요청들을 슬레이브 디바이스의 일 예로서 메모리 시스템(412)의 메모리 제어기(410)에 통신할 수 있다. 도 1 및 도 4를 참조하면, 일 양상에서, CPU(들)(404)는 도 1의 명령 실행 회로(102)에 대응할 수 있다. CPU(들)(404)는 로컬 메모리(104), 트랜슬레이션 룩어사이드 유닛(110) 및 전력 모드 디스에이블드 하드웨어 페이지 워커 회로(118)를 구현하는 컴퓨터-실행가능 코드(도 4에서 명시적으로 볼 수 없음) 및/또는 회로(도 4에서 명시적으로 볼 수 없음)를 포함하도록 구성될 수 있다. 메모리 시스템(412)은 원격 메모리(106)의 일 부분을 구현하거나 또는 형성할 수 있다. 양상들이 CPU(들)(404)로부터 물리적으로 분리될 수 있는 "로컬 메모리" 특정 메모리 리소스들(도 4에서 반드시 볼 수 있는 것은 아님)로서의 지정을 포함할 수 있다는 것을 이해할 것이다. 마찬가지로, 양상들은, CPU(들)(404) 중 하나 또는 그 초과의 것에 근접할 수 있거나 또는 심지어 CPU(들)(404) 중 하나 또는 그 초과의 것 내부에 있을 수 있는 영역들(도 4에서 반드시 볼 수 있는 것은 아님) 내에 물리적으로 배열될 수 있는 "로컬 메모리 외부"로서의 또는 "원격 메모리" 특정 메모리 리소스들(도 4에서 반도시 볼 수 있는 것은 아님)로서의 지정을 포함할 수 있다.
[0054] 도 4를 참조하면, 다른 마스터 및 슬레이브 디바이스들의 예들은 하나 또는 그 초과의 입력 디바이스들(414), 하나 또는 그 초과의 출력 디바이스들(416), 하나 또는 그 초과의 네트워크 인터페이스 디바이스들(418), 및 하나 또는 그 초과의 디스플레이 제어기들(420)을 포함할 수 있다. 입력 디바이스(들)(414)는, 사용되는 경우, 입력 키들, 스위치들, 음성 프로세서들 등을 포함하는(그러나 이것으로 제한되지 않음) 임의의 타입의 입력 디바이스를 포함할 수 있다. 출력 디바이스(들)(416)는, 사용되는 경우, 오디오, 비디오, 다른 시각적 인디케이터 등을 포함하는(그러나 이것으로 제한되지 않음) 임의의 타입의 출력 디바이스를 포함할 수 있다. 네트워크 인터페이스 디바이스(들)(418)는, 사용되는 경우, 데이터를 네트워크(422)로 그리고 데이터를 네트워크(422)로부터 교환할 수 있도록 구성되는 임의의 타입의 네트워크 인터페이스 디바이스일 수 있다. 네트워크(422)는 유선 또는 무선 네트워크, 개인 또는 공중 네트워크, LAN(local area network), WLAN(wide area network) 및 인터넷을 포함하는(그러나 이것으로 제한되지 않음) 임의의 타입의 네트워크일 수 있다. 네트워크 인터페이스 디바이스(들)(418)는 임의의 타입의 원하는 통신들 프로토콜을 지원하도록 구성될 수 있다.
[0055] 계속해서 도 4를 참조하면, CPU(들)(404)는 또한, 하나 또는 그 초과의 디스플레이들(424)로 전송된 정보를 제어하기 위해 시스템 버스(402)를 통해 디스플레이 제어기(들)(420)에 액세스하도록 구성될 수 있다. 디스플레이 제어기(들)(420)는, 예를 들어, 하나 또는 그 초과의 비디오 프로세서들(426)을 통해 디스플레이될 정보를 디스플레이(들)(424)에 전송할 수 있다. 비디오 프로세서들(426)은, 예를 들어, 디스플레이(들)(424)에 적절한 포맷으로 디스플레이될 정보를 프로세싱할 수 있다. 사용되는 경우, 디스플레이(들)(424)는, 임의의 타입의 디스플레이, 예를 들어, 능동 또는 수동 LCD(liquid crystal display), 플라즈마 디스플레이, 및 CRT(cathode ray tube)를 포함할 수 있다.
[0056] 앞서 개시된 디바이스들 및 기능들은 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 파일들(예컨대, RTL, GDSII, GERBER 등)로 설계 및 구성될 수 있다. 일부 또는 모든 이러한 파일들은 이러한 파일들에 기초하여 디바이스들을 제조하는 제조 핸들러들에게 제공될 수 있다. 결과적으로 제조된 제품들은 반도체 웨이퍼들을 포함하며, 이 반도체 웨이퍼들은 이후 반도체 다이들로 절단되고 반도체 칩들로 패키지화된다. 반도체 칩들은 이후, 앞서 설명된 디바이스들에서 사용된다.
[0057] 당업자들은, 정보 및 신호들이 다양한 다른 기술들 및 기법들 중 임의의 것을 이용하여 나타내어질 수 있다는 것을 인식할 것이다. 예를 들어, 상기 설명 전반에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기 필드들 또는 자기 입자들, 광 필드들 또는 광 입자들, 또는 이들의 임의의 결합으로 표현될 수 있다.
[0058] 더욱이, 당업자는 본원에 개시된 양상들과 관련하여 설명되는 다양한 예시적인 로지컬 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 결합들로서 구현될 수 있다는 것을 인식할 것이다. 하드웨어와 소프트웨어의 이러한 상호 교환 가능성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 이들의 기능성의 관점에서 일반적으로 상술되었다. 이러한 기능이 하드웨어로 구현되는지 아니면 소프트웨어로 구현되는지는 전체 시스템에 부과된 설계 제약들 및 특정 애플리케이션에 좌우된다. 당업자들은 각각의 특정 애플리케이션에 대해 다양한 방식들로 설명된 기능을 구현할 수 있지만, 이러한 구현 결정들이 본 발명의 범위를 벗어나게 하는 것으로 해석되어서는 안 된다.
[0059] 본원에 개시된 양상들과 관련하여 설명된 방법들, 시퀀스들 및/또는 알고리즘들은 직접 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이 둘의 결합으로 구현될 수 있다. 소프트웨어 모듈은, RAM 메모리, 플래쉬 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 착탈형 디스크, CD-ROM, 또는 당업계에 알려져 있는 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독하고, 저장 매체에 정보를 기입할 수 있도록 프로세서에 결합될 수 있다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다.
[0060] 앞의 개시내용은 본 개시내용의 예시적인 양상들 및 예시적인 구현들을 도시하지만, 다양한 변경들 및 수정들이 첨부된 청구범위에 의해 정의되는 바와 같이 본 발명의 범위를 벗어나지 않고 본원에서 이루어질 수 있다는 것을 주목해야 한다. 방법 청구항들에 따른 기능들, 단계들 및/또는 동작들은 임의의 특정 순서로 수행될 필요가 없다. 또한, 본 발명의 엘리먼트들이 단수로 설명되거나 청구될 수 있지만, 단수에 대한 제한이 명시적으로 언급되지 않는 한 복수가 고려된다.

Claims (28)

  1. 메모리에 액세스하기 위한 방법으로서,
    TLB(translation lookaside buffer)에 복수의 트랜슬레이션 엔트리들을 저장하는 단계, ―각각의 트랜슬레이션 엔트리는 가상 어드레스, 물리적 어드레스 및 로컬 메모리 플래그를 포함하며, 상기 로컬 메모리 플래그는 상기 물리적 어드레스가 로컬 메모리 외부에 있는지 여부를 나타냄―; 및
    프로세서가 저 전력 모드에 있는 경우:
    생성된 가상 어드레스를 수신하는 단계, 및
    매칭 트랜슬레이션 엔트리(matching translation entry)가 상기 생성된 가상 어드레스와 일치하는 가상 어드레스를 갖는다는 것을 식별할 때, 상기 매칭 트랜슬레이션 엔트리의 상기 물리적 어드레스가 상기 로컬 메모리 외부에 있다는 것을 상기 매칭 트랜슬레이션 엔트리의 상기 로컬 메모리 플래그가 나타내는 경우, 액세스 범위 외 메모리 액세스 제외(out-of-access-range memory access exception)를 생성하는 단계를 포함하고,
    상기 로컬 메모리는 저 전력 모드 및 정상 전력 모드에서 액세스가능하며, 그리고
    상기 로컬 메모리 외부의 메모리인 원격 메모리는 상기 저 전력 모드에서 액세스가능하지 않고, 상기 정상 전력 모드에서 액세스가능한, 메모리에 액세스하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 TLB 히트(hit)가 식별되는 경우 그리고 상기 물리적 어드레스가 상기 로컬 메모리 외부에 있지 않다는 것을 상기 매칭 트랜슬레이션 엔트리의 상기 로컬 메모리 플래그가 나타내는 경우, 상기 물리적 어드레스에 기반하여 상기 로컬 메모리에 액세스하는 단계를 포함하는, 메모리에 액세스하기 위한 방법.
  3. 제 1 항에 있어서,
    매칭 트랜슬레이션 엔트리가 상기 트랜슬레이션 엔트리들 중에 없을 때, 페이지 오류 신호(page fault signal)를 생성하는 단계를 더 포함하는, 메모리에 액세스하기 위한 방법.
  4. 제 3 항에 있어서,
    상기 생성된 가상 어드레스는 제 1 가상 어드레스이고,
    상기 방법은,
    상기 프로세서를 정상 전력 모드로 전환하는 단계; 및
    상기 프로세서가 상기 정상 전력 모드에 있을 경우,
    제 2 가상 어드레스를 수신하는 단계,
    상기 트랜슬레이션 엔트리들 중 어느 것도 상기 제 2 가상 어드레스와 일치하는 가상 어드레스를 갖지 않다는 것을 식별할 때, 상기 제 2 가상 어드레스에 기초하여 하드웨어 페이지 워크(hardware page walk)를 수행하는 단계, 및
    상기 하드웨어 페이지 워크가 상기 제 2 가상 어드레스와 일치하는 가상 어드레스-대-물리적 어드레스 맵핑(virtual address-to-physical address mapping)을 발견할 때, 상기 트랜슬레이션 룩어사이드 버퍼를 상기 제 2 가상 어드레스에 대응하는 신규 트랜슬레이션 엔트리로 업데이트하는 단계를 더 포함하는, 메모리에 액세스하기 위한 방법.
  5. 제 4 항에 있어서,
    상기 트랜슬레이션 룩어사이드 버퍼를 업데이트하는 단계는, 상기 가상 어드레스-대-물리적 어드레스 맵핑에 의해 나타내어진 상기 물리적 어드레스가 상기 로컬 메모리 외부에 있는지 또는 외부에 있지 않은지 여부를 나타내는 값으로, 상기 신규 트랜슬레이션 엔트리의 상기 로컬 메모리 플래그를 세팅하는 단계를 포함하는, 메모리에 액세스하기 위한 방법.
  6. 제 4 항에 있어서,
    상기 프로세서를 상기 정상 전력 모드로 전환하는 단계와 관련하여, 하드웨어 페이지 워커(hardware page walker)를 인에이블하는 단계를 더 포함하며, 상기 하드웨어 페이지 워커는 상기 하드웨어 페이지 워크를 수행하는, 메모리에 액세스하기 위한 방법.
  7. 제 4 항에 있어서,
    상기 프로세서를 상기 저 전력 모드로 다시 전환하는 단계; 및
    상기 프로세서를 상기 저 전력 모드로 전환하는 단계와 관련하여, 하드웨어 페이지 워커를 디스에이블하는 단계를 더 포함하는, 메모리에 액세스하기 위한 방법.
  8. 제 1 항에 있어서,
    상기 프로세서를 정상 전력 모드로부터 상기 저 전력 모드로 전환하는 단계; 및
    상기 프로세서를 상기 저 전력 모드로 전환하는 단계와 관련하여, 레지스터의 전력 모드 인디케이터(power mode indicator)를 상기 저 전력 모드를 나타내는 값으로 세팅하는 단계를 더 포함하는, 메모리에 액세스하기 위한 방법.
  9. 제 8 항에 있어서,
    상기 액세스 범위 외 메모리 액세스 제외를 생성하는 단계는, 상기 매칭 트랜슬레이션 엔트리의 상기 물리적 어드레스가 상기 로컬 메모리 외부에 있다는 것을 나타내는 상기 로컬 메모리 플래그, 및 상기 저 전력 모드를 나타내는 값인 상기 전력 모드 인디케이터의 동시발생에 기초하는, 메모리에 액세스하기 위한 방법.
  10. 제 9 항에 있어서,
    상기 트랜슬레이션 엔트리들 중 어느 것도 상기 생성된 가상 어드레스와 일치하는 가상 어드레스를 갖지 않을 때, 저 전력 모드 TLB 미스 제외 신호(miss exception signal)를 생성하는 단계를 더 포함하는, 메모리에 액세스하기 위한 방법.
  11. 제 10 항에 있어서,
    상기 저 전력 모드 TLB 미스 제외 신호를 생성하는 단계는,
    상기 트랜슬레이션 엔트리들 중 어느 것도 상기 생성된 가상 어드레스와 일치하는 가상 어드레스를 갖지 않다는 것을 식별하는 것에 대한 응답으로, 매칭 트랜슬레이션 엔트리가 발견되지 않았다는 것을 나타내는 페이지 오류 신호를 생성하는 단계; 및
    매칭 트랜슬레이션 엔트리가 발견되지 않았다는 것을 나타내는 상기 페이지 오류 신호 및 상기 저 전력 모드를 나타내는 값인 상기 전력 모드 인디케이터의 동시발생에 기초하여, 상기 저 전력 모드 TLB 미스 제외 신호를 생성하는 단계를 포함하는, 메모리에 액세스하기 위한 방법.
  12. 제 8 항에 있어서,
    상기 프로세서를 상기 저 전력 모드로부터 상기 정상 전력 모드로 전환하는 단계;
    상기 프로세서를 상기 정상 전력 모드로 전환하는 단계와 관련하여, 상기 레지스터의 상기 전력 모드 인디케이터를 상기 정상 전력 모드를 나타내는 값으로 세팅하는 단계; 및
    상기 프로세서가 상기 정상 전력 모드에 있을 경우,
    다른 가상 어드레스를 수신하는 단계, 및
    다른 매칭 트랜슬레이션 엔트리가 상기 다른 가상 어드레스와 일치하는 가상 어드레스를 갖는다는 것을 식별할 때, 상기 로컬 메모리 플래그와 관계없는 메모리에 액세스하는 단계를 더 포함하는, 메모리에 액세스하기 위한 방법.
  13. 제 1 항에 있어서,
    상기 물리적 어드레스가 상기 로컬 메모리 외부에 있다는 것을 각각의 트랜슬레이션 엔트리의 로컬 메모리 플래그가 나타내는 각각의 트랜슬레이션 엔트리에 대해서는, 상기 방법이 상기 트랜슬레이션 엔트리를 무효화하지 않는, 메모리에 액세스하기 위한 방법.
  14. 메모리에 액세스하기 위한 장치로서,
    복수의 트랜슬레이션 엔트리들을 저장하고 ―각각의 트랜슬레이션 엔트리는 가상 어드레스, 물리적 어드레스 및 로컬 메모리 플래그를 포함하며, 상기 로컬 메모리 플래그는 상기 물리적 어드레스가 로컬 메모리 외부에 있는지 여부를 나타냄―,
    생성된 가상 어드레스를 수신하고, 그리고
    매칭 트랜슬레이션 엔트리가, 상기 생성된 가상 어드레스와 일치하는 가상 어드레스를 갖는다는 것을 식별하도록 구성되는
    TLB(translation lookaside buffer); 및
    상기 매칭 트랜슬레이션 엔트리의 상기 물리적 어드레스가 상기 로컬 메모리 외부에 있다는 것을 상기 매칭 트랜슬레이션 엔트리의 상기 로컬 메모리 플래그가 나타내는 것에 대한 응답으로, 액세스 범위 외 메모리 액세스 제외를 생성하도록 구성되는 액세스 외 범위 제외 회로를 포함하고,
    상기 로컬 메모리는 저 전력 모드 및 정상 전력 모드에서 액세스가능하며, 그리고
    상기 로컬 메모리 외부에 있는 메모리인 원격 메모리는 상기 저 전력 모드에서 액세스가능하지 않고, 상기 정상 전력 모드에서 액세스가능한, 메모리에 액세스하기 위한 장치.
  15. 제 14 항에 있어서,
    전력 모드 인디케이터를 상기 저 전력 모드를 나타내는 값으로 저장하도록 구성된 레지스터를 더 포함하고,
    상기 액세스 외 범위 제외 회로는, 상기 매칭 트랜슬레이션 엔트리의 상기 물리적 어드레스가 상기 로컬 메모리 외부에 있다는 것을 나타내는 상기 로컬 메모리 플래그 및 상기 저 전력 모드를 나타내는 값인 상기 전력 모드 인디케이터의 동시발생에 기초하여 상기 액세스 범위 외 메모리 액세스 제외를 생성하도록 구성되는, 메모리에 액세스하기 위한 장치.
  16. 제 15 항에 있어서,
    매칭 트랜슬레이션 엔트리가, 생성된 가상 어드레스와 일치하는 가상 어드레스를 갖지 않는다는 것을 식별하는 것에 대한 응답으로, 저 전력 모드 TLB 미스 제외 신호를 생성하도록 구성되는 회로를 더 포함하는, 메모리에 액세스하기 위한 장치.
  17. 제 15 항에 있어서,
    상기 트랜슬레이션 룩어사이드 버퍼는, 매칭 트랜슬레이션 엔트리들이 상기 생성된 가상 어드레스와 일치하는 가상 어드레스를 갖지 않다는 것을 식별하는 것에 대한 응답으로, 매칭 트랜슬레이션 엔트리가 발견되지 않았다는 것을 나타내는 페이지 오류 신호를 생성하도록 구성되고, 그리고
    상기 장치는, 매칭 트랜슬레이션 엔트리가 발견되지 않았다는 것을 나타내는 상기 페이지 오류 신호 및 상기 저 전력 모드를 나타내는 값인 상기 전력 모드 인디케이터의 동시발생에 기초하여, 저 전력 모드 TLB 미스 제외 신호를 생성하도록 구성되는 로직을 더 포함하는, 메모리에 액세스하기 위한 장치.
  18. 제 15 항에 있어서,
    상기 저 전력 모드를 나타내는 값과 정상 전력 모드를 나타내는 값 사이에서 전환가능한 값으로 전력 모드 인디케이터를 저장하도록 구성되는 레지스터를 더 포함하고,
    상기 액세스 외 범위 제외 회로는, 상기 매칭 트랜슬레이션 엔트리의 상기 물리적 어드레스가 상기 로컬 메모리 외부에 있다는 것을 나타내는 상기 로컬 메모리 플래그 및 상기 저 전력 모드를 나타내는 값인 상기 전력 모드 인디케이터의 동시발생에 기초하여 상기 액세스 범위 외 메모리 액세스 제외를 생성하도록 구성되는, 메모리에 액세스하기 위한 장치.
  19. 제 18 항에 있어서,
    상기 액세스 외 범위 제외 회로는, 상기 정상 전력 모드를 나타내는 값인 상기 전력 모드 인디케이터에 대한 응답으로, 상기 액세스 범위 외 메모리 액세스 제외를 생성하는 것을 디스에이블하도록 추가로 구성되는, 메모리에 액세스하기 위한 장치.
  20. 제 19 항에 있어서,
    상기 트랜슬레이션 룩어사이드 버퍼는, 상기 트랜슬레이션 엔트리들 중 어느 것도 상기 생성된 가상 어드레스와 일치하는 가상 어드레스를 갖지 않다는 것을 식별하는 것에 대한 응답으로, 매칭 트랜슬레이션 엔트리가 발견되지 않았다는 것을 나타내는 페이지 오류 신호를 생성하도록 구성되고, 그리고
    상기 장치는,
    상기 전력 모드 인디케이터 및 상기 페이지 오류 신호를 수신하고, 그리고
    매칭 트랜슬레이션 엔트리가 발견되지 않았다는 것을 나타내는 상기 페이지 오류 신호 및 상기 정상 전력 모드를 나타내는 값인 상기 전력 모드 인디케이터의 동시발생에 대한 응답으로, 상기 생성된 가상 어드레스에 기초하여 하드웨어 페이지 워크를 수행하도록 구성되는
    하드웨어 페이지 워커 회로를 더 포함하는, 메모리에 액세스하기 위한 장치.
  21. 제 20 항에 있어서,
    상기 하드웨어 페이지 워커 회로는, 상기 저 전력 모드를 나타내는 값인 상기 전력 모드 인디케이터를 수신하는 것에 대한 응답으로 디스에이블되도록 구성되는, 메모리에 액세스하기 위한 장치.
  22. 제 20 항에 있어서,
    상기 하드웨어 페이지 워크는, 상기 생성된 가상 어드레스와 일치하는 가상 어드레스-대-물리적 어드레스 맵핑을 발견하는 것에 대한 응답으로, 상기 가상 어드레스-대-물리적 어드레스 맵핑을 상기 트랜슬레이션 룩어사이드 버퍼에 제공하도록 구성되고, 그리고
    상기 트랜슬레이션 룩어사이드 버퍼는 상기 트랜슬레이션 룩어사이드 버퍼를 상기 생성된 가상 어드레스에 대응하는 신규 트랜슬레이션 엔트리로 업데이트하도록 구성되는, 메모리에 액세스하기 위한 장치.
  23. 제 22 항에 있어서,
    트랜슬레이션 룩어사이드 버퍼는, 상기 가상 어드레스-대-물리적 어드레스 맵핑에 의해 나타내어진 상기 물리적 어드레스가 상기 로컬 메모리 외부에 있는지 또는 외부에 있지 않은지 여부를 나타내는 값으로, 상기 신규 트랜슬레이션 엔트리의 상기 로컬 메모리 플래그를 세팅하는 것을 포함하도록 구성되는, 메모리에 액세스하기 위한 장치.
  24. 제 14 항에 있어서,
    상기 물리적 어드레스가 상기 로컬 메모리 외부에 있다는 것을 각각의 트랜슬레이션 엔트리의 로컬 메모리 플래그가 나타내는 각각의 트랜슬레이션 엔트리에 대해서는, 상기 장치가 상기 TLB 엔트리를 무효화하지 않는, 메모리에 액세스하기 위한 장치.
  25. 메모리에 액세스하기 위한 장치로서,
    복수의 트랜슬레이션 엔트리들을 저장하기 위한 수단 ―각각의 트랜슬레이션 엔트리는 가상 어드레스, 물리적 어드레스 및 로컬 메모리 플래그를 포함하며, 상기 로컬 메모리 플래그는 상기 물리적 어드레스가 로컬 메모리 외부에 있는지 여부를 나타냄―;
    프로세서가 저 전력 모드에 있는 경우, 생성된 가상 어드레스를 수신하기 위한 수단;
    매칭 트랜슬레이션 엔트리가 상기 생성된 가상 어드레스와 일치하는 가상 어드레스를 갖는다는 것을 식별하기 위한 수단; 및
    상기 매칭 트랜슬레이션 엔트리의 상기 물리적 어드레스가 상기 로컬 메모리 외부에 있다는 것을 상기 매칭 트랜슬레이션 엔트리의 상기 로컬 메모리 플래그가 나타내는 경우, 액세스 범위 외 메모리 액세스 제외를 생성하기 위한 수단을 포함하며,
    상기 로컬 메모리는 저 전력 모드 및 정상 전력 모드에서 액세스가능하며, 그리고
    상기 로컬 메모리 외부의 메모리인 원격 메모리는 상기 저 전력 모드에서 액세스가능하지 않고, 상기 정상 전력 모드에서 액세스가능한, 메모리에 액세스하기 위한 장치.
  26. 제 25 항에 있어서,
    상기 물리적 어드레스가 상기 로컬 메모리 외부에 있다는 것을 각각의 트랜슬레이션 엔트리의 로컬 메모리 플래그가 나타내는 각각의 트랜슬레이션 엔트리에 대해서는, 상기 장치가 TLB 엔트리를 무효화하지 않는, 메모리에 액세스하기 위한 장치.
  27. 비일시적 컴퓨터 판독가능 저장 매체로서,
    코드를 포함하고, 상기 코드는
    프로세서에 의해 실행될 경우, 상기 프로세서로 하여금,
    트랜슬레이션 룩어사이드 버퍼에 복수의 트랜슬레이션 엔트리들을 저장하게 하고, ―각각의 트랜슬레이션 엔트리는 가상 어드레스, 물리적 어드레스 및 로컬 메모리 플래그를 포함하며, 상기 로컬 메모리 플래그는 상기 물리적 어드레스가 로컬 메모리 외부에 있는지 여부를 나타냄―; 그리고
    프로세서가 저 전력 모드에 있을 경우,
    생성된 가상 어드레스를 수신하게 하고, 그리고
    매칭 트랜슬레이션 엔트리가 상기 생성된 가상 어드레스와 일치하는 가상 어드레스를 갖는다는 것을 식별할 때,
    상기 매칭 트랜슬레이션 엔트리의 상기 물리적 어드레스가 상기 로컬 메모리 외부에 있다는 것을 상기 매칭 트랜슬레이션 엔트리의 상기 로컬 메모리 플래그가 나타내는 경우, 액세스 범위 외 메모리 액세스 제외를 생성하게 하며,
    상기 로컬 메모리는 저 전력 모드 및 정상 전력 모드에서 액세스가능하며, 그리고
    상기 로컬 메모리 외부의 메모리인 원격 메모리는 상기 저 전력 모드에서 액세스가능하지 않고, 상기 정상 전력 모드에서 액세스가능한, 비일시적 컴퓨터 판독가능 저장 매체.
  28. 제 27 항에 있어서,
    상기 물리적 어드레스가 상기 로컬 메모리 외부에 있다는 것을 각각의 트랜슬레이션 엔트리의 로컬 메모리 플래그가 나타내는 각각의 트랜슬레이션 엔트리에 대해서는, 상기 코드는 상기 프로세서로 하여금 TLB 엔트리를 무효화하게 하지 않는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020177022982A 2015-02-20 2016-01-29 선택적인 트랜슬레이션 룩어사이드 버퍼 탐색 및 페이지 오류 KR101868389B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/626,925 US9858201B2 (en) 2015-02-20 2015-02-20 Selective translation lookaside buffer search and page fault
US14/626,925 2015-02-20
PCT/US2016/015599 WO2016133674A1 (en) 2015-02-20 2016-01-29 Selective translation lookaside buffer search and page fault

Publications (2)

Publication Number Publication Date
KR20170120109A true KR20170120109A (ko) 2017-10-30
KR101868389B1 KR101868389B1 (ko) 2018-06-18

Family

ID=55346224

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177022982A KR101868389B1 (ko) 2015-02-20 2016-01-29 선택적인 트랜슬레이션 룩어사이드 버퍼 탐색 및 페이지 오류

Country Status (6)

Country Link
US (1) US9858201B2 (ko)
EP (1) EP3259671B1 (ko)
KR (1) KR101868389B1 (ko)
CN (1) CN107250997B (ko)
TW (1) TWI634417B (ko)
WO (1) WO2016133674A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9658793B2 (en) 2015-02-20 2017-05-23 Qualcomm Incorporated Adaptive mode translation lookaside buffer search and access fault
US10956332B2 (en) * 2017-11-01 2021-03-23 Advanced Micro Devices, Inc. Retaining cache entries of a processor core during a powered-down state
CN108959125B (zh) * 2018-07-03 2021-08-06 中国人民解放军国防科技大学 一种支持数据快速获取的存储访问方法和装置
US11243891B2 (en) * 2018-09-25 2022-02-08 Ati Technologies Ulc External memory based translation lookaside buffer
CN109684236A (zh) * 2018-12-25 2019-04-26 广东浪潮大数据研究有限公司 一种数据写缓存控制方法、装置、电子设备和存储介质
US11301396B2 (en) * 2019-03-29 2022-04-12 Intel Corporation Technologies for accelerated data access and physical data security for edge devices
US11334496B2 (en) * 2019-12-06 2022-05-17 EMC IP Holding Company LLC Method and system for providing processor-addressable persistent memory to guest operating systems in a storage system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US20040128574A1 (en) * 2002-12-31 2004-07-01 Franco Ricci Reducing integrated circuit power consumption
US20060288243A1 (en) * 2005-06-16 2006-12-21 Lg Electronics Inc. Automatically controlling processor mode of multi-core processor
US20110072234A1 (en) * 2009-09-18 2011-03-24 Chinya Gautham N Providing Hardware Support For Shared Virtual Memory Between Local And Remote Physical Memory

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3012227A (en) 1956-09-26 1961-12-05 Ibm Signal storage system
US4200915A (en) 1978-04-05 1980-04-29 Allen-Bradley Company Program loader for programmable controller
DE3854770T2 (de) 1987-06-29 1997-02-06 Digital Equipment Corp Busadapter für digitales Rechensystem
US5113511A (en) 1989-06-02 1992-05-12 Atari Corporation System for dynamically providing predicted high/slow speed accessing memory to a processing unit based on instructions
US5386563A (en) 1992-10-13 1995-01-31 Advanced Risc Machines Limited Register substitution during exception processing
US5809563A (en) 1996-11-12 1998-09-15 Institute For The Development Of Emerging Architectures, Llc Method and apparatus utilizing a region based page table walk bit
US5996051A (en) 1997-04-14 1999-11-30 Advanced Micro Devices, Inc. Communication system which in a first mode supports concurrent memory acceses of a partitioned memory array and in a second mode supports non-concurrent memory accesses to the entire memory array
US6412056B1 (en) 1997-10-01 2002-06-25 Compac Information Technologies Group, Lp Extended translation lookaside buffer with fine-grain state bits
JPH11282746A (ja) 1998-03-03 1999-10-15 Internatl Business Mach Corp <Ibm> Dramアクセス方法およびdramコントロ−ラ
JP3922859B2 (ja) 1999-12-28 2007-05-30 株式会社リコー 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
EP1182561B1 (en) 2000-08-21 2011-10-05 Texas Instruments France Cache with block prefetch and DMA
EP1182568A3 (en) 2000-08-21 2004-07-21 Texas Instruments Incorporated TLB operation based on task-id
EP1182570A3 (en) 2000-08-21 2004-08-04 Texas Instruments Incorporated TLB with resource ID field
US6766433B2 (en) 2001-09-21 2004-07-20 Freescale Semiconductor, Inc. System having user programmable addressing modes and method therefor
US6799257B2 (en) 2002-02-21 2004-09-28 Intel Corporation Method and apparatus to control memory accesses
US7143203B1 (en) 2002-04-26 2006-11-28 Advanced Micro Devices, Inc. Storage device control responsive to operational characteristics of a system
US20040064655A1 (en) 2002-09-27 2004-04-01 Dominic Paulraj Memory access statistics tool
US7146469B2 (en) 2002-10-24 2006-12-05 Sony Corporation Method, apparatus, and system for improving memory access speed
JP4945053B2 (ja) 2003-03-18 2012-06-06 ルネサスエレクトロニクス株式会社 半導体装置、バスインターフェース装置、およびコンピュータシステム
US20070277023A1 (en) 2003-06-24 2007-11-29 Reinhard Weiberle Method For Switching Over Between At Least Two Operating Modes Of A Processor Unit, As Well Corresponding Processor Unit
US7412581B2 (en) 2003-10-28 2008-08-12 Renesas Technology America, Inc. Processor for virtual machines and method therefor
TWI294569B (en) * 2004-01-16 2008-03-11 Ip First Llc Apparatus and method for performing fast pop operation from random access cache memory and computer-readable storage medium
EP1736887A3 (fr) 2005-05-31 2009-04-22 Stmicroelectronics Sa Repertoire de pages memoire
US7516274B2 (en) 2005-11-15 2009-04-07 Sun Microsystems, Inc. Power conservation via DRAM access reduction
US7958312B2 (en) 2005-11-15 2011-06-07 Oracle America, Inc. Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state
US7653789B2 (en) 2006-02-01 2010-01-26 Sun Microsystems, Inc. Multiprocessor system that supports both coherent and non-coherent memory accesses
US7882307B1 (en) 2006-04-14 2011-02-01 Tilera Corporation Managing cache memory in a parallel processing environment
US20080147977A1 (en) 2006-07-28 2008-06-19 International Business Machines Corporation Design structure for autonomic mode switching for l2 cache speculative accesses based on l1 cache hit rate
EP2150889A1 (en) 2007-04-10 2010-02-10 Cambridge Consultants Limited Data processing apparatus
US8601234B2 (en) 2007-11-07 2013-12-03 Qualcomm Incorporated Configurable translation lookaside buffer
US9244855B2 (en) 2007-12-31 2016-01-26 Intel Corporation Method, system, and apparatus for page sizing extension
US8639245B2 (en) 2009-06-08 2014-01-28 Qualcomm Incorporated Method and apparatus for updating rules governing the switching of virtual SIM service contracts
US8285936B2 (en) 2009-10-20 2012-10-09 The Regents Of The University Of Michigan Cache memory with power saving state
US8924645B2 (en) 2010-03-08 2014-12-30 Hewlett-Packard Development Company, L. P. Data storage apparatus and methods
US8429378B2 (en) * 2010-07-06 2013-04-23 Qualcomm Incorporated System and method to manage a translation lookaside buffer
US8990602B2 (en) * 2010-12-21 2015-03-24 Intel Corporation Apparatus, method, and system for early deep sleep state exit of a processing element
KR20130002046A (ko) 2011-06-28 2013-01-07 삼성전자주식회사 멀티 코어를 포함하는 저장 장치의 전력 관리 방법
WO2013095559A1 (en) 2011-12-22 2013-06-27 Intel Corporation Power conservation by way of memory channel shutdown
WO2013118188A1 (en) 2012-02-10 2013-08-15 Hitachi, Ltd. Storage system and method thereof for migrating data with cache bypass
US9141560B2 (en) * 2012-06-29 2015-09-22 Intel Corporation Multi-level storage apparatus
US9069690B2 (en) * 2012-09-13 2015-06-30 Intel Corporation Concurrent page table walker control for TLB miss handling
TW201447579A (zh) * 2013-03-14 2014-12-16 Nvidia Corp 追蹤統一虛擬記憶體系統內分頁錯誤的錯誤緩衝區
JP5734492B1 (ja) 2014-05-08 2015-06-17 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US11656874B2 (en) 2014-10-08 2023-05-23 Nxp Usa, Inc. Asymmetrical processor memory architecture
US9658793B2 (en) * 2015-02-20 2017-05-23 Qualcomm Incorporated Adaptive mode translation lookaside buffer search and access fault

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US20040128574A1 (en) * 2002-12-31 2004-07-01 Franco Ricci Reducing integrated circuit power consumption
US20060288243A1 (en) * 2005-06-16 2006-12-21 Lg Electronics Inc. Automatically controlling processor mode of multi-core processor
US20110072234A1 (en) * 2009-09-18 2011-03-24 Chinya Gautham N Providing Hardware Support For Shared Virtual Memory Between Local And Remote Physical Memory

Also Published As

Publication number Publication date
KR101868389B1 (ko) 2018-06-18
WO2016133674A1 (en) 2016-08-25
EP3259671B1 (en) 2018-10-31
CN107250997A (zh) 2017-10-13
US9858201B2 (en) 2018-01-02
EP3259671A1 (en) 2017-12-27
CN107250997B (zh) 2021-02-12
TWI634417B (zh) 2018-09-01
US20160246731A1 (en) 2016-08-25
TW201643606A (zh) 2016-12-16

Similar Documents

Publication Publication Date Title
KR101868389B1 (ko) 선택적인 트랜슬레이션 룩어사이드 버퍼 탐색 및 페이지 오류
KR101750669B1 (ko) 멀티-코어 이종 시스템 변환 색인 버퍼 일관성
TWI531912B (zh) 具有用於多上下文計算引擎的轉譯後備緩衝之處理器、用於致能多執行緒以存取於處理器中之資源之系統和方法
US8429378B2 (en) System and method to manage a translation lookaside buffer
US9858198B2 (en) 64KB page system that supports 4KB page operations
EP2472412B1 (en) Explicitly regioned memory organization in a network element
WO2012142894A1 (zh) 一种利用巨页映射降低cpu资源消耗的方法和装置
TWI526832B (zh) 用於減少執行硬體表搜尋(hwtw)所需的時間和計算資源量的方法和系統
EP3278228B1 (en) Command-driven translation pre-fetch for memory management units
JP2013182356A (ja) 演算装置、情報処理装置および演算方法
CN115292214A (zh) 页表预测方法、存储访问操作方法、电子装置和电子设备
US20230289295A1 (en) Virtual Memory Management Method and Apparatus Supporting Physical Addresses Larger Than Virtual Addresses
EP3304321A1 (en) Providing memory management unit (mmu) partitioned translation caches, and related apparatuses, methods, and computer-readable media
US9454201B2 (en) Detecting access to powered down device
US20210406195A1 (en) Method and apparatus to enable a cache (devpic) to store process specific information inside devices that support address translation service (ats)
EP3230875B1 (en) Adaptive memory access to local and non-local memories
WO2018036486A1 (zh) 页表缓存的访问方法、页表缓存、处理器芯片和存储单元
CN105183668B (zh) 缓存刷新方法及装置
CN116249972A (zh) 一种内存保护方法及保护代理控制装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant