KR101376884B1 - Apparatus for controlling program command prefetch and method thereof - Google Patents

Apparatus for controlling program command prefetch and method thereof Download PDF

Info

Publication number
KR101376884B1
KR101376884B1 KR1020070012493A KR20070012493A KR101376884B1 KR 101376884 B1 KR101376884 B1 KR 101376884B1 KR 1020070012493 A KR1020070012493 A KR 1020070012493A KR 20070012493 A KR20070012493 A KR 20070012493A KR 101376884 B1 KR101376884 B1 KR 101376884B1
Authority
KR
South Korea
Prior art keywords
data
memory
instruction
program
command
Prior art date
Application number
KR1020070012493A
Other languages
Korean (ko)
Other versions
KR20080073822A (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 KR1020070012493A priority Critical patent/KR101376884B1/en
Publication of KR20080073822A publication Critical patent/KR20080073822A/en
Application granted granted Critical
Publication of KR101376884B1 publication Critical patent/KR101376884B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

프로그램을 캐시 메모리로 프리페치하여 실행하는 장치 및 그 방법이 개시되어 있다. 본 발명에 따른 프로그램 명령어 프리페치 제어 장치는 프로그램 컴파일시 프로그램 설정정보가 생성되어 기록되는 MAP 파일 저장부; 및 프로세서에서 요청한 상기 프로그램 실행에 필요한 명령어 및 데이터가 캐시 메모리에 없는 경우 상기 MAP 파일 저장부에 기록된 순서에 따라 다음에 필요한 명령어 및 데이터를 상기 메모리로부터 미리 인출하는 프리페치부를 포함하여 구성된다. 프리페치부는 상기 프로그램 컴파일시 생성된 맵파일로부터 소스 파일과 바이너리 코드 인덱스 정보를 확인하여 다음에 수행될 명령어를 미리 인출한다. 본 발명은 프로그램 컴파일시 생성된 MAP 파일 정보를 이용하여 다음에 실행될 명령어 및 데이터 주소를 획득하여 이 부분을 프리페치하여 메모리로 접근하는 시간을 감소시키므로써 프로그램 실행에 걸리는 시간을 현저하게 감소시키는 효과가 있다.An apparatus and method for prefetching and executing a program into a cache memory are disclosed. The program command prefetch control apparatus according to the present invention includes a MAP file storage unit for generating and recording program setting information when a program is compiled; And a prefetch unit for prefetching the next necessary instructions and data from the memory according to the order recorded in the MAP file storage unit when the instructions and data required for the program execution requested by the processor are not in the cache memory. The prefetch unit checks the source file and the binary code index information from the map file generated when the program is compiled, and prefetches the next command to be executed. The present invention uses the MAP file information generated when compiling a program to obtain the next instruction and data address to be executed and prefetches this portion to reduce the time to access the memory, thereby significantly reducing the time required to execute the program. There is.

프리페치, 메모리, SDRAM, DRAM, 캐시 메모리, 프로세서 Prefetch, Memory, SDRAM, DRAM, Cache Memory, Processor

Description

프로그램 명령어 프리페치 제어 장치 및 그 방법 {Apparatus for controlling program command prefetch and method thereof}Apparatus for controlling program command prefetch and method

도 1은 일반적인 프로세서의 명령어 프리페치 형태에 관한 개략적인 도면,1 is a schematic diagram of an instruction prefetch form of a general processor;

도 2는 본 발명의 제 1 실시예에 따라 프로그램 명령어를 캐시 메모리로 프리페치하는 장치에 관한 개략적인 도면,2 is a schematic diagram of an apparatus for prefetching program instructions into a cache memory according to a first embodiment of the present invention;

도 3은 본 발명의 제 2 실시예에 따라 프로그램 명령어를 캐시 메모리로 프리페치하는 장치에 관한 개략적인 도면,3 is a schematic diagram of an apparatus for prefetching program instructions into a cache memory according to a second embodiment of the present invention;

도 4는 도 2 및 도 3에 도시된 프리페치부에 관한 상세 블록도,4 is a detailed block diagram of a prefetch unit illustrated in FIGS. 2 and 3;

도 5는 본 발명에 따라 프로그램 명령어를 캐시 메모리로 프리페치하는 방법에 관한 흐름도.5 is a flow diagram of a method of prefetching program instructions into a cache memory in accordance with the present invention.

*도면의 주요부분에 대한 부호의 간단한 설명** Brief description of symbols for the main parts of the drawings *

100, 400 : 프로세서 200, 500 : 캐시 메모리100, 400: processor 200, 500: cache memory

210, 510 : 캐시 제어부 300, 600 : 메모리210, 510: cache control unit 300, 600: memory

310, 610 : 메모리 제어부 320, 520 : 프리페치부310 and 610: Memory control unit 320 and 520: Prefetch unit

330, 530 : MAP 파일 저장부330, 530: MAP file storage unit

본 발명은 메모리로부터 명령어를 프리페치하는 기술에 관한 것으로서, 보다 상세하게는 메모리로부터 명령어를 프리페치(prefetch)하여 캐시 메모리로 제공하므로써 프로그램 실행을 신속하게 처리하기 위한 프로그램 명령어 프리페치 제어 장치 및 그 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a technique for prefetching instructions from a memory, and more particularly, to a program instruction prefetch control apparatus for quickly processing a program by prefetching instructions from a memory and providing the same to a cache memory. It is about a method.

캐시를 포함하는 프로세서를 가지는 시스템 온 칩(System On Chip) 플랫폼 구조에서, 프로세서는 프로그램 실행을 위해 이와 관련된 명령어와 데이터를 인출하여야 하는데 일반적으로 동기식 디램과 같은 휘발성 메모리 또는 플래시 메모리로부터 해당 명령어를 시퀀스에 따라 인출하게 된다.In a System On Chip platform architecture with a processor that includes a cache, the processor must fetch the associated instructions and data for program execution, and typically sequence the instructions from volatile or flash memory, such as synchronous DRAM. Will be withdrawn accordingly.

프로세서의 주목적은 프로그램을 실행하여 사용자가 원하는 동작을 수행하도록 하는 것이다. 이때 프로세서가 실행할 프로그램은 용량이 크고 가격이 저렴한 디램에 저장된다. 프로세서는 명령어를 가져오기 위해 주소와 제어신호를 내보내고 캐시 제어부는 프로세서가 내보낸 주소에 위치한 명령어가 캐시 메모리에 존재하는지를 확인한다. 캐시는 기억 계층 내부에서 액세스 대기 시간을 줄이기 위해 이용된다.The main purpose of the processor is to execute a program to perform a desired operation by the user. At this time, the program to be executed by the processor is stored in a DRAM having a large capacity and low cost. The processor sends out an address and a control signal to retrieve the instruction, and the cache controller checks whether the instruction located at the address sent by the processor exists in the cache memory. The cache is used to reduce access latency inside the storage hierarchy.

프로세서가 실행할 프로그램은 디램과 같은 메모리에 저장되며, 실행 시퀀스에 따라 프로세서로 인출되어 프로그램이 실행되는 구조이다.The program to be executed by the processor is stored in a memory, such as a DRAM, and is drawn out to the processor according to an execution sequence to execute the program.

도 1은 일반적인 프로세서의 명령어 프리페치 형태에 관한 개략적인 도면이 다. 도 1을 참조하면, 프로세서(10)는 명령어를 가져오기 위해 어드레스와 제어신호를 내보낸다. 먼저 프로세서(10)는 내보낸 어드레스에 위치한 명령어가 캐시 메모리(20)에 존재하는지를 확인한다. 해당 어드레스의 명령어가 캐시 메모리(20)에 존재하면 캐시 제어부(21)는 해당 명령어를 프로세서(10)로 전달한다. 해당 명령어가 캐시 메모리(20)에 없을 경우, 메모리 제어부(31)를 통해 실행할 명령어와 그 명령어에 인접한 주소의 명령어 중 소정의 명령어를 메모리(30)로부터 인출하여 캐시 메모리(20)에 저장하고, 프로세서의 다음 명령어 요청을 준비한다.1 is a schematic diagram of an instruction prefetch form of a general processor. Referring to FIG. 1, the processor 10 sends out an address and a control signal to obtain an instruction. First, the processor 10 checks whether an instruction located at the exported address exists in the cache memory 20. If an instruction of the corresponding address exists in the cache memory 20, the cache controller 21 transmits the instruction to the processor 10. If the corresponding instruction is not in the cache memory 20, a predetermined instruction among the instruction to be executed through the memory controller 31 and the instruction at an address adjacent to the instruction is withdrawn from the memory 30 and stored in the cache memory 20, Prepare the processor for the next instruction request.

상기와 같은 종래 방법에 따라 프로그램을 실행하면, 캐시 메모리에 프로그램 실행에 필요한 명령어가 있는 경우는 상관없지만, 최근에 사용한 일이 없어 캐시 메모리에 해당 프로그램 실행 명령어가 없다면 메모리로부터 캐시 메모리로 인출하기위한 소정의 시간이 소모된다.If a program is executed according to the conventional method as described above, it does not matter if there is an instruction necessary to execute the program in the cache memory, but if there is no corresponding program execution instruction in the cache memory because it has not been used recently, Some time is consumed.

특히 디램은 처음 한 개의 명령어를 인출시에 시간이 가장 많이 걸리며, 연속적으로 여러 개의 명령어를 인출시에는 처음 한 개 이후의 명령어를 가져올 때에 시간이 적게 걸린다. 그러나 캐시는 항상 일정하게 적은 시간이 걸리므로 캐시를 사용하면 명령어를 인출하는 시간을 줄일 수 있다. 따라서 캐시가 포함된 시스템에는 프로세서가 속도가 느린 메모리로부터 명령어를 인출하여 캐시에 저장하므로써 시간을 단축시키는 효과를 가져온다.In particular, DRAM takes the most time when it fetches the first one command, and it takes less time when it gets the first one or more commands when fetching several commands continuously. However, the cache always takes a constant amount of time, so using a cache can reduce the time to fetch instructions. Therefore, in a system including a cache, the processor fetches instructions from the slow memory and stores the instructions in the cache, thereby saving time.

그러나, 캐시 메모리가 명령어 실행을 빠르게 수행하는 점에서는 우수하지만 비용이 고가이므로 저렴한 디램을 이용하고 있는 것이 실정이다.However, although the cache memory is excellent in performing instruction execution quickly, the cost is expensive, and therefore, the inexpensive DRAM is used.

따라서 저렴하지만 속도가 느린 디램과 고가이지만 속도가 빠른 캐시 메모 리(에스램)의 구조를 효율적으로 설계하는 것이 중요한 이슈이다.Therefore, it is an important issue to efficiently design cheap but slow DRAM and expensive but fast cache memory (SRAM).

일반적으로 실행할 명령어의 인접한 주소에 있는 명령어가 캐시에 저장되는데, 프로그램의 흐름이 순차적이지 못하고 다양하게 분기되는 특성이 있을 경우, 즉 실행할 명령어의 인접한 주소에 있는 명령어가 실행되지 않는 경우에는 캐시 메모리에 없는 새로운 명령어를 계속해서 캐시로 인출해야 한다.In general, instructions at the adjacent address of an instruction to be executed are stored in the cache. If the flow of a program is not sequential and has divergent characteristics, that is, instructions at the adjacent address of the instruction to execute are not executed, they are stored in cache memory. You must continue to fetch new commands that are missing.

이러한 경우는 고가이면서도 고속의 캐시를 비효율적으로 사용하게 되는 양상을 초래하게 된다.This leads to the inefficient use of expensive and fast caches.

따라서, 다양한 프로그램을 비슷한 속도로 실행할 수 있도록 캐시를 재구성할 필요가 있다.Thus, there is a need to reconfigure the cache so that various programs can run at similar speeds.

상기와 같은 문제점을 해결하기 위한 본 발명은 캐시 메모리와 메인 메모리간에 프리페치 알고리즘을 적용하여 인접하지 않은 주소에 있다할 지라도 다음에 실행될 예정에 있는 명령어를 캐시 메모리로 프리페치하여 신속하게 실행하는 프로그램 명령어 프리페치 제어 장치 및 그 방법을 제공하는데 목적이 있다.In order to solve the above problems, the present invention applies a prefetch algorithm between a cache memory and a main memory to execute a program which is quickly executed by prefetching an instruction which is scheduled to be executed next to a cache memory even if the address is not adjacent. An object of the present invention is to provide an instruction prefetch control apparatus and a method thereof.

이러한 목적을 달성하기 위한 본 발명에 따른 프로그램 명령어 프리페치 제어 장치는 프로그램 명령어 및 데이터 들을 저장하는 메모리; 상기 메모리의 읽기 쓰기 기능을 제어하는 메모리 제어부; 상기 메모리에 저장된 프로그램 명령어 및 데이터 중 최근 사용된 명령어와 데이터를 저장하는 캐시 메모리; 상기 캐시 메모리의 읽기 쓰기 기능을 제어하는 캐시 제어부; 상기 캐시 메모리에 저장된 명령어 및 데이터를 인출하여 시스템을 전반적으로 제어하는 프로세서; 상기 프로그램 컴파일시 프로그램 설정정보가 생성되어 기록되는 MAP 파일 저장부; 및 상기 프로세서에서 요청한 상기 프로그램 실행에 필요한 명령어 및 데이터가 캐시 메모리에 없는 경우 상기 MAP 파일 저장부에 기록된 순서에 따라 다음에 필요한 명령어 및 데이터를 상기 메모리로부터 미리 인출하는 프리페치부를 포함한다.Program instruction prefetch control apparatus according to the present invention for achieving this object comprises a memory for storing program instructions and data; A memory controller which controls a read / write function of the memory; A cache memory for storing recently used instructions and data among the program instructions and data stored in the memory; A cache controller which controls a read / write function of the cache memory; A processor configured to overall control the system by retrieving instructions and data stored in the cache memory; A MAP file storage unit for generating and recording program setting information when the program is compiled; And a prefetch unit for pre-fetching the next necessary instructions and data from the memory according to the order recorded in the MAP file storage unit when the instructions and data required for the program execution requested by the processor are not in the cache memory.

상기 프리페치부는 상기 프로그램 컴파일시 생성된 맵파일로부터 소스 파일과 바이너리 코드 인덱스 정보를 확인하여 다음에 수행될 명령어를 미리 인출함을 특징으로 한다. 상기 프리페치부에 의해 미리 인출된 명령어는 프리페치 메모리에 저장되고 상기 메모리는 디램(DRAM:Dynamic Random Access Memory) 또는 플래시 메모리인 것을 특징으로 한다.The prefetch unit may identify a source file and binary code index information from a map file generated when the program is compiled, and prefetch the next command to be executed. The instruction pre-fetched by the prefetch unit is stored in a prefetch memory, and the memory is a dynamic random access memory (DRAM) or a flash memory.

상기 프리페치부는 상기 메모리 제어부에 설치되면, 메모리 제어부에서 현재 인출한 명령어 및 데이터에 인접한 주소의 명령어 및 데이터를 상기 메모리로부터 인출하는 동안, 상기 현재 인출한 명령어 및 데이터에 인접하지 않은 주소에 상관없이 MAP 파일 정보에 따라 실행 순서대로 명령어 및 데이터를 인출하는 것을 특징으로 한다.When the prefetch unit is installed in the memory control unit, the command and data of an address adjacent to a command and data currently fetched by the memory control unit are fetched from the memory, regardless of an address not adjacent to the currently fetched command and data. The command and data may be fetched in the execution order according to the MAP file information.

상기 프리페치부는 상기 캐시 제어부에 설치되면, MAP 파일 정보에 따른 실행 순서에 따라 명령어 및 데이터를 상기 메모리 제어부로 요청하는 것을 특징으로 한다.When the prefetch unit is installed in the cache controller, the memory controller may request a command and data from the memory controller according to an execution order according to MAP file information.

이러한 목적을 달성하기 위한 본 발명에 따른 프로그램 명령어 프리페치 제어 방법은 프로세서로부터 프로그램 실행에 필요한 명령어 및 데이터가 요청되면, 캐시 메모리에 상기 명령어가 존재하는지를 판단하는 단계; 상기 요청된 명령어 및 데이터가 캐시 메모리에 존재하는 경우, 상기 명령어 및 데이터를 프로세서로 제공하는 단계; 상기 프로세서로부터 요청된 명령어 및 데이터가 캐시 메모리에 존재하는 않는 경우, 메모리로부터 현재 실행할 명령어와 상기 실행할 명령어에 인접한 주소의 명령어를 인출하여 캐시 메모리에 저장하는 단계; 프리페치부에서 맵파일(MAP file)로부터 다음에 수행될 명령어 정보를 제공받아, 상기 수행될 명령어를 미리 인출(프리페치)하여 프리페치부에 저장하는 단계; 및 프로세서로부터 상기 프로그램 실행에 필요한 후속 명령어 및 데이터가 요청되면, 프리페치부에 저장된 명령어 및 데이터를 즉시 캐시 메모리로 제공하는 단계를 포함한다.Program instruction prefetch control method according to the present invention for achieving the object comprises the steps of determining whether the instruction is present in the cache memory when instructions and data required for program execution from the processor; If the requested instructions and data are present in a cache memory, providing the instructions and data to a processor; If the instruction and data requested from the processor do not exist in the cache memory, retrieving the instruction to be executed from the memory and the instruction at an address adjacent to the instruction to be stored in the cache memory; Receiving a command information to be executed next from a map file in a prefetch unit, and fetching (prefetching) the command to be executed in advance and storing the command in a prefetch unit; And when subsequent instructions and data required for executing the program are requested from the processor, immediately providing the instructions and data stored in the prefetch unit to the cache memory.

상기 메모리로부터 현재 실행할 명령어와 상기 실행할 명령어에 인접한 주소의 명령어를 인출하여 캐시 메모리에 저장하는 단계와, 프리페치부에서 맵파일(MAP file)로부터 다음에 수행될 명령어 정보를 제공받아, 상기 수행될 명령어를 미리 인출(프리페치)하여 프리페치부에 저장하는 단계는 각각 독립적으로 수행됨을 특징을 한다.Retrieving the current command to be executed from the memory and an instruction of an address adjacent to the command to be executed and storing the same in a cache memory, and receiving a command information to be executed next from a map file in a prefetch unit, The steps of fetching (prefetching) an instruction in advance and storing the command in the prefetch unit may be independently performed.

상기 프리페치부가 캐시 제어부 내에 포함되면, 프로그램 실행에 필요한 명령어 및 데이터가 캐시 메모리에 없는 것으로 판단될 시, 프리페치부는 MAP 파일 정보에 따라 현재 필요한 명령어와 그 명령어 바로 다음에 실행될 명령어 및 데이터를 메모리 제어부를 통해 메모리로부터 인출하여 저장함을 특징으로 한다.When the prefetch unit is included in the cache controller, when it is determined that instructions and data necessary for program execution are not present in the cache memory, the prefetch unit stores the currently required instructions and instructions and data to be executed immediately after the instructions according to the MAP file information. Characterized in that the storage is withdrawn from the memory through the control unit.

이하, 본 발명이 속하는 분야에 통상의 지식을 지닌자가 본 발명을 용이하게 실시할 수 있도록 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention.

컴퓨터 이용 소프트웨어 개발 시스템은 메모리로부터 에디트(edit), 컴파일(compile), 링크(link)와 모든 시퀀스(sequence)들의 수행을 고속으로 실행하기 위한 프로그램을 필요로 한다. 컴퓨터의 실행방법에 있어서 소스 코드를 개발하는 에디트-컴파일-링크 사이클은 컴퓨터에 의해 접근되는 소스 텍스트의 많은 모듈을 생성하고, 각 모듈에 코드테이블을 생성시키기 위해 컴퓨터로부터 모듈을 컴파일링하고, 링크테이블과 링크 리스트를 제공하고 그것에 의해 실행할 수 있는 목적-코드 이미지를 생성하기 위해 컴퓨터로부터 코드 테이블을 링킹하는 것으로 이루어진다.Computer-aided software development systems require a program to quickly edit, compile, link and perform all sequences from memory. The edit-compile-link cycle of developing source code in a computer's implementation generates many modules of source text accessed by the computer, compiles the modules from the computer to generate code tables for each module, and links. Linking the code table from a computer to provide a table and a list of links and to produce an object-code image that can be executed by it.

이하 도면을 참조하여 실시예들을 설명하기로 한다.Hereinafter, exemplary embodiments will be described with reference to the accompanying drawings.

제 1 실시예First Embodiment

도 2는 본 발명의 제 1 실시예에 따라 프로그램 명령어를 캐시 메모리로 프리페치하는 장치에 관한 개략적인 도면이다.2 is a schematic diagram of an apparatus for prefetching program instructions into a cache memory according to a first embodiment of the present invention.

도 2를 참조하면, 본 발명의 제 1 실시예에 따른 메모리 관리 장치는 프로세서(100)와, 캐시 메모리(200)와, 메모리(300)로 구성되며, 프로세서(100)와 캐시 메모리(200)는 캐시 제어부(210)를 통해 명령 및 데이터를 주고받는다. 메모리(300)는 캐시 제어부(210)의 제어신호를 버스(bus)를 통해 수신하여 프로세서(100)로 해당 제어에 해당하는 데이터를 제공한다. 메모리(300)는 메모리 제어 부(310)의 읽기 쓰기 제어신호에 의해 동작하고, 캐시 메모리(200)는 캐시 제어부(210)의 읽기 쓰기 제어신호에 의해 동작한다.Referring to FIG. 2, the memory management apparatus according to the first embodiment of the present invention includes a processor 100, a cache memory 200, and a memory 300, and the processor 100 and the cache memory 200. Exchanges commands and data through the cache controller 210. The memory 300 receives a control signal of the cache controller 210 through a bus and provides data corresponding to the control to the processor 100. The memory 300 operates by the read / write control signal of the memory controller 310, and the cache memory 200 operates by the read / write control signal of the cache controller 210.

프로세서(100)는 캐시 제어부(210)를 통해서만 제어신호가 송수신되는 것으로 도시하였지만, 시스템에 따라 버스를 통하여 제어신호를 송수신할 수 있다.Although the processor 100 illustrates that the control signal is transmitted and received only through the cache controller 210, the processor 100 may transmit and receive the control signal through the bus.

메모리(300)는 프로그램 명령어 및 데이터 들을 저장하고, 메모리 제어부(310)는 메모리(300)의 읽기 쓰기 기능을 제어한다. 캐시 메모리(200)는 메모리(300)에 저장된 프로그램 명령어 및 데이터 중 최근에 사용되는 명령어와 데이터를 저장하고, 캐시 제어부(210)는 캐시 메모리(200)의 읽기 쓰기 기능을 제어한다.The memory 300 stores program instructions and data, and the memory controller 310 controls a read / write function of the memory 300. The cache memory 200 stores recently used instructions and data among program instructions and data stored in the memory 300, and the cache controller 210 controls a read / write function of the cache memory 200.

프로세서(100)는 캐시 메모리(200)에 저장된 명령어 및 데이터를 인출하여 시스템을 전반적으로 제어하며, MAP 파일 저장부(330)에는 프로그램 컴파일시 프로그램 설정정보가 생성되어 기록된다.The processor 100 controls the overall system by drawing the instructions and data stored in the cache memory 200, and the program setting information is generated and recorded in the MAP file storage unit 330 when the program is compiled.

프리페치부(320)는 프로세서(100)에서 요청한 프로그램 실행에 필요한 명령어 및 데이터가 캐시 메모리(200)에 저장되어 있지 않는 상황에서 MAP 파일 저장부(330)에 기록된 순서에 따라 다음에 필요한 명령어 및 데이터를 메모리(300)로부터 미리 인출한다.The prefetch unit 320 generates a command required for executing a program requested by the processor 100 and next data in the order recorded in the MAP file storage unit 330 in a situation that data is not stored in the cache memory 200. And data are prefetched from the memory 300 in advance.

한편, 캐시 메모리(200)는 전원이 오프되어도 최근 사용된 명령어 및 데이터를 지속적으로 보관하여야 하므로 SRAM(Static Random Access Memory)을 사용한다.Meanwhile, the cache memory 200 uses static random access memory (SRAM) because the recently used instructions and data must be continuously stored even when the power is turned off.

메모리(300)는 저가의 DRAM 또는 플래시 메모리를 이용할 수 있다.The memory 300 may use inexpensive DRAM or flash memory.

DRAM은 휘발성 메모리이므로 프로그램 명령어 및 데이터를 상시 저장할 수 없는 장치이다. 따라서 본 명세서에서는 전원이 인가된 이후 필요한 프로그램 명령 어 및 데이터가 DRAM에 저장되어 있는 상태임을 전제로 한다.DRAM is a volatile memory device that cannot store program instructions and data at all times. Therefore, in the present specification, it is assumed that necessary program instructions and data are stored in DRAM after power is applied.

플래시 메모리는 전원이 오프인 상태에서도 데이터 저장 상태가 변하지 않으므로 프로그램 명령어 및 데이터가 저장되어 있는 상태임을 알 수 있다.Since the flash memory does not change the data storage state even when the power is off, it can be seen that the program instructions and data are stored.

MAP 파일 저장부(330)는 프로그램 컴파일시 생성되는 프로그램 설정정보를 표 1과 같이 제공한다.The MAP file storage unit 330 provides program setting information generated when the program is compiled as shown in Table 1.

명령어command 어드레스Address xxxxxx 0101000101010001 yyyyyy 0101001001010010 ...... ...... zzzzzz 0111000101110001

프로세서에 의해 실행될 프로그램은 프로세서의 언어로 컴파일되어야 하는데, 컴파일 과정에서 각각의 명령어가 저장되는 주소 정보는 표 1과 같은 형태로 구현되고, 아래와 같은 정보들을 포함한다.The program to be executed by the processor should be compiled in the language of the processor. The address information in which each instruction is stored in the compilation process is implemented in the form shown in Table 1, and includes the following information.

MAP 파일은 컴파일시 소스 파일과 바이너리(binary)를 매핑(mapping) 시켜주는 인덱스와 같은 역할을 한다. 실제 해당 소스의 함수, 라인 등의 위치를 생성된 바이너리가 가상 어드레스 상에서 동작하는 위치를 매핑해서 표시해준다.The MAP file acts like an index that maps the source file and binary at compile time. The location of the function, line, etc. of the corresponding source is displayed by mapping the location where the generated binary operates on the virtual address.

따라서 맵파일은 링크되는 프로그램에 대한 정보를 텍스트 형태로 제공한다.Thus, the map file provides information about the linked program in text form.

정보는 파일의 기본 이름인 모듈 이름, 파일 시스템이 아니라 프로그램 파일 헤더의 타임스탬프를 포함한다.The information includes the base name of the file, the module name, the time stamp of the program file header, not the file system.

또한, 프로그램의 그룹 목록, 각 그룹의 시작 주소, 길이, 그룹이름 및 클래스가 함께 표시된다. 그리고 공용기호 목록, 각 주소, 기호이름, 플랫 주소, 기호가 정의된 .obj 파일이 함께 표시되고 진입점(section:offset)을 포함한다.In addition, the group list of the program, the start address, length, group name and class of each group are displayed together. The list of common symbols, each address, symbolic name, flat address, and symbolic .obj file are displayed together with the entry point (section: offset).

프리페치부(320)는 캐시 제어부(210) 또는 프로세서(100)로부터 프로그램 명령어 및 데이터를 요청받아 표 1과 같은 형태의 MAP 파일 리스트 상에서 다음에 필요한 명령어 및 데이터의 순서를 예측하고, 그 순서에 따라 메모리(300)의 해당 주소로부터 미리 명령어 및 데이터를 인출하여 저장한다.The prefetch unit 320 receives program instructions and data from the cache controller 210 or the processor 100, and predicts an order of the next necessary instructions and data on the MAP file list in the form shown in Table 1, Accordingly, the command and data are fetched and stored from the corresponding address of the memory 300 in advance.

제 1 실시예에서는 프리페치부(320)를 메모리 제어부(310)에 구비한다.In the first exemplary embodiment, the prefetch unit 320 is provided in the memory controller 310.

프리페치부(320)가 메모리 제어부(310)에 구비되면, 프로그램 실행에 필요한 명령어 및 데이터가 실행 순서에 따라 캐시 메모리(200)에 제공되지 않을 수도 있다.When the prefetch unit 320 is provided in the memory controller 310, instructions and data necessary for executing a program may not be provided to the cache memory 200 in the order of execution.

이는 메모리 제어부(310)의 기본 기능이 인접한 주소의 명령어 및 데이터를 순서대로 인출하는 기능에 기인한다.This is because the basic function of the memory controller 310 fetches commands and data of adjacent addresses in order.

따라서, 제 1실시예에서는 메모리 제어부(310)의 기본 기능에 따라 현재 인출한 명령어 및 데이터에 인접한 주소의 명령어 및 데이터를 인출하면서 프리페치부(310)에 의해 인접하지 않은 주소일지라도 MAP 파일 정보에 따라 실행 순서대로 명령어 및 데이터를 인출한다.Therefore, in the first exemplary embodiment, the MAP file information is not included by the prefetch unit 310 while the instruction and data of the address adjacent to the currently fetched instruction and data are fetched according to the basic function of the memory controller 310. The command and data are fetched according to the execution order.

프리페치부(320)는 필요한 명령어 및 데이터를 메모리(300)로부터 캐시 메모리(200)로 제공하는 기능이므로 그 위치가 메모리 제어부(310)에 한정되지 않는다. Since the prefetch unit 320 is a function for providing necessary instructions and data from the memory 300 to the cache memory 200, the location thereof is not limited to the memory control unit 310.

따라서 프리페치부의 위치가 다른 경우를 제 2 실시예를 통하여 설명하기로 한다.Therefore, the case where the positions of the prefetch units are different will be described with reference to the second embodiment.

제 2실시예Second Embodiment

도 3은 본 발명의 제 2 실시예에 따라 프로그램 명령어를 캐시 메모리로 프리페치하는 장치에 관한 개략적인 도면이다. 도 3을 참조하면, 본 발명의 제 2 실시예에 따른 메모리 관리 장치는 프로그램 명령어 및 데이터 들을 저장하는 메모리(600)와, 메모리(600)의 읽기 쓰기 기능을 제어하는 메모리 제어부(610)와, 메모리(600)에 저장된 프로그램 명령어 및 데이터 중 최근에 사용되는 명령어와 데이터를 저장하는 캐시 메모리(500)와, 캐시 메모리(500)의 읽기 쓰기 기능을 제어하는 캐시 제어부(510)와, 캐시 메모리(500)에 저장된 명령어 및 데이터를 인출하여 시스템을 전반적으로 제어하는 프로세서(400)와, 프로그램 컴파일시 프로그램 설정정보가 생성되어 기록되는 MAP 파일 저장부(530)와, 프로세서(400)에서 요청한 프로그램 실행에 필요한 명령어 및 데이터가 캐시 메모리(500)에 저장되어 있지 않는 상황에서 MAP 파일 저장부(530)에 기록된 순서에 따라 다음에 필요한 명령어 및 데이터를 메모리(600)로부터 미리 인출하는 프리페치부(520)를 포함하여 구성된다.3 is a schematic diagram of an apparatus for prefetching program instructions into a cache memory according to a second embodiment of the present invention. Referring to FIG. 3, the memory management apparatus according to the second embodiment of the present invention includes a memory 600 storing program instructions and data, a memory controller 610 controlling a read / write function of the memory 600, Cache memory 500 for storing recently used instructions and data among program instructions and data stored in the memory 600, a cache controller 510 for controlling a read / write function of the cache memory 500, and a cache memory ( A processor 400 for controlling overall control of the system by retrieving the instructions and data stored in 500; a MAP file storage unit 530 in which program setting information is generated and recorded when a program is compiled; and a program execution requested by the processor 400 In the situation that the instructions and data required for the data are not stored in the cache memory 500, the next necessary instructions and data in the order recorded in the MAP file storage unit 530. And a prefetch unit 520 for prefetching the data from the memory 600.

제 2 실시예에서의 캐시 메모리(500)와 메모리(600) 및 MAP 파일 저장부(530)는 제 1 실시예와 동일하므로 그 설명을 생략한다.Since the cache memory 500, the memory 600, and the MAP file storage unit 530 in the second embodiment are the same as in the first embodiment, description thereof will be omitted.

다만, 제 2 실시예에서는 프리페치부(510)가 캐시 제어부(510)에 포함되는 것이 제 1 실시예의 구성 형태와 크게 다른 점이다.However, in the second embodiment, the prefetch unit 510 is included in the cache control unit 510 in that it is significantly different from the configuration of the first embodiment.

프리페치부(510)가 캐시 제어부(510) 내부에 포함되게 되면, 캐시 제어부(510)는 메모리 제어부(610)로 명령어 및 데이터 요청시 인접한 주소의 명령어 및 데이터에 상관없이 MAP 파일 정보에 의해 실행 순서에 따라 명령어 및 데이터를 요청하게 된다.When the prefetch unit 510 is included in the cache controller 510, the cache controller 510 is executed by the MAP file information regardless of the command and data of an adjacent address when a command and data request are made to the memory controller 610. In order to request commands and data.

제 1 실시예와 제 2 실시예는 실행하고자 하는 프로그램의 특성에 따라 로딩 속도가 서로 다를 수 있다. 즉, 어떤 프로그램은 제 1 실시예 형태에서 로딩이 빠르고 제 2 실시예에서는 상대적으로 더 느리게 로딩될 수 있다. 그리고 제 1 실시예 형태에서는 느리게 로딩되었어도 제 2실시예와 같이 실시하였을 경우 더 빠르게 로딩되는 경우도 발생할 수 있다.The first and second embodiments may have different loading speeds depending on the characteristics of the program to be executed. That is, some programs may be loaded faster in the first embodiment and relatively slower in the second embodiment. In the first embodiment, even when loaded slowly, the loading may be faster when performed in the same manner as in the second embodiment.

도 4는 도 2 및 도 3에 도시된 프리페치부에 관한 상세 블록도이다. 도 4를 참조하면, 프리페치부(320,520)는 프로세서의 요청에 따라 실행에 필요한 명령어 및 데이터를 미리 인출하는 작업을 수행하는 프리페치 제어부(PFC:PreFetch Controller)와 메모리로부터 미리 인출한 명령어 및 데이터를 저장하는 프리페치 메모리(PFM:PreFetch Memory)를 포함할 수 있다.4 is a detailed block diagram of the prefetch unit illustrated in FIGS. 2 and 3. Referring to FIG. 4, the prefetch units 320 and 520 may prefetch the instructions and data required for execution according to a request of the processor, and the instructions and data prefetched from the memory. It may include a PreFetch Memory (PFM) for storing the.

프리페치 제어부(PFC)는 실행에 필요한 명령어 및 데이터의 실행 순서를 알기 위해 MAP 파일 저장부(330,530)의 프로그램 파일 정보 리스트를 참조한다(look up).The prefetch controller PFC looks up the program file information list of the MAP file storage units 330 and 530 in order to know an execution order of instructions and data required for execution.

MAP 파일 저장부(330,530)는 프리페치부(320,520) 내부에 포함시킬 수도 있다.The MAP file storage units 330 and 530 may be included in the prefetch units 320 and 520.

이하, 상기와 같은 구성을 갖는 메모리 관리 장치의 캐시 메모리 관리 방법을 살펴보기로 한다. 도 5는 본 발명에 따라 프로그램 명령어를 캐시 메모리로 프리페치하는 방법에 관한 흐름도이다. Hereinafter, a cache memory management method of the memory management apparatus having the above configuration will be described. 5 is a flowchart of a method of prefetching program instructions into a cache memory in accordance with the present invention.

도 5는 제 1 실시예 형태에서는 메모리 관리 방법을 보여준다.Fig. 5 shows a memory management method in the first embodiment.

먼저 전원이 인가되어 메모리에 사용자가 사용하는 프로그램들이 저장되어 있다고 가정한다. 먼저, 사용자의 입력에 의해 프로세서로부터 프로그램 실행에 필요한 명령어 및 데이터가 요청된다(S10).First, suppose that power is applied and programs used by a user are stored in a memory. First, an instruction and data for executing a program are requested from a processor by a user's input (S10).

프로그램 실행 명령어 및 데이터가 요청되면, 캐시 메모리에 해당 명령어 및 데이터가 있는지를 확인해야한다(S12). 캐시 메모리에 해당 명령어 및 데이터가 존재하는지를 판단하여(S14), 캐시 메모리에 있는 것으로 판단되면 해당 명령어 및 데이터를 프로세서로 즉시 제공할 수 있다(S16).When the program execution command and data are requested, it is necessary to check whether there is the corresponding command and data in the cache memory (S12). It is determined whether the corresponding instruction and data exist in the cache memory (S14), and if determined to be in the cache memory, the instruction and data can be immediately provided to the processor (S16).

그러나, S14에서 프로그램 실행에 필요한 명령어 및 데이터가 캐시 메모리에 없는 것으로 판단되면 메모리 제어부는 해당 명령어 및 데이터 그리고 그 인접한 주소의 명령어 및 데이터를 메모리로부터 인출하여 캐시 메모리로 제공한다(S18).However, if it is determined in S14 that the instruction and data necessary for program execution are not present in the cache memory, the memory controller fetches the instruction and the data and instructions and data of the adjacent address from the memory and provides the cache to the cache memory (S18).

이와 비슷한 시기에 프리페치 제어부는 MAP 파일 정보에 따라 요청된 명령어 다음에 실행될 명령어 및 데이터를 프리페치하여 프리페치 메모리에 저장한다(S20).At a similar time, the prefetch controller prefetches instructions and data to be executed after the requested instruction according to the MAP file information and stores the prefetched instructions and data in the prefetch memory (S20).

S20은 S18과 메모리 제어부와 프리페치 제어부가 독립적으로 구동될 수 있으므로 동시에 수행될 수 있다,S20 may be performed simultaneously because S18, the memory controller, and the prefetch controller may be driven independently.

계속하여 프로세서로부터 후속 명령어 및 데이터 요청이 들어오면, 프리페치 메모리에 저장되어 있는 명령어 및 데이터를 즉시 캐시 메모리로 제공하여 프로세서에서 사용할 수 있도록 한다(S22).Subsequently, when a subsequent instruction and data request is received from the processor, the instruction and data stored in the prefetch memory are immediately provided to the cache memory to be used by the processor (S22).

본 발명의 제 2 실시예 형태와 같이 프리페치부를 캐시 제어부 내에 포함시킨 경우라면, S18 단계는 프로그램 실행에 필요한 명령어 및 데이터가 캐시 메모리에 없는 것으로 판단되면 프리페치 제어부는 MAP 파일 정보에 따라 현재 필요한 명령어와 그 명령어 바로 다음에 실행될 명령어 및 데이터를 메모리 제어부를 통해 메모리로부터 인출하여 프리페치 메모리에 저장한다.In the case where the prefetch unit is included in the cache control unit as in the second embodiment of the present invention, in step S18, if it is determined that the instruction and data necessary for program execution are not present in the cache memory, the prefetch control unit is currently required according to the MAP file information. The command, the command to be executed immediately after the command, and data are retrieved from the memory through the memory controller and stored in the prefetch memory.

이상 설명한 바와 같이 본 발명에 따른 프리페치 장치 및 방법은 프로그램 컴파일시 생성된 MAP 파일 정보를 이용하여 다음에 실행될 명령어 및 데이터 주소를 획득하여 이 부분을 프리페치하여 메모리로 접근하는 시간을 감소시키므로써 프로그램 실행에 걸리는 시간을 현저하게 감소시키는 효과가 있다.As described above, the prefetching apparatus and method according to the present invention uses the MAP file information generated during program compilation to obtain a command and a data address to be executed next, thereby prefetching this portion to reduce the time to access the memory. This has the effect of significantly reducing the time taken to execute the program.

프리페치부를 통해 프로그램 고속실행을 구현하므로써 고속의 프로그램 실행을 위해 캐시 메모리의 용량을 늘리는데 사용되는 비용을 절감시킬 수 있다.By implementing the program high speed execution through the prefetch unit, it is possible to reduce the cost used to increase the cache memory capacity for high speed program execution.

Claims (11)

프로그램 프로그램 명령어 및 데이터 들을 저장하는 메모리;A memory for storing program program instructions and data; 상기 메모리의 읽기 쓰기 기능을 제어하는 메모리 제어부;A memory controller which controls a read / write function of the memory; 상기 메모리에 저장된 프로그램 명령어 및 데이터 중 최근 사용된 명령어와 데이터를 저장하는 캐시 메모리;A cache memory for storing recently used instructions and data among the program instructions and data stored in the memory; 상기 캐시 메모리의 읽기 쓰기 기능을 제어하는 캐시 제어부;A cache controller which controls a read / write function of the cache memory; 상기 캐시 메모리에 저장된 명령어 및 데이터를 인출하여 시스템을 전반적으로 제어하는 프로세서;A processor configured to overall control the system by retrieving instructions and data stored in the cache memory; 상기 프로그램 컴파일시 프로그램 설정 정보가 생성되어 기록되는 MAP 파일 저장부; 및A MAP file storage unit for generating and recording program setting information when the program is compiled; And 상기 프로세서에서 요청한 상기 프로그램 실행에 필요한 제1 명령어 및 제1 데이터가 상기 캐시 메모리에 없는 경우, 상기 제1 명령어 및 상기 제1 데이터, 상기 제1 명령어 및 상기 제1 데이터에 인접한 제2 명령어 및 제2 데이터를 상기 메모리로부터 인출하여 상기 캐시 메모리로 제공하는 메모리 제어부; 및When the first instruction and the first data required for the program execution requested by the processor are not in the cache memory, the first instruction and the first data, the first instruction, and the second instruction adjacent to the first data and the first data are not present. A memory controller configured to retrieve 2 data from the memory and provide the data to the cache memory; And 상기 제1 명령어 및 상기 제1 데이터가 상기 캐시 메모리에 없는 경우, 상기 MAP 파일 저장부에 기록된 순서에 따라 상기 제1 명령어 및 상기 제1 데이터 다음에 필요한 제3 명령어 및 제3 데이터를 상기 메모리로부터 미리 인출하여 상기 캐시 메모리로 제공하는 프리페치부를 포함하되,If the first command and the first data are not in the cache memory, the third command and the third data required after the first command and the first data according to the order recorded in the MAP file storage unit are stored in the memory. Including a prefetch unit to be pre-fetched from the cache memory, 상기 MAP 파일 저장부는 맵(MAP)파일을 저장하고, 상기 맵파일은 상기 프로그램 실행시 상기 프리페치부가 상기 제1 명령어 및 상기 제1 데이터와 상기 제3 명령어 및 상기 제3 데이터 사이의 실행 순서를 예측하기 위한 정보를 포함하고, The MAP file storage unit stores a map (MAP) file, and the map file stores the execution order between the first command and the first data and the third command and the third data when the program is executed. Contains information to make predictions, 상기 메모리 제어부가 상기 제1 명령어 및 상기 제1 데이터, 상기 제2 명령어 및 상기 제2 데이터를 상기 메모리로부터 인출하여 상기 캐시 메모리로 제공하는 것과, 상기 프리페치부가 상기 제3 명령어 및 상기 제3 데이터를 상기 메모리로부터 미리 인출하는 것은 서로 독립적으로 수행되는 것을 특징으로 하는, 프로그램 명령어 프리페치 제어 장치.The memory controller fetching the first command, the first data, the second command, and the second data from the memory and providing the first command and the first data, the second command, and the second data to the cache memory; Prefetching from the memory is performed independently of each other. 제 1 항에 있어서, 상기 프리페치부는The method of claim 1, wherein the prefetch unit 상기 프로그램 컴파일시 생성된 상기 맵파일로부터 소스 파일과 바이너리 코드 인덱스 정보를 확인하여 상기 제3 명령어를 미리 인출함을 특징으로 하는 프로그램 명령어 프리페치 제어 장치.And fetching the third command in advance by checking source file and binary code index information from the map file generated when the program is compiled. 제 1 항에 있어서, The method of claim 1, 상기 프리페치부에 의해 인출된 상기 제3 명령어 및 상기 제3 데이터는 프리페치 메모리에 저장되는 것을 특징으로 하는 프로그램 명령어 프리페치 제어 장치.And the third command and the third data fetched by the prefetch unit are stored in a prefetch memory. 제 1 항에 있어서, 상기 메모리는The method of claim 1, wherein the memory is 디램(DRAM:Dynamic Random Access Memory) 또는 플래시 메모리인 것을 특징으로 하는 프로그램 명령어 프리페치 제어 장치.Program random data prefetch control device, characterized in that the DRAM (DRAM: Dynamic Random Access Memory). 삭제delete 삭제delete 제1항에 있어서, The method of claim 1, 상기 맵파일은 프로그램 파일 헤더의 타임스탬프 및 진입점(section:offset)을 포함하는 프로그램 명령어 프리페치 제어 장치.And the map file includes a timestamp and a section (offset) of a program file header. 프로세서로부터 프로그램 실행에 필요한 제1 명령어 및 제1 데이터가 요청되면, 캐시 메모리에 상기 제1 명령어 및 상기 제1 데이터가 존재하는지를 판단하는 단계;Determining whether the first instruction and the first data exist in a cache memory when a first instruction and first data necessary for executing a program are requested from a processor; 상기 제1 명령어 및 상기 제1 데이터가 상기 캐시 메모리에 존재하는 경우, 상기 제1 명령어 및 상기 제1 데이터를 프로세서로 제공하는 단계;If the first instruction and the first data exist in the cache memory, providing the first instruction and the first data to a processor; 상기 제1 명령어 및 상기 제1 데이터가 캐시 메모리에 존재하는 않는 경우, 메모리로부터 상기 제1 명령어 및 상기 제1 데이터와 상기 제1 명령어에 인접한 주소의 제2 명령어 및 제2 데이터를 인출하여 상기 캐시 메모리에 저장하는 단계;When the first instruction and the first data do not exist in the cache memory, the cache is fetched from the memory by drawing the first instruction and the first instruction and the second instruction and the second data of an address adjacent to the first instruction. Storing in memory; 프리페치부에서 맵파일(MAP file)로부터 상기 제1 명령어 다음에 수행될 제3 명령어 및 제3 데이터에 대한 정보를 제공받아, 상기 제3 명령어 및 상기 제3 데이터를 미리 인출(프리페치)하여 프리페치부에 저장하는 단계; 및The prefetch unit receives information on the third command and the third data to be performed after the first command from the MAP file, and prefetches the third command and the third data in advance. Storing in a prefetch section; And 상기 프로세서로부터 상기 제3 명령어 및 제3 데이터가 요청되면, 상기 프리페치부에 저장된 상기 제3 명령어 및 상기 제3 데이터를 상기 캐시 메모리로 제공하는 단계를 포함하되,If the third instruction and the third data are requested from the processor, providing the third instruction and the third data stored in the prefetch unit to the cache memory, 상기 제1 명령어 및 상기 제1 데이터와 상기 제1 명령어에 상기 인접한 주소의 상기 제2 명령어 및 상기 제2 데이터를 인출하여 상기 캐시 메모리에 저장하는 단계와 상기 제3 명령어 및 상기 제3 데이터를 미리 인출(프리페치)하여 상기 프리페치부에 저장하는 단계는 독립적으로 수행되고 Extracting the first instruction and the first data and the second instruction and the second data of the address adjacent to the first instruction and storing the first instruction and the second instruction in the cache memory; The fetching (prefetching) and storing the prefetching unit are performed independently. 상기 맵파일은 상기 프로그램 실행시 상기 제1 명령어 및 상기 제1 데이터와 상기 제3 명령어 및 상기 제3 데이터 사이의 실행 순서에 대한 정보를 포함하는 것을 특징으로 하는, 프로그램 명령어 프리페치 제어 방법.And the map file includes information about an execution order between the first command and the first data and the third command and the third data when the program is executed. 삭제delete 삭제delete 제8항에 있어서, 9. The method of claim 8, 상기 맵파일은 프로그램 파일 헤더의 타임스탬프 및 진입점(section:offset)을 포함하는 프로그램 명령어 프리페치 제어 방법.And the map file includes a timestamp and a section (offset) of a program file header.
KR1020070012493A 2007-02-07 2007-02-07 Apparatus for controlling program command prefetch and method thereof KR101376884B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070012493A KR101376884B1 (en) 2007-02-07 2007-02-07 Apparatus for controlling program command prefetch and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070012493A KR101376884B1 (en) 2007-02-07 2007-02-07 Apparatus for controlling program command prefetch and method thereof

Publications (2)

Publication Number Publication Date
KR20080073822A KR20080073822A (en) 2008-08-12
KR101376884B1 true KR101376884B1 (en) 2014-03-21

Family

ID=39883405

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070012493A KR101376884B1 (en) 2007-02-07 2007-02-07 Apparatus for controlling program command prefetch and method thereof

Country Status (1)

Country Link
KR (1) KR101376884B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101973157B1 (en) * 2012-02-06 2019-04-26 삼성전자주식회사 Apparatus and method for cache management
KR102070136B1 (en) 2013-05-03 2020-01-28 삼성전자주식회사 Cache-control apparatus for prefetch and method for prefetch using the cache-control apparatus

Also Published As

Publication number Publication date
KR20080073822A (en) 2008-08-12

Similar Documents

Publication Publication Date Title
KR101769260B1 (en) Concurrent accesses of dynamically typed object data
JP3816586B2 (en) Method and system for generating prefetch instructions
JP3739491B2 (en) Harmonized software control of Harvard architecture cache memory using prefetch instructions
US6782454B1 (en) System and method for pre-fetching for pointer linked data structures
US9286221B1 (en) Heterogeneous memory system
US8707282B2 (en) Meta-data based data prefetching
US6968429B2 (en) Method and apparatus for controlling line eviction in a cache
US6668307B1 (en) System and method for a software controlled cache
US20060212654A1 (en) Method and apparatus for intelligent instruction caching using application characteristics
JP2005302034A (en) System and method for memory management
US9201798B2 (en) Processor instruction based data prefetching
CN111159062B (en) Cache data scheduling method and device, CPU chip and server
US20090177842A1 (en) Data processing system and method for prefetching data and/or instructions
JP2002251321A (en) Cache memory system device
US6687807B1 (en) Method for apparatus for prefetching linked data structures
JP4808910B2 (en) Method and apparatus for prefetching instructions for a primary processor using an auxiliary processor
US6260191B1 (en) User controlled relaxation of optimization constraints related to volatile memory references
US20090276575A1 (en) Information processing apparatus and compiling method
US9262325B1 (en) Heterogeneous memory system
JP3973129B2 (en) Cache memory device and central processing unit using the same
US6851010B1 (en) Cache management instructions
KR101376884B1 (en) Apparatus for controlling program command prefetch and method thereof
US20100268921A1 (en) Data collection prefetch device and methods thereof
CN112148366A (en) FLASH acceleration method for reducing power consumption and improving performance of chip
CN112860381B (en) Virtual machine memory capacity expansion method and system based on Shenwei processor

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee