KR101458029B1 - Apparatus and Method for caching the frame - Google Patents

Apparatus and Method for caching the frame Download PDF

Info

Publication number
KR101458029B1
KR101458029B1 KR1020070129116A KR20070129116A KR101458029B1 KR 101458029 B1 KR101458029 B1 KR 101458029B1 KR 1020070129116 A KR1020070129116 A KR 1020070129116A KR 20070129116 A KR20070129116 A KR 20070129116A KR 101458029 B1 KR101458029 B1 KR 101458029B1
Authority
KR
South Korea
Prior art keywords
frame
block
mode
axis
main storage
Prior art date
Application number
KR1020070129116A
Other languages
Korean (ko)
Other versions
KR20090017954A (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 US12/193,091 priority Critical patent/US8463997B2/en
Publication of KR20090017954A publication Critical patent/KR20090017954A/en
Application granted granted Critical
Publication of KR101458029B1 publication Critical patent/KR101458029B1/en

Links

Images

Classifications

    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units

Abstract

본 발명은 프레임 캐시 장치 및 방법에 관한 것으로서, 본 발명에 따른 프레임 캐시 장치 및 방법은 주 저장부로부터 캐싱될 프레임에 대한 정보를 수신하는 단계, 상기 수신된 정보를 이용하여 소정 모드의 초기 값을 설정하는 단계 및 상기 소정 모드를 이용하여 상기 주 저장부로부터 프레임을 캐싱하는 단계를 포함한다. The present invention relates to a frame cache apparatus and method, and a frame cache apparatus and method according to the present invention are characterized by receiving information on a frame to be cached from a main storage unit, and using the received information to initialize a predetermined mode And caching the frame from the main storage unit using the predetermined mode.

H.264 코덱, Image Convolution, Deblocking Filter, 모션 보상 H.264 codec, Image Convolution, Deblocking Filter, Motion compensation

Description

프레임 캐싱 장치 및 방법{Apparatus and Method for caching the frame}[0001] Apparatus and Method for Frame Caching [0002]

본 발명은 프레임 캐시 장치 및 방법에 관한 것으로, 보다 상세하게는 캐싱될 프레임에 대한 정보를 수신하고, 상기 수신된 정보를 이용하여 소정의 모드의 초기 값을 설정하고, 상기 소정의 모드를 이용하여 상기 프레임을 캐싱하는 장치 및 방법에 관한 것이다.The present invention relates to a frame cache apparatus and method, and more particularly, to a frame cache apparatus and method. More particularly, the present invention relates to a frame cache apparatus and method for receiving frame information to be cached, And an apparatus and method for caching the frame.

Cell과 같은 이질적(heterogeneous)인 다수 개의 코어(Core)를 가진 Multi-Processor SOC(Single on Chip)가 보급되었으며, 이로 인해, 다수 개의 코어를 효율적으로 처리하는 방법에 대한 요구가 증가하였다. 본원 발명은 다수 개의 코어를 효율적으로 처리하는 장치 및 방법에 관한 것이다.Multi-processor SOC (Single on Chip) having a plurality of heterogeneous cores such as Cells has been popularized, thereby increasing the need for a method for efficiently processing a plurality of cores. The present invention relates to an apparatus and a method for efficiently processing a plurality of cores.

도 1은 종래의 기술에 따른 멀티-프로세서 SoC를 나타내는 개요도이다. 도 1을 참조하면, SPE(Cell)(110_1 내지 110_8)와 같은 다수 개의 SIMD Accelerator를 가진 멀티 프로세서 SoC는 Video나 Image와 같은 Multimedia Data를 처리할 때 강점을 발휘할 수 있다. 이러한 MPSoC는 다수 개의 SPE(110_1 내지 110_8)를 포함하고 있다. 그러나, SPE(110_1 내지 110_8)는 메인 메모리(Main Memory)(130)의 Hierarchy 에 포함되어 있지 않고, 독립적인 Local Store(120_1 내지 120_8)만 포 함하고 있어, 메인 메모리(Main Memory)(130)에 접근할 때에는 DMA(Direct Memory Access)(140)를 사용해야만 한다. 또한, SPE(110_1 내지 110_8)는 256KB의 작은 용량의 Local Store(120_1 내지 120_8)가 장착되어 있으며, 상기 Local Store(120_1 내지 120_8)를 이용하여 코드 및 데이터를 모두 저장하고 처리하므로 큰 Data를 한꺼번에 읽어서 저장하는데 문제점이 있다..1 is a schematic diagram illustrating a conventional multi-processor SoC. Referring to FIG. 1, a multiprocessor SoC having a plurality of SIMD Accelerators such as SPEs (Cells) 110_1 to 110_8 can exert a strength when processing multimedia data such as Video and Image. This MPSoC includes a plurality of SPEs 110_1 to 110_8. However, the SPEs 110_1 to 110_8 are not included in the hierarchy of the main memory 130 but include only the independent local storages 120_1 to 120_8 and may be stored in the main memory 130, It is necessary to use DMA (Direct Memory Access) (140). The SPEs 110_1 to 110_8 are equipped with small-capacity Local Stores 120_1 to 120_8 having a capacity of 256 KB. By storing and processing all the codes and data using the Local Stores 120_1 to 120_8, There is a problem reading and saving.

도 2는 도 1의 멀티 프로세서에 저장된 이미지 프레임을 나타내는 도면이다. 도 2를 참조하면, 메인 메모리(130)내의 이미지 프레임(210)은 다수 개의 블록(240_1 내지 240_n)을 포함하고 있다. 블록(240_1 내지 240_n)의 상단의 시작 점을 Low Address(220)로 규정하고, 블록(240_1 내지 240_n)의 하단의 마지막 점을 High Address(230)로 규정한다. 또한, 가로 축으로는 다수 개의 블록(240_1 내지 240_n)이 점유하는 만큼 떨어져 있으며, 하나의 이미지 프레임(240_1 내지 240_n)내의 최초 블록과 마지막 블록의 간격을 프레임 스트라이드(Frame Stride)로 규정한다. 구체적으로 블록(240_1 내지 240_n)에 대해서 살펴보면, 이미지 프레임(210)과 마찬가지로, 블록 시작점(250) 및 가로축으로 블록의 간격을 표시하는 블록 폭을 포함하며, 세로 축으로도 프레임 스트라이트(Frame Stride) 만큼 간격이 떨어져 있다. 메인 메모리(130)는 전술한 블록 단위로 이미지 또는 비디오 프레임과 같은 2차원 데이터가 Raster Scan 방향으로 저장된다. 이를 하나의 프로세서(Single-Processor)로 처리할 때에는 접근에 아무런 문제가 없으나, SPE(110_1 내지 110_8)에서 이에 접근하려면 한 라인 (one pixel line) 혹은 여러 라인씩을 DMA를 통해 읽거나 써야 한다. 특히, 처리가 일정한 가로, 세로 크기의 블록 단위 로 이루어질 때에는 블록의 각 라인이 연속되어 있지 않기 때문에, 다시 표현하면 도 2에서 도시된 바와 같이 블록(240_1 내지 240_n)내에서 각 라인의 시작점들은 프레임 스트라이드(Frame Stride) 만큼의 차이를 갖고 있기 때문에, 한번의 DMA(140) 접속으로 블록(240_1 내지 240_n)을 불러오는데 문제점이 있다.2 is a diagram showing an image frame stored in the multiprocessor of FIG. Referring to FIG. 2, an image frame 210 in the main memory 130 includes a plurality of blocks 240_1 to 240_n. The start point of the upper end of the blocks 240_1 to 240_n is defined as the Low Address 220 and the end point of the lower end of the blocks 240_1 to 240_n is defined as the High Address 230. [ In addition, a plurality of blocks 240_1 to 240_n are occupied by the horizontal axis, and an interval between the first block and the last block in one image frame 240_1 to 240_n is defined as a frame stride. Specifically, as with the image frame 210, the blocks 240_1 to 240_n include a block width indicating a block interval at a block start point 250 and an abscissa, and a frame width ). In the main memory 130, two-dimensional data such as an image or a video frame is stored in the Raster Scan direction in units of blocks described above. There is no problem in accessing this when processing it as a single processor, but in order to access it from the SPEs 110_1 to 110_8, one pixel line or several lines must be read or written through DMA. In particular, when the processing is performed in units of horizontal and vertical blocks of constant length, since the respective lines of the block are not consecutive, the starting points of the respective lines in the blocks 240_1 to 240_n, as shown in FIG. 2, There is a problem in that the blocks 240_1 to 240_n are called by a single DMA 140 connection since there is a difference as much as a stride (Frame Stride).

도 3은 도 2의 이미지 프레임이 이미지 콘볼루션 된 경우 메인 메모리로부터 DMA(Direct Memory Access)처리를 하는 방식을 나타내는 도면이다. 도 3을 참조하면, Image Convolution이나 Deblocking Filter와 같은 경우 블록 별로 처리되지만, 블록은 겹치는 부분이 존재한다. 제 1블록(310)과 제 2블록(320)은 가로 방향으로 겹치는 부분이 있고, 제 1블록(310)과 제 3블록(330)은 세로 방향으로 겹치는 부분이 있다. 따라서 블록 별로 처리할 때에는 블록 각각을 읽어오되, 겹치는 부분에 대해서는 별도의 처리를 해 주어야 한다. 이는 가로로 일부 블록을 미리 읽는 방법도도 가능하지만 응용 프로그램 코드와 복잡한 DMA 코드가 섞이는 문제점이 있다. FIG. 3 is a diagram showing a method of performing DMA (Direct Memory Access) processing from the main memory when the image frame of FIG. 2 is image convoluted. Referring to FIG. 3, in the case of Image Convolution or Deblocking Filter, blocks are processed on a block-by-block basis, but overlapping portions exist in the blocks. The first block 310 and the second block 320 overlap in the horizontal direction and the first block 310 and the third block 330 overlap in the vertical direction. Therefore, when processing each block, each block should be read, but the overlapping part must be processed separately. This can be done by preloading some blocks horizontally, but there is a problem of mixing application code with complex DMA code.

도 4는 도 2의 이미지 프레임이 모션 보상(Motion Compensation)인 경우, 메인 메모리로부터 DMA(Direct Memory Access)처리를 하는 방식을 나타내는 도면이다. 도 4를 참조하면, H.264 코덱의 모션 보상(Motion Compensation)과 같은 경우에는 처리하려는 블록의 크기가 일정하지 않으며, 참조(Reference)해 오는 블록들이 일렬로 정렬(align) 되어 있지 않고 Motion Vector의 크기에 따라 읽어 올 블록 위치에 임의성(Randomness)가 포함되어 있다. 또한, H.264 코덱의 모션 보상(Motion Compensation)은 다수 개의 참조 프레임(Reference Frame)을 동시에 참조하는 것이 가능하다. 다시 설명하면, 도 4에서 도시된 바와 같이, 모션 보 상(Motion Compensation) 프레임(440)은 제 1프레임(410) 및 제 2프레임에 있는 블록 2을 참조할 수 있다. 따라서, 참조하려는 블록 주변에는 어느 정도 공간적 인접성(Spatial Locality)가 있지만 추후 어떤 블록이 접속(Access)될지 정확하게 예측하지 못하면 Double Buffering 등을 함에 있어 문제점이 있다. FIG. 4 is a diagram showing a method of performing DMA (Direct Memory Access) processing from the main memory when the image frame of FIG. 2 is motion compensation. Referring to FIG. 4, in the case of motion compensation of the H.264 codec, the size of a block to be processed is not constant, and reference blocks are not aligned in a line, The randomness is included in the block position to be read depending on the size of the block. In addition, motion compensation of the H.264 codec can simultaneously reference a plurality of reference frames. 4, the motion compensation frame 440 may refer to the first frame 410 and block 2 in the second frame. Therefore, there is a problem in double buffering if there is a certain degree of spatial proximity around the block to be referred to but it is not possible to accurately predict which block will access in the future.

본 발명은 상기와 같은 문제점을 해결하기 위해 창안된 것으로써, 본 발명이 이루고자 하는 기술적 과제는, 다수 개의 프로세서와 이질적인(heterogeneous) 구성을 갖는 멀티 프로세서 SoC 상에서 주 저장부에 저장된 대용량의 2D 이미지 프레임(Image Frame)을 캐싱(Caching) 및 프리 패칭(Prefetching)하는 프레임 캐싱 장치 및 방법을 제공한다. SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and it is an object of the present invention to provide a large-capacity 2D image frame stored in a main storage unit on a multiprocessor SoC having a plurality of processors and a heterogeneous configuration. The present invention provides a frame caching apparatus and method for caching and prefetching image frames.

또한, 본 발명이 이루고자 하는 기술적 과제는, 복잡한 DMA 전달(Transfer) 명령의 조합, 메모리의 배열(Memory Alignment) 및 Double Buffering 등을 고려하지 않고도 프로그램(Program)할 수 있는 인터페이스를 제공하는 프레임 캐싱 장치 및 방법을 제공한다. It is another object of the present invention to provide a frame caching apparatus which provides an interface capable of programming without considering complex DMA transfer command combinations, memory alignment, double buffering, And methods.

또한, 본 발명이 이루고자 하는 기술적 과제는, 다중 상호 연관성(Associativity)를 갖는 2 차원 캐시(Cache) 기술 및 공간 예측적 프리 패칭(Prefetching) 하는 프레임 캐싱 장치 및 방법을 제공한다. The present invention also provides a two-dimensional cache technique having multiple associativity and a frame caching apparatus and method for performing spatial prediction prefetching.

본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.

상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 프레임 캐시 장치 및 방법은 주 저장부로부터 캐싱될 프레임에 대한 정보를 수신하는 단계, 상기 수 신된 정보를 이용하여 소정 모드의 초기 값을 설정하는 단계 및 상기 소정 모드를 이용하여 상기 주 저장부로부터 프레임을 캐싱하는 단계를 포함한다. In order to achieve the above object, a frame cache apparatus and method according to an embodiment of the present invention includes receiving information on a frame to be cached from a main storage unit, setting an initial value of a predetermined mode using the received information And caching the frame from the main storage unit using the predetermined mode.

또한, 본 발명의 일 실시예에 따라 프레임 캐시 장치 및 방법은 주 저장부로부터 캐싱될 프레임에 대한 정보를 수신하는 저장 모듈 및 상기 수신된 정보를 이용하여 소정의 모드의 초기 값을 설정하고, 상기 소정의 모드를 이용하여 상기 주 저장부로부터 프레임을 캐싱하는 처리 모듈을 포함한다.According to another aspect of the present invention, there is provided a frame cache apparatus and method, comprising: a storage module for receiving information on a frame to be cached from a main storage; and an initial value of a predetermined mode using the received information, And a processing module for caching frames from the main storage unit using a predetermined mode.

기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다. The details of other embodiments are included in the detailed description and drawings.

상기한 바와 같은 본 발명의 프레임 캐시 장치 및 방법에 따르면, 본 발명을 사용하여 MPSoC 상에서 Multimedia Application을 구현하면, Single Core 상의 Processing Logic을 멀티프로세서 SoC로 그대로 옮겨 올 수 있어 이식성을 증가시키는 장점이 있다.According to the frame cache apparatus and method of the present invention as described above, when a multimedia application is implemented on MPSoC using the present invention, processing logic on a single core can be transferred as it is to a multi-processor SoC, .

또한, DMA 회수를 줄여서 DMA Issue Overhead가 줄어들며, 인접성(Locality) 활용으로 중복된 DMA를 피하며 Prefetching을 통해 Access 이전에 Data을 적재함으로써 Multimedia Application의 성능 향상을 꾀할 수 있는 장점이 있다.In addition, the DMA issue overhead is reduced by reducing the number of DMAs, and it is advantageous to improve the performance of the multimedia application by loading the data before the access through the prefetching by avoiding the duplicated DMA by utilizing the locality.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태 로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.

'모듈'은 소프트웨어 또는 Field Programmable Gate Array(FPGA) 또는 주문형 반도체(Application Specific Integrated Circuit, ASIC)과 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 역할들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 따라서, 일 예로서 모듈은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다.A "module" refers to a hardware component such as software or a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC), and the module performs certain roles. However, a module is not limited to software or hardware. A module may be configured to reside on an addressable storage medium and may be configured to execute one or more processors. Thus, by way of example, a module may include components such as software components, object-oriented software components, class components and task components, and processes, functions, attributes, procedures, Microcode, circuitry, data, databases, data structures, tables, arrays, and variables, as will be appreciated by those skilled in the art. The functionality provided by the components and modules may be combined into a smaller number of components and modules or further separated into additional components and modules.

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

도 5는 본 발명의 일 실시예에 따른 프레임 캐싱 장치의 개요도 이다. 5 is a schematic diagram of a frame caching apparatus according to an embodiment of the present invention.

도 5를 참조하면, 프레임 캐싱 장치(500)는 처리 모듈(515), 제어 모듈(520) 및 저장 모듈(525)를 포함한다. 또한, 프레임 캐싱 장치(500)는 데이터를 프로세싱(processing)하는 SPE(Synergistic Processing Elements)(530) 및 이미지 데이터 등을 저장하는 주 저장부(540)를 더 포함할 수 있다. 프레임 캐싱 장치(500)는 주 저장부(540)로부터 데이터 등을 전달 받거나 전달할 수 있으며, 전술한 바와 같은 DMA(Direct Memory Access)를 이용할 수 있다. 그러면, 본 발명의 구성 요소에 대해서 구체적으로 살펴 보기로 한다. Referring to FIG. 5, the frame caching device 500 includes a processing module 515, a control module 520, and a storage module 525. In addition, the frame caching apparatus 500 may further include a synergistic processing element (SPE) 530 for processing data and a main storage unit 540 for storing image data and the like. The frame caching device 500 may receive or transmit data and the like from the main storage unit 540 and may use DMA (Direct Memory Access) as described above. Hereinafter, the components of the present invention will be described in detail.

먼저, 처리 모듈(515)은 저장 모듈(530) 또는 주 저장부(540)로부터 전달된 데이터 등을 처리하는 역할을 한다. 여기서, 데이터 등은 이미지 데이터 또는 비디오 데이터 등이 포함될 수 있으며, 데이터 처리 방식의 일 예로 프레임 캐싱 등을 포함할 수 있다. First, the processing module 515 processes data transferred from the storage module 530 or the main storage unit 540. Here, the data and the like may include image data, video data, and the like, and may include frame caching, for example, as a data processing method.

구체적으로 살펴 보면, 처리 모듈(515)은 자신 또는 제어 모듈(520)을 이용하여 저장 모듈(525)에 저장되어 있는 특정 함수를 호출하고, 호출된 함수를 이용하여, 주 저장부(540)로부터 프레임의 위치 정보를 포함하는 주소 값 또는 프레임 Geometry에 대한 정보를 제공 받을 수 있다. 프레임 Geometry에 대한 정보는 블록들에 관한 정보를 포함할 수 있다. Specifically, the processing module 515 calls the specific function stored in the storage module 525 by using the control module 515 or the control module 520, and reads the specific function from the main storage unit 540 An address value including frame position information, or frame geometry information may be provided. The information about the frame geometry may include information about the blocks.

프레임의 위치 정보를 포함하는 주소 값 또는 프레임 Geometry에 대한 정보를 주 저장부(540)로부터 제공 받은 후에, 처리 모듈(515)은 주 저장부(540)의 데이터를 처리하기 위한 인터페이스를 설정한다. 인터페이스는 소정의 모드로 표현되며, 소정의 모드는 제 1 모드 및 제 2모드 중 적어도 하나를 포함할 수 있다. 제 1모드 및 제 2모드에 대해서는 도 6 및 도 9를 참조하여 후술하기로 한다. 설정된 제 1모드 및 제 2모드를 이용하여, 주 저장부(540)에 저장된 이미지 데이터를 캐싱할 수 있으며, 이에 대한 설명은 구체적인 실시예를 들어 설명하기로 한다. 또한, 제 1 모드 및 제 2 모드는 미리 설정된 Region을 이용할 수 있으며, Region은 주 저장부(540)의 프레임을 구성하는 블록에 대응 된다. 블록 및 Region에 대해서는 후술하여 설명하기로 한다. The processing module 515 sets an interface for processing data of the main storage unit 540 after receiving the address value including frame position information or the frame geometry information from the main storage unit 540. [ The interface is represented by a predetermined mode, and the predetermined mode may include at least one of a first mode and a second mode. The first mode and the second mode will be described later with reference to Fig. 6 and Fig. The image data stored in the main storage unit 540 can be cached using the set first mode and second mode, and a description thereof will be made with reference to specific embodiments. In addition, the first mode and the second mode may use a predetermined region, and the region corresponds to a block constituting a frame of the main storage unit 540. [ Blocks and regions will be described later.

제 1모드에 대한 일 실시예로, 처리 모듈(515)은 제 1모드를 이용하여 주 저장부(540)로부터 다수 개의 블록들을 포함하는 프레임을 캐싱할 수 있다. 처리 모듈(510)은 저장 모듈(525)에 저장되어 있는 InitRegion 함수를 호출하며, 호출된 InitRegion 함수는 주 저장부(540)에 저장되어 있는 다수 개의 블록을 포함하는 프레임 Geometry 및 프레임의 스트라이드(stride)를 지정한다. 프레임 Geometry 및 프레임 스트라이드가 지정된 후, 처리 모듈(510)은 저장 모듈(510)에 저장되어 있는 InitWindow 함수를 호출하여, 현재 처리할 프레임의 Geometry를 지정하고, 제 1모드를 초기화 한다. In one embodiment for the first mode, the processing module 515 may cache a frame containing a plurality of blocks from the main storage 540 using the first mode. The processing module 510 calls an InitRegion function stored in the storage module 525. The called InitRegion function is a function of a frame geometry including a plurality of blocks stored in the main storage unit 540 and a stride ). After the frame geometry and the frame stride are designated, the processing module 510 calls the InitWindow function stored in the storage module 510 to specify the geometry of the frame to be processed at present and initializes the first mode.

제 1모드가 초기화 된 후, 일 실시예로 처리 모듈(515)은 MoveWindow 함수를 호출하며, 호출된 함수는 프레임 내의 현재의 블록에 대응되는 Region을 설정하고, 설정된 Region을 제 1모드에 반영하는 역할을 한다. 따라서, 처리 모듈(515)은 프레임 내의 블록 들에 대응되는 기준 값(블록 들의 기준 값에 대응되는 Region의 기준 값)을 가지는 Region이 형성되고, 이러한 Region이 제 1모드에 반영되어 블록을 캐싱할 수 있다. 좀 더 구체적인 설명은 도 8을 참조하여 후술하기로 한다. After the first mode is initialized, in one embodiment, the processing module 515 calls the MoveWindow function, the called function sets a region corresponding to the current block in the frame, and reflects the set Region in the first mode It plays a role. Accordingly, the processing module 515 forms a Region having a reference value (a reference value of the Region corresponding to the reference value of the block) corresponding to the blocks in the frame, and the Region is reflected in the first mode to cache the block . A more detailed description will be given later with reference to Fig.

일 실시예로 처리 모듈(515)은 IterateWindow 함수를 호출하며, 호출된 함수 는 프레임 내의 현재의 블록에 대응되는 Region을 설정하고, 설정된 Region을 제 1모드에 반영한다. 따라서, 처리 모듈(515)은 프레임 내의 블록들을 반복해서 Region에 대응시키고, 이러한 Region이 제 1 모드에 반영되어 반복적으로 프레임 내의 블록들을 읽어 들인다. 다시 표현하면, 프레임 내의 다수 개의 블록들이 프레임 캐싱 장치(500)에 캐싱되어 진다. 또한, 일 예로, 반복적으로 프레임내의 블록을 캐싱하기 위해서, 프레임 Geometry에 대한 정보 중 블록에 대한 정보로부터 블록 간의 위치 관계에 대한 정보를 수신하고, 수신된 위치 정보를 이용하여 블록 간의 거리 차, 즉, X 축 증가분(XInc) 및 Y축 증가분(YInc) 값을 알 수 있으며, 이를 이용해서, 블록에 대응되는 Region을 반복하여 설정할 수 있으며, 이러한 Region을 반영한 제 1모드를 이용하여 블록들을 캐싱할 수 도 있다. 좀 더 구체적인 설명은 도 8을 참조하여 후술하기로 한다. In one embodiment, the processing module 515 calls the IterateWindow function, the called function sets a region corresponding to the current block in the frame, and reflects the set Region in the first mode. Accordingly, the processing module 515 repeatedly associates the blocks in the frame with the Region, and the Region is reflected in the first mode, thereby repeatedly reading the blocks in the frame. Expressed again, a plurality of blocks in a frame are cached in the frame caching device 500. For example, in order to cache blocks in a frame repeatedly, information on the positional relationship between the blocks is obtained from the information on the block geometry, and the difference in distance between the blocks, that is, , The X-axis increment (XInc), and the Y-axis increment (YInc) can be known, and the Region corresponding to the block can be repeatedly set. By using the first mode reflecting the Region, There is also water. A more detailed description will be given later with reference to Fig.

그 밖의 제 1모드에 대한 실시예로 처리 모듈(515)은 프리패칭(prefetching) 등을 할 수 있으며, 이에 대한 구체적인 설명은 도 8을 참조하여 후술하기로 한다.As another embodiment of the first mode, the processing module 515 may perform prefetching or the like, and a detailed description thereof will be given later with reference to FIG.

제 2모드에 대한 일 실시예로, 처리 모듈(515)은 제 2모드를 이용하여 주 저장부(540)로부터 다수 개의 블록을 포함하는 프레임을 캐싱할 수 있다. 제 1모드를 설명할 때, 설명한 바와 같이, InitRegion 함수를 이용하여 Region을 설정한다. Region이 설정된 후, 처리 모듈(510)은 저장 모듈(510)에 저장되어 있는 SetRegionBase 함수를 호출하며, 호출된 SetRegionBase 함수는 주 저장부(540)에 저장된 다수 개의 블록을 포함하는 프레임내의 블록에 대응되는 현재의 Region을 제 2 모드에 반영하고, 블록의 기준 점에 대응되는 Region의 기준 포인터를 설정하 고, 설정된 Region을 제 2모드에 반영한다. In one embodiment for the second mode, the processing module 515 may cache the frame containing the plurality of blocks from the main storage 540 using the second mode. When describing the first mode, the Region is set using the InitRegion function as described above. After the region is set, the processing module 510 calls the SetRegionBase function stored in the storage module 510, and the called SetRegionBase function corresponds to a block in a frame including a plurality of blocks stored in the main storage unit 540 The current region is reflected in the second mode, the reference pointer of the region corresponding to the reference point of the block is set, and the set region is reflected in the second mode.

전술한 제 1모드에서 설명한 바와 같이, 처리 모듈(515)은 MoveWindow 함수 및 IterateWindow 함수를 이용하여 프레임 내의 블록에 대응되는 Region을 설정하고, 설정된 Region을 제 2모드에 반영되어 블록을 캐싱할 수 있다. As described in the first mode, the processing module 515 can set a region corresponding to a block in a frame by using the MoveWindow function and the IterateWindow function, and cache the block by reflecting the set region in the second mode .

일 실시예로, 처리 모듈(515)은 다수 개의 블록을 포함하는 프레임내의 블록과 대응되는 Region을 설정하며, 설정된 Region이 제 2모드에 반영된 경우, 처리 모듈(515) 또는 SPE(530)는 제 2모드에 반영된 Region을 처리할 수 있다. 이 때, Region이 처리된 후, 처리 모듈(515)은 주 저장부(540)를 업데이트 할 수 있다. 이를 위해, 처리 모듈(515)은 UpdateRegion 함수를 호출하고, 호출된 UpdateRegion 함수는 주 저장부(540)를 업데이트 할 수 있다. 특히, 처리 모듈(515)이 블록에 대응되는 Region을 블록 보다 더 큰 영역으로 설정하면, 설정한 Region 중 블록 영역만 처리할 수 있다. 이러한 경우, 처리 모듈(515)은 캐싱된 Region 중 처리되지 않은 영역에 대해서는 Write Mask를 설정하여, 주 저장부(540)로 캐싱된 Region 중 처리되지 않은 영역을 Writeback 또는 무효로 할 수 있다. 이를 위해, 처리 모듈(515)은 FlushRegion 함수를 호출하고, 호출된 FlushRegion 함수는 캐싱된 Region 중 처리되지 않은 영역을 Writeback 또는 무효로 한다. 이에 대한 구체적인 설명은 도 11을 참조하여 후술한다.In one embodiment, the processing module 515 sets a region corresponding to a block in a frame including a plurality of blocks. When the set region is reflected in the second mode, the processing module 515 or the SPE 530 2 mode can be processed. At this time, after the region is processed, the processing module 515 can update the main storage unit 540. To this end, the processing module 515 calls the UpdateRegion function, and the called UpdateRegion function can update the main storage 540. [ In particular, if the processing module 515 sets the region corresponding to the block to a region larger than the block, only the block region of the set region can be processed. In this case, the processing module 515 may set a Write Mask for the unprocessed region of the cached region, and may write back or invalidate the unprocessed region of the region cached by the main storage unit 540. To do this, the processing module 515 calls the FlushRegion function, and the called FlushRegion function writes back or invalidates the unprocessed area of the cached Region. A detailed description thereof will be given later with reference to Fig.

그 밖의 실시예로, 처리 모듈(515)은 프리 패칭 등을 할 수 있으며, 이에 대한 구체적인 설명은 도 10을 참조하여 후술하기로 한다. In another embodiment, the processing module 515 may perform prefetching or the like, and a detailed description thereof will be described later with reference to FIG.

제어 모듈(520)은 프레임 캐싱 장치(500)내의 모든 구성요소를 관리하고 제 어하는 역할을 한다. 또한, 제어 모듈(520)은 처리 모듈(510)이 일정한 작업을 수행하는데 필요한 함수들을 저장 모듈(525)로부터 호출하여 처리 모듈(510)에 제공하는 역할을 한다. The control module 520 serves to manage and control all components in the frame caching device 500. In addition, the control module 520 functions to call the functions required for the processing module 510 to perform a certain task from the storage module 525 and to provide the functions to the processing module 510.

저장 모듈(525)는 제 1모드 및 제 2모드를 이용하여 2-D Image Frame의 일부를 DMA를 통해 프레임 캐싱 장치(500)로 가져오거나 주 저장부(540)로 Writeback하는 다수 개의 함수가 포함된 라이브러리(library) 및 이미지 프레임 등을 포함하는 데이터를 저장하는 역할을 한다. 여기서, 라이브러리 및 데이터를 분리하여 저장할 수 있으며, 라이브러리를 저장하는 제 1 저장 모듈 및 데이터를 저장하는 제 2 저장 모듈을 포함할 수 있다.The storage module 525 includes a plurality of functions for fetching a part of the 2-D Image Frame to the frame caching device 500 via DMA or writing back the main frame to the main storage 540 using the first mode and the second mode A library, and an image frame. Here, the library and the data may be separately stored, and may include a first storage module for storing the library and a second storage module for storing the data.

먼저, 라이브러리에서 지원하는 함수에 대해 살펴 보면, InitRegion, InitWindow, MoveWindow, IterateWindow, SetRegionBase, UpdateRegion, FlushRegion 등을 포함하며, 각각의 함수의 역할은 전술한 바와 같다. First, the functions supported by the library are described as follows: InitRegion, InitWindow, MoveWindow, IterateWindow, SetRegionBase, UpdateRegion, FlushRegion, etc., and the function of each function is as described above.

저장 모듈(525)에 저장되는 데이터는 이미지 프레임 또는 비디오 프레임을 포함할 수 있다. 또한, 저장 모듈은 다수 개의 슬롯을 포함할 수 있으며, 다수 개의 슬롯을 이용하여 데이터를 저장할 수 있다. The data stored in the storage module 525 may include an image frame or a video frame. In addition, the storage module may include a plurality of slots, and may store data using a plurality of slots.

SPE(530)는 일종의 프로세서로써, DMA를 통해 주 저장부(540)와 연결되어 주 저장부(540)에 저장된 데이터를 읽어 들여 처리할 수 있으며, 주 프로세서와는 독립적으로 운영될 수 있다. 또한, 주 저장부(540)로부터 읽어 들인 데이터를 일시적으로 저장 모듈(535)에 저장할 수 있으며, 처리 모듈(515)를 통해 캐싱된 데이터를 처리할 수 도 있다. The SPE 530 is a kind of processor and can be connected to the main storage unit 540 via DMA to read and process data stored in the main storage unit 540 and can be operated independently from the main processor. In addition, the data read from the main storage unit 540 may be temporarily stored in the storage module 535, and the data cached through the processing module 515 may be processed.

주 저장부(540)는 대 용량의 메모리로써, 데이터 등을 저장하는 역할을 하며, SPE(530) 또는 처리 모듈(510)의 요청에 따라 저장된 데이터를 전달 또는 수신 받는 역할을 한다. The main storage unit 540 is a large capacity memory for storing data or the like and transmits or receives the stored data at the request of the SPE 530 or the processing module 510. [

도 6은 프레임 캐싱 장치가 이미지 프레임을 처리하기 위한 Region를 나타내는 도면이다.6 is a diagram showing a region for processing an image frame by a frame caching apparatus.

도 6을 참조하면, 도 5를 설명할 때, 전술한 Region에 대해서 구체적으로 살펴보기로 한다. 처리 모듈(515)은 주 저장부(540)에 저장되어 있는 프레임에 접근하기 위해, 프로세싱(processing)의 기준이 되는 블록을 기반으로 한 Region 구조의 API (Application Programming Interface) 세트를 규정한다. Referring to FIG. 6, when describing FIG. 5, the Region will be described in detail. The processing module 515 specifies a set of application programming interfaces (APIs) of a region structure based on a block serving as a reference for processing in order to access a frame stored in the main storage unit 540.

여기서, 블록은 프레임을 구성하는 단위로써, 소정의 기준 점을 기준으로 X 축 방향 및 Y축 방향으로 일정한 크기를 가지며, X축 방향은 기준 점을 기준으로 가로 축 방향이고, Y축 방향은 X축에 수직인 방향이며, X축과 Y축은 하나의 평면을 형성할 수 있다. 블록의 형태는 이에 한정되지 않으며, 해당 기술분야에 속하는 평균의 지식을 가진 자가 변경할 수 있는 범위로 확장될 수 있다. 또한, 프레임내의 블록들은 블록 간에 상호 중첩될 수 있어, 블록 간에 중첩된 영역이 발생될 수 도 있다. Here, the block is a unit constituting a frame, and has a predetermined size in the X-axis direction and the Y-axis direction with respect to a predetermined reference point, the X-axis direction is the transverse axis direction with respect to the reference point, and the Y- Axis, and the X-axis and the Y-axis can form one plane. The shape of the block is not limited thereto and can be extended to a range that can be changed by an average knowledge belonging to the technical field. In addition, blocks in a frame can be mutually superposed between blocks, so that an overlapped area between blocks can be generated.

프레임 캐싱 장치(500)가 주 저장부(540)로부터 프레임을 캐싱할 때, 프레임 캐싱 장치(500) 내의 저장 모듈(525)은 저장 공간이 작기 때문에, 주 저장부(540)내의 프레임을 바로 읽어 들일 수 없으며, 블록 단위로 캐싱하게 된다. 그러나, 프레임 캐싱 장치(500)는 캐싱된 블록을 용이하게 처리하기 위해, 전술한 바와 같 은 제 1모드 및 제 2모드와 같은 인터페이스를 제공하며, 그의 기본 단위인 Region을 규정한다. When the frame caching apparatus 500 caches a frame from the main storage unit 540, the storage module 525 in the frame caching apparatus 500 reads the frame in the main storage unit 540 immediately They are cached on a block-by-block basis. However, the frame caching device 500 provides an interface, such as the first mode and the second mode, as described above, and defines the basic unit thereof, in order to easily process the cached block.

Region에 대해 구체적으로 살펴보면, Region은 기준 점(610)을 기준으로 하여 X축 및 Y축으로 구분되는 2차원 평면을 형성할 수 있다. 또한, 도 6에서 도시된 바와 같이, 전술한 2차원 평면은 기준 점을 기준으로 X축의 음의 방향과 Y축의 음의 방향으로 확장될 수 있다. 또한, 전술한 2차원 평면은 기준 점을 기준으로 X축 및 Y축을 따라 좌표로써 규정될 수 있다. 따라서, 도 6에 도시된 바와 같이, X축의 음의 좌표(620), Y축의 음의 좌표(640), X축의 최대 길이(630) 및 Y축의 최대 길이(650)을 포함하는 Region을 규정할 수 있다. Specifically, the region can form a two-dimensional plane separated from the reference point (610) by the X-axis and the Y-axis. Further, as shown in FIG. 6, the above-mentioned two-dimensional plane can be extended in the negative direction of the X-axis and the negative direction of the Y-axis with reference to the reference point. Further, the above-described two-dimensional plane can be defined as coordinates along the X-axis and the Y-axis with reference to the reference point. 6, a region including negative coordinates 620 of the X-axis, negative coordinates 640 of the Y-axis, a maximum length 630 of the X-axis, and a maximum length 650 of the Y-axis is defined .

주 저장부(540)는 데이터를 프레임 형태로 저장하고 있으며, 저장된 프레임은 전술한 바와 같이 블록 단위로 저장된다. 프레임 내의 이웃하는 블록간에는 중첩된 영역이 발생되는 경우, 음의 인덱싱(indexing)을 수행할 필요성이 있으며, 이를 위해, Region은 X축 및 Y축 방향으로 음의 영역을 형성하고 있으며, 이를 사용해서 음의 인덱싱을 수행함으로써 보다 효율적으로 주 저장부(540)로부터 데이터를 불러들일 수 있다. The main storage unit 540 stores data in a frame format, and the stored frames are stored in block units as described above. If overlapping regions are generated between neighboring blocks in a frame, it is necessary to perform negative indexing. For this purpose, a region forms a negative region in the X-axis and Y-axis directions, It is possible to retrieve data from the main storage unit 540 more efficiently by performing negative indexing.

Region의 일 실시예로, 도 7을 참조하여 제 1모드에 대해 설명하기로 한다. In one embodiment of the region, the first mode will be described with reference to FIG.

도 7은 프레임 캐싱 장치(500)가 프레임을 처리하기 위한 제 1모드의 설정을 나타내는 도면이다. 7 is a diagram showing a setting of a first mode for frame caching apparatus 500 to process a frame.

도 7을 참조하면, 제 1모드(700)는 도 6에서 전술한 바와 같이, 기준 점(710)을 정하면, 기준 점(710)을 기준으로 X축의 최대 거리, 즉 maxX(730), Y축 의 최대거리, 즉 maxY(750) 및 주 저장부(540) 내의 연속적인 어레이(array) 요소들 간의 Stride(740)를 결정한다. 또한, 제 1모드(700)는 도 6에서 도시된 Region의 특징을 모두 포함할 수 있다. 7, when the reference point 710 is defined as described above with reference to FIG. 6, the first mode 700 determines the maximum distance of the X axis, that is, maxX (730), Y axis MaxY 750 and the stride 740 between consecutive array elements in the main storage 540. The maximum distance of the elements in the main storage 540, In addition, the first mode 700 may include all the features of Region shown in FIG.

또한, 도 4에서 전술한 바와 같이, 제 1모드(700)를 시작하기 위해서는 InitWindow 함수를 호출하여 윈도우 Geometry를 설정해 주어야 한다. 주 저장부(540)에 저장되어 있는 데이터의 Remote Stride(730) 값은 윈도우 Geometry 지정 시에 알려진 값을 사용하며, maxX(740)와 maxY(750) 값은 프레임(Frame) 형태를 감안하여 지정한다. 특히, 경계(Border)(760)가 존재하는 경우에는 기준 점(710) 및 Geometry의 최대 거리 maxX(740) 및 maxY(750) 값을 조정하여 경계(Border)(760)의 형태를 처리 모듈(510)에게 제공할 수 있다.In addition, as described above with reference to FIG. 4, in order to start the first mode 700, the window geometry must be set by calling the InitWindow function. The Remote Stride 730 value of the data stored in the main storage unit 540 uses a known value when designating the window geometry and the values of maxX 740 and maxY 750 are set in consideration of the frame type do. Particularly, if there is a border 760, the reference point 710 and the maximum distance maxX 740 and maxY 750 of the geometry are adjusted to change the shape of the border 760 to a processing module 510).

제 1모드(700)가 초기화 되면, Region의 이동(move) 또는 반복(Iteration)하여 블록을 캐싱할 수 있다. Once the first mode 700 is initialized, the block may be cached by moving or iterating regions.

일 실시예로, Region을 이동 시키는 경우에는 기준 점(710)의 위치를 (0, 0)으로 간주하고 기준 점(710)에 대한 상대 좌표를 계산하여, 새로운 좌표를 기준 점(720)으로 생성하여 Region을 이동시킬 수 있다. 이동된 Region을 이용하여 대응되는 블록을 캐싱할 수 있다. In one embodiment, when the region is moved, the position of the reference point 710 is regarded as (0, 0), relative coordinates of the reference point 710 are calculated, and a new coordinate is generated as the reference point 720 To move the region. The corresponding block can be cached using the moved region.

일 실시예로, Region의 반복(Iteration)은 Region을 연속적으로 이동시켜서 주 저장부(540) 내의 프레임 Geometry내에 지정된 블록을 처리하도록 하는 것을 의미하며, 이에 대한 구체적인 설명은 도 8을 참조하여 설명하기로 한다. In one embodiment, Iteration of a region means that a region is successively moved to process a designated block within a frame geometry in the main storage unit 540. A specific description thereof will be described with reference to FIG. 8 .

도 8은 도 7의 제 1모드가 Region의 반복하는 방식을 나타내는 도면이다. FIG. 8 is a diagram showing a manner in which the first mode of FIG. 7 is repeated in the Region.

도 8을 참조하면, 도 7에 전술한 내용을 모두 포함할 수 있으며, 본 발명의 특징에 대해서만 설명하기로 한다. 주 저장부(540)내의 프레임의 Region을 연속적으로 이동시켜서, 프레임 Geometry내에 지정된 블록을 처음부터 끝까지 순차적으로 블록을 처리할 수 있도록 해 준다. Referring to FIG. 8, FIG. 7 may include all of the above-described contents, and only the features of the present invention will be described. The region of the frame in the main storage unit 540 is continuously moved so that the block specified in the frame geometry can be sequentially processed from the beginning to the end.

또한, Region의 가로 또는 세로 길이보다 작은 xInc(810), yInc(820) 값을 지정하면 중첩된 Region의 효과를 낼 수 있다.Also, if you specify xInc (810), yInc (820), which is smaller than the width or height of Region, you can get the effect of nested region.

블록이 서로 중첩되게 규정된 경우에는 캐시 영역이 이동할 때 업데이트 된 영역이 프레임 캐싱 장치(500) 상의 처리 모듈(515)에게 항상 최신 값이 보여야 하고, 주 저장부(540)에는 최종 값, 즉, 더 이상 변경되지 않는 값이 업데이트 되어야 한다. 따라서, 캐시 영역이 이동할 때에는 겹쳐진 부분을 다음 캐시에서 읽어 들인 영역의 앞부분에 Overwrite하여, Correctness를 보장할 수 있다. 또한, 반복적인(Iterative) 처리는 Region의 위치 이동 예측이 쉽고 작은 Double Buffer 크기로도 좋은 효과를 보일 수 있다. When the blocks are defined to overlap with each other, the updated area should always be displayed to the processing module 515 on the frame caching device 500 when the cache area moves, and the main storage 540 stores the final value, Values that are no longer changed should be updated. Therefore, when the cache area moves, the overlapped part is overwritten at the beginning of the area read from the next cache, thereby ensuring correctness. In addition, iterative (Iterative) processing is easy to predict the location movement of the region and can be effective even with a small double buffer size.

일 실시예로, 도 8에서 도시된 바와 같이 현재 캐시된 영역에 블록 1,2 ··· n 가 존재하고 있을 때에, 다음 접속(Access)될 블록들을 포함하는 영역(프리패칭 영역(830))을 미리 읽어 들여(Prefetching) 다음 번 접속(Access)할 때에 부가적인 DMA 지연 없이 바로 처리가 가능하도록 한다. In one embodiment, as shown in FIG. 8, when blocks 1, 2 ... n exist in the current cached area, the area including the blocks to be next accessed (prefetching area 830) Prefetching is performed in the next access (access) without any additional DMA delay.

Region의 일 실시예로, 제 2모드에 대해 도 9를 참조하여 설명하기로 한다.In one embodiment of the region, the second mode will be described with reference to FIG.

도 9는 이미지 프레임 처리 장치가 이미지 프레임을 처리하기 위한 제 2모드의 설정을 나타내는 도면이다. 9 is a diagram showing a setting of a second mode for processing an image frame by the image frame processing apparatus.

도 9를 참조하면, 제 1모드와는 달리, 프레임의 경계가 지정되지 않았기 때문에 주 저장부(540)에서 어떤 위치를 지정하여도 읽어들일 수 있다. 또한, 제 1모드와 달리 규칙적인 Region의 이동을 가정하지 않기 때문에 Region의 기준 포인터만을 지정하도록 한다. Referring to FIG. 9, unlike the first mode, since a boundary of a frame is not specified, a main storage 540 can be used to read any position. Also, unlike the first mode, since it does not assume regular region movement, only the reference pointer of the region is specified.

제 2모드에서는 SetRegionBase의 인터페이스를 사용하여 프레임 Geometry가 지정되지 않은 사각형 블록(920_1 내지 920_3)을 주 저장부(540)로부터 읽어들인다. In the second mode, the rectangular blocks 920_1 to 920_3 to which the frame geometry is not specified are read from the main storage unit 540 using the SetRegionBase interface.

주로 Motion Compensation과 같은 경우에 사용되는데, 도 9에서 도시된 바와 같이, 저장 모듈(525)내의 여러 슬롯(Slot)(910_1 내지 910_3)을 마련해 두고 그 중에서 어떤 블록이 지정되었을 경우 주 저장부(540)로부터 인접 영역을 한꺼번에 읽어 들이고, 읽어들인 영역을 Region에 반영하여 슬롯에 저장한다. 9, several slots (Slots) 910_1 to 910_3 in the storage module 525 are provided, and when any block is designated, the main storage unit 540 ), Reads the adjacent area at once, reflects the read area to the region, and stores it in the slot.

Motion Compensation의 경우에는 인접된 영역에 대한 확률적인 공간적 인접성(Spatial Locality)이 있기 때문에, 가로, 세로 및 캐시 팩터(cache Factor) (Region의 x, y 크기보다 큰 값을 사용한다)를 이용해서 최대한 한번의 캐시된 영역 안에서 Hit가 많이 일어나도록 한다. 그러나, 저장 모듈(525)가 제한되어 있고 DMA 지연 발생하기 때문에 너무 큰 영역을 한꺼번에 읽을 수는 없으므로, Local-Stride를 바꾸지 않는 범위에서 캐시 크기를 가변적으로 결정한다. 즉, 캐시의 한 슬롯(910_1 내지 910_3)이 대체(Replace)되기 전에 캐쉬 된 영역 내에서 접속(Access) 된 위치를 관찰함으로써 보다 정확한 캐시 팩터(Cache Factor)를 결정할 수 있다.In the case of Motion Compensation, since there is a probabilistic spatial adjacency (Spatial Locality) for the adjacent region, it is possible to maximize the spatial factor by using the width, height, and cache Factor Allows a lot of Hit in a single cached area. However, since the storage module 525 is limited and the DMA delay occurs, an area that is too large can not be read at once, and thus the cache size is variably determined within a range that does not change the Local-Stride. That is, a more accurate cache factor can be determined by observing the accessed positions within the cached area before one slot 910_1 through 910_3 of the cache is replaced.

또한, 제 2모드에서는 연관성(Associativity)를 제공한다. 즉, 다수 개의 슬롯(Slot)(910_1 내지 910_3)을 두어서 각각 서로 다른 주 저장부(540)의 영역을 캐시할 수 있도록 한다. Motion Compensation의 경우 대부분의 비디오 코덱이 양방향 예측(Prediction)을 제공하고 있으며, 특히, H.264는 다수 개의 프레임에 대한 참조가 필요하다. 따라서, 연관성을 부여하면 하나의 슬롯이 교체(Replace)되지 않고도 다수 개의 프레임의 영역들을 캐시하는 것이 가능하다. 각 슬롯은 LRU (Least Recently Used) 방법 등의 교체(Replacement) 방법을 사용하여 교체한다.In the second mode, it provides associativity. That is, a plurality of slots 910_1 to 910_3 may be disposed to cache different regions of the main storage unit 540. In the case of Motion Compensation, most video codecs provide bidirectional prediction, and in particular, H.264 requires reference to multiple frames. Therefore, it is possible to cache the areas of a plurality of frames without replacing one slot by associating them. Each slot is replaced by a replacement method such as a Least Recently Used (LRU) method.

도 10은 도 9의 제 2모드가 프리패칭(prefetching)하는 방식을 나타내는 도면이다. FIG. 10 is a diagram illustrating a method of prefetching the second mode of FIG.

도 10을 참조하면, 제 2 모드가 프리패치(Prefetch)를 할 경우에는, 제 1모드처럼 정확한 힌트가 없으므로 제 2모드에서는 예측에 기반한 프리패치를 수행한다. 도 10에서 도시된 바와 같이, 인접한 캐시 영역의 차이를 추적하여 (도 10에서는 제 1 Region(1050_1)과 제 2 Region(1050_2)의 위치 차이) 인접한 캐시 영역의 차이 V를 저장한다. 구체적으로 설명하면, 다음 예측되는 영역은 현재 캐시된 영역의 주소 + V 값을 사용하여, 프리패칭 할 영역인 제 3 Region(1059_3)을 예측하여, LRU 방법에 의해 대체될 대상의 슬롯에 프리패치해 둔다.Referring to FIG. 10, when the second mode prefetches, there is no precise hint as in the first mode, so the second mode performs pre-prediction based on the prediction. As shown in FIG. 10, the difference between the adjacent cache areas is tracked (the difference in position between the first region 1050_1 and the second region 1050_2 in FIG. 10), and the difference V between the adjacent cache areas is stored. Specifically, the next region to be predicted is predicted from the third region 1059_3, which is an area to be prefetched, by using the address + V value of the current cached region, and prefetched to the slot of the object to be replaced by the LRU method I will.

도 11은 본 발명의 일 실시예에 따른, Write Mask 방식을 나타내는 도면이다. 11 is a diagram illustrating a write mask method according to an embodiment of the present invention.

도 11을 참조하면, 주 저장부(540)에 저장된 프레임(1110)내에 블록의 크기(1130)가 일정하지 않은 경우, 전술한 제 1모드 또는 제 2모드를 이용하여 프레 임(1110)내에 블록(1130)을 읽어 들일 때, Region(600)의 X축 최대값(630) 및 Y축 최대값(650)을 최대치로 설정하여, 크기가 일정하지 않은 블록보다 더 크게 규정된 사각형의 Region(600)으로 읽어 들인다. 읽어 들인 Region(600)은 저장 모듈(525)내의 슬롯(1140)에 저장된다. 이러한 경우, 프레임 캐싱 장치(500)는 슬롯으로 읽어 들인 블록을 Write할 경우에는 블록의 경계에서 Coherence를 해치지 않기 위해서, Write Mask를 사용할 수 있다. 특히, Write Mask 방식은 H.264의 MC처럼 블록의 크기가 일정하지 않은 경우에 더욱 효율적이다. 11, when the size 1130 of the block 1130 is not constant in the frame 1110 stored in the main storage unit 540, The maximum value 630 of the X axis and the maximum value of the Y axis 650 of the region 600 are set to the maximum value and the region 600 of the rectangle defined to be larger than the non- ). The read Region 600 is stored in the slot 1140 in the storage module 525. In this case, the frame caching device 500 can use Write Mask to write a block read into the slot, so as not to damage the coherence at the boundary of the block. In particular, the Write Mask method is more efficient when the size of the block is not constant, such as H.264 MC.

구체적으로 Write Mask 방식을 설명하면, Region(600)은 실제 데이터가 저장된 블록(1130)보다 더 큰 영역을 읽어 들이고, 읽어 들인 Region(600)의 일부(즉, 프레임의 블록에 해당(1150))만 Write하는 경우에 이를 그대로 주 저장부(540)에 업데이트하면, 인접 영역(즉, Region의 영역으로 읽어 들인 내용 중 블록으로 지정되지 않은 영역(1160))의 데이터는 파괴된다. 따라서, 이러한 문제점을 해결하기 위해서, 이미 선언된 최대 크기의 Region(600) 이내의 크기에서 실제로 Write된 크기를 프레임 캐싱 장치(500)의 처리 모듈(515)에 알려주면, Write 되지 않은 영역에 Dirty Bit(1160)를 설정한다. 이로 인해, 실제로 Write한 영역에 대한 정보만 주 저장부(540)에 전달되고, 정보를 전달받은 주 저장부(540)는 이러한 정보를 이용하여 주 저장부(540)를 업데이트 한다. 따라서, 주 저장부(540)의 인접 영역의 데이터가 파괴되는 문제점을 해결할 수 있다. 다만, 이러한 Write Mask 방식은 사용자의 설정에 따라 적용 여부를 결정할 수 있다. More specifically, the region 600 reads a region larger than the block 1130 in which the actual data is stored, and reads a part of the read region 600 (that is, the block 1150 corresponding to the block of the frame) The data in the adjacent area (that is, the area 1160 not designated as a block among the contents read into the area of the region) is destroyed. Accordingly, in order to solve such a problem, if the processing module 515 of the frame caching device 500 notifies the actual written size within the size of the region 600 having the maximum size already declared, Bit 1160 is set. Therefore, only the information about the actually written area is transmitted to the main storage unit 540, and the main storage unit 540 receiving the information updates the main storage unit 540 using this information. Therefore, it is possible to solve the problem that the data in the adjacent area of the main storage unit 540 is destroyed. However, the Write Mask method can be determined according to the setting of the user.

도 12는 본 발명의 일 실시예에 따른, 제 1모드를 이용하여 이미지 프레임을 처리하는 방법을 나타내는 도면이다. 12 is a diagram illustrating a method of processing an image frame using a first mode, according to an embodiment of the present invention.

도 12를 참조하면, 주 저장부(540)로부터 캐싱될 프레임에 대한 정보를 수신한다(S1210). 전술한 바와 같이, 프레임 캐싱 장치(500)는 주 저장부(540)에 저장된 프레임의 Geometry를 설정하기 위해, Region을 규정한다. 프레임은 다수 개의 블록들로 구성되며, 규정된 Region과 블록을 대응시켜서 프레임을 읽어 들일 수 있다. 전술한 방식으로 규정된 Region을 이용하여 프레임의 Geometry를 설정하고, 주 저장부(540)로부터 캐싱될 프레임의 기하학적 배열에 대한 정보를 받는다. 여기서, 상기의 정보는 제 1모드의 초기 값을 설정하는데 필요한 정보를 포함하며, 일 예로 프레임의 위치 정보를 포함하는 주소 값 및 프레임의 Geometry에 대한 정보 등을 포함할 수 있다. Referring to FIG. 12, information on a frame to be cached is received from the main storage unit 540 (S1210). As described above, the frame caching device 500 specifies a Region in order to set the geometry of the frame stored in the main storage unit 540. [ A frame is composed of a plurality of blocks, and a frame can be read by associating a predetermined region with a block. Sets the geometry of the frame using the Region defined in the above manner, and receives information on the geometry of the frame to be cached from the main storage unit 540. Here, the information includes information necessary to set the initial value of the first mode, and may include, for example, an address value including frame position information, and information on frame geometry.

전술한 프레임에 대한 정보를 전달 받으면, 상기 수신된 정보를 이용하여 제 1모드의 초기 값을 설정한다(S1220). 제 1 모드는 전술한 프레임의 Geometry 기준 값에 대응되는 값을 제 1모드의 기준 값으로 설정한다. 또한, 제 1모드는 프레임의 Geometry를 설정하는데 이용한 다수 개의 Region과 대응되는 영역을 설정하여, 즉, X축의 최대 값 및 Y축의 최대 값이 설정된 2차원 영역으로 설정되며, 이러한 영역은 프레임 Geometry에 대한 상대 좌표로 설정되어 이용될 수 있다. If the information on the frame is received, the initial value of the first mode is set using the received information (S1220). In the first mode, a value corresponding to the geometry reference value of the frame is set as the reference value of the first mode. In the first mode, a region corresponding to a plurality of regions used for setting the geometry of the frame is set, that is, a two-dimensional region in which the maximum value of the X axis and the maximum value of the Y axis are set. Can be set and used as relative coordinates.

제 1 모드의 초기 값이 설정된 후, 상기 제 1모드를 이용하여 주 저장부(540)로부터 프레임을 캐싱 한다(S1230). 전술한 바와 같이, 제 1모드는 프레임의 Geometry와 대응되는 관계로 설정되어 있고, 더욱이, 프레임의 Geometry는 Region에 대응되는 블록 단위로 구성되어 있어, 이미지 처리장치(500)는 제 1모드 를 이용하여 프레임내의 블록을 하나의 Region 단위로 읽어 들인다. 이에 대해서는 설정에 따라, 다수 개의 블록을 하나의 Region을 읽어올 수 도 있다. 다시 표현하면, 한 번에 캐싱하는 단위는 하나 또는 그 이상의 블록일 수 도 있다. After the initial value of the first mode is set, the main storage unit 540 caches the frame using the first mode (S1230). As described above, the first mode is set to correspond to the geometry of the frame, and furthermore, the geometry of the frame is configured in units of blocks corresponding to the region, and the image processing apparatus 500 uses the first mode And reads the block in the frame in one Region unit. In this case, it is possible to read one region of a plurality of blocks according to the setting. Again, the unit of caching at a time can be one or more blocks.

일 실시예로, 전술한 바와 같이, 프레임 캐싱 장치(500)는 제 1모드를 이용하여 프레임의 Geometry에 대한 위치를 이동시켜서, 프레임의 일부를 캐싱할 수 있다. In one embodiment, as described above, the frame caching device 500 may use a first mode to move a position for the geometry of a frame, thereby caching a portion of the frame.

일 실시예로, 전술한 바와 같이, 프레임 캐싱 장치(500)는 제 1 모드를 이용하여 프레임내의 블록을 반복하여 읽어들 일 수 있다.In one embodiment, as described above, the frame caching device 500 may repeatedly read blocks within a frame using the first mode.

일 실시예로, 전술한 바와 같이, 프레임 캐싱 장치(500)는 제 1모드를 이용하여 프레임내의 블록을 읽어들이면서, 다음에 읽어들인 블록을 프리패치(prefetch)할 수 도 있다. In one embodiment, as described above, the frame caching device 500 may prefetch the next read block while reading the block in the frame using the first mode.

주 저장부(540)로부터 프레임을 읽어 들인 후, 상기 캐싱된 프레임을 처리한다(S1240). 처리는 캐싱된 프레임의 일부를 write 하는 것 등을 포함할 수 있다. 처리 모듈(515)는 캐싱된 프레임 일부를 자신이 처리하거나 또는 SPE(530)에 전달하여 처리할 수도 있다. After reading the frame from the main storage unit 540, the cached frame is processed (S1240). The processing may include writing a portion of the cached frame, and the like. The processing module 515 may process some of the cached frames either by itself or by passing them to the SPE 530 for processing.

캐싱된 프레임을 처리한 후, 주 저장부(540)에 처리할 프레임이 존재 하는지를 확인한다(S1250). After processing the cached frame, it is confirmed whether there is a frame to be processed in the main storage unit 540 (S1250).

처리할 프레임이 존재하는 경우에는, S1230 단계로 이동하여 프레임을 캐싱한 후, 전술한 단계를 처리할 프레임이 존재하지 않을 때까지 반복한다. 그 후, 처리할 프레임이 존재하지 않으면 프로세스를 종료 한다. If there is a frame to be processed, the process moves to step S1230 and caches the frame, and repeats the above steps until there is no frame to process. Thereafter, if there is no frame to be processed, the process is terminated.

처리할 프레임이 존재하지 않는 경우에는, 프로세스를 종료 한다. If there is no frame to be processed, the process is terminated.

도 13은본 발명의 일 실시예에 따른, 제 2 모드를 이용하여 이미지 프레임을 처리하는 방법을 나타내는 도면이다.13 is a diagram illustrating a method of processing an image frame using a second mode, according to an embodiment of the invention.

주 저장부(540)로부터 캐싱될 프레임의 위치 정보를 수신한다(S1310). 전술한 위치 정보는 캐싱될 프레임내의 블록의 기준 좌표의 주소를 나타내는 포인터를 읽어 들인다. The position information of the frame to be cached is received from the main storage unit 540 (S1310). The above-described position information reads a pointer indicating an address of a reference coordinate of a block in a frame to be cached.

위치 정보를 수신한 후, 상기 수신된 위치 정보를 이용하여 제 2 모드의 초기 값을 설정한다(S1320). 전술한 바와 같이, 규정된 Region과 주 저장부로 읽어 들인 프레임 내의 블록들의 주소를 나타내는 포인터를 제 2모드의 기준 포인터로 규정하는 제 2 모드의 초기 값을 설정한다. After receiving the position information, the initial value of the second mode is set using the received position information (S1320). As described above, an initial value of a second mode for defining a pointer indicating the addresses of blocks in a frame read into the prescribed region and main storage to the reference pointer of the second mode is set.

제 2모드의 초기 값이 설정된 후, 상기 제 2 모드를 이용하여 주 저장부(540)로부터 프레임을 캐싱한다(S1330). After the initial value of the second mode is set, the main storage unit 540 caches the frame using the second mode (S1330).

일 실시예로, 전술한 바와 같은 연관성(Associativity)을 제공하여, 저장 모듈(525)내에 다수 개의 슬롯을 포함하고 있으며, 하나의 슬롯이 교체되지 않고도 다수 개의 프레임의 영역들을 캐시할 수 있다.In one embodiment, the associativity as described above may be provided to include a plurality of slots in the storage module 525, and areas of a plurality of frames may be cached without replacing one slot.

일 실시예로, 전술한 바와 같은 프리패치(prefetch)를 제공하여, 규정된 Region에 대응되는 블록들을 캐싱하면서, 향후에 캐싱할 블록들을 미리 예측하여 프리패치할 수 있다. In one embodiment, a prefetch as described above is provided, and blocks to be cached in the future can be predicted and prefetched in advance while caching blocks corresponding to the prescribed region.

일 실시예로, 전술한 바와 같은 Write Mask를 제공하여, 프레임 내의 일정하지 않은 크기들의 블록 들을 캐싱하더라도, 주 저장부(540)의 인접 영역의 데이터 파괴되지 않은 방법을 제공한다. 또한, 사용자는 Write Mask의 적용 여부를 설정할 수 있다. In one embodiment, a Write Mask as described above is provided to provide a method of not destroying data in a contiguous area of the main storage 540, even when caching blocks of unequal sizes in a frame. In addition, the user can set whether or not the Write Mask is applied.

주 저장부(540)로부터 캐싱을 한 후, 캐싱된 프레임을 처리한다(S1340). 전술한 바와 같이, 처리는 캐싱된 프레임의 일부를 write 하는 것 등을 포함할 수 있다. 처리 모듈(515)는 캐싱된 프레임 일부를 자신이 처리하거나 또는 SPE(530)에 전달하여 처리할 수도 있다.After caching from the main storage unit 540, the cached frame is processed (S1340). As described above, the processing may include writing a portion of the cached frame, and the like. The processing module 515 may process some of the cached frames either by itself or by passing them to the SPE 530 for processing.

처리할 프레임이 존재하는지를 확인한다(S1350).It is confirmed whether there is a frame to be processed (S1350).

처리할 프레임이 존재하는 경우에는, S1330 단계로 이동하여 프레임을 캐싱한 후, 전술한 단계를 처리할 프레임이 존재하지 않을 때까지 반복한다. 그 후, 처리할 프레임이 존재하지 않으면 프로세스를 종료 한다. If there is a frame to be processed, the process moves to step S1330 and caches the frame, and repeats the above steps until there is no frame to process. Thereafter, if there is no frame to be processed, the process is terminated.

처리할 프레임이 존재하지 않는 경우에는, 프로세스를 종료 한다. If there is no frame to be processed, the process is terminated.

본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.It will be understood by those skilled in the art that the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive.

도 1은 종래의 기술에 따른 멀티-프로세서를 나타내는 개요도이다.1 is a schematic diagram illustrating a multi-processor according to the prior art.

도 2는 도 1의 멀티 프로세서에 저장된 이미지 프레임을 나타내는 도면이다.2 is a diagram showing an image frame stored in the multiprocessor of FIG.

도 3은 도 2의 이미지 프레임이 이미지 콘볼루션 된 경우 주 저장부(540)로부터 DMA(Direct Memory Access)처리를 하는 방식을 나타내는 도면이다. FIG. 3 is a diagram illustrating a method of performing DMA (Direct Memory Access) processing from the main storage unit 540 when the image frame of FIG. 2 is image convoluted.

도 4는 도 2의 이미지 프레임이 모션 보상(Motion Compensation)인 경우, 주 저장부(540)로부터 DMA(Direct Memory Access)처리를 하는 방식을 나타내는 도면이다.FIG. 4 is a diagram illustrating a method of performing DMA (Direct Memory Access) processing from the main storage unit 540 when the image frame of FIG. 2 is motion compensation.

도 5는 본 발명의 일 실시예에 따른 프레임 캐싱 장치의 개요도 이다. 5 is a schematic diagram of a frame caching apparatus according to an embodiment of the present invention.

도 6은 프레임 캐싱 장치가 프레임을 처리하기 위한 일반적인 모드를 나타내는 도면이다.6 is a diagram showing a general mode for processing a frame by the frame caching apparatus.

도 7은 프레임 캐싱 장치가 프레임을 처리하기 위한 제 1모드의 설정을 나타내는 도면이다. 7 is a diagram showing a setting of a first mode for a frame caching apparatus to process a frame.

도 8은 도 7의 제 1모드가 프리패칭(prefetching)하는 방식을 나타내는 도면이다. 8 is a diagram illustrating a method of prefetching the first mode of FIG.

도 9는 프레임 캐싱 장치가 이미지 프레임을 처리하기 위한 프리 모드의 설정을 나타내는 도면이다. 9 is a diagram showing a setting of a pre-mode for processing an image frame by a frame caching apparatus.

도 10은 도 9의 제 2 모드가 프리패칭(prefetching)하는 방식을 나타내는 도면이다. FIG. 10 is a diagram illustrating a method of prefetching the second mode of FIG.

도 11은 본 발명의 일 실시예에 따른, Write Mask 방식을 나타내는 도면이 다. 11 is a diagram illustrating a write mask method according to an embodiment of the present invention.

도 12는 본 발명의 일 실시예에 따른, 제 1모드를 이용하여 이미지 프레임을 처리하는 방법을 나타내는 도면이다. 12 is a diagram illustrating a method of processing an image frame using a first mode, according to an embodiment of the present invention.

도 13은 본 발명의 일 실시예에 따른, 제 2모드를 이용하여 이미지 프레임을 처리하는 방법을 나타내는 도면이다. 13 is a diagram illustrating a method of processing an image frame using a second mode, according to an embodiment of the present invention.

<도면의 주요 부분에 대한 설명>DESCRIPTION OF THE EMBODIMENTS

500: 프레임 캐싱 장치500: Frame caching device

515: 처리 모듈515: Processing module

520: 제어 모듈520: control module

525: 저장 모듈525: Storage module

530: SPE530: SPE

540: 주 저장부540: main storage unit

Claims (25)

주 저장부로부터 캐싱될 프레임에 대한 정보를 수신하는 단계;Receiving information on a frame to be cached from a main storage unit; 상기 수신된 정보를 이용하여 소정 모드의 초기 값을 설정하는 단계; 및Setting an initial value of a predetermined mode using the received information; And 상기 소정 모드를 이용하여 상기 주 저장부로부터 상기 프레임을 캐싱하는 단계를 포함하는데,And caching the frame from the main storage unit using the predetermined mode, 상기 정보는 상기 프레임의 위치정보를 포함하는 주소 값 및 상기 프레임 Geometry에 대한 정보 중 적어도 하나를 포함하고,Wherein the information includes at least one of an address value including position information of the frame and information on the frame geometry, 상기 프레임 Geometry에 대한 정보는 상기 프레임 Geometry가 포함하는 블록들에 관한 정보를 포함하며,Wherein the information on the frame geometry includes information on the blocks included in the frame geometry, 상기 블록은 소정의 기준 점을 기준으로 X축 방향 및 Y축 방향으로 일정한 크기를 가지고, 상기 X축과 상기 Y축은 하나의 평면을 형성하는, 프레임 캐싱 방법.Wherein the block has a predetermined size in the X-axis direction and the Y-axis direction based on a predetermined reference point, and the X-axis and the Y-axis form one plane. 삭제delete 삭제delete 제 1항에 있어서,The method according to claim 1, 상기 소정의 모드는 Region을 포함하며, The predetermined mode includes a Region, 상기 블록에 대응되는 상기 Region은 소정의 기준 점을 기준으로 X축 방향의 음의 좌표 및 Y축 방향의 음의 좌표 중 적어도 하나를 포함하고, 상기 X축 방향은 상기 기준 점을 기준으로 가로축 방향이고, 상기 Y축 방향은 상기 X축에 수직인 방향이며, 상기 X축과 상기 Y축은 하나의 평면을 형성하여 상기 Region은 상기 X축과 상기 Y축 사이에 영역을 형성하는, 프레임 캐싱 방법.Wherein the region corresponding to the block includes at least one of a negative coordinate in the X-axis direction and a negative coordinate in the Y-axis direction on the basis of a predetermined reference point, the X- Wherein the Y-axis direction is a direction perpendicular to the X-axis, and the X-axis and the Y-axis form one plane, and the Region forms an area between the X-axis and the Y-axis. 제 4항에 있어서,5. The method of claim 4, 상기 소정의 모드는 제 1모드를 포함하고,Wherein the predetermined mode includes a first mode, 상기 제 1모드는 상기 프레임 Geometry에 대한 정보가 포함하는 상기 블록의 기준 점에 대응되는 기준 점을 포함하고, 상기 기준 점을 기준으로 X축 방향 좌표의 최대 값 및 Y축 방향 좌표의 최대 값을 포함하는, 프레임 캐싱 방법.The first mode includes a reference point corresponding to a reference point of the block included in the information about the frame geometry and a maximum value of the coordinates in the X axis direction and a maximum value of the coordinates in the Y axis direction on the basis of the reference point Includes a frame caching method. 제 5항에 있어서,6. The method of claim 5, 상기 캐싱하는 단계는,Wherein the caching comprises: 상기 제 1 모드의 상기 기준 점을 상기 프레임 Geometry내의 상기 X축 및 상기 Y축 중 적어도 하나의 방향으로 소정의 간격으로 이동하도록 설정하고, 상기 이동된 기준 점에 대응되는 제 1모드를 이용하여 상기 주 저장부로부터 프레임을 캐싱하는, 프레임 캐싱 방법.Setting the reference point of the first mode to move at a predetermined interval in at least one of the X-axis and the Y-axis in the frame geometry, and using the first mode corresponding to the moved reference point And caching the frame from the main storage. 제 5항에 있어서,6. The method of claim 5, 상기 캐싱하는 단계는,Wherein the caching comprises: 상기 제 1모드의 상기 기준 점을 상기 프레임 Geometry내의 상기 X 축 및 상기 Y축 중 적어도 하나의 방향으로 소정의 간격으로 반복하여 이동하도록 설정하고, 상기 이동된 각각의 기준 점 마다 대응되는 상기 제 1모드를 이용하여 상기 주 저장부로부터 프레임을 캐싱하는, 프레임 캐싱 방법.Setting the reference point of the first mode so as to repeatedly move in a direction of at least one of the X-axis and the Y-axis within the frame geometry at a predetermined interval; Mode is used to cache a frame from the main storage. 제 6항에 있어서,The method according to claim 6, 상기 소정의 간격을 매개 변수로 하여, 상기 프레임 Geometry내에 캐싱될 블록을 예측하는 단계; 및Predicting a block to be cached in the frame geometry with the predetermined interval as a parameter; And 상기 예측된 블록을 상기 주 저장부로부터 캐싱하는 단계를 더 포함하는, 프레임 캐싱 방법.And caching the predicted block from the main storage. 제 7항에 있어서,8. The method of claim 7, 상기 소정의 간격을 매개 변수로 하여, 상기 프레임 Geometry내에 캐싱될 블록을 예측하는 단계; 및Predicting a block to be cached in the frame geometry with the predetermined interval as a parameter; And 상기 예측된 블록을 상기 주 저장부로부터 캐싱하는 단계를 더 포함하는, 프레임 캐싱 방법.And caching the predicted block from the main storage. 제 4항에 있어서,5. The method of claim 4, 상기 소정의 모드는 제 2모드를 포함하고,Wherein the predetermined mode includes a second mode, 상기 제 2모드는 상기 프레임 Geometry에 대한 정보가 포함하는 상기 블록의 기준 점에 대응되는 기준 포인터를 설정하고, 상기 기준 포인터를 기준으로 X축 방향 좌표의 최대 값 및 Y축 방향 좌표의 최대 값을 포함하는, 프레임 캐싱 방법.The second mode sets a reference pointer corresponding to a reference point of the block included in the information about the frame geometry, and sets a maximum value of the coordinates in the X axis direction and a maximum value of the coordinates in the Y axis direction on the basis of the reference pointer Includes a frame caching method. 제 10항에 있어서,11. The method of claim 10, 상기 캐싱하는 단계는,Wherein the caching comprises: 상기 주 저장부로부터 프레임내의 블록을 캐싱하는 경우, 상기 블록에 대응되는 상기 Region은 상기 블록의 크기보다 더 크게 설정되는, 프레임 캐싱 방법.Wherein when the block in the frame is cached from the main storage unit, the Region corresponding to the block is set larger than the size of the block. 제 11항에 있어서,12. The method of claim 11, 상기 캐싱하는 단계 이후에,After the caching step, 상기 Region은 상기 블록에 해당되는 제 1영역과 상기 블록에 해당되지 않는 제 2영역으로 분리하는 단계; 및Dividing the region into a first area corresponding to the block and a second area not corresponding to the block; And 상기 분리된 제 1영역에 관한 정보를 상기 주 저장부로 전달하는 단계를 더 포함하며, And transferring information on the separated first area to the main storage unit, 상기 주 저장부는 상기 제 1영역에 관한 정보를 이용하여 상기 주 저장부를 업데이트 하는, 프레임 캐싱 방법.Wherein the main storage unit updates the main storage unit using information on the first area. 제 10항에 있어서,11. The method of claim 10, 상기 캐싱하는 단계는,Wherein the caching comprises: 상기 주 저장부로부터 다수 개의 블록을 캐싱하는 경우, 상기 프레임의 위치정보를 이용하여 다수 개의 프레임간에 연관성(Associativity)을 부여하는, 프레임 캐싱 방법.And associating the plurality of frames with the position information of the frame when the plurality of blocks are cached from the main storage unit. 제 10항에 있어서,11. The method of claim 10, 제 1 블록을 캐싱 하고 제 2 블록을 캐싱하는 경우, 상기 제 1블록과 상기 제 2블록 간의 위치 정보를 이용하여, 상기 주 저장부로부터 캐싱될 제 3블록의 영역을 예측하는 단계; 및Predicting an area of a third block to be cached from the main storage unit using positional information between the first block and the second block when the first block is cached and the second block is cached; And 상기 예측된 블록을 상기 주 저장부로부터 캐싱하는 단계를 더 포함하는, 프레임 캐싱 방법.And caching the predicted block from the main storage. 주 저장부로부터 캐싱될 프레임에 대한 정보를 수신하는 저장 모듈; 및A storage module for receiving information on a frame to be cached from the main storage; And 상기 수신된 정보를 이용하여 소정 모드의 초기 값을 설정하고, 상기 소정 모드를 이용하여 상기 주 저장부로부터 프레임을 캐싱하는 처리 모듈을 포함하는데,And a processing module for setting an initial value of a predetermined mode using the received information and for caching a frame from the main storage unit using the predetermined mode, 상기 정보는 상기 프레임의 위치정보를 포함하는 주소 값 및 상기 프레임 Geometry에 대한 정보 중 적어도 하나를 포함하고,Wherein the information includes at least one of an address value including position information of the frame and information on the frame geometry, 상기 프레임 Geometry에 대한 정보는 상기 프레임 Geometry가 포함하는 블록들에 관한 정보를 포함하며,Wherein the information on the frame geometry includes information on the blocks included in the frame geometry, 상기 블록은 소정의 기준 점을 기준으로 X축 방향 및 Y축 방향으로 일정한 크기를 가지고, 상기 X축과 상기 Y축은 하나의 평면을 형성하는, 프레임 캐싱 장치.Wherein the block has a constant size in the X-axis direction and the Y-axis direction with respect to a predetermined reference point, and the X-axis and the Y-axis form one plane. 삭제delete 삭제delete 제 15항에 있어서,16. The method of claim 15, 상기 소정의 모드는 Region을 포함하며, The predetermined mode includes a Region, 상기 블록에 대응되는 상기 Region은 소정의 기준 점을 기준으로 X축 방향의 음의 좌표 및 Y축 방향의 음의 좌표 중 적어도 하나를 포함하고, 상기 X축 방향은 상기 기준 점을 기준으로 가로축 방향이고, 상기 Y축 방향은 상기 X축에 수직인 방향이며, 상기 X축과 상기 Y축은 하나의 평면을 형성하여 상기 X축과 상기 Y축 사이에 영역을 형성하는, 프레임 캐싱 장치.Wherein the region corresponding to the block includes at least one of a negative coordinate in the X-axis direction and a negative coordinate in the Y-axis direction on the basis of a predetermined reference point, the X- Wherein the Y-axis direction is a direction perpendicular to the X-axis, and the X-axis and the Y-axis form one plane to form an area between the X-axis and the Y-axis. 제 18항에 있어서,19. The method of claim 18, 상기 소정의 모드는 제 1모드를 포함하고,Wherein the predetermined mode includes a first mode, 상기 제 1모드는 상기 프레임 Geometry에 대한 정보가 포함하는 상기 블록의 기준 점에 대응되는 기준 점을 포함하고, 상기 기준 점을 기준으로 X축 방향 좌표의 최대 값 및 Y축 방향 좌표의 최대 값을 포함하는, 프레임 캐싱 장치.The first mode includes a reference point corresponding to a reference point of the block included in the information about the frame geometry and a maximum value of the coordinates in the X axis direction and a maximum value of the coordinates in the Y axis direction on the basis of the reference point The frame caching device. 제 19항에 있어서,20. The method of claim 19, 상기 처리 모듈은,The processing module comprises: 상기 제 1 모드의 상기 기준 점을 상기 프레임 Geometry내의 상기 X축 및 상기 Y축 중 적어도 하나의 방향으로 소정의 간격으로 이동하도록 설정하고, 상기 이동된 기준 점에 대응되는 제 1모드를 이용하여 상기 주 저장부로부터 프레임을 캐싱하는, 프레임 캐싱 장치.Setting the reference point of the first mode to move at a predetermined interval in at least one of the X-axis and the Y-axis in the frame geometry, and using the first mode corresponding to the moved reference point And caches the frame from the main storage. 제 19항에 있어서,20. The method of claim 19, 상기 처리 모듈은,The processing module comprises: 상기 제 1모드의 상기 기준 점을 상기 프레임 Geometry내의 상기 X 축 및 상기 Y축 중 적어도 하나의 방향으로 소정의 간격으로 반복하여 이동하도록 설정하고, 상기 이동된 각각의 기준 점 마다 대응되는 상기 제 1모드를 이용하여 상기 주 저장부로부터 프레임을 캐싱하는, 프레임 캐싱 장치. Setting the reference point of the first mode so as to repeatedly move in a direction of at least one of the X-axis and the Y-axis within the frame geometry at a predetermined interval; Mode to cache the frame from the main storage. 제 20항 또는 제 21항에 있어서,22. The method according to claim 20 or 21, 상기 처리 모듈은, The processing module comprises: 상기 소정의 간격을 매개 변수로 하여, 상기 주 저장부로부터 캐싱될 프레임의 영역을 예측하고, 상기 예측된 프레임의 영역을 상기 주 저장부로부터 캐싱하는, 프레임 캐싱 장치.Predicts an area of a frame to be cached from the main storage unit, and caches an area of the predicted frame from the main storage unit, using the predetermined interval as a parameter. 제 18항에 있어서,19. The method of claim 18, 상기 소정의 모드는,The predetermined mode includes: 상기 소정의 모드는 제 2모드를 포함하고,Wherein the predetermined mode includes a second mode, 상기 제 2모드는 상기 프레임 Geometry에 대한 정보가 포함하는 상기 블록의 기준 점에 대응되는 기준 포인터를 설정하고, 상기 기준 포인터를 기준으로 X축 방향 좌표의 최대 값 및 Y축 방향 좌표의 최대 값을 포함하는, 프레임 캐싱 장치.The second mode sets a reference pointer corresponding to a reference point of the block included in the information about the frame geometry, and sets a maximum value of the coordinates in the X axis direction and a maximum value of the coordinates in the Y axis direction on the basis of the reference pointer The frame caching device. 제 23항에 있어서,24. The method of claim 23, 상기 처리 모듈은,The processing module comprises: 제 1 블록을 캐싱 하고 제 2 블록을 캐싱하는 경우, 상기 제 1블록과 상기 제 2블록 간의 위치 정보를 이용하여, 상기 주 저장부로부터 캐싱될 제 3블록의 영역을 예측하고, 상기 예측된 블록을 상기 주 저장부로부터 캐싱하는, 프레임 캐싱 장치.Predicts a region of a third block to be cached from the main storage unit using positional information between the first block and the second block when caching the first block and caching the second block, From the main storage unit. 제 23항에 있어서,24. The method of claim 23, 상기 처리 모듈은, The processing module comprises: 상기 주 저장부로부터 다수 개의 블록을 캐싱하는 경우, 상기 프레임의 위치정보를 이용하여 다수 개의 프레임간에 연관성(Associativity)을 부여하는, 프레임 캐싱 장치.And associating the plurality of frames with the position information of the frame when caching a plurality of blocks from the main storage unit.
KR1020070129116A 2007-08-16 2007-12-12 Apparatus and Method for caching the frame KR101458029B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/193,091 US8463997B2 (en) 2007-08-16 2008-08-18 Apparatus and method of caching frame

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US95619407P 2007-08-16 2007-08-16
US60/956,194 2007-08-16

Publications (2)

Publication Number Publication Date
KR20090017954A KR20090017954A (en) 2009-02-19
KR101458029B1 true KR101458029B1 (en) 2014-11-04

Family

ID=40686490

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070129116A KR101458029B1 (en) 2007-08-16 2007-12-12 Apparatus and Method for caching the frame

Country Status (1)

Country Link
KR (1) KR101458029B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050001848A1 (en) 2001-08-01 2005-01-06 Stmicroelectronics, Inc. Method and apparatus using a two-dimensional circular data buffer for scrollable image display
WO2006051513A2 (en) * 2004-11-15 2006-05-18 Koninklijke Philips Electronics, N.V. Cache with prefetch

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050001848A1 (en) 2001-08-01 2005-01-06 Stmicroelectronics, Inc. Method and apparatus using a two-dimensional circular data buffer for scrollable image display
WO2006051513A2 (en) * 2004-11-15 2006-05-18 Koninklijke Philips Electronics, N.V. Cache with prefetch
WO2006051513A3 (en) 2004-11-15 2007-05-18 Koninkl Philips Electronics Nv Cache with prefetch

Also Published As

Publication number Publication date
KR20090017954A (en) 2009-02-19

Similar Documents

Publication Publication Date Title
US20230342305A1 (en) Victim cache that supports draining write-miss entries
US7797493B2 (en) Enhancing performance of a memory unit of a data processing device by separating reading and fetching functionalities
US9645934B2 (en) System-on-chip and address translation method thereof using a translation lookaside buffer and a prefetch buffer
US6418515B1 (en) Cache flush unit
US6650333B1 (en) Multi-pool texture memory management
US20050080986A1 (en) Priority-based flash memory control apparatus for XIP in serial flash memory,memory management method using the same, and flash memory chip thereof
US20030154349A1 (en) Program-directed cache prefetching for media processors
EP0612013A1 (en) Combination prefetch buffer and instruction cache cross references to related applications
JPH077360B2 (en) Information processing device with cache memory
US6587113B1 (en) Texture caching with change of update rules at line end
US6744438B1 (en) Texture caching with background preloading
US7061500B1 (en) Direct-mapped texture caching with concise tags
CN104981838B (en) Optimizing image memory access
US20220214979A1 (en) Dedicated cache-related block transfer in a memory system
WO2005086096A2 (en) Embedded system with 3d graphics core and local pixel buffer
CN116134475A (en) Computer memory expansion device and method of operating the same
US6683615B1 (en) Doubly-virtualized texture memory
US5386538A (en) Data cache access for signal processing systems
KR101458029B1 (en) Apparatus and Method for caching the frame
US8463997B2 (en) Apparatus and method of caching frame
US7050061B1 (en) Autonomous address translation in graphic subsystem
JPH0743671B2 (en) Cache memory control method
US6397298B1 (en) Cache memory having a programmable cache replacement scheme
JP2001249846A (en) Cache memory device and data processing system
US7710425B1 (en) Graphic memory management with invisible hardware-managed page faulting

Legal Events

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

Payment date: 20170919

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180917

Year of fee payment: 5