KR102002900B1 - 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법 - Google Patents

메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법 Download PDF

Info

Publication number
KR102002900B1
KR102002900B1 KR1020130001758A KR20130001758A KR102002900B1 KR 102002900 B1 KR102002900 B1 KR 102002900B1 KR 1020130001758 A KR1020130001758 A KR 1020130001758A KR 20130001758 A KR20130001758 A KR 20130001758A KR 102002900 B1 KR102002900 B1 KR 102002900B1
Authority
KR
South Korea
Prior art keywords
mmu
master
request
memory device
mmus
Prior art date
Application number
KR1020130001758A
Other languages
English (en)
Other versions
KR20150127872A (ko
Inventor
김석민
김관호
김성운
김태선
임경묵
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to KR1020130001758A priority Critical patent/KR102002900B1/ko
Priority to AU2013270635A priority patent/AU2013270635A1/en
Priority to TW102146788A priority patent/TWI634425B/zh
Priority to US14/138,982 priority patent/US9348764B2/en
Priority to NL2012042A priority patent/NL2012042A/en
Priority to DE102014100031.5A priority patent/DE102014100031A1/de
Priority to CN201410006692.0A priority patent/CN103914405B/zh
Priority to JP2014001170A priority patent/JP2014132467A/ja
Publication of KR20150127872A publication Critical patent/KR20150127872A/ko
Application granted granted Critical
Publication of KR102002900B1 publication Critical patent/KR102002900B1/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/306In system interconnect, e.g. between two buses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)

Abstract

메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법이 개시된다. 본발명의 실시예들에 따른 시스템 온 칩은 복수의 작업세트들에 대해 동작하기 위해 상기 각 작업세트들에 상응하는 각각의 요청들을 출력하는 마스터 IP, 상기 각 작업세트별로 각각 할당되어, 상기 요청에 대한 가상주소들을 물리주소들로 번역하는 MMU(Memory Management Unit)들을 복수 개 포함하는 MMU 모듈, 상기 MMU 모듈과 메모리 장치를 연결하여, 상기 복수의 MMU들 중 적어도 하나의 MMU 에서 주소번역된 상기 요청을 상기 메모리 장치로 전달하는 제1 버스 인터커넥터 및 상기 마스터 IP와 상기 MMU 모듈을 연결하여, 상기 각 작업세트마다 상기 복수의 MMU들 중 어느 하나의 MMU를 할당하는 제2 버스 인터커넥터를 포함한다.

Description

메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법{SYSTEM ON CHIP INCLUDING MEMORY MANAGEMENT UNIT AND MEMORY ADDRESS TRANSLATION METHOD THEREOF}
본 발명의 개념에 따른 실시 예는 메모리 관리 유닛에 관한 것으로, 특히 지능소자가 복수의 작업세트로 동작할 경우 작업세트마다 분리하여 사용할 수 있는 메모리 관리 유닛, 이를 포함하는 장치들 및 이의 동작 방법에 관한 것이다.
메모리 관리 유닛(memory management unit; 이하 MMU)은 CPU(central processing unit), GPU(graphic processing unit) 등의 직접 메모리 접근(Direct Memory Access) 유닛들에 의해 요구되는 메모리 접근(memory access)을 처리하기 위한 하드웨어 컴포넌트(hardware component)이다. 상기 MMU는 페이지 메모리 관리 유닛(paged memory management unit; PMMU)라고 불릴 수도 있다.
가상메모리를 사용하는 IP(Intellectual Property; 이하 IP)는 메모리 장치에 접근할 때 가상 주소(Virtual Address)에 상응하는 물리 주소(Physical Address)로 접근한다. 이때 MMU는 가상 주소와 물리 주소 간의 주소변환을 한다.
SoC(System-on-Chip; 이하 SoC)는 MMU의 면적 효율성을 높이고, 물리 주소의 색인 속도를 높이기 위해, 한정된 크기의 변환색인버퍼(Translation Look-aside Buffer; 이하 TLB)를 갖고 소정의 페이지 대체 정책(Page Replacement Policy)에 따라 운용한다.
그러나 SoC가 복수의 작업세트로 동작할 경우 IP가 각 작업세트 별로 참조하는 물리 주소 영역이 다르므로, 하나의 MMU만을 사용하면 해당 IP를 사용하는 작업세트가 달라져서 TLB의 검색 성공률(hit ratio)이 현저히 떨어지는 문제가 있다.
본 발명은 IP가 복수의 작업세트들을 처리할 경우 물리주소의 검색 성공율이 높도록 유연성있게 운용되는 메모리 관리 유닛 구조를 포함하는 SoC 및 그 메모리 주소 변환 방법을 제공한다.
상술한 기술적 과제를 해결하기 위하여, 본 발명의 일실시예에 따른 SoC(System on Chip)는 복수의 작업세트들에 대해 동작하기 위해 상기 각 작업세트들에 상응하는 각각의 요청들을 출력하는 마스터 IP(Intellecutal Property), 상기 각 작업세트별로 각각 할당되어, 상기 요청에 대한 가상주소들을 물리주소들로 번역하는 MMU(Memory Management Unit)들을 복수 개 포함하는 MMU 모듈 및 상기 MMU 모듈과 메모리 장치를 연결하여, 상기 복수의 MMU들 중 적어도 하나의 MMU에서 주소번역된 상기 요청을 상기 메모리 장치로 전달하는 제1 버스 인터커넥터를 포함한다.
상기 MMU 모듈은 상기 각 작업세트에 따라 상기 MMU들 간에 서로 독립적으로 동작한다.
일실시예로 상기 작업세트는 리드 동작 세트 및 라이트 동작 세트를 포함한다.
상기 예에서 상기 MMU 모듈은 상기 마스터 IP의 리드 요청(Read Request)에 따라 상기 메모리 장치의 상기 리드 동작 세트에 액세스하는 제1 MMU 및 상기 마스터 IP의 라이트 요청(Write Request)에 따라 상기 메모리 장치의 상기 라이트 동작 세트에 액세스하는 제2 MMU를 포함한다.
상기 제1 MMU는 리드 채널을 통해 상기 마스터 IP와 연결되고, 상기 제2 MMU는 라이트 채널을 통해 상기 마스터 IP와 연결된다.
상기 제1 버스 인터커넥터는 상기 제1 MMU로부터 상기 리드 요청을 수신하면 상기 메모리 장치의 리드 동작 세트로 연결하고, 상기 제2 MMU로부터 상기 라이트 요청을 수신하면 상기 메모리 장치의 라이트 동작 세트로 연결한다.
다른 실시예로 상기 작업세트는 소스 세트 및 데스티네이션 세트를 포함한다.
상기 예에서 상기 MMU 모듈은 상기 마스터 IP의 소스 액세스 요청에 따라 상기 메모리 장치의 상기 소스 세트에 액세스하는 제1 MMU 및 상기 마스터 IP의 데스티네이션 액세스 요청에 따라 상기 메모리 장치의 상기 데스티네이션 세트에 액세스하는 제2 MMU를 포함한다.
상기 SoC는 상기 마스터 IP와 상기 MMU 모듈을 연결하여, 상기 마스터 IP의 요청에 따라 상기 제1 MMU 또는 상기 제2 MMU를 동적으로(dynamic) 할당하는 제2 버스 인터커넥터를 더 포함한다.
상기 제2 버스 인터커넥터는 상기 마스터 IP로부터 소스 액세스 요청을 수신하면 상기 제1 MMU로 연결하고, 상기 마스터 IP로부터 데스티네이션 액세스 요청을 수신하면 상기 제2 MMU로 연결한다.
상술한 기술적 과제를 해결하기 위하여, 본 발명의 다른 실시예에 따른 SoC(System on Chip)는 복수의 작업세트들에 대해 동작하기 위해 상기 각 작업세트들에 상응하는 각각의 요청들을 출력하는 마스터 IP(Intellecutal Property), 상기 각 작업세트별로 각각 할당되어, 상기 요청에 대한 가상주소들을 물리주소들로 번역하는 MMU(Memory Management Unit)들을 복수 개 포함하는 MMU 모듈, 상기 MMU 모듈과 메모리 장치를 연결하여, 상기 복수의 MMU들 중 적어도 하나의 MMU 에서 주소번역된 상기 요청을 상기 메모리 장치로 전달하는 제1 버스 인터커넥터 및 상기 마스터 IP와 상기 MMU 모듈을 연결하여, 상기 각 작업세트마다 상기 복수의 MMU들 중 어느 하나의 MMU를 할당하는 제2 버스 인터커넥터를 포함한다.
상기 MMU 모듈은 상기 각 작업세트에 따라 상기 MMU들 간에 서로 독립적으로 동작한다.
상기 SoC는 상기 복수의 작업세트들 각각에 상응하는 MMU 할당정보들을 저장하는 주소 분배기를 더 포함한다.
상기 주소 분배기는 상기 마스터 IP로부터 상기 요청을 수신하면, 상기 MMU 할당정보에 기초하여 상기 요청에 상응하는 해당 MMU ID를 출력한다.
상기 주소 분배기는 상기 복수의 작업세트들 각각에 상응하는 상기 MMU 할당정보들을 저장하는 레지스터 세트 및 상기 마스터 IP로부터 수신한 상기 요청의 가상 주소와 상기 MMU 할당정보를 비교하여 상기 요청에 상응하는 상기 해당 MMU ID를 출력하는 주소 비교기를 포함한다.
상기 레지스터 세트는 상기 각 작업세트의 연속된 가상주소들 중 인디케이터를 상기 각 MMU ID와 맵핑하여 상기 MMU 할당정보로 저장한다.
상기 주소 비교기는 상기 요청의 가상주소들 각각과 상기 인디케이터를 비교하여 상기 작업세트에 할당된 상기 해당 MMU ID를 출력한다.
상기 제1 버스 인터커넥터 및 상기 제2 버스 인터커넥터는 상기 마스터 IP의 요청 및 상기 메모리 장치의 응답에 따라 상기 복수의 MMU들 중 동적으로 할당된 어느 하나의 MMU의 포트를 연결한다.
상술한 기술적 과제를 해결하기 위하여, 본 발명의 다른 실시예에 따른 메모리 주소 변환 방법은 복수의 작업세트들에 대해 동작을 수행하는 마스터 IP가 상기 각 작업세트에 따른 요청 각각을 출력하는 단계, 상기 복수의 작업세트들 각각에 상응하는 MMU 할당정보들을 저장하여, 상기 마스터 IP로부터 상기 요청을 수신하면, 상기 요청에 따른 가상주소들과 상기 MMU 할당정보를 비교하는 단계 및 비교결과 상기 MMU 할당정보에 기초하여, 상기 요청에 상응하는 해당 MMU ID를 출력하는 단계, 상기 해당 MMU ID에 상응하는 MMU가 상기 요청에 따른 가상주소들을 물리주소들로 번역하는 단계 및 주소번역된 상기 요청을 메모리 장치의 상기 물리주소들로 전송하는 단계를 포함한다.
상기 복수의 MMU들은 상기 각 작업세트에 따라 상기 MMU들 간에 서로 독립적으로 동작한다.
상기 할당하는 단계는 상기 복수의 작업세트들 각각에 상응하는 MMU 할당정보들을 저장하여, 상기 마스터 IP로부터 상기 요청을 수신하면, 상기 요청에 따른 가상주소들과 상기 MMU 할당정보를 비교하는 단계 및 비교결과 상기 MMU 할당정보에 기초하여, 상기 요청에 상응하는 해당 MMU ID를 출력하는 단계를 포함한다.
상기 메모리 주소 변환 방법은 상기 메모리 장치가 상기 요청에 따라 상기 물리 주소들의 상기 작업세트를 처리하고 처리결과에 대한 응답 또는 데이터를 출력하는 단계, 상기 복수의 MMU들 중 처리된 상기 작업세트에 할당되었던 MMU로 상기 응답 또는 데이터를 전달하는 단계 및 상기 응답 또는 데이터를 상기 마스터 IP로 전달하는 단계를 더 포함한다.
본 발명의 실시예들에 따른 SoC는 마스터 IP가 소정의 작업세트에 대한 동작 중 또다른 작업세트에 대해 동작할 경우, 메모리 관리 유닛 모듈 중 처리 중인 작업세트에 할당되지 않은 메모리 관리 유닛을 할당하여 독립적으로 사용함으로써, 물리주소의 검색성공율을 높일 수 있다.
또한 작업세트들 간의 영향을 최소화하면서 SoC의 동작 속도를 향상시킬 수 있으며, 작업세트별로 MMU를 할당하여 사용하기 때문에 MMU를 유연성있게 운용할 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 관리 유닛을 포함하는 전자장치의 일 실시 예를 나타낸다.
도 2는 도 1에 도시된 SoC의 블록도를 나타낸다.
도 3은 도 2에 도시된 메모리 관리 유닛의 동작을 설명하기 위한 개념도이다.
도 4는 본 발명의 메모리 관리 유닛의 일실시예에 따른 구조를 설명하기 위한 개념도이다.
도 5는 본 발명의 메모리 관리 유닛의 다른 실시예에 따른 구조를 설명하기 위한 개념도이다.
도 6은 본 발명의 메모리 관리 유닛의 또다른 실시예에 따른 구조를 설명하기 위한 개념도이다.
도 7은 도 6의 메모리 관리 유닛의 동작을 설명하기 위한 개념도이다.
도 8은 도 6의 실시예에 따른 메모리 주소 변환 방법을 나타낸 순서도이다.
도 9는 도 6의 실시예에 따른 메모리 주소 변환 방법을 나타낸 순서도이다.
도 10은 본 발명의 실시예들에 따라 수행되는 이미지 블랜딩 과정을 설명하기 위한 개념도이다.
도 11은 도 2에 도시된 SoC를 포함하는 전자장치의 일 실시 예를 나타낸다.
도 12는 도 2에 도시된 SoC를 포함하는 전자장치의 또 다른 실시 예를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 다수개의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 메모리 관리 유닛을 포함하는 SoC의 일 실시 예를 나타낸다.
도 1을 참조하면, PC(personal computer), 태블릿 PC(tablet PC), 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어와 같은 데이터 처리 장치로 구현될 수 있는 전자 장치(100)는 전자 장치(100)의 전반적인 동작을 제어하는 SoC(1)를 포함한다.
SoC(1)는 일례로 프로세서(Processor)로 구현가능하고, 프로세서는 프로그램 명령들(program instructions)을 읽고 실행하는 유닛이다. SoC(1)는 MMU 모듈(10)을 포함할 수 있다.
예컨대, SoC(1)는 프로그램 명령들(예컨대, 입력 장치(120)를 통하여 입력된 입력 신호에 의해 생성된 프로그램 명령들)을 실행한다. SoC(1)는 메모리 장치(110)에 저장된 데이터를 리드(read)하고 리드된 데이터를 디스플레이(130)를 통하여 디스플레이하도록 한다.
메모리 장치(110)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 메모리 장치(110)는 SoC(1)로부터 수신한 요청에 따라 데이터를 처리한다. 예컨대, 메모리 장치(110)는 비휘발성 메모리 장치(플래시 메모리, PRAM(Phase-change Random Access Memory), MRAM( Magnetic RAM), ReRAM(Resistive RAM), 또는 FeRAM(Ferroelectric RAM), DRAM(Dynamic RAM), SRAM(Static RAM) 장치)일 수도 있다. 본 발명의 다른 실시예에서는 메모리 장치(110)는 SoC(100) 내부에 구비되는 내장 메모리일 수 있다. 메모리 장치(110)는 가상주소에 대한 물리주소를 변환하는 페이지 테이블(115)을 포함할 수 있다.예컨대, 입력 장치(120)는 터치 패드(touch pad) 또는 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(key pad), 또는 키보드로 구현될 수 있다.
도 2는 도 1에 도시된 SoC의 블록도를 나타낸다.
도 1과 도 2를 참조하면, SoC(1)는 CPU(3), 캐시(cache, 5), 및 메모리 관리 유닛 모듈(memory management unit module; 이하 MMU 모듈, 10) 등을 포함한다.
CPU(3)는 프로그램 명령들을 읽고 실행하는 동작을 수행하는 프로세서(1)의 부분일 수 있다.
캐시(5)는 메모리 장치(110)로부터 데이터를 보다 빠르게 리드/라이트하기 위해 상기 데이터를 저장하는 컴포넌트(component)이다. CPU(3)는 페이지의 내용을 메모리 장치(110)로부터 리드(Read 또는 Page In)하여 캐시(5)에 저장할 수 있다. CPU(3)는 캐시(5)에 저장되어 있던 페이지의 내용을 메모리 장치(110)로 라이트(Write 또는 Page Out)할 수 있다.
MMU 모듈(10)은 CPU(3)에 의해 요구되는 메모리(110)의 접근을 처리하기 위한 하드웨어 컴포넌트이다.
MMU 모듈(10)의 기능은 CPU(3), GPU, 디스플레이 컨트롤러(80) 또는 멀티미디어 가속 유닛(60) 내 그래픽 엔진로부터의 요청들에 대한 가상 주소들(virtual addresses)을 물리 주소들(physical addresses)로의 번역(translation), 메모리 보호, 캐시(5)의 제어, 버스 중재(bus arbitration), 또는 뱅크 스위칭(bank switching)을 포함한다.
실시 예에 따라 SoC(1)는 시스템 주변 유닛(50), 멀티 미디어 가속 유닛(multimedia acceleration unit; 60), 접속 유닛(connectivity unit; 70), 디스플레이 컨트롤러(80), 및 메모리 인터페이스 유닛(90)을 더 포함할 수 있다.
시스템 주변 유닛(50), 멀티 미디어 가속 유닛(60), 접속 유닛(70), 디스플레이 컨트롤러(80), 및 메모리 인터페이스 유닛(90) 각각은 시스템 버스(30)를 통해 데이터나 명령을 주고 받는다.
시스템 버스(30)는 복수의 채널들을 포함할 수 있다. 예컨대, 복수의 채널들은 AXI 채널 규격에 따라 리드 데이터 채널(R), 리드 주소 채널(AR), 라이트 주소 채널(WR), 라이트 응답채널(B) 및 라이트 데이터 채널(W)을 포함할 수 있다.
시스템 주변 유닛(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)은 메모리 장치(110)의 종류(예컨대, 플래시 메모리, 또는 DRAM)에 따라 메모리(110)를 접근 가능하도록 하는 인터페이스이다.
설명의 편의를 위해 CPU(3), 그래픽 엔진, 디스플레이 컨트롤러(80) 등 작업세트 단위로 데이터를 처리하는 프로세서들을 마스터 IP(Master Intellectual Property; Master IP)라고 하자.
마스터 IP는 작업세트 단위로 동작할 수 있고, 동시에 복수 개의 작업세트들을 처리할 수 있다. 작업세트(Working Set)란 메모리 장치(110)에 저장되는 데이터 세트로, 마스터 IP가 메모리 장치(110)에서 자주 참조하는 페이지(page)들의 집합, 또는 하나의 마스터 IP로부터 메모리 장치(110)로 올라갈 수 있는 페이지들의 양을 말한다. 이때 마스터 IP에서 각 작업세트는 다른 작업세트들과 독립적으로 운용된다.
도 3은 도 2에 도시된 메모리 관리 유닛의 동작을 설명하기 위한 개념도이다.
도 1 내지 도 3을 참조하면, MMU 모듈(10)은 TLB(Translation Lookaside Buffer; 이하 TLB, 12)를 포함하고, 마스터 IP(30) 및 메모리 장치(110)와 복수의 채널들(R, AR, AW, B 및 W)로 연결되어 있다.
마스터 IP(30)는 복수의 작업세트들을 처리한다. 마스터 IP(30)는 복수의 작업세트들에 대해 동작하기 위해, 각 작업세트에 상응하는 요청을 MMU 모듈(10) 또는 캐시 (5)로 출력한다. 이때 마스터 IP(30)가 출력하는 요청에는 메모리 장치(110) 내 해당 작업세트에 대한 가상주소(VA)가 포함된다.
MMU 모듈(10)은 마스터 IP(30)의 요청에 따라 가상 주소(VA)를 이용하여 페이지 물리 주소(PA)를 계산하여 출력한다. 페이지 물리 주소(PA)는 가상 주소(VA)의 페이지 번호(PN)와 오프셋(예컨대, 페이지 테이블 포인터)을 결합하여 페이지 테이블(115)에 인덱스로서 접근하기 위한 주소이다.
TLB(12)는 가상 주소 번역 속도(virtual address translation speed)를 향상시키기 위해서 사용되는 메모리 관리 하드웨어이며, 페이지 번호(PN)와 프레임 번호(FN)가 매핑되어 있다. 즉, TLB(12)는 마스터 IP(30)가 참조하였던 페이지들에 대해 가상주소(VA)와 물리주소(PA)를 매핑(mapping)하여 저장한다. 가상주소를 물리 주소로 주소번역을 시도할 때 MMU 모듈(10)은 TLB(12)를 먼저 확인한다.
만약 마스터 IP(30)의 요청에 상응하는 가상주소(VA)에 대하여 TLB(12)에 매핑(mapping) 정보가 있다면, MMU 모듈(10)은 메모리 장치(110)에 접근할 필요없이 바로 번역을 처리한다(TLB hit).
그러나 마스터 IP(30)의 요청의 가상주소(VA)에 대하여 TLB(12)에 매핑(mapping) 정보가 없는 경우(TLB miss), 페이지 테이블 워크(page table walk; PTW)가 수행된다. 페이지 테이블 워크란 가상 주소(VA)의 페이지 번호(PN)와 프레임 번호(FN)가 TLB(12)에서 매칭되지 않을 때(즉, 가상 주소(VA)에 매핑되는 물리주소(PA) 정보가 없을 ?), 가상 주소(VA)의 페이지 번호(PN)와 프레임 번호(FN)가 메모리 장치 내 페이지 테이블(115)에 존재하는지 여부를 찾는 과정(process)를 의미한다.
페이지 테이블(115)은 메모리 장치(110) 내 데이터들 각각의 가상주소와 물리주소를 매핑한 정보를 저장한다.
캐시(5)는 마스터 IP(30)가 리드하고자 하는 명령 또는 데이터의 물리 주소(PA)로 리드를 시도할 때 해당 물리 주소의 명령이나 데이터가 캐쉬(5) 내에 존재하면, 메모리 장치(110)에 접근할 필요 없이, 바로 상기 명령이나 데이터를 마스터 IP(30)로 출력한다(Cache hit).
그러나 마스터 IP(30)가 리드하고자 하는 명령 또는 데이터의 물리 주소로 리드를 시도하여도, 해당 명령이나 데이터가 캐쉬(5) 내에 존재하지 않을 경우, 메모리 장치(110)의 데이터/명령저장부(117)에 접근하여 해당 명령이나 데이터를 읽어온다(Cache miss).
데이터/명령저장부(117)는 메모리 장치(110) 내 데이터/명령들 각각에 대한 정보를 저장한다.
도 4는 본 발명의 메모리 관리 유닛의 일실시예에 따른 구조를 설명하기 위한 개념도이다. 설명의 편의를 위해, 마스터 IP(30), 복수의 MMU들을 포함한 MMU 모듈(10), 버스 인터커넥터(31) 및 메모리 장치(110)만 도시한다.
마스터 IP(30)는 작업세트 단위로 동작한다. 마스터 IP(30)는 복수의 작업세트들에 대한 동작을 수행한다. 이때 메모리 장치 내 복수의 작업세트들 각각은 서로 독립적이고, 마스터 IP(30)는 각 작업세트를 독립적으로 운용한다.
마스터 IP(30)는 각 작업세트를 처리할 때 요청(request) 및 처리할 작업세트 단위 데이터의 가상주소(Virtual Address; VA)들을 MMU 모듈(10)로 출력한다. 일 실시예로, 도 4에 도시된 일 실시예와 같이 마스터 IP(30)가 메모리 장치(110)의 데이터에 대해 리드 동작(read) 및 라이트 동작(Write)을 하는 경우를 살펴보자.
상기 예에서, 복수의 작업세트들은 리드 동작 작업세트 및 라이트 동작 작업세트를 포함한다. 즉, 작업세트들은 마스터 IP(30)의 리드 요청(read request)에 따라 메모리 장치(110)에서 저장 데이터를 리드(read)하는 리드 동작 세트와 마스터 IP(30)의 라이트 요청(write request)에 따라 메모리 장치에 라이트 데이터(write data)를 라이트(write)하는 라이트 동작 세트로 나눌 수 있다.
MMU 모듈(10)은 복수 개의 MMU(Memory Management Unit;10R, 10W)들을 포함한다. 복수 개의 MMU들은 각 작업세트에 대해 각각 할당되어, 서로 다른 작업세트(서로 다른 MMU)에 대해 독립적으로 운용된다..
제1 MMU(10R)는 마스터 IP(30)의 리드 요청에 따라 메모리 장치(110) 내 리드 동작 세트에 액세스하기 위해 할당된다. 제1 MMU(10R)는 리드 채널(RCH))에 연결된다, 리드 채널(RCH)은 마스터 IP(30)로부터의 상기 리드 요청, 메모리 장치(110)로부터의 응답 및 상기 리드 요청에 따라 메모리 장치(110)로부터 상기 마스터 IP(30)로 전송되는 리드 데이터(read data)를 송수신한다. 리드 채널(RCH)은 마스터 IP(30)와 MMU 모듈(10), MMU 모듈(10)과 메모리 장치(110) 사이를 연결한다. 예를 들면, 리드 채널(RCH)은 AXI 버스 규격에 따른 AR 채널 및 R채널을 포함할 수 있다.
제1 MMU(10R)는 마스터 IP(30)로부터 수신한 리드 요청에 대한 가상주소(VA)를 물리주소(PA)로 번역하여 상기 물리주소로 번역된 리드 요청을 메모리 장치(110)로 전송하고, 메모리 장치(110)에서 리드된 데이터 및 상기 리드 요청에 대한 응답을 마스터 IP(30)로 전송한다.
제2 MMU(10W)는 마스터 IP(30)의 라이트 요청에 따라 메모리 장치(110) 내 라이트 동작 세트에 액세스하기 위해 할당된다. 제2 MMU(10W)는 라이트 채널(WCH)에 연결된다. 라이트 채널(WCH)은 마스터 IP(30)로부터의 상기 라이트 요청, 메모리 장치(110)로부터의 응답 및 상기 라이트 요청에 따라 메모리 장치(110)에 라이트되는 라이트 데이터(write data)를 송수신한다. 라이트 채널(WCH)은 마스터 IP(30)와 MMU 모듈(10), MMU 모듈(10)과 메모리 장치(110) 사이를 연결한다. 예를 들면, 라이트 채널(WCH)은 AXI 버스 규격에 따른 AW 채널, W채널 및 B채널을 포함할 수 있다.
제2 MMU(10W)는 마스터 IP(30)로부터 수신한 라이트 요청에 따라 라이트 데이터가 쓰여질 영역의 가상주소(VA)를 물리주소(PA)로 번역하고, 메모리 장치(110)에 라이트된 데이터에 대한 물리주소(PA)를 가상주소(VA)로 번역한다.
일 실시예로, 마스터 IP(30)와 제1 MMU(10R) 사이의 리드 채널(RCH), 마스터 IP(30)와 제2 MMU(10W) 사이의 라이트 채널(WCH)은 하드웨어적으로 연결되어 있을 수 있다.
메모리 장치(110)와 MMU 모듈(10) 사이의 리드 채널(RCH) 또는 라이트 채널(WCH)에는 버스 인터커넥터(Bus interconnect, 41)가 더 포함될 수 있다.
버스 인터커넥터(41)는 메모리 장치(110)와 MMU 모듈(10)을 연결하여, 각 MMU(10R 또는 10W)의 액세스별로 메모리 장치(110) 내의 메모리 접근 영역을 달리할 수 있다.
일례로, 메모리 장치(110) 내 리드 동작 세트 및 라이트 동작 세트는 서로 독립적으로 위치할 수 있다. 예를 들어 버스 인터커넥터(41)는 제1 MMU(10R)가 액세스할 때에는 메모리 장치(110)의 리드 동작 세트로 연결한다. 버스 인터커넥터(41)는 제2 MMU(10W)가 액세스할 때에는 메모리 장치(110)의 라이트 동작 세트로 연결한다.
다른 일례로, 버스 인터커넥터(41)는 각 MMU(10R 또는 10W)의 액세스별로 메모리 장치(110) 내의 메모리 접근 타이밍을 달리할 수 있다. 이 경우 메모리 장치(110) 내 리드 동작 세트 및 라이트 동작 세트는 시간적으로 서로 독립하여 액세스될 수 있다.
도 5는 본 발명의 메모리 관리 유닛의 다른 실시예에 따른 구조를 설명하기 위한 개념도이다. 설명의 편의를 위해, 마스터 IP(30), 복수의 MMU들을 포함한 MMU 모듈(10), 버스 인터커넥터(42A, 42B) 및 메모리 장치(110)만 도시한다.
마스터 IP(30)는 작업세트 단위로 동작한다. 마스터 IP(30)는 복수의 작업세트들에 대한 동작을 수행한다. 이때 메모리 장치 내 복수의 작업세트들은 서로 독립적이고, 마스터 IP(30)는 각 작업세트마다 독립적으로 운용한다. 마스터 IP(30)는 각 작업세트를 처리할 때 요청(request) 및 처리할 작업세트 단위 데이터의 가상주소(VA)들을 MMU 모듈(10)로 출력한다.
도 5에 도시된 실시예와 같이 마스터 IP(30)가 메모리 장치(110)의 데이터에 대해 리드 동작 및 라이트 동작을 하는 경우를 살펴보자. 예를 들어 마스터 IP(30)는 이미지 스케일러 IP(Image Scaler IP)일 수 있다. 도 5의 실시예는 도 4에서 작업세트를 동작에 따른 리드 동작 세트 및 라이트 동작 세트로 구분한 것과 달리, 마스터 IP(30)가 처리할 데이터의 메모리 접근 영역에 따라 소스 세트(Source Set) 및 데스티네이션 세트(Destination)로 구분한다고 가정하자.
보다 구체적으로 설명하면, 마스터 IP(30)가 데이터 스케일러 IP, 또는 데이터 디더링 IP와 같이 소스 데이터(Source data)와 데스티네이션 데이터(Destination Data)를 혼합하여 데스티네이션 데이터를 출력하는 연산을 수행하는 경우를 가정하자. 복수의 작업세트들은 리드 동작을 수행할 소스 데이터가 집중된 메모리 영역을 소스 세트, 리드 동작 및 라이트 동작을 수행할 데스티네이션 데이터가 집중된 메모리 영역을 데스티네이션 세트로 각각 구분할 수 있다.
MMU 모듈(10)은 복수 개의 MMU(Memory Management Unit;11S, 11D)들을 포함한다. 복수 개의 MMU들은 각 작업세트마다 할당되어 서로 다른 MMU와 독립적으로 운용된다.
제1 MMU(MMU S, 11S)는 마스터 IP(30)의 소스 액세스 요청에 따라 메모리 장치(110) 내 소스 세트에 액세스하기 위해 할당된다. 제1 MMU(11S)는 소스 액세스 요청 및 메모리 장치(110)로부터 리드되는 소스 데이터(source data)를 송수신하는 소스 채널(Source CH)에 연결된다.
소스 채널(Source CH)은 마스터 IP(30)와 MMU 모듈(10), MMU 모듈(10)과 메모리 장치(110) 사이를 연결한다. 제1 MMU(11S)는 소스 데이터에 대한 가상주소(VA)를 물리주소(PA)로 번역한다.
제2 MMU(MMU D, 11D)는 마스터 IP(30)의 데스티네이션 액세스 요청에 따라 메모리 장치(110) 내 데스티네이션 세트에 액세스하기 위해 할당된다. 제2 MMU(11D)는 데스티네이션 액세스 요청 및 메모리 장치(110)로부터 리드되고, 메모리 장치(110)에 라이트되는 데스티네이션 데이터를 송수신하는 데스티네이션 채널(Destination CH)에 연결된다. 데스티네이션 채널(Destination CH)은 마스터 IP(30)와 MMU 모듈(10), MMU 모듈(10)과 메모리 장치(110) 사이를 연결한다.
제2 MMU(11D)는 메모리 장치(110)로부터 리드하는 데스티네이션 세트의 가상주소(VA)들을 물리주소(PA)들로 번역하고, 마스터 IP(30)에 의한 동작 후의 데스티네이션 세트가 라이트되는 물리주소(PA)들을 가상주소(VA)로 번역한다.
메모리 장치(110)와 MMU 모듈(10) 사이의 소스 채널(Source CH) 또는 데스티네이션 채널(Destination CH)에는 제1 버스 인터커넥터(42B)가 더 포함될 수 있다.
마스터 IP(30)와 MMU 모듈(10) 사이의 소스 채널(Source CH) 또는 데스티네이션 채널(Destination CH)에는 제2 버스 인터커넥터(42A)가 더 포함될 수 있다.
제1 버스 인터커넥터(42B) 및 제2 버스 인터커넥터(42A)는 작업세트에 따라 제1 MMU(11S) 또는 제2 MMU(11D)에 동적으로 할당될 수 있다. 예를 들어 제1 버스 인터커넥터(42B) 및 제2 버스 인터커넥터(42A)는 마스터 IP(30) 또는 메모리 장치(110)가 처리하는 작업세트의 가상주소(VA)가 소스 세트인지 데스티네이션 세트인지 확인하고, 해당 세트에 할당된 MMU로 해당 요청 및 해당 데이터를 송수신한다.
일례로, 제1 버스 인터커넥터(42B) 또는 제2 버스 인터커넥터(42A)는 처리할 작업세트에 따라 메모리 장치(110) 내의 메모리 접근 영역을 달리할 수 있다. 이 경우 소스 세트와 데스티네이션 세트는 메모리 장치(110) 내에서 독립적인 메모리 영역일 수 있다.
제2 버스 인터커넥터(42A)는 마스터 IP(30)가 처리할 작업세트가 소스 세트이면 제1 MMU(11S)와 연결한다. 반면 제2 버스 인터커넥터(42A)는 마스터 IP(30)가 처리할 작업세트가 데스티네이션 세트이면 제2 MMU(11D)와 연결한다. 제1 버스 인터커넥터(42B) 또한 작업세트가 소스 세트이면 제1 MMU(11S)로 연결하고, 작업세트가 데스티네이션 세트이면 제2 MMU(11D)로 연결한다.
다른 일례로, 제1 버스 인터커넥터(42B)는 각 MMU(11S 또는 11D)의 액세스별로 메모리 장치(110) 내의 메모리 접근 타이밍을 달리할 수 있다. 이 경우 메모리 장치(110) 내 소스 세트와 데스티네이션 세트는 시간적으로 서로 독립하여 액세스될 수 있다.
그 결과 데이터 블랜딩(Data blending) 동작 수행시, MMU 모듈(10)의 가상주소에 상응하는 물리주소의 검색 성공율(Hit ratio)을 높일 수 있고, SoC(1)의 처리 속도를 향상시킬 수 있다. 또한, 작업세트별로 MMU 모듈(10)을 사용하기 때문에, MMU를 유연성있게 운용할 수 있다.
도 6은 본 발명의 메모리 관리 유닛의 또다른 실시예에 따른 구조를 설명하기 위한 개념도이고, 도 7은 도 6의 메모리 관리 유닛의 동작을 설명하기 위한 개념도이다.
SoC(1)는 마스터 IP(30), MMU 모듈(10), 시스템 버스(40), 메모리 장치(110) 및 주소 분배기(20)를 포함할 수 있다. 도 6은 설명의 편의를 위해 일부 구성만 도시하였으나, 도 2와 같이 SoC(1)의 다른 구성요소를 더 포함할 수 있다.
마스터 IP(30)는 예를 들어 CPU(3), 그래픽 엔진, 디스플레이 컨트롤러(80) 등 작업세트 단위로 데이터를 처리하는 프로세서들이다. 마스터 IP는 작업세트 단위로 동작하고, 동시에 복수 개의 작업세트를 처리할 수 있다. 작업세트(Working Set)란 메모리 장치(110)에 저장되는 데이터 세트로, 마스터 IP가 밀도있게 액세스하려는 페이지(page)들의 집합, 또는 하나의 마스터 IP로부터 메모리 장치(110)로 올라갈 수 있는 페이지들의 양을 말한다. 이때 마스터 IP에서 각 작업세트는 다른 작업세트들과 독립적으로 운용된다. 시스템 버스(40)는 제1 버스 인터커넥터(Bus Interconnect 1, 43B), 제2 버스 인터커넥터(Bus Interconnect 0, 43A) 및 각 MMU, 마스터 IP(30) 및 메모리 장치(110)와 연결된 채널들을 포함하여, 마스터 IP(30)와 메모리 장치(110) 간의 요청 및 데이터를 전송한다.
주소 분배기(Address Distributor,20)는 마스터 IP(30)가 복수의 작업세트들에 대한 동작들을 수행할 때 각 작업세트마다 동적으로 MMU를 할당한다. 주소 분배기(20)는 복수의 작업세트들 각각에 상응하는 MMU 할당정보를 저장한다. 주소 분배기(20)는 마스터 IP(30)로부터 소정의 작업세트에 대한 요청을 수신하면, 상기 MMU 할당정보에 기초하여 상기 요청에 포함된 가상주소(VA)에 상응하는 해당 MMU의 ID를 제2 버스 인터커넥터(43A)로 출력한다. 제2 버스 인터커넥터(43A)는 상기 해당 MMU ID에 상응하는 MMU로 상기 요청 및 데이터를 전송한다.
주소 분배기(20)는 레지스터 세트(21) 및 주소 비교기(23)를 포함한다. 레지스터 세트(21)는 상기 복수의 작업세트들 각각에 상응하는 MMU 할당정보들을 저장한다. 즉, 각 MMU ID에 각 작업세트가 가진 가상주소들을 맵핑한 MMU 할당정보를 저장한다. 이때 MMU 할당정보는 각 작업세트별로 가상주소들을 구분하는 각 인디케이터 정보를 포함할 수 있다. 인디케이터 정보란, 예를 들어, 어느 하나의 작업세트에 대해 연속적인 가상주소들의 스타팅 포인트 및/또는 엔딩 포인트를 말한다.
주소 비교기(23)는 마스터 IP(30)로부터 수신한 요청의 가상주소(VA)들과 MMU 할당정보를 비교한다. 주소 비교기(23)는 비교결과 상기 요청에 상응하는 해당 MMU ID를 출력한다.
보다 구체적으로 설명하면, 도 7에 도시된 바와 같이, 각 작업세트(Working set 1 내지 n)는 마스터 IP(30)가 메모리 장치(110)에서 자주 참조하는 페이지들, 즉 복수의 인접한 가상주소들을 포함한다(예를 들어 working set 1은 VA0 내지 VA1을 포함). 그러나 각 작업세트는 마스터 IP(30)의 동작에 있어 서로 독립적으로 운용된다. 즉, 하나의 가상주소는 둘 이상의 작업세트에 속하지 않는다. 일례로, VA1부터 VAn에 이르기까지 각 작업세트의 가상주소들은 도 7과 같이 연속적으로 위치할 수 있다.
각 MMU는 맵핑된 작업세트의 가상주소(VA)를 물리주소(PA)로 번역된다. 주소 변환은 MMU 내 TLB에 의할 수 있다. 번역된 물리주소(PA)는 실시예에 따라 다른 MMU에서 번역된 물리주소와 다를 수도 있고, 동일할 수도 있다.
예를 들어, 마스터 IP(30)가 처리하고자 하는 데이터의 작업세트가 MMU 1에 맵핑된 작업세트라 하자. 제2 버스 인터커넥터(43A)는 주소 분배기(20)로부터 MMU 1의 ID(ID1)를 수신하여, 마스터 IP(30)의 요청 및 데이터를 MMU 1로 전송한다. MMU 1은 상기 요청에 대한 가상주소(VA)를 물리주소(PA)로 번역하고, 제1 버스 인터커넥터(43B)를 통해 메모리 장치(110)로 주소번역된 상기 요청 및 데이터를 전송한다. 제1 버스 인터커넥터(43B)는 메모리 장치(110)의 상기 물리주소로 접근하여, 상기 데이터에 대해 상기 요청에 따른 동작을 수행하도록 액세스한다. 이때 요청은 리드(read), 라이트(write) 또는 이레이즈(erase) 동작 중 어느 하나일 수 있다.
마스터 IP(30)가 소정의 작업세트에 대한 동작 중에 다른 작업세트에 대해 동작하고자 할 경우, MMU 모듈(10) 내 처리 중인 작업세트에 할당되지 않은 나머지 MMU들 중 하나를 할당하여 독립적으로 운용한다.
그 결과, 마스터 IP(30)에서 운용되는 모든 작업세트들이 하나의 MMU를 공유하는 경우보다 TLB 미스(TLB miss)를 줄일 수 있다. 따라서, 마스터 IP가 데이터 처리 동작 수행시, 데이터의 가상주소에 상응하는 물리주소의 검색 성공율(Hit ratio)을 높일 수 있고, 작업세트들 간의 영향을 최소화하면서 SoC의 동작 속도를 향상시킬 수 있다. 또한, 작업세트별로 MMU를 할당하여 사용하기 때문에, MMU를 유연성있게 운용할 수 있다.
도 8은 도 6의 실시예에 따른 메모리 주소 변환 방법을 나타낸 순서도이고, 도 9는 도 6의 실시예에 따른 메모리 주소 변환 방법을 나타낸 순서도이다.
일례로 도 8의 마스터 IP(30)가 메모리 장치(110)로 요청을 전송할 경우 각 MMU로 수신된 요청에 대한 가상주소들은 연속적이라고 가정한다. 즉 MMU 1에 수신된 가상주소들은 도 7에 도시된 바와 같이, 하나의 작업세트에 대해 연속적인 가상주소들로, MMU 2에 수신된 가상주소들과 별개의 작업세트로서 독립적으로 위치하는 가상주소들이다.
마스터 IP(30)가 소정의 작업세트에 대한 동작을 수행하기 위한 요청(request) 및 상기 작업세트에 대한 가상주소(VA)를 출력한다(S10). 제1 버스 인터커넥터(43A)는 상기 요청 및 가상주소(VA)를 수신하면 먼저 주소분배기(20)로 상기 가상주소(VA)를 전달한다(S20).
주소분배기(20)는 수신한 상기 가상주소(VA)를 레지스터 세트(21)에 저장된 인디케이터(VADD)들과 비교한다(S30,S31). 인디케이터(VADD)는 각 MMU에 할당된 연속된 가상주소들 중 경계에 있는 가상주소(스타팅 포인트 및/또는 엔딩 포인트)를 의미한다. 일례로 MMU 1은 연속된 가상주소들 중 첫번째 가상주소부터 제1 인디케이터 이전까지의 가상주소들을 포함하는 제1 작업세트에 할당되고, MMU 2는 상기 제1 인디케이터부터 제2 인디케이터까지의 가상주소들을 포함하는 제2 작업세트에 할당되는 등 연속적인 작업세트들에 따라 각각의 MMU가 할당되었다고 하자.
주소분배기(20)는 수신한 가상주소(VA)가 제1 인디케이터 가상주소(VADD1)보다 작은지 여부로 MMU 1에 대한 작업세트인지 MMU 2에 대한 작업세트인지를 확인하여(S30, S31) 상기 가상주소에 상응하는 MMU의 ID를 제2 버스 인터커넥터로 전송한다. 마찬가지로 다른 MMU들에 대해서도 인디케이터와 요청으로 수신한 가상주소를 비교하여 할당되는 MMU를 확인한다.
제2 버스 인터커넥터(43A)는 주소분배기(20)로부터 마스터 IP(30)로부터 수신한 요청에 상응하는 해당 MMU ID를 수신하면, 상기 요청(request) 및 가상주소(VA)를 상기 MMU ID에 상응하는 MMU 포트로 전송한다(S41 내지 S43). 예를 들어, 수신한 가상주소(VA)가 MMU 1에 대한 것이면, 제2 버스 인터커넥터(43A)는 상기 가상주소(VA) 및 요청(request)을 MMU 1의 포트(port)로 전달한다.
MMU는 수신된 가상주소(VA)를 TLB를 통해 물리주소(PA)로 번역한다. 그리고 MMU는 제1 버스 인터커넥터(43B)로 주소번역된 상기 요청을 전달한다(S51 내지 S53).
제1 버스 인터커넥터(43B)가 상기 메모리 장치(110)로 주소번역된 상기 요청을 전달하면(S160), 메모리 장치(110)는 상기 물리주소들에서 상기 요청을 처리한다.
도 9를 참조하면, 메모리 장치(110)가 마스터 IP(30)로 요청에 따른 데이터 및 응답을 전송할 경우(S110) 상기 데이터 및 상기 응답을 제1 버스 인터커넥터(43B)로 출력한다(S120).
제1 버스 인터커넥터(43B)는 상기 응답에 기초하여 상기 데이터의 물리주소가 어느 MMU ID에 할당되어 있었는지 확인하고(S130, S131), 확인된 MMU로 상기 응답 및 데이터를 전송한다(S141 내지 S143). 메모리 장치(110)가 전송하는 응답은 상기 요청을 보낸 MMU 정보를 포함할 수 있다.
예를 들면, 마스터 IP(30)의 요청이 제1 작업세트에 대한 것이어서 MMU 1이 할당되어 있었다면, 제1 버스 인터커넥터(43B)는 상기 응답에 기초하여 MMU 1의 ID를 확인하여 MMU 1의 포트로 상기 응답 및 상기 데이터를 전달한다(S141).
MMU는 상기 응답 및 상기 데이터를 수신하면, 제2 버스 인터커넥터(43A)를 통해 상기 응답 및 데이터를 마스터 IP(30)로 전달한다(S151 내지 S153).
마스터 IP(30)는 제2 버스 인터커넥터(43A)를 통해 수신한 상기 응답 및 데이터를 처리한다(S160). 도 10은 본 발명의 실시예들에 따라 수행되는 이미지 블랜딩 과정을 설명하기 위한 개념도이다. 일 실시예로 마스터 IP(35)가 두 개의 이미지를 블랜딩(Blending)한다고 가정하자. 보다 구체적으로 모바일 기기에서 사용자의 설정 또는 어떤 조건하에서 제1 화면에서 제2 화면으로 전환되는 경우, 전환되는 중간 시점에서 사용자에게 디스플레이 되는 오버레이된 이미지는 제1 화면과 제2 화면을 블랜딩(blending)한 이미지라고 할 수 있다.
이 경우 마스터 IP(35)는 메모리 장치(110)로부터 블랜딩 대상이 되는 두 개의 소스 이미지를 리드한 후, 소스 이미지들에 대해 블랜딩하여 메모리 장치(110)에 블랜딩된 하나의 이미지를 라이트해야 한다. 즉, 마스터 IP(35)가 수행할 복수의 작업세트들은 2회의 소스 세트(또는 리드 동작 세트들), 1회의 데스티네이션 세트(또는 라이트 동작 세트)로 구성된다.
도 10을 참조하면, 제1 이미지(원형)는 가상주소 (6) 내지 (9)에 해당하는 제1 소스 세트(Source 1)에 저장되어 있고, 제2 이미지(사각형)는 가상주소(12) 내지 (15)에 해당하는 제2 소스 세트(Source 2)에 저장되어 있다.
마스터 IP(35)는 상기 제1 소스 세트에 대한 리드 동작, 제2 소스 세트에 대한 리드 동작을 수행하기 위해 MMU 모듈(10)로 제1 리드 요청 및 제2 리드 요청을 전송한다. MMU 모듈은 각 리드 요청에 포함된 가상주소들(제1 소스 세트, 제2 소스 세트)을 확인하여, 제1 소스 세트에 대해서는 제1 MMU, 제2 소스 세트에 대해서는 제2 MMU를 할당한다.
제1 MMU는 제1 리드 요청에 따라 제1 소스 세트의 가상주소들을 물리 주소들로 번역하여, 메모리 장치(110)에 액세스한다. 메모리 장치(110)는 제1 소스 세트에 저장된 데이터(원형)를 리드하여, 상기 제1 리드 요청에 대한 응답과 함께 제1 MMU로 회신한다. 제1 MMU는 회신된 상기 데이터 및 상기 응답을 마스터 IP(35)로 전송한다.
마찬가지로, 제2 MMU는 제2 리드 요청에 따라 제2 소스 세트의 가상주소들을 물리 주소들로 번역하여, 메모리 장치(110)에 액세스한다. 메모리 장치(110)는 제2 소스 세트에 저장된 데이터(사각형)를 리드하여, 상기 제2 리드 요청에 대한 응답과 함께 제2 MMU로 회신한다. 제2 MMU는 회신된 상기 데이터 및 상기 응답을 마스터 IP(35)로 전송한다.
제1 MMU와 제2 MMU 각각은 제1 소스 세트, 제2 소스 세트 각각에 대해 독립적으로 운용된다. 이때 제1 리드 요청에 따른 프로세스와 제2 리드 요청에 대한 프로세스는 MMU가 각각 할당되므로 실시예에 따라 동시에 수행될 수도 있고, 소정의 시간차를 두고 수행될 수도 있다.
마스터 IP(35)는 상기 제1 소스 세트에 따른 이미지(원형)와 제2 소스 세트에 따른 이미지(사각형)을 블랜딩한다. 블랜딩 처리된 이미지(원형과 사각형의 결합)가 메모리 장치(110)에 라이트되기 위해 마스터 IP(35)는 MMU 모듈(10)로 라이트 요청을 전송한다. 블랜딩된 이미지는 데스티네이션 세트에 라이트되는데, 일례로 제2 소스 세트와 데스티네이션 세트의 가상 주소 영역이 동일하다고 가정하자.
MMU 모듈은 라이트 요청에 포함된 가상주소들(데스티네이션 세트)을 확인하여, 데스티네이션 세트에 하나의 MMU를 할당한다. 이때 데스티네이션 세트에 할당되는 MMU는 실시예에 따라 별도의 제3 MMU일 수도 있고, 현재 동작 수행 중이지 않은 제1 MMU 또는 제2 MMU 중 어느 하나가 다시 할당된 것일 수도 있다. 이하에서는 설명의 편의를 위해 제3 MMU가 할당된 경우로 설명한다. 제3 MMU는 라이트 요청에 따라 데스티네이션 세트의 가상주소들을 물리 주소들로 번역하여, 상기 라이트 요청 및 상기 블랜딩된 데이터로 메모리 장치(110)에 액세스한다. 메모리 장치(110)는 데스티네이션 세트에 해당하는 메모리 영역에 액세스하여 상기 블랜딩된 이미지를 라이트한다. 메모리 장치(110)는 상기 라이트 요청에 대한 응답을 제3 MMU로 회신한다. 제2 MMU는 회신된 상기 응답을 마스터 IP(35)로 전송한다.
데스티네이션 세트에 대한 라이트 동작 수행은 제1 소스 세트 또는 제2 소스 세트에 대한 리드 동작이 선행되어야 하므로, 시간차를 두고 독립적으로 운용될 수 있다.
그 결과 마스터 IP가 데이터 처리 동작 수행시, 데이터의 가상주소에 상응하는 물리주소의 검색 성공율(Hit ratio)을 높일 수 있다. 또한 각 작업세트마다 별개의 MMU가 동적으로 할당되어 독립적으로 운용되므로, 작업세트들 간의 영향을 최소화하면서 SoC의 동작 속도를 향상시킬 수 있고, MMU들을 유연성있게 운용할 수 있다.
도 11은 도 2에 도시된 SoC를 포함하는 전자장치의 일 실시 예를 나타낸다.
도 11을 참조하면, 전자장치(200)은 이동 전화기(cellular phone), 스마트폰(smartphone), 태블릿 PC(tablet personal computer), PDA (personal digital assistant), PMP(portable multimedia player), 또는 무선 통신 장치로 구현될 수 있다.
전자장치(200)는 데이터를 저장하는 메모리 장치(210)를 포함한다.메모리 장치(210)는 불휘발성 메모리와 메모리 컨트롤러를 포함할 수 있다. 메모리 컨트롤러는 SoC(1)의 제어에 따라 불휘발성 메모리의 데이터 액세스 동작, 예컨대 프로그램(program) 동작, 이레이즈(erase) 동작, 또는 리드(read) 동작을 제어할 수 있다.
무선 송수신기(220)는 안테나(ANT)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(220)는 안테나(ANT)를 통하여 수신된 무선 신호를 SoC(1)에서 처리될 수 있는 신호로 변경할 수 있다.
따라서, SoC(1)는 무선 송수신기(220)로부터 출력된 신호를 처리하고 처리된 신호를 메모리 장치(210) 또는 디스플레이(240)로 전송할 수 있다. 메모리 컨트롤러는 SoC(1)에 의하여 처리된 신호를 불휘발성 메모리 장치에 프로그램 또는 라이트할 수 있다.
또한, 무선 송수신기(220)는 SoC(1)로부터 출력된 신호를 무선 신호로 변경하고, 변경된 무선 신호를 안테나(ANT)를 통하여 외부 장치로 출력할 수 있다.
입력 장치(230)는 SoC(1)의 동작을 제어하기 위한 제어 신호 또는 SoC(1)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
SoC(1)는 메모리 장치(210)로부터 출력된 데이터, 무선 송수신기 (220)로부터 출력된 데이터, 또는 입력 장치(230)로부터 출력된 데이터가 디스플레이(240)를 통하여 디스플레이될 수 있도록 디스플레이(240)의 동작을 제어할 수 있다.
실시 예에 따라, 불휘발성 메모리 장치의 동작을 제어할 수 있는 메모리 컨트롤러는 SoC(1)의 일부로서 구현될 수 있고 또한 SoC(1)와 별도의 칩으로 구현될 수 있다.
도 12는 도 2에 도시된 SoC를 포함하는 전자장치의 또 다른 실시 예를 나타낸다.
도 12에 도시된 전자장치(300)는 이미지 처리 장치, 예컨대 디지털 카메라, 디지털 카메라가 부착된 이동 전화기, 디지털 카메라가 부착된 스마트폰, 또는 디지털 카메라가 부착된 태블릿 PC로 구현될 수 있다.
전자장치(300)은 메모리 장치(320)를 포함한다. 메모리 장치(320)는 불휘발성 메모리 및 불휘발성 메모리의 데이터 처리 동작, 예컨대 프로그램 동작, 이레이즈 동작, 또는 리드 동작을 제어할 수 있는 메모리 컨트롤러를 포함할 수 있다.
전자장치(300)의 이미지 센서(310)는 광학 이미지를 디지털 이미지로 변환하고, 변환된 디지털 이미지는 SoC(1) 또는 메모리 장치(320)로 전송된다. SoC(1)의 제어에 따라, 변환된 디지털 이미지는 디스플레이(330)를 통하여 디스플레이되거나 또는 메모리 장치(320)에 저장될 수 있다.
또한, 메모리 장치(320)에 저장된 데이터는 SoC(1) 또는 메모리 컨트롤러의 제어에 따라 디스플레이(330)를 통하여 디스플레이된다.
실시 예에 따라 불휘발성 메모리의 동작을 제어할 수 있는 메모리 컨트롤러는 SoC(1)의 일부로서 구현될 수 있고 또한 SoC(1)와 별개의 칩으로 구현될 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1: SoC 3 : CPU
5 : 캐시
10 : MMU 모듈 10R, 10W, 11S, 11D : MMU
12 : TLB
20 : 주소분배기 21 : 레지스터 세트
22 : 주소비교기
30 : 마스터 IP 40,45 : 시스템 버스
41,42A,42B,43A,43B : 버스 인터커넥터
50 : 시스템 주변 유닛 60 : 멀티미디어 가속 유닛
70 : 연결 유닛 80 : 디스플레이 컨트롤러
90 : 메모리 인터페이스 유닛
110 : 메모리 장치 115 : 페이지 테이블
117 : 데이터/명령부
120 : 입력 장치 130 : 디스플레이
100,200,300 : 전자장치

Claims (20)

  1. 복수의 작업세트들에 대해 동작하기 위해 상기 각 작업세트들에 상응하는 각각의 요청들을 출력하는 마스터 IP(Intellecutal Property);
    상기 각 작업세트별로 각각 할당되어, 상기 요청에 대한 가상주소들을 물리주소들로 번역하는 MMU(Memory Management Unit)들을 복수 개 포함하는 MMU 모듈; 및
    상기 MMU 모듈과 메모리 장치를 연결하여, 상기 복수의 MMU들 중 적어도 하나의 MMU에서 주소번역된 상기 요청을 상기 메모리 장치로 전달하는 제1 버스 인터커넥터를 포함하고,
    복수의 작업세트들 각각은, 상기 복수의 작업세트들 중에서 2개 이상의 작업세트들에 동시에 포함되는 가상 주소가 존재하지 않도록, 가상 주소들을 포함하고,
    상기 복수의 MMU들 각각은, 상기 복수의 작업 세트들 중에서 2개 이상의 MMU에 동시에 할당되는 작업세트가 존재하지 않도록, 적어도 하나의 작업세트에 할당되는 SoC(System on Chip).
  2. 제1항에 있어서, 상기 MMU 모듈은
    상기 각 작업세트에 따라 상기 MMU들 간에 서로 독립적으로 동작하는 SoC.
  3. 제1항에 있어서, 상기 작업세트는
    리드 동작 세트 및 라이트 동작 세트를 포함하고,
    상기 MMU 모듈은
    상기 마스터 IP의 리드 요청(Read Request)에 따라 상기 메모리 장치의 상기 리드 동작 세트에 액세스하는 제1 MMU; 및
    상기 마스터 IP의 라이트 요청(Write Request)에 따라 상기 메모리 장치의 상기 라이트 동작 세트에 액세스하는 제2 MMU를 포함하는 SoC.
  4. 제3항에 있어서,
    상기 제1 MMU는 리드 채널을 통해 상기 마스터 IP와 연결되고, 상기 제2 MMU는 라이트 채널을 통해 상기 마스터 IP와 연결되는 SoC.
  5. 제3항에 있어서, 상기 제1 버스 인터커넥터는
    상기 제1 MMU로부터 상기 리드 요청을 수신하면 상기 메모리 장치의 리드 동작 세트로 연결하고, 상기 제2 MMU로부터 상기 라이트 요청을 수신하면 상기 메모리 장치의 라이트 동작 세트로 연결하는 SoC.
  6. 제1항에 있어서, 상기 작업세트는
    소스 세트 및 데스티네이션 세트를 포함하고,
    상기 MMU 모듈은
    상기 마스터 IP의 소스 액세스 요청에 따라 상기 메모리 장치의 상기 소스 세트에 액세스하는 제1 MMU; 및
    상기 마스터 IP의 데스티네이션 액세스 요청에 따라 상기 메모리 장치의 상기 데스티네이션 세트에 액세스하는 제2 MMU를 포함하는 SoC.
  7. 제6항에 있어서, 상기 SoC는
    상기 마스터 IP와 상기 MMU 모듈을 연결하여, 상기 마스터 IP의 요청에 따라 상기 제1 MMU 또는 상기 제2 MMU를 동적으로(dynamic) 할당하는 제2 버스 인터커넥터를 더 포함하는 SoC.
  8. 제7항에 있어서, 상기 제2 버스 인터커넥터는
    상기 마스터 IP로부터 소스 액세스 요청을 수신하면 상기 제1 MMU로 연결하고, 상기 마스터 IP로부터 데스티네이션 액세스 요청을 수신하면 상기 제2 MMU로 연결하는 SoC.
  9. 복수의 작업세트들에 대해 동작하기 위해 상기 각 작업세트들에 상응하는 각각의 요청들을 출력하는 마스터 IP(Intellecutal Property);
    상기 각 작업세트별로 각각 할당되어, 상기 요청에 대한 가상주소들을 물리주소들로 번역하는 MMU(Memory Management Unit)들을 복수 개 포함하는 MMU 모듈;
    상기 MMU 모듈과 메모리 장치를 연결하여, 상기 복수의 MMU들 중 적어도 하나의 MMU 에서 주소번역된 상기 요청을 상기 메모리 장치로 전달하는 제1 버스 인터커넥터; 및
    상기 마스터 IP와 상기 MMU 모듈을 연결하여, 상기 각 작업세트마다 상기 복수의 MMU들 중 어느 하나의 MMU를 할당하는 제2 버스 인터커넥터를 포함하고,
    복수의 작업세트들 각각은, 상기 복수의 작업세트들 중에서 2개 이상의 작업세트들에 동시에 포함되는 가상 주소가 존재하지 않도록, 가상 주소들을 포함하고,
    상기 복수의 MMU들 각각은, 상기 복수의 작업 세트들 중에서 2개 이상의 MMU에 동시에 할당되는 작업세트가 존재하지 않도록, 적어도 하나의 작업세트에 할당되는 SoC(System on Chip).
  10. 제9항에 있어서, 상기 작업세트는
    상기 메모리 장치에 저장되어, 상기 마스터 IP가 상기 메모리 장치에서 자주 참조하는 페이지들의 집합으로, 상기 작업세트들 간에 서로 독립적으로 운용되는 데이터 세트인 SoC.
  11. 제9항에 있어서, 상기 MMU 모듈은
    상기 각 작업세트에 따라 상기 MMU들 간에 서로 독립적으로 동작하는 SoC.
  12. 제9항에 있어서, 상기 SoC는
    상기 복수의 작업세트들 각각에 상응하는 MMU 할당정보들을 저장하는 주소 분배기를 더 포함하고,
    상기 주소 분배기는
    상기 마스터 IP로부터 상기 요청을 수신하면, 상기 MMU 할당정보에 기초하여 상기 요청에 상응하는 해당 MMU ID를 출력하는 SoC.
  13. 제12항에 있어서, 상기 주소 분배기는
    상기 복수의 작업세트들 각각에 상응하는 상기 MMU 할당정보들을 저장하는 레지스터 세트; 및
    상기 마스터 IP로부터 수신한 상기 요청의 가상 주소와 상기 MMU 할당정보를 비교하여 상기 요청에 상응하는 상기 해당 MMU ID를 출력하는 주소 비교기를 포함하는 SoC.
  14. 제13항에 있어서, 상기 레지스터 세트는
    상기 각 작업세트의 연속된 가상주소들 중 인디케이터를 상기 각 MMU ID와 맵핑하여 상기 MMU 할당정보로 저장하는 SoC.
  15. 제14항에 있어서, 상기 주소 비교기는
    상기 요청의 가상주소들 각각과 상기 인디케이터를 비교하여 상기 작업세트에 할당된 상기 해당 MMU ID를 출력하는 SoC.
  16. 제9항에 있어서, 상기 제1 버스 인터커넥터 및 상기 제2 버스 인터커넥터는
    상기 마스터 IP의 요청 및 상기 메모리 장치의 응답에 따라 상기 복수의 MMU들 중 동적으로 할당된 어느 하나의 MMU의 포트를 연결하는 SoC.
  17. 복수의 작업세트들에 대해 동작을 수행하는 마스터 IP가 상기 각 작업세트에 따른 요청 각각을 출력하는 단계;
    상기 각 작업세트마다 복수의 MMU들 중 어느 하나의 MMU를 동적으로 할당하는 단계;
    상기 할당된 MMU가 상기 요청에 따른 가상주소들을 물리주소들로 번역하는 단계; 및
    주소번역된 상기 요청을 메모리 장치의 상기 물리주소들로 전송하는 단계를 포함하고,
    복수의 작업세트들 각각은, 상기 복수의 작업세트들 중에서 2개 이상의 작업세트들에 동시에 포함되는 가상 주소가 존재하지 않도록, 가상 주소들을 포함하고,
    상기 복수의 MMU들 각각은, 상기 복수의 작업 세트들 중에서 2개 이상의 MMU에 동시에 할당되는 작업세트가 존재하지 않도록, 적어도 하나의 작업세트에 할당되는 메모리 주소 변환 방법.
  18. 제17항에 있어서, 상기 복수의 MMU들은
    상기 각 작업세트에 따라 상기 MMU들 간에 서로 독립적으로 동작하는 메모리 주소 변환 방법.
  19. 제17항에 있어서, 상기 할당하는 단계는
    상기 복수의 작업세트들 각각에 상응하는 MMU 할당정보들을 저장하여, 상기 마스터 IP로부터 상기 요청을 수신하면, 상기 요청에 따른 가상주소들과 상기 MMU 할당정보를 비교하는 단계
    비교결과 상기 MMU 할당정보에 기초하여, 상기 요청에 상응하는 해당 MMU ID를 출력하는 단계를 포함하는 메모리 주소 변환 방법.
  20. 제17항에 있어서, 상기 메모리 주소 변환 방법은
    상기 메모리 장치가 상기 요청에 따라 상기 물리 주소들의 상기 작업세트를 처리하고 처리결과에 대한 응답 또는 데이터를 출력하는 단계;
    상기 복수의 MMU들 중 처리된 상기 작업세트에 할당되었던 MMU로 상기 응답 또는 데이터를 전달하는 단계; 및
    상기 응답 또는 데이터를 상기 마스터 IP로 전달하는 단계를 더 포함하는 메모리 주소 변환 방법.
KR1020130001758A 2013-01-07 2013-01-07 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법 KR102002900B1 (ko)

Priority Applications (8)

Application Number Priority Date Filing Date Title
KR1020130001758A KR102002900B1 (ko) 2013-01-07 2013-01-07 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
AU2013270635A AU2013270635A1 (en) 2013-01-07 2013-12-16 System on chip including memory management unit and memory address translation method thereof
TW102146788A TWI634425B (zh) 2013-01-07 2013-12-18 系統晶片、電子系統及其記憶體位址轉譯方法
US14/138,982 US9348764B2 (en) 2013-01-07 2013-12-23 System on chip including memory management unit and memory address translation method thereof
NL2012042A NL2012042A (en) 2013-01-07 2013-12-31 System on chip including memory management unit and memory address translation method thereof.
DE102014100031.5A DE102014100031A1 (de) 2013-01-07 2014-01-03 Ein-Chip-System mit Speicherverwaltungseinheit und Speicheradressen-Übersetzungsverfahren hiervon
CN201410006692.0A CN103914405B (zh) 2013-01-07 2014-01-07 包括存储管理单元的片上***及其存储地址转换方法
JP2014001170A JP2014132467A (ja) 2013-01-07 2014-01-07 メモリ管理ユニットを含むシステム・オン・チップとそのメモリアドレス変換方法及び電子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130001758A KR102002900B1 (ko) 2013-01-07 2013-01-07 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법

Publications (2)

Publication Number Publication Date
KR20150127872A KR20150127872A (ko) 2015-11-18
KR102002900B1 true KR102002900B1 (ko) 2019-07-23

Family

ID=51019288

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130001758A KR102002900B1 (ko) 2013-01-07 2013-01-07 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법

Country Status (8)

Country Link
US (1) US9348764B2 (ko)
JP (1) JP2014132467A (ko)
KR (1) KR102002900B1 (ko)
CN (1) CN103914405B (ko)
AU (1) AU2013270635A1 (ko)
DE (1) DE102014100031A1 (ko)
NL (1) NL2012042A (ko)
TW (1) TWI634425B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150015577A (ko) * 2013-07-30 2015-02-11 삼성전자주식회사 프로세서 및 메모리 제어 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013076529A1 (en) * 2011-11-23 2013-05-30 Freescale Semiconductor, Inc. System-on-chip, method of manufacture thereof and method of controlling a system-on-chip
CN105302765A (zh) * 2014-07-22 2016-02-03 电信科学技术研究院 一种***级芯片及其内存访问管理方法
WO2016064403A1 (en) 2014-10-23 2016-04-28 Hewlett Packard Enterprise Development Lp Supervisory memory management unit
WO2016085463A1 (en) 2014-11-25 2016-06-02 Hewlett Packard Enterprise Development Lp Memory controller with memory resource memory management
KR102420453B1 (ko) 2015-09-09 2022-07-13 엘지디스플레이 주식회사 유기발광 표시장치 및 이를 적용한 차량용 조명장치
KR102540964B1 (ko) 2018-02-12 2023-06-07 삼성전자주식회사 입출력 장치의 활용도 및 성능을 조절하는 메모리 컨트롤러, 애플리케이션 프로세서 및 메모리 컨트롤러의 동작
US11243891B2 (en) * 2018-09-25 2022-02-08 Ati Technologies Ulc External memory based translation lookaside buffer
CN111221465B (zh) * 2018-11-23 2023-11-17 中兴通讯股份有限公司 Dsp处理器、***以及外部存储空间访问方法
CN112463657B (zh) * 2019-09-09 2024-06-18 阿里巴巴集团控股有限公司 一种地址转换缓存清除指令的处理方法和处理装置
CN110704338B (zh) * 2019-10-18 2021-01-26 安徽寒武纪信息科技有限公司 地址转换装置、人工智能芯片及电子设备
CN113722246B (zh) * 2021-11-02 2022-02-08 超验信息科技(长沙)有限公司 处理器中物理内存保护机制的实现方法及装置
CN116166577A (zh) * 2021-11-25 2023-05-26 华为技术有限公司 处理器、地址转换的方法、装置、存储介质及程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030072316A1 (en) * 1999-05-20 2003-04-17 Autumn Jane Niu Apparatus and method in a network switch port for transferring data between buffer memory and transmit and receive state machines according to a prescribed interface protocol
US20080109592A1 (en) * 2006-11-04 2008-05-08 Virident Systems Inc. Seamless application access to hybrid main memory
US20080263256A1 (en) * 2007-04-20 2008-10-23 Motorola, Inc. Logic Device with Write Protected Memory Management Unit Registers
US20120038952A1 (en) * 2010-08-16 2012-02-16 Samsung Electronics Co., Ltd. Image forming apparatus and method of translating virtual memory address into physical memory address

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233667B1 (en) 1999-03-05 2001-05-15 Sun Microsystems, Inc. Method and apparatus for a high-performance embedded memory management unit
US6292874B1 (en) 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
US7509391B1 (en) 1999-11-23 2009-03-24 Texas Instruments Incorporated Unified memory management system for multi processor heterogeneous architecture
EP1304620A1 (en) * 2001-10-17 2003-04-23 Texas Instruments Incorporated Cache with selective write allocation
JP2004355187A (ja) 2003-05-28 2004-12-16 Sony Corp 仮想メモリ・システム、仮想メモリのアドレス管理方法、並びにアドレス変換テーブル生成装置
US8239657B2 (en) 2007-02-07 2012-08-07 Qualcomm Incorporated Address translation method and apparatus
KR20080097573A (ko) 2007-05-02 2008-11-06 삼성전자주식회사 가상 메모리 접근 방법
KR101440107B1 (ko) 2008-01-28 2014-09-12 삼성전자주식회사 다중 코어 시스템에서 접근 시간에 기초한 메모리 관리방법 및 장치
JP2010026969A (ja) 2008-07-24 2010-02-04 Hitachi Ltd データ処理装置
JP2010170266A (ja) 2009-01-21 2010-08-05 Toshiba Corp 半導体集積回路及びアドレス変換方法
US8397049B2 (en) 2009-07-13 2013-03-12 Apple Inc. TLB prefetching
JP5579003B2 (ja) * 2010-09-22 2014-08-27 三菱重工業株式会社 アドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法
KR20130001758A (ko) 2011-06-28 2013-01-07 김기철 전기 로스터

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030072316A1 (en) * 1999-05-20 2003-04-17 Autumn Jane Niu Apparatus and method in a network switch port for transferring data between buffer memory and transmit and receive state machines according to a prescribed interface protocol
US20080109592A1 (en) * 2006-11-04 2008-05-08 Virident Systems Inc. Seamless application access to hybrid main memory
US20080263256A1 (en) * 2007-04-20 2008-10-23 Motorola, Inc. Logic Device with Write Protected Memory Management Unit Registers
US20120038952A1 (en) * 2010-08-16 2012-02-16 Samsung Electronics Co., Ltd. Image forming apparatus and method of translating virtual memory address into physical memory address

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150015577A (ko) * 2013-07-30 2015-02-11 삼성전자주식회사 프로세서 및 메모리 제어 방법
KR102117511B1 (ko) 2013-07-30 2020-06-02 삼성전자주식회사 프로세서 및 메모리 제어 방법

Also Published As

Publication number Publication date
KR20150127872A (ko) 2015-11-18
AU2013270635A1 (en) 2014-07-24
DE102014100031A1 (de) 2014-07-10
US9348764B2 (en) 2016-05-24
TWI634425B (zh) 2018-09-01
US20140195742A1 (en) 2014-07-10
TW201433917A (zh) 2014-09-01
JP2014132467A (ja) 2014-07-17
CN103914405B (zh) 2019-01-18
CN103914405A (zh) 2014-07-09
NL2012042A (en) 2014-07-08

Similar Documents

Publication Publication Date Title
KR102002900B1 (ko) 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
KR102069273B1 (ko) 시스템 온 칩 및 그 동작방법
US8694755B1 (en) Virtual memory management for real-time embedded devices
US11216385B2 (en) Application processor, system-on chip and method of operating memory management unit
JP2013543195A (ja) ディスプレイパイプにおけるストリーミング式翻訳
KR20110077894A (ko) 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법
KR20120129695A (ko) 메모리 관리 유닛, 이를 포함하는 장치들 및 이의 동작 방법
KR20150038513A (ko) 단일 페이지 테이블 엔트리 내의 속성 필드들의 다중 세트들
US20140040541A1 (en) Method of managing dynamic memory reallocation and device performing the method
KR101821633B1 (ko) 메모리 시스템
CN107667355B (zh) 一种用于提供分区的转换高速缓存器的方法及其设备
KR20180009217A (ko) 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법
US9037831B2 (en) Memory management unit and apparatuses having same
KR101801901B1 (ko) 데이터 구역성을 고려하여 액세스되는 메모리 장치 및 이를 포함하는 전자 시스템
KR102329924B1 (ko) 전자 장치 및 이의 메모리 관리 방법
US10692171B2 (en) Method of operating virtual address generator and method of operating system including the same
US20160350212A1 (en) Application processor and a mobile apparatus having a plurality of address mapping formats and method of accessing data including the same
CN116680210A (zh) 存储空间访问方法、装置、设备及存储介质
CN114925000A (zh) 地址转换方法、电子装置和电子设备

Legal Events

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