KR20120129695A - 메모리 관리 유닛, 이를 포함하는 장치들 및 이의 동작 방법 - Google Patents

메모리 관리 유닛, 이를 포함하는 장치들 및 이의 동작 방법 Download PDF

Info

Publication number
KR20120129695A
KR20120129695A KR1020110048140A KR20110048140A KR20120129695A KR 20120129695 A KR20120129695 A KR 20120129695A KR 1020110048140 A KR1020110048140 A KR 1020110048140A KR 20110048140 A KR20110048140 A KR 20110048140A KR 20120129695 A KR20120129695 A KR 20120129695A
Authority
KR
South Korea
Prior art keywords
level
page table
page
address
cache
Prior art date
Application number
KR1020110048140A
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 삼성전자주식회사
Priority to KR1020110048140A priority Critical patent/KR20120129695A/ko
Priority to US13/473,638 priority patent/US20120297139A1/en
Publication of KR20120129695A publication Critical patent/KR20120129695A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/68Details of translation look-aside buffer [TLB]
    • G06F2212/681Multi-level TLB, e.g. microTLB and main TLB

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)에 가상주소의 페이지 번호에 상응하는 물리 주소의 프레임 번호를 매칭하는 단계, 매칭이 되지 않는 경우 PTT 캐시에 접근하는 단계, 상기 PTT 캐시에서 상기 가상주소 중 접근하려는 k번째 페이지 번호에 상응하는 제k 레벨의 페이지 테이블에 대한 접근정보가 있는지 확인하는 단계, 상기 접근정보를 이용하여 물리적 페이지의 베이스 주소를 획득하는 단계, 상기 물리적 페이지에서 페이지 오프셋을 이용하여 상기 가상주소에 상응하는 상기 물리 주소를 매칭하는 단계를 포함한다.

Description

메모리 관리 유닛, 이를 포함하는 장치들 및 이의 동작 방법{METHOD OF OPERATING MEMORY MANAGEMENT UNIT AND APPARATUS OF THE SAME}
본 발명의 개념에 따른 실시 예는 메모리 관리 유닛에 관한 것으로, 특히 미스 패널티(miss penalty)를 숨길 수 있는 메모리 관리 유닛, 이를 포함하는 장치들 및 이의 동작 방법에 관한 것이다.
메모리 관리 유닛(memory management unit; 이하 MMU)은 CPU(central processing unit)로 대표되는 직접 메모리 접근 유닛들에 의해 요구되는 메모리 접근(memory access)을 처리하기 위한 하드웨어 컴포넌트(hardware component)이다. 상기 메모리 관리 유닛은 페이지 메모리 관리 유닛(paged memory management unit ; PMMU)라고 불릴 수 있다.
상기 메모리 관리 유닛이 멀티 채널 버스 인터페이스(multi channel bus interface)를 가질 때, 상기 메모리 관리 유닛은 채널에서 미스(miss)로 인해 여러가지 문제점이 발생할 수 있다.
예컨대, 상기 메모리 관리 유닛의 한 채널에서 가상 주소가 미스(miss)시, 다른 채널에서 출력되는 가상 주소는 상기 미스가 처리될 때까지 기다려야 할 수 도 있다.
따라서 상기 메모리 관리 유닛은 상기 미스를 처리하는데 요구되는 시간, 즉 미스 패널티(miss penalty)를 감소시킬 필요가 있다.
본 발명이 이루고자 하는 기술적인 과제는 메모리 관리 유닛에 부가적인 캐시를 구성함으로써 미스 패널티(miss penalty)를 숨길 수 있는 메모리 관리 유닛, 이를 포함하는 장치들, 및 이의 동작 방법을 제공하는 것이다.
상술한 기술적 과제를 해결하기 위하여, 본 발명의 일실시예에 따른 N 레벨 페이지 테이블을 이용하는 메모리 관리 유닛의 동작 방법은 TLB(Translation Lookaside Buffer)에 가상주소의 페이지 번호에 상응하는 물리 주소의 프레임 번호를 매칭하는 단계; 매칭이 되지 않는 경우 PTT 캐시에 접근하는 단계; 상기 PTT 캐시에서 상기 가상주소 중 접근하려는 k번째 페이지 번호에 상응하는 제k 레벨의 페이지 테이블에 대한 접근정보가 있는지 확인하는 단계; 상기 접근정보를 이용하여 물리적 페이지의 베이스 주소를 획득하는 단계;(k>1) 상기 물리적 페이지에서 페이지 오프셋을 이용하여 상기 가상주소에 상응하는 상기 물리 주소를 매칭하는 단계를 포함한다.
상기 확인하는 단계는 상기 PTT 캐시에 상기 제k 레벨의 페이지 테이블에 대한 접근정보가 있는 경우, 상기 가상주소 중 k번째 페이지 번호에 상응하는 제k 레벨 페이지 테이블의 접근정보를 통해 제(k+1) 레벨 페이지의 베이스 주소를 획득한다.
상기 확인하는 단계는 상기 PTT 캐시에 해당 레벨의 페이지 테이블에 대한 접근정보가 없는 경우, 레지스터로부터 알아낸 제1 레벨 페이지 테이블의 베이스 주소를 획득하는 단계; 상기 가상주소의 제1 내지 k번째의 페이지 번호를 순차적으로 이용하여 상기 제1 레벨 페이지 테이블부터 제k 레벨의 페이지 테이블에 순차적으로 접근하는 단계; 및 상기 제k 레벨 페이지 테이블로부터 상기 k번째 페이지 번호를 이용하여 제(k+1) 레벨 페이지 테이블의 베이스 주소를 획득하는 단계를 포함한다.
상기 확인하는 단계는 상기 제k 레벨 페이지 테이블의 접근 정보를 상기 PTT 캐시에 저장하는 단계를 더 포함한다.
상기 접근정보는 상기 제k 레벨 페이지 테이블의 레벨 아이디, 상기 k번째 페이지 테이블 번호에 상응하는 태그, 상기 제(k+1) 레벨 페이지 테이블의 베이스 주소에 상응하는 데이터를 포함한다.
상기 접근정보는 상기 태그 간에 완전연관(Fully Associative)된다.
상기 물리적 페이지의 베이스 주소를 획득하는 단계는 상기 PTT 캐시에서 상기 제k 레벨이 제1레벨부터 N레벨까지 순차적으로 증가할 때마다 각각의 레벨 페이지 테이블에 대한 접근 정보로부터 다음 레벨 페이지 테이블의 베이스 주소를 획득하는 단계; 상기 N레벨 페이지 테이블의 접근 정보로부터 상기 N번째 페이지 번호를 이용하여 상기 물리적 페이지의 베이스 주소를 획득하는 단계를 포함한다.
상기 물리적 페이지의 베이스 주소를 획득하는 단계는 상기 PTT 캐시에서 상기 제k 레벨의 페이지 테이블에 대한 접근 정보를 획득하고 이를 이용하여 제(k+1) 레벨의 페이지 테이블의 베이스 주소를 획득하는 단계; 상기 제(k+1) 레벨이 N레벨까지 순차적으로 증가하며 각 레벨의 페이지 테이블에 접근하여 다음 레벨의 페이지 테이블의 주소를 획득하는 것을 반복하는 단계; 및 상기 N레벨 페이지 테이블과 상기 N번째 페이지 번호를 이용하여 상기 물리적 페이지의 베이스 주소를 획득하는 단계를 포함한다.
상술한 기술적 과제를 해결하기 위하여 본 발명의 다른 실시예에 따른 N 레벨 페이지 테이블을 이용하는 메모리 관리 유닛(N>1)은 가상주소의 페이지 번호에 매칭되는 물리 주소의 프레임 번호를 알려주어 상기 가상주소를 상기 물리 주소로 변환하여 알려주는 TLB(Table Lookaside Buffer); 상기 TLB(Translation Lookaside Buffer)에서 매칭이 되지 않는 경우, 상기 물리 주소에 대한 물리적 페이지에 접근하기 위해 k번째 페이지 번호에 상응하는 제k 레벨 페이지 테이블의 접근 정보를 알려주는 PTT캐시(Page Table Translation Cache)를 포함한다.
상기 접근정보는 상기 제k 레벨 페이지 테이블의 레벨 아이디, 상기 k번째 페이지 테이블 번호에 상응하는 태그 및 상기 제(k+1) 레벨 페이지 테이블의 베이스 주소에 상응하는 데이터를 포함하는 N 레벨 페이지 테이블을 이용한다.
상기 접근정보는 상기 태그 간에 완전연관(Fully Associative)된다.
본 발명의 실시 예에 따른 메모리 관리 유닛 및 메모리 관리 유닛의 동작방법은 부가적인 캐시를 구성함으로써 미스 처리시 발생할 수 있는 성능 감소를 최소화할 수 있는 효과가 있다.
도 1은 본 발명의 실시 예에 따른 메모리 관리 유닛을 포함하는 전자 장치의 일 실시 예를 나타낸다.
도 2는 도 1에 도시된 프로세서의 블록도를 나타낸다.
도 3은 가상 주소와 물리 주소의 맵핑을 나타내는 다이어그램이다.
도 4a는 도 2에 도시된 메모리 관리 유닛의 일 실시예에 따른 구체적인 블록도를 나타낸다.
도 4b는 도 2에 도시된 메모리 관리 유닛의 다른 일 실시예에 따른 구체적인 블록도를 나타낸다.
도 5는 도 4a 및 도 4b에 도시된 PTT 캐시의 일실시예에 따른 동작원리를 설명하기 위한 개념도이다.
도 6은 도 4a 및 도 4b에 도시된 PTT 캐시의 구체적인 블록도이다.
도 7a는 도 4a 및 도 4b에 도시된 PTT 캐시의 다른 실시예에 따른 동작원리를 설명하기 위한 개념도이다.
도 7b는 도 4a 및 도 4b에 도시된 PTT 캐시의 또다른 일실시예에 따른 동작원리를 설명하기 위한 개념도이다.
도 8은 도 4a 및 도 4b에 도시된 PTT 캐시의 또다른 일실시예에 따른 동작원리를 설명하기 위한 개념도이다.
도 9는 도 4a 및 도 4b에 도시된 메모리 관리 유닛의 일실시예에 따른 동작 방법을 설명하기 위한 플로우 차트이다.
도 10은 도 7b에 도시된 메모리 관리 유닛의 동작 방법을 설명하기 위한 플로우 차트이다.
도 11은 도 1에 도시된 메모리 관리 유닛을 포함하는 전자 장치의 다른 실시 예를 나타낸다.
도 12는 도 1에 도시된 메모리 관리 유닛을 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 다수개의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 메모리 관리 유닛을 포함하는 전자 장치의 일 실시 예를 나타낸다.
도 1을 참조하면, PC(personal computer), 태블릿 PC(tablet PC), 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어와 같은 데이터 처리 장치로 구현될 수 있는 전자 장치(100)는 전자 장치(100)의 전반적인 동작을 제어하는 프로세서(1)를 포함한다.
프로세서(1)는 프로그램 명령들(program instructions)을 읽고 실행하는 유닛이다.
예컨대, 프로세서(1)는 상기 프로그램 명령들(예컨대, 입력 장치(120)를 통하여 입력된 입력 신호에 의해 생성된 프로그램 명령들)을 실행하고 메모리(미도시)에 저장된 데이터를 리드(read)하고 리드된 데이터를 디스플레이(130)를 통하여 디스플레이하도록 한다. 예컨대, 입력 장치(120)는 터치 패드(touch pad) 또는 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(key pad), 또는 키보드로 구현될 수 있다.
도 2는 도 1에 도시된 프로세서의 블록도를 나타낸다.
도 1과 도 2를 참조하면, 프로세서(1)는 중앙 처리 유닛(central processing unit(CPU); 3), 캐시(cache, 5), 및 메모리 관리 유닛(memory management unit(MMU), 10)을 포함한다.
CPU(3)는 프로그램 명령들을 읽고 실행하는 동작을 수행하는 프로세서(1)의 부분이다.
캐시(5)는 데이터를 보다 빠르게 리드하기 위해 상기 데이터를 저장하는 컴포넌트(component)이다.
MMU(10)는 CPU(3)에 의해 요구되는 메모리(미도시)의 접근을 처리하기 위한 하드웨어 컴포넌트이다.
MMU(10)의 기능은 가상 주소들(virtual addresses)을 물리 주소들(physical addresses)로의 번역(translation), 메모리 보호, 캐시(5)의 제어, 버스 중재(bus arbitration), 또는 뱅크 스위칭(bank switching)을 포함한다.
실시 예에 따라 프로세서(1)는 시스템 주변 유닛(50), 멀티 미디어 가속 유닛(multimedia acceleration unit; 60), 접속 유닛(connectivity unit; 70), 디스플레이 컨트롤러(80), 및 메모리 인터페이스 유닛(90)을 더 포함할 수 있다.
시스템 주변 유닛(50), 멀티 미디어 가속 유닛(60), 접속 유닛(70), 디스플레이 컨트롤러(80), 및 메모리 인터페이스 유닛(90) 각각은 시스템 버스(30)를 통해 데이터나 명령을 주고 받는다.
시스템 버스(30)는 복수의 채널들을 포함할 수 있다. 예컨대, 복수의 채널들은 리드 데이터 채널, 리드 주소 채널, 라이트 주소 채널, 및 라이트 데이터 채널을 포함할 수 있다.
시스템 주변 유닛(50)은 실시간 클럭(real-time clock (RTC)), 위상 동기 루프(phase-locked loop (PLL)), 및 워치독 타이머(watch dog timer)를 포함한다.
멀티 미디어 가속 유닛(60)은 그래픽 엔진을 포함한다. 실시 예에 따라, 멀티 미디어 가속 유닛(60)은 카메라 인터페이스, 그래픽 계산을 수행하기 위해 프레임 버퍼 또는 다른 비디오 디스플레이 회로(circuitry)와 집적된 그래픽 엔진, 및 압축되지 않은 디지털 데이터를 전송하기 위한 오디오/비디오 인터페이스인 HDMI(High-Definition Multimedia Interface)을 포함할 수 있다.
실시 예에 따라, MMU(10)는 상기 그래픽 엔진으로부터 출력되는 가상 주소를 물리 주소로 번역하기 위해 사용될 수 있다.
실시 예에 따라 멀티 미디어 가속 유닛(60)은 HDMI 대신에 아날로그 텔레비전 인코딩 시스템인 NTSC(national television system committee)/PAL(phase alternate line)을 포함할 수 있다.
접속 유닛(70)은 오디오 인터페이스(Audio IF), ATA(Advanced Technology Attachment)와 같은 스토리지 인터페이스(storage IF), 및 접속 인터페이스 (connectivity IF)를 포함할 수 있다. 예컨대, 접속 유닛(70)은 입력 장치(120)와 통신을 수행하도록 한다.
디스플레이 컨트롤러(80)는 데이터를 디스플레이(130)에 디스플레이하도록 제어한다.
실시 예에 따라, MMU(10)는 디스플레이 컨트롤러(80)으로부터 출력되는 가상 주소를 물리 주소로 번역하기 위해 사용될 수 있다.
메모리 인터페이스 유닛(90)은 메모리(미도시)의 종류(예컨대, 플래시 메모리, 또는 DRAM)에 따라 메모리를 접근 가능하도록 하는 인터페이스이다.
도 3은 가상 주소와 물리 주소의 맵핑을 나타내는 다이어그램이다.
도 1 내지 도 3을 참조하면, 가상 주소 공간(virtual address space)은 복수의 페이지들(PN0~PNn)로 나뉠 수 있다.
복수의 페이지들(PN0~PNn) 각각은 인접한 가상 주소들의 블록이다. 복수의 페이지들(PN0~PNn) 각각의 사이즈는 일반적으로 4KB이다. 실시 예에 따라 복수의 페이지들(PN0~PNn) 각각의 사이즈는 달라질 수 있다.
물리 주소 공간(physical address space)은 가상 주소 공간의 페이지와 유사하게 복수의 프레임들(FN0~FNn)로 나뉠 수 있다. 복수의 프레임들(FN0~FNn) 각각은 고정된 크기를 가진다.
가상 주소(예컨대, VA2)는 페이지 번호(예컨대, PN2)와 페이지 내의 오프셋(예컨대, OFF2)을 포함한다. 즉, 가상 주소는 수학식 1과 같이 나타낼 수 있다.
[수학식 1]
VAi=PNj+OFFx
여기서, i, j, 및 x는 1 이상의 자연수를 나타내고, VAi는 가상 주소, PNj는 페이지 번호, 및 OFFx는 오프셋을 나타낸다.
페이지 번호(PN2)는 페이지 테이블(115)에서 인덱스(index)로서 사용된다.
오프셋(OFF2)은 프레임 번호(예컨대, FN2)와 결합하여 물리 주소(PA2)를 정의한다.
물리 주소는 수학식 2와 같이 나타낼 수 있다.
[수학식 2]
PAr=FNs+OFFx
여기서, r, s, 및 x는 1이상의 자연수를 나타내고, PAr는 물리 주소, FN는 프레임 번호, 및 OFFx는 오프셋을 나타낸다.
페이지 번호(PN2)는 가상 페이지 번호(virtual page number)로 호칭되며, 프레임 번호(FN2)는 물리적 페이지 번호(physical page number)로 호칭될 수 있다.
페이지 테이블(115)은 페이지의 가상 주소와 프레임의 물리 주소 사이에 매핑(mapping)을 가진다. 이 때 페이지 테이블(115)은 메모리(미도시), 캐시(5)에 존재할 수 있다.
도 4a는 도 2에 도시된 메모리 관리 유닛의 일 실시예에 따른 구체적인 블록도를 나타내고, 도 4b는 도 2에 도시된 메모리 관리 유닛의 다른 일 실시예에 따른 구체적인 블록도를 나타낸다.낸다.
도 1 내지 도 4a를 참조하면, MMU(10)는 TLB(Translation Lookaside Buffer; 이하 TLB, 12) 및 PTT 캐시(Page Table Translation Cache,15)를 포함하고, CPU(3) 및 메모리와 복수의 채널들(R, AR, AW, 및 W)로 연결되어 있다. 복수의 채널들(R, AR, AW, 및 W) 각각은 리드 데이터 채널(read data channel; R), 리드 주소 채널(AR), 라이트 주소 채널(write address channel; AW), 및 라이트 데이터 채널(write data channel; W)이다.
MMU(10)는 페이지 테이블(115)에 접근하기 위해 가상 주소(VA)를 이용하여 페이지 물리 주소(PPA)를 계산하여 출력한다. 페이지 물리 주소(PPA)는 가상 주소(VA)의 페이지 번호(PN)와 오프셋(예컨대, 페이지 테이블 포인터)을 결합하여 페이지 테이블(115)에 인덱스로서 접근하기 위한 주소이다.
TLB(12)는 가상 주소 번역 속도(virtual address translation speed)를 향상시키기 위해서 사용되는 메모리 관리 하드웨어이며, 페이지 번호(PN)와 프레임 번호(FN)가 매핑되어 있다. MMU(10)는 가상주소를 물리 주소로 번역을 시도할 때 TLB(12)를 먼저 확인하여 TLB에 매핑(mapping) 정보가 있다면 메모리에 접근하여 해당 매핑 정보를 읽어들일 필요없이 바로 번역을 처리한다(TLB hit).
가상 주소(VA)의 페이지 번호(PN)가 프레임 번호(FN)와 매칭되지 않을 때(TLB miss), 페이지 테이블 워크(page table walk)가 수행된다. 페이지 테이블 워크란 가상 주소(VA)의 페이지 번호(PN)와 프레임 번호(FN)가 TLB(12)에서 매칭되지 않을 때, 가상 주소(VA)의 페이지 번호(PN)와 프레임 번호(FN)가 메모리에 저장된 페이지 테이블(115)에 존재하는지 여부를 찾는 과정(process)를 의미한다. 이 때 페이지 테이블(115)는 멀티 레벨(예컨대, N 레벨, N은 2 이상의 자연수) 페이지 테이블일 수 있고, 실시예에 따라 다양하게 구현될 수 있다.
PTT 캐시(15) 역시 가상 주소 번역 속도(virtual address translation speed)를 향상시키기 위해서 사용되는 메모리 관리 하드웨어이나 TLB(12)와 달리, 이전에 멀티 레벨 페이지 테이블에 접근했던 정보를 저장한다. PTT 캐시(15)는 페이지 테이블 워크상 페이지 테이블에의 빈번한 접근에 의해 발생하는 오버헤드를 줄이기 위하여 페이지 테이블에 대한 접근정보를 저장하여 둔다. 즉, PTT 캐시(15)는 동일한 페이지 테이블에 재접근시 상기 접근정보를 이용하게 함으로써 오버헤드를 감소시키고 가상 주소 번역 속도를 향상시키는 효과가 있다. 설명의 편의를 위하여 PTT 캐시(15)의 구체적인 구성 및 동작에 대한 설명은 도 5 내지 8에서 상세히 설명한다.
도 4a 또는 도 4b를 참조하면, 캐시(5)는 상기 MMU(10)에 의해 변환된 물리 주소를 이용하여 데이터를 메모리(110)의 데이터/명령부(117)에서 읽어와 상기 데이터를 저장하는 컴포넌트이다.
그러나 도 4a에 도시된 실시예와 달리, 도 4b에 도시된 페이지 테이블(115)은 캐시(5) 내에 위치할 수도 있다. 이 경우 페이지 테이블 워크(page table walk)는 MMU(10)와 캐시(5) 사이에서 이루어진다.
도 5는 도 4a 및 도4b에 도시된 PTT 캐시의 일실시예에 따른 동작원리를 설명하기 위한 개념도이다.
도 5에 도시된 페이지 테이블은 탑-다운(top-down) 방식의 계층구조 페이지 테이블 구성이다. CPU(3)를 통해 임의의 프로그램 시퀀스(sequence)가 MMU(10)에 가상주소(VA)의 접근을 요청하면, MMU(10)에서는 그 가상주소(VA)에 매핑된 물리주소(PA)로의 변환을 위해 TLB(12)에 접근한다. 이때 해당 주소 변환 정보가 TLB에 없을 경우 페이지 테이블 워크(page table work)가 일어난다.
MMU(10)는 레지스터(35)로부터 제1 레벨 페이지 테이블의 베이스 주소를 획득한다. MMU(10)는 가상주소(VA)의 상위 비트들을 해당 레벨의 페이지 번호(Page Numbers)값으로 계산해서 제2 레벨 페이지 테이블부터 N레벨 페이지 테이블까지 각 레벨의 페이지 테이블의 베이스 주소를 얻는다.
PTT 캐시(15)는 MMU(10)가 상술한 바와 같이,가상주소(VA)의 상위 비트들을 해당 레벨의 페이지 번호(Page Numbers)값으로 계산해서 제2 레벨 페이지 테이블부터 N레벨 페이지 테이블(115)까지 각 레벨의 페이지 테이블(115)의 베이스 주소를 각각 처음 얻을 때 각각의 페이지 테이블 레벨의 접근 정보를 저장한다.
예컨대, 도시된 바와 같이 k번째 페이지 번호를 이용하는 경우, PTT 캐시(15)에서 k 번째 페이지 번호에 맵핑되는 접근정보가 있는지 확인한다. k번째 페이지 번호에 맵핑되는 접근정보가 있는 경우, PTT 캐시(15)는 상기 접근정보로부터 제(k+1) 레벨 페이지 테이블의 베이스 주소를 알려준다. MMU(10)는 가상주소(VA) 중 상기 k번째 페이지 번호의 하위비트인 (k+1)번째 페이지 번호를 추출한다. MMU(10)는 상기 제(k+1) 레벨 페이지 테이블의 베이스 주소 및 상기 (k+1)번째 페이지 번호를 이용하여 제(k+2) 레벨 페이지 테이블에 접근한다.
상기 과정을 반복하여 N번째 페이지 번호에 이르면, N번째 페이지 번호는 물리 페이지(Physical Page)의 베이스 주소를 알려준다. 상기 물리 페이지에서 페이지 오프셋(Page Offset)값을 이용하여 상기 가상주소(VA)에 상응하는 물리주소(PA)를 얻는다.
즉, MMU(10)가 동일한 페이지 테이블에 재접근하는 경우, 페이지 테이블 워크(Page Table Work)가 발생하더라도 상술한 바와 같이 PTT 캐시(15)가 상기 페이지 테이블에 대한 초기의 접근정보를 저장하고 있으므로 PTT 캐시(15)에서 다음 레벨의 페이지 테이블 정보를 얻을 수 있어 메모리에의 접근횟수가 줄어든다. 결국 멀티미디어 지능소자(Multimedia IP)의 경우, PTT 캐시(15)는 메모리(110) 접근시 정지(stall)에 의한 프레임 끊김 등 실시간 제약사항(Real Time Constraint)에 따른 TLB 미스 핸들링 오버헤드(TLB miss handling overhead)는 감소시킬 수 있다.
도 6은 도 4a 및 도 4b에 도시된 PTT 캐시의 구체적인 블록도이다.
도 6을 참조하면, PTT 캐시(15)에 저장되는 임의의 k레벨 페이지 테이블의 접근 정보는 레벨 아이디(Level ID), 태그(Tag) 및 데이터(Data)를 포함한다.
레벨 아이디(Level ID)는 수 비트(예컨대, 1이상의 비트)로서 레벨의 위치를 나타낸다. 예를 들어 4개의 레벨 페이지 테이블이 있는 경우 레벨 아이디는 2 비트로 구성될 수 있고, 8개의 레벨 페이지 테이블이 있는 경우 레벨 아이디는 3비트로 구성될 수 있다.
태그(Tag)는 제k 레벨 페이지 테이블의 인덱스로서, 가상주소(VA)에서 k번째 페이지 번호에 맵핑된다. 상기 태그는 서로 완전 연관(fully associative) 방식으로 구성된다. 즉, 복수의 태그 중 하나의 태그를 알게 되면 해당 레벨 페이지 테이블 접근 정보를 획득하고, 상기 접근 정보에서 이어서 다음 태그로 연결되어 다음 레벨의 페이지 테이블 접근 정보도 알 수 있다.
데이터(DATA)는 멀티 레벨 페이지 테이블(115)의 베이스 주소들을 저장한다. PTT 캐시(15)는 가상주소의 k번째 페이지 번호에 맵핑되는 동일한 태그(Tag)가 있는지를 확인하여, 동일한 태그가 발견되면(PTT Cache hit) 해당 태그에 맵핑되는 다음 레벨의 페이지 테이블의 베이스 주소, 즉, 제(k+1) 레벨 페이지 테이블의 베이스 주소를 제공한다.
도 7a는 도 4a 및 도 4b에 도시된 PTT 캐시의 다른 실시예에 따른 동작원리를 설명하기 위한 개념도이고, 도 7b는 도 4a 및 도 4b에 도시된 PTT 캐시의 또다른 일실시예에 따른 동작원리를 설명하기 위한 개념도이다.
도 7a 및 도 7b는 2-레벨 페이지 테이블 구조로 페이지 사이즈가 4KB인 경우를 가정한 것이다. 가상주소(VA)는 총 32비트이고, 페이지 번호는 20비트, 페이지 오프셋은 12비트라고 가정한다. 그러나 이에 한정되는 것은 아니며 실시예에 따라 다르게 정해질 수 있다.
CPU(3)를 통해 임의의 프로그램 시퀀스(sequence)가 MMU(10)에 가상주소(VA)의 접근을 요청하면, MMU(10)에서는 그 가상주소(VA)에 매핑된 물리주소(PA)로의 변환을 위해 TLB(12)에 접근한다. 이때 해당 주소 변환 정보가 TLB에 없을 경우 페이지 테이블 워크(page table work)가 일어난다.
먼저 페이지 테이블에 처음 접근할 때 MMU(10)는 레지스터(35)로부터 제1 레벨 페이지 테이블의 베이스 주소를 획득한다. MMU(10)는 가상주소(VA) 중 최상위 비트부터 10비트를 첫번째 페이지 번호로, 다음 11번째 비트부터 20번째 비트까지를 두번째 페이지 번호로 인식하고 나머지 21번째 비트부터 마지막 비트까지 페이지 오프셋으로 인식한다. 상기 베이스 주소를 이용하여 제1 레벨 페이지 테이블에 접근하면 두번째 페이지 번호를 이용하여 상기 제1 레벨 페이지 테이블에서 제2 레벨 페이지 테이블의 베이스 주소를 획득한다. 제2 레벨 페이지 테이블은 두번째 페이지 번호를 이용하여 물리적 페이지(Physical page)의 베이스 주소를 알려주고, MMU(10)는 페이지 오프셋(12bit)를 이용하여 상기 가상주소에 맵핑되는 물리주소를 알아낸다.
이 때 PTT 캐시(15)는 상기 제1 레벨 페이지 테이블에 접근했던 기록을 저장한다. 즉, 첫번째 페이지 번호, 제1 레벨의 레벨 아이디 및 제2 레벨 페이지 테이블의 베이스 주소를 포함하는 접근 정보를 저장한다.
제1 레벨 페이지 테이블에서 한 개의 베이스 주소가 커버하는 영역은 222 바이트(4MB)가 된다. 하나의 4MB 영역 내의 4KB 페이지들은 모두 동일한 제1레벨 페이지 테이블의 베이스 주소를 갖게 된다. 이때 제1 레벨 페이지 테이블의 베이스 주소를 캐싱한다면 주소의 연속적(sequential) 접근시만 고려하더라도 1/1024번마다 2번의 메모리 접근이 일어나며, 나머지 1023/1024번은 1번의 메모리 접근이 일어난다.
도 7b에 도시된 바와 같이 MMU(10)는 동일 페이지 테이블에 다시 접근할 때 PTT 캐시(15)를 먼저 확인하여 제1 레벨 페이지 테이블에 대한 접근 정보는 PTT 캐시(15)에서 추출하고, 제2 레벨 페이지 테이블 접근을 위해서만 메모리(110)에 접근한다. 실시예에 따라 캐시(5)에 페이지 테이블(115)이 포함된 경우, 제2 레벨 페이지 테이블 접근을 위해 캐시(5)에 접근한다.
이는 곧, PTT 캐시(15)를 이용하면 MMU(10)의 TLB 미스로 인한 정지 시간(또는 stall cycle)을 현격하게 줄이는 효과가 있는 것이다.
도 8은 도 4a 및 도 4b에 도시된 PTT 캐시의 또다른 일실시예에 따른 동작원리를 설명하기 위한 개념도이다.
도 8을 참조하면, 가상 주소는 N개의 레벨에 상응하는 페이지 번호 및 페이지 오프셋을 포함한 수 비트로 이루어진다.
실시예에서 PTT 캐시(15)는 각 레벨 페이지 테이블에 접근할 때마다 해당 레벨 페이지 테이블의 접근 정보를 모두 저장하고, 상기 접근 정보는 태그에 의해 완전 연관 방식(fully associative)으로 구성되어 있다.
MMU(10)는 가상주소의 각 레벨에 상응하는 페이지 번호를 이용하여 페이지 테이블(115)에 접근하기 전에 PTT 캐시(15)에서 동일한 페이지 테이블의 태그가 있는지 확인한다.
동일한 태그가 있는 경우, PTT 캐시(15)는 해당 레벨(예컨대, k 레벨) 페이지 테이블 접근 정보를 확인하여 다음 레벨(k+1) 페이지 테이블의 베이스 주소를 알려준다. 이 때 태그는 완전 연관 방식으로 구성되므로, 다음 레벨(k+1) 페이지 테이블의 베이스 주소 및 상기 가상 주소의 다음 레벨에 상응하는 페이지 번호(상기 예에서 (k+1)번째 페이지 번호)를 이용하여 그 다음 레벨(k+2) 페이지 테이블의 베이스 주소를 알려줄 수 있다.
상기 과정을 통해 MMU(10)는 첫번째 페이지 번호부터 N번째 페이지 번호를 각각 순차적으로 이용하여 PTT 캐시(15)에서 물리적 페이지의 베이스 주소를 획득할 수 있다. 이후 페이지 오프셋을 이용하여 물리적 페이지에서 상기 가상주소에 상응하는 물리 주소를 얻을 수 있다.
본 실시예에 의할 경우, PTT 캐시(15)를 이용함으로써 메모리(110) 또는 캐시(5) 내 페이지 테이블(115)에의 접근 횟수를 최소한으로 줄일 수 있어 TLB 미스 핸들링 오버헤드를 최소화시킬 수 있다. 또한 SoC(system on chip) 또는 임베디드 시스템(Embeded system)에서 장시간동안 시스템을 유지시킬 때, 멀티미디어 지능소자(IP)에서 발생할 수 있는 성능 저하를 PTT 캐시(15)를 통해 최소화시킬 수 있다.
도 9은 도 4a 및 도 4b에 도시된 메모리 관리 유닛의 일실시예에 따른 동작 방법을 설명하기 위한 플로우 차트이다.
도 1 내지 도 6을 참조하여, MMU(10)의 가상 주소에서 물리 주소로의 번역을 설명한다.
CPU(3)를 통해 임의의 프로그램 시퀀스(sequence)가 MMU(10)에 가상주소(VA)의 접근을 요청하면, MMU(10)에서는 그 가상주소(VA)에 매핑된 물리주소(PA)로의 변환을 위해 TLB(12)에 접근한다(S10). 이때 해당 주소 변환 정보가 TLB(12)에 있는 경우(TLB hit) 상기 가상주소(VA)에 매핑된 물리주소(PA)로 변환한다(S50).
그러나 해당 주소 변환 정보가 TLB(12)에 없을 경우 페이지 테이블 워크(page table work)가 일어난다. 페이지 테이블 워크(Page Table work) 동작 전에 MMU(10)에서는 먼저 PTT 캐시(15)에 접근하여(S12) 상기 가상주소로 접근하려는 페이지 테이블의 태그가 동일한지 확인한다(S13). 예컨대, 제 k레벨 페이지 테이블에 접근하려는 경우, k번째 페이지 번호를 이용하여 PTT 캐시(15)에서 상기 제 k레벨 페이지 테이블의 베이스 주소가 동일한지 검색한다(S14). 이때 k는 1보다 크고 N보다 작은 자연수이다.
동일한 경우 PTT 캐시(15)에서 k번째 페이지 번호 및 제k 레벨 페이지 테이블에 대한 접근 정보를 이용하여 다음 제(k+1) 레벨 페이지 테이블의 베이스 주소를 획득한다(S15).
동일하지 않은 경우에는 레지스터(35)에서 제1 레벨 페이지 테이블의 베이스 주소를 획득한 다음(S21), 순차적으로 각각의 페이지 번호를 이용하여 제2레벨의 페이지 테이블부터 제k 레벨의 페이지 테이블까지 접근함으로써 제k 레벨 페이지 테이블의 베이스 주소를 획득한다(S22 내지 S23). 상기 베이스 주소를 통해 제k 레벨 페이지 테이블에 접근하면, 동일한 방식으로 k번째 페이지 번호를 이용하여 제(k+1) 레벨 페이지 테이블의 베이스 주소를 획득한다(S24). 향후 동일 페이지 테이블에 재접근시 이용하기 위해 PTT 캐시(15)는 제k 레벨 페이지 테이블에 접근하여 획득한 상기 정보들을 저장한다(S25).
상기와 같은 방법으로 k를 N까지 증가시켜 물리적 페이지까지 접근하면(S30 내지 S40), MMU(10)는 페이지 오프셋을 통해 상기 물리적 페이지로부터 물리 주소를 획득할 수 있다(S50).
도 10는 도 7b에 도시된 메모리 관리 유닛의 동작 방법을 설명하기 위한 플로우 차트이다. 도 10에 도시된 메모리 관리 유닛의 동작 방법은 2-레벨 페이지 테이블 구조로 페이지 사이즈가 4KB인 경우를 가정한 것이다.
CPU(3)를 통해 임의의 프로그램 시퀀스(sequence)가 MMU(10)에 가상주소(VA)의 접근을 요청하면, MMU(10)에서는 그 가상주소(VA)에 매핑된 물리주소(PA)로의 변환을 위해 TLB(12)에 접근한다(S110). 이때 해당 주소 변환 정보가 TLB(12)에 있는 경우(TLB hit) 상기 가상주소(VA)에 매핑된 물리주소(PA)로 변환한다(S140).
그러나 해당 주소 변환 정보가 TLB(12)에 없을 경우(S111) 페이지 테이블 워크(page table work)가 일어난다. 페이지 테이블 워크 동작 전에 MMU(10)에서는 먼저 PTT 캐시(15)에 접근하여(S112) 상기 가상주소로 접근하려는 페이지 테이블의 태그가 동일한지 확인한다(S113). 예컨대, 제1 레벨 페이지 테이블에 접근하려는 경우, 첫번째 페이지 번호를 이용하여 PTT 캐시(15)에서 상기 제1 레벨 페이지 테이블의 베이스 주소가 동일한지 검색한다(S114).
동일한 경우 PTT 캐시(15)에서 첫번째 페이지 번호 및 제1 레벨 페이지 테이블에 대한 접근 정보를 이용하여 제2 레벨 페이지 테이블의 베이스 주소를 획득한다(S115).
동일하지 않은 경우에는 레지스터(35)에서 제1 레벨 페이지 테이블의 베이스 주소를 획득한 다음(S121), 제1 레벨 페이지 테이블에 접근한다(S122). 가상주소의 상위비트 중 상기 첫번째 페이지 번호를 제외한 다음 하위비트를 두번째 페이지 번호를 인식한다. 두번째 페이지 번호를 이용하여 제1레벨의 페이지 테이블에서 제2 레벨 페이지 테이블의 베이스 주소를 획득한다(S123). 향후 동일한 제1 레벨 페이지 테이블에 재접근시 이용하기 위해 PTT 캐시(15)는 제1 레벨 페이지 테이블에 접근하여 획득한 상기 정보들을 저장한다(S124).
제2레벨 페이지 테이블로부터 두번째 페이지 번호를 통해 물리적 페이지까지 접근하면(S130), MMU(10)는 페이지 오프셋을 통해 상기 물리적 페이지로부터 물리 주소를 획득할 수 있다(S140).
실시 예에 따라, MMU(10)와 캐시(5), 페이지 테이블(115) 및 CPU(3)는 하나의 칩으로서 구현될 수도 있고 별도의 칩으로 구현될 수도 있다.
또한 본 발명의 실시예들에 따른 메모리 관리 유닛의 동작방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media),플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM),램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드 뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
상기 실시예에 한정되는 것은 아니며, 다양한 실시예에 따라 멀티미디어 가속 유닛(60) 내부의 그래픽 엔진에 별도로 프로세서(1)에 포함된 것과 동일한 MMU, 캐시, 페이지 테이블 및 PTT 캐시 등을 포함할 수 있다.
도 11은 도 1에 도시된 메모리 관리 유닛을 포함하는 전자 장치의 다른 실시 예를 나타낸다.
도 11을 참조하면, 이동 전화기(cellular phone), 스마트 폰(smart phone), 또는 무선 인터넷 장치로서 구현될 수 있는 전자 장치(800)는 도 1에 도시된 프로세서(1)를 포함한다.
프로세서(1)는 본 발명의 실시 예에 따른 메모리 관리 유닛(10)을 포함한다.
메모리 관리 유닛(10)은 가상 주소를 물리 주소로 번역하고 프로세서(1)는 메모리(810)의 물리 주소에 접근하고, 데이터를 메모리(810)의 물리 주소로부터 리드하거나, 메모리(810)의 물리 주소에 라이트할 수 있다.
실시 예에 따라, MMU(10)와 캐시(5), CPU(3), 페이지 테이블(115)은 하나의 칩으로서 구현될 수도 있고 또한 프로세서(1)와 별도의 칩으로 구현될 수도 있다.
무선 송수신기(Radio Transceiver; 820)는 안테나를 통하여 무선 신호들을 주거나 받을 수 있다.
예컨대, 무선 송수신기(820)는 안테나를 통하여 수신된 무선 신호들을 프로세서(1)가 처리할 수 있는 신호들로 변환할 수 있다. 따라서 프로세서(1)는 무선 송수신기(820)로부터 출력된 신호들을 처리하고, 가상 주소를 물리 주소로 번역하여 상기 물리 주소에 처리된 신호들을 메모리(810)에 데이터로서 저장한다. 또한, 상기 처리된 신호들은 디스플레이(840)를 통하여 디스플레이될 수 있다. 메모리(810)는 상기 가상 주소를 상기 물리 주소로 번역하기 위해 페이지 테이블(115)을 포함한다
이때 페이지 테이블(115)은 메모리(810)에 위치할 수 있으나 실시예가 이에 한정되는 것은 아니며, 페이지 테이블(115)은 프로세서(1) 내 캐시(5)에 위치할 수 있다..
또한 무선 송수신기(820)는 프로세서(1)로부터 출력된 신호들을 무선 신호들로 변환하고, 변환된 무선 신호들을 안테나를 통하여 외부로 출력할 수 있다.
입력 장치(830)는 프로세서(1)의 동작을 제어하기 위한 제어 신호들 또는 프로세서(1)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
프로세서(1)는 메모리(810)로부터 출력된 데이터, 무선 송수신기(820)로부터 출력된 무선 신호들, 또는 입력 장치(830)로부터 출력된 데이터가 디스플레이 (840)를 통하여 디스플레이될 수 있도록 디스플레이(840)의 동작을 제어할 수 있다.
또한 상기 실시예에 한정되는 것은 아니며, 다양한 실시예에 따라 멀티미디어 가속 유닛(60) 내부의 그래픽 엔진에 별도로 프로세서(1)에 포함된 것과 동일한 MMU, 페이지 테이블 및 PTT 캐시 등을 포함할 수 있다.
도 12는 도 1에 도시된 메모리 관리 유닛을 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 12를 참조하면, 전자 장치(900)는 전자 장치(900)의 전반적인 동작을 제어할 수 있는 프로세서(1)를 포함한다.
프로세서(1)는 본 발명의 실시 예에 따른 MMU(10)을 포함한다.
실시 예에 따라, MMU(10), 페이지 테이블(115) 및 CPU(3)는 하나의 칩으로서 구현될 수도 있고 또한 프로세서(1)와 별도의 칩으로 구현될 수도 있다.
전자 장치(900)의 이미지 센서(910)는 광학 이미지를 디지털 신호들로 변환한다. 프로세서(1)는 가상 주소에 기초하여 변환된 디지털 신호들을 처리하여 데이터를 생성하고, MMU(10)를 이용하여 가상 주소를 물리 주소로 변환하고 메모리(920)의 물리 주소에 상기 데이터를 저장한다.
페이지 테이블(115)은 메모리(920)에 위치할 수 있으나 실시예가 이에 한정되는 것은 아니며, 페이지 테이블(115)은 프로세서(1) 내 캐시(5)에 위치할 수 있다.
또한 상기 실시예에 한정되는 것은 아니며, 다양한 실시예에 따라 멀티미디어 가속 유닛(60) 내부의 그래픽 엔진에 별도로 프로세서(1)에 포함된 것과 동일한 MMU, 페이지 테이블 및 PTT 캐시 등을 포함할 수 있다.
메모리(910)는 상기 가상 주소를 상기 물리 주소로 번역하기 위해 페이지 테이블(115)을 포함한다.
또한, 메모리(920)에 저장된 상기 데이터는 프로세서(1)의 제어하에 디스플레이(930)를 통하여 디스플레이된다. 즉, 프로세서(1)는 MMU(10)를 이용하여 가상 주소를 물리 주소로 변환하고, 메모리(920)의 물리 주소에 접근하여 메모리(920)의 물리 주소에 저장된 데이터를 리드한다. 리드된 데이터는 디스플레이(930)를 통하여 디스플레이된다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1: 프로세서
3: 중앙 처리 유닛
35: 레지스터
5: 캐시
10: 메모리 관리 유닛
12: TLB
15: PTT 캐시
110: 메모리
115: 페이지 테이블

Claims (10)

  1. N 레벨 페이지 테이블을 이용하는 메모리 관리 유닛의 동작 방법에 있어서,
    TLB(Translation Lookaside Buffer)에 가상주소의 페이지 번호에 상응하는 물리 주소의 프레임 번호를 매칭하는 단계;
    매칭이 되지 않는 경우 PTT 캐시(Page Table Translation Cache)에 접근하는 단계;
    상기 PTT 캐시에서 상기 가상주소 중 접근하려는 k번째 페이지 번호에 상응하는 제k 레벨의 페이지 테이블에 대한 접근정보가 있는지 확인하는 단계(1<k<=N);
    상기 접근정보를 이용하여 물리적 페이지의 베이스 주소를 획득하는 단계; 및
    상기 물리적 페이지에서 페이지 오프셋을 이용하여 상기 가상주소에 상응하는 상기 물리 주소를 매칭하는 단계를 포함하는 메모리 관리 유닛의 동작방법.
  2. 제1항에 있어서, 상기 확인하는 단계는
    상기 PTT 캐시에 상기 제k 레벨의 페이지 테이블에 대한 접근정보가 있는 경우, 상기 가상주소 중 k번째 페이지 번호에 상응하는 제k 레벨 페이지 테이블의 접근정보를 통해 제(k+1) 레벨 페이지의 베이스 주소를 획득하는 메모리 관리 유닛의 동작방법.
  3. 제1항에 있어서, 상기 확인하는 단계는
    상기 PTT 캐시에 해당 레벨의 페이지 테이블에 대한 접근정보가 없는 경우, 레지스터로부터 알아낸 제1 레벨 페이지 테이블의 베이스 주소를 획득하는 단계;
    상기 가상주소의 제1 내지 k번째의 페이지 번호를 순차적으로 이용하여 상기 제1 레벨 페이지 테이블부터 제k 레벨의 페이지 테이블에 순차적으로 접근하는 단계; 및
    상기 제k 레벨 페이지 테이블로부터 상기 k번째 페이지 번호를 이용하여 제(k+1) 레벨 페이지 테이블의 베이스 주소를 획득하는 단계를 포함하는 메모리 관리 유닛의 동작방법.
  4. 제3항에 있어서, 상기 확인하는 단계는
    상기 제k 레벨 페이지 테이블의 접근 정보를 상기 PTT 캐시에 저장하는 단계를 더 포함하는 메모리 관리 유닛의 동작방법.
  5. 제1항에 있어서, 상기 접근정보는
    상기 제k 레벨 페이지 테이블의 레벨 아이디, 상기 k번째 페이지 테이블 번호에 상응하는 태그, 상기 제(k+1) 레벨 페이지 테이블의 베이스 주소에 상응하는 데이터를 포함하는 메모리 관리 유닛의 동작 방법.
  6. 제5항에 있어서, 상기 접근정보는
    상기 태그 간에 완전연관(Fully Associative)된 메모리 관리 유닛의 동작 방법.
  7. 제1항에 있어서, 상기 물리적 페이지의 베이스 주소를 획득하는 단계는
    상기 PTT 캐시에서 상기 제k 레벨이 제1레벨부터 N레벨까지 순차적으로 증가할 때마다 각각의 레벨 페이지 테이블에 대한 접근 정보로부터 다음 레벨 페이지 테이블의 베이스 주소를 획득하는 단계; 및
    상기 N레벨 페이지 테이블의 접근 정보로부터 상기 N번째 페이지 번호를 이용하여 상기 물리적 페이지의 베이스 주소를 획득하는 단계를 포함하는 메모리 관리 유닛의 동작방법.
  8. 제1항에 있어서, 상기 물리적 페이지의 베이스 주소를 획득하는 단계는
    상기 PTT 캐시에서 상기 제k 레벨의 페이지 테이블에 대한 접근 정보를 획득하고 이를 이용하여 제(k+1) 레벨의 페이지 테이블의 베이스 주소를 획득하는 단계;
    상기 제(k+1) 레벨이 N레벨까지 순차적으로 증가하며 각 레벨의 페이지 테이블에 접근하여 다음 레벨의 페이지 테이블의 주소를 획득하는 것을 반복하는 단계; 및
    상기 N레벨 페이지 테이블과 상기 N번째 페이지 번호를 이용하여 상기 물리적 페이지의 베이스 주소를 획득하는 단계를 포함하는 메모리 관리 유닛의 동작 방법.
  9. 제1항의 메모리 관리 유닛의 동작 방법을 실행하기 위한 프로그램을 저장한 컴퓨터로 판독가능한 기록 매체.
  10. 멀티 레벨 페이지 테이블을 이용하는 메모리 관리 유닛에 있어서,
    가상주소의 페이지 번호에 매칭되는 물리 주소의 프레임 번호를 알려주어 상기 가상주소를 상기 물리 주소로 변환하여 알려주는 TLB(Table Lookaside Buffer); 및
    상기 TLB(Translation Lookaside Buffer)에서 매칭이 되지 않는 경우, 상기 물리 주소에 대한 물리적 페이지에 접근하기 위해 k번째 페이지 번호에 상응하는 제k 레벨 페이지 테이블의 접근 정보를 알려주는 PTT캐시(Page Table Translation Cache)를 포함하고,
    상기 접근정보는
    상기 제k 레벨 페이지 테이블의 레벨 아이디, 상기 k번째 페이지 테이블 번호에 상응하는 태그 및 상기 제(k+1) 레벨 페이지 테이블의 베이스 주소에 상응하는 데이터를 포함하여 상기 태그 간에 완전연관(Fully Associative)된 메모리 관리 유닛(N>1).
KR1020110048140A 2011-05-20 2011-05-20 메모리 관리 유닛, 이를 포함하는 장치들 및 이의 동작 방법 KR20120129695A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110048140A KR20120129695A (ko) 2011-05-20 2011-05-20 메모리 관리 유닛, 이를 포함하는 장치들 및 이의 동작 방법
US13/473,638 US20120297139A1 (en) 2011-05-20 2012-05-17 Memory management unit, apparatuses including the same, and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110048140A KR20120129695A (ko) 2011-05-20 2011-05-20 메모리 관리 유닛, 이를 포함하는 장치들 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20120129695A true KR20120129695A (ko) 2012-11-28

Family

ID=47175836

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110048140A KR20120129695A (ko) 2011-05-20 2011-05-20 메모리 관리 유닛, 이를 포함하는 장치들 및 이의 동작 방법

Country Status (2)

Country Link
US (1) US20120297139A1 (ko)
KR (1) KR20120129695A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108553B2 (en) 2014-07-31 2018-10-23 Huawei Technologies Co., Ltd. Memory management method and device and memory controller

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140101405A1 (en) * 2012-10-05 2014-04-10 Advanced Micro Devices, Inc. Reducing cold tlb misses in a heterogeneous computing system
US9043612B2 (en) * 2013-03-12 2015-05-26 International Business Machines Coropration Protecting visible data during computerized process usage
EP3017374A1 (en) * 2013-07-01 2016-05-11 Hewlett Packard Enterprise Development LP Lookup of a data structure containing a mapping between a virtual address space and a physical address space
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
US9442734B2 (en) * 2014-02-11 2016-09-13 Apple Inc. Completion time determination for vector instructions
US9632775B2 (en) 2014-02-11 2017-04-25 Apple Inc. Completion time prediction for vector instructions
CN104899159B (zh) * 2014-03-06 2019-07-23 华为技术有限公司 高速缓冲存储器Cache地址的映射处理方法和装置
US20160048328A1 (en) * 2014-08-12 2016-02-18 Kabushiki Kaisha Toshiba Memory system
CN104536847B (zh) * 2014-12-18 2017-10-31 飞天诚信科技股份有限公司 一种提高数据写入完整性的方法
US10997083B2 (en) * 2018-09-04 2021-05-04 Arm Limited Parallel page table entry access when performing address translations
US10621107B1 (en) * 2018-12-11 2020-04-14 Arm Limited Translation lookaside buffer (TLB) clustering system for checking multiple memory address translation entries each mapping a viritual address offset
EP3893119B1 (en) * 2019-02-21 2023-07-26 Huawei Technologies Co., Ltd. System on chip, routing method for access command and terminal
US11232042B2 (en) * 2019-11-15 2022-01-25 Microsoft Technology Licensing, Llc Process dedicated in-memory translation lookaside buffers (TLBs) (mTLBs) for augmenting memory management unit (MMU) TLB for translating virtual addresses (VAs) to physical addresses (PAs) in a processor-based system
CN112860600A (zh) * 2019-11-28 2021-05-28 深圳市海思半导体有限公司 一种加速硬件页表遍历的方法及装置
KR20220032808A (ko) * 2020-09-08 2022-03-15 삼성전자주식회사 프로세싱-인-메모리, 메모리 액세스 방법 및 메모리 액세스 장치
CN113836054B (zh) * 2021-08-30 2023-08-22 中国人民解放军军事科学院国防科技创新研究院 用于gpu的内存页管理方法和内存页转换方法
CN115190102B (zh) * 2022-07-22 2024-04-16 北京象帝先计算技术有限公司 信息广播方法、装置、电子单元、soc及电子设备
CN115757260B (zh) * 2023-01-09 2023-04-14 摩尔线程智能科技(北京)有限责任公司 数据交互方法、图形处理器及图形处理***

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493660A (en) * 1992-10-06 1996-02-20 Hewlett-Packard Company Software assisted hardware TLB miss handler
US5960463A (en) * 1996-05-16 1999-09-28 Advanced Micro Devices, Inc. Cache controller with table walk logic tightly coupled to second level access logic
US6453387B1 (en) * 1999-10-08 2002-09-17 Advanced Micro Devices, Inc. Fully associative translation lookaside buffer (TLB) including a least recently used (LRU) stack and implementing an LRU replacement strategy
US6671791B1 (en) * 2001-06-15 2003-12-30 Advanced Micro Devices, Inc. Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms
US7117337B2 (en) * 2004-02-19 2006-10-03 International Business Machines Corporation Apparatus and method for providing pre-translated segments for page translations in segmented operating systems
US7447869B2 (en) * 2005-04-07 2008-11-04 Ati Technologies, Inc. Method and apparatus for fragment processing in a virtual memory system
US7409524B2 (en) * 2005-08-17 2008-08-05 Hewlett-Packard Development Company, L.P. System and method for responding to TLB misses
US8397049B2 (en) * 2009-07-13 2013-03-12 Apple Inc. TLB prefetching

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108553B2 (en) 2014-07-31 2018-10-23 Huawei Technologies Co., Ltd. Memory management method and device and memory controller

Also Published As

Publication number Publication date
US20120297139A1 (en) 2012-11-22

Similar Documents

Publication Publication Date Title
KR20120129695A (ko) 메모리 관리 유닛, 이를 포함하는 장치들 및 이의 동작 방법
US10210096B2 (en) Multi-stage address translation for a computing device
KR101667772B1 (ko) 프리페칭을 갖는 변환 색인 버퍼
CN104346294B (zh) 基于多级缓存的数据读/写方法、装置和计算机***
KR102002900B1 (ko) 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
KR102219845B1 (ko) 어드레스를 압축하기 위한 방법 및 장치
US20050027961A1 (en) System and method for resolving virtual addresses using a page size tag
US9721569B2 (en) Gaussian mixture model accelerator with direct memory access engines corresponding to individual data streams
KR20140111499A (ko) 시스템 온 칩 및 그 동작방법
US20160378683A1 (en) 64KB Page System that Supports 4KB Page Operations
US11836079B2 (en) Storage management apparatus, storage management method, processor, and computer system
JP2013037517A5 (ko)
KR20190030227A (ko) 상위 일반성 캐시 엔트리의 보다 큰 지속성을 위한 최소 사용 빈도 데이터 업데이트
KR101895852B1 (ko) Mmu(memory management unit) 파티셔닝된 변환 캐시들, 및 관련 장치들, 방법들, 및 컴퓨터-판독가능한 매체들의 제공
US20070204129A1 (en) Address converting apparatus
US9037831B2 (en) Memory management unit and apparatuses having same
CN107533513B (zh) 突发转换后备缓冲器
US9727476B2 (en) 2-D gather instruction and a 2-D cache
KR102355374B1 (ko) 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
CN104731720A (zh) 组相连的二级内存管理装置
CN114925002A (zh) 电子装置、电子设备和地址转换方法
JP2004530962A (ja) キャッシュメモリおよびアドレス指定方法
Martins et al. Configurable Cache Memory Architecture for Low-Energy Motion Estimation
CN107807888B (zh) 一种用于soc架构的数据预取***及其方法
US20240111687A1 (en) Translating Virtual Memory Addresses to Physical Memory Addresses

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid