KR100611249B1 - Graphic processing unit capable of reducing transaction into system bus - Google Patents

Graphic processing unit capable of reducing transaction into system bus Download PDF

Info

Publication number
KR100611249B1
KR100611249B1 KR1020050007567A KR20050007567A KR100611249B1 KR 100611249 B1 KR100611249 B1 KR 100611249B1 KR 1020050007567 A KR1020050007567 A KR 1020050007567A KR 20050007567 A KR20050007567 A KR 20050007567A KR 100611249 B1 KR100611249 B1 KR 100611249B1
Authority
KR
South Korea
Prior art keywords
destination
read
processing unit
system bus
block controller
Prior art date
Application number
KR1020050007567A
Other languages
Korean (ko)
Other versions
KR20060086678A (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 KR1020050007567A priority Critical patent/KR100611249B1/en
Publication of KR20060086678A publication Critical patent/KR20060086678A/en
Application granted granted Critical
Publication of KR100611249B1 publication Critical patent/KR100611249B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Image Processing (AREA)

Abstract

그래픽 처리 유닛이 개시된다. 본 발명에 따른 그래픽 처리 유닛은, 비트 단위로 비트맵 그래픽을 처리하는 그래픽 처리 유닛에 있어서, 시스템 버스를 통해 시스템 메모리로부터 데스티네이션 읽기 비트맵 이미지를 독출하는 데스티네이션 읽기 블록 컨트롤러, 데스티네이션 읽기 블록 컨트롤러에 의해 독출된 데스티네이션 읽기 비트맵 이미지에 대하여 논리연산을 수행하는 GPU코어, GPU코어에 의해 한 밴드의 처리가 완료되기 전까지의 데스티네이션 어드레스의 데이터를 저장하는 버퍼, 및 GPU코어에 의해 한 밴드의 처리가 완료된 경우에 버퍼에 저장된 데스티네이션 어드레스의 데이터를 시스템 버스를 통해 시스템 메모리에 기록하는 데스티네이션 쓰기 블록 컨트롤러를 포함한다.The graphics processing unit is disclosed. The graphics processing unit according to the present invention is a graphics processing unit that processes bitmap graphics on a bit-by-bit basis, and includes a destination read block controller for reading a destination read bitmap image from a system memory through a system bus, and a destination read. GPU cores for performing logical operations on the destination read bitmap image read by the block controller, a buffer for storing data of the destination address until processing of one band by the GPU cores, and a GPU core. The destination write block controller writes data of the destination address stored in the buffer to the system memory through the system bus when the processing of one band is completed.

GPU, 비트맵, 데스티네이션 비트맵, 시스템 버스, 트랜잭션GPU, Bitmap, Destination Bitmap, System Bus, Transaction

Description

트랜잭션을 줄일 수 있는 그래픽 처리 유닛{Graphic processing unit capable of reducing transaction into system bus}Graphic processing unit capable of reducing transaction into system bus}

도 1은 종래의 기술에 따른 그래픽 처리 유닛을 개략적으로 도시한 블록도,1 is a block diagram schematically showing a graphics processing unit according to the prior art;

도 2는 본 발명에 따른 그래픽 처리 유닛을 개략적으로 도시한 블록도, 그리고2 is a block diagram schematically showing a graphics processing unit according to the invention, and

도 3은 도 2의 그래픽 처리 유닛에 의한 그래픽 처리방법을 나타낸 흐름도이다.3 is a flowchart illustrating a graphic processing method by the graphic processing unit of FIG. 2.

* 도면의 주요부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

10, 120 : 그래픽 처리 유닛 11, 123 : GPU코어10, 120: graphics processing unit 11, 123: GPU core

13 : 소스 블록 컨트롤러 14 : 소스 메모리 인터페이스13: source block controller 14: source memory interface

15 : 패턴 블록 컨트롤러 16 : 패턴 메모리 인터페이스15: pattern block controller 16: pattern memory interface

17a, 126 : 데스티네이션 쓰기 블록 컨트롤러17a, 126: Destination Write Block Controller

18a, 127 : 데스티네이션 쓰기 메모리 인터페이스18a, 127: destination write memory interface

17b, 121 : 데스티네이션 읽기 블록 컨트롤러17b, 121: Destination Read Block Controller

18b : 데스티네이션 읽기 메모리 인터페이스18b: Destination Read Memory Interface

19 : 기타 블록 컨트롤러 19a : 기타 메모리 인터페이스19: Other Block Controller 19a: Other Memory Interface

20 : CPU 30 : VPU20: CPU 30: VPU

40 : 메모리 컨트롤러 45 : 시스템 메모리40: memory controller 45: system memory

본 발명은 프린터의 그래픽 처리 유닛에 관한 것으로서, 보다 상세하게는, 시스템 버스로의 트랜잭션을 줄임으로써 전체적인 성능을 향상시킬 수 있는 프린터의 그래픽 처리 유닛에 관한 것이다.The present invention relates to a graphics processing unit of a printer, and more particularly, to a graphics processing unit of a printer that can improve the overall performance by reducing transactions to the system bus.

일반적으로 프린팅 SoC(System on Chip) 시스템의 GPU(Graphic Processing Unit) 블록은 비트맵 연산을 수행하는 그래픽 프로세서로서, 범용의 프로세서의 약점인 비트 단위 연산만을 담당하여 비트 단위로 비트맵 그래픽을 처리한다. 이와 같은 그래픽 프로세서는 심볼릭 명령(symbolic command)이라는 고유의 인스트럭션을 사용하며, 인쇄를 위해 메모리에 비트 단위로 비트맵을 저장한다.In general, the GPU (Graphic Processing Unit) block of a printing SoC system is a graphics processor that performs bitmap operations, and handles bitmap graphics bit by bit only by performing bitwise operations, which are weak points of general-purpose processors. . Such graphics processors use a unique instruction called a symbolic command, which stores bitmaps in bits in memory for printing.

비트맵 연산의 리소스로는 소스 비트맵(source bit map), 패턴(pattern) 비트맵, 및 데스티네이션(destination) 비트맵이 있으며, 이 3가지의 비트맵을 이용하여 256가지의 부울 논리연산(Boolean operation)을 수행한다. 이와 같은 연산을 일반적으로 '비트 블록 이송'(Bit Block Transfer)이라고 하며, 'bitBLT'라고 명칭하기도 한다.The resources for bitmap operations include source bitmap, pattern bitmap, and destination bitmap. Using these three bitmaps, 256 Boolean logic operations ( Boolean operation). Such operations are commonly referred to as 'Bit Block Transfer' and may also be called 'bitBLT'.

도 1은 종래의 기술에 따른 그래픽 처리 유닛을 개략적으로 도시한 블록도이다. 도면을 참조하면, 그래픽 처리 유닛(10)은 시스템 버스를 통하여 CPU(20), VPU(Video Processing Unit)(30), 및 메모리 컨트롤러(40)와 연결된다. 1 is a block diagram schematically showing a graphic processing unit according to the prior art. Referring to the drawings, the graphic processing unit 10 is connected to the CPU 20, the video processing unit (VPU) 30, and the memory controller 40 through a system bus.

이때, 그래픽 처리 유닛(10)은 GPU코어(11)와, GPU코어(11)로부터의 소스 비트맵 이미지, 데스티네이션 비트맵 이미지, 및 패턴 비트맵 이미지 데이터 요청에 응답하여 요청된 데이터를 제공해 주는 각각의 컨트롤러(13, 15, 17a, 17b)와, 각각의 컨트롤러(13, 15, 17a, 17b)에 대응하는 메모리 인터페이스(14, 16, 18a, 18b)를 구비한다. 데스티네이션 블록의 경우에는 쓰기(write)와 읽기(read) 동작에 대해서 각각의 컨트롤러(17a, 17b)와 메모리 인터페이스(18a, 18b)를 가지고 있다. 그 외에 그래픽 처리 유닛(10)은 다른 여러 로직(19, 19a)도 포함하고 있으나, 본 발명과는 무관하므로 그 설명을 생략한다.In this case, the graphic processing unit 10 provides the requested data in response to the GPU core 11, the source bitmap image, the destination bitmap image, and the pattern bitmap image data request from the GPU core 11. Each controller 13, 15, 17a, 17b and a memory interface 14, 16, 18a, 18b corresponding to each controller 13, 15, 17a, 17b are provided. The destination block has controllers 17a and 17b and memory interfaces 18a and 18b for write and read operations, respectively. In addition, the graphic processing unit 10 includes various other logics 19 and 19a, but the description thereof is omitted since it is not related to the present invention.

GPU코어(11)는 소스 비트맵 이미지, 데스티네이션 읽기 비트맵 이미지, 그리고 패턴 비트맵 이미지 데이터를 각각의 컨트롤러(13, 15, 17b)와 메모리 인터페이스(14, 16, 18b)를 통해서 시스템 메모리(45)로부터 읽어들인 후, 그 데이터들을 처리한다. 처리된 결과는 데스티네이션 쓰기 컨트롤러(17a)와 데스티네이션 쓰기 메모리 인터페이스(18a)를 통해서 다시 시스템 메모리(45)에 기록된다.The GPU core 11 stores the source bitmap image, the destination read bitmap image, and the pattern bitmap image data through the controllers 13, 15, and 17b and the memory interfaces 14, 16, and 18b, respectively. 45), then process the data. The processed result is written back to the system memory 45 through the destination write controller 17a and the destination write memory interface 18a.

GPU 블록의 기본동작은 이들 비트맵 이미지를 읽어들인 후, 이들 데이터에 논리연산(Logical Operation)에 의한 연산을 수행하여 변형을 가하여 데스티네이션 어드레스(Destionation Address)에 연산된 결과를 기록하는 것을 기본으로 한다. 결과적으로 여러 비트맵 이미지 데이터를 읽어들이고 기록하는 과정에서 많은 메모리 엑세스를 필요로 하며, 따라서 시스템 버스에 많은 트랜잭션을 발생시키게 된다. 특히, 종래의 기술에 따른 그래픽 처리 유닛(10)은 논리연산을 수행하기 위해 계속해서 소스 비트맵 이미지, 패턴 비트맵 이미지, 데스티네이션 읽기 비트맵 이 미지를 읽어 들여야 하기 때문에, 시스템 버스에 많은 읽기/쓰기 트랜잭션을 요청하게 된다. 이것은 SoC 시스템의 시스템 버스의 성능을 저하시키는 원인이 될 수 있다. The basic operation of the GPU block is based on reading these bitmap images, performing operations by logical operation on these data, and modifying them to record the result at the destination address. do. As a result, reading and writing multiple bitmap image data requires a lot of memory access, resulting in many transactions on the system bus. In particular, since the graphic processing unit 10 according to the prior art has to continuously read the source bitmap image, the pattern bitmap image, the destination read bitmap image in order to perform the logical operation, a large number of reads are made on the system bus. It will request a / write transaction. This may cause the performance of the system bus of the SoC system to degrade.

본 발명은 상기와 같은 문제점을 해결하기 위하여 창안된 것으로서, SoC 시스템에서 발생되는 트랜잭션의 수를 줄여서 전체적으로 SoC 시스템의 성능을 향상시킬 수 있는 그래픽 처리 유닛을 제공하는 것을 목적으로 한다.The present invention has been made to solve the above problems, and an object of the present invention is to provide a graphic processing unit that can improve the performance of the SoC system as a whole by reducing the number of transactions occurring in the SoC system.

상기의 목적을 달성하기 위하여 본 발명에 따른 그래픽 처리 유닛은, 비트 단위로 비트맵 그래픽을 처리하는 그래픽 처리 유닛에 있어서, 시스템 버스를 통해 시스템 메모리로부터 데스티네이션 읽기 비트맵 이미지를 독출하는 데스티네이션 읽기 블록 컨트롤러, 상기 데스티네이션 읽기 블록 컨트롤러에 의해 독출된 상기 데스티네이션 읽기 비트맵 이미지에 대하여 논리연산을 수행하는 GPU코어, 상기 GPU코어에 의해 한 밴드의 처리가 완료되기 전까지의 데스티네이션 어드레스의 데이터를 저장하는 버퍼, 및 상기 GPU코어에 의해 한 밴드의 처리가 완료된 경우에 상기 버퍼에 저장된 상기 데스티네이션 어드레스의 데이터를 상기 시스템 버스를 통해 상기 시스템 메모리에 기록하는 데스티네이션 쓰기 블록 컨트롤러를 포함하는 것을 특징으로 한다.In order to achieve the above object, the graphics processing unit according to the present invention, in the graphics processing unit for processing bitmap graphics bit by bit, destination for reading a destination read bitmap image from the system memory through a system bus A read block controller, a GPU core for performing logical operations on the destination read bitmap image read by the destination read block controller, and data of a destination address until processing of one band by the GPU core is completed. And a destination write block controller that writes data of the destination address stored in the buffer to the system memory through the system bus when processing of one band by the GPU core is completed. It features.

바람직하게는, 상기 그래픽 처리 유닛은 상기 데스티네이션 읽기 블록 컨트롤러에 의해 독출된 상기 데스티네이션 읽기 비트맵 이미지의 데스티네이션 어드레 스를 저장하는 제1 레지스터를 더 포함한다.Advantageously, said graphics processing unit further comprises a first register for storing a destination address of said destination read bitmap image read by said destination read block controller.

바람직하게는, 상기 그래픽 처리 유닛은 사용되는 에뮬레이터의 종류가 PCL6인 경우에는 "1"의 값을 저장하며, 다른 종류의 에뮬레이터가 사용되는 경우에는 "0"의 값을 저장하는 제2 레지스터를 더 포함한다.Preferably, the graphic processing unit stores a value of "1" when the type of emulator used is PCL6, and further adds a second register which stores a value of "0" when another type of emulator is used. Include.

이때, 상기 GPU코어는 새로운 논리연산의 수행이 시작되는 경우, 상기 제2 레지스터에 저장된 에뮬레이터의 종류를 나타내는 값에 따라 상기 버퍼를 "1"로 세팅하거나, "0"으로 클리어하는 것이 바람직하다. 또한, 상기 버퍼는 SRAM(Static RAM)으로 구현되는 것이 바람직하다.In this case, when the execution of a new logic operation starts, the GPU core may set the buffer to "1" or clear to "0" according to a value indicating the type of emulator stored in the second register. In addition, the buffer is preferably implemented as SRAM (Static RAM).

이로써, 본 발명에 따른 그래픽 처리 유닛은 한 밴드의 처리가 완료되기 전까지 반복해서 사용되는 데스티네이션 비트맵 이미지 데이터를 GPU 내의 SRAM에 저장함으로써, 시스템 버스로의 읽기/쓰기 트랜잭션을 줄일 수 있게 되어 전체적인 SoC 시스템의 성능을 향상시킬 수 있게 된다.As a result, the graphic processing unit according to the present invention stores the destination bitmap image data repeatedly used until the processing of one band is completed in the SRAM in the GPU, thereby reducing the read / write transaction to the system bus. SoC system performance can be improved.

이하, 첨부된 도면을 참조하여 본 발명에 따른 그래픽 처리 유닛을 보다 상세하게 설명한다.Hereinafter, a graphic processing unit according to the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명에 따른 그래픽 처리 유닛을 개략적으로 도시한 블록도이다. 도면을 참조하면, 그래픽 처리 유닛(120)은 데스티네이션 읽기 블록 컨트롤러(121), GPU코어(123), 버퍼(125), 데스티네이션 쓰기블록 컨트롤러(126), 데스티네이션 쓰기 메모리 인터페이스(127), 제1 레지스터(SFR0 : Special Function Register 0)(128a), 및 제2 레지스터(SFR1)(128b)를 구비한다. 도 2에는 그래픽 처리 유닛(120)에 데스티네이션 읽기 블록 컨트롤러(121), GPU코어(123), 버퍼(125), 데스티네이션 쓰기블록 컨트롤러(126), 데스티네이션 쓰기 메모리 인터페이스(127), 제1 레지스터(SFR0 : Special Function Register 0)(128a), 및 제2 레지스터(SFR1)(128b)만을 도시하였으나, 본 발명에 따른 그래픽 처리 유닛(120) 또한 도 1과 같은 소스 블록 컨트롤러(13), 소스 메모리 인터페이스(14), 패턴 블록 컨트롤러(15), 패턴 메모리 인터페이스(16), 기타 블록 컨트롤러(19), 기타 메모리 인터페이스(19a)를 구비한다. 다만, 이들의 구성과 기능은 종래의 것과 동일하므로, 도면을 간단하게 하기 위하여 이를 생략하였다.2 is a block diagram schematically illustrating a graphics processing unit according to the present invention. Referring to the drawings, the graphics processing unit 120 includes a destination read block controller 121, a GPU core 123, a buffer 125, a destination write block controller 126, a destination write memory interface 127, And a first register (SFR0: Special Function Register 0) 128a, and a second register (SFR1) 128b. 2 illustrates a destination read block controller 121, a GPU core 123, a buffer 125, a destination write block controller 126, a destination write memory interface 127, and a first block in the graphic processing unit 120. Although only the register (SFR0: Special Function Register 0) 128a and the second register (SFR1) 128b are shown, the graphic processing unit 120 according to the present invention also includes the source block controller 13, the source shown in FIG. The memory interface 14, the pattern block controller 15, the pattern memory interface 16, the other block controller 19, and the other memory interface 19a are provided. However, since their configuration and function are the same as the conventional ones, these are omitted in order to simplify the drawings.

데스티네이션 읽기 블록 컨트롤러(121)는 시스템 버스를 통해 시스템 메모리(45)로부터 데스티네이션 읽기 비트맵 이미지를 독출한다. 이때, 시스템 버스와 시스템 메모리(45) 사이에 배치된 메모리 컨트롤러(40)가 시스템 메모리(45)와 시스템 버스 사이의 데이터 송수신을 제어한다.The destination read block controller 121 reads the destination read bitmap image from the system memory 45 through the system bus. At this time, the memory controller 40 disposed between the system bus and the system memory 45 controls data transmission and reception between the system memory 45 and the system bus.

GPU코어(123)는 데스티네이션 읽기 블록 컨트롤러(121)에 의해 독출된 데스티네이션 읽기 비트맵 이미지에 대하여 논리연산을 수행한다.The GPU core 123 performs a logical operation on the destination read bitmap image read by the destination read block controller 121.

PC(Personal Computer) 등과 같은 호스트(도시하지 않음)에서 프린터로 데이터를 보낼 때는 PCL(Printer Command Language), Postscript, GDI 등과 같은 프린터가 해석할 수 있는 형태로 내보내 주는데, 이때, 이미지의 크기(size), 분해능(resolution), 화소의 계조(pixel depth) 등의 데이터가 전송되게 된다. 프린터는 이 정보를 받아서 비트맵 형태(bitmap format)로 프린트하기 위한 데이터로 변환시키게 된다.When sending data from a host (not shown) such as a personal computer (PC) to a printer, the printer is exported in a form that can be interpreted by a printer such as PCL (Printer Command Language), Postscript, GDI, etc. ), Resolution, and pixel depth of the pixel are transmitted. The printer receives this information and converts it to data for printing in bitmap format.

여기서, 비트맵 형태란, 각 화소의 값을 흑 또는 백(즉, '0' 또는 '1')으로 표현하는 방식이다. 호스트에서 그레이 포맷(gray format : 각 픽셀의 명도값을, 예컨대 8비트의 데이터로 표현하는 경우, 0 내지 255의 레벨의 값으로 표현하는 방식)으로 전송된 데이터를 모노이미지(mono image)로 변환시켜 출력하기 위해서는 그레이 포맷을 비트맵 포맷으로 변환시켜야 한다. 따라서, 0 내지 255의 256가지 레벨의 값을 0 또는 1로 변환시키는 해프토닝(halftoning) 과정이 있어야 한다.Here, the bitmap form is a method of expressing the value of each pixel in black or white (that is, '0' or '1'). Converts the transmitted data to a mono image in gray format (the method of expressing the brightness value of each pixel as a 8-bit data, for example, in the level of 0 to 255). In order to print it out, you need to convert the gray format to bitmap format. Therefore, there must be a halftoning process that converts 256 levels of values from 0 to 255 to 0 or 1.

한편, 사용자가 작성한 문서를 프린터로 인쇄하기 위해서는 프린터와 프린터 드라이버를 구비하여야 하는데, 이때 중요한 사항은 프린터와 프린터 드라이버는 동일한 에뮬레이션을 가지고 있어야 한다는 것이다. 예를 들면 PCL6, PCL5e, Postscript, GDI 등과 같은 프린터 에뮬레이션에 따라 이와 동일한 명령어를 생성할 수 있는 드라이버가 제공되어야 한다. 즉, 포스트 스크립트 에뮬레이션이 내장된 프린터에는 포스트 스크립트 프린터 드라이버가 제공되어야 한다.On the other hand, in order to print a user-created document to a printer, a printer and a printer driver must be provided. An important point is that the printer and the printer driver must have the same emulation. For example, a driver must be provided that can generate the same commands based on printer emulation, such as PCL6, PCL5e, Postscript, GDI, and so on. In other words, a PostScript printer driver must be provided for printers with PostScript emulation.

버퍼(125)는 GPU코어(123)에 의해 한 밴드의 처리가 완료되기 전까지의 데스티네이션 어드레스의 데이터를 저장한다. 즉, 한 밴드 내에서 데스티네이션 어드레스의 데이터에 대한 재처리가 필요한 경우, 종래의 기술에서는 시스템 메모리(45)에 저장하기 때문에 재처리가 필요할 때마다 시스템 버스에 많은 트랜잭션을 요구하였으나, 시스템 메모리(45)가 아닌 그래픽 처리 유닛(120) 내부의 버퍼(125)에 데이터를 저장함으로써 시스템 버스로의 트랜잭션을 줄일 수 있게 된다. 여기서, 버퍼(125)는 플립플롭 기억소자로 사용되는 SRAM(Static RAM)으로 구현되는 것이 바람직하다. 또한 SRAM의 크기는, 하나의 밴드 비트맵 데이터를 모두 저장할 수 있는 79360bytes(하나의 밴드가 4960 x 128 라인으로 가정할 경우) 정도가 적당하다. 그러나, SRAM의 크기는 이에 한정된 것은 아니며, 차 후 원하는 크기로 확장될 수도 있다.The buffer 125 stores the data of the destination address until the processing of one band by the GPU core 123 is completed. That is, when reprocessing of data of the destination address is required in one band, the conventional technology stores the data in the system memory 45, so that many transactions are required on the system bus whenever reprocessing is required. By storing data in the buffer 125 inside the graphics processing unit 120 instead of 45, transactions to the system bus can be reduced. Here, the buffer 125 is preferably implemented with SRAM (Static RAM) used as a flip-flop memory device. The size of the SRAM is about 79360 bytes (assuming that one band is 4960 x 128 lines) that can store all one band bitmap data. However, the size of the SRAM is not limited thereto and may be extended to a desired size later.

데스티네이션 쓰기 블록 컨트롤러(126)는 GPU코어(123)에 의해 한 밴드의 처리가 완료된 경우에, 버퍼(125)에 저장된 데스티네이션 어드레스의 데이터를 데스티네이션 쓰기 메모리 인터페이스(127) 및 시스템 버스를 통하여 시스템 메모리(45)에 기록한다.The destination write block controller 126 transfers the data of the destination address stored in the buffer 125 through the destination write memory interface 127 and the system bus when the processing of one band is completed by the GPU core 123. Write to system memory 45.

제1 레지스터(128a)는 데스티네이션 읽기 블록 컨트롤러(121)에 의해 독출된 데스티네이션 읽기 비트맵 이미지의 데스티네이션 어드레스를 저장한다. 또한, 제2 레지스터(128b)는 사용되는 에뮬레이터의 종류가 PCL6인 경우에는 "1"의 값을 저장하며, 다른 종류의 에뮬레이터가 사용되는 경우에는 "0"의 값을 저장한다. 여기서, 제1 레지스터 및 제2 레지스터는 32bits의 크기로 구현되는 것이 바람직하다.The first register 128a stores the destination address of the destination read bitmap image read by the destination read block controller 121. The second register 128b stores a value of "1" when the type of emulator used is PCL6, and a value of "0" when another type of emulator is used. Here, the first register and the second register is preferably implemented in a size of 32 bits.

도 3은 도 2의 그래픽 처리 유닛에 의한 그래픽 처리 방법을 나타낸 흐름도이다. 도면을 참조하면, GPU(123)는 하나의 밴드에 대한 그래픽 처리가 완료되면 제1 레지스터(128a)에 저장된 비트 0을 세팅하며(S101), 새로운 밴드의 시작이 있을 때까지 아이들(idle) 상태로 된다.3 is a flowchart illustrating a graphic processing method by the graphic processing unit of FIG. 2. Referring to the drawing, when the graphic processing for one band is completed, the GPU 123 sets bit 0 stored in the first register 128a (S101) and idles until a new band starts. It becomes

새로운 밴드가 시작되면(S103), GPU(123)는 SRAM(125)을 클리어 또는 세팅한다. 이를 위해, GPU(123)는 새로운 밴드가 시작되면(S103) 제2 레지스터(128b)를 점검하여 에뮬레이터의 종류를 판단한다. 이때, GPU(123)에 의해 판단된 에뮬레이터의 종류가 PCL6인 경우(S105), GPU(123)는 SRAM(125)을 "1"로 세팅하며(S107), 판단된 에뮬레이터의 종류가 PCL6외의 다른 것인 경우, GPU(123)는 SRAM(125)을 "0"으로 클리어한다(S109). When a new band is started (S103), the GPU 123 clears or sets the SRAM 125. To this end, when a new band is started (S103), the GPU 123 checks the second register 128b to determine the type of emulator. At this time, when the type of emulator determined by the GPU 123 is PCL6 (S105), the GPU 123 sets the SRAM 125 to "1" (S107), and the type of the emulator determined is other than PCL6. If so, the GPU 123 clears the SRAM 125 to "0" (S109).

SRAM(125)에 대한 클리어 또는 세팅이 끝난 후, GPU(123)가 한 밴드를 모두 처리할 때까지 SRAM(125)이 데스티네이션 읽기 블록 컨트롤러(121) 및 데스티네이션 쓰기 블록 컨트롤러(126)에 대해 응답하여 데스티네이션 어드레스의 데이터를 저장한다(S111). 즉, GPU(123)에 의한 한 밴드의 처리가 완료될 때까지 데이터는 시스템 버스로 전송되지 않는다.After clearing or setting the SRAM 125 is complete, the SRAM 125 can be read to the destination read block controller 121 and the destination write block controller 126 until the GPU 123 processes all the bands. In response, data of the destination address is stored (S111). In other words, data is not transferred to the system bus until processing of one band by the GPU 123 is completed.

GPU(123)에 의해 한 밴드의 처리가 모두 완료되면(S113), GPU(123)는 한 밴드의 처리가 완료되었다는 신호를 SRAM(125)에 전송하며, 전송된 신호에 의해 SRAM(125)는 그때까지 저장된 데이터를 제1 레지스터(128a)에 저장된 데스티네이션 어드레스로부터 시작하여 자신의 크기만큼의 시스템 메모리(45) 영역에 라이트백(write back) 즉, 저장한다(S115). When the processing of one band is completed by the GPU 123 (S113), the GPU 123 transmits a signal to the SRAM 125 that the processing of one band is completed, and the SRAM 125 transmits the signal by the transmitted signal. The data stored up to that point is written back, i.e., stored in the area of the system memory 45 corresponding to its size starting from the destination address stored in the first register 128a (S115).

SRAM(125)에 의한 시스템 메모리(45)로의 라이트백이 모두 끝나면, GPU(123)는 제1 레지스터의 비트를 0으로 세팅하며, 다시 새로운 밴드가 시작될 때까지 아이들 상태가 된다.After all writeback to the system memory 45 by the SRAM 125 is complete, the GPU 123 sets the bits in the first register to zero and is idle again until a new band begins.

본 발명에 따르면, 그래픽 처리 유닛은 한 밴드에 대한 그래픽 처리가 완료될 때까지 반복적으로 재사용되는 데스티네이션 비트맵 이미지 데이터를 GPU 내의 SRAM에 저장하고, 한 밴드에 대한 그래픽 처리가 완료될 때까지는 시스템 버스로의 트랜잭션을 발생시키지 않음으로써, 전체적인 시스템 버스의 트랜잭션을 줄일 수 있게 되어 결과적으로 SoC 시스템의 성능을 향상시킬 수 있게 된다. According to the present invention, the graphics processing unit stores the destination bitmap image data, which is repeatedly reused until the graphics processing for one band is completed, in the SRAM in the GPU, and until the graphics processing for one band is completed. By not generating transactions on the bus, the overall system bus transaction can be reduced, resulting in improved performance of the SoC system.                     

이상에서는 본 발명의 바람직한 실시예에 대해서 도시하고 설명하였으나, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다. Although the preferred embodiments of the present invention have been illustrated and described above, the present invention is not limited to the specific embodiments described above, and the present invention is not limited to the specific embodiments of the present invention without departing from the spirit of the present invention as claimed in the claims. Anyone skilled in the art can make various modifications, as well as such modifications are within the scope of the claims.

Claims (5)

비트 단위로 비트맵 그래픽을 처리하는 그래픽 처리 유닛에 있어서,A graphic processing unit for processing bitmap graphics in units of bits, 시스템 버스를 통해 시스템 메모리로부터 데스티네이션 읽기 비트맵 이미지를 독출하는 데스티네이션 읽기 블록 컨트롤러;A destination read block controller for reading a destination read bitmap image from system memory via a system bus; 상기 데스티네이션 읽기 블록 컨트롤러에 의해 독출된 상기 데스티네이션 읽기 비트맵 이미지에 대하여 논리연산을 수행하는 GPU코어; A GPU core configured to perform a logical operation on the destination read bitmap image read by the destination read block controller; 상기 GPU코어에 의해 한 밴드의 처리가 완료되기 전까지의 데스티네이션 어드레스의 데이터를 저장하는 버퍼; 및A buffer for storing data of a destination address until the processing of one band by the GPU core is completed; And 상기 GPU코어에 의해 한 밴드의 처리가 완료된 경우에 상기 버퍼에 저장된 상기 데스티네이션 어드레스의 데이터를 상기 시스템 버스를 통해 상기 시스템 메모리에 기록하는 데스티네이션 쓰기 블록 컨트롤러를 포함하는 것을 특징으로 하는 그래픽 처리 유닛.And a destination write block controller which writes data of the destination address stored in the buffer to the system memory through the system bus when the processing of one band is completed by the GPU core. . 제 1항에 있어서,The method of claim 1, 상기 데스티네이션 읽기 블록 컨트롤러에 의해 독출된 상기 데스티네이션 읽기 비트맵 이미지의 데스티네이션 어드레스를 저장하는 제1 레지스터를 더 포함하는 것을 특징으로 하는 그래픽 처리 유닛.And a first register for storing a destination address of the destination read bitmap image read by the destination read block controller. 제 2항에 있어서,The method of claim 2, 사용되는 에뮬레이터의 종류가 PCL6인 경우에는 "1"의 값을 저장하며, 다른 종류의 에뮬레이터가 사용되는 경우에는 "0"의 값을 저장하는 제2 레지스터를 더 포함하는 것을 특징으로 하는 그래픽 처리 유닛.And a second register storing a value of "1" when the type of emulator used is PCL6, and a value of "0" when another type of emulator is used. . 제 3항에 있어서,The method of claim 3, wherein 상기 GPU코어는 새로운 논리연산의 수행이 시작되는 경우, 상기 제2 레지스터에 저장된 에뮬레이터의 종류를 나타내는 값에 따라 상기 버퍼를 "1"로 세팅하거나, "0"으로 클리어하는 것을 특징으로 하는 그래픽 처리 유닛.The GPU core sets the buffer to "1" or clears it to "0" according to a value indicating the type of emulator stored in the second register when a new logic operation is started. unit. 제 1항에 있어서,The method of claim 1, 상기 버퍼는 SRAM(Static RAM)으로 구현되는 것을 특징으로 하는 그래픽 처리 유닛.And the buffer is implemented as static RAM (SRAM).
KR1020050007567A 2005-01-27 2005-01-27 Graphic processing unit capable of reducing transaction into system bus KR100611249B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050007567A KR100611249B1 (en) 2005-01-27 2005-01-27 Graphic processing unit capable of reducing transaction into system bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050007567A KR100611249B1 (en) 2005-01-27 2005-01-27 Graphic processing unit capable of reducing transaction into system bus

Publications (2)

Publication Number Publication Date
KR20060086678A KR20060086678A (en) 2006-08-01
KR100611249B1 true KR100611249B1 (en) 2006-08-10

Family

ID=37175854

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050007567A KR100611249B1 (en) 2005-01-27 2005-01-27 Graphic processing unit capable of reducing transaction into system bus

Country Status (1)

Country Link
KR (1) KR100611249B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009099446A1 (en) * 2008-02-08 2009-08-13 Hewlett-Packard Development Company, L.P. Printing method using multiple processors

Also Published As

Publication number Publication date
KR20060086678A (en) 2006-08-01

Similar Documents

Publication Publication Date Title
JP2000135821A (en) Printer
KR100611249B1 (en) Graphic processing unit capable of reducing transaction into system bus
JP4208350B2 (en) Drawing apparatus, drawing method, and storage medium
JP2004106192A (en) Writing processor, information processor, image formation apparatus, writing processing method and program
US20030098988A1 (en) Fast printing apparatus and method thereof
JP2001096854A (en) Apparatus and method for printing processing
US6992677B2 (en) System and method for accelerating two-dimensional graphics in a computer system
KR100594782B1 (en) Processing system and method of pattern bitmap data for printer
JP2002024840A (en) Drawing processing device
JP4581854B2 (en) Image processing apparatus, image processing program, and image processing method
JP4058197B2 (en) Drawing apparatus, drawing method, and storage medium
JP2017154395A (en) Information processing device, image processing device, and information processing method
JP2005258783A (en) Data transfer device, data transfer method, image forming apparatus, and option board
JP2907436B2 (en) Pattern information processing apparatus and method
JP2004042406A (en) Printer
JPH1063250A (en) Character processing device
JP6191106B2 (en) Image processing apparatus and image processing method
JP2536430B2 (en) Printer device
JPH10207447A (en) Image processor
JP2008097142A (en) Printer and printer system
JP2001246788A (en) Printer
JP2002019196A (en) Printer and data receiver
JPH1110961A (en) Print processor and printing method
JPH03155268A (en) Picture output controller
JPH0477272A (en) Printer

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee