KR101057526B1 - 주소 변환 방법 및 장치 - Google Patents

주소 변환 방법 및 장치 Download PDF

Info

Publication number
KR101057526B1
KR101057526B1 KR1020097018613A KR20097018613A KR101057526B1 KR 101057526 B1 KR101057526 B1 KR 101057526B1 KR 1020097018613 A KR1020097018613 A KR 1020097018613A KR 20097018613 A KR20097018613 A KR 20097018613A KR 101057526 B1 KR101057526 B1 KR 101057526B1
Authority
KR
South Korea
Prior art keywords
memory page
address
memory
page
translation
Prior art date
Application number
KR1020097018613A
Other languages
English (en)
Other versions
KR20090117798A (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 KR20090117798A publication Critical patent/KR20090117798A/ko
Application granted granted Critical
Publication of KR101057526B1 publication Critical patent/KR101057526B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/655Same page detection
    • 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

프로세서 내에 주소 변환 성능이 메모리의 상이한 페이지들 사이에서 경계 교차를 야기하는 가상 또는 물리적 주소를 식별하고, 두 개 메모리 페이지들 모두와 연관되는 주소 변환 정보를 링크시킴으로써 개선된다. 프로세서의 일 실시예에 따라, 프로세서는 제1 메모리 페이지와 제2 메모리 페이지 사이의 페이지 경계를 교차하는 메모리의 영역에 대한 액세스를 인지하도록 구성되는 회로를 포함한다. 회로는 또한 제1 및 제2 메모리 페이지와 연관되는 주소 변환 정보를 링크시키도록 구성된다. 따라서, 동일한 메모리 영역에 대한 후속 액세스에 응답하여, 제1 및 제2 메모리 페이지와 연관되는 주소 변환 정보가 단일 주소 변환에 기초하여 리트리브가능하다.

Description

주소 변환 방법 및 장치{ADDRESS TRANSLATION METHOD AND APPARATUS}
본 발명은 일반적으로 주소 변환(address translation)에 관한 것으로서, 특히, 메모리 페이지 경계 교차 조건들을 생성하는 가상 주소들을 변환하는 것과 관련된다.
가상 메모리는 메모리 관리(memory management) 기술로서, 이에 의하여 인접하지 않는 물리적 메모리(물리적 주소 공간)가 인접(contiguous) 메모리(가상 주소 공간)로서 프로세스(소프트웨어)에 제공된다. 할당된 물리적 메모리가 항상 순차적으로 구성되지는 않는다 하더라도(또는, 심지어 동일한 매체, 예를 들어, SDRAM 및 ROM에서), 프로세스들은 인접한 가상 주소 공간을 처리하기 때문에, 메모리를 선형적 시퀀스로서 고려한다. 추가로, 프로그램들은 보통 물리적 메모리가 할당되는 방법을 알지 못한다. 그 대신, 프로세서 또는 다른 디바이스는 가상 메모리 할당을 종래의 방식으로 관리한다.
메모리 관리는 페이지들(또는 세그먼트들)로 물리적 메모리를 분할하고, 메모리에 대해 액세스하는 프로세스들에 투과성인(transparent) 실제 물리적 메모리 페이지들로의 가상 주소들의 맵핑을 제공한다. 프로세스들은 단지 가상 주소 공간만을 고려하는 반면, 물리적 주소 공간이 대응 데이터가 실제로 메모리에 상주하는 곳이다. 프로세서는 통상적으로 주소 변환을 사용하여 가상 주소 공간을 물리적 주소 공간으로 맵핑한다. 주소 변환은 주어진 가상 주소에 기초하여 물리적 주소를 검색(look up)하는 단계를 포함한다. 가상 주소는 통상적으로 적어도 2개 부분들 - 가상 페이지 번호 및 페이지 오프셋(offset) - 으로 분할된다. 가상 페이지 번호는 가상 메모리의 특정 페이지를 식별한다. 페이지 오프셋은 페이지 내에 원하는 영역(또는 블럭)을 식별한다.
주 메모리에 유지되는 페이지 테이블은 통상적으로 가상 페이지 번호들 및 대응 물리적 페이지 번호들의 리스트를 저장한다. 페이지 테이블은 가상 주소의 가상 페이지 번호 부분을 사용하여 검색된다. 가상 페이지 번호가 페이지 테이블의 엔트리와 매칭된다면, 대응 물리적 페이지 번호가 테이블로부터 리트리브(retrieve)된다. 그렇지 않으면, 페이지 테이블 에러가 발생한다. 페이지 오프셋과 함께, 리트리브된 물리적 페이지 번호는 메모리로부터 정보를 리트리브하는데 사용되는 물리적 주소를 형성한다. 페이지 번호는 물리적 메모리의 적절한 페이지를 식별한다. 그 후 페이지 내의 원하는 메모리 영역은 페이지 오프셋을 사용하여 액세스된다.
성능을 개선하기 위하여, 자주 액세스되는 페이지 테이블 엔트리들이 프로세서에, 예를 들어, 변환 색인 버퍼(TLB: Translation Lookaside Buffer)에 로컬로 저장된다. TLB들은 단일 레벨의 로컬 캐시 메모리 또는 다수의 캐시 레벨들, 예를 들어, 레벨 1 명령 및 데이터 캐시들 및 레벨 2 캐시를 지원할 수 있다. 어떤 경우에든, TLB는 페이지 테이블과 동일한 방식으로 주소 변환을 수행한다. 가상 페이지 번호를 사용하여 TLB 검색(lookup) 동안에 매칭이 발생한다면, 대응 물리적 페이지 번호가 TLB로부터 리트리브되고, 페이지 오프셋과 함께 물리적으로 태깅된(tagged) 캐시로 제공된다. 물리적 주소가 캐시에서 히트되면(hit), 물리적 주소에 대응하는 캐시 라인이 캐시로부터 리트리브된다. 그렇지 않으면, 더 높은 레벨의 캐시 검색이 수행될 수 있다.
가상 메모리는 프로그램들로 하여금 자신의 전체 주소 공간이 물리적 메모리에 상주하도록 요구하지 않고 실행될 수 있도록 한다. 따라서, 프로그램들은 실제로 필요한 것보다 더 적은 물리적 메모리를 사용하여 실행될 수 있다. 또한, 각각의 프로그램의 가상 주소 공간이 상기 프로그램에 독점적으로 할당되는 물리적 메모리의 하나 이상의 페이지들로 독립적으로 맵핑될 수 있기 때문에, 가상 메모리는 서로로부터 프로그램들을 분리시킨다. 또한, 애플리케이션 프로그램들은 메모리 관리에 책임이 없기 때문에 간략화된다. 그러나, 특정 타입의 메모리 액세스들은 부가적인 주소 변환 프로세싱이 성공적으로 완료되도록 요구한다.
예를 들어, 오정렬된 메모리 액세스가 발생할 때, 원하는 단어가 하나의 메모리 행에 부분적으로 그리고 다른 메모리 행에 부분적으로 위치된다. 2개의 행들이 상이한 메모리 페이지들로 할당된다면, 페이지 경계 교차가 발생한다. 2개의 메모리 페이지들 사이에 경계를 교차하는 메모리의 영역을 참조하는 명령은 통상적으로 2개 부분들에서 복제되고 실행된다. 복제된 명령의 제1 페이지 피스(piece)는 제1 메모리 페이지와 연관되는 물리적 주소에 기초하여 실행을 완료하고, 복제된 명령의 제2 페이지 피스는 제2 메모리 페이지와 연관되는 주소에 기초하여 실행을 완료한다. 따라서, 상이한 메모리 페이지들이 명령을 복제함으로써 개별적으로 액세스된다.
다수의 주소 변환들은 통상적으로 상이한 메모리 페이지들과 연관되는 물리적 메모리 주소들을 획득하도록 요구된다. 제1 주소 변환이 제1 메모리 페이지와 연관되는 물리적 주소를 리트리브하기 위하여 수행되고, 제2 주소 변환이 제2 메모리 페이지와 연관되는 물리적 주소를 리트리브하기 위하여 수행된다. 경계 교차 조건을 생성하는 명령을 위해 요구되는 부가적인 주소 변환 프로세싱은 프로세서 성능을 감소시키고, 전력 소모를 증가시키며, 특히, 주 메모리에 유지되는 페이지 테이블에 대한 액세스가 요구된다면 그러하다.
본 명세서에 개시되는 방법들 및 장치에 따라, 프로세서 내에 주소 변환 성능이 메모리의 상이한 페이지들 사이에서 경계 교차를 야기하는 가상 또는 물리적 주소를 식별함으로써 개선된다. 즉, 명령이 페이지 경계를 또한 교차하는 오정렬된 메모리 액세스를 야기한다면 상기 명령이 식별된다. 그러한 조건이 인지될 때, 2개 메모리 페이지들과 연관되는 주소 변환 정보는 함께 링크되고, 프로세서 내에 저장된다. 2개 페이지들과 연관되는 주소 변환 정보는 후속하여 액세스되고 있는 메모리의 동일한 페이지-교차 영역에 응답하여 단일 주소 변환을 사용하여 획득될 수 있다. 따라서, 다중 주소 변환들이 방지된다.
프로세서의 일 실시예에 따라, 프로세서는 제1 메모리 페이지와 제2 메모리 페이지 사이의 페이지 경계를 교차하는 메모리의 영역에 대한 액세스를 인지하도록 구성되는 회로를 포함한다. 회로는 또한 제1 및 제2 메모리 페이지와 연관되는 주소 변환 정보를 링크시키도록 구성된다. 따라서, 동일한 메모리 영역에 대한 후속 액세스에 응답하여, 제1 및 제2 메모리 페이지와 연관되는 주소 변환 정보는 단일 주소 변환에 기초하여 리트리브가능하다.
메모리의 동일한 영역이 후속하여 액세스될 때, 프로세서 회로는 대응 명령을 인지하고, 명령에 의하여 제공되는 가상 주소를 제1 메모리 페이지와 연관되는 물리적 주소로 변환한다. 회로는 가상 주소를 제2 메모리 페이지와 연관되는 물리적 주소에 링크시키는 이전에 설정된 정보에 기초하여 제2 메모리 페이지와 연관되는 물리적 주소를 리트리브한다. 따라서, 제1 및 제2 메모리 페이지와 연관되는 주소 변환 정보는 단일 주소 변환에 기초하여 리트리브된다.
물론, 본 발명은 상기 특징들 및 장점들로 제한되지 않는다. 본 기술분야의 당업자들은 하기의 상세한 설명을 읽고, 첨부된 도면들을 참조하여, 부가적인 특징들 및 장점들을 인지할 수 있을 것이다.
도 1은 주소 변황 동안에 페이지 경계 교차들을 추적하기 위한 회로를 갖는 프로세서의 실시예를 도시하는 블럭도이다.
도 2는 도 1의 페이지 교차 추적 회로의 일 실시예를 도시하는 블럭도이다.
도 3은 도 1의 페이지 교차 추적 회로에 주소 변환 정보를 저장하기 위한 프로그램 논리의 실시예를 도시하는 논리 흐름도이다.
도 4는 도 1의 페이지 교차 추적 회로로부터 주소 변환 정보를 리트리브하기 위한 프로그램 논리의 실시예를 도시하는 논리 흐름도이다.
도 5는 도 1의 페이지 교차 추적 회로의 다른 실시예를 도시하는 블럭도이다.
도 1은 명령 유닛(12), 실행 유닛들(14), 데이터 및 명령 캐시들(16 및 18), 제2-레벨 캐시(20) 및 버스 인터페이스 유닛(22)을 포함하는 프로세서(10)의 실시예를 도시한다. 명령 유닛(12)은 실행 유닛들(14)에 명령 흐름의 중앙집중된(centralized) 제어를 제공한다. 실행 유닛들(14)은 데이터 캐시(16)에 정보를 로딩하고 저장하는 것을 포함하는, 명령 유닛(12)에 의하여 디스패치된(dispatched) 명령들을 실행한다. 데이터 및 명령 캐시들(16 및 18)은 각각 데이터 및 명령들을 저장한다. L2 캐시(20)는 데이터 및 명령 캐시들(16 및 18)과 DRAM(24) 및/또는 하나 이상의 하드-디스크-드라이브들(HDDs)(26)과 같은프로세서 외부의 주 메모리 사이에서 고속 메모리 버퍼를 제공한다. 버스 인터페이스 유닛(22)은 주변 장치들(28) 및 주 메모리와 같은 프로세서 외부의 디바이스들과 프로세서(10) 사이에 데이터, 명령들, 주소들, 및 제어 신호들을 송신하기 위한 메커니즘을 제공한다.
주 메모리는 프로세서(10)상에서 구동하는 프로세스들에 대하여 가상 메모리로서 표현된다. 즉, 주 메모리의 페이지들은 프로그램 실행 동안에 프로세스들에 의한 사용을 위해 가상 메모리로서 할당된다. 메모리 관리는 페이지들로 물리적 메모리를 분할하고, 메모리에 액세스하는 프로세스들에 대하여 투과성인 물리적 메모리 페이지들로의 가상 주소들의 맵핑을 제공한다. 페이지 테이블(미도시)이 가상 메모리 주소와 물리적 메모리 주소 사이에서의 맵핑을 가능하게 하기 위하여 주 메모리에 유지된다. 메모리 관리 유닛(MMU)(30) 또는 프로세서(10)에 포함되는 유사한 디바이스는 자주 또는 최근에 참조된 페이지 테이블 엔트리들을 주소 변환 성능을 개선하기 위하여 프로세서(10)에 대해 로컬로 유지시킨다.
이 때문에, MMU(30)에 포함되거나 MMU(30)와 연관되는 변환 색인 버퍼(TLB)(32)는 가장 자주 또는 가장 최근에 액세스된 페이지 테이블 엔트리들을 저장한다. 주소 변환은 TLB(32)에 의하여 프로세서(10) 내에 로컬로 수행된다. TLB 엔트리가 주어진 가상 페이지 번호와 매칭된다면, 대응 물리적 페이지 번호가 TLB(32)에 의하여 제공된다. 그렇지 않으면, 종종 운영 체제 소프트웨어에 의하여, 주 메모리에 유지되는 페이지 테이블들을 통해, 상위(higher)-레벨 주소 변환이 수행된다. MMU(30)에 포함되거나 MMU(30)와 연관되는 페이지 교차 추적기(34)는 메모리 페이지 경계를 교차하는 오정렬된 메모리 액세스를 수용하기 위하여 수행되는 주소 변환들의 회수를 감소시킴으로써 주소 변환 성능을 개선한다.
페이지 교차 추적기(34)는 페이지 경계 교차 조건을 생성하는 하나 이상의 가상 또는 물리적 주소와 연관되는 주소 변환 정보를 저장한다. 즉, 프로세서(10)에 의하여 실행되는 명령이 2개의 물리적 메모리 페이지들 사이의 경계를 교차하는 메모리 영역을 참조한다면, 페이지 교차 추적기(34)는 제2 메모리 페이지와 연관되는 주소 변환 정보, 예를 들어, 제2 메모리 페이지를 식별하는 물리적 주소 또는 페이지 번호 및 가상 주소에 대한 링크를 저장한다. 후속 명령이 동일한 주소를 참조한다면, 이러한 방식으로, 페이지 교차 추적기(34)는 주소를 인지하고 대응하는 물리적 주소 정보를 제공할 수 있다. 따라서, TLB(32)는 제1 메모리 페이지와 연관되는 물리적 페이지 번호를 리트리브하기 위하여 한번의 주소 변환만을 수행한다. 제2 메모리 페이지와 연관되는 물리적 페이지 번호는 페이지 교차 추적기(34)로부터 비-변환적으로 리트리브된다. 즉, 제2 메모리 페이지와 연관되는 물리적 페이지 번호는 제2 주소 변환을 수행해야 하는 대신, 페이지 교차 추적기(34)로부터 리트리브된다. 명령은 복제되고, 개별적인 물리적 주소들에 기초하여 2개 부분들로 실행된다. 명령은 다수의 캐시 라인들이 캐시들(16, 18, 22) 중 하나에서 교차되게 하는 경우, 여러번 복제될 수 있다.
도 2는 페이지 교차 추적기(34) 및 프로세서(10)에 포함되는 로드-저장 유닛(즉, 실행 유닛들(14) 중 하나)의 다수의 스테이지들의 일 실시예를 도시한다. 본 실시예에 따라, 페이지 교차 추적기(34)는 페이지 경계 교차 조건을 생성하는 주소와 연관되는 주소 변환 정보를 저장하기 위한 레지스터를 포함한다. 대안적으로, 페이지 교차 추적기(34)는 다수의 엔트리들을 갖는 테이블일 수 있다. 어느 쪽이든, 페이지 교차 추적기(34)는 페이지 경계 교차를 야기하는 적어도 하나의 가상 또는 물리적 주소와 연관되는 주소 변환 정보를 저장함으로써 주소 변환 프로세싱을 감소시킨다.
페이지 교차 추적기(34)의 동작은 다음으로 도 3의 프로그램 논리 및 최초에 TLB(32)의 임의의 엔트리들과 매칭되지 않는 명령에 의하여 제공되는 가상 주소를 참조로 하여 설명된다. 마찬가지로, 상위 레벨 주소 변환이 가상 주소에 대응하는 물리적 주소를 획득하기 위하여 수행된다. 더욱 상세하게, 가상 주소는 가상 페이지 번호 및 오프셋을 포함할 수 있다. 가상 페이지 번호는 특정 가상 메모리 페이지를 식별하는 한편, 페이지 오프셋은 페이지 내에 위치를 식별한다. 본 실시예에서 TLB 엔트리 매칭이 최초에 존재하지 않기 때문에, 예를 들어, 도 3의 블럭(100)에 의하여 개시되는 바와 같이, 상위-레벨 주소 변환을 나타내는 제1-레벨 주소 변환 스테이지(36)가 요구된다. 상위-레벨 주소 변환 스테이지(38)는 예를 들어, 주 메모리에 유지되는 페이지 테이블 또는 프로세서(10)에 포함되는 상위-레벨 TLB(미도시)에 액세스함으로써, 가상 주소의 변환을 요청한다. 어느 방식이든, 가상 주소와 연관되는 물리적 주소가 마침내 획득된다.
예를 들어, 도 3의 블럭(102)에 의하여 도시되는 바와 같이, 주소 변환 정보가 TLB 엔트리에 저장된다. 이러한 방식으로, 주소 변환 정보는 동일한 가상 주소가 후속하여 요청되는 경우에, 더욱 쉽게 이용가능하다. 일 실시예에서, 멀티플렉서 회로와 같은 물리적 주소 선택 스테이지(40) 또는 가상 주소가 공지되는 임의의 다른 스테이지는 예를 들어, 도 3의 블럭(104)에 의하여 개시되는 바와 같이, 2개 페이지들 사이의 경계를 교차하는 물리적 메모리 영역으로 가상 주소를 변환하는지 여부를 또한 결정한다. 예를 들어, 가상 주소의 페이지 오프셋 부분은 페이지 경계 교차가 발생할지 여부를 결정하기 위한 메모리 페이지 크기 설정들과 비교된다. 주소가 메모리의 단일 페이지 내에 위치되는 메모리 영역으로 변환되면, 명령 실행은 예를 들어, 도 3의 블럭(106)에 의하여 도시되는 바와 같이, 변환된 물리적 주소에 기초하여 완료된다. 예를 들어, 캐시 액세스 스테이지(42)는 데이터 캐시(16) 또는 L2 캐시(20)가 물리적 주소에 의하여 태그화되는 라인을 포함하는지 여부를 결정하고, 만약 포함하지 않는다면, 그것을 외부 메모리로부터 리트리브한다.
그러나, 가상 주소가 다수의 메모리 페이지들에 걸친 메모리 영역을 참조한다면, 예를 들어, 명령 복제 스테이지(44)는 도 3의 블럭(108)에 의하여 개시되는 바와 같이, 명령을 복제한다. 예를 들어, 주소가 한 물리적 메모리 페이지에 위치되는 4개 바이트들 및 다른 페이지에 위치되는 4개 바이트들을 갖는 쿼드워드(quadword)를 참조한다면, 이전에 변환된 물리적 주소가 제1 메모리 페이지에 상주하는 4개 바이트들을 리트리브하는데 사용된다. 제2 메모리 페이지에 위치되는 4개 바이트들을 리트리브하기 위하여, 제2 페이지를 식별하는 물리적 주소는 예를 들어, 도 3의 블럭(110)에 의하여 도시되는 바와 같이, 상위-레벨 주소 변환 스테이지(38)에 의하여 획득된다. 복제된 명령의 제1 페이지 피스(pi ece)는 예를 들어, 도 3의 블럭(112)에 의하여 도시되는 바와 같이, 제1 메모리 페이지를 식별하는 물리적 주소에 기초하여 실행을 완료한다. 복제된 명령의 제2 페이지 피스는 예를 들어, 도3의 블럭(114)에 의하여 도시되는 바와 같이, 제2 메모리 페이지를 식별하는 물리적 주소에 기초하여 실행을 완료한다. 재기록(write back) 스테이지(46)는 명령 실행 결과들의 적절한 저장을 보장한다.
페이지 경계 교차가 검출되었기 때문에, 제2 메모리 페이지에 대하여 획득된 주소 변환 정보가 그 후의 사용을 위해 저장된다. 그러나, 상이한 TLB 엔트리에 정보를 저장하는 대신에, 예를 들어, 도 3의 블럭(116)에 의하여 도시되는 바와 같이, 정보는 페이지 교차 추적기(34)의 물리적 주소 필드(48)에 저장된다. 또한, 지시자 값은 지시자 필드(50)에 저장된다. 지시자 값은 제2 페이지의 주소 변환 정보를 포함하는 페이지 교차 추적기 엔트리를 제1 페이지의 주소 변환 정보를 포함하는 TLB 엔트리에 링크시킨다.
일 실시예에서, 지시자 필드(50)는 제1 메모리 페이지와 연관되는 주소 변환 정보를 포함하는 TLB 엔트리의 인덱스 값을 저장한다. 다른 실시예에서, 지시자 필드(50)는 제1 메모리 페이지와 연관되는 물리적 주소 또는 페이지 번호를 저장한다. 또 다른 실시예에서, 지시자 필드(50)는 경계 교차 조건을 생성하는 가상 주소를 저장한다. 본 기술분야의 당업자는 광범위한 다양한 값들이 제1 메모리 페이지와 연관되는 TLB 엔트리과 물리적 주소 정보(48)를 링크시키기 위하여 지시자 필드(50)에 저장될 수 있다는 것을 쉽게 인지할 것이다. 추가적으로, 명령 복제 스테이지(44)는 예를 들어, 페이지 경계 교차를 야기하는 물리적 주소들을 식별함으로써, 물리적 주소 선택 스테이지(40) 대신에 페이지 경계 교차를 식별할 수 있다. 메모리의 동일한 영역이 후속하여 액세스되는지 여부와 무관하게, 페이지 교차 추적기(34)는 지시자 필드(50)를 시험함으로써 경계 교차 조건을 인지한다. 이에 응답하여, 추적기(34)는 제2 페이지와 연관되는 주소 변환 정보를 제공한다.
페이지 교차 추적기(34)는 다음으로 도 4의 프로그램 논리 및 이전에 논의된 경계 교차 조건을 야기한 동일한 가상 주소를 나타내는 후속 명령을 참조하여 설명된다. 본 실시예에서, TLB(32)가 매칭 엔트리를 포함하기 때문에, 가상 주사와 연관되는 페이지 번호 또는 물리적 주소는 예를 들어, 도 4의 블럭(200)에 의하여 도시되는 바와 같이, TLB(32)에 의하여 제공된다. 물리적 주소 선택 스테이지(40)는 예를 들어, 도4의 블럭(202)에 의하여 도시되는 바와 같이, 가상 주소가 페이지 경계를 교차하는 메모리의 영역을 참조하는지 여부를 결정한다. 대안적으로, 명령 복제 스테이지(44)는 대응 물리적 주소가 페이지 경계 교차 조건을 야기하는지 여부를 결정한다. 이와 무관하게, 경계 교차 조건이 검출되지 않는다면, 명령은 예를 들어, 도 4의 블럭(204)에 의하여 도시되는 바와 같이, TLB(32)에 의하여 제공되는 물리적 주소 정보에 기초하여 실행을 완료한다.
그러나, 본 실시예에서, 가상 주소는 페이지 경계가 제1 메모리 페이지와 제2 메모리 페이지 사이에서의 교차를 야기하기 위하여 공지된다. 따라서, 예를 들어, 도 4의 블럭(206)에 의하여 도시되는 바와 같이, 명령이 이전에 개시된 것처럼 복제된다. 추가로, 페이지 교차 추적기(34)의 지시자 필드(50)는 링크가 가상 주소로 형성되었는지 여부를 결정하기 위하여 시험된다. 일 실시예에서, 매칭 TLB 엔트리 인덱스는 지시자 필드(50)에 저장된 하나 이상의 값들과 비교된다. 다른 실시예에서, TLB(32)에 의하여 제공되는 가상 주소 또는 대응 물리적 주소(또는 페이지 번호)가 지시자 필드(50)에 저장되는 하나 이상의 주소 값들과 비교된다.
이와 무관하게, 지시자 필드(50)에 저장된 정보는 추적기(34)가 원하는 물리적 주소 정보를 포함하는지 여부를 나타낸다. 유효 필드(52)가 엔트리가 무효임을 나타내지 않으면, 예를 들어, 도 4의 블럭(208)에 의하여 개시되는 바와 같이, 제2 페이지와 연관되는 물리적 주소 정보가 페이지 교차 추적기(34)로부터 리트리브된다. 유효 필드(52)는 TLB의 대응 엔트리가 무효화될 때 무효성을 나타낸다.
복제된 명령이 제1 페이지 피스는 예를 들어, 도4의 블럭(210)에 의하여 개시되는 바와 같이, TLB(32)에 의하여 제공되는 바에 따라 제1 메모리 페이지를 식별하는 물리적 주소에 기초하여 실행을 완료한다. 복제된 명령의 제2 페이지 피스는 예를 들어, 도4의 블럭(212)에 의하여 개시되는 바와 같이, 페이지 교차 추적기(34)로부터 리트리브되는 바에 따라 제2 메모리 페이지를 식별하는 물리적 주소에 기초하여 실행을 완료한다. 회로(미도시)는 그 후의 주소 변환이 페이지 교차 추적기(34)가 제2 페이지에 대한 주소 변환 정보를 포함할 때 발생하는 것을 방지한다. 따라서, 페이지 교차 추적기(34)가 페이지 경계 교차 조건을 인지할 때 단일 주소 변환만이 수행된다.
도 5는 페이지 교차 추적기(34)의 다른 실시예를 개시한다. 본 실시예에 따라, 추적기(34)는 TLB(32)의 일부로서 구현된다. TLB(32)의 각각의 엔트리는 유효 필드(54), 지시자 필드(56), 인덱스(58), 태그(tag) 필드(60) 및 2개의 물리적 주소 필드(62 및 64)를 갖는다. 태그 필드(60)는 상기 가상 주소들의 가상 주소(또는 페이지 번호)를 저장하고, 상기 가상 주소들의 물리적 주소 정보가 TLB(32)에 의하여 유지된다. 마찬가지로, 태그 필드(60)는 주어진 가상 주소에 매칭되는 기록이 TLB(32)에 저장되는지 여부를 결정하기 위하여 TLB 액세스 동안 검색된다.
제1 물리적 주소 필드(62)는 TLB(32)에 의하여 유지되는 기록을 갖는 각각의 가상 주소에 대응하는 물리적 페이지 번호 또는 완전한 주소와 같은 물리적 주소 정보를 포함한다. 두 개의 메모리 페이지들 사이에서 경계 교차를 야기하기 위하여 특정 가상 주소가 공지된다면, 제2 물리적 주소 필드(64)는 제2 메모리 페이지와 연관되는 물리적 주소 정보를 포함한다. 지시자 필드(56)는 대응 TLB 엔트리가 경계 교차 조건을 생성하는 가상 주소와 연관될 때 2개의 물리적 주소 필드들(62 및 64)을 링크시키는 하나 이상의 비트들을 포함한다.
TLB(32)의 일부로서 구현되는 페이지 교차 추적기(34)의 동작은 다음에 TLB(32)의 임의의 엔트리들을 최초에 매칭시키지 않는 명령에 의하여 제공되는 가상 주소를 참조로 하여 설명된다. 상위-레벨 주소 변환이 예를 들어, 도 3의 블럭(100)에 의하여 개시되는 바와 같이, 가상 주소에 대응하는 물리적 주소를 획득하기 위하여 수행된다. 대응 TLB 엔트리의 물리적 주소 필드(62)는 예를 들어, 도 3의 블럭(102)에 의하여 도시되는 바와 같이, 변환 결과들로 업데이트된다. 물리적 주소 선택 스테이지(40)가 가상 주소가 메모리 액세스 동안에 2개의 메모리 페이지들 사이의 경계 교차를 야기할 것으로 결정하면, 제2 상위-레벨 주소 변환이 수행된다. 대안적으로, 명령 복제 스테이지(44)는 대응 물리적 주소에 기초하여 페이지 경계 교차 조건을 검출할 수 있다. 이와 무관하게, 제2 메모리 페이지를 식별하는 물리적 주소가 예를 들어, 도 3의 블럭(110)에 의하여 도시되는 바와 같이, 제2 상위-레벨 주소 변환 동안에 획득된다. 이러한 방식으로, 2개 페이지들 모두에 대한 물리적 주소 정보가 명령 실행을 완료하기 위하여 이용가능하다.
예를 들어, 도 3의 블럭(108, 112 및 114)에 의하여 개시되는 바와 같이, 명령이 복제되고, 이전에 설명한 바와 같이 2개의 물리적 주소들을 사용하여 실행이 완료된다. 또한, 제2 메모리 페이지와 연관되는 물리적 주소 정보가 예를 들어, 도 3의 블럭(116)에 의하여 개시되는 바와 같이, 제1 페이지와 연관되는 물리적 주소 정보를 포함하는 동일한 TLB 엔트리에 저장된다. 즉, 동일한 TLB 엔트리에서, 제1 페이지와 연관되는 물리적 주소 정보가 제1 주소 필드(62)에 저장되고, 제2 페이지와 연관되는 물리적 주소 정보가 제2 주소 필드(64)에 저장된다. TLB 엔트리의 지시자 필드(56)는 2개의 물리적 주소들이 페이지 경계 교차 조건을 생성하는 가상 주소와 링크되고 연관되는 것을 나타내도록 설정된다. 이러한 방식으로, 후속 명령이 동일한 가상 또는 물리적 주소를 참조한다면, 단일 주소 변환만이 제1 메모리 페이지 및 제2 메모리 페이지와 연관되는 물리적 주소 정보를 획득하기 위하여 요구된다.
TLB(32)의 일부로서 구현되는 페이지 교차 추적기(34)의 동작은 이전에 개시된 경계 교차 조건을 생성한 동일한 가상 주소에 액세스하는 후속 명령을 참조로 하여 다음에 설명된다. TLB(32)가 액세스될 때, 매칭 엔트리가 예를 들어, 도 4의 블럭(200)에 의하여 개시되는 바와 같이, TLB(32)에 저장되는 태그 값들과 가상 주소를 비교함으로써 식별된다. 본 실시예에서, 가상 주소가 제1 메모리 페이지와 제2 메모리 페이지 사이에서 페이지 경계 교차를 야기하기 위하여 공지된다. 따라서, 예를 들어, 도4의 블럭(206)에 의하여 개시되는 바와 같이, 이전에 설명한 바에 따라 명령이 복제된다. 추가로, 매칭 TLB 엔트리의 제1 주소 필드(62)가 제1 메모리 페이지와 연관되는 물리적 주소 정보를 제공한다. 복제된 명령의 제1 페이지 피스의 실행은 예를 들어, 도 4의 블럭(210)에 의하여 개시되는 바와 같이, 제1 주소 필드(62)로부터 획득된 물리적 주소 정보에 기초하여 완료된다.
또한, 매칭 TLB 엔트리의 지시자 필드(56)는 제1 물리적 주소 필드 및 제2 물리적 주소 필드(62 및 64)가 링크됨을 나타낸다. 따라서, 예를 들어, 도 4의 블럭(208)에 의하여 개시되는 바와 같이, 제2 주소 필드(64)에 저장되는 물리적 주소 정보가 리트리브된다. 제2 주소 필드(64)로부터 리트리브되는 물리적 주소 정보는 제2 메모리 페이지를 식별한다. 복제된 명령의 제2 페이지 피스의 실행은 예를 들어, 도 4의 블럭(212)에 의하여 개시되는 바와 같이, 제2 주소 필드(64)로부터 획득되는 물리적 주소 정보에 기초하여 완료된다. 이러한 방식으로, 단일 주소 변환만이 후속 명령의 실행 동안에 수행된다.
유효 필드(54)가 TLB 엔트리가 무효함을 나타낸다면, 주소 변환은 수행되지 않으며, 도 3의 블럭들(100 및 110)에 의하여 개시되는 바와 같이, 상위-레벨 주소 변환 스테이지(38)는 이전에 설명한 바에 따라 필요한 물리적 주소들을 획득한다. 추가적으로, 지시자 필드(56)는 또한 2개의 메모리 페이지들 사이의 링크가 겹쳐쓰여지고 있는 TLB 엔트리 또는 업데이트되고 있는 주소 변환에 영향을 미치는 설계(architected) 레지스터에 응답하여 무효임을 나타낼 수 있다. 무효 페이지 교차 링크에 직면할 때, 링크된 페이지와 연관되는 주소 변환 정보는 사용되지 않는다. 대신, 그 다음의 주소 변환이 수행된다.
고려된 변형들 및 애플리케이션들의 상기 범위를 고려하여, 본 발명이 전술한 설명에 의하여 제한되지 않고, 첨부된 도면들에 의하여 제한되지도 않는다는 것을 이해해야 한다. 대신에, 본 발명은 하기의 청구항들 및 그들의 법적인 동등물들에 의해서만 제한된다.

Claims (28)

  1. 프로세서에서 오정렬된(misaligned) 메모리 액세스를 처리하는 방법으로서,
    제1 메모리 페이지와 제2 메모리 페이지 사이의 페이지 경계를 교차하는 메모리의 영역에 대한 액세스를 인지하는 단계; 및
    상기 제1 메모리 페이지 및 상기 제2 메모리 페이지와 연관되는 주소 변환 정보를 링크시키는(link) 단계
    를 포함하며, 메모리의 동일한 영역에 대한 후속 액세스에 응답하여, 상기 제1 및 제2 메모리 페이지와 연관되는 상기 주소 변환 정보가 단일 주소 변환에 기초하여 리트리브가능한(retreivable), 메모리 액세스를 처리하는 방법.
  2. 제1항에 있어서,
    상기 액세스를 인지하는 단계는 메모리 액세스 동안에 상기 페이지 경계를 교차하는 주소를 식별하는 단계를 포함하는, 메모리 액세스를 처리하는 방법.
  3. 제2항에 있어서,
    상기 제1 메모리 페이지 및 상기 제2 메모리 페이지와 연관되는 주소 변환 정보를 링크시키는 단계는 상기 제2 메모리 페이지와 연관되는 상기 주소 변환 정보에 상기 주소를 링크시키는 단계를 포함하는, 메모리 액세스를 처리하는 방법.
  4. 제2항에 있어서,
    상기 주소를 제공하는 명령을 복제하는 단계를 더 포함하며, 상기 명령의 실행은 상기 제1 메모리 페이지와 연관되는 물리적 주소에 기초하여 완료되고, 복제된 상기 명령의 실행은 상기 제2 메모리 페이지와 연관되는 물리적 주소에 기초하여 완료되는, 메모리 액세스를 처리하는 방법.
  5. 제1항에 있어서, 상기 제1 메모리 페이지 및 상기 제2 메모리 페이지와 연관되는 주소 변환 정보를 링크시키는 단계는,
    변환 색인(lookaside) 버퍼 엔트리에 상기 제1 메모리 페이지와 연관되는 가상 주소 정보 및 물리적 주소 정보를 저장하는 단계; 및
    상기 변환 색인 버퍼 엔트리를 상기 제2 메모리 페이지와 연관되는 물리적 주소 정보에 링크시키는 단계
    를 포함하는, 메모리 액세스를 처리하는 방법.
  6. 제5항에 있어서,
    상기 변환 색인 버퍼 엔트리를 상기 제2 메모리 페이지와 연관되는 물리적 주소 정보에 링크시키는 단계는 상기 제2 메모리 페이지와 연관되는 상기 물리적 주소 정보 및 상기 변환 색인 버퍼 엔트리를 식별하는 정보를 저장하는 단계를 포함하는, 메모리 액세스를 처리하는 방법.
  7. 제5항에 있어서, 상기 변환 색인 버퍼 엔트리를 상기 제2 메모리 페이지와 연관되는 물리적 주소 정보에 링크시키는 단계는,
    상기 제1 메모리 페이지와 연관되는 상기 가상 및 물리적 주소 정보와 상기 제2 메모리 페이지와 연관되는 상기 물리적 주소 정보를 상기 변환 색인 버퍼 엔트리에 저장하는 단계; 및
    상기 페이지 경계의 교차를 야기하는 상기 제1 메모리 페이지와 연관되는 가상 주소를 나타내기 위하여 상기 변환 색인 버퍼 엔트리의 하나 이상의 비트들을 설정하는 단계
    를 포함하는, 메모리 액세스를 처리하는 방법.
  8. 제1항에 있어서,
    상기 제1 및 제2 메모리 페이지와 연관되는 상기 주소 변환 정보 사이의 링크를 차단하는(breaking) 단계를 더 포함하는, 메모리 액세스를 처리하는 방법.
  9. 제8항에 있어서,
    상기 링크를 차단하는 단계는 상기 제2 메모리 페이지와 연관되는 물리적 주소 정보를 상기 제1 메모리 페이지와 연관되는 가상 주소 정보에 링크시키는 정보를 무효화시키는(invalidate) 단계를 포함하는, 메모리 액세스를 처리하는 방법.
  10. 회로를 포함하는 프로세서로서,
    상기 회로는,
    제1 메모리 페이지와 제2 메모리 페이지 사이의 페이지 경계를 교차하는 메모리 영역에 대한 액세스를 인지하고;
    상기 제1 메모리 페이지 및 상기 제2 메모리 페이지와 연관되는 주소 변환 정보를 링크시키도록
    구성되며, 동일한 메모리 영역에 대한 후속 액세스에 응답하여, 상기 제1 메모리 페이지 및 상기 제2 메모리 페이지와 연관되는 상기 주소 변환 정보가 단일 주소 변환에 기초하여 리트리브가능한, 프로세서.
  11. 제10항에 있어서,
    상기 회로는 메모리 액세스 동안에 상기 페이지 경계를 교차하도록 야기하는 주소를 식별하도록 구성되는, 프로세서.
  12. 제11항에 있어서,
    상기 회로는 상기 제2 메모리 페이지와 연관되는 상기 주소 변환 정보로 상기 주소를 링크시키도록 구성되는, 프로세서.
  13. 제11항에 있어서,
    상기 회로는 상기 주소를 제공하는 명령을 복제하도록 추가로 구성되며, 상기 명령의 실행은 상기 제1 메모리 페이지와 연관되는 물리적 주소에 기초하여 완 료되고, 복제된 상기 명령의 실행은 상기 제2 메모리 페이지와 연관되는 물리적 주소에 기초하여 완료되는, 프로세서.
  14. 제10항에 있어서,
    상기 회로는 상기 제1 메모리 페이지와 연관되는 가상 주소 정보 및 물리적 주소 정보를 변환 색인 버퍼 엔트리에 저장하도록 구성되는, 프로세서.
  15. 제14항에 있어서,
    상기 회로는 상기 제2 메모리 페이지와 연관되는 물리적 주소 정보 및 상기 변환 색인 버퍼 엔트리를 식별하는 정보를 저장하도록 구성되는, 프로세서.
  16. 제14항에 있어서,
    상기 회로는 상기 제1 메모리 페이지와 연관되는 상기 가상 및 물리적 주소 정보 및 상기 제2 메모리 페이지와 연관되는 물리적 주소 정보를 상기 변환 색인 버퍼 엔트리에 저장하고, 상기 페이지 경계의 교차를 야기하는 상기 제1 메모리 페이지와 연관되는 가상 주소를 나타내기 위해 상기 변환 색인 버퍼 엔트리의 하나 이상의 비트들을 설정하도록 구성되는, 프로세서.
  17. 제10항에 있어서,
    상기 회로는 상기 제1 메모리 페이지 및 상기 제2 메모리 페이지와 연관되는 상기 주소 변환 정보 사이의 링크를 차단하도록 추가로 구성되는, 프로세서.
  18. 제17항에 있어서,
    상기 회로는 상기 제2 메모리 페이지와 연관되는 물리적 주소 정보를 상기 제1 메모리 페이지와 연관되는 가상 주소 정보에 링크시키는 정보를 무효화시키도록 구성되는, 프로세서.
  19. 프로세서에서 주소 변환을 수행하는 방법으로서,
    제1 메모리 페이지와 제2 메모리 페이지 사이의 페이지 경계를 교차하는 메모리의 영역에 액세스하도록 구성되는 명령을 인지하는 단계;
    상기 명령에 의하여 제공되는 가상 주소를 상기 제1 메모리 페이지와 연관되는 물리적 주소로 변환하는 단계; 및
    상기 가상 주소를 상기 제2 메모리 페이지와 연관되는 물리적 주소에 링크시키는 이전에 설정된 정보에 기초하여 상기 제2 메모리 페이지와 연관되는 물리적 주소를 리트리브하는 단계
    를 포함하는, 주소 변환을 수행하는 방법.
  20. 제19항에 있어서,
    상기 명령을 복제하는 단계를 더 포함하며, 상기 명령의 실행은 상기 제1 메모리 페이지와 연관되는 상기 물리적 주소에 기초하여 완료되고, 복제된 상기 명령 의 실행은 상기 제2 메모리 페이지와 연관되는 상기 물리적 주소에 기초하여 완료되는, 주소 변환을 수행하는 방법.
  21. 제19항에 있어서, 상기 가상 주소를 변환하는 단계는,
    상기 가상 주소에 대응하는 변환 색인 버퍼 엔트리를 식별하는 단계; 및
    상기 변환 색인 버퍼 엔트리로부터 상기 제1 메모리 페이지와 연관되는 상기 물리적 주소를 리트리브하는 단계
    를 포함하는, 주소 변환을 수행하는 방법.
  22. 제21항에 있어서, 상기 제2 메모리 페이지와 연관되는 물리적 주소를 리트리브하는 단계는,
    상기 이전에 설정된 정보가 상기 변환 색인 버퍼 엔트리에 저장된 대응 정보에 매칭되는지 여부를 결정하는 단계; 및
    상기 정보 매칭에 응답하여 주소 변환 정보를 리트리브하는 단계
    를 포함하는, 주소 변환을 수행하는 방법.
  23. 제21항에 있어서, 상기 제2 메모리 페이지와 연관되는 물리적 주소를 리트리브하는 단계는,
    상기 변환 색인 버퍼 엔트리의 하나 이상의 비트들이 상기 제1 메모리 페이지와 상기 제2 메모리 페이지 사이의 링크를 나타내는지 여부를 결정하는 단계; 및
    상기 제1 메모리 페이지와 상기 제2 메모리 페이지 사이의 링크를 나타내는 상기 하나 이상의 비트들에 응답하여, 상기 제1 메모리 페이지와 연관되는 상기 물리적 주소를 포함하는 상기 변환 색인 버퍼 엔트리로부터 주소 변환 정보를 리트리브하는 단계
    를 포함하는, 주소 변환을 수행하는 방법.
  24. 회로를 포함하는 프로세서로서,
    상기 회로는,
    제1 메모리 페이지와 제2 메모리 페이지 사이의 페이지 경계를 교차하는 메모리의 영역에 액세스하도록 구성되는 명령을 인지하고;
    상기 명령에 의하여 제공되는 가상 주소를 상기 제1 메모리 페이지와 연관되는 물리적 주소로 변환하며; 그리고
    상기 가상 주소를 상기 제2 메모리 페이지와 연관되는 물리적 주소에 링크시키는 이전에 설정된 정보에 기초하여 상기 제2 메모리 페이지와 연관되는 물리적 주소를 리트리브하도록
    구성되는, 프로세서.
  25. 제24항에 있어서,
    상기 회로는 상기 명령을 복제하도록 추가로 구성되며, 상기 명령의 실행은 상기 제1 메모리 페이지와 연관되는 상기 물리적 주소에 기초하여 완료되고, 복제 된 상기 명령의 실행은 상기 제2 메모리 페이지와 연관되는 상기 물리적 주소에 기초하여 완료되는, 프로세서.
  26. 제24항에 있어서,
    상기 회로는 상기 가상 주소에 대응하는 변환 색인 버퍼 엔트리를 식별하고, 상기 변환 색인 버퍼 엔트리로부터 상기 제1 메모리 페이지와 연관되는 상기 물리적 주소를 리트리브하도록 구성되는, 프로세서.
  27. 제26항에 있어서,
    상기 회로는 상기 이전에 설정된 정보가 상기 변환 색인 버퍼 엔트리에 저장된 대응 정보에 매칭되는지 여부를 결정하고, 상기 정보 매칭에 응답하여 주소 변환 정보를 리트리브하도록 구성되는, 프로세서.
  28. 제26항에 있어서,
    상기 회로는 상기 변환 색인 버퍼 엔트리의 하나 이상의 비트들이 상기 제1 메모리 페이지와 상기 제2 메모리 페이지 사이의 링크를 나타내는지 여부를 결정하고, 상기 제1 메모리 페이지와 상기 제2 메모리 페이지 사이의 링크를 나타내는 상기 하나 이상의 비트들에 응답하여 상기 제1 메모리 페이지와 연관되는 상기 물리적 주소를 포함하는 상기 변환 색인 버퍼 엔트리로부터 주소 변환 정보를 리트리브하도록 구성되는, 프로세서
KR1020097018613A 2007-02-07 2008-02-07 주소 변환 방법 및 장치 KR101057526B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/672,066 2007-02-07
US11/672,066 US8239657B2 (en) 2007-02-07 2007-02-07 Address translation method and apparatus
PCT/US2008/053338 WO2008098140A1 (en) 2007-02-07 2008-02-07 Address translation method and apparatus

Publications (2)

Publication Number Publication Date
KR20090117798A KR20090117798A (ko) 2009-11-12
KR101057526B1 true KR101057526B1 (ko) 2011-08-17

Family

ID=39495104

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097018613A KR101057526B1 (ko) 2007-02-07 2008-02-07 주소 변환 방법 및 장치

Country Status (12)

Country Link
US (1) US8239657B2 (ko)
EP (1) EP2118753B1 (ko)
JP (2) JP2010518519A (ko)
KR (1) KR101057526B1 (ko)
CN (1) CN101606134B (ko)
BR (1) BRPI0806994A2 (ko)
CA (1) CA2675702A1 (ko)
IN (1) IN2014MN01739A (ko)
MX (1) MX2009007982A (ko)
RU (1) RU2461870C2 (ko)
TW (1) TWI381275B (ko)
WO (1) WO2008098140A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8626989B2 (en) * 2011-02-02 2014-01-07 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory
WO2013085518A1 (en) * 2011-12-08 2013-06-13 Intel Corporation A method, apparatus, and system for efficiently handling multiple virtual address mappings during transactional execution
US9460018B2 (en) 2012-05-09 2016-10-04 Qualcomm Incorporated Method and apparatus for tracking extra data permissions in an instruction cache
RU2504000C1 (ru) * 2012-07-20 2014-01-10 Открытое акционерное общество "КОНСТРУКТОРСКОЕ БЮРО "КОРУНД-М" (ОАО КБ "КОРУНД-М") Способ копирования данных в кэш-памяти и устройство для его осуществления
US8819342B2 (en) 2012-09-26 2014-08-26 Qualcomm Incorporated Methods and apparatus for managing page crossing instructions with different cacheability
US9740624B2 (en) 2012-10-08 2017-08-22 International Business Machines Corporation Selectable address translation mechanisms within a partition
US9280488B2 (en) * 2012-10-08 2016-03-08 International Business Machines Corporation Asymmetric co-existent address translation structure formats
US9355040B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Adjunct component to provide full virtualization using paravirtualized hypervisors
US9348757B2 (en) 2012-10-08 2016-05-24 International Business Machines Corporation System supporting multiple partitions with differing translation formats
US9600419B2 (en) 2012-10-08 2017-03-21 International Business Machines Corporation Selectable address translation mechanisms
US9355032B2 (en) 2012-10-08 2016-05-31 International Business Machines Corporation Supporting multiple types of guests by a hypervisor
US9804969B2 (en) * 2012-12-20 2017-10-31 Qualcomm Incorporated Speculative addressing using a virtual address-to-physical address page crossing buffer
KR102002900B1 (ko) 2013-01-07 2019-07-23 삼성전자 주식회사 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
US20140310500A1 (en) * 2013-04-11 2014-10-16 Advanced Micro Devices, Inc. Page cross misalign buffer
US9632948B2 (en) * 2014-09-23 2017-04-25 Intel Corporation Multi-source address translation service (ATS) with a single ATS resource
US11442760B2 (en) 2016-07-01 2022-09-13 Intel Corporation Aperture access processors, methods, systems, and instructions
US11106596B2 (en) * 2016-12-23 2021-08-31 Advanced Micro Devices, Inc. Configurable skewed associativity in a translation lookaside buffer
US20190163642A1 (en) 2017-11-27 2019-05-30 Intel Corporation Management of the untranslated to translated code steering logic in a dynamic binary translation based processor

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060137A (en) * 1985-06-28 1991-10-22 Hewlett-Packard Company Explicit instructions for control of translation lookaside buffers
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
JPH05298186A (ja) * 1992-04-20 1993-11-12 Nec Corp 情報処理装置
DE69428881T2 (de) 1994-01-12 2002-07-18 Sun Microsystems Inc Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt
US5765022A (en) * 1995-09-29 1998-06-09 International Business Machines Corporation System for transferring data from a source device to a target device in which the address of data movement engine is determined
US5734881A (en) * 1995-12-15 1998-03-31 Cyrix Corporation Detecting short branches in a prefetch buffer using target location information in a branch target cache
JP2000010863A (ja) * 1998-06-24 2000-01-14 Sony Computer Entertainment Inc 情報処理装置および方法、並びに提供媒体
US6681311B2 (en) * 2001-07-18 2004-01-20 Ip-First, Llc Translation lookaside buffer that caches memory type information
US7363474B2 (en) 2001-12-31 2008-04-22 Intel Corporation Method and apparatus for suspending execution of a thread until a specified memory access occurs
CN100495319C (zh) * 2003-12-23 2009-06-03 凌阳科技股份有限公司 处理器中读取未对齐资料的方法与装置
US7340582B2 (en) 2004-09-30 2008-03-04 Intel Corporation Fault processing for direct memory access address translation
US7334107B2 (en) 2004-09-30 2008-02-19 Intel Corporation Caching support for direct memory access address translation
US20060174066A1 (en) * 2005-02-03 2006-08-03 Bridges Jeffrey T Fractional-word writable architected register for direct accumulation of misaligned data
US7366869B2 (en) * 2005-03-17 2008-04-29 Qualcomm Incorporated Method and system for optimizing translation lookaside buffer entries
US20060248279A1 (en) * 2005-05-02 2006-11-02 Al-Sukhni Hassan F Prefetching across a page boundary
US7404042B2 (en) * 2005-05-18 2008-07-22 Qualcomm Incorporated Handling cache miss in an instruction crossing a cache line boundary

Also Published As

Publication number Publication date
CA2675702A1 (en) 2008-08-14
JP2013065325A (ja) 2013-04-11
JP5373173B2 (ja) 2013-12-18
CN101606134A (zh) 2009-12-16
RU2009133295A (ru) 2011-03-20
TWI381275B (zh) 2013-01-01
MX2009007982A (es) 2009-08-07
TW200842580A (en) 2008-11-01
CN101606134B (zh) 2013-09-18
EP2118753B1 (en) 2013-07-10
JP2010518519A (ja) 2010-05-27
EP2118753A1 (en) 2009-11-18
KR20090117798A (ko) 2009-11-12
RU2461870C2 (ru) 2012-09-20
WO2008098140A1 (en) 2008-08-14
IN2014MN01739A (ko) 2015-07-03
BRPI0806994A2 (pt) 2014-04-08
US20080189506A1 (en) 2008-08-07
US8239657B2 (en) 2012-08-07

Similar Documents

Publication Publication Date Title
KR101057526B1 (ko) 주소 변환 방법 및 장치
US7426626B2 (en) TLB lock indicator
US8984254B2 (en) Techniques for utilizing translation lookaside buffer entry numbers to improve processor performance
KR101019266B1 (ko) 물리적으로-태그된 동작을 사용하는 가상으로-태그된 명령 캐시
US7089398B2 (en) Address translation using a page size tag
US10191853B2 (en) Apparatus and method for maintaining address translation data within an address translation cache
US20160140042A1 (en) Instruction cache translation management
US9996474B2 (en) Multiple stage memory management
JP2009512943A (ja) 多階層の変換索引緩衝機構(TLBs)フィールドの更新
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US10545879B2 (en) Apparatus and method for handling access requests
US7472227B2 (en) Invalidating multiple address cache entries
US6990551B2 (en) System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
US6574698B1 (en) Method and system for accessing a cache memory within a data processing system
GB2307319A (en) Dual-directory virtual cache
US20140006747A1 (en) Systems and methods for processing instructions when utilizing an extended translation look-aside buffer having a hybrid memory structure
US6493792B1 (en) Mechanism for broadside reads of CAM structures
CN116830092A (zh) 用于跟踪存储器区域的内容的修改的技术
GB2395588A (en) Apparatus supporting multiple page sizes with address aliasing

Legal Events

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

Payment date: 20140730

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 8