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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details 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
본 발명은 메모리 관리 유닛 제어 장치(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
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
메모리 관리 유닛 제어 장치(1000)는 n개의 메모리 관리 유닛들(2100-1 - 2100-n) 각각에 구비되는 변환 참조 버퍼들(2110-1 - 2110-n)에 저장된 모든 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하고 있다. The memory management
메모리 관리 유닛 제어 장치(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
메모리 관리 유닛(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
이 때, 메모리 관리 유닛 제어 장치(1000)는 가상 페이지 번호(VPNi) 및 물리 페이지 번호(PPNi) 쌍을 상기 저장하고 있는 가상 페이지 번호 및 물리 페이지 번호 쌍들에 추가하여 저장함으로써, 상기 저장하고 있는 가상 페이지 번호 및 물리 페이지 번호 쌍들을 변환 참조 버퍼들(2110-1 - 2110-n)에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들과 동일하게 유지할 수 있다.At this time, the memory management
도 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
도 2를 참조하면, 메모리 관리 유닛 제어 장치(1000)는 중재부(100), 관리부(200) 및 n개의 참조 테이블들(300-1 - 300-n)을 포함한다.Referring to FIG. 2, the memory management
중재부(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
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
도 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
도 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
관리부(200)는 선택된 가상 페이지 번호(VPNi) 및 제어 신호(CON)를 수신하여 선택된 가상 페이지 번호(VPNi)가 n개의 참조 테이블들(300-1 - 300-n)에 저장되어 있는지 여부를 검색하여 선택된 가상 페이지 번호(VPNi)에 대응하는 물리 페이지 번호(PPNi)를 중재부(100)에 제공한다. The
메모리 관리 유닛(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
관리부(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
중재부(100)는 관리부(200)로부터 선택된 가상 페이지 번호(VPNi)에 대응하는 물리 페이지 번호(PPNi)를 수신하고, 제어 신호(CON)가 나타내는 메모리 관리 유닛, 즉, 선택된 가상 페이지 번호(VPNi)를 송신한 메모리 관리 유닛(2100-i)으로 물리 페이지 번호(PPNi)를 제공한다.The
메모리 관리 유닛(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
따라서 변환 참조 버퍼(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
도 4는 도 2의 메모리 관리 유닛 제어 장치(1000)에 포함되는 중재부(100)의 일 예를 나타내는 블록도이다.4 is a block diagram illustrating an example of an
도 4를 참조하면, 중재부(100)는 제어회로(110), 멀티플렉서(MUX)(120) 및 디멀티플렉서(DEMUX)(130)를 포함한다.Referring to FIG. 4, the
제어회로(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
멀티플렉서(120)는 복수의 메모리 관리 유닛들(2100-1 - 2100-n)로부터 복수의 가상 페이지 번호들(VPN1 - VPNn)을 수신하고 제어회로(110)로부터 제어 신호(CON)를 수신하고, 제어 신호(CON)에 기초하여 복수의 가상 페이지 번호들(VPN1 - VPNn) 중에서 하나의 가상 페이지 번호를 선택하여 제공한다. 예를 들어, 제어 신호(CON)가 i값을 갖는 신호인 경우 멀티플렉서(120)는 가상 페이지 번호(VPNi)를 선택할 수 있다.The
디멀티플렉서(130)는 관리부(200)로부터 선택된 가상 페이지 번호(VPNi)에 대응되는 물리 페이지 번호(PPNi)를 수신하고 제어회로(110)로부터 제어 신호(CON)를 수신하고, 제어 신호(CON)에 기초하여 선택된 가상 페이지 번호(VPNi)를 송신한 메모리 관리 유닛(2100-i)으로 물리 페이지 번호(PPNi)를 제공한다.The
도 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
관리부(200)는 선택된 가상 페이지 번호(VPNi)가 n개의 메모리 관리 유닛들(2100-1 - 2100-n)에 구비되는 변환 참조 버퍼들(2110-1 - 2110-n) 각각에 대응되고, 각각이 대응되는 변환 참조 버퍼(2110-1 - 2110-n)에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하고 있는 복수의 참조 테이블들(300-1 - 300-n)에 존재하는지 여부를 검색한다(단계 S200).The
관리부(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
중재부(100)는 관리부(200)로부터 수신된 선택된 가상 페이지 번호(VPNi)에 대응하는 물리 페이지 번호(PPNi)를 제어 신호(CON)가 나타내는 메모리 관리 유닛, 즉, 선택된 가상 페이지 번호(VPNi)를 송신한 메모리 관리 유닛(2100-i)으로 제공한다(단계 S500).The
변환 참조 버퍼(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
도 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
메인 메모리(4000)는 가상 페이지 번호와 물리 페이지 번호를 연관시켜 저장하고 있는 페이지 테이블(4100)을 포함한다.The
멀티 코어 프로세서(3000)는 메인 메모리(4000)로부터 데이터를 독출하고, 메인 메모리(4000)에 데이터를 기입한다. 멀티 코어 프로세서(3000)는 복수의 코어들(2000-1 - 2000-n) 및 메모리 관리 유닛 제어 장치(1000)를 포함한다.The
멀티 코어 프로세서(3000)는 도 1의 멀티 코어 프로세서(3000)를 사용하여 구현될 수 있으며, 도 1의 멀티 코어 프로세서(3000)의 구성 및 동작에 대해서는 도 1을 참조하여 상세히 설명하였으므로 중복된 설명은 생략한다.The
또한, 멀티 코어 프로세서(3000)에 포함되는 메모리 관리 유닛 제어 장치(1000)는 도 2의 메모리 관리 유닛 제어 장치(1000)를 사용하여 구현될 수 있으며, 도 2의 메모리 관리 유닛 제어 장치(1000)의 구성 및 동작에 대해서는 도 1 내지 도 4를 참조하여 상세히 설명하였으므로 중복된 설명은 생략한다.In addition, the memory management
본 발명에 따른 메모리 관리 유닛 제어 장치는, 각각의 코어가 메모리 관리 유닛을 구비하는 멀티 코어 시스템에서, 메모리 관리 유닛이 필요로 하는 가상 페이지 번호에 대한 정보가 해당 변환 참조 버퍼에는 존재하지 않으나 다른 코어에 속한 메모리 관리 유닛의 변환 참조 버퍼에는 존재하는 경우, 다른 코어에 속한 메모리 관리 유닛의 변환 참조 버퍼에 존재하는 가상 페이지 번호에 대한 정보를 통해 물리 페이지 번호를 획득할 수 있도록 하여 복수의 메모리 관리 유닛 사이에 변환 참조 버퍼의 공유가 가능하게 함으로써, 접근 속도가 느린 페이지 테이블을 검색할 필요 없이 빠른 속도로 가상 페이지 번호를 물리 페이지 번호로 변환할 수 있어 메모리 접근 속도를 향상시키는데 유용하게 이용될 수 있다.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.
상기 복수의 가상 페이지 번호를 수신하여 상기 제어 신호를 생성하는 제어 회로;
상기 제어 신호에 기초하여 상기 선택된 상기 가상 페이지 번호를 제공하는 멀티플렉서; 및
상기 제어 신호에 기초하여 상기 물리 페이지 번호를 제공하는 디멀티플렉서를 포함하는 것을 특징으로 하는 메모리 관리 유닛 제어 장치.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.
상기 가상 페이지 번호 및 상기 물리 페이지 번호 쌍을 상기 가상 페이지 번호를 송신한 메모리 관리 유닛에 구비되는 변환 참조 버퍼에 대응되는 참조 테이블에 저장하는 단계를 더 포함하는 것을 특징으로 하는 메모리 관리 유닛 제어 방법. 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.
상기 메인 메모리로부터 데이터를 독출하고, 상기 메인 메모리에 데이터를 기입하는 멀티 코어 프로세서를 포함하고,
상기 멀티 코어 프로세서는,
가상 페이지 번호가 변환 참조 버퍼에 존재하는지 여부에 따라 선택적으로 상기 가상 페이지 번호를 제공하는 메모리 관리 유닛을 각각 구비하는 복수의 코어들; 및
상기 복수의 메모리 관리 유닛들에 구비되는 변환 참조 버퍼들에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하고 있고, 상기 가상 페이지 번호가 상기 쌍들에 존재하는 경우, 상기 쌍들로부터 상기 가상 페이지 번호에 대응되는 상기 물리 페이지 번호를 획득하여 상기 메모리 관리 유닛으로 제공하고, 상기 가상 페이지 번호가 상기 쌍들에 존재하지 않는 경우, 페이지 테이블로부터 상기 가상 페이지 번호에 대응되는 상기 물리 페이지 번호를 획득하여 상기 메모리 관리 유닛으로 제공하는 메모리 관리 유닛 제어 장치를 포함하는 것을 특징으로 하는 컴퓨터 시스템.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.
상기 복수의 메모리 관리 유닛들에 각각 구비되는 변환 참조 버퍼들 각각에 대응되고, 각각이 대응되는 변환 참조 버퍼에 저장된 가상 페이지 번호 및 물리 페이지 번호 쌍들을 저장하는 복수의 참조 테이블들;
상기 복수의 메모리 관리 유닛들로부터 복수의 가상 페이지 번호들을 수신하여 상기 복수의 가상 페이지 번호들 중에서 선택된 가상 페이지 번호 및 상기 선택된 가상 페이지 번호를 송신한 메모리 관리 유닛을 나타내는 제어 신호를 제공하는 중재부; 및
상기 선택된 가상 페이지 번호 및 상기 제어 신호를 수신하여 상기 제어 신호에 기초하여 상기 복수의 참조 테이블들을 검색하고, 상기 선택된 가상 페이지 번호에 대응하는 상기 물리 페이지 번호를 상기 중재부에 제공하는 관리부를 포함하고,
상기 중재부는 상기 관리부로부터 수신된 상기 물리 페이지 번호를 상기 제어 신호가 나타내는 메모리 관리 유닛으로 제공하는 것을 특징으로 하는 컴퓨터 시스템.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.
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)
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)
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 |
-
2010
- 2010-01-22 KR KR1020100006031A patent/KR101103818B1/en active IP Right Grant
Patent Citations (3)
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 |