KR101103818B1 - Apparatus for controlling memory management unit, multi-core processor and computer system including the same, and method of controlling memory management unit - Google Patents

Apparatus for controlling memory management unit, multi-core processor and computer system including the same, and method of controlling memory management unit Download PDF

Info

Publication number
KR101103818B1
KR101103818B1 KR1020100006031A KR20100006031A KR101103818B1 KR 101103818 B1 KR101103818 B1 KR 101103818B1 KR 1020100006031 A KR1020100006031 A KR 1020100006031A KR 20100006031 A KR20100006031 A KR 20100006031A KR 101103818 B1 KR101103818 B1 KR 101103818B1
Authority
KR
South Korea
Prior art keywords
page number
virtual page
memory management
management unit
control signal
Prior art date
Application number
KR1020100006031A
Other languages
Korean (ko)
Other versions
KR20110086349A (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 KR1020100006031A priority Critical patent/KR101103818B1/en
Publication of KR20110086349A publication Critical patent/KR20110086349A/en
Application granted granted Critical
Publication of KR101103818B1 publication Critical patent/KR101103818B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

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

메모리 관리 유닛 제어 장치는 복수의 참조 테이블들, 중재부 및 관리부를 포함한다. 복수의 참조 테이블들은 복수의 메모리 관리 유닛들에 각각 구비되는 변환 참조 버퍼들 각각에 대응되고, 중재부는 복수의 메모리 관리 유닛들로부터 복수의 가상 페이지 번호들을 수신하여 복수의 가상 페이지 번호들 중에서 선택된 가상 페이지 번호 및 선택된 가상 페이지 번호를 송신한 메모리 관리 유닛을 나타내는 제어 신호를 제공하고, 관리부는 선택된 가상 페이지 번호 및 제어 신호를 수신하여 제어 신호에 기초하여 복수의 참조 테이블들을 검색하고, 선택된 가상 페이지 번호에 대응하는 물리 페이지 번호를 중재부에 제공한다. 중재부는 관리부로부터 수신된 물리 페이지 번호를 제어 신호가 나타내는 메모리 관리 유닛으로 제공한다. 메모리 관리 유닛 제어 장치는 메모리 접근 속도를 향상시킬 수 있다.The memory management unit control device includes a plurality of reference tables, an arbitration unit and a management unit. The plurality of reference tables correspond to each of the translation reference buffers respectively provided in the plurality of memory management units, and the arbitration unit receives the plurality of virtual page numbers from the plurality of memory management units and selects a plurality of virtual page numbers. Providing a control signal indicative of the page number and the memory management unit that has transmitted the selected virtual page number, wherein the management unit receives the selected virtual page number and the control signal to retrieve a plurality of reference tables based on the control signal, and selects the selected virtual page number Provides the physical page number corresponding to the arbitration unit. The arbitration section provides the physical page number received from the management section to the memory management unit indicated by the control signal. The memory management unit control device can improve the memory access speed.

Description

메모리 관리 유닛 제어 장치, 이를 포함하는 멀티 코어 프로세서, 컴퓨터 시스템 및 메모리 관리 유닛 제어 방법{APPARATUS FOR CONTROLLING MEMORY MANAGEMENT UNIT, MULTI-CORE PROCESSOR AND COMPUTER SYSTEM INCLUDING THE SAME, AND METHOD OF CONTROLLING MEMORY MANAGEMENT UNIT}A memory management unit control device, a multi-core processor, a computer system and a memory management unit control method including the same.

본 발명은 메모리 관리 유닛 제어 장치(Memory Management Unit, MMU)에 관한 것으로서, 더욱 상세하게는 복수의 메모리 관리 유닛 사이에 변환 참조 버퍼(Translation Lookaside Buffer, TLB)의 공유가 가능한 메모리 관리 유닛 제어 장치 및 이를 포함하는 멀티 코어 프로세서(Multi-Core Processor), 컴퓨터 시스템 및 메모리 관리 유닛 제어 방법에 관한 것이다.The present invention relates to a memory management unit (MMU), and more particularly, to a memory management unit control device capable of sharing a translation lookaside buffer (TLB) between a plurality of memory management units; A multi-core processor, a computer system, and a memory management unit control method including the same.

일반적으로 중앙 처리 장치(Central Processing Unit, CPU)는 가상 주소를 사용하여 프로그램을 판독하는 반면에 메인 메모리는 물리 주소를 사용하여 프로그램을 기억한다. 따라서 가상 주소를 물리 주소로 변환할 필요가 있는데, 메모리 관리 유닛(Memory Management Unit, MMU)이 이러한 역할을 수행한다.In general, a central processing unit (CPU) reads a program using a virtual address, while main memory stores a program using a physical address. Therefore, it is necessary to translate the virtual address into a physical address, and a memory management unit (MMU) plays this role.

메인 메모리는 모든 가상 주소 및 이와 서로 연관된 물리 주소를 저장하는 페이지 테이블을 구비한다. 따라서 가상 주소로부터 물리 주소로의 변환에 상기 페이지 테이블이 사용될 수 있다. 하지만 상기 페이지 테이블은 메인 메모리에 존재하기 때문에 상기 페이지 테이블을 통해 가상 주소를 물리 주소로 변환하는 데에는 많은 시간이 소요된다. The main memory has a page table for storing all virtual addresses and their associated physical addresses. Thus, the page table can be used for translation from virtual address to physical address. However, since the page table exists in main memory, it takes a long time to convert a virtual address into a physical address through the page table.

따라서 메모리 관리 유닛은 페이지 테이블의 일부가 등록되어 있는 변환 참조 버퍼(Translation Lookaside Buffer, TLB)를 구비한다. 변환 참조 버퍼는 빠른 속도로 가상 주소를 물리 주소로 변환하기 위해 사용되는 캐쉬 메모리이다. Therefore, the memory management unit includes a translation lookaside buffer (TLB) in which part of the page table is registered. The translation reference buffer is cache memory used to quickly translate virtual addresses into physical addresses.

일반적으로 메모리 관리 유닛은 주소 공간을 수 페이지 단위로 나누며, CPU로부터 수신되는 가상 주소 중에서 하위 N비트는 페이지 내의 오프셋으로 간주하고, 나머지 비트들을 사용하여 페이지 번호를 나타낸다. 변환 참조 버퍼는 이러한 페이지 번호 정보를 담고 있으며, 구체적으로, 가상 페이지 번호와 이와 연결된 물리 페이지 번호 쌍들을 저장하고 있다. In general, the memory management unit divides the address space into units of pages, and among the virtual addresses received from the CPU, the lower N bits are regarded as offsets in a page, and the remaining bits are used to represent a page number. The translation reference buffer stores such page number information, and specifically, stores a virtual page number and physical page number pairs associated with it.

메모리 관리 유닛은 CPU로부터 가상 주소를 수신하면, 변환 참조 버퍼에 가상 페이지 번호에 대한 정보가 있는지 검색하여 가상 페이지 번호에 대한 정보가 있는 경우, 변환 참조 버퍼로부터 물리 페이지 번호를 획득하여 물리 주소를 완성하지만, 변환 참조 버퍼에 상기 가상 페이지 번호에 대한 정보가 없는 경우, 접근 속도가 느린 상기 페이지 테이블을 검색하여 물리 페이지 번호를 획득한다. When the memory management unit receives the virtual address from the CPU, the memory management unit searches whether the translation reference buffer has information about the virtual page number, and if there is information about the virtual page number, obtains the physical page number from the translation reference buffer to complete the physical address. However, if there is no information on the virtual page number in the translation reference buffer, the page table with slow access speed is searched to obtain a physical page number.

일반적으로 각 코어가 메모리 관리 유닛을 구비하고 있는 멀티 코어 시스템(multi-core system)의 경우에도, 각 코어에 포함되는 메모리 관리 유닛들은 각각의 변환 참조 버퍼에 가상 페이지 번호에 대한 정보가 없는 경우 페이지 테이블을 검색하여 물리 페이지 번호를 획득하므로 메모리 접근 시간이 증가하는 문제점이 있다.In general, even in a multi-core system in which each core has a memory management unit, the memory management units included in each core may not have information about a virtual page number in each translation reference buffer. The memory access time is increased because the physical page number is obtained by searching the table.

상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은 멀티 코어 시스템에서 복수의 메모리 관리 유닛 사이에 변환 참조 버퍼의 공유가 가능한 메모리 관리 유닛 제어 장치를 제공하는 것이다.One object of the present invention for solving the above problems is to provide a memory management unit control apparatus capable of sharing a translation reference buffer between a plurality of memory management units in a multi-core system.

본 발명의 다른 목적은 멀티 코어 시스템에서 복수의 메모리 관리 유닛 사이에 변환 참조 버퍼의 공유가 가능한 메모리 관리 유닛 제어 방법을 제공하는 것이다.Another object of the present invention is to provide a memory management unit control method capable of sharing a translation reference buffer among a plurality of memory management units in a multi-core system.

본 발명의 다른 목적은 메모리 접근 속도가 향상된 멀티 코어 프로세서를 제공하는 것이다.Another object of the present invention is to provide a multi-core processor with improved memory access speed.

본 발명의 다른 목적은 메모리 접근 속도가 향상된 컴퓨터 시스템을 제공하는 것이다.Another object of the present invention is to provide a computer system with improved memory access speed.

상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 메모리 관리 유닛 제어 장치는, 복수의 참조 테이블들, 중재부 및 관리부를 포함한다. 상기 복수의 참조 테이블들은 복수의 메모리 관리 유닛들에 각각 구비되는 변환 참조 버퍼들 각각에 대응된다. 상기 중재부는 상기 복수의 메모리 관리 유닛들로부터 복수의 가상 페이지 번호들을 수신하여 상기 복수의 가상 페이지 번호들 중에서 선택된 가상 페이지 번호 및 상기 선택된 가상 페이지 번호를 송신한 메모리 관리 유닛을 나타내는 제어 신호를 제공한다. 상기 관리부는 상기 선택된 가상 페이지 번호 및 상기 제어 신호를 수신하여 상기 제어 신호에 기초하여 상기 복수의 참조 테이블들을 검색하고, 상기 선택된 가상 페이지 번호에 대응하는 물리 페이지 번호를 상기 중재부에 제공한다. 상기 중재부는 상기 관리부로부터 수신된 상기 물리 페이지 번호를 상기 제어 신호가 나타내는 메모리 관리 유닛으로 제공한다.In order to achieve the above object of the present invention, the memory management unit control apparatus according to an embodiment of the present invention includes a plurality of reference tables, an arbitration unit and a management unit. The plurality of reference tables correspond to each of the translation reference buffers provided in each of the plurality of memory management units. The arbitration unit receives a plurality of virtual page numbers from the plurality of memory management units and provides a control signal indicating a memory management unit transmitting the selected virtual page number among the plurality of virtual page numbers and the selected virtual page number. . The management unit receives the selected virtual page number and the control signal to search the plurality of reference tables based on the control signal, and provides a physical page number corresponding to the selected virtual page number to the arbitration unit. The arbitration section provides the physical page number received from the management section to a memory management unit indicated by the control signal.

일 실시예에 있어서, 상기 복수의 참조 테이블들 각각은, 대응되는 변환 참조 버퍼에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장할 수 있다.In one embodiment, each of the plurality of reference tables may store virtual page number and physical page number pairs stored in a corresponding translation reference buffer.

상기 관리부는 상기 복수의 참조 테이블들 중에서 상기 제어 신호에 상응하는 참조 테이블 이외의 참조 테이블들에 대해서 상기 선택된 가상 페이지 번호가 존재하는지 여부를 검색할 수 있다.The management unit may search whether the selected virtual page number exists for reference tables other than the reference table corresponding to the control signal among the plurality of reference tables.

상기 관리부는 상기 검색 결과 상기 선택된 가상 페이지 번호가 존재하는 경우, 상기 복수의 참조 테이블들로부터 상기 선택된 가상 페이지 번호에 대응되는 상기 물리 페이지 번호를 획득하여 제공하고, 상기 검색 결과 상기 선택된 가상 페이지 번호가 존재하지 않는 경우, 페이지 테이블을 사용하여 상기 선택된 가상 페이지 번호에 대응하는 상기 물리 페이지 번호를 획득하여 제공할 수 있다.The management unit obtains and provides the physical page number corresponding to the selected virtual page number from the plurality of reference tables when the selected virtual page number exists as a result of the search, and the selected virtual page number is If it does not exist, the physical page number corresponding to the selected virtual page number may be obtained and provided using a page table.

상기 관리부는 상기 선택된 가상 페이지 번호 및 상기 물리 페이지 번호 쌍을 상기 제어 신호에 상응하는 참조 테이블에 저장할 수 있다.The manager may store the selected virtual page number and the physical page number pair in a reference table corresponding to the control signal.

일 실시예에 있어서, 상기 중재부는 상기 복수의 가상 페이지 번호를 수신하여 상기 제어 신호를 생성하는 제어 회로, 상기 제어 신호에 기초하여 상기 선택된 상기 가상 페이지 번호를 제공하는 멀티플렉서 및 상기 제어 신호에 기초하여 상기 물리 페이지 번호를 제공하는 디멀티플렉서를 포함할 수 있다.In one embodiment, the arbitration unit is a control circuit for receiving the plurality of virtual page numbers to generate the control signal, a multiplexer for providing the selected virtual page number based on the control signal and based on the control signal It may include a demultiplexer for providing the physical page number.

상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 메모리 관리 유닛 제어 방법은, 복수의 메모리 관리 유닛들로부터 가상 페이지 번호를 수신하고, 복수의 메모리 관리 유닛들에 각각 구비되는 변환 참조 버퍼들 각각에 대응되고, 각각이 대응되는 변환 참조 버퍼에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하는 복수의 참조 테이블들에 상기 가상 페이지 번호가 존재하는지 여부를 검색하고, 상기 가상 페이지 번호가 상기 복수의 참조 테이블들에 존재하는 경우, 상기 복수의 참조 테이블들로부터 상기 가상 페이지 번호에 대응되는 상기 물리 페이지 번호를 획득하고, 상기 가상 페이지 번호가 상기 복수의 참조 테이블들에 존재하지 않는 경우, 페이지 테이블을 사용하여 상기 가상 페이지 번호에 대응하는 물리 페이지 번호를 획득하고, 상기 물리 페이지 번호를 상기 가상 페이지 번호를 송신한 메모리 관리 유닛으로 제공한다.In order to achieve the above object of the present invention, a memory management unit control method according to an embodiment of the present invention, receives a virtual page number from a plurality of memory management units, each provided in a plurality of memory management units Search whether the virtual page number exists in a plurality of reference tables corresponding to each of the converted reference buffers, each of which stores virtual page number and physical page number pairs stored in the corresponding converted reference buffer, When a page number exists in the plurality of reference tables, the physical page number corresponding to the virtual page number is obtained from the plurality of reference tables, and the virtual page number does not exist in the plurality of reference tables. If not, use the page table to water the corresponding virtual page number A logical page number is obtained, and the physical page number is provided to a memory management unit which has transmitted the virtual page number.

일 실시예에 있어서, 상기 가상 페이지 번호 및 상기 물리 페이지 번호 쌍을 상기 가상 페이지 번호를 송신한 메모리 관리 유닛에 구비되는 변환 참조 버퍼에 대응되는 참조 테이블에 저장할 수 있다.The virtual page number and the physical page number pair may be stored in a reference table corresponding to a translation reference buffer included in a memory management unit that has transmitted the virtual page number.

상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 멀티 코어 프로세서는, 복수의 코어들 및 메모리 관리 유닛 제어 장치를 포함한다. 상기 복수의 코어들은 가상 페이지 번호가 변환 참조 버퍼에 존재하는지 여부에 따라 선택적으로 상기 가상 페이지 번호를 제공하는 메모리 관리 유닛을 각각 구비한다. 상기 메모리 관리 유닛 제어 장치는 상기 복수의 메모리 관리 유닛들에 구비되는 변환 참조 버퍼들에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하고 있고, 상기 가상 페이지 번호가 상기 쌍들에 존재하는 경우, 상기 쌍들로부터 상기 가상 페이지 번호에 대응되는 상기 물리 페이지 번호를 획득하여 상기 메모리 관리 유닛으로 제공하고, 상기 가상 페이지 번호가 상기 쌍들에 존재하지 않는 경우, 페이지 테이블로부터 상기 가상 페이지 번호에 대응되는 상기 물리 페이지 번호를 획득하여 상기 메모리 관리 유닛으로 제공한다.In order to achieve the above object of the present invention, a multi-core processor according to an embodiment of the present invention includes a plurality of cores and a memory management unit control device. The plurality of cores each include a memory management unit that provides the virtual page number selectively depending on whether a virtual page number exists in the translation reference buffer. The memory management unit control apparatus stores the virtual page number and physical page number pairs stored in the translation reference buffers provided in the plurality of memory management units, and the pairs when the virtual page number exists in the pairs. The physical page number corresponding to the virtual page number is obtained from the page table and is provided to the memory management unit and the virtual page number does not exist in the pairs. Acquire and provide to the memory management unit.

일 실시예에 있어서, 상기 메모리 관리 유닛 제어 장치는 상기 복수의 메모리 관리 유닛들에 각각 구비되는 변환 참조 버퍼들 각각에 대응되고, 각각이 대응되는 변환 참조 버퍼에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하는 복수의 참조 테이블들, 상기 복수의 메모리 관리 유닛들로부터 복수의 가상 페이지 번호들을 수신하여 상기 복수의 가상 페이지 번호들 중에서 선택된 가상 페이지 번호 및 상기 선택된 가상 페이지 번호를 송신한 메모리 관리 유닛을 나타내는 제어 신호를 제공하는 중재부 및 상기 선택된 가상 페이지 번호 및 상기 제어 신호를 수신하여 상기 제어 신호에 기초하여 상기 복수의 참조 테이블들을 검색하고, 상기 선택된 가상 페이지 번호에 대응하는 상기 물리 페이지 번호를 상기 중재부에 제공하는 관리부를 포함하고, 상기 중재부는 상기 관리부로부터 수신된 상기 물리 페이지 번호를 상기 제어 신호가 나타내는 메모리 관리 유닛으로 제공할 수 있다.In an embodiment, the memory management unit control device corresponds to each of the translation reference buffers provided in the plurality of memory management units, and each of the virtual page number and physical page number pairs stored in the corresponding translation reference buffers. A plurality of reference tables for storing the plurality of virtual pages, a plurality of virtual page numbers received from the plurality of memory management units, and a virtual page number selected from the plurality of virtual page numbers and a memory management unit for transmitting the selected virtual page number. An arbitration unit for providing a control signal indicating the control unit; and receiving the selected virtual page number and the control signal to search the plurality of reference tables based on the control signal, and wherein the physical page number corresponds to the selected virtual page number. Management provided to the arbitration department And the arbitration unit may provide the physical page number received from the management unit to a memory management unit indicated by the control signal.

상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 컴퓨터 시스템은, 메인 메모리 및 멀티 코어 프로세서를 포함한다. 상기 메인 메모리는 페이지 테이블을 구비한다. 상기 멀티 코어 프로세서는 상기 메인 메모리로부터 데이터를 독출하고, 상기 메인 메모리에 데이터를 기입한다. 상기 멀티 코어 프로세서는 가상 페이지 번호가 변환 참조 버퍼에 존재하는지 여부에 따라 선택적으로 상기 가상 페이지 번호를 제공하는 메모리 관리 유닛을 각각 구비하는 복수의 코어들 및 상기 복수의 메모리 관리 유닛들에 구비되는 변환 참조 버퍼들에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하고 있고, 상기 가상 페이지 번호가 상기 쌍들에 존재하는 경우, 상기 쌍들로부터 상기 가상 페이지 번호에 대응되는 상기 물리 페이지 번호를 획득하여 상기 메모리 관리 유닛으로 제공하고, 상기 가상 페이지 번호가 상기 쌍들에 존재하지 않는 경우, 페이지 테이블로부터 상기 가상 페이지 번호에 대응되는 상기 물리 페이지 번호를 획득하여 상기 메모리 관리 유닛으로 제공하는 메모리 관리 유닛 제어 장치를 포함한다.In order to achieve the above object of the present invention, a computer system according to an embodiment of the present invention includes a main memory and a multi-core processor. The main memory has a page table. The multi-core processor reads data from the main memory and writes data to the main memory. The multi-core processor includes a plurality of cores and a plurality of memory management units each having a memory management unit for selectively providing the virtual page number according to whether a virtual page number exists in the translation reference buffer. Storing the virtual page number and the physical page number pairs stored in the reference buffers, and when the virtual page number exists in the pairs, obtain the physical page number corresponding to the virtual page number from the pairs to manage the memory. And a memory management unit control device which obtains the physical page number corresponding to the virtual page number from a page table and provides the same to the memory management unit when the virtual page number does not exist in the pairs. .

일 실시예에 있어서, 상기 메모리 관리 유닛 제어 장치는 상기 복수의 메모리 관리 유닛들에 각각 구비되는 변환 참조 버퍼들 각각에 대응되고, 각각이 대응되는 변환 참조 버퍼에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하는 복수의 참조 테이블들, 상기 복수의 메모리 관리 유닛들로부터 복수의 가상 페이지 번호들을 수신하여 상기 복수의 가상 페이지 번호들 중에서 선택된 가상 페이지 번호 및 상기 선택된 가상 페이지 번호를 송신한 메모리 관리 유닛을 나타내는 제어 신호를 제공하는 중재부 및 상기 선택된 가상 페이지 번호 및 상기 제어 신호를 수신하여 상기 제어 신호에 기초하여 상기 복수의 참조 테이블들을 검색하고, 상기 선택된 가상 페이지 번호에 대응하는 상기 물리 페이지 번호를 상기 중재부에 제공하는 관리부를 포함하고, 상기 중재부는 상기 관리부로부터 수신된 상기 물리 페이지 번호를 상기 제어 신호가 나타내는 메모리 관리 유닛으로 제공할 수 있다.In an embodiment, the memory management unit control device corresponds to each of the translation reference buffers provided in the plurality of memory management units, and each of the virtual page number and physical page number pairs stored in the corresponding translation reference buffers. A plurality of reference tables for storing the plurality of virtual pages, a plurality of virtual page numbers received from the plurality of memory management units, and a virtual page number selected from the plurality of virtual page numbers and a memory management unit for transmitting the selected virtual page number. An arbitration unit for providing a control signal indicating the control unit; and receiving the selected virtual page number and the control signal to search the plurality of reference tables based on the control signal, and wherein the physical page number corresponds to the selected virtual page number. Management provided to the arbitration department And the arbitration unit may provide the physical page number received from the management unit to a memory management unit indicated by the control signal.

상기와 같은 본 발명의 실시예들에 따른 메모리 관리 유닛 제어 장치 및 방법은, 각각의 코어가 메모리 관리 유닛을 구비하는 멀티 코어 시스템에서, 메모리 관리 유닛이 필요로 하는 가상 페이지 번호에 대한 정보가 해당 변환 참조 버퍼에는 존재하지 않으나 다른 코어에 속한 메모리 관리 유닛의 변환 참조 버퍼에는 존재하는 경우, 다른 코어에 속한 메모리 관리 유닛의 변환 참조 버퍼에 존재하는 가상 페이지 번호에 대한 정보를 통해 물리 페이지 번호를 획득할 수 있도록 하여 복수의 메모리 관리 유닛 사이에 변환 참조 버퍼의 공유가 가능하게 함으로써, 접근 속도가 느린 페이지 테이블을 검색할 필요 없이 빠른 속도로 가상 페이지 번호를 물리 페이지 번호로 변환할 수 있다.In the apparatus and method for controlling a memory management unit according to the embodiments of the present invention as described above, in a multi-core system in which each core includes a memory management unit, information about a virtual page number required by the memory management unit is applicable. If it does not exist in the translation reference buffer but exists in the translation reference buffer of the memory management unit belonging to the other core, the physical page number is obtained from the information about the virtual page number present in the translation reference buffer of the memory management unit belonging to the other core. By enabling the conversion reference buffer to be shared among a plurality of memory management units, virtual page numbers can be converted into physical page numbers at a high speed without having to search a page table with a slow access speed.

상기와 같은 본 발명의 실시예들에 따른 멀티 코어 프로세서 및 컴퓨터 시스템은, 상기 설명한 바와 같은 메모리 관리 유닛 제어 장치를 구비하여 구성됨으로써, 메모리 접근 속도를 향상시킬 수 있다.The multi-core processor and the computer system according to the embodiments of the present invention as described above are provided with the memory management unit control device as described above, thereby improving the memory access speed.

도 1은 본 발명의 일 실시예에 따른 멀티 코어 프로세서를 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 메모리 관리 유닛 제어 장치를 나타내는 블록도이다.
도 3은 도 2의 메모리 관리 유닛 제어 장치에 포함되는 참조 테이블의 구성을 나타내는 도면이다.
도 4는 도 2의 메모리 관리 유닛 제어 장치에 포함되는 중재부의 일 예를 나타내는 블록도이다.
도 5는 본 발명의 일 실시예에 따른 메모리 관리 유닛 제어 방법을 나타내는 순서도이다.
도 6은 본 발명의 일 실시예에 따른 컴퓨터 시스템을 나타내는 블록도이다.
1 is a block diagram illustrating a multi-core processor according to an embodiment of the present invention.
2 is a block diagram illustrating an apparatus for controlling a memory management unit according to an exemplary embodiment of the present invention.
FIG. 3 is a diagram illustrating a configuration of a reference table included in the memory management unit control device of FIG. 2.
4 is a block diagram illustrating an example of an arbitration unit included in the memory management unit control device of FIG. 2.
5 is a flowchart illustrating a method of controlling a memory management unit according to an embodiment of the present invention.
6 is a block diagram illustrating a computer system according to an example embodiment.

본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.With respect to the embodiments of the present invention disclosed in the text, specific structural to functional descriptions are merely illustrated for the purpose of describing embodiments of the present invention, embodiments of the present invention may be implemented in various forms and It should not be construed as limited to the embodiments described in.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.As the inventive concept allows for various changes and numerous modifications, particular embodiments will be illustrated in the drawings and described in detail in the text. However, this is not intended to limit the present invention to a specific disclosed form, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.

제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is said to be "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that another component may exist in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between. Other expressions describing the relationship between components, such as "between" and "immediately between," or "neighboring to," and "directly neighboring to" should be interpreted as well.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "having" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof that is described, and that one or more other features or numbers are present. It should be understood that it does not exclude in advance the possibility of the presence or addition of steps, actions, components, parts or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. .

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. The same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

도 1은 본 발명의 일 실시예에 따른 멀티 코어 프로세서를 나타내는 블록도이다.1 is a block diagram illustrating a multi-core processor according to an embodiment of the present invention.

도 1을 참조하면, 멀티 코어 프로세서(3000)는 메모리 관리 유닛 제어 장치(1000) 및 n(n은 2이상의 정수)개의 코어들(CORE1 - COREn)(2000-1 - 2000-n)을 포함한다.Referring to FIG. 1, the multi-core processor 3000 includes a memory management unit control apparatus 1000 and n (n is an integer of 2 or more) cores CORE1-COREn 2000-1-2000-n. .

n개의 코어들(2000-1 - 2000-n) 각각은 메모리 관리 유닛(MMU1 - MMUn)(2100-1 - 2100-n)을 포함하고, 메모리 관리 유닛들(2000-1 - 2000-n) 각각은 변환 참조 버퍼(TLB1 - TLBn)(2110-1 - 2110-n)를 포함한다.Each of the n cores 2000-1-2000-n includes a memory management unit MMU1-MMUn 2100-1-2100-n, and each of the memory management units 2000-1-2000-n. Includes translation reference buffers (TLB1-TLBn) 2110-1-2110-n.

메모리 관리 유닛(2000-i)(i는 1이상 n이하의 정수)은 가상 주소에 상응하는 가상 페이지 번호(VPNi)를 물리 주소에 상응하는 물리 페이지 번호(PPNi)로 변환하기 위해 가상 페이지 번호(VPNi)가 변환 참조 버퍼(2110-i)에 존재하는지 여부를 검색한다. 상기 검색 결과 가상 페이지 번호(VPNi)가 변환 참조 버퍼(2110-i)에 존재하는 경우, 변환 참조 버퍼(2110-i)에 가상 페이지 번호(VPNi)와 연결되어 저장되어 있는 물리 페이지 번호(PPNi)를 독출함으로써 가상 페이지 번호(VPNi)를 물리 페이지 번호(PPNi)로 변환한다. 상기 검색 결과 가상 페이지 번호(VPNi)가 변환 참조 버퍼(2110-i)에 존재하지 않는 경우, 메모리 관리 유닛(2100-i)은 가상 페이지 번호(VPNi)를 메모리 관리 유닛 제어 장치(1000)로 제공한다.The memory management unit 2000-i (i is an integer greater than or equal to 1 and less than or equal to n) converts a virtual page number (VPNi) corresponding to a virtual address into a physical page number (PPNi) corresponding to a physical address. VPNi) is searched for in the translation lookaside buffer 2110-i. If the virtual page number VPNi exists in the translation reference buffer 2110-i, the physical page number PPNi stored in association with the virtual page number VPNi in the translation reference buffer 2110-i. The virtual page number VPNi is converted into the physical page number PPNi by reading. If the virtual page number VPNi is not present in the translation reference buffer 2110-i, the memory management unit 2100-i provides the virtual page number VPNi to the memory management unit control device 1000. do.

메모리 관리 유닛 제어 장치(1000)는 n개의 메모리 관리 유닛들(2100-1 - 2100-n) 각각에 구비되는 변환 참조 버퍼들(2110-1 - 2110-n)에 저장된 모든 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하고 있다. The memory management unit control apparatus 1000 may store all virtual page numbers and physical pages stored in the translation reference buffers 2110-1-2110-n provided in the n memory management units 2100-1-2100-n, respectively. It stores number pairs.

메모리 관리 유닛 제어 장치(1000)는 n개의 코어들(2000-1 - 2000-n)에 각각 구비되는 n개의 메모리 관리 유닛들(2100-1 - 2100-n)로부터 복수의 가상 페이지 번호들(VPN1 - VPNn)을 수신하여 가상 페이지 번호들(VPN1 - VPNn) 각각이 상기 저장되어 있는 가상 페이지 번호 및 물리 페이지 번호 쌍들에 존재하는지 여부를 검색한다. 가상 페이지 번호들(VPN1 - VPNn) 각각이 상기 저장되어 있는 가상 페이지 번호 및 물리 페이지 번호 쌍들에 존재하는 경우, 상기 쌍들로부터 가상 페이지 번호들(VPN1 - VPNn) 각각에 대응되는 물리 페이지 번호(PPN1 - PPNn)를 획득하여 각각의 메모리 관리 유닛(2100-1 - 2100-n)으로 제공한다. 한편, 가상 페이지 번호들(VPN1 - VPNn) 각각이 상기 저장되어 있는 가상 페이지 번호 및 물리 페이지 번호 쌍들에 존재하지 않는 경우, 멀티 코어 프로세서(3000)의 외부에 존재하는 페이지 테이블(4100)로부터 가상 페이지 번호들(VPN1 - VPNn)에 대응되는 물리 페이지 번호들(PPN1 - PPNn)을 획득하여 각각의 메모리 관리 유닛(2100-1 - 2100-n)으로 제공한다.The memory management unit control apparatus 1000 includes a plurality of virtual page numbers VPN1 from n memory management units 2100-1-2100-n respectively provided in the n cores 2000-1-2000-n. VPNn) to retrieve whether each of the virtual page numbers (VPN1-VPNn) are present in the stored virtual page number and physical page number pairs. If each of the virtual page numbers VPN1-VPNn exists in the stored virtual page number and physical page number pairs, the physical page number PPN1-corresponding to each of the virtual page numbers VPN1-VPNn from the pairs. PPNn) is obtained and provided to each memory management unit 2100-1-2100-n. On the other hand, if each of the virtual page numbers (VPN1-VPNn) does not exist in the stored virtual page number and physical page number pairs, the virtual page from the page table 4100 existing outside the multi-core processor 3000 The physical page numbers PPN1-PPNn corresponding to the numbers VPN1-VPNn are obtained and provided to the memory management units 2100-1-2100-n.

메모리 관리 유닛(2100-i)이 가상 페이지 번호(VPNi)를 메모리 관리 유닛 제어 장치(1000)에 제공하고 메모리 관리 유닛 제어 장치(1000)로부터 대응되는 물리 페이지 번호(PPNi)를 수신하는 경우, 메모리 관리 유닛(2100-i)은 가상 페이지 번호(VPNi) 및 물리 페이지 번호(PPNi) 쌍을 변환 참조 버퍼(2110-i)에 저장함으로써 변환 참조 버퍼(2110-i)를 갱신한다.When the memory management unit 2100-i provides the virtual page number VPNi to the memory management unit control apparatus 1000 and receives a corresponding physical page number PPNi from the memory management unit control apparatus 1000, The management unit 2100-i updates the translation reference buffer 2110-i by storing the virtual page number VPNi and the physical page number PPNi pair in the translation reference buffer 2110-i.

이 때, 메모리 관리 유닛 제어 장치(1000)는 가상 페이지 번호(VPNi) 및 물리 페이지 번호(PPNi) 쌍을 상기 저장하고 있는 가상 페이지 번호 및 물리 페이지 번호 쌍들에 추가하여 저장함으로써, 상기 저장하고 있는 가상 페이지 번호 및 물리 페이지 번호 쌍들을 변환 참조 버퍼들(2110-1 - 2110-n)에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들과 동일하게 유지할 수 있다.At this time, the memory management unit control apparatus 1000 stores the virtual page number VPNi and the physical page number PPNi in addition to the stored virtual page number and physical page number pairs, thereby storing the stored virtual page number. The page number and physical page number pairs may be kept the same as the virtual page number and physical page number pairs stored in the translation reference buffers 2110-1 through 2110-n.

도 2는 본 발명의 일 실시예에 따른 메모리 관리 유닛 제어 장치를 나타내는 블록도이다.2 is a block diagram illustrating an apparatus for controlling a memory management unit according to an exemplary embodiment of the present invention.

도 2의 메모리 관리 유닛 제어 장치(1000)는 도 1의 멀티 코어 프로세서(3000)에 포함되는 메모리 관리 유닛 제어 장치(1000)의 일 예를 나타내는 것으로서, 도 1의 멀티 코어 프로세서(3000)에 포함되는 메모리 관리 유닛 제어 장치(1000)는 도 2의 메모리 관리 유닛 제어 장치(1000)로 구성될 수 있다.The memory management unit control apparatus 1000 of FIG. 2 illustrates an example of the memory management unit control apparatus 1000 included in the multicore processor 3000 of FIG. 1, and is included in the multicore processor 3000 of FIG. 1. The memory management unit control apparatus 1000 may be configured as the memory management unit control apparatus 1000 of FIG. 2.

도 2를 참조하면, 메모리 관리 유닛 제어 장치(1000)는 중재부(100), 관리부(200) 및 n개의 참조 테이블들(300-1 - 300-n)을 포함한다.Referring to FIG. 2, the memory management unit control apparatus 1000 includes an arbitration unit 100, a management unit 200, and n reference tables 300-1 to 300-n.

중재부(100)는 메모리 관리 유닛 제어 장치(1000)의 외부에 존재하는 n개의 메모리 관리 유닛들(2100-1 - 2100-n)로부터 가상 페이지 번호들(VPN1 - VPNn)을 수신한다. 중재부(100)는 복수의 메모리 관리 유닛들(2100-1 - 2100-n)로부터 가상 페이지 번호들(VPN1 - VPNn)이 동시에 수신되는 경우 이를 순차적으로 관리부(200)에 제공하기 위해, 수신된 가상 페이지 번호들(VPN1 - VPNn) 중에서 하나의 가상 페이지 번호(VPNi)를 선택하고 선택된 가상 페이지 번호(VPNi) 및 선택된 가상 페이지 번호(VPNi)를 송신한 메모리 관리 유닛(2100-i)을 나타내는 제어 신호(CON)를 관리부(200)에 제공한다. 예를 들면, 중재부(100)가 가상 페이지 번호(VPNi)를 선택하는 경우 제어 신호(CON)는 i값을 갖는 신호일 수 있다.The arbitration unit 100 receives the virtual page numbers VPN1-VPNn from the n memory management units 2100-1-2100-n that exist outside the memory management unit control apparatus 1000. The arbitration unit 100 receives the virtual page numbers VPN1-VPNn from the plurality of memory management units 2100-1-2100-n at the same time to sequentially provide the management page to the management unit 200. Control indicating a memory management unit 2100-i that has selected one virtual page number VPNi from among virtual page numbers VPN1-VPNn and has transmitted the selected virtual page number VPNi and the selected virtual page number VPNi. The signal CON is provided to the management unit 200. For example, when the arbitration unit 100 selects the virtual page number VPNi, the control signal CON may be a signal having an i value.

n개의 참조 테이블들(300-1 - 300-n) 각각은 n개의 메모리 관리 유닛들(2100-1 - 2100-n)에 구비되는 변환 참조 버퍼들(2110-1 - 2110-n) 각각에 대응된다. Each of the n reference tables 300-1-300-n corresponds to each of the translation reference buffers 2110-1-2110-n included in the n memory management units 2100-1-2100-n. do.

도 3은 도 2의 메모리 관리 유닛 제어 장치(1000)에 포함되는 참조 테이블들의 구성을 나타내는 도면이다.3 is a diagram illustrating a configuration of reference tables included in the memory management unit control apparatus 1000 of FIG. 2.

도 2의 메모리 관리 유닛 제어 장치(1000)에 포함된 n개의 참조 테이블들(300-1 - 300-n) 각각은 도 3에 도시된 참조 테이블(300)로 구성될 수 있다.Each of the n reference tables 300-1 to 300-n included in the memory management unit control apparatus 1000 of FIG. 2 may be configured as the reference table 300 illustrated in FIG. 3.

도 3을 참조하면, 참조 테이블(300)은 가상 페이지 번호 및 물리 페이지 번호에 해당하는 열들을 구비한다. 가상 페이지 번호 및 이에 대응되는 물리 페이지 번호는 참조 테이블(300)의 동일한 행에 저장된다. Referring to FIG. 3, the reference table 300 includes columns corresponding to a virtual page number and a physical page number. The virtual page number and the corresponding physical page number are stored in the same row of the reference table 300.

다시 도 2를 참조하면, n개의 참조 테이블들(300-1 - 300-n) 각각은 대응되는 변환 참조 버퍼(2110-1 - 2110-n)에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하고 있다. 후술하는 바와 같이, n개의 참조 테이블들(300-1 - 300-n) 각각은 대응되는 변환 참조 버퍼(2110-1 - 2110-n)가 갱신되는 경우 동일하게 갱신됨으로써 대응되는 변환 참조 버퍼(2110-1 - 2110-n)에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들과 동일한 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하고 있게 된다. Referring back to FIG. 2, each of the n reference tables 300-1-300-n stores virtual page number and physical page number pairs stored in the corresponding translation reference buffers 2110-1-2110-n. have. As will be described later, each of the n reference tables 300-1-300-n is identically updated when the corresponding translation reference buffers 2110-1-2110-n are updated, so that the corresponding translation reference buffers 2110 are updated. And virtual page number and physical page number pairs identical to those stored in the virtual page number and physical page number pairs.

관리부(200)는 선택된 가상 페이지 번호(VPNi) 및 제어 신호(CON)를 수신하여 선택된 가상 페이지 번호(VPNi)가 n개의 참조 테이블들(300-1 - 300-n)에 저장되어 있는지 여부를 검색하여 선택된 가상 페이지 번호(VPNi)에 대응하는 물리 페이지 번호(PPNi)를 중재부(100)에 제공한다. The management unit 200 receives the selected virtual page number VPNi and the control signal CON to search whether the selected virtual page number VPNi is stored in the n reference tables 300-1 to 300-n. The physical page number PPNi corresponding to the selected virtual page number VPNi is provided to the arbitration unit 100.

메모리 관리 유닛(2100-i)은 가상 페이지 번호(VPNi)가 변환 참조 버퍼(2110-i)에 저장되어 있지 않는 경우에 메모리 관리 유닛 제어 장치(1000)로 가상 페이지 번호(VPNi)를 제공한다. 따라서 관리부(200)가 선택된 가상 페이지 번호(VPNi)를 수신하는 경우 변환 참조 버퍼(2110-i)는 선택된 가상 페이지 번호(VPNi)를 저장하고 있지 않은 것이므로 참조 테이블(300-i) 역시 선택된 가상 페이지 번호(VPNi)를 저장하고 있지 않다. 따라서 관리부(200)는 n개의 참조 테이블들(300-1 - 300-n) 중에서 제어 신호(CON)에 상응하는 참조 테이블(300-i)을 제외한 나머지 참조 테이블들에 대해서만 선택된 가상 페이지 번호(VPNi)가 저장되어 있는지 여부를 검색할 수 있다.The memory management unit 2100-i provides the virtual page number VPNi to the memory management unit control device 1000 when the virtual page number VPNi is not stored in the translation reference buffer 2110-i. Therefore, when the management unit 200 receives the selected virtual page number VPNi, the translation reference buffer 2110-i does not store the selected virtual page number VPNi, and thus the reference table 300-i is also selected. The number (VPNi) is not stored. Accordingly, the management unit 200 selects the virtual page number VPNi selected only for the remaining reference tables except for the reference table 300-i corresponding to the control signal CON among the n reference tables 300-1 to 300-n. You can search whether or not) is stored.

관리부(200)는 상기 검색 결과 선택된 가상 페이지 번호(VPNi)가 n개의 참조 테이블들(300-1 - 300-n)에 존재하는 경우, 선택된 가상 페이지 번호(VPNi)가 저장되어 있는 참조 테이블로부터 선택된 가상 페이지 번호(VPNi)와 연결되어 저장되어 있는 물리 페이지 번호(PPNi)를 획득하여 중재부(100)로 제공하고, 상기 검색 결과 선택된 가상 페이지 번호(VPNi)가 n개의 참조 테이블들(300-1 - 300-n)에 존재하지 않는 경우, 메모리 관리 유닛 제어 장치(1000)의 외부에 존재하는 페이지 테이블(4100)로부터 선택된 가상 페이지 번호(VPNi)에 대응하는 물리 페이지 번호(PPNi)를 획득하여 중재부(100)로 제공할 수 있다.If the selected virtual page number VPNi exists in the n reference tables 300-1 to 300-n as a result of the search, the management unit 200 is selected from the reference table in which the selected virtual page number VPNi is stored. The physical page number PPNi stored in connection with the virtual page number VPNi is obtained and provided to the arbitration unit 100, and the selected virtual page number VPNi is n reference tables 300-1. 300-n), the physical page number PPNi corresponding to the selected virtual page number VPNi is obtained from the page table 4100 existing outside the memory management unit control apparatus 1000 and arbitrated. It may be provided to the unit 100.

중재부(100)는 관리부(200)로부터 선택된 가상 페이지 번호(VPNi)에 대응하는 물리 페이지 번호(PPNi)를 수신하고, 제어 신호(CON)가 나타내는 메모리 관리 유닛, 즉, 선택된 가상 페이지 번호(VPNi)를 송신한 메모리 관리 유닛(2100-i)으로 물리 페이지 번호(PPNi)를 제공한다.The arbitration unit 100 receives the physical page number PPNi corresponding to the selected virtual page number VPNi from the management unit 200, and is a memory management unit indicated by the control signal CON, that is, the selected virtual page number VPNi. The physical page number (PPNi) is provided to the memory management unit 2100-i that has transmitted.

메모리 관리 유닛(2100-i)이 중재부(100)로부터 가상 페이지 번호(VPNi)에 대응되는 물리 페이지 번호(PPNi)를 수신하는 경우, 메모리 관리 유닛(2100-i)은 가상 페이지 번호(VPNi) 및 물리 페이지 번호(PPNi) 쌍을 변환 참조 버퍼(2110-i)에 저장함으로써 변환 참조 버퍼(2110-i)를 갱신한다. When the memory management unit 2100-i receives the physical page number PPNi corresponding to the virtual page number VPNi from the arbitration unit 100, the memory management unit 2100-i receives the virtual page number VPNi. And the translation reference buffer 2110-i by updating the physical page number (PPNi) pair in the translation reference buffer 2110-i.

따라서 변환 참조 버퍼(2110-i)에 대응되는 참조 테이블(300-i)을 변환 참조 버퍼(2110-i)와 동일하게 유지하기 위해, 관리부(200)는 가상 페이지 번호(VPNi) 및 물리 페이지 번호(PPNi) 쌍을 제어 신호(CON)에 상응하는 참조 테이블, 즉, 참조 테이블(300-i)에 저장할 수 있다.Therefore, in order to keep the reference table 300-i corresponding to the translation reference buffer 2110-i the same as the translation reference buffer 2110-i, the management unit 200 stores the virtual page number VPNi and the physical page number. The (PPNi) pair may be stored in a reference table corresponding to the control signal CON, that is, the reference table 300-i.

도 4는 도 2의 메모리 관리 유닛 제어 장치(1000)에 포함되는 중재부(100)의 일 예를 나타내는 블록도이다.4 is a block diagram illustrating an example of an arbitration unit 100 included in the memory management unit control apparatus 1000 of FIG. 2.

도 4를 참조하면, 중재부(100)는 제어회로(110), 멀티플렉서(MUX)(120) 및 디멀티플렉서(DEMUX)(130)를 포함한다.Referring to FIG. 4, the arbitration unit 100 includes a control circuit 110, a multiplexer (MUX) 120, and a demultiplexer (DEMUX) 130.

제어회로(110)는 복수의 메모리 관리 유닛들(2100-1 - 2100-n)로부터 복수의 가상 페이지 번호들(VPN1 - VPNn)을 수신한다. 복수의 메모리 관리 유닛들(2100-1 - 2100-n)로부터 복수의 가상 페이지 번호들(VPN1 - VPNn)이 동시에 수신되는 경우 이를 순차적으로 관리부(200)에 제공하기 위해, 제어회로(110)는 복수의 가상 페이지 번호들(VPN1 - VPNn) 중에서 하나의 가상 페이지 번호를 선택하기 위한 제어 신호(CON)를 생성한다. 예를 들면, 가상 페이지 번호(VPNi)를 선택하고자 하는 경우 제어 신호(CON)는 i값을 갖는 신호일 수 있다. 제어회로(110)는 제어 신호(CON)를 멀티플렉서(120), 디멀티플렉서(130) 및 관리부(200)에 제공한다. The control circuit 110 receives a plurality of virtual page numbers VPN1-VPNn from the plurality of memory management units 2100-1-2100-n. When a plurality of virtual page numbers VPN1-VPNn are simultaneously received from the plurality of memory management units 2100-1-2100-n, the control circuit 110 may sequentially provide the plurality of virtual page numbers VPN1-VPNn to the management unit 200. A control signal CON for selecting one virtual page number from among the plurality of virtual page numbers VPN1 to VPNn is generated. For example, when the virtual page number VPNi is to be selected, the control signal CON may be a signal having an i value. The control circuit 110 provides the control signal CON to the multiplexer 120, the demultiplexer 130, and the manager 200.

멀티플렉서(120)는 복수의 메모리 관리 유닛들(2100-1 - 2100-n)로부터 복수의 가상 페이지 번호들(VPN1 - VPNn)을 수신하고 제어회로(110)로부터 제어 신호(CON)를 수신하고, 제어 신호(CON)에 기초하여 복수의 가상 페이지 번호들(VPN1 - VPNn) 중에서 하나의 가상 페이지 번호를 선택하여 제공한다. 예를 들어, 제어 신호(CON)가 i값을 갖는 신호인 경우 멀티플렉서(120)는 가상 페이지 번호(VPNi)를 선택할 수 있다.The multiplexer 120 receives a plurality of virtual page numbers VPN1-VPNn from the plurality of memory management units 2100-1-2100-n, and receives a control signal CON from the control circuit 110. Based on the control signal CON, one virtual page number is selected and provided from among the plurality of virtual page numbers VPN1 to VPNn. For example, when the control signal CON is a signal having an i value, the multiplexer 120 may select a virtual page number VPNi.

디멀티플렉서(130)는 관리부(200)로부터 선택된 가상 페이지 번호(VPNi)에 대응되는 물리 페이지 번호(PPNi)를 수신하고 제어회로(110)로부터 제어 신호(CON)를 수신하고, 제어 신호(CON)에 기초하여 선택된 가상 페이지 번호(VPNi)를 송신한 메모리 관리 유닛(2100-i)으로 물리 페이지 번호(PPNi)를 제공한다.The demultiplexer 130 receives the physical page number PPNi corresponding to the virtual page number VPNi selected from the management unit 200, receives the control signal CON from the control circuit 110, and transmits the control signal CON to the control signal CON. The physical page number PPNi is provided to the memory management unit 2100-i which has transmitted the selected virtual page number VPNi based on this.

도 5는 본 발명의 일 실시예에 따른 메모리 관리 유닛 제어 방법을 나타내는 순서도이다.5 is a flowchart illustrating a method of controlling a memory management unit according to an embodiment of the present invention.

도 5를 참조하면, 중재부(100)는 복수의 메모리 관리 유닛들(2100-1 - 2100-n)로부터 복수의 가상 페이지 번호들(VPN1 - VPNn)을 수신하고(단계 S100), 복수의 가상 페이지 번호들(VPN1 - VPNn) 중에서 선택된 가상 페이지 번호(VPNi) 및 선택된 가상 페이지 번호(VPNi)를 송신한 메모리 관리 유닛(2100-i)을 나타내는 제어 신호(CON)를 관리부(200)에 제공한다. Referring to FIG. 5, the arbitration unit 100 receives a plurality of virtual page numbers VPN1-VPNn from a plurality of memory management units 2100-1-2100-n (step S100), and provides a plurality of virtual. Provides to the management unit 200 a control signal CON indicating the virtual page number VPNi selected from the page numbers VPN1-VPNn and the memory management unit 2100-i transmitting the selected virtual page number VPNi. .

관리부(200)는 선택된 가상 페이지 번호(VPNi)가 n개의 메모리 관리 유닛들(2100-1 - 2100-n)에 구비되는 변환 참조 버퍼들(2110-1 - 2110-n) 각각에 대응되고, 각각이 대응되는 변환 참조 버퍼(2110-1 - 2110-n)에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하고 있는 복수의 참조 테이블들(300-1 - 300-n)에 존재하는지 여부를 검색한다(단계 S200).The management unit 200 corresponds to each of the conversion reference buffers 2110-1-2110-n in which the selected virtual page number VPNi is included in the n memory management units 2100-1-2100-n, respectively. Search whether there exists a plurality of reference tables 300-1-300-n storing virtual page number and physical page number pairs stored in the corresponding translation reference buffers 2110-1-2110-n. (Step S200).

관리부(200)는 상기 검색 결과 선택된 가상 페이지 번호(VPNi)가 n개의 참조 테이블들(300-1 - 300-n)에 존재하는 경우, 선택된 가상 페이지 번호(VPNi)가 저장되어 있는 참조 테이블로부터 선택된 가상 페이지 번호(VPNi)와 연결되어 저장되어 있는 물리 페이지 번호(PPNi)를 획득하고(단계 S300), 상기 검색 결과 선택된 가상 페이지 번호(VPNi)가 n개의 참조 테이블들(300-1 - 300-n)에 존재하지 않는 경우, 메모리 관리 유닛 제어 장치(1000)의 외부에 존재하는 페이지 테이블(4100)로부터 선택된 가상 페이지 번호(VPNi)에 대응하는 물리 페이지 번호(PPNi)를 획득한다(단계 S400). 관리부(200)는 획득된 물리 페이지 번호(PPNi)를 중재부(100)로 제공한다.If the selected virtual page number VPNi exists in the n reference tables 300-1 to 300-n as a result of the search, the management unit 200 is selected from the reference table in which the selected virtual page number VPNi is stored. The physical page number PPNi stored in connection with the virtual page number VPNi is obtained (step S300), and the selected virtual page number VPNi is n reference tables 300-1 to 300-n. ), The physical page number PPNi corresponding to the selected virtual page number VPNi is obtained from the page table 4100 existing outside the memory management unit control apparatus 1000 (step S400). The management unit 200 provides the obtained physical page number PPNi to the arbitration unit 100.

중재부(100)는 관리부(200)로부터 수신된 선택된 가상 페이지 번호(VPNi)에 대응하는 물리 페이지 번호(PPNi)를 제어 신호(CON)가 나타내는 메모리 관리 유닛, 즉, 선택된 가상 페이지 번호(VPNi)를 송신한 메모리 관리 유닛(2100-i)으로 제공한다(단계 S500).The arbitration unit 100 is a memory management unit in which the control signal CON indicates a physical page number PPNi corresponding to the selected virtual page number VPNi received from the management unit 200, that is, the selected virtual page number VPNi. Is sent to the transmitted memory management unit 2100-i (step S500).

변환 참조 버퍼(2110-i)에 대응되는 참조 테이블(300-i)을 변환 참조 버퍼(2110-i)와 동일하게 갱신하기 위해, 관리부(200)는 가상 페이지 번호(VPNi) 및 물리 페이지 번호(PPNi) 쌍을 제어 신호(CON)에 상응하는 참조 테이블, 즉, 참조 테이블(300-i)에 저장할 수 있다(단계 S600).In order to update the reference table 300-i corresponding to the conversion reference buffer 2110-i in the same manner as the conversion reference buffer 2110-i, the management unit 200 may change the virtual page number VPNi and the physical page number ( The pair of PPNi may be stored in a reference table corresponding to the control signal CON, that is, the reference table 300-i (step S600).

도 5에서는 단계 S500이 수행된 이후에 단계 S600이 수행되는 것으로 도시되어 있으나, 실시예에 따라서 단계 S600이 먼저 수행된 이후에 단계 S500이 수행될 수도 있고, 단계 S500과 단계 S600이 동시에 수행될 수도 있다.In FIG. 5, step S600 is shown after step S500 is performed, but step S500 may be performed after step S600 is first performed, or step S500 and step S600 may be simultaneously performed. have.

도 6은 본 발명의 일 실시예에 따른 컴퓨터 시스템을 나타내는 블록도이다.6 is a block diagram illustrating a computer system according to an example embodiment.

도 6을 참조하면, 컴퓨터 시스템(5000)은 멀티 코어 프로세서(3000) 및 메인 메모리(4000)를 포함한다.Referring to FIG. 6, the computer system 5000 includes a multi-core processor 3000 and a main memory 4000.

메인 메모리(4000)는 가상 페이지 번호와 물리 페이지 번호를 연관시켜 저장하고 있는 페이지 테이블(4100)을 포함한다.The main memory 4000 includes a page table 4100 that stores virtual page numbers and physical page numbers in association with each other.

멀티 코어 프로세서(3000)는 메인 메모리(4000)로부터 데이터를 독출하고, 메인 메모리(4000)에 데이터를 기입한다. 멀티 코어 프로세서(3000)는 복수의 코어들(2000-1 - 2000-n) 및 메모리 관리 유닛 제어 장치(1000)를 포함한다.The multi-core processor 3000 reads data from the main memory 4000 and writes data to the main memory 4000. The multi-core processor 3000 includes a plurality of cores 2000-1-2000-n and a memory management unit control apparatus 1000.

멀티 코어 프로세서(3000)는 도 1의 멀티 코어 프로세서(3000)를 사용하여 구현될 수 있으며, 도 1의 멀티 코어 프로세서(3000)의 구성 및 동작에 대해서는 도 1을 참조하여 상세히 설명하였으므로 중복된 설명은 생략한다.The multi-core processor 3000 may be implemented using the multi-core processor 3000 of FIG. 1, and the configuration and operation of the multi-core processor 3000 of FIG. 1 have been described in detail with reference to FIG. 1. Is omitted.

또한, 멀티 코어 프로세서(3000)에 포함되는 메모리 관리 유닛 제어 장치(1000)는 도 2의 메모리 관리 유닛 제어 장치(1000)를 사용하여 구현될 수 있으며, 도 2의 메모리 관리 유닛 제어 장치(1000)의 구성 및 동작에 대해서는 도 1 내지 도 4를 참조하여 상세히 설명하였으므로 중복된 설명은 생략한다.In addition, the memory management unit control apparatus 1000 included in the multi-core processor 3000 may be implemented using the memory management unit control apparatus 1000 of FIG. 2, and the memory management unit control apparatus 1000 of FIG. 2. Since the configuration and operation of the above have been described in detail with reference to FIGS. 1 to 4, duplicate description thereof will be omitted.

본 발명에 따른 메모리 관리 유닛 제어 장치는, 각각의 코어가 메모리 관리 유닛을 구비하는 멀티 코어 시스템에서, 메모리 관리 유닛이 필요로 하는 가상 페이지 번호에 대한 정보가 해당 변환 참조 버퍼에는 존재하지 않으나 다른 코어에 속한 메모리 관리 유닛의 변환 참조 버퍼에는 존재하는 경우, 다른 코어에 속한 메모리 관리 유닛의 변환 참조 버퍼에 존재하는 가상 페이지 번호에 대한 정보를 통해 물리 페이지 번호를 획득할 수 있도록 하여 복수의 메모리 관리 유닛 사이에 변환 참조 버퍼의 공유가 가능하게 함으로써, 접근 속도가 느린 페이지 테이블을 검색할 필요 없이 빠른 속도로 가상 페이지 번호를 물리 페이지 번호로 변환할 수 있어 메모리 접근 속도를 향상시키는데 유용하게 이용될 수 있다.In the memory management unit control apparatus according to the present invention, in a multi-core system in which each core includes a memory management unit, information about a virtual page number required by the memory management unit does not exist in the corresponding translation reference buffer, but other cores. If present in the translation reference buffer of the memory management unit belonging to the plurality of memory management units, the physical page number can be obtained through information about the virtual page number present in the translation reference buffer of the memory management unit belonging to another core. By allowing translation reference buffers to be shared between them, virtual page numbers can be quickly converted to physical page numbers without having to search for slow access page tables, which can be useful for improving memory access speed. .

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.While the above has been described with reference to a preferred embodiment of the present invention, those skilled in the art will be able to variously modify and change the present invention without departing from the spirit and scope of the invention as set forth in the claims below. I will understand.

100: 중재부 200: 관리부
300-1 - 300-n: 참조 테이블 1000: 메모리관리유닛 제어 장치
2000-1 - 2000-n: 코어 2100-1 - 2100-n: 메모리관리유닛
2110-1 - 2110-n: 변환 참조 버퍼 3000: 멀티 코어 프로세서
4000: 메인 메모리 4100: 페이지 테이블
5000: 컴퓨터 시스템
100: arbitration unit 200: management unit
300-1 to 300-n: Reference table 1000: Memory management unit control unit
2000-1-2000-n: Core 2100-1-2100-n: Memory management unit
2110-1-2110-n: Translation reference buffer 3000: Multicore processor
4000: Main Memory 4100: Page Table
5000: computer system

Claims (12)

복수의 메모리 관리 유닛들에 각각 구비되는 변환 참조 버퍼들 각각에 대응되는 복수의 참조 테이블들;
상기 복수의 메모리 관리 유닛들로부터 복수의 가상 페이지 번호들을 수신하여 상기 복수의 가상 페이지 번호들 중에서 선택된 가상 페이지 번호 및 상기 선택된 가상 페이지 번호를 송신한 메모리 관리 유닛을 나타내는 제어 신호를 제공하는 중재부; 및
상기 선택된 가상 페이지 번호 및 상기 제어 신호를 수신하여 상기 제어 신호에 기초하여 상기 복수의 참조 테이블들을 검색하고, 상기 선택된 가상 페이지 번호에 대응하는 물리 페이지 번호를 상기 중재부에 제공하는 관리부를 포함하고,
상기 중재부는 상기 관리부로부터 수신된 상기 물리 페이지 번호를 상기 제어 신호가 나타내는 메모리 관리 유닛으로 제공하는 것을 특징으로 하는 메모리 관리 유닛 제어 장치.
A plurality of reference tables corresponding to each of the translation reference buffers respectively provided in the plurality of memory management units;
An arbitration unit receiving a plurality of virtual page numbers from the plurality of memory management units and providing a control signal indicating a selected virtual page number among the plurality of virtual page numbers and a memory management unit which has transmitted the selected virtual page number; And
A management unit configured to receive the selected virtual page number and the control signal, search the plurality of reference tables based on the control signal, and provide a physical page number corresponding to the selected virtual page number to the arbitration unit,
And the arbitration unit provides the physical page number received from the management unit to a memory management unit indicated by the control signal.
제1 항에 있어서, 상기 복수의 참조 테이블들 각각은, 대응되는 변환 참조 버퍼에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하는 것을 특징으로 하는 메모리 관리 유닛 제어 장치.The apparatus of claim 1, wherein each of the plurality of reference tables stores virtual page number and physical page number pairs stored in a corresponding translation reference buffer. 제2 항에 있어서, 상기 관리부는, 상기 복수의 참조 테이블들 중에서 상기 제어 신호에 상응하는 참조 테이블 이외의 참조 테이블들에 대해서 상기 선택된 가상 페이지 번호가 존재하는지 여부를 검색하는 것을 특징으로 하는 메모리 관리 유닛 제어 장치.The memory management of claim 2, wherein the management unit searches whether the selected virtual page number exists for reference tables other than the reference table corresponding to the control signal among the plurality of reference tables. Unit control unit. 제3 항에 있어서, 상기 관리부는, 상기 검색 결과 상기 선택된 가상 페이지 번호가 존재하는 경우, 상기 복수의 참조 테이블들로부터 상기 선택된 가상 페이지 번호에 대응되는 상기 물리 페이지 번호를 획득하여 제공하고, 상기 검색 결과 상기 선택된 가상 페이지 번호가 존재하지 않는 경우, 페이지 테이블을 사용하여 상기 선택된 가상 페이지 번호에 대응하는 상기 물리 페이지 번호를 획득하여 제공하는 것을 특징으로 하는 메모리 관리 유닛 제어 장치.The search method of claim 3, wherein the management unit obtains and provides the physical page number corresponding to the selected virtual page number from the plurality of reference tables when the selected virtual page number exists as a result of the search. As a result, when the selected virtual page number does not exist, the memory management unit control device according to claim 1, wherein the physical page number corresponding to the selected virtual page number is obtained and provided using a page table. 제4 항에 있어서, 상기 관리부는, 상기 선택된 가상 페이지 번호 및 상기 물리 페이지 번호 쌍을 상기 제어 신호에 상응하는 참조 테이블에 저장하는 것을 특징으로 하는 메모리 관리 유닛 제어 장치.The apparatus of claim 4, wherein the management unit stores the selected virtual page number and the physical page number pair in a reference table corresponding to the control signal. 제1 항에 있어서, 상기 중재부는,
상기 복수의 가상 페이지 번호를 수신하여 상기 제어 신호를 생성하는 제어 회로;
상기 제어 신호에 기초하여 상기 선택된 상기 가상 페이지 번호를 제공하는 멀티플렉서; 및
상기 제어 신호에 기초하여 상기 물리 페이지 번호를 제공하는 디멀티플렉서를 포함하는 것을 특징으로 하는 메모리 관리 유닛 제어 장치.
The method of claim 1, wherein the arbitration unit,
A control circuit for receiving the plurality of virtual page numbers to generate the control signal;
A multiplexer for providing the selected virtual page number based on the control signal; And
And a demultiplexer for providing the physical page number based on the control signal.
복수의 메모리 관리 유닛들로부터 가상 페이지 번호를 수신하는 단계;
복수의 메모리 관리 유닛들에 각각 구비되는 변환 참조 버퍼들 각각에 대응되고, 각각이 대응되는 변환 참조 버퍼에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하는 복수의 참조 테이블들에 상기 가상 페이지 번호가 존재하는지 여부를 검색하는 단계;
상기 가상 페이지 번호가 상기 복수의 참조 테이블들에 존재하는 경우, 상기 복수의 참조 테이블들로부터 상기 가상 페이지 번호에 대응되는 상기 물리 페이지 번호를 획득하고, 상기 가상 페이지 번호가 상기 복수의 참조 테이블들에 존재하지 않는 경우, 페이지 테이블을 사용하여 상기 가상 페이지 번호에 대응하는 물리 페이지 번호를 획득하는 단계; 및
상기 물리 페이지 번호를 상기 가상 페이지 번호를 송신한 메모리 관리 유닛으로 제공하는 단계를 포함하는 메모리 관리 유닛 제어 방법.
Receiving a virtual page number from a plurality of memory management units;
The virtual page number corresponds to each of the translation reference buffers provided in each of the plurality of memory management units, and the virtual page number is stored in a plurality of reference tables that store virtual page number and physical page number pairs, respectively, stored in the corresponding translation reference buffer. Searching for presence;
When the virtual page number exists in the plurality of reference tables, the physical page number corresponding to the virtual page number is obtained from the plurality of reference tables, and the virtual page number is stored in the plurality of reference tables. If not present, using the page table to obtain a physical page number corresponding to the virtual page number; And
And providing the physical page number to a memory management unit that has transmitted the virtual page number.
제7 항에 있어서,
상기 가상 페이지 번호 및 상기 물리 페이지 번호 쌍을 상기 가상 페이지 번호를 송신한 메모리 관리 유닛에 구비되는 변환 참조 버퍼에 대응되는 참조 테이블에 저장하는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 유닛 제어 방법.
The method of claim 7, wherein
And storing the virtual page number and the physical page number pair in a reference table corresponding to a translation reference buffer included in the memory management unit that has transmitted the virtual page number.
가상 페이지 번호가 변환 참조 버퍼에 존재하는지 여부에 따라 선택적으로 상기 가상 페이지 번호를 제공하는 메모리 관리 유닛을 각각 구비하는 복수의 코어들; 및
메모리 관리 유닛 제어 장치를 포함하고,
상기 메모리 관리 유닛 제어 장치는,
상기 복수의 메모리 관리 유닛들에 각각 구비되는 변환 참조 버퍼들 각각에 대응되는 복수의 참조 테이블들;
상기 복수의 메모리 관리 유닛들 각각으로부터 상기 가상 페이지 번호를 수신하여 상기 수신된 가상 페이지 번호들 중에서 선택된 가상 페이지 번호 및 상기 선택된 가상 페이지 번호를 송신한 메모리 관리 유닛을 나타내는 제어 신호를 제공하는 중재부; 및
상기 선택된 가상 페이지 번호 및 상기 제어 신호를 수신하여 상기 제어 신호에 기초하여 상기 복수의 참조 테이블들을 검색하고, 상기 선택된 가상 페이지 번호에 대응하는 물리 페이지 번호를 상기 중재부에 제공하는 관리부를 포함하고,
상기 중재부는 상기 관리부로부터 수신된 상기 물리 페이지 번호를 상기 제어 신호가 나타내는 메모리 관리 유닛으로 제공하는 것을 특징으로 하는 멀티 코어 프로세서.
A plurality of cores each having a memory management unit for selectively providing said virtual page number depending on whether a virtual page number exists in a translation reference buffer; And
A memory management unit control device,
The memory management unit control device,
A plurality of reference tables corresponding to each of the conversion reference buffers respectively provided in the plurality of memory management units;
An arbitration unit which receives the virtual page number from each of the plurality of memory management units and provides a control signal indicating a selected virtual page number among the received virtual page numbers and a memory management unit which has transmitted the selected virtual page number; And
A management unit configured to receive the selected virtual page number and the control signal, search the plurality of reference tables based on the control signal, and provide a physical page number corresponding to the selected virtual page number to the arbitration unit,
And the arbitration unit provides the physical page number received from the management unit to a memory management unit indicated by the control signal.
삭제delete 페이지 테이블을 구비하는 메인 메모리; 및
상기 메인 메모리로부터 데이터를 독출하고, 상기 메인 메모리에 데이터를 기입하는 멀티 코어 프로세서를 포함하고,
상기 멀티 코어 프로세서는,
가상 페이지 번호가 변환 참조 버퍼에 존재하는지 여부에 따라 선택적으로 상기 가상 페이지 번호를 제공하는 메모리 관리 유닛을 각각 구비하는 복수의 코어들; 및
상기 복수의 메모리 관리 유닛들에 구비되는 변환 참조 버퍼들에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하고 있고, 상기 가상 페이지 번호가 상기 쌍들에 존재하는 경우, 상기 쌍들로부터 상기 가상 페이지 번호에 대응되는 상기 물리 페이지 번호를 획득하여 상기 메모리 관리 유닛으로 제공하고, 상기 가상 페이지 번호가 상기 쌍들에 존재하지 않는 경우, 페이지 테이블로부터 상기 가상 페이지 번호에 대응되는 상기 물리 페이지 번호를 획득하여 상기 메모리 관리 유닛으로 제공하는 메모리 관리 유닛 제어 장치를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
A main memory having a page table; And
A multi-core processor for reading data from the main memory and writing data to the main memory,
The multi-core processor,
A plurality of cores each having a memory management unit for selectively providing said virtual page number depending on whether a virtual page number exists in a translation reference buffer; And
Storing virtual page number and physical page number pairs stored in translation reference buffers provided in the plurality of memory management units, and when the virtual page number exists in the pairs, corresponding to the virtual page numbers from the pairs Acquires the physical page number to be provided to the memory management unit, and if the virtual page number does not exist in the pairs, obtains the physical page number corresponding to the virtual page number from a page table, the memory management unit A computer system comprising a memory management unit control device provided by.
제11 항에 있어서, 상기 메모리 관리 유닛 제어 장치는,
상기 복수의 메모리 관리 유닛들에 각각 구비되는 변환 참조 버퍼들 각각에 대응되고, 각각이 대응되는 변환 참조 버퍼에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하는 복수의 참조 테이블들;
상기 복수의 메모리 관리 유닛들로부터 복수의 가상 페이지 번호들을 수신하여 상기 복수의 가상 페이지 번호들 중에서 선택된 가상 페이지 번호 및 상기 선택된 가상 페이지 번호를 송신한 메모리 관리 유닛을 나타내는 제어 신호를 제공하는 중재부; 및
상기 선택된 가상 페이지 번호 및 상기 제어 신호를 수신하여 상기 제어 신호에 기초하여 상기 복수의 참조 테이블들을 검색하고, 상기 선택된 가상 페이지 번호에 대응하는 상기 물리 페이지 번호를 상기 중재부에 제공하는 관리부를 포함하고,
상기 중재부는 상기 관리부로부터 수신된 상기 물리 페이지 번호를 상기 제어 신호가 나타내는 메모리 관리 유닛으로 제공하는 것을 특징으로 하는 컴퓨터 시스템.
The apparatus of claim 11, wherein the memory management unit control device comprises:
A plurality of reference tables corresponding to each of the translation reference buffers provided in the plurality of memory management units, respectively, and storing virtual page number and physical page number pairs stored in corresponding translation reference buffers;
An arbitration unit receiving a plurality of virtual page numbers from the plurality of memory management units and providing a control signal indicating a selected virtual page number among the plurality of virtual page numbers and a memory management unit which has transmitted the selected virtual page number; And
Receiving the selected virtual page number and the control signal to search the plurality of reference tables based on the control signal and providing the physical page number corresponding to the selected virtual page number to the arbitration unit; ,
And the arbitration section provides the physical page number received from the management section to a memory management unit indicated by the control signal.
KR1020100006031A 2010-01-22 2010-01-22 Apparatus for controlling memory management unit, multi-core processor and computer system including the same, and method of controlling memory management unit KR101103818B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100006031A KR101103818B1 (en) 2010-01-22 2010-01-22 Apparatus for controlling memory management unit, multi-core processor and computer system including the same, and method of controlling memory management unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100006031A KR101103818B1 (en) 2010-01-22 2010-01-22 Apparatus for controlling memory management unit, multi-core processor and computer system including the same, and method of controlling memory management unit

Publications (2)

Publication Number Publication Date
KR20110086349A KR20110086349A (en) 2011-07-28
KR101103818B1 true KR101103818B1 (en) 2012-01-06

Family

ID=44922771

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100006031A KR101103818B1 (en) 2010-01-22 2010-01-22 Apparatus for controlling memory management unit, multi-core processor and computer system including the same, and method of controlling memory management unit

Country Status (1)

Country Link
KR (1) KR101103818B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101356543B1 (en) * 2012-06-27 2014-01-28 한국과학기술원 Memory management unit, multi-core processor and computer system including the same, and method of managing data
CN110688331B (en) * 2018-07-05 2021-08-17 珠海全志科技股份有限公司 SoC chip and data reading method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990023701A (en) * 1997-08-21 1999-03-25 가네꼬 히사시 Microprocessor with Memory Management Unit
US20020156989A1 (en) 2001-04-20 2002-10-24 International Business Machines Corporation Method for sharing a translation lookaside buffer between CPUs
KR20060132538A (en) * 2003-07-25 2006-12-21 라자 마이크로일렉트로닉스 인코포레이티드 Advanced processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990023701A (en) * 1997-08-21 1999-03-25 가네꼬 히사시 Microprocessor with Memory Management Unit
US20020156989A1 (en) 2001-04-20 2002-10-24 International Business Machines Corporation Method for sharing a translation lookaside buffer between CPUs
KR20060132538A (en) * 2003-07-25 2006-12-21 라자 마이크로일렉트로닉스 인코포레이티드 Advanced processor

Also Published As

Publication number Publication date
KR20110086349A (en) 2011-07-28

Similar Documents

Publication Publication Date Title
US20050027961A1 (en) System and method for resolving virtual addresses using a page size tag
JP6724043B2 (en) Method and apparatus for cache tag compression
US8239657B2 (en) Address translation method and apparatus
US11698868B2 (en) Logging pages accessed from I/O devices
US8166249B2 (en) Performing a least recently used (LRU) algorithm for a co-processor
JP5843801B2 (en) Information processing apparatus and debugging method
US8984372B2 (en) Techniques for storing ECC checkbits in a level two cache
CN103309644A (en) Translation address cache for a microprocessor
CN107818053B (en) Method and apparatus for accessing a cache
US20180004678A1 (en) Apparatus and method for performing address translation
JP2020523678A (en) Cache structure using logical directory
US8032706B2 (en) Method and apparatus for detecting a data access violation
WO2015131853A1 (en) Mapping processing method and device for cache address
KR101103818B1 (en) Apparatus for controlling memory management unit, multi-core processor and computer system including the same, and method of controlling memory management unit
US6810473B2 (en) Replacement algorithm for a replicated fully associative translation look-aside buffer
US11748107B2 (en) Complex I/O value prediction for multiple values with physical or virtual addresses
US9753859B2 (en) Input output value prediction with physical or virtual addressing for virtual environment
KR20130081425A (en) Multi-core processor, multi-core system and electronic device including the same, and method of sharing cache in multi-core processor
KR101356543B1 (en) Memory management unit, multi-core processor and computer system including the same, and method of managing data
US20100257334A1 (en) Semiconductor integrated circuit, information processing device, and control method for semiconductor integrated circuit
WO2015067195A1 (en) Reconfigurable cache organization structure
US20180341422A1 (en) Operation interlocking in an address-sliced cache system
WO2019040268A1 (en) Reduced logic level operation folding of context history in a history register in a prediction system for a processor-based system
KR100899097B1 (en) Method of providing a plurality of indexing information and cache memory device using the same
JP2012022567A (en) Cache memory

Legal Events

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

Payment date: 20151229

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181218

Year of fee payment: 8