KR20110031350A - 시스템 인터페이스들로 액세스가 지시된 메모리 관리 유니트 - Google Patents

시스템 인터페이스들로 액세스가 지시된 메모리 관리 유니트 Download PDF

Info

Publication number
KR20110031350A
KR20110031350A KR1020117001612A KR20117001612A KR20110031350A KR 20110031350 A KR20110031350 A KR 20110031350A KR 1020117001612 A KR1020117001612 A KR 1020117001612A KR 20117001612 A KR20117001612 A KR 20117001612A KR 20110031350 A KR20110031350 A KR 20110031350A
Authority
KR
South Korea
Prior art keywords
physical address
bit
tlb
address
μtlb
Prior art date
Application number
KR1020117001612A
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 KR20110031350A publication Critical patent/KR20110031350A/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
    • 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]
    • 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

하나 이상의 프로세서 쓰레드들로부터 트랜잭션 요청들을 서비스하기 위한 메모리 관리 유니트(MMU)가 개시된다. MMU는 트랜잭션 색인 버퍼(TLB)를 포함할 수 있다. TLB는 저장 모듈 및 논리 회로를 포함할 수 있다. 저장 모듈은 다수의 인터페이스들 중 하나를 표시하는 비트를 저장할 수 있다. 비트는 물리적 어드레스 범위와 연관될 수 있다. 논리 회로는 물리적 어드레스 범위 내의 물리적 어드레스를 다수의 인터페이스들 중 하나로 라우팅할 수 있다.

Description

시스템 인터페이스들로 액세스가 지시된 메모리 관리 유니트{MEMORY MANAGEMENT UNIT DIRECTED ACCESS TO SYSTEM INTERFACES}
[0001] 본 발명에 개시된 발명의 개념들에 대한 실시예들은 전반적으로 데이터 프로세싱 시스템들의 분야에 관한 것이다. 보다 특정하게, 본 발명에 개시된 발명의 개념들에 대한 실시예들은 하나 이상의 인터페이스들로 액세스를 지시(direct)할 수 있는 메모리 관리 유니트들에 관한 것이다.
[0002] 데이터 프로세싱 시스템들은 명령을 처리하기 위해 서로 상호작용(interact)하는 다양한 콤포넌트들을 포함할 수 있다. 메모리 관리 유니트(MMU)가 그 중 한 콤포넌트일 수 있으며 이는 프로세싱 유니트의 하나 이상의 프로세서 쓰레드들에 의한 트랜잭션(transaction) 요청시 물리적 메모리로부터 명령들 및/또는 데이터의 리트리브를 관리할 수 있다. 일부 데이터 프로세싱 시스템들은 리브리브 효율성(retrieval efficiency)을 개선하기 위해 가상 어드레스들을 이용한다. 예를 들어, 쓰레드는 데이터 또는 명령에 대한 가상 어드레스를 포함하는 트랜잭션 요청을 생성하고 가상 어드레스를 MMU에 공급할 수 있다. MMU는 물리적 메모리의 데이터를 액세스하기 위해 가상 어드레스를 그의 해당 물리적 어드레스로 변환(translate)할 수 있다. 일부 MMU들에서, 룩업(look-up) 테이블은 가상 어드레스를 물리적 어드레스에, 이를 테면 변환 색인 버퍼(translation lookaside buffer; TLB)에 맵핑한다.
[0003] 트랜잭션 요청은 버스와 같이 채널로도 공지된 인터페이스를 경유하여 물리적 어드레스에 해당하는 페이지들을 포함하는 자원으로 라우팅될 수 있다. 데이터 프로세싱 시스템들은 상이한 시스템 자원들을 액세스하기 위해 상이한 인터페이스들을 포함할 수 있다. 선입선출(FIFO)과 같은 버퍼는 물리적 어드레스를 관리할 수 있으며 자원을 액세스하기 위한 각각의 물리적 어드레스를 제공하는 인터페이스를 결정할 수 있다. 예를 들어, 버퍼는 물리적 어드레스를 수신하고 자원을 액세스하기 위해 각각의 물리적 어드레스를 제공하는 인터페이스를 식별하는 어드레스 디코더에 이들을 제공하기 위해 TLB에 결합될 수 있다.
[0004] 인터페이스들은 자원들에 결합된다. 각각의 인터페이스는 트랜잭션 요청들의 물리적 어드레스들을 라우팅하기 위해, 속도(speed) 또는 대역폭과 같이 상이한 특징들(characteristics)을 가질 수 있다. TLB에 의해 상이한 자원들에 대해 새로운 트랜잭션 요청들이 제공되더라도, 상이한 특징들은 물리적 어드레스들이 버퍼에서 백-업(back-up)되게 하고 프로세싱을 지연시키게 할 수 있다. 예를 들어, 제 1 인터페이스를 액세스하기 위한 물리적 어드레스가 버퍼를 채울 수 있고, 이는 제 1 인터페이스가 자원을 액세스하는데 이용되기 때문이다. 제 1 인터페이스 또는 다른 인터페이스들에 대한 라우팅을 위한 물리적 어드레스들이 백-업될 수 있으며 이는 버퍼가 가득찼기 때문이다. 또한, 인터페이스들 중 하나에 대해 물리적 어드레스들을 이용하는 액세스마다 어드레스 디코더가 활성화되며 각각의 액세스로 전력이 소모된다.
[0005] 따라서, 인터페이스들에 대해 물리적 어드레스들을 라우팅하고 프로세싱 지연들을 감소시키고, 전력 소모를 감소시키고 및/또는 프로세서에 대해 보다 나은 품질 서비스를 제공할 수 있는 메모리 관리 유니트 시스템 및 프로세스가 요구된다.
[0006] 일 실시예에서, 변환 색인 버퍼(TLB)를 포함하는 메모리 관리 유니트가 개시된다. TLB는 저장기 모듈 및 논리 회로를 포함한다. 저장기 모듈은 다수의 인터페이스들 중 하나를 표시하는 비트를 저장할 수 있다. 비트는 물리적 어드레스 범위와 연관될 수 있다. 논리 회로는 물리적 어드레스 범위 내의 물리적 어드레스를 비트에 기초하여 다수의 인터페이스들 중 하나로 라우팅할 수 있다.
[0007] 이러한 예시적 실시예는 본 발명에 개시된 발명의 개념들을 제한 또는 한정하도록 의도된 것은 아니라, 본 발명의 이해를 돕기 위한 예들을 제공하고자 의도된 것이다. 본 발명의 다른 양상들, 장점들 및 특징들은, 도면의 간단한 설명, 발명을 실시하기 위한 구체적인 내용 및 특허청구범위의 섹션에 포함되는 본 출원의 전부를 검토한 후 명확해질 것이다.
[0008] 본 발명에 개시되는 본 발명의 개념들의 상기 특징들 및 다른 특징들, 양상들 및 장점들은 하기의 발명을 실시하기 위한 구체적인 내용을 첨부되는 도면들을 참조로 검토할 때 보다 이해될 것이다.
[0009] 도 1은 인터페이스들로의 액세스를 지시하는 메모리 관리 유니트의 실시예에 따른 데이터 프로세싱 시스템의 예를 예시하는 일반적 다이어그램이다.
[0010] 도 2는 도 1의 예시적인 메모리 관리 유니트 및 인터페이스들을 예시하는 일반적 다이어그램이다.
[0011] 도 3은 트랜잭션 요청들에 대한 인터페이스들로 액세스를 지시하기 위한 예시적 프로세스를 예시하는 흐름도이다.
[0012] 도 4는 인터페이스들로의 액세스를 지시하는 제 2 예시적 메모리 관리 유니트의 일반적 다이어그램이다.
[0013] 도 5는 메모리 관리 유니트를 포함할 수 있는 예시적인 휴대용 통신 디바이스를 예시하는 일반적 다이어그램이다.
[0014] 도 6은 메모리 관리 유니트를 포함할 수 있는 예시적인 셀룰러 전화를 예시하는 일반적 다이어그램이다.
[0015] 도 7은 메모리 관리 유니트를 포함할 수 있는 예시적인 무선 인터넷 프로토콜 전화를 예시하는 일반적 다이어그램이다.
[0016] 도 8은 메모리 관리 유니트를 포함할 수 있는 예시적인 휴대용 정보 단말기(portable digital assistant)를 예시하는 일반적 다이어그램이다.
[0017] 도 9는 메모리 관리 유니트를 포함할 수 있는 예시적 오디오 파일 플레이어를 예시하는 일반적 다이어그램이다.
[0018] 설명을 목적으로 명세서 전반에서는, 본 발명에 개시된 발명의 개념들의 전반적 이해를 돕기 위해 다양한 특정 사항들이 개시된다. 그러나, 본 발명에 개시되는 발명의 개념들은 이러한 일부 특정 사항들 없이도 실행될 수 있다는 것을 당업자들은 인식할 것이다. 다른 예들에서, 공지된 구조 및 디바이스들은 본 발명에 개시된 발명의 개념들의 기본적 원리가 불명료해지는 것을 방지하기 위해 블록 다이어그램 형태로 도시된다.
[0019] 본 발명에 개시된 발명의 개념들에 대한 실시예들은 TLB들 중 적어도 하나에서의 정보에 기초하여 트랜잭션 요청들을 관리하기 위한 하나 이상의 변환 색인 버퍼(TLB)들을 포함하는 메모리 관리 유니트(MMU)에 관한 것이다. 정보는 트랜잭션 요청의 가상 어드레스에 해당하는 물리적 어드레스를 제공하기 위해 인터페이스를 식별하는 어드레스 디코더로부터 수신되는 비트를 포함할 수 있다. 비트는 TLB들 뒤로(after) 프로세싱이 지연시키거나 또는 전력을 소모할 수 있는 버퍼 및 어드레스 디코더를 요구하지 않고도, 자원의 액세스를 위해 물리적 어드레스를 라우팅할 인터페이스를 결정하는데 이용된다. 인터페이스들의 예들로는 밀결합 메모리(TCM), 캐시 버스 이를 테면, ARM, Ltd,에 의한 AXI/L2, 및 AHB(advanced high-performance bus)가 포함된다. 물리적 어드레스는 미리결정된 크기를 갖는 메모리의 블록을 식별하는 물리적 페이지 넘버를 포함할 수 있다.
[0020] 일 실시예에서, MMU는 마이크로 변환 색인 버퍼(μTLB)인 TLB를 포함한다. μTLB는 어드레스 디코더로부터 비트를 수신하고 μTLB에서 물리적 어드레스 범위로 이를 연관시킬 수 있다. 예를 들어, 어드레스 디코더는 물리적 어드레스를 분석하기 위해 시스템-온-칩(SOC) 메모리 맵 스트랩핑을 이용하고 SOC 메모리 맵 스트랩핑(strapping)들에 기초하여 인터페이스를 식별하는 비트를 생성할 수 있다. SOC 메모리 맵 스트랩핑들에는 집적회로와 같은 반도체 디바이스상에 설치되는(built-in) 메모리와 연관된 특징들이 미리규정될 수 있다(predefined). 메모리 맵 스트랩핑들의 예들은 메모리 페이지 위치들(locations)에 대한 칩 핀아웃(chip pinout)들, 제조 동안 칩에서 버닝되는(burned) 퓨즈들, 및 칩 제조자에 의해 부가되는 프로그램된 논리를 포함한다. 가상 어드레스를 포함하는 트랜잭션 요청이 μTLB에 의해 수신될 때, 비트는 자원 액세스를 위한 물리적 어드레스를 라우팅하는 인터페이스를 식별하는데 사용된다.
[0021] 버퍼의 부재(absence)는 자원들을 액세스하기 위해 물리적 어드레스가 사용될 수 있는 속도를 증가시킬 수 있다. 도 1은 물리적 어드레스들로 액세스를 지시하기 위한 MMU의 일 실시예의 구현예를 블록 다이어그램으로 도시한다. MMU(100)는 MMU(100)에 트랜잭션 요청들(106)을 제공하는 하나 이상의 프로세서 쓰레드들(104)을 포함할 수 있는 프로세서 유니트(102)를 서비스할 수 있다. 트랜잭션 요청들(106)은 데이터, 명령들 또는 시스템 자원들(108)로부터의 다른 정보에 대한 요청들일 수 있다. MMU(100)는 자원들(108)에 대한 물리적 어드레스들을 식별하고 인터페이스들(110)을 통해 자원들(108)을 액세스하기 위해 물리적 어드레스들을 이용할 수 있다.
[0022] 예를 들어, 트랜잭션 요청들(106) 각각은 프로세서 쓰레드(104)가 액세스되는 자원의 일부분(portion) 또는 자원에 대한 가상 어드레스를 포함한다. MMU(100)는 가상 어드레스와 연관된 물리적 어드레스를 식별하는 다른 맵핑 또는 테이블을 포함할 수 있다. 물리적 어드레스는 인터페이스들(110) 중 하나를 통해 자원을 액세스하는데 이용될 수 있다. 도 1은 인터페이스 A, 인터페이스 B, 인터페이스 C를 도시하며, 이는 임의의 형태의 인터페이스일 수 있으며 인터페이스들(110)은 도시된 것보다 적은 또는 추가의 인터페이스들을 포함할 수 있다. 인터페이스 A는 자원 1과 연관되며, 인터페이스 B는 자원 2와 연관되며, 인터페이스 C는 자원 3과 연관된다. 그러나, 각각의 인터페이스들(110)은 하나 보다는 많은 자원들(108)과 연관될 수 있으며 임의의 수의 자원들(108)이 포함될 수 있다.
[0023] MMU(100)는 특정한 물리적 어드레스를 이용하여 자원을 액세스하는 인터페이스를 식별하는 콤포넌트들을 포함할 수 있다. 도 1에 도시된 실시예에서, MMU(100)는 저장기 모듈(114) 및 논리 회로(116)를 포함하는 TLB(112)를 포함한다. TLB(112)는 명령 TLB, 데이터 TLB, 또는 결합(joint) TLB일 수 있으며 μTLB, 다수의 TLB들, 또는 하나 이상의 μTLB들 및 TLB들을 포함한다. 명령 TLB는 페치(fetch) 트랜잭션 요청들을 서비스하도록 구성될 수 있고, 데이터 TLB는 로드(load) 또는 저장 트랜잭션 요청들을 서비스하도록 구성될 수 있고, 결합 TLB는 페치 및 로드 또는 저장 트랜잭션 요청들 모두를 서비스하도록 구성될 수 있다.
[0024] 저장기 모듈(114)은 가상 어드레스 및 가상 어드레스에 해당하는 물리적 어드레스를 저장할 수 있다. 일부 실시예들에서, 저장기 모듈(114)은 가상 어드레스들 및 각각의 가상 어드레스에 해당하는 물리적 어드레스를 저장할 수 있는 다른 저장기 디바이스들 또는 레지스터들(registers)을 포함한다. 또한, 저장기 모듈(114)은 비트 또는 물리적 어드레스 범위에 대한 다른 인디케이터(indicator)를 저장할 수 있다. 저장기 모듈(114)은 다수의 물리적 어드레스 범위들을 포함할 수 있으며, 이들 각각은 비트와 연관된다. 비트는 자원의 액세스를 위해 물리적 어드레스 범위내에서 물리적 어드레스를 제공하는 인터페이스들(110) 중 하나를 표시할 수 있다. 하기에 보다 상세하게 개시되는 것처럼, 물리적 어드레스를 라우팅하는 인터페이스를 식별하기 위해 물리적 어드레스 및 시스템-온-칩(SOC) 메모리 맵 스트랩핑들을 이용할 수 있는 어드레스 디코더(118)에 의해 TLB(112)에 비트가 제공될 수 있다. 논리 회로(116)는 자원을 액세스하기 위해 식별된 인터페이스를 통해 물리적 어드레스를 라우팅하기 위해 비트를 사용할 수 있다. 일부 실시예들에서, 논리 회로(116)는 TLB(112)에 저장된 물리적 어드레스를 식별하는 선택기 및 물리적 어드레스를 제공하고 이를 비트에 의해 식별되는 인터페이스로 라우팅하기 위한 멀티플렉서를 포함한다.
[0025] 다양한 실시예들에 따른 MMU들은 트랜잭션 요청의 가상 어드레스를 사용하여 물리적 어드레스들이 결정되는 속도를 증가시키기 위해 TLB 및 μTLB를 포함할 수 있다. 예를 들어, μTLB는 TLB보다 작고 트랜잭션 요청들의 가상 어드레스들을 사용하여, 가장 최근에 또는 빈번하게 사용되는 것들과 같은 일부 물리적 어드레스들을 신속하게 위치시키는데 이용될 수 있다. 트랜잭션 요청의 가상 어드레스를 이용하는 μTLB의 룩업(lookup) 가상 어드레스를 배치(locate)하지 않은 경우, 룩업은 μTLB 보다 크며 추가의 가상 및 물리적 어드레스 맵핑들을 포함하는 TLB로 구성된다. 가상 어드레스가 TLB내에 배치되면, 가상 어드레스 및 물리적 어드레스가 μTLB의 엔트리에 기록된다.
[0026] 하기에 보다 상세하게 설명되는 것처럼, 인디케이터가 어드레스 디코더에 의해 생성되어 μTLB에 제공되거나, 또는 물리적 어드레스와 함께 저장을 위해 부가적으로 먼저 TLB에 제공될 수 있다. 인디케이터는 물리적 어드레스가 자원을 액세스하도록 라우팅되는 인터페이스를 식별할 수 있다. 도 2는 자원의 액세스를 위한 물리적 어드레스를 라우팅하기 위해서 인터페이스를 식별하도록 인디케이터를 사용하기 위한 MMU(100)의 실시예에 대한 일반적 다이어그램이다. 도 2에서, MMU(100)는 TLB(200) 및 어드레스 디코더(218)를 포함하며, 이들 각각은 μTLB(202)에 결합된다. TLB(200)는 TLB 콘텐츠 액세스가능 메모리(TCAM)(204) 및 TLB 랜덤 액세스 메모리(TRAM)(206)를 포함한다. TCAM(204)는 가상 어드레스들(VAl-VAn)이 저장될 수 있는 다수의 엔트리들을 포함한다. 일부 실시예들에서, 하나 이상의 엔트리들은 비어있고(empty) 가상 어드레스를 포함하지 않는다. 각각의 가상 어드레스는 TRAM(206)의 엔트리들에 저장된 물리적 어드레스들(PAl-PAn) 중 하나에 대응할 수 있다. 예를 들어, 가상 어드레스(VAl)는 물리적 어드레스(PA1)에 대응할 수 있다. 또한, TRAM(206)에서 각각의 엔트리는 예를 들어, 물리적 어드레스에 위치된 메모리 페이지의 크기를 식별할 수 이는 마스크(mask)를 포함할 수 있다.
[0027] 트랜잭션 요청의 가상 어드레스가 μTLB(202)로부터 수신될 때, 이를 테면 μCAM(210)에서 룩업 및 "miss" 이후, TLB(200)에서 룩업이 수행된다. "miss"은 트랜잭션 요청의 가상 어드레스와 매칭되는(match) μCAM(210)의 가상 어드레스의 부재(absence)일 수 있다. TLB 룩업에서, 트랜잭션 요청의 가상 어드레스는 각각의 가상 어드레스들(VAl-VAn)과 비교된다. 매칭(match) 또는 "hit"가 발견되면, 매칭되는 가상 어드레스와 연관된 물리적 어드레스에 대한 엔트리를 식별하는 출력이 선택기(selectror)로서 멀티플렉서(208)에 제공된다. 멀티플렉서(208)는 선택기에 기초하여 매칭 가상 어드레스와 연관된 물리적 어드레스를 출력하도록 구성된다.
[0028] TCAM(204)에서 "miss"가 발생하면 ―트랜잭션 요청의 가상 어드레스와 매칭되는 가상 어드레스가 TCAM(204)에서 발견되지 않으면―, 트랜잭션 요청의 가상 어드레스가 제외 엔진(exception engine)(216)에 제공된다. 제외 엔진(216)은 트랜잭션 요청의 가상 어드레스를 위한 마스크 및 물리적 어드레스를 식별하도록 구성된다. 일부 실시예들에서, 제외 엔진(216)은 엔트리의 가상 어드레스 및 그의 해당 물리적 어드레스를 TCAM(204) 및 TRAM(206) 모두에 기록한다. 예를 들어, 제외 엔진(216)은 가상 어드레스를 TCAM(204)의 엔트리에 기록하고 물리적 어드레스 및 마스크를 TCAM(204)의 해당 엔트리에 기록할 수 있다. 또 다른 실시예들에서, 제외 엔진(216)은 가상 어드레스, 그의 대응 물리적 어드레스 및 마스크를 엔트리의 저장을 위해 TLB(200)에 출력한다. TLB(200)의 가상 어드레스에 대한 다음 룩업에 대해 TCAM(204)에서 식별되며, 물리적 어드레스로 엔트리를 식별하는 출력이 선택기로서 멀티플렉서(208)에 제공되며, 물리적 어드레스가 μTLB(202)에 제공될 수 있다.
[0029] μTLB(202)은 μTLB 콘텐츠 액세스가능 메모리(μCAM)(210) 및 μTLB 랜덤 액세스 메모리(μRAM)(212)를 포함할 수 있다. μCAM(210)은 가상 어드레스(VAl-VAn -k)가 저장되는 엔트리들을 포함할 수 있다. μCAM(210)은 TCAM(204)와 유사할 수 있으나, TCAM(204) 보다 k 적은 가상 어드레스들을 저장하도록 구성될 수 있다. μRAM(212)은 물리적 어드레스(PA1-PAn -k)가 저장되는 엔트리들을 포함할 수 있다. μRAM(212)에 저장된 각각의 물리적 어드레스는 μCAM(210)의 가상 어드레스들(VAl-VAn-k)중 하나에 대응할 수 있다. μRAM(212)는 TRAM(206)과 유사할 수 있지만 TRAM(206) 보다 k 적은 물리적 어드레스를 저장하도록 구성될 수 있다.
[0030] μRAM(212)는 각각의 저장된 물리적 어드레스에 대한 마스크를 저장하도록 구성된다. 마스크는 물리적 어드레스와 연관된 메모리 위치에 대한 페이지 크기를 표시할 수 있다. 또한, μRAM(212)는 물리적 어드레스 범위들에 대한 인디케이터들을 저장하도록 구성된다. 각각의 인디케이터는 인디케이터와 연관된 물리적 어드레스 범위내에서 물리적 어드레스를 라우팅하는 인터페이스들(110) 중 하나를 식별할 수 있다. 일부 실시예들에서, 물리적 어드레스를 포함하는 각각의 엔트리는 인터페이스들(110) 중 하나를 식별하는 인디케이터를 포함한다.
[0031] 인디케이터는 어드레스 디코더(218)로부터 수신된 인터페이스를 식별하는 비트일 수 있다. 예를 들어, 어드레스 디코더(218)는 TLB(200)로부터 물리적 어드레스를 수신하며 물리적 어드레스와 연관된 인터페이스를 결정하기 위해 시스템-온-칩(SOC) 메모리 맵 스트랩핑들을 이용할 수 있다. SOC 메모리 맵 스트랩핑들은 집적회로와 같은 반도체 디바이스상에 설치되는 메모리와 연관되는 미리결정된 특징들일 수 있다. 일부 실시예들에서, SOC 메모리 맵 스트랩핑들은 데이터 프로세싱 시스템의 프로그램된 논리(programmed logic)일 수 있다. SOC 메모리 맵 스트랩핑들의 예들로는 프로그램된 논리를 포함하는 소프트웨어 및/또는 메모리 페이지 위치들에 대한 칩 핀아웃들이 포함된다. 예를 들어, 물리적 어드레스의 범위는 SOC 메모리 맵 스트랩핑들, 이를 테면 칩 핀아웃들을 통해 인터페이스와 연관될 수 있다. 어드레스 디코더(218)가 TLB(200)로부터 물리적 어드레스를 수신할 때, 어드레스 디코더(218)는 수신된 물리적 어드레스를 포함하는 물리적 어드레스 범위를 식별하고 식별된 물리적 어드레스 범위와 연관된 인터페이스를 결정할 수 있다. 어드레스 디코더(218)는 엔트리의 물리적 어드레스를 저장하거나 또는 이와 대응될 수 있는 μTLB(202)와 연관된 인터페이스를 식별하는 인디케이터, 이를 테면 비트를 제공하도록 구성될 수 있다.
[0032] 앞서 개시된 것처럼, μTLB(202)는 TLB(200) 보다 작을 수 있다. 예를 들어, μTLB(202)는 TLB(200) 보다 더 적은(fewer) 엔트리들, 및 더 적은 가상 및 물리적 어드레스들을 포함할 수 있다. 일부 실시예들에서, TCAM(204)에서 룩업이 수행되기 이전에, 트랜잭션 요청의 가상 어드레스에 대한 룩업이
Figure pct00001
(210)에서 수행된다. "miss"가 발생하면, 이를 테면, 트랜잭션 요청의 가상 어드레스가
Figure pct00002
(210)의 가상 어드레스와 매칭되지 않으면, 가상 어드레스는 TCAM(204)의 룩업을 위해 TLB(200)에 제공된다.
Figure pct00003
(210)에서 "hit"가 발생하면, 이를 테면, 트랜잭션 요청의 가상 어드레스가
Figure pct00004
(210)의 가상 어드레스와 매칭되면,
Figure pct00005
(210)는 매칭 가상 어드레스와 연관되는 물리적 어드레스에 대한 엔트리를 식별하는 출력을 선택기로서 멀티플렉서(214)에 제공한다. 멀티플렉서(214)는 선택기에 기초하여 μRAM(212)으로부터 매칭 가상 어드레스와 연관된 물리적 어드레스를 출력하도록 구성될 수 있다.
[0033] 일부 실시예들에서, 멀티플렉서(214)는 비트에 기초하여 인터페이스들(110) 중 하나로 물리적 어드레스를 라우팅한다. 인테페이스들(110)은 임의의 타입 및 개수의 인터페이스들을 포함할 수 있다. 예로써, 도 2는 3개의 인터페이스들을 예시한다 : 밀결합(tightly-coupled) 메모리(TCM) 220, AXI/L2(222), 및 AHB(advanced high-performance bus)(224). 일부 실시예들에서, 각각의 인터페이스들(110)은 비트에 기초하여 물리적 어드레스를 라우팅하는 멀티플렉서(214) 대신, 또는 상기 멀티플렉서(214)에 부가하여, 비트에 기초하여 물리적 어드레스를 라우팅할지 여부를 결정한다. 예를 들어, TCM(220)은 인터페이스를 식별하는 비트와 연관된 물리적 어드레스를 라우팅하고 또 다른 인터페이스를 식별하는 비트 연관된 물리적 어드레스를 무시(ignore)할 수 있다. 인터페이스들(110)과 μTLB(202) 사이에, 전력을 소모할 수 있고 트랜잭션 요청 프로세싱에서 백업들을 야기시킬 수 있는 버퍼 또는 어드레스 디코더를 사용하는 대신, 특정 실시예들은 특정한 물리적 어드레스를 라우팅하는 인터페이스를 식별하기 위해 μTLB(202)의 비트와 같은 인디케이터를 사용할 수 있다.
[0034] 도 3은 개시된 발명의 개념들에 대한 일부 실시예들에 따라, 비트에 기초하여 인터페이스에 대한 물리적 어드레스들을 지시하기 위해 MMU들을 이용하기 위한 방법을 예시한다. 도 3의 흐름도는 도 2에 예시된 콤포넌트들을 참조로 개시된다. 그러나, 다른 구현예들도 가능하다.
[0035] 방법은 MMU(100)가 프로세서 쓰레드로부터 트랜잭션 요청의 가상 어드레스를 수신할 때 시작된다(블록 302). 예를 들어, 프로세스 쓰레드는 데이터, 명령들, 또는 자원으로부터의 다른 명령에 대한 요청을 포함하는 트랜잭션 요청을 제공할 수 있다. 트랜잭션 요청은 데이터, 명령들, 또는 프로세서 쓰레드에 의해 요청되는 다른 정보가 액세스될 수 있는 자원의 가상 어드레스를 포함할 수 있다.
[0036] 블록(304)에서, MMU(100)는 가상 어드레스가 μTLB(202)에 있는지를 결정한다. 일부 실시예들에서, μCAM(210)의 엔트리에 저장된 가상 어드레스가 트랜잭션 요청의 가상 어드레스와 매칭되는지를 결정하기 위해 μCAM(210) 상에서 룩업이 수행된다. 예를 들어, μCAM(210)에서의 각각의 가상 어드레스는, 매칭이 발견될 때까지 또는 μCAM(210)의 각각의 가상 어드레스가 매칭 없이 트랜잭션 요청의 가상 어드레스와 비교될 때까지, 트랜잭션 요청의 가상 어드레스와 비교된다.
[0037] "miss"가 발생하면, 이를 테면 매칭이 발견되지 않으면, MMU(100)는 가상 어드레스가 TLB(200)에 있는지 결정한다(블록 306). 예를 들어, TCAM(204)의 엔트리에 저장된 가상 어드레스가 트랜잭션 요청의 가상 어드레스와 매칭되는지를 결정하기 위해 TCAM(204)에서 룩업이 수행될 수 있다.
[0038] TCAM(204)에서 "miss"가 발생하면, 제외 엔진(216)은 가상 어드레스에 대한 물리적 어드레스를 결정하며 TLB(200)의 엔트리에 가상 어드레스 및 물리적 어드레스를 기록한다(블록 308). 예를 들어, 제외 엔진(216)은 가상 어드레스를 TCAM(204)의 엔트리에 기록하고 물리적 어드레스를 TRAM(206)의 해당 엔트리에 기록할 수 있다. 일부 실시예들에서, 물리적 어드레스와 연관된 메모리의 페이지 크기를 표시하는 마스크는 제외 엔진(216)에 의해 생성되며 TRAM(206)의 물리적 어드레스와 연관된다.
[0039] 엔트리 기록 이후, 방법은 블록 304로 리턴되며 가상 어드레스로 μTLB(202)상에서 룩업이 수행된다. 다시 "miss"가 발생할 수 있고 가상 어드레스에 대한 룩업이 TLB(200)상에서 수행된다(블록 306). "hit"가 발생하면, 이를 테면, TCAM(204)에 저장된 가상 어드레스가 트랜잭션 요청의 가상 어드레스와 매칭되면, TLB(200)에 의해 해당 물리적 어드레스가 제공된다. 예를 들어, TCAM(204)은 엔트리 위치 및/또는 해당 물리적 어드레스를 표시하는 출력을 TRAM(206)과 연관된 선택기로서의 멀티플렉서(208)에 제공할 수 있다. 멀티플렉서(208)는 선택기에 기초하여 TRAM(206)으로부터 물리적 어드레스를 출력하도록 구성될 수 있다.
[0040] 블록 310에서, 어드레스 디코더(218)는 물리적 어드레스와 연관된 인터페이스를 표시하는 비트를 생성하기 위해 SOC 메모리 맵 스트랩핑들을 이용하여 TRAM(206)으로부터 물리적 어드레스를 디코딩한다. 예를 들어, 어드레스 디코더(218)는 물리적 어드레스를 포함하는 물리적 어드레스 범위와 연관된 인터페이스를 식별하기 위해 칩 핀아웃들 또는 미리정의된 물리적 특징들을 이용할 수 있다. 앞서 언급된 것처럼, MMU(100)에 대한 일부 실시예들은 μTLB(202)에 기록할 때 대신 TLB에 엔트리를 기록할 때 물리적 어드레스와 연관된 인터페이스를 식별할 수 있다.
[0041] 블록 312에서, MMU(100)는 가상 어드레스에 대한 μTLB(202)의 엔트리, 그의 해당 물리적 어드레스, 및 물리적 어드레스와 연관된 인터페이스를 표시하는 비트를 기록한다. 예를 들어, MMU(100)는 μCAM(210)의 엔트리에 가상 어드레스를 그리고 μRAM(212)의 엔트리에 물리적 어드레스를 저장할 수 있다. 또한, MMU(100)는 μRAM(212)의 물리적 어드레스와 연관된 인터페이스를 표시하는 비트 및 마스크를 저장할 수 있다.
[0042] 메모리는 MMU(100)가 μTLB(202)에서 룩업을 수행하는 블록 304으로 리턴될 수 있다. "hit"가 발생하면, μTLB(202)는 자원을 액세스하기 위해 비트에 기초하여 인터페이스로 물리적 어드레스를 라우팅할 수 있다(블록 314). 예를 들어, 룩업은 μCAM(210)의 가상 어드레스의 매칭을 산출할 수 있다.
Figure pct00006
(210)은 μRAM(212)과 연관된 멀티플렉서(214)로 선택기로서 엔트리 위치 및/또는 해당 물리적 어드레스를 표시하는 출력을 제공할 수 있다. 멀티플렉서(214)는 선택기에 기초하여 μRAM(212)로부터 물리적 어드레스를 출력하도록 구성될 수 있다. 일부 실시예들에서, μTLB(202)는 비트에 의해 식별되는 인터페이스로 물리적 어드레스를 라우팅한다. 다른 실시예들에서, 비트는 물리적 어드레스에 제공되며 비트에 의해 식별되는 인터페이스는 물리적 어드레스를 라우팅하는 반면 다른 인터페이스들은 물리적 어드레스를 무시한다.
[0043] 일부 실시예들에 따른 어드레스 디코더들은 μTLB에 부가하여, TLB를 제공하기 위해 MMU에 배치될 수 있으며, 인디케이터들은 물리적 어드레스들이 라우팅되는 인터페이스들을 식별한다. 도 4는 TLB(400)의 엔트리들이 기록될 때 물리적 어드레스를 위한 인터페이스를 식별하는 비트를 TLB(400)에 제공할 수 있는 구성을 갖는 MMU(100)의 제 2 실시예를 예시한다. 도 4의 MMU(100)는 트랜잭션 요청으로부터 가상 어드레스로 룩업이 수행될 수 있는 μCAM(410)를 포함하는
Figure pct00007
(402)를 포함한다. "miss"가 발생하면, 가상 어드레스가 TCAM(404)에 제공되고 TLB(400)에 대해 룩업이 수행된다.
[0044] TCAM(404)에서 "miss"가 발생하면, 가상 어드레스에 대한 물리적 어드레스를 식별하는 제외 엔진(416)에 가상 어드레스가 제공된다. 일부 실시예들에서, 제외 엔진(416)은 물리적 어드레스와 연관된 메모리의 페이지 크기를 식별하는 물리적 어드레스에 대한 마스크를 결정할 수 있다. 물리적 어드레스에 대한 인터페이스를 식별하는 비트를 생성하기 위해 SOC 메모리 맵 스트랩핑들을 이용하는 어드레스 디코더(418)에 물리적 어드레스가 제공될 수 있다. 가상 어드레스는 TCAM(404)의 엔트리에 기록될 수 있으며, 비트 및 마스크와 함께 물리적 어드레스는 TRAM(406)의 해당 엔트리에 기록될 수 있다. TCAM(404)에서 "hit"가 발생하면, 물리적 어드레스, 비트 및 마스크는 멀티플렉서(408)를 이용하는 μTLB(402)에 제공될 수 있다. 가상 어드레스는 μCAM(410)의 엔트리에 기록될 수 있으며 물리적 어드레스, 비트 및 마스크는 μRAM(412)의 해당 엔트리에 기록될 수 있다.
[0045] μCAM(410)에서 "hit"가 발생하면, 물리적 어드레스는 멀티플렉서(414)를 이용하여 인터페이스들(110) 중 하나로 라우팅될 수 있다. 비트는 자원을 액세스하기 위해 물리적 어드레스를 라우팅하는 인터페이스를 결정하는데 이용될 수 있다.
상기 개시된 특성들을 포함하는 예시적 디바이스들
[0046] 메모리 관리 유니트(MMU)들은 디지털 신호 프로세서들과 같은 임의의 프로세서들에 포함될 수 있다. 도 5-9의 일반적 다이어그램들은 프로세서의 쓰레드에 의해 또는 멀티-쓰레드형(multi-threaded) 프로세서의 쓰레드들에 의해 디바이스 자원들에 제공되는 트랜잭션 요청들에 의해 인터페이스들에 대한 액세스를 관리하기 위한 MMU들이 통합될 수 있는 예시적 디바이스들을 예시한다.
[0047] 도 5는 휴대용 통신 디바이스(500)의 예시적 실시예를 예시하는 다이어그램이다. 도 5의 일반적 다이어그램에 예시된 것처럼, 휴대용 통신 디바이스는 디지털 신호 프로세서(DSP)(504)를 포함하는 온-칩 시스템(502)을 포함한다. 또한, 도 5의 일반적 다이어그램은 디지털 신호 프로세서(504) 및 디스플레이(508)와 연결되는 디스플레이 제어기(506)를 도시한다. 또한, 입력 디바이스(510)는 DSP(504)에 연결된다. 도시된 것처럼, 메모리(512)는 DSP(504)와 연결된다. 부가적으로, 코더/디코더(CODEC)(514)는 DSP(504)에 연결될 수 있다. 스피커(516) 및 마이크로폰(518)이 CODEC(514)에 연결될 수 있다.
[0048] 도 5의 일반적 다이어그램은 추가로 디지털 신호 프로세서(504) 및 무선 안테나(522)에 연결된 무선 제어기(520)를 추가로 예시한다. 특정 실시예에서, 전원공급부(524)가 온-칩 시스템(502)에 연결된다. 또한, 특정 실시예에서, 도 5에 예시된 것처럼, 디스플레이(5236), 입력 디바이스(530), 스피커(516), 마이크로폰(518), 무선 안테나(522), 및 전원공급부(524)는 온-칩 시스템(502) 외부에 있다. 그러나, 각각은 온-칩 시스템(502)의 콤포넌트와 연결된다.
[0049] 특정 실시예에서, DSP(504)는 쓰레드들로부터의 트랜잭션 요청들에 의해 인터페이스들로의 액세스를 지시할 수 있는 메모리 관리 유니트(MMU)(526)를 포함한다. 예를 들어, MMU(526)는 도 2 또는 도 4를 참조로 개시되며 프로세싱 지연들을 감소시키도록 트랜잭션 요청을 지시하기 위해 인터페이스를 표시하는 비트를 수신할 수 있는 마이크로 변환 색인 버퍼(
Figure pct00008
)를 포함할 수 있다.
[0050] 도 6은 셀룰러 전화(600)의 예시적 실시예를 도시하는 다이어그램이다. 도시된 것처럼, 셀룰러 전화(600)는 서로 결합되는 디지털 기저대 프로세서(604) 및 아날로그 기저대 프로세서(606)를 포함하는 온-칩 시스템(602)을 포함한다. 특정 실시예에서, 디지털 기저대 프로세서(604)는 디지털 신호 프로세서이다. 도 6의 일반적 다이어그램에 도시된 것처럼, 디스플레이 제어기(608) 및 터치스크린 제어기(610)는 디지털 기저대 프로세서(604)와 결합된다. 결국, 온-칩 시스템(602) 외부에 있는 터치스크린 디스플레이(612)는 디스플레이 제어기(608) 및 터치스크린 제어기(610)와 결합된다.
[0051] 도 6의 일반적 다이어그램은 이를 테면 디지털 기저대 프로세서(604)와 결합되는 비디오 인코더(614), 이를 테면 위상 교번 라인(PAL) 인코더, SECAM(sequential couleur a memoire) 인코더, 또는 국가 텔레비전 시스템 위원회(NTSC) 인코더를 추가로 예시한다. 또한, 비디오 증폭기(616)는 비디오 인코더(614) 및 터치스크린 디스플레이(612)와 결합된다. 또한, 비디오 포트(618)는 비디오 증폭기(616)와 결합된다. USB(universal serial bus) 제어기(620)는 디지털 기저대 프로세서(604)에 결합된다. 또한, USB 포트(622)는 USB 제어기(620)에 결합된다. 메모리(624) 및 SIM(subscriber identity module) 카드(626) 또한 디지털 기저대 프로세서(604)와 결합될 수 있다. 또한, 도 6의 일반적 다이어그램에 도시된 것처럼, 디지털 카메라(628)는 디지털 기저대 프로세서(604)와 결합될 수 있다. 일반적 실시예에서, 디지털 카메라(628)는 전하-결합 디바이스(CCD) 카메라 또는 상보형 금속-산화물 반도체(CMOS) 카메라이다.
[0052] 도 6의 일반적 다이어그램에 추가로 도시된 것처럼, 스테레오 오디오 CODEC(630)은 아날로그 기저대 프로세서(606)와 결합될 수 있다. 또한, 오디오 증폭기(632)는 스테레오 오디오 CODEC(630)에 결합될 수 있다. 예시적 실시예에서, 제 1 스테레오 스피커(634) 및 제 2 스테레오 스피커(636)는 오디오 증폭기(632)에 결합된다. 또한, 마이크로폰 증폭기(638)는 스테레오 오디오 CODEC(630)에 결합될 수 있다. 부가적으로, 마이크로폰(640)은 마이크로폰 증폭기(638)에 결합될 수 있다. 특정 실시예에서, 주파수 변조(FM) 라디오 튜너(642)는 스테레오 오디오 CODEC(630)에 결합될 수 있다. FM 안테나(644)는 FM 라디오 튜너(642)에 결합될 수 있다. 또한, 스테레오 헤드폰들(646)은 스테레오 오디오 CODEC(630)에 결합될 수 있다.
[0053] 도 6의 일반적 다이어그램은 아날로그 기저대 프로세서(606)에 결합될 수 있는 라디오 주파수(RF) 트랜시버(648)를 추가로 예시한다. RF 스위치(650)는 RF 트랜시버(648) 및 RF 안테나(652)와 결합될 수 있다. 키패드(654)는 아날로그 기저대 프로세서(606)에 결합될 수 있다. 또한, 마이크로폰을 갖는 모노 헤드셋(656)은 아날로그 기저대 프로세서(606)에 결합될 수 있다. 또한, 진동 디바이스(658)가 아날로그 기저대 프로세서(606)에 결합될 수 있다. 또한, 도 6의 일반적 다이어그램은 온-칩 시스템(602)에 결합될 수 있는 전원공급부(660)를 도시한다. 특정 실시예에서, 전원공급부(660)는 셀룰러 전화(600)의 다양한 콤포넌트들에 전력을 공급하는 직류(DC) 전원공급부이다. 또한, 특정 실시예에서, 전원공급부는 교류(AC)로부터 AC 전원에 결합되는 DC 변압기로 유도되는 DC 전원공급부 또는 재충전가능 DC 배터리이다.
[0054] 도 6의 일반적 다이어그램에 도시된 것처럼, 터치스크린 디스플레이(612), 비디오 포트(618), USB 포트(622), 카메라(628), 제 1 스테레오 스피커(634), 제 2 스테레오 스피커(636), 마이크로폰(640), FM 안테나(644), 스테레오 헤드폰들(646), RF 스위치(648), RF 안테나(650), 키패드(652), 모노 헤드셋(656), 진동기(658), 및 전원공급부(660)는 온-칩 시스템(602) 외부에 있을 수 이다.
[0055] 특정 실시예에서, 디지털 기저대 프로세서(604)는 쓰레드들로부터의 트랜잭션 요청들에 의해 인터페이스들로의 액세스를 지지할 수 있는 메모리 관리 유니트(MMU)(626)를 포함한다. 예를 들어, MMU(662)는 도 2 또는 도 4를 참조로 개시될 수 있으며 프로세싱 지연들을 감소시키기 위한 트랜잭션 요청을 지시하기 위해 인터페이스에 표시되는 비트를 수신할 수 있는 마이크로 변환 색인 버퍼(μTLB)를 포함할 수 있다.
[0056] 도 7은 무선 인터넷 프로토콜(IP) 전화(700)의 예시적 실시예를 도시하는 다이어그램이다. 도시된 것처럼, 무선 IP 전화(700)는 디지털 신호 프로세서(DSP)(704)를 포함하는 온-칩 시스템(702)을 포함한다. 디스플레이 제어기(706)는 DSP(704)에 결합되며 디스플레이(708)는 디스플레이 제어기(706)에 결합된다. 예시적 실시예에서, 디스플레이(708)는 액정 디스플레이(LCD)이다. 또한, 도 7은 키패드(710)가 DSP(704)에 결합될 수 있다는 것을 추가로 도시한다.
[0057] 플래시 메모리(712)는 DSP(704)에 결합될 수 있다. 또한, 동기식 동적 랜덤 액세스 메모리(SDRAM)(714), 정적 랜덤 액세스 메모리(SRAM)(716), 및 전기적으로 소거가능한 프로그램가능 리드 온리 메모리(EEPROM)(718)이 DSP(704)에 결합될 수 있다. 도 7의 일반적 다이어그램은 발광 다이오드(LED)(720)가 DSP(704)에 결합될 수 있다는 것을 도시한다. 부가적으로, 특정 실시예에서, 음성 CODEC(722)은 DSP(704)에 결합될 수 있다. 증폭기(724)는 음성 CODEC(722)에 결합될 수 있고 모노 스피커(726)는 증폭기(724)에 결합될 수 있다. 도 7의 일반적 다이어그램은 음성 CODEC(722)에 결합되는 모노 헤드셋(728)을 추가로 예시한다. 특정 실시예에서, 모노 헤드셋(728)은 마이크로폰을 포함한다.
[0058] WLAN(wireless local area network) 기저대 프로세서(730)는 DSP(704)에 연결될 수 있다. RF 트랜시버(732)는 WLAN 기저대 프로세서(730)에 연결될 수 있고 RF 안테나(734)는 RF 트랜시버(732)에 연결될 수 있다. 특정 실시예에서, 블루투스 제어기(736)가 DSP(704)에 연결될 수 있고 블루투스 안테나(738)가 제어기(736)에 연결될 수 있다. 또한, 도 7의 일반적 다이어그램은 USB 포트(740)가 DSP(704)에 결합될 수 있다는 것을 도시한다. 또한, 전원공급부(742)가 온-칩 시스템(702)에 결합되고 무선 IP 전화(700)의 다양한 콤포넌트들에 전력을 제공한다.
[0059] 도 7의 일반적 다이어그램에 도시된 것처럼, 디스플레이(708), 키패드(710), LED(720), 모노 스피커(726), 모노 헤드셋(728), RF 안테나(734), 블루투스 안테나(738), USB 포트(740), 및 전원공급부(742)는 온-칩 시스템(702) 외부에 있을 수 있고 온-칩 시스템(702)의 하나 이상의 콤포넌트들과 결합될 수 있다. 특정 실시예에서, DSP(704)는 쓰레드들로부터의 트랜잭션 요청들에 의해 인터페이스들로의 액세스를 지시할 수 있는 메모리 관리 유니트(MMU)(726)를 포함한다. 예를 들어, MMU(762)는 도 2 또는 도 4를 참조로 개시될 수 있고 프로세싱 지연들을 감소시키도록 트랜잭션 요청을 지시하기 위해 인터페이스를 표시하는 비트를 수신할 수 있는 마이크로 변환 색인 버퍼(μTLB)를 포함할 수 있다.
[0060] 도 8은 PDA(portable digital assistant)(800)의 예시적 실시예를 예시하는 다이어그램이다. 도시된 것처럼, PDA(800)는 디지털 신호 프로세서(DSP)(804)를 포함하는 온-칩 시스템(802)을 포함한다. 터치스크린 제어기(806) 및 디스플레이 제어기(808)는 DSP(804)에 결합된다. 또한, 터치스크린 디스플레이(810)는 터치스크린 제어기(806) 및 디스플레이 제어기(808)에 결합된다. 또한, 도 8의 일반적 다이어그램은 키패드(812)가 DSP(804)에 결합될 수 있다는 것을 표시한다.
[0061] 특정 실시예에서, 스테레오 오디오 CODEC(826)은 DSP(804)에 결합될 수 있다. 제 1 스테레오 증폭기(828)는 스테레오 오디오 CODEC(826)에 결합될 수 있고 제 1 스테레오 스피커(830)는 제 1 스테레오 증폭기(828)에 결합될 수 있다. 부가적으로, 마이크로폰 증폭기(832)는 스테레오 오디오 CODEC(826)에 결합될 수 있고 마이크로폰(834)은 마이크로폰 증폭기(832)에 결합될 수 있다. 도 8의 일반적 다이어그램은 스테레오 오디오 CODEC(826)에 결합될 수 있는 제 2 스테레오 증폭기(836) 및 제 2 스테레오 증폭기(836)에 결합될 수 있는 제 2 스테레오 스피커(838)를 추가로 도시한다. 특정 실시예에서, 스테레오 헤드폰들(840)은 스테레오 오디오 CODEC(826)에 결합될 수 있다.
[0062] 또한, 도 8의 일반적 다이어그램은 DSP(84)에 결합될 수 있는 802.11 제어기(842) 및 802.11 제어기(842)에 결합될 수 있는 802.11 안테나(844)를 예시한다. 또한, 블루투스 제어기(846)는 DSP(804)에 결합될 수 있고 블루투스 안테나(848)는 블루투스 제어기(846)에 결합될 수 있다. USB 제어기(850)는 DSP(804)에 결합될 수 있고 USB 포트(852)는 USB 제어기(850)에 결합될 수 있다. 부가적으로, 스마트 카드(854), 이를 테면 멀티미디어 카드(MMC) 또는 보안 디지털 카드(SD)는 DSP(804)에 결합될 수 있다. 또한, 전원공급부(856)는 온-칩 시스템(802)에 결합될 수 있고 PDA(800)의 다양한 콤포넌트들에 전력을 제공할 수 있다.
[0063] 도 8의 일반적 다이어그램에 표시된 것처럼, 디스플레이(810), 키패드(812), IrDA 포트(822), 디지털 카메라(824), 제 1 스테레오 스피커(830), 마이크로폰(834), 제 2 스테레오 스피커(838), 스테레오 헤드폰들(840), 802.11 안테나(844), 블루투스 안테나(848), USB 포트(852), 및 전원공급부(850)는 온-칩 시스템(802) 외부에 있고 온-칩 시스템(802)의 하나 이상의 콤포넌트들과 결합될 수 있다. 특정 실시예에서, DSP(804)는 쓰레드들로부터의 트랜잭션 요청들에 의해 인터페이스들로의 액세스를 지시할 수 있는 메모리 관리 유니트(MMU)(862)를 포함한다. 예를 들어, MMU(862)는 도 2 또는 도 4를 참조로 개시될 수 있고 프로세싱 지연들을 감소시키기 위해 트랜잭션 요청들을 지시하기 위해 인터페이스를 표시하는 비트를 수신할 수 있는 마이크로 변환 색인 버퍼(μTLB)를 포함할 수 있다.
[0064] 도 9는 오디오 파일 플레이어(이를 테면, MP3 플레이어)(900)의 예시적 실시예를 예시하는 다이어그램이다. 도시된 것처럼, 오디오 파일 플레이어(900)는 디지털 신호 프로세서(DSP)(904)를 포함하는 온-칩 시스템(902)을 포함한다. 디스플레이 제어기(906)는 DSP(904)에 결합될 수 있으며 디스플레이(908)는 디스플레이 제어기(906)에 결합된다. 예시적 실시예에서, 디스플레이(908)는 액정 디스플레이(LCD)이다. 키패드(910)는 DSP(904)에 결합될 수 있다.
[0065] 도 9의 일반적 다이어그램에 추가로 도시된 것처럼, 플래시 메모리(912) 및 리드 온리 메모리(ROM)(914)는 DSP(904)에 결합될 수 있다. 부가적으로, 특정 실시예에서, 오디오 CODEC(916)은 DSP(94)에 결합될 수 있다. 증폭기(918)는 오디오 CODEC(916)에 결합될 수 있으며 모노 스피커(920)는 증폭기(918)에 결합될 수 있다. 도 9의 일반적 다이어그램은 마이크로폰 입력(922) 및 스테레오 입력(924)이 오디오 CODEC(916)에 결합될 수 있다는 것을 추가로 도시한다. 특정 실시예에서, 스테레오 헤드폰들(926)은 오디오 CODEC(916)에 연결될 수 있다.
[0066] USB 포트(928) 및 스마트 카드(930)는 DSP(904)에 결합될 수 있다. 부가적으로, 전원공급부(932)는 온-칩 시스템(902)에 결합될 수 있고 오디오 파일 플레이어(900)의 다양한 콤포넌트들에 전력을 공급할 수 있다.
[0067] 도 9의 일반적 다이어그램에 도시된 것처럼, 디스플레이(908), 키패드(910), 모노 스피커(920), 마이크로폰 입력(922), 스테레오 입력(924), 스테레오 헤드폰들(926), USB 포트(928), 및 전원공급부(932)가 온-칩 시스템(902) 외부에 있고 온-칩 시스템(902)의 하나 이상의 콤포넌트들과 결합된다. 특정 실시예에서, DSP(904)는 쓰레드들로부터의 트랜잭션 요청들에 의해 인터페이스들에 대한 액세스를 지시할 수 이는 메모리 관리 유니트(MMU)(926)를 포함한다. 예를 들어, MMU(962)는 도 2 또는 도 4를 참조로 개시될 수 있으며 프로세싱 지연들을 감소시키도록 트랜잭션 요청을 지시하기 위해 인터페이스를 표시하는 비트를 수신할 수 있는 마이크로 변환 색인 버퍼(μTLB)를 포함할 수 있다.
일반적 사항(General)
[0068] 본 발명에 개시된 발명의 개념들에 대한 실시예들의 상기 설명은 단지 예시 및 설명을 위해 개시된 것이며 본 발명에 개시된 것과 정확한 형태로 본 발명에 개시된 발명의 개념들을 제한 또는 망라(exhaustive)하고자 의도되는 것은 아니다. 본 발명에 개시되는 발명의 개념들의 범주 및 사상을 이탈하지 않고 당업자들은 다양한 변조들 및 적응들을 인식할 것이다.

Claims (22)

  1. 변환 색인 버퍼(TLB:translation lookaside buffer)로서,
    다수의 인터페이스들 중 하나를 표시하는(indicating) 비트를 저장하도록 구성된 저장기 모듈 ―상기 비트는 물리적 어드레스 범위와 연관됨―; 및
    상기 비트에 기초하여 상기 물리적 어드레스 범위 내의 물리적 어드레스를 상기 다수의 인터페이스들 중 하나로 라우팅(route)하도록 구성된 논리 회로(logic circuit)
    를 포함하는, 변환 색인 버퍼.
  2. 제 1 항에 있어서,
    상기 저장기 모듈은 어드레스 디코더로부터 상기 비트를 수신하도록 구성되는, 변환 색인 버퍼.
  3. 제 2 항에 있어서,
    상기 저장기 모듈은 시스템-온-칩(SOC) 메모리 맵 스트랩핑들을 이용하여 생성되는 상기 비트를 수신하도록 구성되는, 변환 색인 버퍼.
  4. 제 1 항에 있어서,
    상기 저장기 모듈은 상기 TLB 보다 큰 크기를 갖는 제 2 TLB로부터 상기 비트를 수신하도록 구성되는, 변환 색인 버퍼.
  5. 제 4 항에 있어서,
    상기 TLB는 마이크로 변환 색인 버퍼(μTLB)인, 변환 색인 버퍼.
  6. 제 1 항에 있어서,
    상기 저장기 모듈은,
    상기 물리적 어드레스와 연관된 가상 어드레스를 저장하도록 구성된 콘텐츠 액세스가능 메모리(CAM); 및
    상기 비트 및 상기 물리적 어드레스를 저장하도록 구성된 랜덤 액세스 메모리(RAM)
    을 포함하는, 변환 색인 버퍼.
  7. 제 6 항에 있어서,
    상기 논리 회로는,
    상기 물리적 어드레스를 표시하도록 구성된 상기 CAM으로부터의 선택기(selector); 및
    상기 RAM과 연관된 멀티플렉서
    를 포함하며, 상기 멀티플렉서는 상기 선택기와 상기 비트에 기초하여 상기 물리적 어드레스를 라우팅하도록 구성되는, 변환 색인 버퍼.
  8. 제 1 항에 있어서,
    상기 TLB는 휴대용 통신 디바이스에 배치되는, 변환 색인 버퍼.
  9. 메모리 관리 유니트(MMU : memory management unit)로서,
    프로세서 쓰레드(thread)로부터 트랜잭션 요청(transaction request)에 대한 다수의 인터페이스들 중 하나를 식별하는 비트를 제공하도록 구성된 어드레스 디코더 ―상기 비트는 물리적 어드레스 범위와 연관됨―; 및
    상기 물리적 어드레스 범위내의 물리적 어드레스를 상기 비트와 연관시키도록 구성된 저장기 모듈, 및
    상기 비트에 기초하여 상기 다수의 인터페이스들 중 하나로 상기 물리적 어드레스를 라우팅하도록 구성된 논리 회로
    를 포함하는 제 1 변환 색인 버퍼(TLB)
    를 포함하는, 메모리 관리 유니트.
  10. 제 9 항에 있어서,
    상기 어드레스 디코더는 상기 물리적 어드레스 및 시스템-온-칩(SOC) 메모리 맵 스트랩핑들을 이용하는 상기 비트를 결정하도록 구성된, 메모리 관리 유니트.
  11. 제 10 항에 있어서,
    상기 SOC 메모리 맵 스트랩핑은 프로그램된 논리(programmed logic)를 포함하는, 메모리 관리 유니트.
  12. 제 9 항에 있어서,
    제외 엔진(exception engine)으로부터 상기 물리적 어드레스 및 상기 물리적 어드레스와 연관된 가상 어드레스를 수신하도록 구성되며 상기 제 1 TLB에 상기 물리적 어드레스를 제공하도록 구성된 제 2 TLB를 더 포함하는, 메모리 관리 유니트.
  13. 제 12 항에 있어서,
    상기 제 2 TLB는 상기 어드레스 디코더로부터 상기 비트를 수신하고 엔트리에 상기 물리적 어드레스 및 상기 비트를 저장하도록 구성되는, 메모리 관리 유니트.
  14. 제 9 항에 있어서,
    상기 저장기 모듈은,
    상기 물리적 어드레스와 연관된 가상 어드레스를 저장하도록 구성된 콘텐츠 액세스가능 메모리(CAM); 및
    상기 비트 및 상기 물리적 어드레스를 저장하도록 구성된 랜덤 액세스 메모리(RAM)
    를 포함하는, 메모리 관리 유니트.
  15. 제 14 항에 있어서,
    상기 논리 회로는,
    상기 물리적 어드레스를 표시하도록 구성된 상기 CAM으로부터의 선택기; 및
    상기 RAM과 연관되며 상기 선택기 및 상기 비트에 기초하여 상기 물리적 어드레스를 라우팅하도록 구성되는 멀티플렉서
    를 포함하는, 메모리 관리 유니트.
  16. 제 9 항에 있어서,
    상기 MMU는 휴대용 통신 디바이스에 배치되는, 메모리 관리 유니트.
  17. 방법으로서,
    프로세서 쓰레드로부터 트랜잭션 요청을 수신하는 단계 ―상기 트랜잭션 요청은 가상 어드레스를 포함함―;
    상기 가상 어드레스에 해당하는 물리적 어드레스를 식별하는 단계;
    다수의 인터페이스들 중 하나를 식별하는 비트를 제공하기 위해 시스템-온-칩(SOC) 메모리 맵 스트랩핑들을 이용하여 상기 물리적 어드레스를 디코딩하는 단계 ―상기 비트는 물리적 어드레스 범위와 연관됨―;
    마이크로 변환 색인 버퍼(μTLB)에 상기 물리적 어드레스 및 상기 비트를 저장하는 단계;
    상기 μTLB에서 상기 가상 어드레스를 식별하는 단계; 및
    상기 비트에 기초하여 상기 다수의 인터페이스들 중 하나로 상기 물리적 어드레스를 라우팅(routing)하는 단계 ―상기 물리적 어드레스는 상기 물리적 어드레스 범위 내에 있음―,
    를 포함하는, 방법.
  18. 제 17 항에 있어서,
    변환 색인 버퍼(TLB)에 상기 물리적 어드레스를 저장하는 단계; 및
    상기 TLB로부터 상기 μTLB로 상기 물리적 어드레스를 제공하는 단계
    를 포함하는, 방법.
  19. 제 18 항에 있어서,
    상기 TLB로부터 상기 어드레스 디코더에 상기 물리적 어드레스를 제공하는 단계를 더 포함하는, 방법.
  20. 제 18 항에 있어서,
    상기 TLB에서 상기 비트를 수신하는 단계;
    상기 TLB에서 상기 물리적 어드레스와 함께 상기 비트를 저장하는 단계; 및
    상기 물리적 어드레스와 함께 상기 비트를 상기 TLB로부터 상기 μTLB에 제공하는 단계
    를 포함하는, 방법.
  21. 제 17 항에 있어서,
    상기 μTLB가 초기에 상기 가상 어드레스를 포함하지 않는다는 것을 결정하는 단계;
    상기 TLB가 초기에 상기 가상 어드레스를 포함하지 않는다는 것을 결정하는 단계;
    상기 TLB에서 적어도 하나의 엔트리에 상기 가상 어드레스 및 상기 물리적 어드레스를 저장하는 단계
    를 더 포함하며, 상기 μTLB에 상기 물리적 어드레스 및 상기 비트를 저장하는 단계는 상기 μTLB의 적어도 하나의 엔트리에 상기 가상 어드레스, 물리적 어드레스 및 상기 비트를 저장하는 단계를 포함하는, 방법.
  22. 제 17 항에 있어서,
    상기 비트에 기초하여 상기 다수의 인터페이스들 중 하나로 상기 물리적 어드레스를 라우팅하는 단계는 상기 물리적 어드레스를 라우팅하는 상기 다수의 인터페이스들 중 하나를 식별하기 위해 상기 비트를 이용하는 단계를 포함하는, 방법.
KR1020117001612A 2008-06-26 2009-06-18 시스템 인터페이스들로 액세스가 지시된 메모리 관리 유니트 KR20110031350A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/146,657 US9239799B2 (en) 2008-06-26 2008-06-26 Memory management unit directed access to system interfaces
US12/146,657 2008-06-26

Related Child Applications (2)

Application Number Title Priority Date Filing Date
KR1020157024375A Division KR20150109490A (ko) 2008-06-26 2009-06-18 시스템 인터페이스들로 액세스가 지시된 메모리 관리 유니트
KR1020147004572A Division KR20140028151A (ko) 2008-06-26 2009-06-18 시스템 인터페이스들로 액세스가 지시된 메모리 관리 유니트

Publications (1)

Publication Number Publication Date
KR20110031350A true KR20110031350A (ko) 2011-03-25

Family

ID=41010384

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020157024375A KR20150109490A (ko) 2008-06-26 2009-06-18 시스템 인터페이스들로 액세스가 지시된 메모리 관리 유니트
KR1020147004572A KR20140028151A (ko) 2008-06-26 2009-06-18 시스템 인터페이스들로 액세스가 지시된 메모리 관리 유니트
KR1020117001612A KR20110031350A (ko) 2008-06-26 2009-06-18 시스템 인터페이스들로 액세스가 지시된 메모리 관리 유니트

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020157024375A KR20150109490A (ko) 2008-06-26 2009-06-18 시스템 인터페이스들로 액세스가 지시된 메모리 관리 유니트
KR1020147004572A KR20140028151A (ko) 2008-06-26 2009-06-18 시스템 인터페이스들로 액세스가 지시된 메모리 관리 유니트

Country Status (7)

Country Link
US (1) US9239799B2 (ko)
EP (1) EP2307966A1 (ko)
JP (3) JP5680533B2 (ko)
KR (3) KR20150109490A (ko)
CN (2) CN102591801B (ko)
TW (1) TW201015320A (ko)
WO (1) WO2009158269A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5433349B2 (ja) * 2009-08-27 2014-03-05 ルネサスエレクトロニクス株式会社 データプロセッサ
US8429378B2 (en) * 2010-07-06 2013-04-23 Qualcomm Incorporated System and method to manage a translation lookaside buffer
CN101950279B (zh) * 2010-09-30 2012-09-19 华为技术有限公司 均衡数据信息流量的方法、总线系统和译码器
US9405700B2 (en) * 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
KR101218684B1 (ko) 2011-01-07 2013-01-21 엘지전자 주식회사 이동 단말기 및 이동 단말기의 데이터 출력 방법
WO2013101168A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Translation lookaside buffer for multiple context compute engine
US10037228B2 (en) * 2012-10-25 2018-07-31 Nvidia Corporation Efficient memory virtualization in multi-threaded processing units
US9043612B2 (en) * 2013-03-12 2015-05-26 International Business Machines Coropration Protecting visible data during computerized process usage
US9645934B2 (en) * 2013-09-13 2017-05-09 Samsung Electronics Co., Ltd. System-on-chip and address translation method thereof using a translation lookaside buffer and a prefetch buffer
US9645941B2 (en) 2013-09-26 2017-05-09 Cavium, Inc. Collapsed address translation with multiple page sizes
US9639476B2 (en) 2013-09-26 2017-05-02 Cavium, Inc. Merged TLB structure for multiple sequential address translations
US9268694B2 (en) 2013-09-26 2016-02-23 Cavium, Inc. Maintenance of cache and tags in a translation lookaside buffer
US9208103B2 (en) 2013-09-26 2015-12-08 Cavium, Inc. Translation bypass in multi-stage address translation
US9417656B2 (en) * 2014-01-09 2016-08-16 Netronome Systems, Inc. NFA byte detector
US9836410B2 (en) * 2015-04-15 2017-12-05 Qualcomm Incorporated Burst translation look-aside buffer
US9977745B2 (en) 2016-01-05 2018-05-22 Knuedge, Inc. Flow control through packet router
US10120812B2 (en) * 2016-02-03 2018-11-06 Nutanix, Inc. Manipulation of virtual memory page table entries to form virtually-contiguous memory corresponding to non-contiguous real memory allocations
US20190087351A1 (en) * 2017-09-20 2019-03-21 Qualcomm Incorporated Transaction dispatcher for memory management unit
CN111221465B (zh) * 2018-11-23 2023-11-17 中兴通讯股份有限公司 Dsp处理器、系统以及外部存储空间访问方法
CN112840327A (zh) * 2019-02-21 2021-05-25 华为技术有限公司 一种片上系统、访问命令的路由方法及终端
KR20220032808A (ko) 2020-09-08 2022-03-15 삼성전자주식회사 프로세싱-인-메모리, 메모리 액세스 방법 및 메모리 액세스 장치
WO2022119704A2 (en) * 2020-12-03 2022-06-09 Rambus Inc. Dynamically configurable memory error control schemes

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63188251A (ja) * 1987-01-31 1988-08-03 Toshiba Corp アドレス変換方式
US5386527A (en) 1991-12-27 1995-01-31 Texas Instruments Incorporated Method and system for high-speed virtual-to-physical address translation and cache tag matching
US5784706A (en) * 1993-12-13 1998-07-21 Cray Research, Inc. Virtual to logical to physical address translation for distributed memory massively parallel processing systems
US5860146A (en) 1996-06-25 1999-01-12 Sun Microsystems, Inc. Auxiliary translation lookaside buffer for assisting in accessing data in remote address spaces
JP3133732B2 (ja) * 1998-11-25 2001-02-13 甲府日本電気株式会社 マルチスレーブバスラインシステム及びシリアル転送方法
JP2001034537A (ja) 1999-07-23 2001-02-09 Toshiba Corp アドレス変換回路
US6412043B1 (en) 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
JP2002132581A (ja) * 2000-10-25 2002-05-10 Mitsubishi Electric Corp メモリ管理機構
DE10127198A1 (de) 2001-06-05 2002-12-19 Infineon Technologies Ag Vorrichtung und Verfahren zum Ermitteln einer physikalischen Adresse aus einer virtuellen Adresse unter Verwendung einer hierarchischen Abbildungsvorschrift mit komprimierten Knoten
US6944785B2 (en) 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
US7433948B2 (en) 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
GB2386441B (en) * 2002-03-12 2006-09-27 Advanced Risc Mach Ltd Bus interface selection by page table attributes
GB2396930B (en) * 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
US20040128574A1 (en) * 2002-12-31 2004-07-01 Franco Ricci Reducing integrated circuit power consumption
US6912644B1 (en) * 2003-03-06 2005-06-28 Intel Corporation Method and apparatus to steer memory access operations in a virtual memory system
US20040225840A1 (en) 2003-05-09 2004-11-11 O'connor Dennis M. Apparatus and method to provide multithreaded computer processing
JP2005310072A (ja) 2004-04-26 2005-11-04 Matsushita Electric Ind Co Ltd アドレス変換装置、及びメモリアクセス方法
US7685365B2 (en) 2004-09-30 2010-03-23 Intel Corporation Transactional memory execution utilizing virtual memory
US7426626B2 (en) * 2005-08-23 2008-09-16 Qualcomm Incorporated TLB lock indicator
JP5300407B2 (ja) * 2008-10-20 2013-09-25 株式会社東芝 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法

Also Published As

Publication number Publication date
JP6305905B2 (ja) 2018-04-04
KR20140028151A (ko) 2014-03-07
CN102591801B (zh) 2015-08-19
EP2307966A1 (en) 2011-04-13
CN102067092A (zh) 2011-05-18
US20090327647A1 (en) 2009-12-31
JP5680533B2 (ja) 2015-03-04
KR20150109490A (ko) 2015-10-01
TW201015320A (en) 2010-04-16
JP2017084389A (ja) 2017-05-18
JP2011526042A (ja) 2011-09-29
CN102067092B (zh) 2014-02-12
WO2009158269A1 (en) 2009-12-30
JP2015072696A (ja) 2015-04-16
CN102591801A (zh) 2012-07-18
US9239799B2 (en) 2016-01-19

Similar Documents

Publication Publication Date Title
US9239799B2 (en) Memory management unit directed access to system interfaces
US8429378B2 (en) System and method to manage a translation lookaside buffer
US7636810B2 (en) Method, system, and apparatus for memory compression with flexible in-memory cache
JP4173192B2 (ja) メモリバンクを動的に管理する方法及び装置
KR101252744B1 (ko) 캐시(cache) 라인 대체를 위한 시스템들 및 방법들
KR101768828B1 (ko) 메모리 물리 어드레스 조회 방법 및 장치
US8117420B2 (en) Buffer management structure with selective flush
US20170024145A1 (en) Address translation and data pre-fetch in a cache memory system
CN102884506B (zh) 使用用于转换并存储数据值的指令来配置替代存储器存取代理
US20050246502A1 (en) Dynamic memory mapping
WO2018077219A1 (zh) 内存管理方法及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
A107 Divisional application of patent
AMND Amendment
B90T Transfer of trial file for re-examination
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20140124

Effective date: 20141128

S901 Examination by remand of revocation
E902 Notification of reason for refusal
AMND Amendment
S601 Decision to reject again after remand of revocation
A107 Divisional application of patent
AMND Amendment
J201 Request for trial against refusal decision
GRNO Decision to grant (after opposition)