KR102353036B1 - 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치 및 방법 - Google Patents

그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치 및 방법 Download PDF

Info

Publication number
KR102353036B1
KR102353036B1 KR1020210114512A KR20210114512A KR102353036B1 KR 102353036 B1 KR102353036 B1 KR 102353036B1 KR 1020210114512 A KR1020210114512 A KR 1020210114512A KR 20210114512 A KR20210114512 A KR 20210114512A KR 102353036 B1 KR102353036 B1 KR 102353036B1
Authority
KR
South Korea
Prior art keywords
command
graphic
memory
command queue
stored
Prior art date
Application number
KR1020210114512A
Other languages
English (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 KR1020210114512A priority Critical patent/KR102353036B1/ko
Application granted granted Critical
Publication of KR102353036B1 publication Critical patent/KR102353036B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

본 발명은 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 방법에 관한 것으로, 그래픽 메모리 컨트롤러에 의해 그래픽 메모리에 커맨드 큐(command queue) 영역이 지정되는 단계, 중앙 처리 장치(central processing unit)에 의해 내부 메모리에 적어도 하나의 커맨드 패킷(command packet)이 생성되는 단계, 상기 내부 메모리에 저장된 상기 적어도 하나의 커맨드 패킷을 상기 커맨드 큐에 전달되는 단계, 그래픽 처리 장치(graphic processing unit)이 상기 커맨드 큐에 저장된 상기 적어도 하나의 커맨드 패킷을 기반으로 그래픽 처리 작업을 수행하는 단계 및 디스플레이 컨트롤러가 상기 그래픽 처리 작업을 기반으로 그래픽 데이터를 출력하는 단계를 포함할 수 있다.

Description

그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치 및 방법{Device and method that processes 2D graphics commands based on graphics memory}
본 발명은 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치 및 방법에 관한 것으로, 더욱 구체적으로는 그래픽 처리 장치에서 명령어 수행 시 명령어를 그래픽 메모리에 저장하여 처리하는 장치 및 방법에 관한 것이다.
그래픽 처리 장치는 컴퓨터 장치에서 그래픽에 관련된 연산을 수행하는 장치로써, 그래픽 카드 또는 마더보드에서 그래픽에 관련된 연산을 처리하는 반도체 칩을 말한다. 이러한 그래픽 처리 장치는 그래픽 프로세서 또는 간단히 GPU(graphics processing unit)라고도 한다.
그래픽 처리 장치는 중앙 처리 장치(CPU)의 그래픽 작업으로 인해 생기는 병목 현상을 해결하기 위해 만들어 졌으며, 중앙 처리 장치를 대신하여 그래픽 처리 능력을 최대화할 목적으로 쓰인다.
그래픽 처리 장치는 2D 또는 3D 그래픽을 CPU가 처리하는 것보다 빠르게 처리할 수 있다. 이러한 그래픽 가속기능 때문에 그래픽 처리 장치가 포함된 그래픽 카드를 그래픽 가속기(graphics accelerator)라고도 하며, 그래픽 카드의 성능은 GPU와 램(RAM)에 따라 달라진다.
일반적으로 2차원 그래픽 처리 장치는 2차원 그래픽 처리 장치의 프로세서에 구비된 내부 명령어 버퍼에 저장된 소수의 명령어들의 집합으로 이루어진 프로그램을 읽어 들여 이를 명령어 해석기에 의해 해석하고, 실행기에 의해 각 명령어에 해당하는 동작을 실행한다.
즉, 2차원 그래픽 처리 장치의 프로세서는 아래와 같이 5단계 파이프라인으로 동작을 실행한다. 1단계는 그래픽 명령어를 읽어 들이고(Instruction fetch), 2단계는 명령어 해석기에 의해 해석(Instruction decode), 3단계는 실행기에 의해 실행(execute), 4단계는 실행된 결과를 메모리에 저장(memory) 및 5단계는 메모리에 있는 데이터를 디스플레이로 송출(Write Back)이다.
종래의 2차원 그래픽 처리 장치는 그래픽 프로세서 내에 커맨드 패킷 버퍼(command packet buffer) 영역, 즉 그래픽 엔진 내에 자그마한 명령어 버퍼가 존재하여 그래픽 처리에 관한 명령어가 이 커맨드 패킷 버퍼 영역에 두고 처리하게 된다. 이에 따라, 그래픽 렌더링의 긴 대기 시간이 필요로 하는 문제점이 있었다.
또한, 그래픽 처리 장치가 긴 대기 시간이 필요함에 따라 중앙 처리 장치 또한 명령어를 빠르고 안전하게 전달하기 어려운 문제점이 있었고, 이는 중앙 처리 장치와 2차원 그래픽 처리 장치가 각자의 역할을 병렬로 수행하기 어렵게 만들었다.
따라서 명령어를 빠르게 처리하기 위해 그래픽 처리 장치의 부하를 감소시키는 기술이 필요한 실정이다.
한국 등록특허 제10-1952221호
본 발명은 상술한 바와 같은 종래 기술의 문제점을 해결하기 위한 것으로, 커맨드 큐를 그래픽 메모리에 구비하여 그래픽 처리 장치가 빠르고 안전하게 그래픽 작업을 처리하여 디스플레이 하는 것에 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 방법은 그래픽 메모리 컨트롤러에 의해 그래픽 메모리에 커맨드 큐(command queue) 영역이 지정되는 단계; 중앙 처리 장치(central processing unit)에 의해 내부 메모리에 적어도 하나의 커맨드 패킷(command packet)이 생성되는 단계; 상기 내부 메모리에 저장된 상기 적어도 하나의 커맨드 패킷을 상기 커맨드 큐에 전달되는 단계; 그래픽 처리 장치(graphic processing unit)이 상기 커맨드 큐에 저장된 상기 적어도 하나의 커맨드 패킷을 기반으로 그래픽 처리 작업을 수행하는 단계; 및 디스플레이 컨트롤러가 상기 그래픽 처리 작업을 기반으로 그래픽 데이터를 출력하는 단계;를 포함할 수 있다.
여기서, 상기 커맨드 큐는 링 버퍼 구조로 구비되어 있고, 상기 적어도 하나의 커맨드 패킷은 상기 커맨드 큐 내의 주소에서 순환되어 저장되는 것일 수 있다.
또, 상기 중앙 처리 장치가 상기 커맨드 큐에 상기 적어도 하나의 커맨드 패킷을 생성하는 것과, 상기 그래픽 처리 장치가 상기 커맨드 큐에 저장된 상기 커맨드 큐에 저장된 상기 적어도 하나의 커맨드 패킷을 기반으로 그래픽 작업을 수행하는 것은 서로 병렬적으로 처리될 수 있다.
또한, 상기 커맨드 큐에 저장된 상기 적어도 하나의 커맨드 패킷은 선입 선출(first in, first out)의 방식을 기반으로 상기 그래픽 처리 장치에 의해 처리되는 것일 수 있다.
아울러, 상기 커맨드 큐는 상기 그래픽 메모리에 128kbyte의 영역으로 형성되고, 상기 적어도 하나의 커맨드 패킷은 64byte로 형성될 수 있다.
또한, 상기 커맨드 큐에는 라이트 포인터 레지스터(write pointer register) 및 리드 포인터 레지스터(read pointer register)가 구비되고, 상기 라이트 포인터 레지스터는 상기 커맨드 큐 내에 상기 적어도 하나의 커맨드 패킷이 저장될 주소를 가리키며, 상기 리드 포인터 레지스터는 상기 커맨드 큐 내에서 상기 그래픽 처리 장치가 처리해야 할 상기 적어도 하나의 커맨드 패킷이 저장된 주소를 가리킬 수 있다.
또한, 상기 라이트 포인터 레지스터는 상기 커맨드 큐 내에 상기 적어도 하나의 커맨드 패킷이 저장될 주소를 가리킨 후 상기 적어도 하나의 커맨드 패킷이 저장된 후 상기 적어도 하나의 커맨드 패킷이 저장될 다음 주소를 가리킬 수 있다.
아울러, 상기 리드 포인터 레지스터는 상기 그래픽 처리 장치가 상기 리드 포인터 레지스터가 가리킨 주소의 상기 커맨드 패킷을 처리할 시 상기 그래픽 처리 장치가 처리할 다음 주소를 자동으로 가리킬 수 있다.
또, 상기 그래픽 처리 장치는, 상기 라이트 포인터 레지스터 및 상기 리드 포인트 레지스터가 상이할 경우 상기 적어도 하나의 커맨드 패킷에 관한 그래픽 처리 작업을 수행하고, 상기 라이트 포인터 레지스터 및 상기 리드 포인트 레지스터가 동일할 경우 상기 적어도 하나의 커맨드 패킷에 관한 그래픽 처리 작업을 보류할 수 있다.
또, 상기 그래픽 처리 장치가 비활성화 될 경우 상기 라이트 포인터 레지스터 및 상기 리드 포인트 레지스터는 초기화될 수 있다.
또한, 상기 내부 메모리는 직접 메모리 액세스 방식을 기반으로 상기 커맨드 큐에 상기 적어도 하나의 커맨드 패킷을 전달할 수 있다.
한편, 상기 목적을 달성하기 위한 본 발명에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치는 그래픽 메모리에 커맨드 큐(command queue) 영역을 지정하는 그래픽 메모리 컨트롤러; 저장된 상기 적어도 하나의 커맨드 패킷을 상기 커맨드 큐에 전달하는 내부 메모리; 상기 내부 메모리에 적어도 하나의 커맨드 패킷(command packet)을 생성하는 중앙 처리 장치(central processing unit); 상기 커맨드 큐에 저장된 상기 적어도 하나의 커맨드 패킷을 기반으로 그래픽 처리 작업을 수행하는 그래픽 처리 장치(graphic processing unit); 및 상기 그래픽 처리 작업을 기반으로 그래픽 데이터를 출력하는 디스플레이 컨트롤러;를 포함할 수 있다.
본 발명에 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치 및 방법은 다음과 같은 효과가 있다.
첫째, 명령을 빠르게 전달할 수 있다. 본 발명에 따른 2차원 그래픽 명령어를 처리하는 장치 및 방법은 외부의 그래픽 메모리에 규모가 큰 커맨드 큐를 구비하고, 그래픽 처리 장치의 엔진 관리부는 커맨드 큐를 통해 모든 명령어를 수신할 수 있다. 이에 따라, 중앙 처리 장치 및 그래픽 처리 장치는 대기 시간을 최소화 할 수 있다.
둘째, 병렬로 수행이 가능하다. 본 발명에 따른 2차원 그래픽 명령어를 처리하는 장치 및 방법은 외부의 그래픽 메모리에 규모가 큰 커맨드 큐를 구비되어 있다. 따라서 중앙 처리 장치는 명령어를 커맨드 큐에 전달하기만 하면 되고, 그래픽 처리 장치의 엔진 관리부는 커맨드 큐에 전달된 명령어를 선입선출 방식에 따라 처리하기만 하면 되기 때문에 각자의 작업 처리를 병렬로 수행할 수 있다.
도 1은 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치의 블록도이다.
도 2는 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 방법을 나타낸 순서도이다.
도 3은 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치에서 커맨드 큐의 동작 방식을 개략적으로 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치에서 커맨드 큐의 구조를 구체적으로 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치에서 그래픽 작업 처리에 따라 커맨드 큐 내에서 라이트 포인터 레지스터 및 리드 포인터 레지스터가 증가하는 것을 개략적으로 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치에서 커맨드 큐 및 커맨드 패킷의 크기를 예시적으로 나타낸 도면이다.
도 7은 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치에서 그래픽 처리 장치의 엔진 관리부의 상태 전환을 개략적으로 나타낸 도면이다.
이하에서는 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 설명한다. 다만 발명의 요지와 무관한 일부 구성은 생략 또는 압축할 것이나, 생략된 구성이라고 하여 반드시 본 발명에서 필요가 없는 구성은 아니며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 결합되어 사용될 수 있다.
도 1은 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치의 블록도이다.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치는 중앙 처리 장치(100), 캐시 메모리(110), 내부 메모리(120), 그래픽 메모리 컨트롤러(130), 그래픽 처리 장치(140), 외부 메모리(150) 및 디스플레이 컨트롤러(160)를 포함할 수 있다.
중앙 처리 장치(central processing unit, CPU)(100)는 운영체제의 제어 아래에서 데이터를 처리하는 구성이다. 이러한 중앙 처리 장치(100)는 산술연산, 문자 열처리, 자료의 로딩 및 저장, 그 외 디바이스 제어 등 전반적인 장치의 처리를 관할할 수 있다. 따라서 명령어를 해독하여 산술논리 연산이나 데이터 처리를 실행할 수 있다. 이 때 그래픽과 관련해서는, 중앙 처리 장치(100)는 캐시 메모리(110)에 있는 어플리케이션 프로그램을 읽어서 적어도 하나의 커맨드 패킷(command packet)(170)에 관계된 변수를 연산할 수 있다. 이러한 연산은 내부 메모리(120)에 하나의 커맨드 패킷(170)의 생성이 완료될 때까지 반복될 수 있다.
여기서, 패킷은 네트워크를 통해 전송하기 쉽도록 자른 데이터의 전송단위이다. 즉, 패킷은 데이터 전송에서 송신측과 수신측에 의하여 하나의 단위로 취급되어 전송되는 집합체를 의미하며, 전자우편, HTML 또는 GIF 등 어떤 종류의 파일에도 적용할 수 있다. 이 때 분할된 각각의 패킷에는 별도의 번호가 붙여지고, 목적지의 주소가 기록되며, 에러 체크 데이터도 포함될 수 있다. 따라서 커맨드 패킷(170)이란 2차원 그래픽 처리와 관련된 명령어가 포함된 패킷을 말한다.
또한, 본 발명에서 커맨드 패킷(170), 커맨드 또는 명령어는 모두 그래픽 처리 작업과 관련된 명령어를 의미할 수 있다.
캐시 메모리(cache memory)(110)는 기억 장치의 하나로써, 중앙 처리 장치(100) 내에서 고속으로 액세스하는 구성이다. 이러한 캐시 메모리(110)는 버퍼 메모리(buffer memory) 또는 로컬 메모리(local memory)라고도 한다. 중앙 처리 장치(100)의 처리 속도에 비해 주기억 장치의 액세스 속도는 대단히 늦다. 따라서 주기억 장치로부터 처리에 필요한 명령이나 데이터를 실행할 때마다 읽어내는 방법으로는 명령을 빨리 처리할 수가 없다. 이에 따라, 주기억의 일부를 캐시 메모리(110)에 복사해놓고, 메모리 참조를 캐시 메모리(110)에 함으로써 변수의 연산, 로드 및 저장에 관한 처리를 고속화하는 것이다. 캐시 메모리(110)는 중앙 처리 장치(100)에 의해 커맨드 패킷(170)의 변수에 관한 연산이 완료되면 해당 변수를 내부 메모리(120)에 저장할 수 있고, 이는 1개의 커맨드 패킷(170)의 형성이 완료될 때까지 반복될 수 있다.
내부 메모리(static random access memory, SRAM)(120)는 플립플롭 방식의 메모리 장치로써, 정적 램으로도 불리며, 전원이 공급되는 동안만 저장된 내용을 기억하는 구성이다. 램에는 사용자가 작성한 프로그램이나 데이터를 저장할 수 있으며, 정적 램과 동적 램(DRAM)으로 분류된다. 정적 램이란 플립플롭 방식의 메모리 셀을 가진 임의 접근 기억장치로서, 전원 공급이 계속되는 한 저장된 내용을 계속 기억하며, 복잡한 재생 클록(refresh clock)이 필요 없기 때문에 작은 용량의 메모리나, 캐시 메모리(110)에도 사용될 수 있다. 이러한 내부 메모리(120)는 캐시 메모리(110)로부터 적어도 하나의 커맨드 패킷(170)을 수신하고, 적어도 하나의 커맨드 패킷(170)은 내부 메모리(120)에서 정렬되어 로딩될 수 있다. 이후 로딩된 적어도 하나의 커맨드 패킷(170)은 직접 메모리 액세스 방식에 의해 외부 메모리(150) 내의 커맨드 큐(152) 영역으로 전달될 수 있다.
그래픽 메모리 컨트롤러(graphic memory controller)(130)는 외부 메모리(150)에 내에서 그래픽 메모리(151)의 일부를 커맨드 큐(152)로 지정하는 구성이다. 이러한 커맨드 큐(152)는 최초에 장치가 작동하면, 장치가 초기화 되면서 그래픽 메모리 컨트롤러(130)에 의해 외부 메모리(150) 내에서 소정의 영역으로 지정될 수 있다.
그래픽 처리 장치(graphic processing unit, GPU)(140)는 커맨드 패킷에 포함된 그래픽 처리 작업에 관한 명령어를 기반으로 장치의 그래픽 작업의 처리를 수행하는 구성이다. 즉, 그래픽 처리 장치(140)는 영상 정보를 처리하고, 화면에 출력시키는 작업을 수행한다. 예를 들어, 그래픽 작업에는 그래픽 처리 작업에는 알파 블렌딩, 텍스처 매핑 등 통상적으로 처리되는 다양한 그래픽 처리 작업이 포함될 수 있다. 따라서 저장된 적어도 하나의 커맨드 패킷(170)을 기반으로 2차원 그래픽 기술 또는 조작 작업을 처리 및 수행할 수 있다. 이후 처리된 2차원 그래픽 작업 처리 정보는 외부 메모리(150)의 프레임 버퍼 메모리(153)로 전달될 수 있다. 그래픽 처리 장치(140)에는 엔진 관리부(141)가 구비되어 커맨드 큐(152)에 구비된 라이트 포인터 레지스터(write pointer register) 및 리드 포인터 레지스터(read pointer register)를 관리할 수 있다.
외부 메모리(synchronous dynamic random access memory, SDRAM)(150)는 적어도 하나의 커맨드 패킷(170) 및 그래픽 기술 작업 정보를 저장하는 구성이다. SDRAM은 동기식 동적 램이라고 하는데, 클록속도가 중앙 처리 장치(100)과 동기화되어 있는 동적 램의 다양한 종류를 모두 일컫는다. 따라서 중앙 처리 장치(100)가 작동할 때 동적 램도 따라 움직여서 중앙 처리 장치(100)가 수행할 수 있는 명령어 개수를 증가시키는데 도움을 준다. 이러한 외부 메모리(150)는 그래픽 메모리(151) 및 프레임 버퍼 메모리(153)를 포함하며, 커맨드 큐(152)는 그래픽 메모리(151) 내에서 소정의 영역으로 지정될 수 있다. 커맨드 큐(152)에는 적어도 하나의 커맨드 패킷(170)이 저장될 수 있고, 프레임 버퍼 메모리(153)에는 그래픽 처리 장치(140)에 의해 처리된 그래픽 작업 처리 정보가 저장될 수 있다.
디스플레이 컨트롤러(display controller)(160)는 그래픽 작업 처리 정보를 기반으로 디스플레이를 출력하는 구성이다. 이러한 디스플레이 컨트롤러(160)는 외부 메모리(150) 내에 프레임 버퍼 메모리(153)에 저장된 그래픽 작업 처리 정보를 수신하여 디스플레이 장치에 그래픽 데이터를 출력할 수 있다.
이하에서는 도면을 참고하여 2차원 그래픽 명령어를 처리하는 방법을 설명하기로 한다.
도 2는 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 방법을 나타낸 순서도이다.
도 2에 도시된 바와 같이, 최초에 그래픽 메모리 컨트롤러(130)에 의해 그래픽 메모리(151)에 커맨드 큐(152) 영역을 지정할 수 있다.<S20>
구체적으로, 그래픽 메모리 컨트롤러(130)는 외부 메모리(150) 내에 구비된 그래픽 메모리(151) 중에서 소정의 영역을 커맨드 큐(152)로 지정할 수 있다. 이러한 커맨드 큐(152)는 최초에 장치가 작동하면, 장치가 초기화 되면서 그래픽 메모리 컨트롤러(130)가 외부 메모리(150) 내의 그래픽 메모리(151)에서 소정의 영역을 지정할 수 있다.
여기서, 커맨드 큐(152)는 그래픽 메모리(151)에 128kbyte의 영역으로 형성되고, 적어도 하나의 커맨드 패킷(170)은 64byte으로 형성될 수 있다.
다음으로, 중앙 처리 장치(100)에 의해 내부 메모리(120)에 적어도 하나의 커맨드 패킷(170)이 생성될 수 있다.<S21>
구체적으로, 중앙 처리 장치(100)는 캐시 메모리(110)에 있는 어플리케이션 프로그램을 읽어서 커맨드 패킷(170)에 관계된 변수의 연산을 수행할 수 있다. 이때 변수는 캐시 메모리(110)에서 연산, 로드, 저장 동작이 수행될 수 있다.
중앙 처리 장치(100)는 내부 메모리(120)에 하나의 커맨드 패킷(170)의 생성이 완료될 때까지 변수에 관한 연산을 반복하며, 캐시 메모리(110)는 연산이 완료된 변수를 내부 메모리(120)에 저장할 수 있다. 이러한 과정은 1개의 커맨드 패킷(170)이 생성될 때까지 반복될 수 있다.
이후 내부 메모리(120)에 저장된 적어도 하나의 커맨드 패킷(170)을 커맨드 큐(152)에 전달할 수 있다.<S22> 이를 도 3을 참고하여 설명하기로 한다.
도 3은 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치에서 커맨드 큐(152)의 동작 방식을 개략적으로 설명하기 위한 도면이다.
도 3에 도시된 바와 같이, 내부 메모리(120)에 저장된 적어도 하나의 커맨드 패킷(170)은 직접 메모리 액세스(direct memory access) 방식으로 커맨드 큐(152)에 전달될 수 있고, 커맨드 큐(152)에는 커맨드 패킷(170)이 들어온 순서대로 순차적으로 보관될 수 있다.
여기서, 직접 메모리 액세스는 중앙 처리 장치(100)을 통하지 않고 데이터를 직접 전송하는 방식이다. 즉, 직접 메모리 액세스는 하드디스크, 그래픽 카드, 네트워크 카드 등과 같은 주변 장치들이 메모리에 직접 접근하여 읽거나 쓸 수 있도록 하는 방식으로, 멀티코어 프로세서 내에서 칩 내부 데이터를 전송 시 또는 메모리 내에서 데이터를 복사 및 이동하는 메모리 간 이동 시 등에 사용될 수 있다. 데이터를 전송할 시 중앙 처리 장치(100)의 개입이 필요하지 않으므로, 중앙 처리 장치(100)가 다른 작업을 수행할 수 있고, 이에 따라 장치의 효율성이 높아질 수 있다.
따라서 중앙 처리 장치(100)는 커맨드 패킷(170)의 생성에 대한 작업만을 수행하여 커맨드 큐(152)에 전달만 하면 되기 때문에 작업의 효율성이 증가할 수 있다.
또한, 커맨드 큐(152)는 그래픽 메모리(151)에 소정의 공간으로 구비되어 있기 때문에 중앙 처리 장치(100)가 별도의 대기시간 없이 지속적으로 커맨드 패킷(170)을 생성하는 작업을 수행할 수 있다.
여기서, 커맨드 큐(152)는 링 버퍼(ring buffer) 구조로 구비되어 내부 메모리(120)로부터 전달된 적어도 하나의 커맨드 패킷(170)이 보관될 수 있다.
버퍼란 본래 완충 장치를 뜻하는 것으로, 컴퓨터 분야에서는 속도가 다른 장치 사이에서 데이터를 주고받을 때의 시간 조절을 하는 중간적인 기억 영역을 가리킨다. 예를 들면, 중간적인 기억 영역이 가득 찼을 때 전부 묶어서 내보내는 것이 전형적인 사용 방법이다.
하지만 버퍼에 정보를 보내는 측과 버퍼에서 정보를 꺼내는 측이 서로 조금씩 움직이고 있을 때는 보내는 측이 버퍼의 끝에 도달했다고 해서 쉴 수는 없다. 이 때 버퍼에 축적되어 있는 데이터를 버퍼의 선두 방향에 일제히 이동시키게 되면 효율이 나빠진다.
따라서 링 버퍼는 버퍼의 끝과 머리가 고리와 같이 이어져 있다고 가상적으로 간주하고, 또 선두부터 데이터를 보내는 것이다. 즉, 링 버퍼는 배열의 맨 끝의 데이터 뒤에 맨 앞의 데이터가 연결되는 구조인 것이다.
이하에서는 커맨드 큐(152)의 구조에 관해 도면을 참고하여 설명하기로 한다.
도 4는 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치에서 커맨드 큐(152)의 구조를 설명하기 위한 도면이다.
도 4에 도시된 바와 같이, 커맨드 큐(152)는 그래픽 메모리(151)에 구비되어 적어도 하나의 커맨드 패킷(170)을 보관할 수 있다.
구체적으로, 본 발명에서 커맨드 큐(152)는 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출(first in first out) 구조로 구비되며, 커맨드 큐(152)는 그래픽 메모리(151)에서 적어도 하나의 커맨드 패킷(170)을 보관하기 위해 그래픽 메모리(151)의 영역 중 선두 128kbyte로 구비될 수 있다. 이 때 적어도 하나의 커맨드 패킷(170)은 각각 64byte의 크기를 가질 수 있다.
커맨드 큐(152)에서 데이터를 꺼내는 앞쪽을 프런트(write)라 하고, 데이터를 넣는 뒤쪽을 리어(read)라 한다. 이에 따라, 커맨드 큐(152)에는 특정 데이터가 맨 앞의 데이터이고, 특정 데이터가 맨 끝의 데이터인지 식별하는 포인터 변수가 있는데, 이를 각각 라이트(write) 및 리드(read)라 한다. 즉, 라이트 포인터(write ponter) 및 리드 포인터(read pointer)라 칭할 수 있다.
그래픽 처리 장치(140)의 엔진 관리부(141)는 커맨드 큐(152)에 구비된 라이트 포인터 레지스터 및 리드 포인터 레지스터를 통해 커맨드 큐(152)에 저장 또는 보관될 커맨드 패킷(170)과 처리해야 할 커맨드 패킷(170)을 관리할 수 있다.
다음으로, 그래픽 처리 장치(140)가 커맨드 큐(152)에 저장된 적어도 하나의 커맨드 패킷(170)을 기반으로 그래픽 처리 작업을 수행할 수 있다.<S23> 이를 도 5를 참고하여 설명하기로 한다.
도 5는 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치에서 그래픽 작업 처리에 따라 커맨드 큐(152) 내에서 라이트 포인터 레지스터 및 리드 포인터 레지스터가 증가하는 것을 개략적으로 설명하기 위한 도면이다.
도 5에 도시된 바와 같이, 라이트 포인터 레지스터는 커맨드 큐(152)에서 적어도 하나의 패킷이 저장될 주소를 가리키는 레지스터이고, 리드 포인터 레지스터는 그래픽 처리 장치(140)가 처리해야 할 커맨드 패킷(170)의 주소를 가리키는 레지스터이다.
여기서, 커맨드 큐(152)에 커맨드 패킷(170)을 넣는 것, 저장한다는 것 또는 보관한다는 것은 라이트 포인터 레지스터가 가리키고 있는 커맨드 큐(152)의 특정 주소에 커맨드 패킷(170)을 써 놓고, 이후 라이트 포인터 레지스터는 증가되어 커맨드 큐(152)에서 다음 커맨드 패킷(170)이 저장될 주소를 가리키는 것을 의미할 수 있다.
또한, 리드 포인터 레지스터는 그래픽 처리 장치(140)에 의해 커맨드 패킷(170)이 처리된 이후 자동으로 값이 증가될 수 있다.
한편, 라이트 포인터를 증가시킬 때에는 반드시 커맨드 큐(152)가 가득 차 있는 상태가 아니어야 하고, 현재 라이트 포인터 레지스터가 가리키고 있는 커맨드 패킷(170)이 유효해야 한다.
이 때 라이트 포인터 레지스터는 커맨드 큐(152)에 저장된 커맨드 패킷(170)의 개수를 정의할 수 있다.
또한, 리드 포인터 레지스터는 커맨드 큐(152)의 엔트리 중 현재 그래픽 처리 장치(140)에 의해 처리되는 커맨드 패킷(170)을 가리킬 수 있다.
예를 들어, 총 2048개의 커맨드 패킷(170)을 저장할 커맨드 큐(152) 내의 포인터 중 하나의 포인터를 설정할 수 있으며, 실제 실행될 커맨드 패킷(170)의 개수는 라이트 포인터와 리드 포인터의 관계에 따른 세 가지의 상황에 따라 상이할 수 있다.
구체적으로, 라이트 포인터의 값이 리드 포인트의 값보다 큰 경우, 라이트 포인터에서 리드 포인터의 개수를 뺀 차이만큼 커맨드 패킷(170)이 실행될 수 있다.
또한, 라이트 포인터의 값이 리드 포인트의 값보다 작은 경우, 2048에 라이트 포인터의 개수를 더한 값에서 리드 포인터의 개수를 뺀 차이만큼 커맨드 패킷(170)이 실행될 수 있다.
또, 라이트 포인터의 값이 리드 포인트의 값이 동일한 경우, 이는 실행될 커맨드 패킷(170)이 없다는 것을 의미한다. 그래픽 처리 장치(140)는 보류(hold) 상태일 수 있다. 즉, 그래픽 처리 장치(140)는 활성화 상태에서 커맨드 큐(152) 내에서 커맨드 패킷(170)에 대한 리드 포인터가 라이트 포인터의 값과 동일해질 때까지 동작하게 된다. 이후 리드 포인터와 라이트 포인터가 동일해지면 그래픽 처리 장치(140)는 보류 상태가 된다.
예를 들어, 5개의 커맨드 패킷(170)을 그래픽 처리 장치(140)가 처리한다고 가정하자. 이 때 커맨드 큐(152)에는 5개의 커맨드 패킷(170)이 저장되며, 라이트 포인터는 5로 설정될 수 있다.
이후 그래픽 처리 장치(140)가 활성화 상태가 되면, 커맨드 큐(152)에 저장된 커맨드 패킷(170)을 기반으로 그래픽 처리 작업을 수행하게 되고, 5번째 커맨드 패킷(170)에 대해 그래픽 처리 작업을 수행한 후 그래픽 처리 장치(140)는 동작을 멈추게 된다.
만약 이러한 상태에서 추가로 커맨드 패킷(170)이 저장되어 라이트 포인터가 재설정된다면, 그래픽 처리 장치(140)는 보류 상태에서 재설정된 라이트 포인터까지 그래픽 처리 작업에 대한 동작을 수행할 수 있다.
커맨드 큐(152)는 링 버퍼의 구조로 구비되므로, 라이트 포인터는 그래픽 처리 장치(140)가 사용 금지(disable) 상태일 때 리셋(reset) 또는 클리어(clear) 될 수 있다. 또한, 리드 포인터 역시 그래픽 처리 장치(140)가 사용 금지 상태일 때 리셋 또는 클리어 될 수 있다.
여기서, 커맨드 큐(152)가 커맨드 패킷(170)을 저장할 개수는 그래픽 메모리 컨트롤러(130)로부터 커맨드 큐(152)의 크기가 지정되면서 동시에 결정될 수 있다.
도 6은 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치에서 커맨드 큐(152) 및 커맨드 패킷(170)의 크기를 예시적으로 나타낸 도면이다.
도 6에 도시된 바와 같이, 그래픽 메모리(151)에는 소정의 크기로 커맨드 큐(152)가 구비되고, 커맨드 큐(152)에는 적어도 하나의 커맨드 패킷(170)이 소정의 크기를 가지고 저장될 수 있다.
앞서 설명한 바와 같이, 그래픽 처리 작업은 커맨드 패킷(170)의 단위로 수행되며, 커맨드 패킷(170)의 관리는 링 버퍼 구조를 통해 수행될 수 있다. 이 때 커맨드 큐(152)는 128kbyte의 크기로 형성되고, 커맨드 패킷(170)은 32×2byte의 사이즈로 형성되며, 총 2048개의 커맨드 패킷(170)을 저장할 수 있다. 커맨드 패킷(170)과 커맨드 패킷(170) 사이의 주소 오프셋(address offset)은 0×40이다.
이하에서는 그래픽 처리 장치(140)의 엔진 관리부(141)에 대한 설명을 추가로 이어가기로 한다.
도 7은 본 발명의 실시예에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치에서 그래픽 처리 장치(140)의 엔진 관리부(141)의 상태 전환을 개략적으로 나타낸 도면이다.
도 7에 도시된 바와 같이, 그래픽 처리 장치(140)의 엔진 관리부(141)는 상태 기계(state machine)을 통해 커맨드 큐(152)의 대기/휴식(idle) 상태, 명령어 불러오기(command fetch) 상태, 보류(hold) 상태로 전환되는 것을 관리할 수 있다.
구체적으로, 대기/휴식 상태에서 그래픽 처리 장치(140)가 활성화 되고, 라이트 포인터와 리드 포인터가 서로 같지 않을 때 상태는 대기/휴식 상태에서 명령어 불러오기 상태로 천이될 수 있다.
이후 라이트 포인터와 리드 포인터가 같아질 때까지 그래픽 처리 장치(140)의 그래픽 처리 작업이 수행되며, 라이트 포인터와 리드 포인터가 같은 경우 엔진 관리부(141)는 처리할 커맨드 패킷(170)이 없는 것으로 판단하여 상태를 명령어 불러오기 상태에서 보류 상태로 천이시킬 수 있다.
만약, 보류 상태에서 라이트 포인터가 재설정 될 경우 명령어 불러오기 상태로 다시 천이되어 라이트 포인터와 리드 포인터가 같을 때까지 그래픽 처리 장치(140)는 커맨드 패킷(170)을 처리할 수 있다.
다음으로, 그래픽 처리 장치(140)가 비활성화 될 경우 상태는 다시 대기/휴식 상태로 천이되며, 그래픽 처리 장치(140), 라이트 포인터 및 리드 포인터가 모두 초기화 될 수 있다.
마지막으로, 디스플레이 컨트롤러(160)가 그래픽 처리 작업을 기반으로 출력할 수 있다.<S24>
그래픽 처리 장치(140)에 의해 처리된 그래픽 처리 작업은 외부 메모리(150)의 프레임 버퍼 메모리(153)에 순차적으로 전송되어 보관될 수 있다. 이에 따라, 디스플레이 컨트롤러(160)는 프레임 버퍼 메모리(153)에 보관된 그래픽 처리 작업과 관련된 정보를 수신하여 그래픽 데이터를 장치의 화면에서 디스플레이 할 수 있다.
예를 들어, 디스플레이 컨트롤러(160)는 TFT(thin film transistor)-LCD(liquid crystal display) 컨트롤러 일 수 있으며, TFT-LCD 컨트롤러는 TFT-LCD를 디스플레이 할 수 있다.
여기서, 그래픽 처리 작업에는 알파 블렌딩, 텍스처 매핑 등 통상적으로 처리되는 다양한 그래픽 처리 작업이 포함될 수 있다.
이처럼 본 발명에 따른 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치 및 방법은 명령을 빠르게 전달할 수 있다. 본 발명에 따른 2차원 그래픽 명령어를 처리하는 장치 및 방법은 외부의 그래픽 메모리(151)에 규모가 큰 커맨드 큐(152)를 구비하고, 그래픽 처리 장치(140)의 엔진 관리부(141)는 커맨드 큐(152)를 통해 모든 명령어를 수신할 수 있다. 이에 따라, 중앙 처리 장치(100) 및 그래픽 처리 장치(140)는 대기 시간을 최소화 할 수 있다.
또한, 병렬로 수행이 가능하다. 본 발명에 따른 2차원 그래픽 명령어를 처리하는 장치 및 방법은 외부의 그래픽 메모리(151)에 규모가 큰 커맨드 큐(152)를 구비되어 있다. 따라서 중앙 처리 장치(100)는 명령어를 커맨드 큐(152)에 전달하기만 하면 되고, 그래픽 처리 장치(140)의 엔진 관리부(141)는 커맨드 큐(152)에 전달된 명령어를 선입선출 방식에 따라 처리하기만 하면 되기 때문에 각자의 작업 처리를 병렬로 수행할 수 있다.
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면, 본 발명의 사상과 범위 안에서 다양한 수정, 변경 및 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 본 발명의 특허청구 범위에 속하는 것으로 보아야 할 것이다.
100 : 중앙 처리 장치
110 : 캐시 메모리
120 : 내부 메모리
130 : 그래픽 메모리 컨트롤러
140 : 그래픽 처리 장치
141 : 엔진 관리부
150 : 외부 메모리
151 : 그래픽 메모리
152 : 커맨드 큐
153 : 프레임 버퍼 메모리
160 : 디스플레이 컨트롤러
170 : 커맨드 패킷

Claims (12)

  1. 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 방법에 있어서,
    그래픽 메모리 컨트롤러에 의해 그래픽 메모리에 커맨드 큐(command queue) 영역이 지정되는 단계;
    중앙 처리 장치(central processing unit)에 의해 내부 메모리에 적어도 하나의 커맨드 패킷(command packet)이 생성되는 단계;
    상기 내부 메모리에 저장된 상기 적어도 하나의 커맨드 패킷을 상기 커맨드 큐에 전달되는 단계;
    그래픽 처리 장치(graphic processing unit)가 상기 커맨드 큐에 저장된 상기 적어도 하나의 커맨드 패킷을 기반으로 그래픽 처리 작업을 수행하는 단계; 및
    디스플레이 컨트롤러가 상기 그래픽 처리 작업을 기반으로 그래픽 데이터를 출력하는 단계;를 포함하되,
    상기 커맨드 큐는 링 버퍼 구조(ring buffer)로 구비되어 있고,
    상기 적어도 하나의 커맨드 패킷은 상기 커맨드 큐 내의 주소에서 순환되어 저장되며,
    상기 커맨드 큐에는 라이트 포인터 레지스터(write pointer register) 및 리드 포인터 레지스터(read pointer register)가 구비되고,
    상기 라이트 포인터 레지스터는 상기 커맨드 큐 내에 상기 적어도 하나의 커맨드 패킷이 저장될 주소를 가리키며, 상기 리드 포인터 레지스터는 상기 커맨드 큐 내에서 상기 그래픽 처리 장치가 처리해야 할 상기 적어도 하나의 커맨드 패킷이 저장된 주소를 가리키는,
    방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 중앙 처리 장치가 상기 커맨드 큐에 상기 적어도 하나의 커맨드 패킷을 생성하는 것과, 상기 그래픽 처리 장치가 상기 커맨드 큐에 저장된 상기 커맨드 큐에 저장된 상기 적어도 하나의 커맨드 패킷을 기반으로 그래픽 작업을 수행하는 것은 서로 병렬적으로 처리되는,
    방법.
  4. 제1항에 있어서,
    상기 커맨드 큐에 저장된 상기 적어도 하나의 커맨드 패킷은 선입 선출(first in, first out)의 방식을 기반으로 상기 그래픽 처리 장치에 의해 처리되는 것인,
    방법.
  5. 제1항에 있어서,
    상기 커맨드 큐는 상기 그래픽 메모리에 128kbyte의 영역으로 형성되고,
    상기 적어도 하나의 커맨드 패킷은 64byte로 형성되어 있는,
    방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 라이트 포인터 레지스터는 상기 커맨드 큐 내에 상기 적어도 하나의 커맨드 패킷이 저장될 주소를 가리킨 후 상기 적어도 하나의 커맨드 패킷이 저장된 후 상기 적어도 하나의 커맨드 패킷이 저장될 다음 주소를 가리키는,
    방법.
  8. 제1항에 있어서,
    상기 리드 포인터 레지스터는 상기 그래픽 처리 장치가 상기 리드 포인터 레지스터가 가리킨 주소의 상기 커맨드 패킷을 처리할 시 상기 그래픽 처리 장치가 처리할 다음 주소를 자동으로 가리키는,
    방법.
  9. 제7항 또는 제8항에 있어서,
    상기 그래픽 처리 장치는,
    상기 라이트 포인터 레지스터 및 상기 리드 포인터 레지스터가 상이할 경우 상기 적어도 하나의 커맨드 패킷에 관한 그래픽 처리 작업을 수행하고,
    상기 라이트 포인터 레지스터 및 상기 리드 포인터 레지스터가 동일할 경우 상기 적어도 하나의 커맨드 패킷에 관한 그래픽 처리 작업을 보류하는,
    방법.
  10. 제7항 또는 제8항에 있어서,
    상기 그래픽 처리 장치가 비활성화 될 경우 상기 라이트 포인터 레지스터 및 상기 리드 포인터 레지스터는 초기화 되는,
    방법.
  11. 제1항에 있어서,
    상기 내부 메모리는 직접 메모리 액세스 방식을 기반으로 상기 커맨드 큐에 상기 적어도 하나의 커맨드 패킷을 전달하는,
    방법.
  12. 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치에 있어서,
    그래픽 메모리에 커맨드 큐(command queue) 영역을 지정하는 그래픽 메모리 컨트롤러;
    저장된 적어도 하나의 커맨드 패킷을 상기 커맨드 큐에 전달하는 내부 메모리;
    상기 내부 메모리에 적어도 하나의 커맨드 패킷(command packet)을 생성하는 중앙 처리 장치(central processing unit);
    상기 커맨드 큐에 저장된 상기 적어도 하나의 커맨드 패킷을 기반으로 그래픽 처리 작업을 수행하는 그래픽 처리 장치(graphic processing unit); 및
    상기 그래픽 처리 작업을 기반으로 그래픽 데이터를 출력하는 디스플레이 컨트롤러;를 포함하되,
    상기 커맨드 큐는 링 버퍼 구조(ring buffer)로 구비되어 있고,
    상기 적어도 하나의 커맨드 패킷은 상기 커맨드 큐 내의 주소에서 순환되어 저장되며,
    상기 커맨드 큐에는 라이트 포인터 레지스터(write pointer register) 및 리드 포인터 레지스터(read pointer register)가 구비되고,
    상기 라이트 포인터 레지스터는 상기 커맨드 큐 내에 상기 적어도 하나의 커맨드 패킷이 저장될 주소를 가리키며, 상기 리드 포인터 레지스터는 상기 커맨드 큐 내에서 상기 그래픽 처리 장치가 처리해야 할 상기 적어도 하나의 커맨드 패킷이 저장된 주소를 가리키는,
    장치.
KR1020210114512A 2021-08-30 2021-08-30 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치 및 방법 KR102353036B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210114512A KR102353036B1 (ko) 2021-08-30 2021-08-30 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210114512A KR102353036B1 (ko) 2021-08-30 2021-08-30 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102353036B1 true KR102353036B1 (ko) 2022-01-20

Family

ID=80053083

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210114512A KR102353036B1 (ko) 2021-08-30 2021-08-30 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102353036B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005202576A (ja) * 2004-01-14 2005-07-28 Matsushita Electric Ind Co Ltd データ通信装置
JP2006323759A (ja) * 2005-05-20 2006-11-30 Sony Computer Entertainment Inc グラフィックプロセッサ、情報処理装置
KR20120019711A (ko) * 2010-08-26 2012-03-07 한국과학기술원 네트워크 아키텍처 및 이를 이용한 패킷 처리 방법
KR20160100390A (ko) * 2014-02-20 2016-08-23 인텔 코포레이션 그래픽 처리 유닛을 위한 작업 부하 일괄 제출 메커니즘
KR20160146948A (ko) * 2014-06-26 2016-12-21 인텔 코포레이션 가상화 환경에서의 지능형 gpu 스케줄링
KR101952221B1 (ko) 2016-09-30 2019-02-26 홍익대학교 산학협력단 캐시 부스팅과 경과시간 최소화를 통한 효율적인 멀티태스킹 그래픽처리장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005202576A (ja) * 2004-01-14 2005-07-28 Matsushita Electric Ind Co Ltd データ通信装置
JP2006323759A (ja) * 2005-05-20 2006-11-30 Sony Computer Entertainment Inc グラフィックプロセッサ、情報処理装置
KR20120019711A (ko) * 2010-08-26 2012-03-07 한국과학기술원 네트워크 아키텍처 및 이를 이용한 패킷 처리 방법
KR20160100390A (ko) * 2014-02-20 2016-08-23 인텔 코포레이션 그래픽 처리 유닛을 위한 작업 부하 일괄 제출 메커니즘
KR20160146948A (ko) * 2014-06-26 2016-12-21 인텔 코포레이션 가상화 환경에서의 지능형 gpu 스케줄링
KR101952221B1 (ko) 2016-09-30 2019-02-26 홍익대학교 산학협력단 캐시 부스팅과 경과시간 최소화를 통한 효율적인 멀티태스킹 그래픽처리장치

Similar Documents

Publication Publication Date Title
KR102402672B1 (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산들을 처리하는 방법
JP3224782B2 (ja) 処理分担動的変更方法及びコンピュータ
US5371849A (en) Dual hardware channels and hardware context switching in a graphics rendering processor
CN107092573B (zh) 用于异构计算系统中的工作窃取的方法和设备
US20090119460A1 (en) Storing Portions of a Data Transfer Descriptor in Cached and Uncached Address Space
JP2016509280A (ja) グラフィックスプロセッシングユニットベースのメモリ転送動作を行うためのマルチモードメモリアクセス技法
EP2807646A1 (en) Buffer management for graphics parallel processing unit
US6094203A (en) Architecture for a graphics processing unit using main memory
JP4364202B2 (ja) データ処理方法およびデータ処理システム
US9563466B2 (en) Method and apparatus for supporting programmable software context state execution during hardware context restore flow
TW201342240A (zh) 解決執行緒發散的方法和系統
US9575887B2 (en) Memory device, information-processing device and information-processing method
US7434023B2 (en) Memory device
US7913059B2 (en) Information processing device, data transfer method, and information storage medium
KR102353036B1 (ko) 그래픽 메모리 기반의 2차원 그래픽 명령어를 처리하는 장치 및 방법
TW201351276A (zh) 計算工作的排程和執行
US7644214B2 (en) Information processing apparatus and task execution method
CN115794294B (zh) vhost-user-gpu虚拟机的远程桌面实现方法及系统
CN102542525B (zh) 一种信息处理设备以及信息处理方法
US8244929B2 (en) Data processing apparatus
US20140136793A1 (en) System and method for reduced cache mode
KR20230034373A (ko) 원형 fifo를 통한 스트리밍 데이터의 분산 및 수집
KR20230083769A (ko) 데이터 파싱 인터페이스 장치
JP5338937B2 (ja) メモリ装置
JP4725044B2 (ja) 情報処理装置

Legal Events

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