KR20160029550A - Mobile terminal and method for controlling the same - Google Patents
Mobile terminal and method for controlling the same Download PDFInfo
- Publication number
- KR20160029550A KR20160029550A KR1020140119248A KR20140119248A KR20160029550A KR 20160029550 A KR20160029550 A KR 20160029550A KR 1020140119248 A KR1020140119248 A KR 1020140119248A KR 20140119248 A KR20140119248 A KR 20140119248A KR 20160029550 A KR20160029550 A KR 20160029550A
- Authority
- KR
- South Korea
- Prior art keywords
- texture
- texture data
- mipmap
- memory
- mobile terminal
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Abstract
Description
본 발명은 이동 단말기 및 그 제어방법에 관한 것으로, 더욱 상세하게는 공유 메모리를 이용하여 텍스쳐 데이터를 선인출(prefetch)하는 이동 단말기 및 그 제어방법에 관한 것이다.The present invention relates to a mobile terminal and a control method thereof, and more particularly, to a mobile terminal for prefetching texture data using a shared memory and a control method thereof.
단말기는 이동 가능 여부에 따라 이동 단말기(mobile/portable terminal) 및 고정 단말기(stationary terminal)로 나뉠 수 있다. 다시 이동 단말기는 사용자의 직접 휴대 가능 여부에 따라 휴대(형) 단말기(handheld terminal) 및 거치형 단말기(vehicle mounted terminal)로 나뉠 수 있다.A terminal can be divided into a mobile / portable terminal and a stationary terminal depending on whether the terminal is movable or not. The mobile terminal can be divided into a handheld terminal and a vehicle mounted terminal according to whether the user can directly carry the mobile terminal.
이동 단말기의 기능은 다양화 되고 있다. 예를 들면, 데이터와 음성통신, 카메라를 통한 사진촬영 및 비디오 촬영, 음성녹음, 스피커 시스템을 통한 음악파일 재생 그리고 디스플레이부에 이미지나 비디오를 출력하는 기능이 있다. 일부 단말기는 전자게임 플레이 기능이 추가되거나, 멀티미디어 플레이어 기능을 수행한다. 특히 최근의 이동 단말기는 방송과 비디오나 텔레비전 프로그램과 같은 시각적 컨텐츠를 제공하는 멀티캐스트 신호를 수신할 수 있다. The functions of mobile terminals are diversified. For example, there are data and voice communication, photographing and video shooting through a camera, voice recording, music file playback through a speaker system, and outputting an image or video on a display unit. Some terminals are equipped with an electronic game play function or a multimedia player function. In particular, modern mobile terminals can receive multicast signals that provide visual content such as broadcast and video or television programs.
이와 같은 단말기(terminal)는 그 기능이 다양화됨에 따라 예를 들어, 사진이나 동영상의 촬영, 음악이나 동영상 파일의 재생, 게임, 방송의 수신 등의 복합적인 기능들을 갖춘 멀티미디어 기기(Multimedia player) 형태로 구현되고 있다. 이러한 멀티미디어 기기의 형태로 구현된 이동 단말기에는, 복잡한 기능을 구현하기 위해 하드웨어나 소프트웨어적 측면에서 새로운 시도들이 다양하게 적용되고 있다.Such a terminal has various functions, for example, a multimedia player having a complex function such as photographing or moving picture shooting, reproduction of music or video file, reception of game or broadcasting, . In order to implement complex functions, mobile terminals implemented in the form of multimedia devices are being applied variously in terms of hardware and software.
한편, 최근의 이동 단말기는 3차원 컴퓨터 그래픽스(3D computer graphics)를 기반으로 한 다양한 애플리케이션들을 제공하고 있다. 3차원 컴퓨터 그래픽스는 2차원 컴퓨터 그래픽스과 달리, 컴퓨터에 저장된 모델의 기하학적 데이터(각 점의 위치를 높이, 폭, 깊이의 3축으로 하는 공간 좌표를 이용하여 저장)를 이용해 3차원적으로 표현한 뒤에 2차원적 결과물로 처리, 출력하는 컴퓨터 그래픽 기술이다. Meanwhile, recent mobile terminals are providing various applications based on 3D computer graphics. In contrast to 2D computer graphics, 3D computer graphics is a three-dimensional representation of the geometric data of a model stored in a computer (each point is stored using spatial coordinates with three axes of height, width, and depth) It is a computer graphics technology that processes and outputs as a dimensional result.
이러한 3차원 컴퓨터 그래픽스는 크게 3차원 모델링 과정, 애니메이션 과정 및 3차원 렌더링 과정을 통해 이루어진다. 상기 3차원 렌더링 과정에서 텍스쳐 맵핑(texture mapping, TM) 기술이 필연적으로 사용된다. The three-dimensional computer graphics are largely achieved through a three-dimensional modeling process, an animation process, and a three-dimensional rendering process. Texture mapping (TM) techniques are inevitably used in the 3D rendering process.
텍스쳐 맵핑은 컴퓨터 생성 장면에 사실성을 부여하기 위한 3차원 그래픽 파이프라인에 있어서 가장 성공적이고 대중적인 기술들 중 하나이다. 전형적인 텍스쳐 맵핑 프로세스는 외부 메모리에 대한 접근이 고도로 집중적으로 일어나는데, 이는 텍스쳐 맵핑 프로세스의 특성이 다수의 텍스쳐 검색들을 수반하기 때문이다. 이에 따라, 빈번한 텍스쳐 검색은 메모리 버스 상에서 병목 현상을 야기한다. Texture mapping is one of the most successful and popular technologies in the 3D graphics pipeline to impart realism to computer generated scenes. A typical texture mapping process results in highly intensive access to external memory because the nature of the texture mapping process involves a number of texture searches. Thus, frequent texture retrieval causes bottlenecks on the memory bus.
이러한 문제를 완화하기 위해서, GPU(Graphic Processing Unit)는 텍스쳐 캐시(texture cache)를 구비한다. 텍스쳐 캐시는 외부 메모리부터 텍셀들(texels)을 페치하는데 있어서 중복성(redundancy)을 제거하기 위해 제공되며, 삼각 래스터화(triangle's rasterization)의 자연적인 공간 지역성(spatial locality)을 활용한다. 하지만, 텍스쳐 캐시의 용량이 제한적이기 때문에, 상기 병목 현상에 대한 근본적인 해결 방법이 될 수 없다. 따라서, 텍스쳐 맵핑 시, 외부 메모리에 저장된 텍스쳐 데이터를 좀 더 효율적으로 불러오기 위한 방법이 절실히 요구된다. To alleviate this problem, the GPU (Graphic Processing Unit) has a texture cache. The texture cache is provided to eliminate redundancy in fetching texels from external memory and utilizes the natural spatial locality of triangle's rasterization. However, since the capacity of the texture cache is limited, it can not be a fundamental solution to the bottleneck. Therefore, when texture mapping is performed, a method for more efficiently retrieving texture data stored in the external memory is desperately required.
본 발명은 전술한 문제 및 다른 문제를 해결하는 것을 목적으로 한다. 또 다른 목적은 텍스쳐 맵핑 시, 공유 메모리를 이용하여 텍스쳐 데이터를 선인출(prefetch)하는 이동 단말기 및 그 제어방법을 제공하는 것을 그 목적으로 한다.The present invention is directed to solving the above-mentioned problems and other problems. Another object of the present invention is to provide a mobile terminal for prefetching texture data by using a shared memory in texture mapping, and a control method thereof.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따르면, 3차원 렌더링을 수행하는 이동 단말기에 있어서, 텍스쳐 데이터를 저장하는 외부 메모리;According to an aspect of the present invention, there is provided a mobile terminal for performing three-dimensional rendering, comprising: an external memory for storing texture data;
상기 외부 메모리로부터 상기 텍스쳐 데이터를 밉맵(mipmap) 단위로 선인출하여 저장하는 공유 메모리; 및 상기 공유 메모리에 저장된 텍스쳐 데이터를 기반으로 텍스쳐 맵핑을 수행하는 그래픽 처리 장치를 포함하는 이동 단말기를 제공한다. A shared memory for prefetching the texture data from the external memory in units of mipmaps; And a graphics processing device for performing texture mapping based on the texture data stored in the shared memory.
본 발명에 따른 이동 단말기 및 그 제어 방법의 효과에 대해 설명하면 다음과 같다.Effects of the mobile terminal and the control method according to the present invention will be described as follows.
본 발명의 실시 예들 중 적어도 하나에 의하면, 외부 메모리로부터 텍스쳐 데이터를 밉맵 단위로 선인출하여 공유 메모리에 저장함으로써, 텍스쳐 맵핑 시 빠른 메모리 엑세스를 가능하도록 하여 3차원 그래픽스의 렌더링 성능을 향상시킬 수 있는 장점이 있다.According to at least one embodiment of the present invention, texture data is prefetched from an external memory in units of mipmaps and stored in a shared memory, thereby enabling fast memory access in texture mapping, thereby improving rendering performance of 3D graphics There are advantages.
한편 그 외의 다양한 효과는 후술될 본 발명의 실시 예에 따른 상세한 설명에서 직접적 또는 암시적으로 개시될 것이다.Meanwhile, various other effects will be directly or implicitly disclosed in the detailed description according to the embodiment of the present invention to be described later.
도 1은 본 발명과 관련된 이동 단말기를 설명하기 위한 블록도;
도 2는 본 발명과 관련된 모바일 애플리케이션 프로세서(Mobile Application Processor)를 설명하기 위한 블록도;
도 3은 본 발명의 일 실시 예에 따른 그래픽 처리 장치를 설명하기 위한 블록도;
도 4는 본 발명의 일 실시 예에 따른 3D 그래픽 파이프라인을 설명하기 위한 블록도;
도 5는 3차원 그래픽 애플리케이션들(A1 내지 AZ)을 포함하는 외부 메모리를 설명하기 위해 참조되는 도면;
도 6은 3D 렌더링 시 사용되는 텍스쳐 맵핑 기술과 밉 매핑 기법을 설명하기 위해 참조되는 도면;
도 7 및 도 8은 본 발명의 제1 실시 예에 따라 공유 메모리를 이용하여 텍스쳐 데이터를 선인출하는 방법을 설명하기 위해 참조되는 도면;
도 9 및 도 10은 본 발명의 제2 실시 예에 따라 공유 메모리를 이용하여 텍스쳐 데이터를 선인출하는 방법을 설명하기 위해 참조되는 도면;
도 11 및 도 12는 본 발명의 제3 실시 예에 따라 공유 메모리를 이용하여 텍스쳐 데이터를 선인출하는 방법을 설명하기 위해 참조되는 도면;
도 13 및 도 14는 본 발명의 제4 실시 예에 따라 공유 메모리를 이용하여 텍스쳐 데이터를 선인출하는 방법을 설명하기 위해 참조되는 도면.1 is a block diagram illustrating a mobile terminal according to the present invention;
Figure 2 is a block diagram illustrating a mobile application processor associated with the present invention;
3 is a block diagram illustrating a graphics processing apparatus according to an exemplary embodiment of the present invention;
4 is a block diagram illustrating a 3D graphics pipeline according to one embodiment of the present invention;
5 is a diagram referred to describe an external memory including three-dimensional graphics applications A1 to AZ;
FIG. 6 is a diagram referred to explain a texture mapping technique and a mipmapping technique used in 3D rendering; FIG.
FIG. 7 and FIG. 8 are diagrams for describing a method of pre-exporting texture data using a shared memory according to a first embodiment of the present invention; FIG.
FIGS. 9 and 10 are diagrams for describing a method for pre-exporting texture data using a shared memory according to a second embodiment of the present invention; FIG.
FIGS. 11 and 12 are diagrams for describing a method of pre-exporting texture data using a shared memory according to a third embodiment of the present invention; FIGS.
FIGS. 13 and 14 are diagrams for describing a method for pre-exporting texture data using a shared memory according to a fourth embodiment of the present invention; FIG.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, wherein like reference numerals are used to designate identical or similar elements, and redundant description thereof will be omitted. The suffix "module" and " part "for the components used in the following description are given or mixed in consideration of ease of specification, and do not have their own meaning or role. In the following description of the embodiments of the present invention, a detailed description of related arts will be omitted when it is determined that the gist of the embodiments disclosed herein may be blurred. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. , ≪ / RTI > equivalents, and alternatives.
본 명세서에서 설명되는 이동 단말기에는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)) 등이 포함될 수 있다. The mobile terminal described in this specification includes a mobile phone, a smart phone, a laptop computer, a digital broadcasting terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), a navigation device, a slate PC A tablet PC, an ultrabook, a wearable device such as a smartwatch, a smart glass, and a head mounted display (HMD). have.
그러나, 본 명세서에 기재된 실시 예에 따른 구성은 이동 단말기에만 적용 가능한 경우를 제외하면, 디지털 TV, 데스크탑 컴퓨터, 디지털 사이니지 등과 같은 고정 단말기에도 적용될 수도 있음을 본 기술분야의 당업자라면 쉽게 알 수 있을 것이다.However, it will be appreciated by those skilled in the art that the configuration according to the embodiments described herein may be applied to fixed terminals such as a digital TV, a desktop computer, a digital signage, and the like, will be.
도 1은 본 발명과 관련된 이동 단말기를 설명하기 위한 블록도이다.1 is a block diagram illustrating a mobile terminal according to the present invention.
도 1을 참조하면, 이동 단말기(100)는 무선 통신부(110), 입력부(120), 감지부(140), 출력부(150), 인터페이스부(160), 메모리(170), 제어부(180) 및 전원 공급부(190) 등을 포함할 수 있다. 도 1에 도시된 구성요소들은 이동 단말기를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서상에서 설명되는 이동 단말기는 위에서 열거된 구성요소들보다 많거나, 또는 적은 구성요소들을 가질 수 있다. 1, a
보다 구체적으로, 상기 구성요소들 중 무선 통신부(110)는, 이동 단말기(100)와 무선 통신 시스템 사이, 이동 단말기(100)와 다른 이동 단말기(100) 사이, 또는 이동 단말기(100)와 외부서버 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 또한, 상기 무선 통신부(110)는, 이동 단말기(100)를 하나 이상의 네트워크에 연결하는 하나 이상의 모듈을 포함할 수 있다.The
이러한 무선 통신부(110)는, 방송 수신 모듈(111), 이동통신 모듈(112), 무선 인터넷 모듈(113), 근거리 통신 모듈(114), 위치정보 모듈(115) 중 적어도 하나를 포함할 수 있다.The
입력부(120)는, 영상 신호 입력을 위한 카메라(121) 또는 영상 입력부, 오디오 신호 입력을 위한 마이크로폰(microphone, 122), 또는 오디오 입력부, 사용자로부터 정보를 입력받기 위한 사용자 입력부(123, 예를 들어, 터치키(touch key), 푸시키(mechanical key) 등)를 포함할 수 있다. 입력부(120)에서 수집한 음성 데이터나 이미지 데이터는 분석되어 사용자의 제어명령으로 처리될 수 있다.The
센싱부(140)는 이동 단말기 내 정보, 이동 단말기를 둘러싼 주변 환경 정보 및 사용자 정보 중 적어도 하나를 센싱하기 위한 하나 이상의 센서를 포함할 수 있다. 예를 들어, 센싱부(140)는 근접센서(141, proximity sensor), 조도 센서(142, illumination sensor), 터치 센서(touch sensor), 가속도 센서(acceleration sensor), 자기 센서(magnetic sensor), 중력 센서(G-sensor), 자이로스코프 센서(gyroscope sensor), 모션 센서(motion sensor), RGB 센서, 적외선 센서(IR 센서: infrared sensor), 지문인식 센서(finger scan sensor), 초음파 센서(ultrasonic sensor), 광 센서(optical sensor, 예를 들어, 카메라(121 참조)), 마이크로폰(microphone, 122 참조), 배터리 게이지(battery gauge), 환경 센서(예를 들어, 기압계, 습도계, 온도계, 방사능 감지 센서, 열 감지 센서, 가스 감지 센서 등), 화학 센서(예를 들어, 전자 코, 헬스케어 센서, 생체 인식 센서 등) 중 적어도 하나를 포함할 수 있다. 한편, 본 명세서에 개시된 이동 단말기는, 이러한 센서들 중 적어도 둘 이상의 센서에서 센싱되는 정보들을 조합하여 활용할 수 있다.The
출력부(150)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 디스플레이부(151), 음향 출력부(152), 햅팁 모듈(153), 광 출력부(154) 중 적어도 하나를 포함할 수 있다. 디스플레이부(151)는 터치 센서와 상호 레이어 구조를 이루거나 일체형으로 형성됨으로써, 터치 스크린을 구현할 수 있다. 이러한 터치 스크린은, 이동 단말기(100)와 사용자 사이의 입력 인터페이스를 제공하는 사용자 입력부(123)로써 기능함과 동시에, 이동 단말기(100)와 사용자 사이의 출력 인터페이스를 제공할 수 있다.The
인터페이스부(160)는 이동 단말기(100)에 연결되는 다양한 종류의 외부 기기와의 통로 역할을 수행한다. 이러한 인터페이스부(160)는, 유/무선 헤드셋 포트(port), 외부 충전기 포트(port), 유/무선 데이터 포트(port), 메모리 카드(memory card) 포트, 식별 모듈이 구비된 장치를 연결하는 포트(port), 오디오 I/O(Input/Output) 포트(port), 비디오 I/O(Input/Output) 포트(port), 이어폰 포트(port) 중 적어도 하나를 포함할 수 있다. 이동 단말기(100)에서는, 상기 인터페이스부(160)에 외부 기기가 연결되는 것에 대응하여, 연결된 외부 기기와 관련된 적절할 제어를 수행할 수 있다.The
또한, 메모리(170)는 이동 단말기(100)의 다양한 기능을 지원하는 데이터를 저장한다. 메모리(170)는 이동 단말기(100)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 이동 단말기(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 이러한 응용 프로그램 중 적어도 일부는, 무선 통신을 통해 외부 서버로부터 다운로드 될 수 있다. 또한 이러한 응용 프로그램 중 적어도 일부는, 이동 단말기(100)의 기본적인 기능(예를 들어, 전화 착신, 발신 기능, 메시지 수신, 발신 기능)을 위하여 출고 당시부터 이동 단말기(100)상에 존재할 수 있다. 한편, 응용 프로그램은, 메모리(170)에 저장되고, 이동 단말기(100) 상에 설치되어, 제어부(180)에 의하여 상기 이동 단말기의 동작(또는 기능)을 수행하도록 구동될 수 있다.In addition, the
제어부(180)는 상기 응용 프로그램과 관련된 동작 외에도, 통상적으로 이동 단말기(100)의 전반적인 동작을 제어한다. 제어부(180)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 메모리(170)에 저장된 응용 프로그램을 구동함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.In addition to the operations related to the application program, the
또한, 제어부(180)는 메모리(170)에 저장된 응용 프로그램을 구동하기 위하여, 도 1과 함께 살펴본 구성요소들 중 적어도 일부를 제어할 수 있다. 나아가, 제어부(180)는 상기 응용 프로그램의 구동을 위하여, 이동 단말기(100)에 포함된 구성요소들 중 적어도 둘 이상을 서로 조합하여 동작시킬 수 있다.In addition, the
전원공급부(190)는 제어부(180)의 제어 하에서, 외부의 전원, 내부의 전원을 인가받아 이동 단말기(100)에 포함된 각 구성요소들에 전원을 공급한다. 이러한 전원공급부(190)는 배터리를 포함하며, 상기 배터리는 내장형 배터리 또는 교체가능한 형태의 배터리가 될 수 있다.The
상기 각 구성요소들 중 적어도 일부는, 이하에서 설명되는 다양한 실시 예들에 따른 이동 단말기의 동작, 제어, 또는 제어방법을 구현하기 위하여 서로 협력하여 동작할 수 있다. 또한, 상기 이동 단말기의 동작, 제어, 또는 제어방법은 상기 메모리(170)에 저장된 적어도 하나의 응용 프로그램의 구동에 의하여 이동 단말기 상에서 구현될 수 있다.At least some of the components may operate in cooperation with one another to implement a method of operation, control, or control of a mobile terminal according to various embodiments described below. In addition, the operation, control, or control method of the mobile terminal may be implemented on the mobile terminal by driving at least one application program stored in the
다음으로, 본 발명에 따른 이동 단말기(100)를 통해 실시 가능한 통신 시스템에 대하여 살펴본다. Next, a communication system that can be implemented through the
먼저, 통신 시스템은, 서로 다른 무선 인터페이스 및/또는 물리 계층을 이용할 수도 있다. 예를 들어, 통신 시스템에 의해 이용 가능한 무선 인터페이스에는, 주파수 분할 다중 접속(Frequency Division Multiple Access, FDMA), 시분할 다중 접속(Time Division Multiple Access, TDMA), 코드 분할 다중 접속(Code Division Multiple Access, CDMA), 범용 이동통신 시스템(Universal Mobile Telecommunications Systems, UMTS)(특히, LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced)), 이동통신 글로벌 시스템(Global System for Mobile Communications, GSM) 등이 포함될 수 있다.First, the communication system may use different wireless interfaces and / or physical layers. For example, wireless interfaces that can be used by a communication system include Frequency Division Multiple Access (FDMA), Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA) ), Universal mobile telecommunication systems (UMTS) (in particular Long Term Evolution (LTE), Long Term Evolution-Advanced (LTE-A)), Global System for Mobile Communications May be included.
이하에서는, 설명의 편의를 위하여, CDMA에 한정하여 설명하도록 한다. 그러나, 본 발명은, CDMA 무선 통신 시스템뿐만 아니라 OFDM(Orthogonal Frequency Division Multiplexing) 무선 통신 시스템을 포함한 모든 통신 시스템 적용될 수 있음은 자명하다.Hereinafter, for the sake of convenience of description, the description will be limited to CDMA. However, it is apparent that the present invention can be applied to all communication systems including an OFDM (Orthogonal Frequency Division Multiplexing) wireless communication system as well as a CDMA wireless communication system.
CDMA 무선 통신 시스템은, 적어도 하나의 단말기(100), 적어도 하나의 기지국(Base Station, BS (Node B 혹은 Evolved Node B로 명칭될 수도 있다.)), 적어도 하나의 기지국 제어부(Base Station Controllers, BSCs), 이동 스위칭 센터(Mobile Switching Center, MSC)를 포함할 수 있다. MSC는, 일반 전화 교환망(Public Switched Telephone Network, PSTN) 및 BSCs와 연결되도록 구성된다. BSCs는, 백홀 라인(backhaul line)을 통하여, BS와 짝을 이루어 연결될 수 있다. 백홀 라인은, E1/T1, ATM, IP, PPP, Frame Relay, HDSL, ADSL 또는 xDSL 중 적어도 하나에 따라서 구비될 수 있다. 따라서, 복수의 BSCs가 CDMA 무선 통신 시스템에 포함될 수 있다.A CDMA wireless communication system includes at least one
복수의 BS 각각은 적어도 하나의 섹터를 포함할 수 있고, 각각의 섹터는, 전방향성 안테나 또는 BS로부터 방사상의 특정 방향을 가리키는 안테나를 포함할 수 있다. 또한, 각각의 섹터는, 다양한 형태의 안테나를 두 개 이상 포함할 수도 있다. 각각의 BS는, 복수의 주파수 할당을 지원하도록 구성될 수 있고, 복수의 주파수 할당은 각각 특정 스펙트럼(예를 들어, 1.25MHz, 5MHz 등)을 가질 수 있다.Each of the plurality of BSs may comprise at least one sector, and each sector may comprise an omnidirectional antenna or an antenna pointing to a particular direction of radial from the BS. In addition, each sector may include two or more antennas of various types. Each BS may be configured to support a plurality of frequency assignments, and a plurality of frequency assignments may each have a specific spectrum (e.g., 1.25 MHz, 5 MHz, etc.).
섹터와 주파수 할당의 교차는, CDMA 채널이라고 불릴 수 있다. BS는, 기지국 송수신 하부 시스템(Base Station Transceiver Subsystem, BTSs)이라고 불릴 수 있다. 이러한 경우, 하나의 BSC 및 적어도 하나의 BS를 합하여 "기지국"이라고 칭할 수 있다. 기지국은, 또한 "셀 사이트"를 나타낼 수도 있다. 또는, 특정 BS에 대한 복수의 섹터들 각각은, 복수의 셀 사이트로 불릴 수도 있다.The intersection of sector and frequency assignment may be referred to as a CDMA channel. The BS may be referred to as a base station transceiver subsystem (BTSs). In this case, a combination of one BSC and at least one BS may be referred to as a "base station ". The base station may also indicate a "cell site ". Alternatively, each of the plurality of sectors for a particular BS may be referred to as a plurality of cell sites.
방송 송신부(Broadcasting Transmitter, BT) 는, 시스템 내에서 동작하는 단말기들(100)에게 방송 신호를 송신한다. 도 1에 도시된 방송 수신 모듈(111)은, BT에 의해 전송되는 방송 신호를 수신하기 위해 단말기(100) 내에 구비된다.A broadcast transmission unit (BT) transmits a broadcast signal to
뿐만 아니라, CDMA 무선 통신 시스템에는 이동 단말기(100)의 위치를 확인하기 위한, 위성 위치 확인 시스템(Global Positioning System, GPS)이 연계될 수 있다. 상기 위성은, 이동 단말기(100)의 위치를 파악하는 것을 돕는다. 유용한 위치 정보는, 두 개 이하 또는 이상의 위성들에 의해 획득될 수도 있다. 여기에서는, GPS 추적 기술뿐만 아니라 위치를 추적할 수 있는 모든 기술들을 이용하여 이동 단말기(100)의 위치가 추적될 수 있다. 또한, GPS 위성 중 적어도 하나는, 선택적으로 또는 추가로 위성 DMB 전송을 담당할 수도 있다. In addition, a Global Positioning System (GPS) may be associated with the CDMA wireless communication system to identify the location of the
이상에서는 도 1을 참조하여, 본 발명에 따른 이동 단말기(100)의 구성 요소에 대하여 살펴 보았다. 이하에서는, 본 발명의 다양한 실시 예에 따라, 공유 메모리를 이용하여 텍스쳐 데이터를 선인출(prefetch)하는 이동 단말기 및 그 제어방법에 대해 상세히 설명하도록 한다.Hereinabove, the components of the
도 2는 본 발명과 관련된 모바일 애플리케이션 프로세서(Mobile Application Processor)를 설명하기 위한 블록도이다. 2 is a block diagram illustrating a mobile application processor associated with the present invention.
도 2를 참조하면, 통상 이동 단말기(100)는 수신 경로 및 송신 경로를 통해서 양방향 통신을 제공할 수 있다. Referring to FIG. 2, the
수신 경로 상에서, 기지국에 의해서 송신된 신호들이 안테나로 수신되어 수신기(10)에 제공된다. 수신기(10)는 수신된 신호를 컨디셔닝하고 디지털화하여 이후의 처리를 위해 모바일 AP(20)에 샘플들을 제공한다. On the receive path, the signals transmitted by the base station are received by the antenna and provided to the
송신 경로 상에서, 송신기(30)는 모바일 AP(20)로부터 송신되는 데이터를 수신하여, 이를 처리하고 컨디셔닝하여 변조된 신호를 생성한 후 안테나를 통해 기지국으로 송신한다.On the transmission path, the
모바일 AP(20)는 모뎀 프로세서(21), 비디오 프로세서(22), 컨트롤러 프로세서(23), 디스플레이 프로세서(24), 디지털 신호 프로세서(DSP, 25), 그래픽 처리 장치(GPU, 26), 내부 메모리(27), 외부 버스 인터페이스(external bus interface, EBI, 28)와 같은 다양한 처리 장치, 인터페이스 장치 및 메모리 장치들을 포함한다. 상기 모바일 AP(20)는 상기 부품들(21~28)이 하나의 칩 안에 내장되는 시스템 온 칩(System On Chip)으로 구성될 수 있다. 한편, 도 2에 도시된 모바일 AP(20)의 구성은 본 발명의 일 실시 예에 불과할 뿐 본 발명의 범위를 제한하지는 않는다. 따라서, 상기 모바일 AP(200)가 상술한 부품들 중 일부만을 포함하거나, 혹은 상술한 부품들 외에 다른 부품들을 추가로 포함할 수 있음은 당업자에게 자명할 것이다.The
모뎀 프로세서(21)는 데이터 전송 및 수신을 위한 프로세스(예를 들어, 채널 코딩, 변조, 복조 및 채널 디코딩)를 수행한다. 비디오 프로세서(22)는 캠코더, 비디오 재생 및 화상 회의와 같은 비디오 애플리케이션들을 위한 비디오 콘텐츠 (예를 들어, 정지 이미지, 동영상 및 동적 문자)에 대한 프로세스를 수행한다.The
컨트롤러 프로세서(23)는 모바일 AP(20) 내부의 다양한 처리 장치들 및 인터페이스 장치들의 전반적인 동작을 제어한다. 디스플레이 프로세서(24)는 디스플레이부(151)에 비디오, 그래픽, 문자의 표시를 용이하게 하는 프로세스를 수행한다. The
디지털 신호 프로세서(DSP, 25)는 이동 단말기(100)의 동작을 위한 디지털 신호 처리를 수행한다. 그래픽 처리 장치(GPU, 26)는 3차원 그래픽 프로세스를 수행한다.A digital signal processor (DSP) 25 performs digital signal processing for the operation of the
내부 메모리 (또는 공유 메모리, 26)는 모바일 AP(20) 내부의 다양한 장치들을 위해 데이터 및/또는 명령들을 저장한다. 이때, 상기 내부 메모리(26)로는 SRAM(Static Random Access Memory)을 사용하는 것이 바람직하다.The internal memory (or shared memory) 26 stores data and / or instructions for various devices within the
외부 버스 인터페이스(EBI, 28)는 버스 또는 데이터 라인(Data Line)을 따라서 모바일 AP(20)(예를 들어, 내부 메모리 (26))와 외부 메모리(170) 사이의 데이터 전송을 용이하게 한다.External bus interface (EBI) 28 facilitates data transfer between mobile AP 20 (e.g., internal memory 26) and
도 3은 본 발명의 일 실시 예에 따른 그래픽 처리 장치를 설명하기 위한 블록도이다. 3 is a block diagram for explaining a graphic processing apparatus according to an embodiment of the present invention.
도 3을 참조하면, GPU(300)는 텍스쳐 캐시(310), 페치 컨트롤러(335)를 구비하는 GPU 프로세서(330) 및 3D 그래픽 파이프라인(340)을 포함한다. 또한, GPU(300)는 희생 캐시(victim cache, 320)를 추가적으로 포함할 수 있다. 3, the
텍스쳐 캐시(310)는 외부 메모리(170)로부터 캐시 블록 단위로 텍셀들(texels)을 페치(fetch)하여 저장하는 캐시이고, 희생 캐시(320)는 충돌이나 용량 등의 문제로 텍스쳐 캐시(310)에서 빠져나간 블록을 유지시키는 데 이용하는 캐시이다. The
GPU 프로세서(330)는 컴퓨터 그래픽 프로세스에 관한 전반적인 동작을 제어한다. 페치 컨트롤러(335)는 텍스쳐 데이터를 페치하는 커맨드(command)를 생성하는데 제공된다.
3D 그래픽 파이프라인(340)은 3차원 컴퓨터 그래픽에서 3차원 이미지를 2차원 래스터 이미지로 표현하기 위한 단계적인 프로세스를 수행한다.The
가령, 도 4에 도시된 바와 같이, 3D 그래픽 파이프라인(340)은 디스플레이부(151)에 대한 3D 표현의 전체 태스크를 적어도 2 단계의 파이프라인, 즉, 버텍스 처리 단계(341) 및 픽셀 렌더링 단계(342)로 분할한다. 동작에 있어서, 버텍스 처리 단계(341)는 현재 OpenGL®, OpenGL®ES 또는 DirectX 등에서 구현되고 있는 모든 함수들 또는 함수들의 서브세트를 포함할 수 있다.4, the
픽셀 렌더링 단계(342)는 래스터화, 블렌딩 및 텍스쳐 애플리케이션 연산들(343)과 숨겨진 표면 제거 연산들(344)을 포함한다. 아울러, 픽셀 렌더링 단계(342)는 OpenGL® 또는 OpenGL®ES 에 의해서 정의되는 기타 연산들을 포함할 수 있다. 픽셀 렌더링 단계(342)는 버텍스 처리 단계(341)로부터의 3D 대상에 관한 정보를 디스플레이부(151)에 표시될 수 있는 비트 맵으로 변환한다.
또한, 픽셀 렌더링 단계(342)는 3D 그래픽 이미지의 픽셀 표현을 생성하기 위해 입력 삼각 세트들을 처리한다. 래스터화, 블렌딩 및 텍스쳐 애플리케이션 연산들(343) 동안에, 텍스쳐 맵핑 엔진(343a)은 텍스쳐링 연산들을 수행한다.In addition,
도 5는 3차원 그래픽 애플리케이션들(A1 내지 AZ)을 포함하는 외부 메모리를 설명하기 위해 참조되는 도면이다. 5 is a diagram referred to explain an external memory including three-dimensional graphics applications A1 to AZ.
도 5를 참조하면, 외부 메모리(170)에 저장된 애플리케이션들(A1 내지 AZ)은 게임 애플리케이션들 또는 기타 3D 그래픽 애플리케이션들을 포함할 수 있다. 각각의 애플리케이션은 그와 연관된 하나 이상의 텍스쳐 데이터들을 구비한다. 5, applications A1 through AZ stored in
텍스쳐 맵핑은 적어도 하나의 텍스쳐 데이터를 통해서 2D 텍스쳐 이미지를 3D 대상의 표면으로 맵핑하는 쉐이딩 기술이다. 텍스쳐 맵핑에 사용되는 2D 텍스쳐 이미지는 외부 메모리(170)에 저장된다. 따라서, 텍스쳐 맵핑 시, GPU(300)는 텍스쳐 캐시(310)에 원하는 텍스쳐 데이터가 저장되어 있지 않은 경우, 외부 메모리(170)에 접속하여 해당 텍스쳐 데이터를 불러오게 된다. 일반 이미지의 개별적인 요소들이 픽셀(pixel)로 지칭되는 반면, 텍스쳐 이미지의 개별적인 요소들은 텍셀(texel)로 지칭된다.Texture mapping is a shading technique that maps a 2D texture image to a surface of a 3D object through at least one texture data. The 2D texture image used for texture mapping is stored in the
도 6은 3D 렌더링 시 사용되는 텍스쳐 맵핑 기술과 밉 매핑 기법을 설명하기 위해 참조되는 도면이다. 6 is a diagram referred to explain a texture mapping technique and a mipmapping technique used in 3D rendering.
3차원 렌더링 시, 가장 대표적으로 사용되는 텍스쳐 맵핑 기술은 3차원 모델링 물체에 2차원의 텍스쳐 이미지를 맵핑하는 기술이다. 가령, 도 6의 (a)에 도시된 바와 같이, 3차원의 구 형상(610)에 2차원의 텍스쳐 이미지(620)를 맵핑하여, 텍스쳐가 사상된 구 형상(630)을 형성하게 된다. 이것을 Open GL에서 구현하려면 먼저 2차원 텍스쳐 이미지의 좌표를 3차원 물체의 좌표로 변환하는 과정이 필요하다. In 3D rendering, texture mapping technique most commonly used is a technique of mapping a two-dimensional texture image to a three-dimensional modeling object. 6 (a), a two-
고품질의 3D 렌더링을 위해서는 고해상도의 텍스쳐 이미지가 필요하고, 다양한 그래픽 효과를 부여하기 위해서는 다양한 형식의 텍스쳐 이미지가 필요하다. 따라서, 이러한 텍스쳐 맵핑은 높은 메모리 트래픽을 요구하기 때문에, 외부 메모리에 대한 엑세스(access)는 3D 렌더링의 성능 향상을 위한 필수불가결한 요소이다. 특히, 메모리 대역폭이 제한적인 SoC 또는 CPU/CPU가 혼합된 아키텍쳐(CPU-GPU fused architecture)에서는 매우 중요한 요소이다. For high-quality 3D rendering, high-resolution texture images are required, and various types of texture images are needed to provide various graphic effects. Therefore, since this texture mapping requires high memory traffic, access to external memory is an indispensable element for improving the performance of 3D rendering. Especially, it is a very important factor in SoC or CPU / GPU fused architecture with limited memory bandwidth.
한편, 텍스쳐 맵핑 시, 가장 대표적으로 사용되는 밉 맵핑(Mip mapping) 기법은 해상도별로 축소한 텍스쳐를 피라미드로 구성하고, 이를 텍스쳐 맵핑에 적용시키는 기법이다. 즉, 도 6의 (b)에 도시된 바와 같이, 물체가 가까운 곳에 위치하는 경우, 고해상도의 텍스쳐 밉맵(640)을 사용하고, 물체가 먼 곳에 위치하는 경우, 저해상도의 텍스쳐 밉맵(650)을 사용하는 기법이다. 이러한 밉 맵핑 기법은, 3차원 컴퓨터 그래픽에서, 텍스쳐 맵핑의 품질 향상 및 속도 향상을 위해 널리 사용되고 있다. On the other hand, in the texture mapping, the most popular mip mapping technique is a technique of forming a pyramid of a texture reduced by resolution and applying it to texture mapping. 6B, when the object is located close to the object, the high-
밉맵(mipmap)은 렌더링 속도를 향상시키기 위한 목적으로 기본 텍스처와 이를 연속적으로 미리 축소시킨 텍스처들로 이루어진 비트맵 이미지의 집합이다. 밉맵 데이터는 일종의 텍스쳐 데이터로 외부 메모리(170)에 저장되고, 텍스쳐 맵핑 시 내부 메모리(27)로 제공된다. A mipmap is a set of bitmap images made up of basic textures and textures that have been previously reduced in size for the purpose of improving rendering speed. The mipmap data is stored in the
밉맵 집합의 각각의 비트맵 이미지는 기본 텍스처를 일정한 수준만큼 미리 축소한 것이다. 텍스처가 원래 크기 이상으로 보일 경우 기본 텍스처를 그대로 쓸 수도 있지만, 원래보다 멀거나 작게 보일 경우 축소된 텍스처를 렌더링 대신 사용한다. 이렇게 하면 렌더링에 사용되는 텍셀의 수가 훨씬 줄어들기 때문에 렌더링 속도를 높일 수 있다. 밉맵 이미지들은 이미 앤티에일리어싱(Anti-Aliasing) 처리가 되어 있으므로 렌더링 과정에서 일어날 수 있는 손실이 줄고, 실시간 렌더링의 부하도 줄일 수 있다. 확대 및 축소 과정도 동일한 방법으로 처리할 수 있다.Each bitmap image of a mipmap set is a pre-reduced size of the base texture by a certain amount. If the texture looks more than its original size, you can use the default texture, but if it looks farther or smaller than the original, use a reduced texture instead of a render. This can speed up rendering because the number of texels used in rendering is much smaller. Since mipmap images are already anti-aliased, the loss that can occur during rendering can be reduced and the load of real-time rendering can be reduced. The enlargement and reduction processes can be processed in the same way.
도 7 및 도 8은 본 발명의 제1 실시 예에 따라 공유 메모리를 이용하여 텍스쳐 데이터를 선인출하는 방법을 설명하기 위해 참조되는 도면이다. FIGS. 7 and 8 are views for explaining a method of pre-exporting texture data using a shared memory according to the first embodiment of the present invention.
도 7 및 도 8을 참조하면, 3D 렌더링 수행 시, 그래픽 처리 장치(830)는 텍스쳐 맵핑에 필요한 텍스쳐 데이터가 텍스쳐 캐시(831)에 저장되어 있는지 여부를 확인한다(S705). 즉, 그래픽 처리 장치(830)는 원하는 텍셀에 대해 텍스쳐 캐시 미스(miss)가 발생하는지 여부를 확인한다. Referring to FIGS. 7 and 8, in performing 3D rendering, the
상기 705 단계의 확인 결과, 텍스쳐 캐시 미스가 발생하지 않은 경우(즉, 텍스쳐 캐시 히트가 발생한 경우), 그래픽 처리 장치(830)는 텍스쳐 캐시(831)에 저장된 텍스쳐 데이터를 불러와서 텍스쳐 맵핑을 수행한다(S745). If it is determined in step 705 that the texture cache miss does not occur (i.e., when a texture cache hit occurs), the
한편, 상기 705 단계의 확인 결과, 텍스쳐 캐시 미스가 발생한 경우, 그래픽 처리 장치(830)는 상기 텍스쳐 캐시 미스가 현재 프레임에서 해당 텍스쳐 밉맵의 첫번째 미스인지 여부를 확인한다(S710). If it is determined in step 705 that the texture cache miss occurs, the
상기 710 단계의 확인 결과, 텍스쳐 캐시 미스가 해당 텍스쳐 밉맵의 첫번째 미스인 경우, 그래픽 처리 장치(830)는 해당 텍스쳐 밉맵의 레벨을 밉맵 테이블(832)에 저장한다(S715). If it is determined in step 710 that the texture cache miss is the first miss of the texture mipmap, the
그래픽 처리 장치(830)는 외부 메모리(820)에 접속하여 원하는 텍스쳐 데이터를 캐시 블록(833) 단위로 읽어온다(S720). 그래픽 처리 장치(830)는 외부 메모리(820)에서 읽어온 텍스터 데이터를 기반으로 텍스쳐 캐시(831)를 갱신한 후 텍스쳐 맵핑을 수행한다(S740, S745). The
한편, 상기 710 단계의 확인 결과, 텍스쳐 캐시 미스가 해당 텍스쳐 밉맵의 첫번째 미스가 아닌 경우, 그래픽 처리 장치(830)는 상기 텍스쳐 캐시 미스가 현재 프레임에서 해당 텍스쳐 밉맵의 두번째 미스인지 여부를 확인한다(S725). If it is determined in step 710 that the texture cache miss is not the first miss of the texture mipmap, the
상기 725 단계의 확인 결과, 텍스쳐 캐시 미스가 해당 텍스쳐 밉맵의 두번째 미스인 경우, 그래픽 처리 장치(830)는 밉맵 테이블(832)에서 해당 텍스쳐 밉맵의 이전 엑세스 기록을 참조한다(S730). If it is determined in step 725 that the texture cache miss is the second miss of the texture mipmap, the
그래픽 처리 장치(830)는 외부 메모리(820)로부터 텍스쳐 데이터를 밉맵 단위(834)로 선인출하여 공유 메모리(840)에 저장한다(S735). 이때, 그래픽 처리 장치(830)는 밉맵 테이블(832)에 저장된 해당 텍스쳐 밉맵의 레벨을 참조하여 선인출하게 된다. 이후, 그래픽 처리 장치(830)는 공유 메모리(840)에서 읽어온 텍스터 데이터를 기반으로 텍스쳐 캐시(831)를 갱신한 후 텍스쳐 맵핑을 수행한다(S740, S745). The
한편, 상기 725 단계의 확인 결과, 텍스쳐 캐시 미스가 해당 텍스쳐 밉맵의 두번째 미스가 아닌 경우, 그래픽 처리 장치(830)는 상기 텍스쳐 캐시 미스가 현재 프레임에서 해당 텍스쳐 밉맵의 세번째 이후 미스인지 여부를 확인한다(S750). If it is determined in step 725 that the texture cache miss is not the second miss of the texture mipmap, the
상기 750 단계의 확인 결과, 텍스쳐 캐시 미스가 해당 텍스쳐 밉맵의 세번째 이후 미스인 경우, 그래픽 처리 장치(830)는 텍스쳐 맵핑에 필요한 텍스쳐 데이터를 공유 메모리(840)에서 바로 읽어온다(S755). 그리고, 그래픽 처리 장치(830)는 공유 메모리(840)에서 읽어온 텍스터 데이터를 기반으로 텍스쳐 캐시(831)를 갱신한 후 텍스쳐 맵핑을 수행한다(S740, S745). If it is determined in step 750 that the texture cache miss is a third miss due to the texture mipmap, the
이와 같이, 본 발명의 제1 실시 예에 따른 데이터 선인출 방법은, 하나의 밉맵이 읽혀졌을 경우 다수의 텍셀이 이 밉맵을 읽을 가능성이 높은 '공간 지역성(spatial locality)'을 이용하는 방법으로, 밉맵 전체를 읽을 확률이 높은 경우, 해당 밉맵 레벨에 해당하는 텍스쳐 데이터를 선인출하여 공유 메모리에 저장함으로써, 이후 텍스쳐 맵핑 시 빠른 메모리 엑세스가 가능하도록 한다.As described above, in the data line fetching method according to the first embodiment of the present invention, when one mipmap is read, a method in which a plurality of texels use 'spatial locality,' which is highly likely to read the mipmap, If the entirety of the mipmap level is likely to be read, texture data corresponding to the mipmap level is prefetched and stored in the shared memory so that fast memory access is enabled in the subsequent texture mapping.
도 9 및 도 10은 본 발명의 제2 실시 예에 따라 공유 메모리를 이용하여 텍스쳐 데이터를 선인출하는 방법을 설명하기 위해 참조되는 도면이다. 이하, 본 실시 예에 따른 그래픽 처리 장치에서는 전체 프레임(1050)을 작은 크기의 타일(tile, 1051)로 분할하여 렌더링하는 타일 기반의 렌더링 방식을 이용함을 가정하여 설명하도록 한다.FIG. 9 and FIG. 10 are views for explaining a method of pre-exporting texture data using a shared memory according to a second embodiment of the present invention. Hereinafter, the graphics processing apparatus according to the present embodiment will be described on the assumption that a tile-based rendering method for dividing and rendering the
도 9 및 도 10을 참조하면, 그래픽 처리 장치(1030)는 각 타일별로 이전 프레임에서 빈번하게 텍스쳐 캐시 미스를 발생시킨 테스쳐 데이터를 통계내어 획득한 텍스쳐 밉맵 목록을 밉맵 테이블(1032)에 저장한다. 가령, 아래 표 1과 같이, 밉맵 테이블(1032)은 각 타일별로 빈번하게 읽혀진 텍스쳐들 및 이들의 밉맵 레벨들을 포함하는 텍스쳐 밉맵 목록을 저장한다.Referring to FIGS. 9 and 10, the
2
각 타일별로 3D 렌더링 시, 그래픽 처리 장치(1030)는 이전 프레임에서 빈번하게 텍스쳐 캐시 미스를 발생시킨 텍스쳐 밉맵 목록을 밉맵 테이블(1032)로부터 순차적으로 읽어온다(S910). Upon 3D rendering for each tile, the
그래픽 처리 장치(1030)는 특정 밉맵 레벨에 해당하는 텍스쳐 데이터가 공유 메모리(1040) 내에 존재하는지 여부를 확인한다(S920).The
상기 920 단계의 확인 결과, 특정 밉맵 레벨에 해당하는 텍스쳐 데이터가 공유 메모리(1040) 내에 존재하지 않는 경우, 그래픽 처리 장치(1030)는 해당 밉맵 레벨에 해당하는 텍스쳐 데이터를 외부 메모리(1020)로부터 선인출하여 공유 메모리(1040)에 저장한다(S930). If it is determined in step 920 that the texture data corresponding to the specific mipmap level does not exist in the shared
한편, 상기 920 단계의 확인 결과, 특정 밉맵 레벨에 해당하는 텍스쳐 데이터가 공유 메모리(1040) 내에 존재하는 경우, 그래픽 처리 장치(1030)는 상기 특정 밉맵 레벨이 해당 텍스쳐 밉맵 목록 상의 마지막 밉맵 레벨인지 여부를 확인한다(S940). If it is determined in step 920 that the texture data corresponding to the specific mipmap level exists in the shared
상기 940 단계의 확인 결과, 상기 특정 밉맵 레벨이 텍스쳐 밉맵 목록 상의 마지막 밉맵 레벨이 아닌 경우, 그래픽 처리 장치(1030)는 910 단계로 이동하여 상기 특정 밉맵 레벨의 다음 밉맵 레벨에 대해 동일한 과정을 수행한다. If it is determined in step 940 that the specific mipmap level is not the last mipmap level on the texture mipmap list, the
한편, 상기 940 단계의 확인 결과, 상기 특정 밉맵 레벨이 텍스쳐 밉맵 목록 상의 마지막 밉맵 레벨인 경우, 그래픽 처리 장치(1030)는 해당 타일의 텍스쳐 맵핑을 수행한다(S950). 좀 더 구체적으로, 그래픽 처리 장치(1030)는 텍스쳐 맵핑에 필요한 텍스쳐 데이터에 대해 텍스쳐 캐시 미스가 발생하는지 여부를 확인한다. 상기 확인 결과, 텍스쳐 캐시 미스가 발생하지 않은 경우, 그래픽 처리 장치(1030)는 텍스쳐 캐시(1031)에 저장된 텍스쳐 데이터를 기반으로 텍스쳐 맵핑을 수행한다. 한편, 상기 확인 결과, 텍스쳐 캐시 미스가 발생한 경우, 그래픽 처리 장치(1030)는 공유 메모리(1040)에서 읽어온 텍스쳐 데이터를 기반으로 텍스쳐 캐시(1031)를 갱신한 후 텍스쳐 맵핑을 수행한다. If it is determined in step 940 that the specific mipmap level is the last mipmap level on the texture mipmap list, the
이후, 그래픽 처리 장치(1030)는 현재 프레임에서 빈번하게 텍스쳐 캐시 미스를 발생시킨 텍스쳐 데이터를 통계내어 획득한 텍스쳐 밉맵 목록을 밉맵 테이블(1032)에 저장한다(S960). 즉, 그래픽 처리 장치(1030)는 밉맵 테이블(1032)에 저장된 이전 프레임에 관한 텍스쳐 밉맵 목록을 현재 프레임에 관한 텍스쳐 밉맵 목록으로 갱신한다. In step S960, the
이와 같이, 본 발명의 제2 실시 예에 따른 데이터 선인출 방법은, 프레임간 변화가 적을 경우 이전 프레임에서 빈번하게 읽혀진 텍스쳐 밉맵은 다음 프레임에서도 읽혀질 확률이 높다는 '시간 지역성(Temporal locality)'을 이용하는 방법으로, 밉맵 전체를 읽을 확률이 높은 경우, 밉맵 레벨에 해당하는 텍스쳐 데이터를 선인출하여 공유 메모리에 저장함으로써, 이후 텍스쳐 맵핑 시 빠른 메모리 엑세스가 가능하도록 한다.As described above, in the data line fetching method according to the second embodiment of the present invention, when a change between frames is small, a 'temporal locality' in which a texture mipmap frequently read in a previous frame has a high probability of being read in the next frame Method, if the probability of reading the whole mipmap is high, the texture data corresponding to the mipmap level is prefetched and stored in the shared memory, thereby enabling fast memory access in the subsequent texture mapping.
도 11 및 도 12는 본 발명의 제3 실시 예에 따라 공유 메모리를 이용하여 텍스쳐 데이터를 선인출하는 방법을 설명하기 위해 참조되는 도면이다. FIGS. 11 and 12 are views for explaining a method of pre-exporting texture data using a shared memory according to a third embodiment of the present invention.
도 11 및 도 12를 참조하면, 3D 렌더링 수행 시, 그래픽 처리 장치(1230)는 외부 메모리(1220)로부터 빈번하게 읽혀질 텍스쳐 데이터를 지정하여 밉맵 테이블(1232)에 저장한다(S1110). 이때, 해당 애플리케이션의 프로그래머는 API 확장 등을 통해 상기 텍스쳐 데이터를 직접 지정할 수 있다. Referring to FIGS. 11 and 12, at the time of 3D rendering, the
그래픽 처리 장치(1230)는 프로그래머에 의해 지정된 텍스쳐 밉맵이 공유 메모리(1240)에 존재하는지 여부를 확인한다(S1120). The
상기 1120 단계의 확인 결과, 공유 메모리(1240)에 해당 텍스쳐 밉맵이 존재하는 경우, 그래픽 처리 장치(1230)는 상기 공유 메모리(1240)에 저장된 해당 텍스쳐 밉맵을 유지한다(S1130). If it is determined in step 1120 that the texture mipmap exists in the shared
한편, 상기 1120 단게의 확인 결과, 공유 메모리(1240)에 해당 텍스쳐 밉맵이 존재하지 않는 경우, 그래픽 처리 장치(1230)는 해당 텍스쳐 밉맵 전체를 외부 메모리(1220)로부터 선인출하여 공유 메모리(1240)에 저장한다(S1140). If it is determined that the texture mipmap does not exist in the shared
이후, 그래픽 처리 장치(1230)는 텍스쳐 맵핑에 필요한 텍스쳐 데이터에 대해 텍스쳐 캐시 미스(miss)가 발생하는지 여부를 확인한다(S1150). Thereafter, the
상기 1150 단계의 확인 결과, 텍스쳐 캐시 미스가 발생한 경우, 그래픽 처리 장치(1230)는 공유 메모리(1240)에서 읽어온 텍스쳐 데이터를 기반으로 텍스쳐 캐시(1231)를 갱신한 후 텍스쳐 맵핑을 수행한다(S1160, S1170). If it is determined in step 1150 that the texture cache miss occurs, the
한편, 상기 1150 단계의 확인 결과, 텍스쳐 캐시 히트가 발생한 경우, 그래픽 처리 장치(1230)는 텍스쳐 캐시(1231)에 저장된 텍스쳐 데이터를 기반으로 텍스쳐 맵핑을 수행한다(S1170).If it is determined in step 1150 that the texture cache hit occurs, the
이와 같이, 본 발명의 제3 실시 예에 따른 데이터 선인출 방법은, 프로그래머가 직접 텍스쳐 데이터를 지정하여 선인출하는 방법으로, 지정된 밉맵 레벨에 해당하는 텍스쳐 데이터를 공유 메모리에 저장함으로써, 이후 텍스쳐 맵핑 시 빠른 메모리 엑세스가 가능하도록 한다.As described above, in the data line fetching method according to the third embodiment of the present invention, the programmer directly stores the texture data corresponding to the specified mipmap level in the shared memory by designating and shipping the texture data, To enable fast memory access.
도 13 및 도 14는 본 발명의 제4 실시 예에 따라 공유 메모리를 이용하여 텍스쳐 데이터를 선인출하는 방법을 설명하기 위해 참조되는 도면이다. FIGS. 13 and 14 are diagrams for explaining a method of pre-exporting texture data using a shared memory according to a fourth embodiment of the present invention.
도 13 및 도 14를 참조하면, 3D 렌더링 수행 시, 그래픽 처리 장치(1430)는 텍스쳐 맵핑에 필요한 텍스쳐 데이터가 텍스쳐 캐시(1431)에 저장되어 있는지 여부를 확인한다(S1310). 즉, 그래픽 처리 장치(1430)는 원하는 텍셀에 대해 텍스쳐 캐시 미스(miss)가 발생하는지 여부를 확인한다. Referring to FIGS. 13 and 14, at the time of 3D rendering, the
상기 1310 단계의 확인 결과, 텍스쳐 캐시 미스가 발생하지 않은 경우(즉, 텍스쳐 캐시 히트가 발생한 경우), 그래픽 처리 장치(1430)는 텍스쳐 캐시(1431)에 저장된 텍스쳐 데이터를 불러와서 텍스쳐 맵핑을 수행한다(S1360). If it is determined in step 1310 that the texture cache miss does not occur (i.e., the texture cache hit occurs), the
한편, 상기 1310 단계의 확인 결과, 텍스쳐 캐시 미스가 발생한 경우, 그래픽 처리 장치(1430)는 외부 메모리(1420) 또는 공유 메모리(1440)로부터 읽어온 텍스쳐 데이터를 기반으로 텍스쳐 캐시(1431)를 갱신한다(S1320). If it is determined in step 1310 that the texture cache miss occurs, the
그래픽 처리 장치(1430)는 갱신된 텍스쳐 캐시(1431)에서 텍스쳐 데이터의 퇴출이 발생하는지 여부를 확인한다(S1330). 텍스쳐 캐시(1431)의 저장 용량이 한정적이기 때문에, 상기 텍스쳐 캐시(1431)로 새로운 데이터가 입력되면 그에 해당하는 기존의 데이터가 외부로 퇴출하게 된다.The
상기 1330 단계의 확인 결과, 텍스쳐 캐시(1431)에서 텍스쳐 데이터의 퇴출이 발생하는 경우, 그래픽 처리 장치(1430)는 퇴출된 텍스쳐 데이터의 밉맵 레벨에 해당하는 전체 텍스쳐 데이터를 외부 메모리(1420)로부터 선인출하여 공유 메모리(1440)에 저장한다(S1340). 이에 따라, 상기 공유 메모리(1440)는 일종의 희생 캐시(victim cache)로 활용될 수 있다. If it is determined in step 1330 that the texture data is to be discarded in the
또한, 그래픽 처리 장치(1430)가 희생 캐시(1432)를 구비하는 경우, 그래픽 처리 장치(1340)는 상기 퇴출된 텍스쳐 데이터를 희생 캐시(1432)에 임시로 저장할 수 있다(S1350). 상기 희생 캐시(1432)에 저장된 텍스쳐 데이터는 추후 텍스쳐 맵핑을 위해 사용될 수 있다. Also, if the
이후, 그래픽 처리 장치(1430)는 갱신된 텍스쳐 캐시(1431)에 저장된 텍스쳐 데이터를 불러와서 텍스쳐 맵핑을 수행한다(S1360). Thereafter, the
한편, 상기 1330 단계의 확인 결과, 텍스쳐 캐시(1431)에서 텍스쳐 데이터의 퇴출이 발생하지 않는 경우, 그래픽 처리 장치(1430)는 갱신된 텍스쳐 캐시(1431)에 저장된 텍스쳐 데이터를 기반으로 텍스쳐 맵핑을 수행한다(S1360).If it is determined in step 1330 that the texture data does not exit in the
이와 같이, 본 발명의 제4 실시 예에 따른 데이터 선인출 방법은, 텍스쳐 캐시에서 텍스쳐 데이터의 퇴출이 발생하는 경우, 상기 퇴출된 텍스쳐 데이터의 밉맵 레벨에 해당하는 텍스쳐 데이터를 선인출하여 공유 메모리에 저장함으로써, 이후 텍스쳐 맵핑 시 빠른 메모리 엑세스가 가능하도록 한다.As described above, in the data line fetching method according to the fourth embodiment of the present invention, when the extraction of the texture data occurs in the texture cache, the texture data corresponding to the mipmap level of the extracted texture data is prefetched and stored in the shared memory Thereby enabling fast memory accesses in subsequent texture mappings.
한편, 설명의 편의상, 상술한 제1 내지 제4 실시 예에 따른 데이터 선인출 프로세스들이 그래픽 처리 장치에 의해 수행되는 것으로 예시하고 있으나, 이를 제한하지는 않는다. 따라서, 상기 데이터 선인출 프로세서들은 그래픽 처리 장치 대신, 제어부(180) 또는 모바일 AP 내의 별도의 컨트롤러에 의해 수행될 수 있음은 당업자에게 자명할 것이다.For the sake of convenience, the data line drawing processes according to the first to fourth embodiments are illustrated as being performed by the graphic processing apparatus, but the present invention is not limited thereto. Therefore, it will be apparent to those skilled in the art that the data line fetch processors may be performed by the
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 상기 컴퓨터는 단말기의 제어부(180)를 포함할 수도 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The present invention described above can be implemented as computer readable codes on a medium on which a program is recorded. The computer readable medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of the computer readable medium include a hard disk drive (HDD), a solid state disk (SSD), a silicon disk drive (SDD), a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, , And may also be implemented in the form of a carrier wave (e.g., transmission over the Internet). In addition, the computer may include a
100 : 이동 단말기 110 : 무선 통신부
120 : 입력부 140 : 센싱부
150 : 출력부 160 : 인터페이스부
170 : 메모리 180 : 제어부
190 : 전원 공급부100: mobile terminal 110: wireless communication unit
120: input unit 140: sensing unit
150: output unit 160: interface unit
170: memory 180:
190: Power supply
Claims (6)
텍스쳐 데이터를 저장하는 외부 메모리;
상기 외부 메모리로부터 상기 텍스쳐 데이터를 밉맵(mipmap) 단위로 선인출하여 저장하는 공유 메모리; 및
상기 공유 메모리에 저장된 텍스쳐 데이터를 기반으로 텍스쳐 맵핑을 수행하는 그래픽 처리 장치를 포함하는 이동 단말기.1. A mobile terminal performing three-dimensional rendering,
An external memory for storing texture data;
A shared memory for prefetching the texture data from the external memory in units of mipmaps; And
And a graphic processing device for performing texture mapping based on the texture data stored in the shared memory.
상기 공유 메모리는 SRAM(Static Random Access Memory) 메모리임을 특징으로 하는 이동 단말기.The method according to claim 1,
Wherein the shared memory is a static random access memory (SRAM) memory.
텍스쳐 캐시 미스(miss) 발생 시, 상기 그래픽 처리 장치는 상기 공유 메모리에서 읽어온 텍스쳐 데이터를 기반으로 텍스쳐 캐시를 갱신하는 것을 특징으로 하는 이동 단말기.The method according to claim 1,
Wherein when the texture cache miss occurs, the graphics processor updates the texture cache based on the texture data read from the shared memory.
상기 그래픽 처리 장치는 상기 텍스쳐 맵핑에 필요한 텍스쳐 데이터의 밉맵 레벨에 관한 정보를 포함하는 밉맵 테이블을 구비하는 것을 특징으로 하는 이동 단말기.The method according to claim 1,
Wherein the graphic processing apparatus comprises a mipmap table including information on a mipmap level of texture data required for the texture mapping.
현재 프레임의 각 타일 별로 3D 렌더링 수행 시, 상기 그래픽 처리 장치는 이전 프레임에서 빈번하게 텍스쳐 캐시 미스를 발생시킨 텍스쳐 밉맵 레벨에 해당하는 텍스쳐 데이터를 상기 외부 메모리로부터 선인출하여 상기 공유 메모리로 저장하는 것을 특징으로 하는 이동 단말기.The method according to claim 1,
When the 3D rendering is performed for each tile of the current frame, the graphic processing apparatus prefetches texture data corresponding to the texture mipmap level that frequently caused the texture cache miss in the previous frame from the external memory and stores the texture data in the shared memory The mobile terminal comprising:
텍스쳐 캐시에서 텍스쳐 데이터의 퇴출이 발생한 경우, 상기 그래픽 처리 장치는 상기 퇴출된 텍스쳐 데이터의 밉맵 레벨 전체에 해당하는 텍스쳐 데이터를 상기 외부 메모리에서 선인출하여 상기 공유 메모리로 저장하는 것을 특징으로 하는 이동 단말기.The method according to claim 1,
Wherein the graphic processor extracts texture data corresponding to the entire mipmap level of the extracted texture data from the external memory and stores the extracted texture data in the shared memory when the texture data is exited from the texture cache. .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140119248A KR20160029550A (en) | 2014-09-05 | 2014-09-05 | Mobile terminal and method for controlling the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140119248A KR20160029550A (en) | 2014-09-05 | 2014-09-05 | Mobile terminal and method for controlling the same |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20160029550A true KR20160029550A (en) | 2016-03-15 |
Family
ID=55542127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140119248A KR20160029550A (en) | 2014-09-05 | 2014-09-05 | Mobile terminal and method for controlling the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20160029550A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020036244A1 (en) * | 2018-08-13 | 2020-02-20 | 엘지전자 주식회사 | Mobile device and method for controlling same |
-
2014
- 2014-09-05 KR KR1020140119248A patent/KR20160029550A/en not_active Application Discontinuation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020036244A1 (en) * | 2018-08-13 | 2020-02-20 | 엘지전자 주식회사 | Mobile device and method for controlling same |
KR20200019028A (en) * | 2018-08-13 | 2020-02-21 | 엘지전자 주식회사 | Mobile device and, the method thereof |
US11216989B2 (en) | 2018-08-13 | 2022-01-04 | Lg Electronics Inc. | Mobile device and method for controlling same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022527686A (en) | Shadow rendering methods, devices, computer devices and computer programs | |
JP2021511728A (en) | How to display additional objects and their devices, computer devices and storage media | |
KR102625773B1 (en) | Device for Generating Image Having Different Rendering Quality Based on View Vector | |
WO2019179237A1 (en) | Satellite-view electronic map acquisition method and device, apparatus, and storage medium | |
WO2019076274A1 (en) | Method and terminal for displaying dynamic image | |
CN109510940B (en) | Image display method and terminal equipment | |
CN108055567B (en) | Video processing method and device, terminal equipment and storage medium | |
WO2022100663A1 (en) | Method, apparatus and device for selecting anti-aliasing algorithm and readable storage medium | |
CN107644395B (en) | Image processing method and mobile device | |
US20110216165A1 (en) | Electronic apparatus, image output method, and program therefor | |
US11523063B2 (en) | Systems and methods for placing annotations in an augmented reality environment using a center-locked interface | |
CN111915481B (en) | Image processing method, device, electronic equipment and medium | |
CN112672185B (en) | Augmented reality-based display method, device, equipment and storage medium | |
KR102260805B1 (en) | Image searching device and method thereof | |
CN111625315A (en) | Page display method and device, electronic equipment and storage medium | |
CN111586444A (en) | Video processing method and device, electronic equipment and storage medium | |
CN111445568B (en) | Character expression editing method, device, computer storage medium and terminal | |
KR20160148631A (en) | Virtual memory supported compression control surfaces | |
KR20160029550A (en) | Mobile terminal and method for controlling the same | |
CN109714628B (en) | Method, device, equipment, storage medium and system for playing audio and video | |
CN110889060A (en) | Webpage display method and device, computer equipment and storage medium | |
KR20200144702A (en) | System and method for adaptive streaming of augmented reality media content | |
CN111275607A (en) | Interface display method and device, computer equipment and storage medium | |
WO2018192455A1 (en) | Method and apparatus for generating subtitles | |
CN113223012B (en) | Video processing method and device and electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |