KR102277094B1 - Buffer cache management method and a computing device to which the buffer cache management method are applied - Google Patents

Buffer cache management method and a computing device to which the buffer cache management method are applied Download PDF

Info

Publication number
KR102277094B1
KR102277094B1 KR1020190134607A KR20190134607A KR102277094B1 KR 102277094 B1 KR102277094 B1 KR 102277094B1 KR 1020190134607 A KR1020190134607 A KR 1020190134607A KR 20190134607 A KR20190134607 A KR 20190134607A KR 102277094 B1 KR102277094 B1 KR 102277094B1
Authority
KR
South Korea
Prior art keywords
area
file block
texture
region
cache
Prior art date
Application number
KR1020190134607A
Other languages
Korean (ko)
Other versions
KR20210050237A (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 KR1020190134607A priority Critical patent/KR102277094B1/en
Publication of KR20210050237A publication Critical patent/KR20210050237A/en
Application granted granted Critical
Publication of KR102277094B1 publication Critical patent/KR102277094B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/302In image processor or graphics adapter

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Image Generation (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

버퍼 캐시 관리 방법 및 상기 버퍼 캐시 관리 방법이 적용된 컴퓨팅 장치가 개시된다. 버퍼 캐시 관리 방법은 렌더링을 통한 이미지 생성과정에서 요구되는 환경 설정 파일 블록 및 텍스쳐 입력 파일 블록과 상기 렌더링의 수행 결과 생성된 결과물 파일 블록에 대한 참조 패턴을 식별하는 단계; 상기 식별된 참조 패턴에 기초하여 버퍼 캐시를 제1 주기의 반복 참조 패턴을 가지는 것으로 식별된 텍스쳐 입력 파일 블록을 저장하기 위한 텍스쳐 영역, 상기 제1 주기 보다 긴 제2 주기의 반복 참조 패턴을 가지는 것으로 식별된 환경 설정 파일 블록을 저장하기 위한 환경 설정 영역으로 분할하는 단계; 상기 버퍼 캐시에 저장하고자 하는 파일 블록이 수신된 경우, 상기 텍스쳐 영역 및 환경 설정 영역 중 상기 수신된 파일 블록의 종류와 동일한 종류의 파일 블록이 저장된 영역에 저장하는 단계; 및 상기 버퍼 캐시에 저장된 파일 블록들의 캐시 적중률에 기초하여 상기 텍스쳐 영역 또는 환경 설정 영역의 캐시 크기를 조절하는 단계를 포함할 수 있다.Disclosed are a buffer cache management method and a computing device to which the buffer cache management method is applied. The buffer cache management method includes: identifying a reference pattern for an environment setting file block and a texture input file block required in an image generation process through rendering and a result file block generated as a result of the rendering; A buffer cache based on the identified reference pattern as having a texture area for storing a texture input file block identified as having a repeating reference pattern of a first period, and having a repeating reference pattern of a second period longer than the first period dividing the identified environment setting file block into environment setting areas for storing; storing a file block of the same type as that of the received file block among the texture area and the environment setting area when the file block to be stored in the buffer cache is received; and adjusting a cache size of the texture area or the environment setting area based on a cache hit ratio of the file blocks stored in the buffer cache.

Description

버퍼 캐시 관리 방법 및 상기 버퍼 캐시 관리 방법이 적용된 컴퓨팅 장치{BUFFER CACHE MANAGEMENT METHOD AND A COMPUTING DEVICE TO WHICH THE BUFFER CACHE MANAGEMENT METHOD ARE APPLIED}BUFFER CACHE MANAGEMENT METHOD AND A COMPUTING DEVICE TO WHICH THE BUFFER CACHE MANAGEMENT METHOD ARE APPLIED

본 발명은 버퍼 캐시 관리 방법 및 상기 버퍼 캐시 관리 방법이 적용된 컴퓨팅 장치에 관한 것으로, 보다 구체적으로는 렌더링 시스템에서 버퍼 캐시를 보다 효과적으로 관리하는 방법 및 장치에 관한 것이다. The present invention relates to a buffer cache management method and a computing device to which the buffer cache management method is applied, and more particularly, to a method and apparatus for more effectively managing a buffer cache in a rendering system.

렌더링이란 형태, 명암, 질감 등의 기본 입력 파일 블록을 바탕으로 초당 24 프레임 이상의 고화질 이미지를 소프트웨어 작업을 통해 생성하는 과정으로 3D 애니메이션, 특수효과 등에 널리 사용된다. 렌더링에서는 하나의 프레임 생성에 길게는 이틀 이상의 시간이 소요될 정도로 많은 연산량을 필요로 하므로 PC가 아닌 전용 클러스터 머신을 사용하는 것이 일반적이다.Rendering is the process of creating high-quality images of 24 frames per second or more through software work based on basic input file blocks such as shape, contrast, and texture, and is widely used in 3D animation and special effects. In rendering, it is common to use a dedicated cluster machine instead of a PC because it requires a large amount of computation that takes up to two days or more to generate one frame.

이러한 렌더링 작업은 연산 집약적인 특성을 나타내지만, 최근 매니코어 시스템을 통한 병렬 작업의 극대화로 인해 렌더링 시스템의 소요 시간을 단축할 수 있다. 그러나, 이러한 렌더링 작업 시 CPU 또는 GPU에 비해 수십 만배 이상 느린 스토리지 접근으로 인해 또다른 병목 현상이 발생되는 문제가 있다.Although this rendering operation is computationally intensive, the time required for the rendering system can be shortened due to the recent maximization of parallel operations through many-core systems. However, there is a problem in that another bottleneck occurs due to storage access that is hundreds of thousands of times slower than the CPU or GPU during the rendering operation.

본 발명은 렌더링 시스템을 위한 버퍼 캐시 관리 방법에 관한 것으로, 렌더링을 통한 이미지 생성과정에서 요구되는 파일 블록들의 참조 특성을 고려하여 버퍼 캐시의 공간을 분할 및 관리함으로써 버퍼 캐시의 성능을 향상시킬 수 있는 방법 및 장치를 제공한다.The present invention relates to a buffer cache management method for a rendering system, which can improve the performance of the buffer cache by dividing and managing the space of the buffer cache in consideration of the reference characteristics of file blocks required in an image generation process through rendering. Methods and apparatus are provided.

본 발명의 일실시예에 따른 버퍼 캐시 관리 방법은 렌더링을 통한 이미지 생성과정에서 요구되는 환경 설정 파일 블록 및 텍스쳐 입력 파일 블록과 상기 렌더링의 수행 결과 생성된 결과물 파일 블록에 대한 참조 패턴을 식별하는 단계; 상기 식별된 참조 패턴에 기초하여 버퍼 캐시를 제1 주기의 반복 참조 패턴을 가지는 것으로 식별된 텍스쳐 입력 파일 블록을 저장하기 위한 텍스쳐 영역, 상기 제1 주기 보다 긴 제2 주기의 반복 참조 패턴을 가지는 것으로 식별된 환경 설정 파일 블록을 저장하기 위한 환경 설정 영역으로 분할하는 단계; 상기 버퍼 캐시에 저장하고자 하는 파일 블록이 수신된 경우, 상기 텍스쳐 영역 및 환경 설정 영역 중 상기 수신된 파일 블록의 종류와 동일한 종류의 파일 블록이 저장된 영역에 저장하는 단계; 및 상기 버퍼 캐시에 저장된 파일 블록들의 캐시 적중률에 기초하여 상기 텍스쳐 영역 또는 환경 설정 영역의 캐시 크기를 조절하는 단계를 포함할 수 있다.A buffer cache management method according to an embodiment of the present invention includes the steps of identifying a reference pattern for an environment setting file block and a texture input file block required in an image generation process through rendering and a result file block generated as a result of the rendering ; A buffer cache based on the identified reference pattern as having a texture area for storing a texture input file block identified as having a repeating reference pattern of a first period, and having a repeating reference pattern of a second period longer than the first period dividing the identified environment setting file block into environment setting areas for storing; storing a file block of the same type as that of the received file block among the texture area and the environment setting area when the file block to be stored in the buffer cache is received; and adjusting a cache size of the texture area or the environment setting area based on a cache hit ratio of the file blocks stored in the buffer cache.

상기 식별하는 단계는 상기 렌더링을 수행하는 렌더링 소프트웨어가 이미지를 생성하는 과정에서 참조하는 환경 설정 파일 블록 및 텍스쳐 입력 파일 블록의 참조 빈도를 이용하여 상기 참조 패턴을 식별할 수 있다.In the identifying, the reference pattern may be identified using reference frequencies of the environment setting file block and the texture input file block referenced by the rendering software performing the rendering in the process of generating the image.

상기 분할하는 단계는 상기 환경 설정 파일 블록 및 텍스쳐 입력 파일 블록 각각의 워크로드에 기초하여 상기 분할되는 텍스쳐 영역 및 환경 설정 영역의 캐시 크기가 결정될 수 있다.In the dividing, cache sizes of the divided texture area and the environment setting area may be determined based on the workload of each of the environment setting file block and the texture input file block.

상기 저장하는 단계는 상기 텍스쳐 영역 및 환경 설정 영역에 저장된 파일 블록들의 교체가 필요한 경우, MRU(Most Recently Used) 알고리즘을 사용하여 가장 최근에 참조된 파일 블록을 방출하고, 새로 수신된 파일 블록을 저장할 수 있다.In the storing step, when it is necessary to replace the file blocks stored in the texture area and the environment setting area, the most recently used (MRU) algorithm is used to release the most recently referenced file block, and to store the newly received file block. can

상기 버퍼 캐시는 상기 텍스쳐 영역 및 환경 설정 영역 외 임의 참조 영역을 더 포함하고, 상기 저장하는 단계는 상기 텍스쳐 영역 및 환경 설정 영역에서 방출된 파일 블록이 임의 참조 패턴을 가지는 경우, 상기 임의 참조 영역에 저장할 수 있다.The buffer cache further includes an arbitrary reference area other than the texture area and the environment setting area, and the storing is performed in the arbitrary reference area when the file block emitted from the texture area and the environment setting area has an arbitrary reference pattern. can be saved

상기 저장하는 단계는 상기 임의 참조 영역에 저장된 파일 블록들의 교체가 필요한 경우, LRU(Least Recently Used) 알고리즘을 사용하여 가장 오랫동안 참조되지 않은 파일 블록을 방출하고, 새로 수신된 파일 블록을 저장할 수 있다.In the storing, when it is necessary to replace the file blocks stored in the random reference area, the least recently used (LRU) algorithm may be used to release the longest unreferenced file block and store the newly received file block.

상기 텍스쳐 영역은 상기 텍스쳐 입력 파일 블록이 저장되는 제1 실제 영역과 캐시 적중률에 따른 성능 기여도를 확인하기 위한 제1 가상 영역을 포함하고, 상기 환경 설정 영역은 상기 환경 설정 파일 블록이 저장되는 제2 실제 영역과 캐시 적중률에 따른 성능 기여도를 확인하기 위한 제2 가상 영역을 포함할 수 있다.The texture area includes a first real area in which the texture input file block is stored and a first virtual area for checking a performance contribution according to a cache hit ratio, and the environment setting area is a second area in which the environment setting file block is stored. A second virtual region may be included to check the performance contribution according to the real region and the cache hit ratio.

상기 텍스쳐 영역의 제1 실제 영역 및 상기 환경 설정 영역의 제2 실제 영역에 대한 캐시 크기의 합은 상기 텍스쳐 영역의 제1 실제 영역 및 제1 가상 영역에 대한 캐시 크기의 합과 동일하고, 상기 환경 설정 영역의 제2 실제 영역 및 제2 가상 영역에 대한 캐시 크기 합과 동일한 버퍼 캐시 크기 규칙이 적용될 수 있다.a sum of cache sizes for a first real region of the texture region and a second real region of the environment setting region is equal to a sum of cache sizes for a first real region and a first virtual region of the texture region; A buffer cache size rule equal to the sum of cache sizes for the second real area and the second virtual area of the setting area may be applied.

상기 저장하는 단계는 상기 텍스쳐 영역의 제1 실제 영역 및 환경 설정 영역의 제2 실제 영역에 저장된 파일 블록들의 교체가 필요한 경우, 방출되는 파일 블록의 메타데이터를 상기 제1 가상 영역 및 제2 가상 영역에 각각 저장할 수 있다.In the storing, when the file blocks stored in the first real area of the texture area and the second real area of the environment setting area need to be replaced, the metadata of the file block to be emitted is stored in the first virtual area and the second virtual area. can be stored in each.

상기 조절하는 단계는 상기 렌더링을 통한 이미지 생성과정에서 요구되는 텍스쳐 입력 파일 블록이 상기 텍스쳐 영역의 제1 가상 영역에서 발견되는 경우, 상기 제1 가상 영역의 캐시 크기를 감소시키고, 상기 제1 실제 영역의 캐시 크기를 증가시키되, 상기 버퍼 캐시 크기 규칙을 유지하도록 상기 제2 실제 영역의 캐시 크기를 감소시키고, 상기 제2 가상 영역의 캐시 크기를 증가시킬 수 있다.The adjusting may include reducing the cache size of the first virtual region and reducing the cache size of the first real region when a texture input file block required in the image generation process through the rendering is found in the first virtual region of the texture region. Increase the cache size of , but decrease the cache size of the second real region to maintain the buffer cache size rule, and increase the cache size of the second virtual region.

본 발명의 일실시예에 따른 버퍼 캐시 관리 방법이 적용되는 컴퓨팅 장치는 프로세서를 포함하고, 상기 프로세서는 렌더링을 통한 이미지 생성과정에서 요구되는 환경 설정 파일 블록 및 텍스쳐 입력 파일 블록과 상기 렌더링의 수행 결과 생성된 결과물 파일 블록에 대한 참조 패턴을 식별하고, 상기 식별된 참조 패턴에 기초하여 버퍼 캐시를 제1 주기의 반복 참조 패턴을 가지는 것으로 식별된 텍스쳐 입력 파일 블록을 저장하기 위한 텍스쳐 영역, 상기 제1 주기 보다 긴 제2 주기의 반복 참조 패턴을 가지는 것으로 식별된 환경 설정 파일 블록을 저장하기 위한 환경 설정 영역으로 분할하며, 상기 버퍼 캐시에 저장하고자 하는 파일 블록이 수신된 경우, 상기 텍스쳐 영역 및 환경 설정 영역 중 상기 수신된 파일 블록의 종류와 동일한 종류의 파일 블록이 저장된 영역에 저장하고, 상기 버퍼 캐시에 저장된 파일 블록들의 캐시 적중률에 기초하여 상기 텍스쳐 영역 또는 환경 설정 영역의 캐시 크기를 조절할 수 있다.A computing device to which the buffer cache management method according to an embodiment of the present invention is applied includes a processor, wherein the processor includes an environment setting file block and a texture input file block required in an image generation process through rendering, and a result of the rendering a texture area for identifying a reference pattern for the generated result file block, and storing a texture input file block identified as having a repeating reference pattern of a first period in a buffer cache based on the identified reference pattern; It is divided into an environment setting area for storing the environment setting file block identified as having a repeating reference pattern of a second period longer than the period, and when a file block to be stored in the buffer cache is received, the texture area and the environment setting A file block of the same type as the received file block may be stored in an area, and the cache size of the texture area or the environment setting area may be adjusted based on a cache hit ratio of the file blocks stored in the buffer cache.

상기 프로세서는 상기 렌더링을 수행하는 렌더링 소프트웨어가 이미지를 생성하는 과정에서 참조하는 환경 설정 파일 블록 및 텍스쳐 입력 파일 블록의 참조 빈도를 이용하여 상기 참조 패턴을 식별할 수 있다.The processor may identify the reference pattern by using the reference frequency of the environment setting file block and the texture input file block referenced by the rendering software performing the rendering in the process of generating the image.

상기 프로세서는 상기 환경 설정 파일 블록 및 텍스쳐 입력 파일 블록 각각의 워크로드에 기초하여 상기 분할되는 텍스쳐 영역 및 환경 설정 영역의 캐시 크기를 결정할 수 있다.The processor may determine cache sizes of the divided texture area and the environment setting area based on the workload of each of the environment setting file block and the texture input file block.

상기 프로세서는 상기 텍스쳐 영역 및 환경 설정 영역에 저장된 파일 블록들의 교체가 필요한 경우, MRU(Most Recently Used) 알고리즘을 사용하여 가장 최근에 참조된 파일 블록을 방출하고, 새로 수신된 파일 블록을 저장할 수 있다.When it is necessary to replace the file blocks stored in the texture area and the environment setting area, the processor may use a Most Recently Used (MRU) algorithm to release the most recently referenced file block and store the newly received file block. .

상기 버퍼 캐시는 상기 텍스쳐 영역 및 환경 설정 영역 외 임의 참조 영역을 더 포함하고, 상기 프로세서는 상기 텍스쳐 영역 및 환경 설정 영역에서 방출된 파일 블록이 임의 참조 패턴을 가지는 경우, 상기 임의 참조 영역에 저장할 수 있다. The buffer cache may further include an arbitrary reference area other than the texture area and the environment setting area, and the processor may store the file block emitted from the texture area and the environment setting area in the arbitrary reference area when the file block has an arbitrary reference pattern. have.

상기 프로세서는 상기 임의 참조 영역에 저장된 파일 블록들의 교체가 필요한 경우, LRU(Least Recently Used) 알고리즘을 사용하여 가장 오랫동안 참조되지 않은 파일 블록을 방출하고, 새로 수신된 파일 블록을 저장할 수 있다.When it is necessary to replace the file blocks stored in the random reference area, the processor may use a least recently used (LRU) algorithm to release a file block that has not been referenced for the longest time and store the newly received file block.

상기 텍스쳐 영역은 상기 텍스쳐 입력 파일 블록이 저장되는 제1 실제 영역과 캐시 적중률에 따른 성능 기여도를 확인하기 위한 제1 가상 영역을 포함하고, 상기 환경 설정 영역은 상기 환경 설정 파일 블록이 저장되는 제2 실제 영역과 캐시 적중률에 따른 성능 기여도를 확인하기 위한 제2 가상 영역을 포함할 수 있다.The texture area includes a first real area in which the texture input file block is stored and a first virtual area for checking a performance contribution according to a cache hit ratio, and the environment setting area is a second area in which the environment setting file block is stored. A second virtual region may be included to check the performance contribution according to the real region and the cache hit ratio.

상기 텍스쳐 영역의 제1 실제 영역 및 상기 환경 설정 영역의 제2 실제 영역에 대한 캐시 크기의 합은 상기 텍스쳐 영역의 제1 실제 영역 및 제1 가상 영역에 대한 캐시 크기의 합과 동일하고, 상기 환경 설정 영역의 제2 실제 영역 및 제2 가상 영역에 대한 캐시 크기 합과 동일한 버퍼 캐시 크기 규칙이 적용될 수 있다.a sum of cache sizes for a first real region of the texture region and a second real region of the environment setting region is equal to a sum of cache sizes for a first real region and a first virtual region of the texture region; A buffer cache size rule equal to the sum of cache sizes for the second real area and the second virtual area of the setting area may be applied.

상기 프로세서는 상기 텍스쳐 영역의 제1 실제 영역 및 환경 설정 영역의 제2 실제 영역에 저장된 파일 블록들의 교체가 필요한 경우, 방출되는 파일 블록의 메타데이터를 상기 제1 가상 영역 및 제2 가상 영역에 각각 저장할 수 있다. When it is necessary to replace the file blocks stored in the first real area of the texture area and the second real area of the environment setting area, the processor writes metadata of the file blocks to be emitted to the first virtual area and the second virtual area, respectively. can be saved

상기 프로세서는 상기 렌더링을 통한 이미지 생성과정에서 요구되는 텍스쳐 입력 파일 블록이 상기 텍스쳐 영역의 제1 가상 영역에서 발견되는 경우 상기 제1 가상 영역의 캐시 크기를 감소시키고, 상기 제1 실제 영역의 캐시 크기를 증가시키되, 상기 버퍼 캐시 크기 규칙을 유지하도록 상기 제2 실제 영역의 캐시 크기를 감소시키고, 상기 제2 가상 영역의 캐시 크기를 증가시킬 수 있다.The processor decreases the cache size of the first virtual region when a texture input file block required in the image generation process through the rendering is found in the first virtual region of the texture region, and the cache size of the first real region may be increased, but the cache size of the second real region may be decreased to maintain the buffer cache size rule, and the cache size of the second virtual region may be increased.

본 발명은 렌더링 시스템을 위한 버퍼 캐시 관리 방법에 관한 것으로, 렌더링을 통한 이미지 생성과정에서 요구되는 파일 블록들의 참조 특성을 고려하여 버퍼 캐시의 공간을 분할 및 관리함으로써 버퍼 캐시의 성능을 향상시킬 수 있다.The present invention relates to a buffer cache management method for a rendering system, and the performance of the buffer cache can be improved by dividing and managing the space of the buffer cache in consideration of the reference characteristics of file blocks required in an image generation process through rendering. .

도 1은 본 발명의 일실시예에 따른 렌더링 시스템을 도시한 도면이다.
도 2A 및 도 2B는 본 발명의 일실시예에 따른 범용 시스템 및 렌더링 시스템의 버퍼 캐시 성능을 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 렌더링 시 요구되는 파일 블록들의 참조 패턴을 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 버퍼 캐시의 공간 구조도를 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 버퍼 캐시의 파일 블록 교체 방법을 도시한 도면이다.
도 6은 본 발명의 일실시예에 따른 버퍼 캐시의 동적 할당 방법을 도시한 도면이다.
도 7은 본 발명의 일실시예에 따른 버퍼 캐시 관리 방법을 플로우챠트로 도시한 도면이다.
1 is a diagram illustrating a rendering system according to an embodiment of the present invention.
2A and 2B are diagrams illustrating buffer cache performance of a general-purpose system and a rendering system according to an embodiment of the present invention.
3 is a diagram illustrating a reference pattern of file blocks required for rendering according to an embodiment of the present invention.
4 is a diagram illustrating a spatial structure of a buffer cache according to an embodiment of the present invention.
5 is a diagram illustrating a file block replacement method of a buffer cache according to an embodiment of the present invention.
6 is a diagram illustrating a method for dynamically allocating a buffer cache according to an embodiment of the present invention.
7 is a flowchart illustrating a buffer cache management method according to an embodiment of the present invention.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 렌더링 시스템을 도시한 도면이다.1 is a diagram illustrating a rendering system according to an embodiment of the present invention.

도 1을 참고하면, 본 발명의 컴퓨팅 장치(100)의 프로세서(110)는 소프트웨어 작업을 통해 형태, 명암, 질감 등의 데이터를 바탕으로 고화질의 이미지를 생성할 수 있다. 이때, 고화질의 이미지를 생성하기 위하여 필요한 데이터는 컴퓨팅 장치(100) 내의 스토리지(120)에 저장될 수 있으며, 프로세서(110)는 렌더링 작업 시 스토리지(120)에 저장된 데이터에 접근하여 소프트웨어를 통해 고화질의 이미지를 생성할 수 있다. 일례로, 스토리지(120)는 비휘발성메모리(NVRAM)일 수 있다.Referring to FIG. 1 , the processor 110 of the computing device 100 of the present invention may generate a high-quality image based on data such as shape, contrast, and texture through a software operation. In this case, data necessary to generate a high-definition image may be stored in the storage 120 in the computing device 100 , and the processor 110 accesses the data stored in the storage 120 during a rendering operation to access the high-quality image through software image can be created. For example, the storage 120 may be a non-volatile memory (NVRAM).

이때, 프로세서(110)는 렌더링 작업을 위하여 필요한 데이터를 스토리지(120)로부터 읽어 들인 후 소프트웨어 작업을 통해 고화질의 이미지를 생성할 수 있다. 이와 같이 고화질의 이미지를 생성하는 과정에서 프로세서(110)는 스토리지(120)로부터 동일한 데이터들을 반복적으로 요청할 수 있는데 스토리지(120)는 데이터에 대한 접근 시간이 커 반복적으로 요청되는 데이터들이 많을수록 렌더링 시간이 늘어날 수 있다.In this case, the processor 110 may generate a high-quality image through a software operation after reading data necessary for the rendering operation from the storage 120 . In the process of generating a high-quality image as described above, the processor 110 may repeatedly request the same data from the storage 120. The storage 120 has a long access time to the data, so the more data repeatedly requested, the longer the rendering time. can increase

본 발명의 컴퓨팅 장치(100)는 이러한 렌더링 시간을 단축하기 위하여 렌더링 작업을 위하여 필요한 데이터를 스토리지(120)로부터 읽어 들인 후 스토리지(120)의 일역에 형성된 버퍼 캐시(130) 또는 별도의 버퍼 캐시(130)에 저장함으로써 동일한 데이터를 재요청 시 빠른 접근을 가능하게 함으로써 렌더링 시간을 단축할 수 있다.The computing device 100 of the present invention reads data necessary for a rendering operation from the storage 120 in order to shorten the rendering time, and then forms a buffer cache 130 or a separate buffer cache ( 130), the rendering time can be shortened by enabling quick access when the same data is requested again.

따라서, 본 발명의 컴퓨팅 장치(100)가 렌더링 시스템의 스토리지(120) 성능을 향상시키기 위한 효율적인 버퍼 캐시(130) 관리 방법을 제안한다.Accordingly, the computing device 100 of the present invention proposes an efficient buffer cache 130 management method for improving the storage 120 performance of the rendering system.

도 2A 및 도 2B는 본 발명의 일실시예에 따른 범용 시스템 및 렌더링 시스템의 버퍼 캐시 성능을 나타낸 도면이다.2A and 2B are diagrams illustrating buffer cache performance of a general-purpose system and a rendering system according to an embodiment of the present invention.

도 2A 와 도 2B는 각각 범용 워크로드와 렌더링 워크로드를 LRU(Least Recently Used) 알고리즘을 사용하는 일반적인 버퍼 캐시 시스템에서 실행했을 때 캐시 크기에 따른 성능을 보여준다. 도 2A를 참고하면, 일반적인 컴퓨팅 시스템에서 버퍼 캐시는 범용 워크로드의 경우 캐시 크기가 증가할수록 성능이 점진적으로 개선되는 것을 보여준다. 그러나 도 2B와 같이 렌더링 워크로드의 경우에는 캐시 크기가 증가하더라도 성능이 거의 개선되지 않다가 데이터를 모두 담을 수 있을 정도로 캐시 크기가 증가한 후에야 성능 개선이 나타나는 것을 보여준다. 이는 렌더링 시스템의 버퍼 캐시 관리시 범용 컴퓨터 방식을 그대로 사용하는 것이 적절하지 않음을 나타낸다. 2A and 2B show performance according to cache size when general-purpose workloads and rendering workloads are executed in a general buffer cache system using the least recently used (LRU) algorithm, respectively. Referring to FIG. 2A , the performance of the buffer cache in a general computing system is gradually improved as the cache size increases in the case of general-purpose workloads. However, in the case of the rendering workload as shown in FIG. 2B , even if the cache size is increased, the performance is hardly improved, but it shows that the performance improvement appears only after the cache size is increased enough to contain all the data. This indicates that it is not appropriate to use the general-purpose computer method when managing the buffer cache of the rendering system.

따라서, 본 발명은 캐시 크기 증가 시 이에 비례한 성능 개선이 나타날 수 있도록 렌더링 워크로드에 적합한 버퍼 캐시 관리 방법을 제공할 수 있다.Accordingly, the present invention can provide a buffer cache management method suitable for a rendering workload so that performance improvement in proportion to the increase in the cache size can be obtained.

도 3은 본 발명의 일실시예에 따른 렌더링 시 요구되는 파일 블록들의 참조 패턴을 도시한 도면이다.3 is a diagram illustrating a reference pattern of file blocks required for rendering according to an embodiment of the present invention.

렌더링 시스템을 위한 버퍼 캐시 설계를 위해 본 발명의 컴퓨팅 장치(100)는 먼저 렌더링을 통한 이미지 생성과정에서 요구되는 파일 블록들의 참조 트레이스를 추출하고 분석할 수 있다. 이때, 파일 블록은 렌더링을 통한 이미지 생성과정에서 요구되는 다양한 데이터의 집합을 의미할 수 있다. 도 3은 추출된 참조 트레이스에서 시간에 따라 참조되는 파일 블록을 파일 블록 유형별로 표시한 것이다.In order to design a buffer cache for a rendering system, the computing device 100 of the present invention may first extract and analyze reference traces of file blocks required in an image generation process through rendering. In this case, the file block may mean a set of various data required in an image generation process through rendering. 3 shows file blocks referenced over time in the extracted reference trace for each file block type.

도 3의 x축은 파일 블록이 참조될 때마다 1씩 증가하는 논리적 시간이며, y축은 블록번호를 나타낼 수 있다. 이때, 참조되는 파일 블록을 파일 블록 유형별로 분석해보면 환경설정 파일 블록 읽기(310)가 프로그램 실행 시에 나타날 수 있다. 그 후 텍스쳐 입력 파일 블록 읽기(320)가 매 프레임마다 나타날 수 있으며, 텍스쳐 입력 파일 블록을 이용한 렌더링 결과 생성된 결과 파일 블록이 생성될 수 있다. 마지막으로 생성된 결과 파일 블록 쓰기(320)가 매 프레임의 렌더링이 끝날 때마다 발생할 수 있다. 이러한 파일 블록 유형 별 읽기 및 쓰기 특성은 어떠한 렌더링 작업을 실행하더라도 공통적으로 나타날 수 있다.The x-axis of FIG. 3 is a logical time that increases by 1 whenever a file block is referenced, and the y-axis may indicate a block number. At this time, if the referenced file block is analyzed by file block type, the configuration file block read 310 may appear when the program is executed. After that, the texture input file block read 320 may appear every frame, and a result file block generated as a result of rendering using the texture input file block may be generated. The last generated result file block write 320 may occur whenever rendering of every frame is finished. These read and write characteristics for each file block type can appear in common no matter what rendering operation is executed.

구체적으로 환경설정 파일 블록 읽기(310)는 매 프로그램 실행 시 마다 1번씩 나타나므로 주기가 긴 반복 참조 패턴의 형태를 가질 수 있다. 그리고, 텍스쳐 입력 파일 블록 읽기(320)는 주기가 짧은 반복 참조 패턴이 대부분을 차지하며, 일부 임의 참조 패턴이 혼합된 형태를 가질 수 있다. 마지막으로 결과 파일 블록 쓰기(330)는 1회성 순차 참조의 형태를 가질 수 있다.In more detail, the configuration file block read 310 may have the form of a repeating reference pattern with a long cycle since it appears once for every program execution. In addition, the texture input file block read 320 occupies most of the repeating reference pattern having a short period, and may have a form in which some arbitrary reference patterns are mixed. Finally, the result file block write 330 may take the form of a one-time sequential reference.

이러한 파일 블록 유형 별 참조 패턴은 파일 블록의 형식을 통해 파악 가능하므로 본 발명의 컴퓨팅 장치(100)는 이러한 파일 블록 유형 별 참조 패턴에 기반해 렌더링에 특화된 버퍼 캐시 관리 방법을 제공할 수 있다. Since the reference pattern for each file block type can be identified through the file block format, the computing device 100 of the present invention can provide a buffer cache management method specialized for rendering based on the reference pattern for each file block type.

한편, 다양한 참조 패턴이 혼합된 경우 버퍼 캐시(130)의 공간을 분할하여 그에 적합한 관리 기법을 운용하는 것이 효과적이다. 따라서, 본 발명의 컴퓨팅 장치(100)는 렌더링 수행시 나타나는 참조 패턴 별 성능개선효과에 기반하여 버퍼 캐시(130)의 공간을 할당하고, 적절한 관리 기법을 적용함으로써 버퍼 캐시(130)의 성능을 향상시키는 방법을 제공할 수 있다.On the other hand, when various reference patterns are mixed, it is effective to divide the space of the buffer cache 130 and operate a management technique suitable therefor. Accordingly, the computing device 100 of the present invention improves the performance of the buffer cache 130 by allocating the space of the buffer cache 130 based on the performance improvement effect for each reference pattern that appears during rendering, and applying an appropriate management technique. can provide a way to do it.

먼저, 컴퓨팅 장치(100)는 1회성으로 참조되는 파일 블록에 대해서는 성능개선 효과가 없으므로 캐싱하지 않고, 주기가 긴 반복 참조 패턴을 가지는 파일 블록 및 주기가 짧은 반복 참조 패턴을 가지는 파일 블록에 대해서는 캐싱을 통한 이득에 기반하여 공간 할당을 수행할 수 있다. 파일 블록의 참조 패턴을 실시간으로 탐지하는 경우 오버헤드가 크기 때문에 본 발명의 컴퓨팅 장치(100)는 미리 파악된 렌더링의 파일 블록 유형 별 참조 패턴의 특성에 기반하여 버퍼 캐시(130) 내의 공간 할당 및 관리를 수행할 수 있다.First, the computing device 100 does not cache a file block referenced once because there is no performance improvement effect, and caches a file block having a repeating reference pattern with a long period and a file block having a repeating reference pattern with a short period. Space allocation may be performed based on the gain through When the reference pattern of the file block is detected in real time, since the overhead is large, the computing device 100 of the present invention allocates space in the buffer cache 130 and management can be performed.

도 4는 본 발명의 일실시예에 따른 버퍼 캐시의 공간 구조도를 도시한 도면이다.4 is a diagram illustrating a spatial structure of a buffer cache according to an embodiment of the present invention.

도 4는 본 발명에서 제안하는 버퍼 캐시(130)의 공간 구조를 보여준다. 버퍼 캐시(130)는 주기가 긴 반복 참조 패턴의 형태를 가지는 환경설정 파일 블록이 저장되는 환경설정 영역(C영역)과 주기가 짧은 반복 참조 패턴의 형태를 가지는 텍스쳐 파일 블록이 저장되는 텍스쳐 영역(T영역), 그리고 별도의 임의 참조 영역(O영역)으로 구성될 수 있다. 컴퓨팅 장치(100)는 렌더링 결과 생성된 결과 파일 블록의 경우 재사용되지 않으므로 공간 할당을 수행하지 않으며, 할당된 영역에 대해 성능 기여도에 따라 캐시 크기를 조절할 수 있다.4 shows the spatial structure of the buffer cache 130 proposed by the present invention. The buffer cache 130 includes a configuration area (area C) in which a configuration file block having a repeating reference pattern with a long period is stored and a texture area (area C) in which a texture file block having a shape of a repeating reference pattern having a short period is stored. T region), and a separate arbitrary reference region (O region). The computing device 100 does not allocate space because the result file block generated as a result of rendering is not reused, and may adjust the cache size for the allocated area according to the performance contribution.

컴퓨팅 장치(100)는 환경설정 영역(C영역)과 텍스쳐 영역(T영역)에 대한 성능 기여도를 판단하기 위하여 각각의 영역에 가상영역(G1, G2)을 설정할 수 있다. 이때, 가상영역(G1, G2)은 공간 제약으로 실제 파일 블록들이 저장되는 실제 영역(T1, C1)에서 방출된 파일 블록에 대해 최근에 방출되었다는 정보를 일정 기간 유지할 수 있는 영역을 의미할 수 있으며, 방출되는 파일 블록의 메타 정보만을 유지하므로 공간 오버헤드가 매우 적을 수 있다.The computing device 100 may set virtual regions G1 and G2 in each region in order to determine the performance contribution to the environment setting region (region C) and the texture region (region T). In this case, the virtual regions G1 and G2 may refer to regions in which information indicating that the file blocks have been recently released can be maintained for a certain period of time with respect to the file blocks released from the real regions T1 and C1 in which the actual file blocks are stored due to space constraints. , space overhead can be very small because only meta information of the emitted file block is maintained.

컴퓨팅 장치(100)는 이러한 가상 영역(G1, G2)를 이용하여 실제 영역(T1, C1)의 캐시 크기를 조절하였을 때 어느 정도의 성능 개선을 기대할 수 있는지를 판단할 수 있다. 예를 들어 환경설정 영역(C영역)의 가상 영역(G2)에서 빈번한 참조가 발생한 경우 컴퓨팅 장치(100)는 환경설정 영역(C영역)의 실제 영역(C1)에 대한 캐시 크기를 증가시켜 캐시 적중률을 향상시킴으로써 버퍼 캐시(130)의 성능을 개선시킬 수 있다.The computing device 100 may determine how much performance improvement can be expected when the cache sizes of the real regions T1 and C1 are adjusted using the virtual regions G1 and G2. For example, when frequent references occur in the virtual region G2 of the environment setting region (region C), the computing device 100 increases the cache size for the real region C1 of the environment setting region (region C) to increase the cache hit ratio By improving , the performance of the buffer cache 130 may be improved.

본 발명은 버퍼 캐시(130)의 성능을 최적화하기 위하여 버퍼 캐시(130)의 공간 할당을 위한 버퍼 캐시 크기 규칙이 적용될 수 있다. 구체적으로 버퍼 캐시 크기 규칙에서 텍스쳐 영역(T영역)의 실제 영역(T1) 및 환경 설정 영역(C영역)의 실제 영역(C1)에 대한 캐시 크기의 합은 텍스쳐 영역(T영역)의 실제 영역(T1) 및 가상 영역(G1)에 대한 캐시 크기의 합과 동일하고, 환경 설정 영역(C영역)의 실제 영역(C1) 및 가상 영역(G2)에 대한 캐시 크기 합과 동일할 수 있다. 이를 식으로 나타내는 아래의 식 1 내지 식 3과 같을 수 있다.In the present invention, a buffer cache size rule for space allocation of the buffer cache 130 may be applied to optimize the performance of the buffer cache 130 . Specifically, in the buffer cache size rule, the sum of the cache sizes for the actual area (T1) of the texture area (T area) and the actual area (C1) of the environment setting area (C area) is the actual area (T1) of the texture area (T area). T1) and the sum of the cache sizes for the virtual region G1, and may be the same as the sum of the cache sizes for the real region C1 and the virtual region G2 of the environment setting region (C). It may be the same as Equation 1 to Equation 3 below, which is expressed by the formula

<식 1><Equation 1>

T1의 캐시 크기 + C1의 캐시 크기 = SCache size of T1 + Cache size of C1 = S

<식 2><Equation 2>

T1의 캐시 크기 + G1의 캐시 크기 = SCache size of T1 + Cache size of G1 = S

<식 3><Equation 3>

C1의 캐시 크기 + G2의 캐시 크기 = SCache size in C1 + Cache size in G2 = S

컴퓨팅 장치(100)는 버퍼 캐시(130)의 각 영역에 새로운 파일 블록들이 진입하고자 할 때, 해당 파일 블록의 파일 블록 형식을 확인하고, 확인된 파일 블록 형식에 기초하여 새로운 파일 블록을 어느 영역에 저장할지 결정할 수 있다. 만약, 새로운 파일 블록이 결과 파일 블록인 경우, 컴퓨팅 장치(100)는 버퍼 캐시(130)에 저장하지 않고, 새로운 파일 블록이 텍스쳐 입력 파일 블록 또는 환경설정 파일 블록인 경우, 해당 파일 블록의 확장자에 기반하여 텍스쳐 영역(T영역) 또는 환경설정 영역(C영역)에 저장할 수 있다.When new file blocks enter each area of the buffer cache 130 , the computing device 100 checks the file block format of the corresponding file block, and places the new file block in a certain area based on the checked file block format. You can decide to save. If the new file block is the result file block, the computing device 100 does not store it in the buffer cache 130 , and when the new file block is a texture input file block or a configuration file block, the file block extension Based on it, it can be stored in the texture area (T area) or the environment setting area (C area).

도 5는 본 발명의 일실시예에 따른 버퍼 캐시의 파일 블록 교체 방법을 도시한 도면이다.5 is a diagram illustrating a file block replacement method of a buffer cache according to an embodiment of the present invention.

버퍼 캐시(130)는 용량이 한정되어 있으므로 높은 캐시 적중률을 위해서는 적절한 파일 블록의 교체가 이루어져야 한다. 텍스쳐 영역(T영역) 또는 환경설정 영역(C영역)에서의 파일 블록 참조는 반복 참조 패턴의 형태이므로 해당 영역들에서 파일 블록의 교체가 필요한 경우, 컴퓨팅 장치(100)는 MRU(most recently used) 알고리즘을 사용하여 가장 최근에 참조된 파일 블록을 방출할 수 있다. Since the buffer cache 130 has a limited capacity, appropriate file block replacement is required for a high cache hit ratio. Since the file block reference in the texture area (region T) or the environment setting area (region C) is in the form of a repeating reference pattern, when it is necessary to replace the file block in the corresponding areas, the computing device 100 performs the most recently used (MRU) An algorithm can be used to release the most recently referenced block of files.

이때, 만약 방출된 파일 블록이 반복 참조 패턴의 형태가 아닌 임의 참조 패턴의 형태를 가진 파일 블록일 경우, 이러한 조기 방출이 성능 저하를 발생시킬 수 있으므로 컴퓨팅 장치(100)는 해당 방출된 파일 블록을 텍스쳐 영역(T영역)의 실제 영역(T1) 또는 환경설정 영역(C영역)의 실제 영역(C1)에서 곧바로 삭제하는 대신 임의 참조 영역(O영역)에 방출된 파일 블록을 진입시키고, 각각의 반복 참조 영역의 가상영역(G1, G2)에 그 메타정보를 기록할 수 있다. At this time, if the released file block is a file block having a form of an arbitrary reference pattern rather than a form of a repeating reference pattern, since such early release may cause performance degradation, the computing device 100 processes the released file block Instead of directly deleting from the real area (T1) of the texture area (area T) or the actual area (C1) of the environment setting area (area C), the emitted file block is entered into an arbitrary reference area (area O), and each iteration The meta information can be recorded in the virtual regions G1 and G2 of the reference region.

이와는 달리 임의 참조 영역(O영역)에서 파일 블록의 교체가 필요한 경우, 컴퓨팅 장치(100)는 LRU(least recently used) 알고리즘을 사용하여 가장 오랫동안 참조되지 않은 파일 블록을 방출할 파일 블록을 결정할 수 있다. 이는 규칙성이 없는 참조 패턴에서 좋은 성능을 나타내는 가장 일반적인 알고리즘이 LRU이기 때문이다.Contrary to this, when replacement of a file block is required in an arbitrary reference area (area O), the computing device 100 may determine a file block from which to emit a file block that has not been referenced for the longest time by using a least recently used (LRU) algorithm. . This is because the most common algorithm that shows good performance in non-regular reference patterns is LRU.

그리고, 가상영역(G1, G2)에도 캐시 크기의 제한이 있으므로 새로운 메타정보를 가상영역(G1, G2)에 저장할 때 공간부족이 발생하면, 컴퓨팅 장치(100)는 가장 오래전에 가상영역(G1, G2)으로 진입한 파일 블록의 메타정보를 삭제할 수 있다.In addition, since the virtual regions G1 and G2 also have a limit on the cache size, when a space shortage occurs when new meta information is stored in the virtual regions G1 and G2, the computing device 100 is the oldest in the virtual regions G1 and G2. Meta information of the file block entered in G2) can be deleted.

도 6은 본 발명의 일실시예에 따른 버퍼 캐시의 동적 할당 방법을 도시한 도면이다.6 is a diagram illustrating a method for dynamically allocating a buffer cache according to an embodiment of the present invention.

렌더링을 통한 이미지 생성과정에서 요구되는 파일 블록이 이미 버퍼 캐시(130)에 존재하는 경우를 크게 3가지로 분류해 볼 수 있다. 첫번째 경우는 요구되는 파일 블록이 텍스쳐 영역(T영역)의 실제 영역(T1) 또는 환경설정 영역(C영역)의 실제 영역(C1)에 존재하는 경우이다. 이 경우에는 반복 참조의 루프가 버퍼 캐시(130)에 저장되어 캐시 적중이 발생한 경우로서 버퍼 캐시(130)의 관리를 위한 메타정보의 수정은 필요하지 않을 수 있다.A case in which a file block required in an image generation process through rendering already exists in the buffer cache 130 can be roughly classified into three types. The first case is a case in which a required file block exists in the actual area T1 of the texture area (T area) or the actual area C1 of the environment setting area (C area). In this case, as a case in which a cache hit occurs because a loop of repeated reference is stored in the buffer cache 130 , modification of meta information for management of the buffer cache 130 may not be necessary.

두번째 경우는 요구되는 파일 블록이 임의 참조 영역(O영역)에 존재하는 경우이다. 이 경우 컴퓨팅 장치(100)는 해당 파일 블록을 LRU 리스트 상의 우선 순위가 가장 높은 지점으로 이동시킬 수 있다.The second case is a case in which a requested file block exists in an arbitrary reference area (area O). In this case, the computing device 100 may move the corresponding file block to a point having the highest priority on the LRU list.

마지막으로 세번째 경우는 요구되는 파일 블록이 가상 영역(G1, G2)에 존재하는 경우이다. 참고로, 이는 두번째 경우와 중복해서 발생할 수 있다. 이 경우 컴퓨팅 장치(100)는 버퍼 캐시(130)의 각 영역에 대한 캐시 크기를 동적으로 조절함으로써 성능을 개선할 수 있다. 구체적으로 컴퓨팅 장치는 요구되는 파일 블록이 가상 영역(G1, G2)에 존재하는 경우 버퍼 캐시(130)의 성능을 개선하기 위하여 해당 가상영역의 크기를 1 감소시키고, 해당 실제영역의 크기를 1 증가시킬 수 있다. 이때, 컴퓨팅 장치(100)는 버퍼 캐시 크기 규칙에 따른 캐시 사이즈 S를 유지하기 위해 또다른 반복 참조 패턴을 가지는 영역의 크기를 1씩 조절할 수 있다.Finally, the third case is a case in which a required file block exists in the virtual regions G1 and G2. For reference, this may overlap with the second case. In this case, the computing device 100 may improve performance by dynamically adjusting the cache size for each region of the buffer cache 130 . Specifically, when a required file block exists in the virtual regions G1 and G2, the computing device decreases the size of the corresponding virtual region by 1 and increases the size of the corresponding real region by 1 in order to improve the performance of the buffer cache 130 . can do it In this case, the computing device 100 may adjust the size of the region having another repeating reference pattern by one in order to maintain the cache size S according to the buffer cache size rule.

예를 들어 가상 영역 G1(또는 G2)에서 요구되는 파일 블록이 발견된 경우 컴퓨팅 장치(100)는 실제 영역 T1(또는 C1)의 크기를 1증가시키는 대신, 다른 반복 참조 패턴을 가지는 실제 영역 C1(또는 T1)의 크기를 1 감소시킬 수 있다. 이에 따라 가상 영역 G2(또는 G1)의 크기 또한 1 증가시킬 수 있다.For example, when a required file block is found in the virtual region G1 (or G2), the computing device 100 increases the size of the real region T1 (or C1) by 1, instead of increasing the size of the real region C1 (or C1) having a different repeating reference pattern. Alternatively, the size of T1) may be reduced by 1. Accordingly, the size of the virtual region G2 (or G1) may also be increased by one.

도 7은 본 발명의 일실시예에 따른 버퍼 캐시 관리 방법을 플로우챠트로 도시한 도면이다.7 is a flowchart illustrating a buffer cache management method according to an embodiment of the present invention.

단계(710)에서, 컴퓨팅 장치(100)는 렌더링을 통한 이미지 생성과정에서 요구되는 환경 설정 파일 블록 및 텍스쳐 입력 파일 블록과 렌더링의 수행 결과 생성된 결과물 파일 블록에 대한 참조 패턴을 식별할 수 있다. 이때, 컴퓨팅 장치(100)는 렌더링을 수행하는 렌더링 소프트웨어가 이미지를 생성하는 과정에서 참조하는 환경 설정 파일 블록 및 텍스쳐 입력 파일 블록의 참조 빈도를 이용하여 참조 패턴을 식별할 수 있다. In operation 710 , the computing device 100 may identify a reference pattern for an environment setting file block and a texture input file block required in an image generation process through rendering, and a result file block generated as a result of rendering. In this case, the computing device 100 may identify the reference pattern by using the reference frequency of the environment setting file block and the texture input file block referenced by the rendering software performing the rendering in the process of generating the image.

단계(720)에서, 컴퓨팅 장치(100)는 식별된 참조 패턴에 기초하여 버퍼 캐시(130)를 제1 주기의 반복 참조 패턴을 가지는 것으로 식별된 텍스쳐 입력 파일 블록을 저장하기 위한 텍스쳐 영역, 제1 주기 보다 긴 제2 주기의 반복 참조 패턴을 가지는 것으로 식별된 환경 설정 파일 블록을 저장하기 위한 환경 설정 영역 및 임의 참조 영역으로 분할할 수 있다.In step 720 , the computing device 100 uses the buffer cache 130 based on the identified reference pattern as a texture area for storing the texture input file block identified as having the repeating reference pattern of the first period, the first It can be divided into an environment setting area for storing the environment setting file block identified as having a repeating reference pattern of a second period longer than the period, and an arbitrary reference area.

이때, 컴퓨팅 장치(100)는 환경 설정 파일 블록 및 텍스쳐 입력 파일 블록 각각의 워크로드에 기초하여 분할되는 텍스쳐 영역 및 환경 설정 영역의 캐시 크기를 결정할 수 있다. In this case, the computing device 100 may determine the cache size of the divided texture area and the environment setting area based on the workload of each of the environment setting file block and the texture input file block.

단계(730)에서, 컴퓨팅 장치(100)는 버퍼 캐시(130)에 저장하고자 하는 파일 블록이 수신된 경우, 텍스쳐 영역 및 환경 설정 영역 중 수신된 파일 블록의 종류와 동일한 종류의 파일 블록이 저장된 영역에 저장할 수 있다. 이때, 컴퓨팅 장치(100)는 텍스쳐 영역 및 환경 설정 영역에 저장된 파일 블록들의 교체가 필요한 경우, MRU(Most Recently Used) 알고리즘을 사용하여 가장 최근에 참조된 파일 블록을 방출하고, 새로 수신된 파일 블록을 저장할 수 있다. In step 730 , when a file block to be stored in the buffer cache 130 is received, the computing device 100 stores a file block of the same type as that of the received file block among the texture area and the environment setting area. can be stored in At this time, when it is necessary to replace the file blocks stored in the texture area and the environment setting area, the computing device 100 emits the most recently referenced file block using the MRU (Most Recently Used) algorithm, and the newly received file block can be saved.

그리고, 컴퓨팅 장치(100)는 텍스쳐 영역 및 환경 설정 영역에서 방출된 파일 블록이 임의 참조 패턴을 가지는 경우, 임의 참조 영역에 저장할 수 있다. 이때, 컴퓨팅 장치(100)는 임의 참조 영역에 저장된 파일 블록들의 교체가 필요한 경우, LRU(Least Recently Used) 알고리즘을 사용하여 가장 오랫동안 참조되지 않은 파일 블록을 방출하고, 새로 수신된 파일 블록을 저장할 수 있다.And, when the file block emitted from the texture area and the environment setting area has an arbitrary reference pattern, the computing device 100 may store it in the arbitrary reference area. At this time, when it is necessary to replace the file blocks stored in the random reference area, the computing device 100 uses the LRU (Least Recently Used) algorithm to emit the longest unreferenced file block and store the newly received file block. have.

한편, 텍스쳐 영역은 텍스쳐 입력 파일 블록이 저장되는 제1 실제 영역과 캐시 적중률에 따른 성능 기여도를 확인하기 위한 제1 가상 영역을 포함하고, 환경 설정 영역은 환경 설정 파일 블록이 저장되는 제2 실제 영역과 캐시 적중률에 따른 성능 기여도를 확인하기 위한 제2 가상 영역을 포함할 수 있다.Meanwhile, the texture area includes a first real area in which the texture input file block is stored and a first virtual area for checking the performance contribution according to the cache hit ratio, and the environment setting area is a second real area in which the environment setting file block is stored. and a second virtual region for checking performance contribution according to the cache hit ratio.

이때, 컴퓨팅 장치(100)는 텍스쳐 영역의 제1 실제 영역 및 환경 설정 영역의 제2 실제 영역에 저장된 파일 블록들의 교체가 필요한 경우, 방출되는 파일 블록의 메타데이터를 제1 가상 영역 및 제2 가상 영역에 각각 저장할 수 있다.In this case, when the file blocks stored in the first real area of the texture area and the second real area of the environment setting area need to be replaced, the computing device 100 converts the metadata of the file block to be emitted into the first virtual area and the second virtual area. Each area can be saved.

단계(740)에서, 컴퓨팅 장치(100)는 버퍼 캐시(130)에 저장된 파일 블록들의 캐시 적중률에 기초하여 상기 텍스쳐 영역 또는 환경 설정 영역의 캐시 크기를 조절할 수 있다. 구체적으로 컴퓨팅 장치(100)는 렌더링을 통한 이미지 생성과정에서 요구되는 텍스쳐 입력 파일 블록이 텍스쳐 영역의 제1 가상 영역에서 발견되는 경우, 제1 가상 영역의 캐시 크기를 감소시키고, 제1 실제 영역의 캐시 크기를 증가시키되, 버퍼 캐시 크기 규칙을 유지하도록 제2 실제 영역의 캐시 크기를 감소시키고, 제2 가상 영역의 캐시 크기를 증가시킬 수 있다. In operation 740 , the computing device 100 may adjust the cache size of the texture area or the environment setting area based on the cache hit ratio of the file blocks stored in the buffer cache 130 . Specifically, the computing device 100 decreases the cache size of the first virtual region and reduces the cache size of the first real region when a texture input file block required in the image creation process through rendering is found in the first virtual region of the texture region. The cache size may be increased, but the cache size of the second real region may be decreased to maintain the buffer cache size rule, and the cache size of the second virtual region may be increased.

한편, 본 발명에 따른 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성되어 마그네틱 저장매체, 광학적 판독매체, 디지털 저장매체 등 다양한 기록 매체로도 구현될 수 있다.Meanwhile, the method according to the present invention is written as a program that can be executed on a computer and can be implemented in various recording media such as magnetic storage media, optical reading media, and digital storage media.

본 명세서에 설명된 각종 기술들의 구현들은 디지털 전자 회로조직으로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 그들의 조합들로 구현될 수 있다. 구현들은 데이터 처리 장치, 예를 들어 프로그램가능 프로세서, 컴퓨터, 또는 다수의 컴퓨터들의 동작에 의한 처리를 위해, 또는 이 동작을 제어하기 위해, 컴퓨터 프로그램 제품, 즉 정보 캐리어, 예를 들어 기계 판독가능 저장 장치(컴퓨터 판독가능 매체) 또는 전파 신호에서 유형적으로 구체화된 컴퓨터 프로그램으로서 구현될 수 있다. 상술한 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일 블록된 또는 인터프리트된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램으로서 또는 모듈, 구성요소, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적절한 다른 유닛으로서 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 하나의 사이트에서 하나의 컴퓨터 또는 다수의 컴퓨터들 상에서 처리되도록 또는 다수의 사이트들에 걸쳐 분배되고 통신 네트워크에 의해 상호 연결되도록 전개될 수 있다.Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or combinations thereof. Implementations may be implemented for processing by, or for controlling the operation of, a data processing device, eg, a programmable processor, computer, or number of computers, a computer program product, ie an information carrier, eg, a machine readable storage It may be embodied as a computer program tangibly embodied in an apparatus (computer readable medium) or a radio signal. A computer program, such as the computer program(s) described above, may be written in any form of programming language, including compiled-blocked or interpreted languages, as a stand-alone program or as a module, component, subroutine, or computing environment. It can be deployed in any form including as other units suitable for use in A computer program may be deployed to be processed on one computer or multiple computers at one site or to be distributed across multiple sites and interconnected by a communications network.

컴퓨터 프로그램의 처리에 적절한 프로세서들은 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어들을 실행하는 적어도 하나의 프로세서 및 명령어들 및 데이터를 저장하는 하나 이상의 메모리 장치들을 포함할 수 있다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 이상의 대량 저장 장치들, 예를 들어 자기, 자기-광 디스크들, 또는 광 디스크들을 포함할 수 있거나, 이것들로부터 데이터를 수신하거나 이것들에 데이터를 송신하거나 또는 양쪽으로 되도록 결합될 수도 있다. 컴퓨터 프로그램 명령어들 및 데이터를 구체화하는데 적절한 정보 캐리어들은 예로서 반도체 메모리 장치들, 예를 들어, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 등을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로조직에 의해 보충되거나, 이에 포함될 수 있다.Processors suitable for processing a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from either read-only memory or random access memory or both. Elements of a computer may include at least one processor that executes instructions and one or more memory devices that store instructions and data. In general, a computer may include one or more mass storage devices for storing data, for example magnetic, magneto-optical disks, or optical disks, receiving data from, sending data to, or both. may be combined to become Information carriers suitable for embodying computer program instructions and data are, for example, semiconductor memory devices, for example, magnetic media such as hard disks, floppy disks and magnetic tapes, Compact Disk Read Only Memory (CD-ROM). ), an optical recording medium such as a DVD (Digital Video Disk), a magneto-optical medium such as a floppy disk, a ROM (Read Only Memory), and a RAM (RAM). , Random Access Memory), flash memory, EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), and the like. Processors and memories may be supplemented by, or included in, special purpose logic circuitry.

또한, 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 컴퓨터 저장매체 및 전송매체를 모두 포함할 수 있다.In addition, the computer-readable medium may be any available medium that can be accessed by a computer, and may include both computer storage media and transmission media.

본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.While this specification contains numerous specific implementation details, they should not be construed as limitations on the scope of any invention or claim, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. should be understood Certain features that are described herein in the context of separate embodiments may be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment may also be implemented in multiple embodiments, either individually or in any suitable subcombination. Furthermore, although features operate in a particular combination and may be initially depicted as claimed as such, one or more features from a claimed combination may in some cases be excluded from the combination, the claimed combination being a sub-combination. or a variant of a sub-combination.

마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 장치 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 장치들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.Likewise, although acts are depicted in the drawings in a particular order, it should not be construed that all acts shown must be performed or that such acts must be performed in the specific order or sequential order shown to achieve desirable results. In certain cases, multitasking and parallel processing may be advantageous. Further, the separation of the various device components of the above-described embodiments should not be construed as requiring such separation in all embodiments, and the program components and devices described may generally be integrated together into a single software product or packaged into multiple software products. You have to understand that you can.

한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.On the other hand, the embodiments of the present invention disclosed in the present specification and drawings are merely presented as specific examples to aid understanding, and are not intended to limit the scope of the present invention. It is apparent to those of ordinary skill in the art to which the present invention pertains that other modifications based on the technical spirit of the present invention can be implemented in addition to the embodiments disclosed herein.

100 : 컴퓨팅 장치
110 : 프로세서
120 : 스토리지
130 : 버퍼 캐시
100: computing device
110: processor
120 : storage
130: buffer cache

Claims (20)

버퍼 캐시 관리 방법에 있어서,
렌더링을 통한 이미지 생성과정에서 요구되는 환경 설정 파일 블록 및 텍스쳐 입력 파일 블록에 대한 참조 패턴을 식별하는 단계;
제1 주기의 반복 참조 패턴을 가지는 것으로 식별된 텍스쳐 입력 파일 블록 및 상기 제1 주기 보다 긴 제2 주기의 반복 참조 패턴을 가지는 것으로 식별된 환경 설정 파일 블록을 저장하기 위하여 상기 텍스쳐 입력 파일 블록 및 환경 설정 파일 블록 각각의 워크로드에 기초하여 버퍼 캐시를 텍스쳐 영역 및 환경 설정 영역으로 분할하는 단계;
상기 버퍼 캐시에 저장하고자 하는 파일 블록이 수신된 경우, 상기 텍스쳐 영역 및 환경 설정 영역 중 상기 수신된 파일 블록의 종류와 동일한 종류의 파일 블록이 저장된 영역에 저장하는 단계; 및
상기 버퍼 캐시에 저장된 파일 블록들의 캐시 적중률에 기초하여 상기 텍스쳐 영역 또는 환경 설정 영역의 캐시 크기를 조절하는 단계
를 포함하는 버퍼 캐시 관리 방법.
A buffer cache management method comprising:
identifying a reference pattern for an environment setting file block and a texture input file block required in an image generation process through rendering;
the texture input file block and environment to store a texture input file block identified as having a repeating reference pattern of a first period and a configuration file block identified as having a repeating reference pattern of a second period longer than the first period dividing the buffer cache into a texture area and an environment setting area based on the workload of each setting file block;
storing a file block of the same type as that of the received file block among the texture area and the environment setting area when the file block to be stored in the buffer cache is received; and
adjusting the cache size of the texture area or the environment setting area based on a cache hit ratio of the file blocks stored in the buffer cache;
A buffer cache management method, including
제1항에 있어서,
상기 식별하는 단계는,
상기 렌더링을 수행하는 렌더링 소프트웨어가 이미지를 생성하는 과정에서 참조하는 환경 설정 파일 블록 및 텍스쳐 입력 파일 블록의 참조 빈도를 이용하여 상기 참조 패턴을 식별하는 버퍼 캐시 관리 방법.
According to claim 1,
The identifying step is
A buffer cache management method for identifying the reference pattern by using the reference frequency of the environment setting file block and the texture input file block referenced in the process of generating an image by the rendering software performing the rendering.
삭제delete 제1항에 있어서,
상기 저장하는 단계는,
상기 텍스쳐 영역 및 환경 설정 영역에 저장된 파일 블록들의 교체가 필요한 경우, MRU(Most Recently Used) 알고리즘을 사용하여 가장 최근에 참조된 파일 블록을 방출하고, 새로 수신된 파일 블록을 저장하는 버퍼 캐시 관리 방법.
According to claim 1,
The saving step is
When it is necessary to replace the file blocks stored in the texture area and the environment setting area, the most recently used (MRU) algorithm is used to release the most recently referenced file block and to store the newly received file block. .
제1항에 있어서,
상기 버퍼 캐시는,
상기 텍스쳐 영역 및 환경 설정 영역 외 임의 참조 영역을 더 포함하고,
상기 저장하는 단계는,
상기 텍스쳐 영역 및 환경 설정 영역에서 방출된 파일 블록이 임의 참조 패턴을 가지는 경우, 상기 임의 참조 영역에 저장하는 버퍼 캐시 관리 방법.
According to claim 1,
The buffer cache is
Further comprising an arbitrary reference area other than the texture area and the environment setting area,
The saving step is
When the file block emitted from the texture area and the environment setting area has an arbitrary reference pattern, the buffer cache management method stores the file block in the arbitrary reference area.
제5항에 있어서,
상기 저장하는 단계는,
상기 임의 참조 영역에 저장된 파일 블록들의 교체가 필요한 경우, LRU(Least Recently Used) 알고리즘을 사용하여 가장 오랫동안 참조되지 않은 파일 블록을 방출하고, 새로 수신된 파일 블록을 저장하는 버퍼 캐시 관리 방법.
6. The method of claim 5,
The saving step is
When it is necessary to replace the file blocks stored in the random reference area, the LRU (Least Recently Used) algorithm is used to release the longest unreferenced file block and to store the newly received file block.
제1항에 있어서,
상기 텍스쳐 영역은,
상기 텍스쳐 입력 파일 블록이 저장되는 제1 실제 영역과 캐시 적중률에 따른 성능 기여도를 확인하기 위한 제1 가상 영역을 포함하고,
상기 환경 설정 영역은,
상기 환경 설정 파일 블록이 저장되는 제2 실제 영역과 캐시 적중률에 따른 성능 기여도를 확인하기 위한 제2 가상 영역을 포함하는 버퍼 캐시 관리 방법.
According to claim 1,
The texture area is
a first real area in which the texture input file block is stored and a first virtual area for checking performance contribution according to a cache hit ratio;
The environment setting area is
and a second real area in which the environment setting file block is stored and a second virtual area for checking a performance contribution according to a cache hit ratio.
제7항에 있어서,
상기 텍스쳐 영역의 제1 실제 영역 및 상기 환경 설정 영역의 제2 실제 영역에 대한 캐시 크기의 합은,
상기 텍스쳐 영역의 제1 실제 영역 및 제1 가상 영역에 대한 캐시 크기의 합과 동일하고, 상기 환경 설정 영역의 제2 실제 영역 및 제2 가상 영역에 대한 캐시 크기 합과 동일한 버퍼 캐시 크기 규칙이 적용되는 버퍼 캐시 관리 방법.
8. The method of claim 7,
The sum of the cache sizes for the first real region of the texture region and the second real region of the environment setting region is,
A buffer cache size rule equal to the sum of the cache sizes for the first real region and the first virtual region of the texture region and equal to the sum of the cache sizes for the second real region and the second virtual region of the configuration region applies How to manage the buffer cache.
제7항에 있어서,
상기 저장하는 단계는,
상기 텍스쳐 영역의 제1 실제 영역 및 환경 설정 영역의 제2 실제 영역에 저장된 파일 블록들의 교체가 필요한 경우, 방출되는 파일 블록의 메타데이터를 상기 제1 가상 영역 및 제2 가상 영역에 각각 저장하는 버퍼 캐시 관리 방법.
8. The method of claim 7,
The saving step is
A buffer for storing metadata of the file blocks to be emitted in the first virtual area and the second virtual area, respectively, when it is necessary to replace the file blocks stored in the first real area of the texture area and the second real area of the environment setting area How to manage your cache.
제8항에 있어서,
상기 조절하는 단계는,
상기 렌더링을 통한 이미지 생성과정에서 요구되는 텍스쳐 입력 파일 블록이 상기 텍스쳐 영역의 제1 가상 영역에서 발견되는 경우,
상기 제1 가상 영역의 캐시 크기를 감소시키고, 상기 제1 실제 영역의 캐시 크기를 증가시키되, 상기 버퍼 캐시 크기 규칙을 유지하도록 상기 제2 실제 영역의 캐시 크기를 감소시키고, 상기 제2 가상 영역의 캐시 크기를 증가시키는 버퍼 캐시 관리 방법.
9. The method of claim 8,
The adjusting step is
When the texture input file block required in the image creation process through the rendering is found in the first virtual region of the texture region,
Decrease the cache size of the first virtual region, increase the cache size of the first real region, and decrease the cache size of the second real region to maintain the buffer cache size rule; A buffer cache management method that increases the cache size.
버퍼 캐시 관리 방법이 적용되는 컴퓨팅 장치에 있어서,
프로세서를 포함하고,
상기 프로세서는,
렌더링을 통한 이미지 생성과정에서 요구되는 환경 설정 파일 블록 및 텍스쳐 입력 파일 블록에 대한 참조 패턴을 식별하고,
제1 주기의 반복 참조 패턴을 가지는 것으로 식별된 텍스쳐 입력 파일 블록 및 상기 제1 주기 보다 긴 제2 주기의 반복 참조 패턴을 가지는 것으로 식별된 환경 설정 파일 블록을 저장하기 위하여 상기 텍스쳐 입력 파일 블록 및 환경 설정 파일 블록 각각의 워크로드에 기초하여 버퍼 캐시를 텍스쳐 영역 및 환경 설정 영역으로 분할하며,
상기 버퍼 캐시에 저장하고자 하는 파일 블록이 수신된 경우, 상기 텍스쳐 영역 및 환경 설정 영역 중 상기 수신된 파일 블록의 종류와 동일한 종류의 파일 블록이 저장된 영역에 저장하고,
상기 버퍼 캐시에 저장된 파일 블록들의 캐시 적중률에 기초하여 상기 텍스쳐 영역 또는 환경 설정 영역의 캐시 크기를 조절하는 컴퓨팅 장치.
In the computing device to which the buffer cache management method is applied,
including a processor;
The processor is
Identifies reference patterns for configuration file blocks and texture input file blocks required in the image creation process through rendering,
the texture input file block and environment to store a texture input file block identified as having a repeating reference pattern of a first period and a configuration file block identified as having a repeating reference pattern of a second period longer than the first period Splits the buffer cache into a texture area and a preference area based on the workload of each configuration file block;
When a file block to be stored in the buffer cache is received, it is stored in an area in which a file block of the same type as the received file block is stored among the texture area and the environment setting area;
A computing device for adjusting a cache size of the texture area or the environment setting area based on a cache hit ratio of the file blocks stored in the buffer cache.
제11항에 있어서,
상기 프로세서는,
상기 렌더링을 수행하는 렌더링 소프트웨어가 이미지를 생성하는 과정에서 참조하는 환경 설정 파일 블록 및 텍스쳐 입력 파일 블록의 참조 빈도를 이용하여 상기 참조 패턴을 식별하는 컴퓨팅 장치.
12. The method of claim 11,
The processor is
A computing device for identifying the reference pattern by using the reference frequency of the environment setting file block and the texture input file block referenced in the process of generating an image by the rendering software performing the rendering.
삭제delete 제11항에 있어서,
상기 프로세서는,
상기 텍스쳐 영역 및 환경 설정 영역에 저장된 파일 블록들의 교체가 필요한 경우, MRU(Most Recently Used) 알고리즘을 사용하여 가장 최근에 참조된 파일 블록을 방출하고, 새로 수신된 파일 블록을 저장하는 컴퓨팅 장치.
12. The method of claim 11,
The processor is
When it is necessary to replace the file blocks stored in the texture area and the environment setting area, the most recently used (MRU) algorithm is used to emit the most recently referenced file block and to store the newly received file block.
제11항에 있어서,
상기 버퍼 캐시는,
상기 텍스쳐 영역 및 환경 설정 영역 외 임의 참조 영역을 더 포함하고,
상기 프로세서는,
상기 텍스쳐 영역 및 환경 설정 영역에서 방출된 파일 블록이 임의 참조 패턴을 가지는 경우, 상기 임의 참조 영역에 저장하는 컴퓨팅 장치.
12. The method of claim 11,
The buffer cache is
Further comprising an arbitrary reference area other than the texture area and the environment setting area,
The processor is
If the file block emitted from the texture area and the environment setting area has an arbitrary reference pattern, the computing device stores the file block in the arbitrary reference area.
제15항에 있어서,
상기 프로세서는,
상기 임의 참조 영역에 저장된 파일 블록들의 교체가 필요한 경우, LRU(Least Recently Used) 알고리즘을 사용하여 가장 오랫동안 참조되지 않은 파일 블록을 방출하고, 새로 수신된 파일 블록을 저장하는 컴퓨팅 장치.
16. The method of claim 15,
The processor is
When it is necessary to replace the file blocks stored in the random reference area, a computing device that uses a least recently used (LRU) algorithm to release a file block that has not been referenced for a long time and stores the newly received file block.
제11항에 있어서,
상기 텍스쳐 영역은
상기 텍스쳐 입력 파일 블록이 저장되는 제1 실제 영역과 캐시 적중률에 따른 성능 기여도를 확인하기 위한 제1 가상 영역을 포함하고,
상기 환경 설정 영역은,
상기 환경 설정 파일 블록이 저장되는 제2 실제 영역과 캐시 적중률에 따른 성능 기여도를 확인하기 위한 제2 가상 영역을 포함하는 컴퓨팅 장치.
12. The method of claim 11,
The texture area is
a first real area in which the texture input file block is stored and a first virtual area for checking performance contribution according to a cache hit ratio;
The environment setting area is
A computing device comprising: a second real area in which the configuration file block is stored; and a second virtual area for checking a performance contribution according to a cache hit ratio.
제17항에 있어서,
상기 텍스쳐 영역의 제1 실제 영역 및 상기 환경 설정 영역의 제2 실제 영역에 대한 캐시 크기의 합은,
상기 텍스쳐 영역의 제1 실제 영역 및 제1 가상 영역에 대한 캐시 크기의 합과 동일하고, 상기 환경 설정 영역의 제2 실제 영역 및 제2 가상 영역에 대한 캐시 크기 합과 동일한 버퍼 캐시 크기 규칙이 적용되는 컴퓨팅 장치.
18. The method of claim 17,
The sum of the cache sizes for the first real region of the texture region and the second real region of the environment setting region is,
A buffer cache size rule equal to the sum of the cache sizes for the first real region and the first virtual region of the texture region and equal to the sum of the cache sizes for the second real region and the second virtual region of the configuration region applies becoming a computing device.
제17항에 있어서,
상기 프로세서는,
상기 텍스쳐 영역의 제1 실제 영역 및 환경 설정 영역의 제2 실제 영역에 저장된 파일 블록들의 교체가 필요한 경우, 방출되는 파일 블록의 메타데이터를 상기 제1 가상 영역 및 제2 가상 영역에 각각 저장하는 컴퓨팅 장치.
18. The method of claim 17,
The processor is
Computing for storing the metadata of the file blocks to be emitted in the first virtual area and the second virtual area when it is necessary to replace the file blocks stored in the first real area of the texture area and the second real area of the environment setting area Device.
제18항에 있어서,
상기 프로세서는,
상기 렌더링을 통한 이미지 생성과정에서 요구되는 텍스쳐 입력 파일 블록이 상기 텍스쳐 영역의 제1 가상 영역에서 발견되는 경우,
상기 제1 가상 영역의 캐시 크기를 감소시키고, 상기 제1 실제 영역의 캐시 크기를 증가시키되, 상기 버퍼 캐시 크기 규칙을 유지하도록 상기 제2 실제 영역의 캐시 크기를 감소시키고, 상기 제2 가상 영역의 캐시 크기를 증가시키는 컴퓨팅 장치.
19. The method of claim 18,
The processor is
When the texture input file block required in the image creation process through the rendering is found in the first virtual region of the texture region,
Decrease the cache size of the first virtual region, increase the cache size of the first real region, and decrease the cache size of the second real region to maintain the buffer cache size rule; A computing device that increases the cache size.
KR1020190134607A 2019-10-28 2019-10-28 Buffer cache management method and a computing device to which the buffer cache management method are applied KR102277094B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190134607A KR102277094B1 (en) 2019-10-28 2019-10-28 Buffer cache management method and a computing device to which the buffer cache management method are applied

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190134607A KR102277094B1 (en) 2019-10-28 2019-10-28 Buffer cache management method and a computing device to which the buffer cache management method are applied

Publications (2)

Publication Number Publication Date
KR20210050237A KR20210050237A (en) 2021-05-07
KR102277094B1 true KR102277094B1 (en) 2021-07-15

Family

ID=75916982

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190134607A KR102277094B1 (en) 2019-10-28 2019-10-28 Buffer cache management method and a computing device to which the buffer cache management method are applied

Country Status (1)

Country Link
KR (1) KR102277094B1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69231011T2 (en) * 1991-02-08 2000-09-28 Fujitsu Ltd Cache memory for processing command data and data processor with the same
KR20170048721A (en) * 2015-10-27 2017-05-10 삼성에스디에스 주식회사 Method and apparatus for big size file blocking for distributed processing
KR20180015564A (en) * 2016-08-03 2018-02-13 삼성전자주식회사 Method and apparatus for performing tile-based rendering

Also Published As

Publication number Publication date
KR20210050237A (en) 2021-05-07

Similar Documents

Publication Publication Date Title
US9329988B2 (en) Parallel dynamic memory allocation using a nested hierarchical heap
US6950107B1 (en) System and method for reserving and managing memory spaces in a memory resource
US8214577B2 (en) Method of memory management for server-side scripting language runtime system
US20110246742A1 (en) Memory pooling in segmented memory architecture
KR102594657B1 (en) Method and apparatus for implementing out-of-order resource allocation
US20130007370A1 (en) Method and apparatus for minimizing working memory contentions in computing systems
US10891150B2 (en) Storage control method and storage controller for user individual service environment
US7882285B2 (en) Buffer cache management to prevent deadlocks
TW201626218A (en) Techniques for passing dependencies in an API
EP4050481A1 (en) Allocation of resources to tasks
US20170262485A1 (en) Non-transitory computer-readable recording medium, data management device, and data management method
US20170024147A1 (en) Storage control device and hierarchized storage control method
US10628301B1 (en) System and method for optimizing write amplification of non-volatile memory storage media
US20190278486A1 (en) Storage system, data management method, and data management program
US10713164B1 (en) Cache hit ratio simulation using a partial data set
US8990537B2 (en) System and method for robust and efficient free chain management
KR102277094B1 (en) Buffer cache management method and a computing device to which the buffer cache management method are applied
JP5953808B2 (en) Random number processing apparatus, random number processing method, and program
CN111813708B (en) Block mapping system and method for storage device
JP7367365B2 (en) Task execution management device, task execution management method, and task execution management program
JP6927301B2 (en) Accelerator controller, accelerator control method, and accelerator control program
JP6243884B2 (en) Information processing apparatus, processor, and information processing method
JP6254986B2 (en) Information processing apparatus, access controller, and information processing method
US20120011330A1 (en) Memory management apparatus, memory management method, program therefor
US8966220B2 (en) Optimizing large page processing

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right