KR20100090703A - 구성 가능한 전환 색인 버퍼 - Google Patents

구성 가능한 전환 색인 버퍼 Download PDF

Info

Publication number
KR20100090703A
KR20100090703A KR1020107012478A KR20107012478A KR20100090703A KR 20100090703 A KR20100090703 A KR 20100090703A KR 1020107012478 A KR1020107012478 A KR 1020107012478A KR 20107012478 A KR20107012478 A KR 20107012478A KR 20100090703 A KR20100090703 A KR 20100090703A
Authority
KR
South Korea
Prior art keywords
tlb
entries
configuration
setting
indicator
Prior art date
Application number
KR1020107012478A
Other languages
English (en)
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 KR20100090703A publication Critical patent/KR20100090703A/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • 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

본 발명은 전환 색인 버퍼(TLB: translation lookaside buffer)를 구성하기 위한 방법 및 시스템을 포함한다. 일 실시예에서, TLB는 제 1 부분 및 제 2 부분을 포함한다. 제 1 부분 또는 제 2 부분은 TLB 구성 표시자의 값에 응답하여 선택적으로 디스에이블될 수 있다.

Description

구성 가능한 전환 색인 버퍼{CONFIGURABLE TRANSLATION LOOKASIDE BUFFER}
본 발명은 일반적으로 전환 색인 버퍼들에 관한 것이다.
기술의 진보는 개인 컴퓨팅 장치들을 더 작고 더 강력하게 만들었다. 예컨대, 소형 경량이어서 사용자가 용이하게 휴대할 수 있는, 휴대용 무선 전화들, 개인휴대단말들(PDA), 및 페이징 장치들과 같은, 무선 컴퓨팅 장치들을 포함하는 다양한 휴대용 개인 컴퓨팅 장치들이 현재 존재하고 있다. 특히, 셀룰라 전화들 및 IP 전화들과 같은, 휴대용 무선 전화들은 무선 네트워크들을 통해 음성 및 데이터 패킷들을 통신할 수 있다. 게다가, 이러한 많은 무선 전화들은 여기에 통합되는 다양한 타입들의 장치들을 포함한다. 예컨대, 무선 전화는 또한 디지털 스틸 카메라, 디지털 비디오 카메라, 디지털 레코더, 및 오디오 파일 플레이어를 포함할 수 있다. 또한, 이러한 무선 전화들은 인터넷을 액세스하기 위하여 사용될 수 있는 웹 브라우저 애플리케이션과 같은 소프트웨어 애플리케이션들을 포함하는 실행가능 명령들을 처리할 수 있다. 따라서, 이들 무선 전화들은 중요한 컴퓨팅 능력들(capability)을 포함할 수 있다.
휴대용 컴퓨팅 장치에서 실행되는 프로세스들은 처리를 위한 물리적 어드레스들로 전환되어야 하는 가상 어드레스들을 사용하여 데이터 및 명령들을 참조(reference)할 수 있다. 전환 색인 버퍼들(TLB: Translation lookaside buffer)은 가상 어드레스들을 물리적 어드레스들로 빠르게 전환시키기 위한 데이터를 저장할 수 있으며, 가상 어드레스들을 전환시키는 것과 연관된 지연들을 감소시킴으로써 애플리케이션 성능(application performance)을 개선시킬 수 있다. 그러나, 전력 소비는 또한 TLB의 동작에 의하여 증가될 수 있다. 전력 소비가 증가하면 배터리 교체 또는 재충전이 필요하기전에 휴대용 개인 컴퓨팅 장치의 동작 시간이 감소될 수 있다.
특정 실시예에서는 적어도 하나의 전환 색인 버퍼(TLB: translation lookaside buffer) 구성 표시자를 수신하는 단계를 포함하는 방법이 개시된다. 본 방법은 또한 TLB 구성 표시자의 값에 응답하여 TLB의 탐색가능한 엔트리들의 수를 수정하는 단계를 포함한다.
다른 특정 실시예에서는 전환 색인 버퍼(TLB) 미스 레이트(miss rate)를 결정하는 단계를 포함하는 방법이 개시된다. 본 방법은 TLB 미스 레이트가 임계치를 초과하는 것을 검출하는 단계를 포함한다. 또한, 본 방법은 TLB 미스 레이트가 임계치를 초과하였다는 것을 검출한후에 TLB 크기를 증가시키기 위한 명령을 전송하는 단계를 포함한다.
또 다른 특정 실시예에서는 메모리에 저장된 전환 색인 버퍼(TLB) 구성 비트를 포함하는 시스템이 개시된다. 본 시스템은 또한 제 1 부분 및 제 2 부분을 포함하는 TLB를 포함한다. 제 1 부분은 TLB 구성 비트의 값에 응답하여 선택적으로 디스에이블(disable)된다.
또 다른 특정 실시예에서는 컴퓨터 판독가능 매체가 개시된다. 컴퓨터 판독가능 매체는 제 1 필드 및 제 2 필드를 포함하는 구성 레지스터를 포함한다. 제 2 필드는 전환 색인 버퍼(TLB) 구성 값을 포함한다. TLB 구성 값은 제 1 세팅 또는 제 2 세팅을 식별한다. TLB 구성 값이 제 1 세팅을 식별할때 TLB는 탐색가능한 엔트리들의 제 1 수를 가지며, 값이 제 2 세팅을 식별할때 TLB는 탐색가능한 엔트리들의 제 2 수를 가진다.
개시된 실시예들에 의하여 제공되는 하나의 특정 장점은 탐색 가능한 TLB 엔트리들의 수를 선택적으로 디스에이블함으로써 전력 소비를 감소시키는 것이다.
본 발명의 다른 양상들, 장점들 및 특징들은 이하의 단락들, 즉 도면의 간단한 설명, 상세한 설명 및 청구범위를 포함하는 전체 출원을 검토한후에 더욱더 명백해 질 것이다.
도 1은 구성가능한 전환 색인 버퍼(TLB)를 포함하는 시스템의 특정한 예시적인 실시예의 기능 다이어그램이다.
도 2는 구성가능한 TLB을 포함하는 시스템의 제 2 예시적인 실시예의 기능 다이어그램이다.
도 3은 TLB를 구성하기 위한 방법의 특정한 예시적인 실시예의 흐름도이다.
도 4는 TLB를 구성하기 위한 방법의 제 2의 예시적인 실시예의 흐름도이다.
도 5는 구성가능한 TLB를 포함하는 휴대용 통신 장치의 블록 다이어그램이다.
도 1를 참조하면, 구성가능한 TLB를 포함하는 시스템의 특정한 예시적인 실시예가 도시되며 일반적으로 도면부호 100으로 표시된다. 시스템(100)은 운영체제(102), 프로세서(104), 인터럽트 제어기(106) 및 소프트웨어 애플리케이션(108)을 포함한다. 운영체제(102)는 소프트웨어 애플리케이션(108)으로부터의 입력 및 인터럽트 제어기(106)로부터의 입력에 응답한다. 프로세서(104)는 운영체제(102)에 응답하며, 인터럽트 제어기(106)에 제공되는 인터럽트 출력을 제공한다.
특정 실시예에서, 프로세서(104)는 TLB 크기 표시자(indicator)(112)를 포함하는, 다수의 구성가능한 필드들을 포함하는 구성 레지스터(110)를 포함한다. 프로세서(104)는 또한 구성 레지스터(configuration register)(110) 및 메모리 관리 유닛(MMU)(116)에 응답하는 전환 색인 버퍼(TLB) 크기 선택 로직 회로(114)를 포함한다. 프로세서(104)는 TLB 크기 선택 로직 회로(114) 및 MMU(116)에 응답하는 TLB(118)를 추가로 포함한다.
특정 실시예에서, 프로세서(104)는 TLB(118)에서 이용가능한 탐색가능 엔트리들(searchable entry)의 수를 제어하도록 동작가능하다. 프로세서(104)는 운영체제(102)로부터의 신호(126)를 통해 명령을 수신하고 명령(126)에 응답하여 TLB 크기 표시자(112)의 값을 업데이트하도록 구성될 수 있다. TLB 크기 선택 로직(114)은 TLB 크기 표시자(112)의 값과 MMU(116)로부터 수신된 입력에 기초하여 TLB(118)에 출력을 제공하기에 적합할 수 있다.
TLB(118)는 예시된 바와같이 제 1 부분(120), 제 2 부분(122) 및 제 3 부분(124)과 같은 적어도 2개의 부분들을 포함한다. 특정 실시예에서, TLB(118)는 제 1 부분 및 제 2 부분을 포함한다. 다른 실시예에서, TLB(118)는 제 1 부분, 제 2 부분, 제 3 부분 및 제 4 부분을 포함한다. TLB(118)는 특정 애플리케이션 및 시스템 설계 제약들에 따라 다수의 부분들을 포함할 수 있고 5개 이상의 부분들을 포함할 수 있다.
각각의 TLB 부분(120-124)은 가상 어드레스들을 물리적 어드레스들로 전환하기 위한 데이터를 저장하는 하나 이상의 TLB 엔트리들을 포함한다. 특정 실시예에서, TLB(118)는 TLB(118)의 엔트리들의 각각이 소프트웨어 프로그램에 의하여 파퓰레이트(populate)될 수 있도록 소프트웨어 프로그램가능하다. 더욱이, TLB 부분들(120-124) 중 하나 이상은 TLB 크기 선택 로직 회로(114)의 출력에 기초하여 선택적으로 디스에이블 또는 인에이블될 수 있다. 특정 실시예에서, 프로세서(104)는 전환될 가상 어드레스가 인에이블된 TLB 부분들(120-124) 중 임의의 엔트리와 매칭되지 않을 때 인터럽트 제어기(106)에 TLB 미스(miss) 신호(150)를 전송하도록 구성된다.
특정 실시예에서, 인터럽트 제어기(106)는 하나 이상의 TLB 미스 신호들(150)을 수신하고 TLB 미스 신호들의 각각에 응답하여 인터럽트 또는 예외(exception) 핸들링(handling)을 개시하기에 적합하다. 인터럽트 제어기(106)는 수신된 TLB 미스 신호들(150)에 응답하여 운영체제(102)에 제어 출력(142)을 제공하도록 구성될 수 있다.
특정 실시예에서, 운영체제(102)는 하나 이상의 소프트웨어 애플리케이션들(108)로부터, 인터럽트 제어기(106)로부터 또는 이들의 임의의 조합으로부터 수신되는 데이터에 기초하여 TLB(118)의 선택된 크기를 결정하기 위하여 실행가능한 TLB 크기 모듈(130)을 포함한다. TLB 크기 모듈(130)은 TLB 미스 데이터를 제공하는 인터럽트 제어기(106)로부터의 제어 출력(142)에 기초하여 TLB 미스 레이트를 평가하기 위하여 실행가능한 TLB 미스 레이트 평가 모듈(132)을 포함할 수 있다. 특정 실시예에서, 운영체제(102)는 결정된 TLB 미스 레이트에 기초하여 TLB 크기, 인에이블된 TLB 부분들(120-124)의 수, 또는 TLB(118)의 TLB 엔트리들의 수를 자동적으로 모니터링하고 업데이트하도록 구성된다.
예시적인 실시예에서, 프로세서(104)는 인터리빙, 멀티스레딩 및 파이프라이닝된 프로세서(interleaved multithreaded pipelined processor)이다. 구성 레지스터(110) 및 TLB(118)는 프로세서(104)의 상이한 처리 스레드들간에 공유될 수 있다. 운영체제(102)는 무선 통신 장치에서의 멀티스레딩 처리를 지원하기에 적합할 수 있다. 특정 실시예에서, 운영체제(102)는 LINUX®-타입 운영체제이다.
동작 동안, 운영체제(102)는 TLB 구성 파라미터들을 지정하는(designate) 하나 이상의 소프트웨어 애플리케이션들(108)로부터 하나 이상의 입력들(104)을 수신할 수 있다. 예시적인 비제한 예로서, 입력들(140)은 각각의 소프트웨어 애플리케이션(108)에 의하여 요구되거나 선호되는 TLB 엔트리들의 수를 표시할 수 있다. 운영체제(102)는 또한 인터럽트 제어기(106) 또는 다른 장치로부터 TLB 미스 정보를 수신할 수 있고 TLB 미스 레이트 평가 모듈(132)에서 TLB 미스 레이트를 결정할 수 있다. TLB(118)가 TLB의 탐색가능한 엔트리에 저장되지 않는 가상 어드레스의 전환을 위한 질의(query)를 수신할때 발생하는 각각의 TLB 미스는 특정 가상 어드레스에 대응하는 물리적 어드레스가 페이지 테이블(도시안됨)을 탐색함으로써 위치 결정된후 TLB(118)의 엔트리에 로드되는 동안 처리 지연을 유발한다. TLB 미스 레이트는 TLB 미스들을 야기하는 TLB 질의들의 백분율, TLB 미스들 대 비-TLB 미스들(즉, TLB "히트들")의 비율, 단위 시간당 TLB 미스들의 수, 또는 TLB 성능을 반영한 다른 정보를 표시할 수 있다.
운영체제(102)는 소프트웨어 애플리케이션들(108)로부터 수신되는 데이터, TLB 미스 레이트 데이터 또는 이들의 임의의 조합에 기초하여 TLB 크기 모듈(130)의 TLB 크기 세팅(setting)을 결정할 수 있다. 특정 실시예에서, 운영체제(102)는 신호(126)를 통해 프로세서(104)에 결정된 TLB 크기 세팅을 통신한다.
예컨대, 예시적인 실시예에서, TLB 크기 모듈(130)은 하나 이상의 소프트웨어 애플리케이션들(108)로부터 TLB 엔트리들의 수에 대한 표시(indication)를 수신하고, TLB 미스들로 인한 허용가능한 낮은 수의 처리 지연들로 실행하는 소프트웨어 애플리케이션(108)에 충분한 수의 TLB 엔트리들을 제공하도록 인에이블되는 TLB 부분들의 수를 결정할 수 있다. TLB 크기 모듈(130)은 또한 TLB 미스 레이트 평가 모듈(132)로부터 수신되는 TLB 미스 레이트 데이터와 하나 이상의 임계치들을 비교할 수 있다. 예컨대, 만일 TLB 미스 레이트가 상부 임계치를 초과하면, TLB 크기 모듈(130)은 하나 이상의 추가 TLB 부분들(120-124)이 TLB 미스 레이트를 감소시키고 처리 성능을 개선하도록 인에이블되어야 한다는 것을 결정할 수 있다. 그러나, 만일 TLB 미스 레이트가 하부 임계치 이하이면, TLB 크기 모듈(130)은 하나 이상의 TLB 부분들(120-124)이 증가된 TLB 미스들로 인하여 성능을 현저하게 감소시키지 않고 전력 소비를 감소시키도록 디스에이블되어야 한다.
특정 실시예에서, 운영체제(102)에 의하여 생성되는 신호(126)는 TLB 크기 표시자(112)의 값을 세팅하기 위한 명령을 포함한다. 예시적인 실시예에서, 운영체제(102)는 인에이블된 TLB 부분들(120-124)의 수를 증가시키거나 또는 감소시키도록 프로세서(104)에 명령한다. 다른 실시예에서, 운영체제(102)는 특정 수의 TLB 부분들(120-124)을 인에이블하도록 프로세서(104)에 명령하거나 또는 인에이블될 특정 TLB 부분들(120-124)을 지정한다. 특정 실시예에서, 운영체제(102)는 TLB 크기 표시자(112)에 특정 값을 기록하도록 프로세서(104)에 명령한다.
예시적인 예로서, TLB(118)가 단지 2개의 부분들을 포함하는 실시예에서, 제 1 TLB 부분은 항상 인에이블될 수 있으며, TLB 크기 표시자(112)는 단일 비트 값일 수 있다. 운영체제(102)는 제 2 TLB 부분을 디스에이블하기 위하여 TLB 크기 표시자(112)에 논리 "1" 값을 기록하고 제 2 TLB 부분을 인에이블하기 위하여 TLB 크기 표시자(112)에 논리 "0" 값을 기록하도록 프로세서(104)에 명령할 수 있다. 다른 예로서, TLB(118)가 3개 이상의 TLB 부분들을 포함하는 실시예에서, 운용체제(102)는 인에이블될 TLB 부분들의 수에 대한 2진 표현(binary representation)인 값을 TLB 크기 표시자(112)에 프로그래밍하도록 프로세서(104)에 명령할 수 있다. 예시를 위하여, TLB 크기 표시자(112)는 4개의 세팅들을 표시하는 2 비트를 포함할 수 있으며, 각각의 세팅은 상이한 수의 인에이블된 TLB 부분들, 그리고 순차적으로 상이한 수의 탐색가능한 TLB 엔트리들과 관련된다. 다른 예로서, TLB 크기 표시자(112)는 운영체제(102)에 의하여 특정 TLB 부분들을 선택적으로 인에이블 또는 디스에이블하기 위한 각각의 TLB 부분에 대한 전용 비트를 포함할 수 있다.
TLB 크기 표시자(112)의 세팅에 응답하여, TLB 크기 선택 로직 회로(114)는 TLB(118)에 명령 신호를 제공한다. 동작동안, TLB 크기 선택 로직 회로(114)로부터의 명령 신호 및 MMU(116)로부터의 입력에 기초하여, TLB(118)는 표시된 TLB 부분들(120-124)과 같은 TLB 부분들 중 하나 이상의 부분을 사용하도록 구성된다. 모든 TLB 부분들(120-124) 보다 적은 것이 사용된다는 것을 TLB 크기 선택 로직(114)으로부터의 명령 신호가 표시할때, TLB(118)는 프로세서(104)의 전력 및 자원들을 보존하기 위하여 디스에이블 또는 미사용된 TLB 부분들을 비활성화하고 선택적으로 파워-다운(power-down)시킬 수 있다.
일 실시예에서, 제 1 TLB 부분(120)은 구성 레지스터(110)에 저장된 TLB 크기 표시자(112)내의 하나 이상의 비트들과 같이 메모리에 저장된 TLB 구성 비트의 값에 응답하여 선택적으로 디스에이블될 수 있다. 프로세서(104)는 메모리에 연결되는 입력에 응답하는, TLB 크기 선택 로직 회로(114)와 같은 로직 엘리먼트를 포함한다. 로직 엘리먼트는 TLB(118)에 연결된 출력을 가지며, TLB 부분들(120, 122, 124) 중 임의의 부분은 로직 엘리먼트의 출력에 응답하여 선택적으로 디스에이블될 수 있다. 특정 실시예에서, 제 1 TLB 부분(120)은 TLB(118)의 엔트리들의 1/2을 포함할 수 있다. 다른 실시예에서, 제 1 TLB 부분(120)은 TLB(118)의 엔트리들의 1/3, 1/4 또는 임의의 다른 부분을 포함할 수 있다. 또한, 제 1 TLB 부분(120)은 제 2 TLB 부분(122)과 동일한 크기 또는 상이한 크기를 가질 수 있다.
소프트웨어 애플리케이션(108)을 포함하는 시스템(100)은 다양한 동작 모드에서 사용될 수 있다. 제 1 동작모드에서, 소프트웨어 애플리케이션(108)은 실행을 위하여 단지 단일 TLB 엔트리만을 필요로 할 수 있다. 제 1 동작 모드에서, 소프트웨어 애플리케이션(108)은 TLB(118)의 단지 단일 엔트리(또는 단일 부분)가 사용되도록 구성 레지스터(110)내의 TLB 크기 표시자(112)를 세팅하도록 운영체제(102)에 명령할 수 있다. 이러한 제 1 동작 모드에서, 소프트웨어 애플리케이션(108)은 일반적으로 실행될 수 있으며, TLB(118)는 TLB(118)의 단지 단일 엔트리가 활용되기 때문에 저전력 및 효율적인 방식으로 사용될 수 있다. TLB(118)의 단일 엔트리를 사용하도록 구성될 수 있는 소프트웨어 애플리케이션(108)의 예는 MPEG(Moving Picture Experts Group)-1 Audio Layer 3(MP3)-타입 애플리케이션이다.
제 2 동작 모드에서, 소프트웨어 애플리케이션(108)은 다수의 TLB 엔트리를 필요로 할 수 있으며, 심지어 TLB(118)의 모든 엔트리들이 활용하는 것을 필요로 할 수 있다. 이러한 제 2 동작 모드에서, 소프트웨어 애플리케이션(108)의 성능 요건들(performance requirement)에 따라, 다수의 TLB 엔트리들이 인에이블되고 모든 TLB 엔트리들이 인에이블될 수 있다. 소프트웨어 애플리케이션(108)이 프로세서(104)에 의하여 실행가능한 프로그램 코드를 포함하고 소프트웨어 애플리케이션(108)이 단지 예시적인 목적으로 개별적으로 예시된다는 것이 이해되어야 한다.
도 2를 참조하면, 구성가능한 TLB를 포함하는 시스템의 제 2 특정 실시예가 도시되며 일반적으로 도면부호 200으로 표시된다. 특정 실시예에서, 시스템(200)은 도 1의 시스템(100)의 일부분을 예시한다. 시스템(200)은 전환 색인 버퍼(TLB: translation lookaside buffer)(210), TLB 구성 표시자(208), 메모리 관리 유닛(MMU)(210), TLB 구성 로직(212), 출력 로직 회로(214) 및 전력 로직 회로(216)를 포함한다. TLB 구성 로직(212)은 TLB 구성 표시자(208) 및 MMU(210)로부터의 입력을 수신하도록 연결된다. 특정 실시예에서, TLB 구성 표시자(208)는 도 1의 TLB 크기 표시자(112)이다. TLB 구성 로직(212)은 전력 로직 회로(216) 및 TLB(202)에 출력 제어 신호들을 제공하도록 연결된다. TLB(202)는 출력(244)을 생성하도록 구성되는 출력 로직 회로(214)에 다수의 출력들을 제공하도록 연결된다.
TLB(202)는 제 1 대표(representative) 부분(204) 및 제 2 대표 부분(206)을 포함한다. 제 1 대표 부분(204)은 제 1의 다수의 엔트리들(220)을 포함한다. 제 1의 다수의 엔트리들(202)의 각각은 제 1 유효 필드(222), 어드레스 공간 식별자(ASID) 필드(224), 가상 페이지 수(VPN: virtual page number) 필드(226), 및 물리 페이지 수(PPN: physical page number) 필드(228)를 포함한다. 유사하게, TLB(202)의 제 2 대표 부분(206)은 제 2의 다수의 엔트리들(234)을 포함한다.
제 1 대표 부분(204)은 또한 제 1의 수의 다수의 엔트리들(220)의 탐색을 선택적으로 인에이블 또는 디스에이블하기 위하여 TLB 구성 로직(212)에 응답하는 제 1 인에이블 입력(218)을 포함한다. 제 2 대표 부분(206)은 제 2의 다수의 엔트리들(234)의 탐색을 선택적으로 인에이블 또는 디스에이블하기 위하여 TLB 구성 로직(212)에 응답하는 제 2 인에이블 입력(230)을 포함한다.
또한, TLB(202)의 제 2 대표 부분(206)은 제 2 대표 부분(206)에 대한 전력을 선택적으로 활성화 또는 비활성화시키기 위하여 전력 로직 회로(216)에 응답하는 전력 입력(232)을 포함한다. 비록 도시되지 않았을지라도, 특정 실시예에서, 제 1 대표 부분(204)은 또한 TLB(202)의 제 1 대표 부분(204)에 대한 전력을 선택적으로 활성화 또는 비활성화시키기 위하여 전력 로직 회로(216)에 응답하는 입력을 포함할 수 있다.
출력 로직 회로(214)는 선택 회로(240) 및 멀티플렉서(242)를 포함한다. 멀티플렉서(242)는 TLB(202)로부터의 다수의 출력들의 각각에 응답한다. 선택 회로(240)는 TLB 구성 로직(212)에 응답하며, 결과적인 출력(244)으로서 TLB(202)의 선택된 엔트리를 선택적으로 인에이블하기 위하여 멀티플렉서(242)를 제어한다.
동작중에, TLB 구성 로직(212)은 TLB 구성 표시자(208) 및 MMU(210)로부터의 입력을 수신한다. TLB 구성 로직(212)은 수신된 입력들에 기초하여 제 1 인에이블 입력(218), 제 2 인에이블 입력(230), 전력 로직 회로(216) 및 출력 로직 회로(214)에 제공되는 출력 신호들을 생성한다.
예시된 부분들(204, 206)과 같은, TLB(202)의 하나 이상의 부분들은 TLB 구성 로직(212)의 출력 신호들에 기초하여 동적으로 인에이블 또는 디스에이블될 수 있다. TLB 부분들(204, 206) 중 하나 이상이 디스에이블될때, 디스에이블된 부분에 대한 전력은 또한 전력 자원들을 추가로 보존하기 위하여 전력 로직 회로(216)를 통해 턴-오프(turn off)될 수 있다. 또한, TLB(202)의 하나 이상의 부분들이 디스에이블되거나 또는 비활성화될때, 이들 부분들의 출력은 무효(invalid)로 된다. 따라서, 출력 로직 회로(214)내의 선택 회로(240)는 멀티플렉서(242)를 통해 비활성화된 부분의 선택을 디스에이블함으로써 TLB(202)의 디스에이블된 부분들로부터의 무효 출력 신호들을 마스크 오프(mask off)하도록 멀티플렉서(242)를 제어하도록 구성되어, 결과적인 출력(244)은 단지 활성 상태에 있는 TLB(202)의 무효로 선택된 엔트리들을 전파시킬 수 있다. 따라서, 특정 실시예에서, 멀티플렉서(242)는 TLB(202)의 출력들에 응답하며, 또한 TLB 구성 로직(212)에 의하여 표시되는, 구성 레지스터들내의 구성 비트 세팅에 응답하여 인에이블되는 TLB(202)의 출력들을 선택한다. TLB(202)의 디스에이블된 부분들의 출력이 논리 "0" 값 또는 고-임피던스 상태와 같은 특정 값에 제한되는 다른 실시예에서, 출력 로직 회로(214)는 TLB 구성 로직(212)에 응답하는 선택 로직(240)을 포함하지 않을 수 있으며, 대신에 TLB(202)의 단지 활성 출력들만을 동적으로 선택하도록 구성된 노드(node)와 같은 다른 출력 선택 로직을 포함할 수 있다.
특정한 예시적인 실시예에서, 제 1 대표 부분(204)은 32개의 엔트리들(220)을 포함하며, 제 2 대표 부분(206)은 32개의 엔트리들(234)을 포함한다. TLB 구성 표시자(208)는 모든 64개의 TLB 엔트리들(220, 234)이 탐색을 위하여 인에이블된다는 것을 디폴트(default) 논리 "0" 값이 표시하고 단지 제 1의 32개의 엔트리들(220)(제 1 부분(204)의 엔트리들)만이 탐색을 위하여 인에이블된다는 것을 논리 "1" 값이 표시하도록 구성될 수 있다. MMU(210)는 TLB 탐색이 수행될때 출력(250)에서 논리 "1"을 제공하고 그렇치 않은 경우에 논리 "0"을 제공하도록 구성될 수 있다. TLB 구성 로직(212)은 예컨대 TLB 구성 표시자(208)가 반전 입력에 연결되고 MMU 출력(250)이 제 2 입력에 연결된 AND 엘리먼트의 출력을 통해, MMU 출력(250)이 "1"이고 TLB 구성 표시자(208)가 "0"일때, 논리 "1"인 출력(252)을 생성할 수 있다.
특정 예시적인 실시예에서, TLB 구성 표시자(208)가 디폴트 "0" 값(예컨대, 64개의 탐색가능한 엔트리들)으로부터 "1"(예컨대, 32개의 탐색가능한 엔트리들)로 리셋될때, 단계들은 제 2 대표 부분(206)의 임의의 유효 엔트리들이 제 2 대표 부분(206)을 디스에이블하기전에 제 1 대표 부분(204)으로 이전(transfer)되도록 수행될 수 있다. 예컨대, 대응하는 유효 필드(222)에서 "1"을 가진 엔트리들과 같은, 제 2 대표 부분(206)의 모든 유효 엔트리들은 제 1 대표 부분(204)의 미사용 엔트리에 복사될 수 있다. 유사하게, TLB 구성 표시자(208)가 "1"로부터 "0"으로 리셋될때, 제 2 대표 부분(206)의 엔트리들(234) 각각의 유효 필드(222)는 새로이-인에이블된 엔트리가 무효라는 것을 표시하기 위하여 "0"으로 세팅될 수 있다. 이러한 동작들은 하드웨어, 소프트웨어 또는 이들의 임의의 조합에 의하여 제어될 수 있다.
도 3을 참조하면, TLB를 구성하기 위한 방법의 특정한 예시적인 실시예가 도시되며 일반적으로 도면부호 300으로 표시된다. 방법에 있어서, 적어도 하나의 전환 색인 버퍼(TLB) 구성 표시자가 수신된다(단계 302). 특정 실시예에서, TLB 구성 표시자는 도 1의 프로세서(104)와 같이 구성가능한 TLB를 포함하는 프로세서에서 수신된다. TLB 구성 표시자는 도 1의 운영체제(102)와 같은 운영체제로부터 프로세서에서 수신될 수 있다. TLB 구성 표시자는 임계치를 초과하는 TLB 미스 레이트에 응답하여, 소프트웨어 애플리케이션에 응답하여, 어드레스 전환에 관한 하나 이상의 다른 이벤트들에 응답하여, 또는 이의 임의의 조합에 응답하여 결정될 수 있다. 특정 실시예에서, TLB 구성 표시자는 TLB가 제 1의 수의 이용가능한 엔트리들을 가지거나 또는 제 2의 수의 이용가능한 엔트리들을 가지는지의 여부를 결정한다.
TLB 구성 표시자의 값에 기초하여 탐색가능한 TLB 엔트리들의 수를 증가시켜야 하는지 또는 감소시켜야 하는지에 관한 결정이 이루어질 수 있다(단계 304). 특정 실시예에서는 현재의 TLB 구성과 프로세서 구성 레지스터의 TLB 크기 필드의 하나 이상의 비트 값들을 비교함으로써 결정이 이루어질 수 있다. 대안 실시예에서는 도 1의 TLB 크기 선택 로직 회로(114)에 의하여 결정이 이루어질 수 있다.
특정 실시예에서, 결정 단계(305)에서 탐색가능한 TLB 엔트리들의 수가 증가될때, TLB의 부분은 탐색가능한 엔트리들의 수를 증가시키도록 인에이블될 수 있다(단계 306). 특정 실시예에서, 새로이 인에이블된 TLB의 부분은 TLB 부분이 디스에이블될때 이전의 동작 기간으로부터 데이터를 저장할 수 있으며, 따라서 새로이 인에이블된 엔트리들의 데이터는 신뢰성이 떨어질 수 있다. 따라서, 무효 표시자는 인에이블되는 TLB의 부분의 엔트리들 각각에 대하여 세팅될 수 있다(단계 308). 예시적인 실시예에서, TLB는 도 2의 TLB(202)일 수 있으며, 무효 표시자는 각각의 TLB 엔트리의 유효 필드(222)에 저장된 "0" 비트 값일 수 있다.
대안적으로, 결정 단계(305)에서 탐색가능한 TLB 엔트리들의 수가 감소되는 경우에, TLB의 부분은 탐색가능한 엔트리들의 수를 감소시키도록 인에이블될 수 있다(단계 310). 예시적인 예에서, 디스에이블 동작은 TLB를 파워-오프시키지 않고 탐색을 위하여 이용가능하지 않은 TLB의 선택된 부분을 렌더링(rendering)하는 단계를 포함할 수 있다. 다른 실시예에서, TLB의 선택된 부분은 디스에이블된후에 파워-오프될 수 있다. 예컨대, TLB 크기가 낮은 TLB 미스 레이트에 응답하여 감소될때, TLB의 선택된 부분은 TLB의 디스에이블된 부분을 파워-오프하기전에 새로운 TLB 미스 레이트가 허용가능하도록 한 기간동안 디스에이블 상태를 유지할 수 있다. 또 다른 실시예에서, TLB의 부분을 디스에이블하는 단계는 TLB의 부분을 파워-오프하는 단계를 포함할 수 있다.
특정 실시예에서, 디스에이블되는 TLB의 부분은 TLB에서 유지되어야 하는 하나 이상의 계속 프로세스들(continuing process)과 연관된 어드레스 전환 데이터를 포함할 수 있다. 데이터는 단계(312)에 도시된 바와같이 디스에이블되는 TLB의 부분의 적어도 하나의 엔트리로부터 TLB의 적어도 하나의 다른 부분으로 복사될 수 있다. 이러한 방식에서, TLB의 디스에이블된 부분들로부터의 데이터는 미래의 사용을 위하여 보존될 수 있다.
도 4를 참조하면, 구성가능한 TLB를 사용하기 위한 방법의 예시적인 실시예가 도시되며 일반적으로 도면부호 400으로 표시된다. 특정 실시예에서, 방법(400)은 도 1의 운영체제(102)에 의하여 수행될 수 있다. 방법은 TLB 미스 레이트를 결정하는 단계(402)를 포함한다. 특정 실시예에서, TLB 미스 레이트는 TLB의 전체 수와 비교하여 예외(exception)를 야기하는 시도된 TLB 질의들의 수에 기초한다. 예시적인 실시예에서, TLB 미스 레이트는 TLB 미스들에 응답하여 생성되는 인터럽트들을 수신하는 인터럽트 제어기로부터의 데이터를 사용하여 결정될 수 있다.
단계(404)로 계속하면, TLB 미스 레이트는 임계치를 초과하는 것이 검출된다. 단계(406)로 진행하면, TLB 크기를 증가시키기 위한 명령은 TLB 미스 레이트가 임계치를 초과하였다는 것을 검출한후에 전송된다. 예시적인 실시예에서, 명령은 도 1의 프로세서(104)와 같이 구성가능한 TLB를 포함하는 프로세서에 전송될 수 있다.
단계(408)로 진행하면, 특정 실시예에 있어서, 적어도 하나의 구성 표시자는 TLB의 인에이블된 부분들의 수를 표시하기 위하여 구성 레지스터에 세팅된다. 예시적인 실시예에서, 적어도 하나의 구성 표시자는 도 1의 TLB 크기 표시자 필드(112)와 같은 TLB 크기 표시자 필드의 하나 이상의 비트들을 포함한다. 적어도 하나의 구성 표시자는 명령에 응답하여, 예컨대 도 1의 운영체제(102)로부터 전송되는 신호(126)에 응답하여 세팅될 수 있다.
도 5는 구성가능한 TLB를 포함하며 일반적으로 도면부호 520으로 표시되는 휴대용 통신 장치의 비 제한 실시예를 도시한다. 도 5에 예시된 바와같이, 휴대용 통신 장치(520)는 디지털 신호 프로세서(524) 및 구성 레지스터(580)를 포함하는 온-칩 시스템(522)을 포함한다. 특정한 예시적인 실시예에서, 구성 레지스터(580)는 전환 색인 버퍼(TLB)(590)에서 탐색가능한 엔트리들의 수를 결정하기 위하여 하나 이상의 표시자들을 포함한다. TLB(590)는 시스템 요구사항들(system demand) 및 전력 사용 고려사항들(consideration)에 따라 선택적으로 인에이블 또는 디스에이블될 수 있는 다수의 TLB 부분들을 포함한다. 특정 실시예에서, 구성 레지스터(580) 및 TLB(590)는 디지털 신호 프로세서(524)의 컴포넌트들일 수 있다. 예시적인 실시예에서, TLB(590) 및 구성 레지스터(580)는 실질적으로 도 1의 구성 레지스터(110) 및 TLB(118)와 관련하여 개시된 바와같이 동작할 수 있다.
도 5는 디스플레이 제어기(526)가 디지털 신호 프로세서(524) 및 디스플레이(528)에 연결되는 것을 도시한다. 메모리(532)는 또한 디지털 신호 프로세서(524)에 연결된다. 대안적으로, 코더/디코더(CODEC)(534)는 디지털 신호 프로세서(524)에 연결될 수 있다. 스피커(536) 및 마이크로폰(538)은 CODEC(534)에 연결될 수 있다.
도 5는 또한 무선 제어기(540)가 디지털 신호 프로세서(524)에 연결되고 무선 안테나(542)에 연결될 수 있다는 것을 도시한다. 특정 실시예에서, 입력 장치(530) 및 전원(544)은 온-칩 시스템(522)에 연결된다. 더욱이, 특정한 실시예에 있어서, 도 5에 예시된 바와같이, 디스플레이(528), 입력 장치(530), 스피커(536), 마이크로폰(538), 무선 안테나(542) 및 전원(544)은 온-칩 시스템(522) 외부에 있다. 그러나, 각각은 온-칩 시스템(522)의 컴포넌트에 연결된다.
특정 실시예에서, 디지털 신호 프로세서(524)는 휴대용 통신 장치(520)의 다양한 컴포넌트들에 의하여 필요한 기능 및 동작들을 수행하기 위한 프로그램 스레스들과 연관된 명령들을 처리하기 위하여 인터리빙 멀티스레딩(interleaved multithreading)을 활용한다. 예컨대, 무선 통신 세션이 무선 안테나(542)를 통해 설정될때, 사용자는 마이크로폰(538)에 말할 수 있다. 사용자의 음성을 나타내는 전자 신호들은 인코딩되기 위하여 CODEC(534)에 전송될 수 있다. 디지털 신호 프로세서(524)는 마이크로폰으로부터의 전자 신호들을 인코딩하기 위하여 CODEC(534)에 대한 데이터 처리를 수행할 수 있다. 게다가, 무선 안테나(542)를 통해 수신되는 인입 신호들은 무선 제어기(540)에 의하여 CODEC(534)에 전송되어 디코딩된후 스피커(536)에 전송될 수 있다. 디지털 신호 프로세서(524)는 또한 무선 안테나(542)를 통해 수신되는 신호를 디코딩할때 CODEC(534)에 대한 데이터 처리를 수행할 수 있다.
게다가, 무선 통신 세션 전에, 또는 무선 통신 세션 동안 또는 무선 통신 세션 후에, 디지털 신호 프로세서(524)는 입력 장치(530)로부터 수신되는 입력들을 처리할 수 있다. 예컨대, 무선 통신 세션동안, 사용자는 휴대용 통신 장치(520)의 메모리(532)내에 포함된 웹 브라우저를 통해 인터넷을 서핑하기 위하여 입력 장치(530) 및 디스플레이(528)를 사용할 수 있다. 디지털 신호 프로세서(524)는 휴대용 통신 장치(520) 및 여기에 개시된 다양한 컴포넌트들의 동작을 효율적으로 제어하기 위하여 입력 장치(530), 디스플레이 제어기(526), 디스플레이(528), CODEC(534), 및 무선 제어기(540)에 의하여 사용되는 다양한 프로그램 스레드들을 인터리빙할 수 있다. 다양한 프로그램 스레드들과 연관된 명령들중 많은 명령들은 하나 이상의 클록 사이클들 동안 동시에 실행된다. 따라서, 낭비된 클록 사이클들로 인한 전력 및 에너지 소비가 실질적으로 감소된다.
당업자는 여기에 개시된 실시예들과 관련하여 기술된 다양한 예시적인 논리 블록들, 구성들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합으로서 구현될 수 있음을 잘 이해할 것이다. 하드웨어 및 소프트웨어의 상호 호환성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 구성들, 모듈들, 회로들, 및 단계들이 그들의 기능적 관점에서 앞서 기술되었다. 이러한 기능이 하드웨어로 구현되는지 또는 소프트웨어로 구현되는지는 특정 애플리케이션 및 전체 시스템에 대해 부가된 설계 제한들에 의존한다. 당업자는 기술된 기능들을 각각의 특정 애플리케이션에 대해 다양한 방식들로 구현할 수 있지만, 이러한 구현 결정들이 본 발명의 범위를 벗어나는 것으로 해석되지 않아야 한다.
여기에서 제시된 실시예들과 관련하여 기술된 알고리즘 또는 방법의 단계들은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들의 조합에 의해 직접 구현될 수 있다. 소프트웨어 모듈들은 RAM 메모리; 플래시 메모리; ROM 메모리; PROM 메모리; EPROM 메모리; EEPROM 메모리; 레지스터들; 하드디스크; 휴대용 디스크; CD-ROM; 또는 공지된 저장 매체의 임의의 다른 형태로서 존재할 수 있다. 예시적인 저장매체는 프로세서와 연결될 수 있으며, 프로세서는 저장매체로부터 정보를 판독하여 저장매체에 정보를 기록할 수 있다. 대안적으로, 저장 매체는 프로세서의 구성요소일 수 있다. 프로세서 및 저장 매체는 ASIC 내에 위치할 수 있다. ASIC은 컴퓨팅 장치 또는 사용자 단말에 위치할 수 있다. 대안적으로, 프로세서 및 저장 매체는 컴퓨팅 장치 또는 사용자 단말의 개별 컴포넌트들로서 위치할 수 있다.
제시된 실시예들에 대한 이전 설명은 당업자가 개시된 실시예들을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 수정들은 당업자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예들로 한정되는 것이 아니라, 이하의 청구범위에 의하여 한정된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.

Claims (25)

  1. 적어도 하나의 전환 색인 버퍼(TLB: translation lookaside buffer) 구성 표시자(indicator)를 수신하는 단계; 및
    상기 TLB 구성 표시자의 값에 응답하여 TLB의 탐색가능한 엔트리들의 수를 수정하는 단계를 포함하는,
    방법.
  2. 제 1항에 있어서, 상기 적어도 하나의 TLB 구성 표시자는 운영체제(operating system)로부터 수신되는, 방법.
  3. 제 2항에 있어서, 상기 적어도 하나의 TLB 구성 표시자는 임계치를 초과하는 TLB 미스 레이트(miss rate)에 응답하여 결정되는, 방법.
  4. 제 1항에 있어서, 상기 적어도 하나의 TLB 구성 표시자는 구성 레지스터의 비트를 포함하는, 방법.
  5. 제 1항에 있어서, 탐색가능한 엔트리들의 수를 수정하는 상기 단계는 상기 탐색가능한 엔트리들의 수를 증가시키기 위하여 TLB의 부분을 인에이블시키는 단계를 포함하는, 방법.
  6. 제 5항에 있어서, 인에이블되는 상기 TLB의 부분의 상기 탐색가능한 엔트리들 각각에 대하여 무효(invalid) 표시자를 세팅하는 단계를 더 포함하는, 방법.
  7. 제 1항에 있어서, 상기 TLB 구성 표시자는 상기 TLB가 제 1 수의 이용가능한 엔트리들을 가지는지 또는 제 2 수의 이용가능한 엔트리들을 가지는지의 여부를 결정하는, 방법.
  8. 제 1항에 있어서, 상기 탐색가능한 엔트리들의 수를 감소시키기 위하여 TLB의 부분을 디스에이블하는 단계를 더 포함하는, 방법.
  9. 제 8항에 있어서, 디스에이블되는 상기 TLB의 부분의 적어도 하나의 엔트리로부터 상기 TLB의 적어도 하나의 다른 부분으로 데이터를 복사하는 단계를 더 포함하는, 방법.
  10. 제 8항에 있어서, 디스에이블되는 상기 TLB의 부분을 파워-오프(power-off)하는 단계를 더 포함하는, 방법.
  11. 전환 색인 버퍼(TLB) 미스 레이트를 결정하는 단계;
    상기 TLB 미스 레이트가 임계치를 초과하는 것을 검출하는 단계; 및
    상기 TLB 미스 레이트가 임계치를 초과하였다는 것을 검출한 후에 TLB 크기를 증가시키기 위한 명령을 전송하는 단계를 포함하는,
    방법.
  12. 제 11항에 있어서, 상기 TLB 미스 레이트는 TLB 질의들(query)의 전체 수와 비교하여 예외(exception)를 야기하는 시도된 TLB 질의들의 수에 기초하는, 방법.
  13. 제 11항에 있어서, TLB의 인에이블된 부분들의 수를 표시하기 위하여 구성 레지스터의 적어도 하나의 구성 표시자를 세팅하는 단계를 더 포함하는, 방법.
  14. 전환 색인 버퍼(TLB) 구성 값을 포함하는 TLB 구성 필드를 포함하는 구성 레지스터를 포함하며;
    상기 TLB 구성 값은 제 1 세팅(setting) 또는 제 2 세팅을 식별하며, 상기 TLB 구성 값이 상기 제 1 세팅을 식별할때 상기 TLB는 제 1 수의 탐색가능한 엔트리들을 가지며, 상기 값이 상기 제 2 세팅을 식별할때 상기 TLB는 제 2 수의 탐색가능한 엔트리들을 가지며, 상기 제 2 수는 상기 제 1 수와 상이한,
    컴퓨터 판독가능 매체.
  15. 제 14항에 있어서, 상기 TLB 구성 필드는 소프트웨어 제어 하에서 프로세서에 의하여 프로그램가능한, 컴퓨터 판독가능 매체.
  16. 제 15항에 있어서, 상기 소프트웨어 제어는 운영체제에 의하여 수행되는, 컴퓨터 판독가능 매체.
  17. 제 14항에 있어서, 상기 TLB 구성 필드는 적어도 2 비트를 가지며, 상기 값은 제 3 세팅 또는 제 4 세팅을 추가적으로 식별하도록 구성되며, 상기 제 3 세팅은 상기 TLB의 제 3 부분과 관련되며, 상기 제 4 세팅은 상기 TLB의 제 4 부분과 관련되는, 컴퓨터 판독가능 매체.
  18. 메모리에 저장된 전환 색인 버퍼(TLB) 구성 비트; 및
    제 1 부분 및 제 2 부분을 포함하는 TLB를 포함하며,
    상기 제 1 부분은 상기 TLB 구성 비트의 값에 응답하여 선택적으로 디스에이블되는,
    시스템.
  19. 제 18항에 있어서, 상기 메모리에 응답하는 로직 엘리먼트를 더 포함하며, 상기 로직 엘리먼트는 상기 TLB에 연결된 출력을 가지며, 상기 제 1 부분은 상기 로직 엘리먼트의 출력에 응답하여 선택적으로 디스에이블되는, 시스템.
  20. 제 19항에 있어서, 상기 로직 엘리먼트는 메모리 관리 유닛 제어 신호에 추가적으로 응답하는, 시스템.
  21. 제 18항에 있어서, 상기 제 1 부분은 상기 TLB의 엔트리들의 1/2을 포함하는, 시스템.
  22. 제 18항에 있어서, 상기 제 1 부분은 상기 제 2 부분과 상이한 수의 엔트리들을 포함하는, 시스템.
  23. 제 18항에 있어서, 상기 TLB의 출력들에 응답하는 멀티플렉서를 더 포함하며, 상기 멀티플렉서는 TLB 구성 비트 세팅에 응답하여 인에이블되는 출력들을 선택하는, 시스템.
  24. 제 18항에 있어서, 상기 TLB의 다수의 엔트리들은 소프트웨어 프로그램에 의하여 파퓰레이트(populate)되는, 시스템.
  25. 제 18항에 있어서, 상기 TLB는 소프트웨어 애플리케이션을 실행하도록 구성된 프로세서 내에 통합되며, 상기 소프트웨어 애플리케이션은 제 1 수의 TLB 엔트리들을 사용하는 제 1 동작 모드를 가지며, 상기 TLB 엔트리들의 제 1 수는 상기 TLB의 제 1 부분의 엔트리들의 수보다 적은, 시스템.
KR1020107012478A 2007-11-07 2008-11-07 구성 가능한 전환 색인 버퍼 KR20100090703A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/936,269 2007-11-07
US11/936,269 US8601234B2 (en) 2007-11-07 2007-11-07 Configurable translation lookaside buffer

Publications (1)

Publication Number Publication Date
KR20100090703A true KR20100090703A (ko) 2010-08-16

Family

ID=40589339

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107012478A KR20100090703A (ko) 2007-11-07 2008-11-07 구성 가능한 전환 색인 버퍼

Country Status (6)

Country Link
US (2) US8601234B2 (ko)
EP (1) EP2223221A1 (ko)
JP (1) JP2011503726A (ko)
KR (1) KR20100090703A (ko)
CN (1) CN101896892A (ko)
WO (1) WO2009062077A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101866681B1 (ko) * 2017-01-25 2018-06-11 이화여자대학교 산학협력단 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치
KR20190002473A (ko) * 2016-05-27 2019-01-08 어드밴스드 마이크로 디바이시즈, 인코포레이티드 가상 어드레스를 물리적 어드레스로 번역을 수행하기 위해 입력-출력 메모리 관리 유닛내 다수의 메모리 소자들 사용

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868844B2 (en) * 2008-06-25 2014-10-21 International Business Machines Corporation System and method for a software managed cache in a multiprocessing environment
US8595464B2 (en) * 2011-07-14 2013-11-26 Oracle International Corporation Dynamic sizing of translation lookaside buffer for power reduction
CN102360339A (zh) * 2011-10-08 2012-02-22 浙江大学 一种提高tlb利用效率的方法
US9134954B2 (en) * 2012-09-10 2015-09-15 Qualcomm Incorporated GPU memory buffer pre-fetch and pre-back signaling to avoid page-fault
US9081707B2 (en) * 2012-12-29 2015-07-14 Intel Corporation Apparatus and method for tracking TLB flushes on a per thread basis
JP6163898B2 (ja) * 2013-06-11 2017-07-19 富士通株式会社 計算装置、計算方法、および計算プログラム
US9645941B2 (en) * 2013-09-26 2017-05-09 Cavium, Inc. Collapsed address translation with multiple page sizes
US9658793B2 (en) 2015-02-20 2017-05-23 Qualcomm Incorporated Adaptive mode translation lookaside buffer search and access fault
US9858201B2 (en) 2015-02-20 2018-01-02 Qualcomm Incorporated Selective translation lookaside buffer search and page fault
US10007435B2 (en) 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory
GB2539038B (en) * 2015-06-05 2020-12-23 Advanced Risc Mach Ltd Processing pipeline with first and second processing modes having different performance or energy consumption characteristics
US10235219B2 (en) * 2015-07-27 2019-03-19 Sony Interactive Entertainment America Llc Backward compatibility by algorithm matching, disabling features, or throttling performance
US11403099B2 (en) * 2015-07-27 2022-08-02 Sony Interactive Entertainment LLC Backward compatibility by restriction of hardware resources
US10067870B2 (en) * 2016-04-01 2018-09-04 Intel Corporation Apparatus and method for low-overhead synchronous page table updates
CN110874332B (zh) * 2016-08-26 2022-05-10 中科寒武纪科技股份有限公司 内存管理单元及其管理方法
CN108132894B (zh) * 2017-12-23 2021-11-30 天津国芯科技有限公司 一种cpu中tlb多命中异常的定位装置及方法
CN109213698B (zh) * 2018-08-23 2020-10-27 贵州华芯通半导体技术有限公司 Vivt缓存访问方法、仲裁单元及处理器
US11275697B2 (en) 2019-05-31 2022-03-15 Apple Inc. Translation lookaside buffer invalidation for merged invalidation requests across power boundaries
US11996166B2 (en) * 2019-08-29 2024-05-28 Advanced Micro Devices, Inc. Adaptable allocation of SRAM based on power
US11816037B2 (en) * 2019-12-12 2023-11-14 Advanced Micro Devices, Inc. Enhanced page information co-processor
WO2021134414A1 (en) * 2019-12-31 2021-07-08 Micron Technology, Inc. Mobile storage random read performance estimation enhancements
US20220206955A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Automated translation lookaside buffer set rebalancing

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51115737A (en) * 1975-03-24 1976-10-12 Hitachi Ltd Adress conversion versus control system
JPH0950401A (ja) 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
US5708790A (en) * 1995-12-12 1998-01-13 International Business Machines Corporation Virtual memory mapping method and system for address translation mapping of logical memory partitions for BAT and TLB entries in a data processing system
US6510508B1 (en) 2000-06-15 2003-01-21 Advanced Micro Devices, Inc. Translation lookaside buffer flush filter
US6684298B1 (en) * 2000-11-09 2004-01-27 University Of Rochester Dynamic reconfigurable memory hierarchy
US6886093B2 (en) * 2001-05-04 2005-04-26 Ip-First, Llc Speculative hybrid branch direction predictor
US6735746B2 (en) * 2002-06-04 2004-05-11 Hewlett-Packard Development Company, L.P. Method and apparatus for TLB entry tracking, collision detection, and address reassignment, in processor testcases
JP3806131B2 (ja) * 2003-05-21 2006-08-09 富士通株式会社 アドレス変換バッファの電力制御方法及びその装置
US7152155B2 (en) * 2005-02-18 2006-12-19 Qualcomm Incorporated System and method of correcting a branch misprediction
US7299337B2 (en) * 2005-05-12 2007-11-20 Traut Eric P Enhanced shadow page table algorithms
US7788513B2 (en) * 2006-08-29 2010-08-31 Hewlett-Packard Development Company, L.P. Method of reducing power consumption of a computing system by evacuating selective platform memory components thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190002473A (ko) * 2016-05-27 2019-01-08 어드밴스드 마이크로 디바이시즈, 인코포레이티드 가상 어드레스를 물리적 어드레스로 번역을 수행하기 위해 입력-출력 메모리 관리 유닛내 다수의 메모리 소자들 사용
KR101866681B1 (ko) * 2017-01-25 2018-06-11 이화여자대학교 산학협력단 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치

Also Published As

Publication number Publication date
EP2223221A1 (en) 2010-09-01
WO2009062077A1 (en) 2009-05-14
CN101896892A (zh) 2010-11-24
US20140068225A1 (en) 2014-03-06
JP2011503726A (ja) 2011-01-27
US8601234B2 (en) 2013-12-03
US20090119477A1 (en) 2009-05-07

Similar Documents

Publication Publication Date Title
US8601234B2 (en) Configurable translation lookaside buffer
US9235418B2 (en) Register files for a digital signal processor operating in an interleaved multi-threaded environment
KR101132484B1 (ko) 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하는 시스템 및 방법
KR101531695B1 (ko) 변환 색인 버퍼를 관리하기 위한 시스템 및 방법
KR101302611B1 (ko) 분기 예측에 이용하기 위한 다중-모드 레지스터 파일
KR101252744B1 (ko) 캐시(cache) 라인 대체를 위한 시스템들 및 방법들
US20060294175A1 (en) System and method of counting leading zeros and counting leading ones in a digital signal processor
MX2007012584A (es) Archivos de registro no divididos unificados para un procesador de senales digital que opera en un ambiente intercalado de multi-ejecucion.
JP2004062280A (ja) 半導体集積回路
JP2010539598A (ja) n−ウェイキャッシュを用いるシステムおよび方法
JP2013537680A (ja) 連想メモリの電力使用量を低減するシステムおよび方法
JP2011504274A (ja) バスアクセス要求の選択的除外
JP4404373B2 (ja) 半導体集積回路

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application