WO2007043130A1 - Drawer, semiconductor integrated circuit, and drawing method - Google Patents

Drawer, semiconductor integrated circuit, and drawing method Download PDF

Info

Publication number
WO2007043130A1
WO2007043130A1 PCT/JP2005/018291 JP2005018291W WO2007043130A1 WO 2007043130 A1 WO2007043130 A1 WO 2007043130A1 JP 2005018291 W JP2005018291 W JP 2005018291W WO 2007043130 A1 WO2007043130 A1 WO 2007043130A1
Authority
WO
WIPO (PCT)
Prior art keywords
thread
end detection
threads
image
processing
Prior art date
Application number
PCT/JP2005/018291
Other languages
French (fr)
Japanese (ja)
Other versions
WO2007043130A9 (en
Inventor
Hideaki Yamauchi
Original Assignee
Fujitsu Limited
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 Fujitsu Limited filed Critical Fujitsu Limited
Priority to PCT/JP2005/018291 priority Critical patent/WO2007043130A1/en
Publication of WO2007043130A1 publication Critical patent/WO2007043130A1/en
Publication of WO2007043130A9 publication Critical patent/WO2007043130A9/en

Links

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

Definitions

  • the present invention relates to a drawing device, a semiconductor integrated circuit device, and a drawing method, and more particularly to a drawing device, a semiconductor integrated circuit device, and a drawing method for processing a plurality of drawing threads.
  • 3D computer graphics which has been used in high-performance workstations and game machines, has been rapidly applied to embedded devices.
  • LSI Large Scale Integrated circuit
  • real-time rendering that draws moving objects at high speed and limited processing time is required under limited performance and cost constraints. It is required to perform graphics drawing processing.
  • FIG. 9 is a diagram showing a configuration of a conventional basic drawing apparatus.
  • the drawing apparatus 800 includes a CPU (Central Processing Unit) 801, a drawing module 802, a drawing end detection module 803, a memory controller 804, and a frame buffer 805.
  • the drawing module 802, the drawing end detection module 803, and the memory controller 804 force S1 are integrated as one graphics LSI.
  • two different drawing threads (a set of drawing commands and drawing target data, typically one frame of the movie) A and B are shown together, and arrows Sa,
  • the length of Sb schematically shows the processing time in the drawing module 802 of each drawing thread (hereinafter abbreviated as thread) A and B.
  • thread A is a thread that requires real-time drawing
  • thread B is a thread that requires high-load drawing processing.
  • the frame buffer 805 has two buffers 80 5-1 for surface 1 and surface 2 for threads A and B, respectively, in order to realize double buffering that can prevent flickering of the display image. 805-2, 805-3, and 805-4, which hold the image data generated by the threads A and B, and then output them to a display (not shown).
  • FIG. 10 is a timing chart showing the operation of the conventional drawing apparatus. T20 to T26 indicate the timing of each process.
  • the drawing end flag which is an interrupt signal from the drawing end detection module 803 to the CPU 801
  • the drawing module 802 performs the drawing process for the thread ⁇ sent from the CPU 801 and writes the image data into the buffer 805-1 of the frame buffer 805.
  • the image data is output from the buffer 805-2 on the surface 2 of the thread A and displayed on a display (not shown).
  • the drawing process of the surface 1 of the thread B is in an idle state, and the image data is output from the buffer 805-4 of the surface 2 and displayed on a display (not shown).
  • the drawing module 802 sets the drawing process of thread A to the idle state, and this time the drawing process of surface 1 of thread B is performed.
  • the image data generated by the drawing process at this time is written into the nota 805-3.
  • the drawing process of the thread B is a high-load drawing process, and therefore takes more time than the drawing process of the thread A (T21 to T22).
  • the drawing module 802 sets the drawing process of surface 1 of thread ⁇ ⁇ ⁇ ⁇ to the idle state.
  • the drawing end detection module 803 turns on the drawing end flag and ends the drawing process of frame 1.
  • the drawing process for frame 2 in ⁇ 24, ⁇ 25, and ⁇ 26 is almost the same as the drawing process for 121, ⁇ 22, and ⁇ 23 in frame 1. This time, the drawing process for surface 2 of thread ⁇ and ⁇ is performed, and the image data is buffered. Write to 805-2 and 805-4. At this time, the image data of frame 1 drawn by ⁇ 20 to ⁇ 22 is output and displayed on the display (not shown) from the noffers 805-1 and 805-3.
  • FIG. 11 is a diagram showing a configuration of a conventional drawing apparatus having a plurality of drawing modules.
  • the drawing apparatus 900 shown here includes a CPU 901, for example, three drawing modules 902-1, 902-2, 902-3, and three corresponding drawing end detection modules 903-1, 903-2, 903— 3, a memory controller 904, a frame buffer 905, and a scheduler 906 that divides a thread into thread pieces (hereinafter referred to as sub-threads) and inputs them in parallel to the respective drawing modules 902-1 to 902-3.
  • a CPU 901 for example, three drawing modules 902-1, 902-2, 902-3, and three corresponding drawing end detection modules 903-1, 903-2, 903— 3, a memory controller 904, a frame buffer 905, and a scheduler 906 that divides a thread into thread pieces (hereinafter referred to as sub-threads) and inputs them in parallel to the respective drawing modules 902-1 to 902-3.
  • sub-threads thread pieces
  • the frame buffer 905 consists of these three threads A, B, and C.
  • the sofas 905-1, 905-2, 905-3, 9 05-4, 905-5, 905 — Has 6 and realizes double buffering.
  • the lengths of the arrows Sal, Sa2, Sa3, Sbl, Sb2, Sb3, Scl, Sc2, Sc3 are the processing times of the drawing modules 902-1 to 902-3 for the sub-threads of each thread A, B, C. Show.
  • thread A is a thread that requires real-time drawing
  • thread B is a thread that requires medium-load drawing processing
  • thread C requires high-load drawing processing. Is a thread.
  • the scheduler 906 divides threads A, B, and C into sub-threads and distributes them in a balanced manner to the drawing modules 902-1 to 902-3. Can be increased.
  • Patent Document 1 Japanese Patent Laid-Open No. 2001-14478
  • An advantage of some aspects of the invention is that it provides a drawing apparatus capable of efficiently processing a plurality of different threads.
  • Another object of the present invention is to provide a semiconductor integrated circuit device that can efficiently process a plurality of different threads.
  • Another object of the present invention is to provide a drawing method capable of efficiently processing a plurality of different threads.
  • a drawing apparatus 100 comprising: a drawing end detection unit 104 that detects the end of processing independently for each drawing thread and sends an independent drawing end detection signal for each drawing thread.
  • the image drawing unit 103 performs an image drawing process based on the drawing thread
  • the drawing end detection unit 104 indicates the end of the drawing process in the image drawing unit 103. Detection is performed independently for each drawing thread, and an independent drawing end detection signal is transmitted for each drawing thread.
  • the end of the drawing process in the image drawing means that performs the drawing process of the image based on the drawing thread is detected independently for each drawing thread, and an independent drawing end detection signal for each drawing thread.
  • FIG. 1 is a diagram showing a configuration of a drawing apparatus according to a first embodiment.
  • FIG. 2 is a diagram showing an example of a digital dashboard.
  • FIG. 3 is a timing chart showing the operation of the drawing apparatus of the first embodiment.
  • FIG. 4 is a diagram showing a specific example of a thread.
  • FIG. 5 is a diagram showing a configuration of a drawing apparatus according to a second embodiment.
  • FIG. 6 is a diagram showing an example of threads assigned to each drawing module.
  • FIG. 7 is a timing chart for explaining the operation of the drawing apparatus according to the second embodiment.
  • FIG. 8 is a diagram showing a configuration of a drawing apparatus according to a third embodiment.
  • FIG. 9 is a diagram showing a configuration of a conventional basic drawing apparatus.
  • FIG. 10 is a timing chart showing the operation of a conventional drawing apparatus.
  • FIG. 11 is a diagram showing a configuration of a conventional drawing apparatus having a plurality of drawing modules.
  • FIG. 1 is a diagram illustrating a configuration of a drawing apparatus according to the first embodiment.
  • the drawing apparatus 100 includes a CPU 101, a scheduler 102, an image drawing unit 103, a drawing end detection unit 104, a selector 105, a memory controller 106, and a frame buffer 107.
  • scheduler 102, image drawing unit 103, drawing end detection unit 1 04, selector 105, and memory controller 106 are integrated in one graphics LSI.
  • the CPU 101 controls the sending of threads A and B and the memory controller 106.
  • the scheduler 102 sends the threads A and B sent from the CPU 101 to the image drawing unit 103, extracts the identifiers of which the thread A and B forces are identification information, and sends them to the selector 105.
  • the image drawing unit 103 performs an image drawing process based on the input threads A and B.
  • the drawing end detection unit 104 detects the end of the drawing process in the image drawing unit 103 independently for each of the threads A and B, and sends an independent drawing end detection signal to the CPU 101 for each of the threads A and B.
  • the drawing end detection unit 104 includes two drawing end detection modules 104a and 104b.
  • the drawing end detection module 104a detects the end of the drawing processing of the thread A and sends a drawing end detection signal.
  • the drawing end detection module 104b detects the end of drawing processing of the thread B and sends a drawing end detection signal. These are processed asynchronously and independently of each other.
  • the drawing end detection signal is cleared independently as well.
  • the selector 105 selects one of the drawing end detection modules 104a and 104b according to the identifier sent from the scheduler 102, and detects the end of the drawing processing of the threads A and B.
  • the memory controller 106 outputs the image data processed by the image drawing unit 103 to the frame buffer 107 under the control of the CPU 101.
  • the frame buffer 107 has two buffers 107-1 for surface 1 and surface 2 for threads A and B, respectively, in order to realize double buffering that can prevent flickering of the displayed image.
  • 107-2, 107-3, 107-4 which hold the image data generated by each thread A and B, and then output it to a display (not shown).
  • the image drawing unit 103 and the drawing end detection unit 104 also receive a vertical synchronization signal as a synchronization signal for frame update control in the external force.
  • thread A is a thread that requires real-time drawing
  • thread B is a thread that requires high-load drawing processing.
  • FIG. 2 is a diagram illustrating an example of a digital dashboard.
  • the tachometer needle 110 and the speedometer needle 111, etc. require real-time drawing to faithfully reproduce the engine speed and speed while driving. For example, high-speed drawing processing at a frame rate of 60 fps (frame per second) is required.
  • the vehicle body information 112 that is three-dimensionally drawn requires high-load drawing processing. The process is performed at about 8 fps, for example.
  • the blinker 113, the information display 114, the warning light 115, and the like need to be drawn with threads having different required frame rates (for example, 20 fps).
  • the dial and background are still images.
  • a thread for drawing the tachometer needle 110 is a thread A and a thread for drawing the vehicle body information 112 is a thread B.
  • FIG. 3 is a timing chart showing the operation of the drawing apparatus according to the first embodiment.
  • T1 to T6 indicate the timing of each process.
  • the drawing end flag (drawing end detection signal) output to the CPU 101 is cleared by the force of each of the drawing end detection modules 104a and 104b in synchronization with the rising of the vertical synchronization signal to the ⁇ level. (Tl).
  • the image drawing unit 103 performs a drawing process for the thread ⁇ sent from the CPU 101 via the scheduler 102, and writes the image data in the buffer 107-1 of the frame buffer 107.
  • the image data is output from the buffer 107-2 on the surface 2 of the thread A and displayed on a display (not shown).
  • the drawing process of the surface 1 of the thread B is in an idle state, and the image data is output from the buffer 107-4 of the surface 2 to a display (not shown) and displayed.
  • FIG. 4 is a diagram showing a specific example of a thread.
  • a thread is a set of drawing commands and drawing target data, and is typically a motion. Handles the processing of one frame of an image.
  • the CPU 101 inputs drawing data 1, 2, 3,..., A drawing end command, and a drawing end detection command to the scheduler 102 in order from the drawing start command, and the scheduler 102 sends these to the image drawing unit 103. Let it be processed.
  • the bit length of each command is 32 bits, for example.
  • the identifier for identifying the thread is embedded using, for example, some empty bits of the drawing end detection command. For example, by using 4 bits, 16 different threads can be identified.
  • the identifier is extracted by the scheduler 102 and sent to the selector 105.
  • the selector 105 finishes drawing according to the identifier extracted from the drawing end detection command by the scheduler 102. Select the detection destination of the drawing end detection information generated by the detection command.
  • the image drawing unit 103 sends drawing end detection information to the drawing end detection module 104a.
  • the drawing end detection module 104a turns on the drawing end flag and notifies the CPU 101 that the drawing processing of frame 1 of thread A has ended.
  • the image drawing unit 103 sets the drawing process of the thread A to the idle state, and this time, the drawing process of the surface 1 of the thread B is performed.
  • the CPU 101 issues a thread as shown in FIG. 4, and the image drawing unit 103 similarly performs a drawing process.
  • the image data generated by the drawing process at this time is written into the buffer 107-3.
  • the drawing end detection module 104a clears the drawing end flag related to the thread A drawing processing. Then, the CPU 101 starts drawing the frame 2 of the thread A. At this time, the image drawing unit 103 interrupts drawing of the thread B that is being drawn and yields resources for the drawing process of the thread A. Then, the drawing process for frame 2 of thread A is performed, and the image data is written into the buffer 107-2. At this time, the image data of frame 1 is output from the buffer 107-1 on the surface 1 of the thread A and displayed on the display (not shown).
  • the selector 105 sends the drawing end detection information generated by the drawing end detection command in the image drawing unit 103 to the drawing end detection module 104a. Send it out.
  • the drawing end detection module In step 104a the drawing end flag is turned on to notify the CPU 101 that the drawing process of frame 2 of thread A has been completed.
  • the image drawing unit 103 resumes the drawing process for frame 1 of thread B that has been suspended.
  • the scheduler 102 When the drawing end command of thread B is input to the image drawing unit 103 (T5), the scheduler 102 extracts the identifier of the drawing end detection command of thread B and sends it to the selector 105. Thereby, the drawing end detection information generated by the drawing end detection command of the image drawing unit 103 is sent to the drawing end detection module 104b.
  • the drawing end detection module 104b turns on a drawing end flag which is a drawing end detection signal of the thread B, and notifies the CPU 101 that the drawing process of the frame 1 of the thread B has ended.
  • the image drawing unit 103 puts the drawing process of the thread B into an idle state.
  • the drawing end detection module 104b clears the drawing end flag related to the thread B drawing processing, and the thread B frame 2 drawing processing is performed. Is in an idle state. Also, the image data is output from the buffer 103-3 holding the image data of frame 1 of the thread B and displayed on a display (not shown).
  • the thread A proceeds with image processing for one frame using the synchronization signal (vertical synchronization signal) for frame update control as a trigger.
  • thread B which requires high-load non-real-time processing, performs one frame of drawing processing over four cycles of thread A.
  • the drawing end detection unit 104 detects the end of the drawing processing of the threads A and B independently for each of the threads A and B, and the thread Since an independent drawing end detection signal is sent for each of A and B, the processing of different threads A and B can proceed asynchronously.
  • the tachometer needle 110 of the digital dashboard shown in FIG. when drawing at high speed, it is not necessary for thread A to wait until one frame of high-load thread B such as body information 112 to be three-dimensionally drawn is completed, and real-time drawing is possible.
  • the rendering process of thread B can be resumed when the process of thread A is completed, normal image data can be obtained without destroying the information being rendered by thread B.
  • thread A that requires real-time drawing is processed as a high-priority thread
  • thread B that requires high-load drawing processing is a low-priority thread
  • high-priority thread is interrupted during the drawing process of A.
  • These priorities may be distinguished by identifiers, or may be determined by the order in which threads A and B are inserted into the scheduler 102 or the image drawing unit 103. Further, priority information may be added to a drawing start command of each thread.
  • the priority information is represented by, for example, a numerical value or the number of requested frames (frame rate) per second.
  • the scheduler 102 recognizes the identifier and temporarily stores it when the drawing start command is read.
  • the stored identifier is sent to the selector 105, so that the same effect as when an identifier is added to the drawing end detection command can be obtained. .
  • the identifier may be generated and added by the scheduler! For example,
  • the drawing end detection unit 104 has a drawing end detection module according to the number of threads.
  • the drawing end detection unit 104 does not have a plurality of drawing end detection modules, and directly receives drawing end detection information with an identifier from the image drawing unit 103, and provides an independent drawing end detection signal for each thread. May be sent out.
  • FIG. 5 is a diagram illustrating a configuration of a drawing apparatus according to the second embodiment.
  • the drawing apparatus 200 of the second embodiment includes a CPU 201, a scheduler 202, an image drawing unit 203 having three drawing modules 203-1, 203-2, 203-3, and a drawing end detection unit. 204.
  • the selector 105, the memory controller 106, and the frame buffer 107 shown in FIG. 1 are not shown.
  • the thread A is a thread that requires real-time drawing
  • the thread B is a thread that requires a medium-load drawing process
  • the thread C is a thread that requires a high-load drawing process.
  • the scheduler 202 divides the threads A, B, and C sent from the CPU 201 into sub-threads, and distributes them in a balanced manner in parallel to the drawing modules 203-1 to 203-3.
  • Arrows Sal, Sa2, Sa3, Sbl, Sb2, Sb3, Scl, Sc2, Sc3 are the lengths of the sub-thread drawing modules 203-1 to 203-3 of each thread A, B, and C. Shows
  • Identifiers for identifying the threads A, B, and C are added by the power applied to the drawing start command or the drawing end detection command (see FIG. 4) and the scheduler 202.
  • the scheduler 202 generates an identifier for each sub-thread to be divided in accordance with the identifier for each thread A, B, or C.
  • each drawing module 203-1 to 203-3 is added to the end of the sub-thread to be processed.
  • a drawing end command and a drawing end detection command are generated.
  • the above-described subthread identifier is added to the drawing end detection command added here.
  • FIG. 6 is a diagram illustrating an example of threads assigned to each drawing module.
  • Drawing module 203 1 includes thread A sub-thread data Al,..., Ai, thread B sub-thread data Bl,..., Bi, thread C sub-thread data CI,. Ci is assigned, and after the data Ai, Bi, Ci of the last sub thread of each thread A, B, C, a drawing end command and a drawing end detection command are sent by the scheduler 202. Is added. In addition, the identifiers al, bl, and cl of each sub thread are added to the drawing end detection command.
  • the drawing module 203-2 is assigned the data A2 of the sub-threads of threads A, B, and C,... ⁇ Aj, B2,... ⁇ Bj, C2,... ⁇ Cj power ij. 203—3, Thread A, B, C sub-thread data A3,... ⁇ Ak, B3, ..., Bk, C3, ..., Ck force assigned. Identifiers a2, b2, c2, a3, b3, and c3 are added to the drawing end detection commands.
  • the drawing modules 203-1 to 203-3 input the assigned sub threads in order from the top of FIG.
  • each of the drawing modules 203-1 to 203-3 draws drawing end detection information generated from the drawing end detection command via a selector (not shown) according to the subthread identifier. It is sent to the end detection unit 204.
  • the drawing end detection unit 204 includes three drawing end detection modules 204-1, 204-2, and 204-3 in order to detect the states of the three threads A, B, and C.
  • the drawing end detection module 204-1 aggregates the drawing end detection information of the sub-threads (identifiers al, a2, and a3) of the thread A assigned to the drawing modules 203-1 to 203-3, so that one frame of the thread A When the drawing end detection information is restored, the thread A drawing end detection signal is sent to the CPU 201.
  • the drawing end detection modules 204-2 and 204-3 collect the drawing end detection information of the threads B and C ⁇ sub-threads (identifiers bl, b2, and b3 and identifiers cl, c2, and c3), respectively.
  • the drawing end detection signals of thread B and thread C are sent to the CPU 201 independently.
  • FIG. 7 is a timing chart for explaining the operation of the drawing apparatus according to the second embodiment.
  • threads 8, B, and C are given high priority (threads that require real-time drawing), and threads B and C Are of the same priority.
  • each of the drawing modules 203-1 to 203-3 preferentially processes the sub-threads (identifiers al, a2, and a3) of thread A that require real-time drawing (T10).
  • the sub-thread drawing processing related to thread A is set to the idle state.
  • the drawing end detection information generated by the drawing end detection command is sent to the drawing end via a selector (not shown). Send to detection module 204-1.
  • the drawing end detection module 204-1 When the drawing end detection module 204-1 receives the drawing end detection information of the sub thread of thread A from all the drawing modules 203-1 to 203-3, the drawing end detection module 204-1 aggregates them and sends one frame of thread A to the CPU 201 A drawing end detection signal is sent to indicate that the process has been completed (the drawing end flag is turned on).
  • each of the drawing modules 203-1 to 203-3 performs the drawing process of the sub thread (identifiers bl, b2, b3) of thread B to be input next.
  • the drawing process of the sub thread of the thread B is interrupted when the drawing process of the sub thread of the thread C is started (T12).
  • the drawing process of the sub thread of thread C is interrupted when the drawing end flag related to the drawing process of thread A is cleared and the drawing process of the thread piece of the next frame of thread A starts again (T13). .
  • each drawing module 203-1 to 203-3 executes the drawing end command for the sub thread of thread B and completes the processing of the sub thread of thread B (T14).
  • the processing related to B is set in the idle state, and the drawing end detection information is sent to the drawing end detection module 204-2 by referring to the sub-thread identifiers bl, b2, and b3 attached to the drawing end detection command as shown in FIG. Sent to.
  • the drawing end detection module 204-2 receives drawing end detection information of the sub-thread of thread B from all the drawing modules 203-1 to 203-3, the drawing end detection module 204-2 saves about one frame of the thread B to the CPU 201.
  • a drawing end detection signal indicating that the process has been completed is sent.
  • the drawing end detection module 204-3 includes all the drawing modules 203-1 to 2-2.
  • these are collected and a drawing end detection signal indicating that processing of one frame of thread C has been completed is sent to the CPU 201 (T15 ).
  • the drawing end detection modules 204-1 to 204-3 end drawing of the threads A, B, and C. Since the detection unit 204 detects each thread A, B, and C independently and sends an independent drawing end detection signal for each thread A, B, and C, a plurality of drawing modules 203-1 to 203-3 are used. In the high-efficiency drawing apparatus 200 that processes the threads A, B, and C into sub-threads and processes them in parallel, the processing of the different threads A, B, and C can be performed asynchronously.
  • the drawing end detection unit 204 has a drawing end detection module corresponding to the number of threads.
  • FIG. 8 is a diagram illustrating a configuration of a drawing apparatus according to the third embodiment.
  • the drawing apparatus 300 processes sub-threads in parallel from a plurality of drawing modules 203-1 to 203-3 like the drawing apparatus 200 according to the second embodiment.
  • the drawing end detection unit 304 directly detects the drawing end flag of the sub thread together with the identifier of each sub thread from each of the drawing modules 203-1 to 203-3.
  • a thread that does not have a plurality of drawing end detection modules is the maximum that can be expressed by the bit width of the identifier added to the drawing start command and the drawing end detection command described above. Recognize up to numbers. This can contribute to the reduction of hardware resources and the reduction of parallel processing capacity due to a lack of hardware resources.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

Different threads are efficiently processed. An image drawer (103) performs image-drawing processing according to drawing threads, and a drawing completion detector (104) detects the completion of the drawing processing performed by the image drawer (103) independently for each of the drawing threads and sends a drawing completion detection signal independently for each drawing thread. In this manner, different drawing threads are asynchronously processed. Thus, for example, there is no need for a thread which is desired to be drawn at high speed to be kept in a waiting state until the processing of another thread having a heavy load is completed. This enables the efficient processing of different threads.

Description

明 細 書  Specification
描画装置、半導体集積回路装置及び描画方法  Drawing apparatus, semiconductor integrated circuit device, and drawing method
技術分野  Technical field
[0001] 本発明は描画装置、半導体集積回路装置及び描画方法に関し、特に複数の描画 スレッドを処理する描画装置、半導体集積回路装置及び描画方法に関する。  The present invention relates to a drawing device, a semiconductor integrated circuit device, and a drawing method, and more particularly to a drawing device, a semiconductor integrated circuit device, and a drawing method for processing a plurality of drawing threads.
背景技術  Background art
[0002] 従来、高性能なワークステーションやゲーム専用機で利用されていた 3次元コンビ ユータグラフィックス(3DCG)は、近年、組み込み機器へ急速に適用されつつある。 組み込み機器のグラフィックス LSI (Large Scale Integrated circuit)では、限られた性 能やコストの制約のもとで、動きのあるものを高速で描画するリアルタイム描画や、処 理時間の力かる高負荷なグラフィックスの描画処理を行うことが要求されている。  [0002] Conventionally, 3D computer graphics (3DCG), which has been used in high-performance workstations and game machines, has been rapidly applied to embedded devices. In the LSI (Large Scale Integrated circuit) for embedded devices, real-time rendering that draws moving objects at high speed and limited processing time is required under limited performance and cost constraints. It is required to perform graphics drawing processing.
[0003] 図 9は、従来の基本的な描画装置の構成を示す図である。  FIG. 9 is a diagram showing a configuration of a conventional basic drawing apparatus.
描画装置 800は、 CPU (Central Processing Unit) 801、描画モジュール 802、描 画終了検出モジュール 803、メモリコントローラ 804、フレームバッファ 805を有する。 例えば、描画モジュール 802、描画終了検出モジュール 803、メモリコントローラ 804 力 S1つのグラフィックス LSIとして集積化される。なお、ここでは、異なる 2つの描画スレ ッド (描画コマンドや描画対象データの組で、典型的には動画の 1フレーム分) A、 B が混在している場合について示しており、矢印 Sa、 Sbの長さは各描画スレッド(以下 スレッドと略す。)A、 Bの描画モジュール 802での処理時間を模式的に示している。 以下、スレッド Aは、リアルタイム描画が必要なスレッドであり、スレッド Bは、高負荷な 描画処理が必要なスレッドであるとして説明する。  The drawing apparatus 800 includes a CPU (Central Processing Unit) 801, a drawing module 802, a drawing end detection module 803, a memory controller 804, and a frame buffer 805. For example, the drawing module 802, the drawing end detection module 803, and the memory controller 804 force S1 are integrated as one graphics LSI. Note that here, two different drawing threads (a set of drawing commands and drawing target data, typically one frame of the movie) A and B are shown together, and arrows Sa, The length of Sb schematically shows the processing time in the drawing module 802 of each drawing thread (hereinafter abbreviated as thread) A and B. In the following description, it is assumed that thread A is a thread that requires real-time drawing, and thread B is a thread that requires high-load drawing processing.
[0004] なお、フレームバッファ 805は、表示画像のちらつきを防止可能なダブルバッファリ ングを実現するために、スレッド A、 Bに対してそれぞれ面 1、面 2の 2つのバッファ 80 5— 1、 805— 2、 805— 3、 805— 4を有し、各スレッド A、 Bにより生成された画像デ ータを保持したのち、図示しないディスプレイに出力する。  [0004] It should be noted that the frame buffer 805 has two buffers 80 5-1 for surface 1 and surface 2 for threads A and B, respectively, in order to realize double buffering that can prevent flickering of the display image. 805-2, 805-3, and 805-4, which hold the image data generated by the threads A and B, and then output them to a display (not shown).
[0005] 以下スレッド A、 Bを処理する際の、描画装置 800の動作を説明する。  [0005] The operation of the drawing apparatus 800 when processing threads A and B will be described below.
図 10は、従来の描画装置の動作を示すタイミングチャートである。 T20〜T26は、各処理のタイミングを示している。 FIG. 10 is a timing chart showing the operation of the conventional drawing apparatus. T20 to T26 indicate the timing of each process.
[0006] 描画処理を開始すると、垂直同期信号の H (High)レベルへの立ち上がりに同期し て、描画終了検出モジュール 803から CPU801への割り込み信号である描画終了フ ラグをクリアする(T20)。このとき、描画モジュール 802は、 CPU801から送出された スレッド Αの描画処理を行い、フレームバッファ 805のバッファ 805— 1に画像データ を書き込む。このとき、スレッド Aの面 2のバッファ 805— 2からは画像データが図示し ないディスプレイに出力され表示される。また、スレッド Bの面 1の描画処理はアイドル 状態となっており、面 2のバッファ 805— 4からは画像データが図示しないディスプレ ィに出力され表示される。  [0006] When the drawing process is started, the drawing end flag, which is an interrupt signal from the drawing end detection module 803 to the CPU 801, is cleared in synchronization with the rise of the vertical synchronization signal to the H (High) level (T20). At this time, the drawing module 802 performs the drawing process for the thread 送出 sent from the CPU 801 and writes the image data into the buffer 805-1 of the frame buffer 805. At this time, the image data is output from the buffer 805-2 on the surface 2 of the thread A and displayed on a display (not shown). In addition, the drawing process of the surface 1 of the thread B is in an idle state, and the image data is output from the buffer 805-4 of the surface 2 and displayed on a display (not shown).
[0007] スレッド Aの描画処理が終了すると(T21)、描画モジュール 802は、スレッド Aの描 画処理をアイドル状態にし、今度はスレッド Bの面 1の描画処理を行う。このときの描 画処理によって生成された画像データは、ノ ッファ 805— 3に書き込まれる。  [0007] When the drawing process of thread A is completed (T21), the drawing module 802 sets the drawing process of thread A to the idle state, and this time the drawing process of surface 1 of thread B is performed. The image data generated by the drawing process at this time is written into the nota 805-3.
[0008] スレッド Bの描画処理は、前述したように、高負荷な描画処理であるため、スレッド A の描画処理よりも時間が力かる(T21〜T22)。スレッド Βの描画処理が終了すると (Τ 22)、描画モジュール 802は、スレッド Βの面 1の描画処理をアイドル状態とする。この とき、描画終了検出モジュール 803は、描画終了フラグをオンにしてフレーム 1の描 画処理を終了する。  [0008] As described above, the drawing process of the thread B is a high-load drawing process, and therefore takes more time than the drawing process of the thread A (T21 to T22). When the drawing process of thread Β is completed (Τ 22), the drawing module 802 sets the drawing process of surface 1 of thread ア イ ド ル to the idle state. At this time, the drawing end detection module 803 turns on the drawing end flag and ends the drawing process of frame 1.
[0009] そして、次の垂直同期信号の立ち上がりに同期して、描画終了フラグカ^リアされる と(Τ23)、次のフレーム 2の描画処理が開始される。  [0009] Then, when the drawing end flag is cleared in synchronization with the rising edge of the next vertical synchronizing signal (Τ23), the drawing process for the next frame 2 is started.
Τ24、 Τ25、 Τ26におけるフレーム 2の描画処理は、フレーム 1の Τ21、 Τ22、 Τ23 の描画処理とほぼ同様である力 今度はスレッド Α、 Βの面 2の描画処理を行い、画 像データをバッファ 805— 2、 805— 4へ書き込む。このとき、 Τ20〜Τ22で描画した フレーム 1の画像データは、ノッファ 805— 1、 805— 3から図示しないディスプレイに 出力され表示される。  The drawing process for frame 2 in Τ24, Τ25, and Τ26 is almost the same as the drawing process for 121, Τ22, and Τ23 in frame 1. This time, the drawing process for surface 2 of thread Α and Β is performed, and the image data is buffered. Write to 805-2 and 805-4. At this time, the image data of frame 1 drawn by Τ20 to Τ22 is output and displayed on the display (not shown) from the noffers 805-1 and 805-3.
[0010] ところで、近年注目されて!/、るマルチコア CPUの概念を、グラフィックス LSIに適用 する技術が知られている。この技術は、グラフィックス LSI内に、独立した複数の描画 コアを配置し、それぞれの描画コア中に図 9で示したような、一対の描画モジュールと 描画終了検出モジュールを設ける。これにより、 CPU力 送出された複数のスレッド をそれぞれの描画コアに分配し、独立に処理することが可能になる。 [0010] By the way, a technique that applies the concept of a multi-core CPU that has been attracting attention in recent years to a graphics LSI is known. In this technology, a plurality of independent drawing cores are arranged in the graphics LSI, and a pair of drawing modules and a drawing end detection module as shown in FIG. 9 are provided in each drawing core. As a result, multiple threads sent out CPU power Can be distributed to each drawing core and processed independently.
[0011] し力し、図 9で示したスレッド A、 Bのように、複数のスレッドの負荷が異なるような場 合、各描画コアの負荷バランスがとれず、ある描画コアは能力を持て余しているのに 対して、他の描画コアは過負荷により、著しく性能低下してしまう。そのため、従来の ハイエンドグラフィックス LSIにおいては、以下のような構成が適用されている(例えば 、特許文献 1参照。)。  [0011] However, if the load of multiple threads is different, such as threads A and B shown in Fig. 9, the load balance of each drawing core is not balanced, and a certain drawing core has extra capacity. On the other hand, the performance of other drawing cores is significantly reduced due to overload. Therefore, the following configuration is applied to a conventional high-end graphics LSI (see, for example, Patent Document 1).
[0012] 図 11は、複数の描画モジュールを有する従来の描画装置の構成を示す図である。  FIG. 11 is a diagram showing a configuration of a conventional drawing apparatus having a plurality of drawing modules.
ここで示す描画装置 900は、 CPU901と、例えば、 3つの描画モジュール 902—1 、 902— 2、 902— 3と、それに対応した 3つの描画終了検出モジユーノレ 903— 1、 90 3— 2、 903— 3、メモリコントローラ 904、フレームバッファ 905及びスレッドをスレッド 片(以下サブスレッドという。 )に分割して各描画モジュール 902— 1〜902— 3に並 列に入力するスケジューラ 906を有している。  The drawing apparatus 900 shown here includes a CPU 901, for example, three drawing modules 902-1, 902-2, 902-3, and three corresponding drawing end detection modules 903-1, 903-2, 903— 3, a memory controller 904, a frame buffer 905, and a scheduler 906 that divides a thread into thread pieces (hereinafter referred to as sub-threads) and inputs them in parallel to the respective drawing modules 902-1 to 902-3.
[0013] なお、ここでは、 CPU901からそれぞれ 1フレーム分ずつ発行される 3つのスレッド A、 B、 Cを処理する場合について示している。フレームバッファ 905は、この 3つのス レッド A、 B、 C【こ対し、それぞれ面 1、面 2のノ ソファ 905— 1、 905— 2、 905— 3、 9 05—4、 905— 5、 905— 6を有しており、ダブルバッファリングを実現する。矢印 Sal 、 Sa2、 Sa3、 Sbl、 Sb2、 Sb3、 Scl、 Sc2、 Sc3の長さは各スレッド A、 B、 Cのサブ スレッドの描画モジュール 902— 1〜902— 3での処理時間を模式的に示している。 図 11において、例えば、スレッド Aは、リアルタイム描画が必要なスレッドであり、スレ ッド Bは、中負荷な描画処理が必要なスレッドであり、スレッド Cは、高負荷な描画処 理が必要なスレッドである。  [0013] Here, a case is shown in which three threads A, B, and C issued by the CPU 901 for each frame are processed. The frame buffer 905 consists of these three threads A, B, and C. On the other hand, the sofas 905-1, 905-2, 905-3, 9 05-4, 905-5, 905 — Has 6 and realizes double buffering. The lengths of the arrows Sal, Sa2, Sa3, Sbl, Sb2, Sb3, Scl, Sc2, Sc3 are the processing times of the drawing modules 902-1 to 902-3 for the sub-threads of each thread A, B, C. Show. In FIG. 11, for example, thread A is a thread that requires real-time drawing, thread B is a thread that requires medium-load drawing processing, and thread C requires high-load drawing processing. Is a thread.
[0014] このような描画装置 900では、スケジューラ 906は、スレッド A、 B、 Cをサブスレッド に分割して、各描画モジュール 902— 1〜902— 3にバランスよく分配するので、処 理効率を高めることができる。  [0014] In such a drawing apparatus 900, the scheduler 906 divides threads A, B, and C into sub-threads and distributes them in a balanced manner to the drawing modules 902-1 to 902-3. Can be increased.
特許文献 1:特開 2001— 14478号公報  Patent Document 1: Japanese Patent Laid-Open No. 2001-14478
発明の開示  Disclosure of the invention
発明が解決しょうとする課題  Problems to be solved by the invention
[0015] しかし、従来の描画装置では、複数の異なるスレッド力CPU力もそれぞれ 1フレー ム分発行された場合、これらのスレッドが全て描画終了しなければ後続のフレームの 処理に遷移できないという問題があった。これにより、高速な描画が必要なスレッドと 、高負荷な描画処理が必要なスレッドが混在する場合、高速な描画が必要なスレッド は、高負荷なスレッドの描画が終了するまで次のフレームの描画処理に移ることはで きず、リアルタイム描画が実現不可能になるという問題があった。 [0015] However, in the conventional drawing apparatus, a plurality of different thread powers and CPU powers each have one frame. When all the threads are issued, there is a problem that it is not possible to shift to the processing of the subsequent frame unless all of these threads finish drawing. As a result, when a thread that requires high-speed drawing and a thread that requires high-load drawing processing are mixed, the thread that requires high-speed drawing will draw the next frame until drawing of the high-load thread is completed. There was a problem that it was impossible to move to processing, and real-time drawing became impossible.
[0016] 例えば、図 10で示したように、スレッド Aの描画処理は終了しているにもかかわらず  [0016] For example, as shown in FIG. 10, the drawing process of thread A has ended.
(T21)、高負荷のスレッド Bの描画処理が終了し、描画終了フラグがオンして (Τ22) 、次の垂直同期信号の立ち上がりに同期して描画終了フラグがクリアされるまで (Τ2 3)待機して!/ヽなければならなかった。  (T21) Until the drawing process of the high-load thread B ends, the drawing end flag is turned on (Τ22), and the drawing end flag is cleared in synchronization with the rise of the next vertical synchronization signal (Τ23) I had to wait!
[0017] また、リアルタイム描画を行うスレッドを優先して高負荷のスレッドの描画処理を抑制 すると、高負荷の画像が全く得られなかったり、描画途中の不完全な画像が表示され てしまうという問題があった。  [0017] In addition, if priority is given to a thread that performs real-time drawing and drawing processing of a high-load thread is suppressed, a high-load image cannot be obtained at all, or an incomplete image during drawing may be displayed. was there.
[0018] この問題は、図 11で示したようにスレッドをサブスレッドに分割した場合も同様に生 じる。  [0018] This problem also occurs when a thread is divided into sub-threads as shown in FIG.
本発明はこのような点に鑑みてなされたものであり、複数の異なるスレッドを効率よく 処理可能な描画装置を提供することを目的とする。  SUMMARY An advantage of some aspects of the invention is that it provides a drawing apparatus capable of efficiently processing a plurality of different threads.
[0019] また、本発明の他の目的は、複数の異なるスレッドを効率よく処理可能な半導体集 積回路装置を提供することである。 Another object of the present invention is to provide a semiconductor integrated circuit device that can efficiently process a plurality of different threads.
また、本発明の他の目的は、複数の異なるスレッドを効率よく処理可能な描画方法 を提供することである。  Another object of the present invention is to provide a drawing method capable of efficiently processing a plurality of different threads.
課題を解決するための手段  Means for solving the problem
[0020] 本発明では上記問題を解決するために、複数の描画スレッドを処理する描画装置 において、前記描画スレッドをもとに画像の描画処理を行う画像描画部 103と、画像 描画部 103における描画処理の終了を前記描画スレッドごとに独立に検出して、前 記描画スレッドごとに独立の描画終了検出信号を送出する描画終了検出部 104と、 を有することを特徴とする描画装置 100が提供される。  In the present invention, in order to solve the above problem, in a drawing apparatus that processes a plurality of drawing threads, an image drawing unit 103 that performs image drawing processing based on the drawing threads, and a drawing in the image drawing unit 103 There is provided a drawing apparatus 100 comprising: a drawing end detection unit 104 that detects the end of processing independently for each drawing thread and sends an independent drawing end detection signal for each drawing thread. The
[0021] 上記の構成によれば画像描画部 103は描画スレッドをもとに画像の描画処理を行 い、描画終了検出部 104は画像描画部 103における描画処理の終了を描画スレッド ごとに独立に検出して、描画スレッドごとに独立の描画終了検出信号を送出する。 発明の効果 According to the above configuration, the image drawing unit 103 performs an image drawing process based on the drawing thread, and the drawing end detection unit 104 indicates the end of the drawing process in the image drawing unit 103. Detection is performed independently for each drawing thread, and an independent drawing end detection signal is transmitted for each drawing thread. The invention's effect
[0022] 本発明では、描画スレッドをもとに画像の描画処理を行う画像描画手段における描 画処理の終了を、描画スレッドごとに独立に検出して、描画スレッドごとに独立の描画 終了検出信号を送出するので、異なる描画スレッドが非同期的にそれぞれの処理を 進行するようにできる。これにより、例えば、高速で描画したいスレッド力 高負荷のス レッドの処理が終了するまで待機する必要が無くなり、複数の異なるスレッドを効率よ く処理することが可能になる。  In the present invention, the end of the drawing process in the image drawing means that performs the drawing process of the image based on the drawing thread is detected independently for each drawing thread, and an independent drawing end detection signal for each drawing thread. , So that different drawing threads can proceed with each process asynchronously. As a result, for example, it is not necessary to wait until the processing of a thread with a high load of thread that wants to draw at high speed is completed, and a plurality of different threads can be processed efficiently.
[0023] 本発明の上記および他の目的、特徴および利点は本発明の例として好ま U、実施 の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。  [0023] The above and other objects, features, and advantages of the present invention are preferred as examples of the present invention, and will become apparent from the following description in conjunction with the accompanying drawings showing embodiments.
図面の簡単な説明  Brief Description of Drawings
[0024] [図 1]第 1の実施の形態の描画装置の構成を示す図である。  FIG. 1 is a diagram showing a configuration of a drawing apparatus according to a first embodiment.
[図 2]デジタルダッシュボードの一例を示す図である。  FIG. 2 is a diagram showing an example of a digital dashboard.
[図 3]第 1の実施の形態の描画装置の動作を示すタイミングチャートである。  FIG. 3 is a timing chart showing the operation of the drawing apparatus of the first embodiment.
[図 4]スレッドの具体例を示す図である。  FIG. 4 is a diagram showing a specific example of a thread.
[図 5]第 2の実施の形態の描画装置の構成を示す図である。  FIG. 5 is a diagram showing a configuration of a drawing apparatus according to a second embodiment.
[図 6]各描画モジュールに割り当てられるスレッドの例を示す図である。  FIG. 6 is a diagram showing an example of threads assigned to each drawing module.
[図 7]第 2の実施の形態の描画装置の動作を説明するタイミングチャートである。  FIG. 7 is a timing chart for explaining the operation of the drawing apparatus according to the second embodiment.
[図 8]第 3の実施の形態の描画装置の構成を示す図である。  FIG. 8 is a diagram showing a configuration of a drawing apparatus according to a third embodiment.
[図 9]従来の基本的な描画装置の構成を示す図である。  FIG. 9 is a diagram showing a configuration of a conventional basic drawing apparatus.
[図 10]従来の描画装置の動作を示すタイミングチャートである。  FIG. 10 is a timing chart showing the operation of a conventional drawing apparatus.
[図 11]複数の描画モジュールを有する従来の描画装置の構成を示す図である。 発明を実施するための最良の形態  FIG. 11 is a diagram showing a configuration of a conventional drawing apparatus having a plurality of drawing modules. BEST MODE FOR CARRYING OUT THE INVENTION
[0025] 以下、本発明の実施の形態を図面を参照して詳細に説明する。  Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
図 1は、第 1の実施の形態の描画装置の構成を示す図である。  FIG. 1 is a diagram illustrating a configuration of a drawing apparatus according to the first embodiment.
第 1の実施の形態の描画装置 100は、 CPU101、スケジューラ 102、画像描画部 1 03、描画終了検出部 104、セレクタ 105、メモリコントローラ 106、フレームバッファ 10 7を有する。ここで、例えば、スケジューラ 102、画像描画部 103、描画終了検出部 1 04、セレクタ 105、メモリコントローラ 106は、 1つのグラフィックス LSIに集積化されて いる。 The drawing apparatus 100 according to the first embodiment includes a CPU 101, a scheduler 102, an image drawing unit 103, a drawing end detection unit 104, a selector 105, a memory controller 106, and a frame buffer 107. Here, for example, scheduler 102, image drawing unit 103, drawing end detection unit 1 04, selector 105, and memory controller 106 are integrated in one graphics LSI.
[0026] なお、以下では 2つの異なるスレッド A、 Bを処理する構成を例にして説明する。  [0026] In the following, a configuration for processing two different threads A and B will be described as an example.
CPU101は、スレッド A、 Bの送出やメモリコントローラ 106などの制御を行う。  The CPU 101 controls the sending of threads A and B and the memory controller 106.
[0027] スケジューラ 102は、 CPU101から送出されたスレッド A、 Bを画像描画部 103に送 出するとともに、スレッド A、 B力も識別情報である識別子を抽出し、セレクタ 105に送 出する。 [0027] The scheduler 102 sends the threads A and B sent from the CPU 101 to the image drawing unit 103, extracts the identifiers of which the thread A and B forces are identification information, and sends them to the selector 105.
[0028] 画像描画部 103は、入力されたスレッド A、 Bをもとに画像の描画処理を行う。  The image drawing unit 103 performs an image drawing process based on the input threads A and B.
描画終了検出部 104は、画像描画部 103における描画処理の終了をスレッド A、 B ごとに独立に検出して、スレッド A、 Bごとに独立の描画終了検出信号を CPU101に 送出する。第 1の実施の形態の描画装置 100では、描画終了検出部 104は、 2つの 描画終了検出モジュール 104a、 104bを有する。描画終了検出モジュール 104aは 、スレッド Aの描画処理の終了を検出し、描画終了検出信号を送出する。描画終了 検出モジュール 104bは、スレッド Bの描画処理の終了を検出し、描画終了検出信号 を送出する。これらは互いに非同期に独立に処理される。なお、描画終了検出信号 のクリアも同様に独立に行われる。  The drawing end detection unit 104 detects the end of the drawing process in the image drawing unit 103 independently for each of the threads A and B, and sends an independent drawing end detection signal to the CPU 101 for each of the threads A and B. In the drawing apparatus 100 according to the first embodiment, the drawing end detection unit 104 includes two drawing end detection modules 104a and 104b. The drawing end detection module 104a detects the end of the drawing processing of the thread A and sends a drawing end detection signal. The drawing end detection module 104b detects the end of drawing processing of the thread B and sends a drawing end detection signal. These are processed asynchronously and independently of each other. The drawing end detection signal is cleared independently as well.
[0029] セレクタ 105は、スケジューラ 102から送出された識別子に応じて、描画終了検出 モジュール 104a、 104bのいずれかを選択してスレッド A、 Bの描画処理の終了を検 出させる。  The selector 105 selects one of the drawing end detection modules 104a and 104b according to the identifier sent from the scheduler 102, and detects the end of the drawing processing of the threads A and B.
[0030] メモリコントローラ 106は、 CPU101の制御のもと、画像描画部 103で処理された画 像データをフレームバッファ 107に出力する。  The memory controller 106 outputs the image data processed by the image drawing unit 103 to the frame buffer 107 under the control of the CPU 101.
フレームバッファ 107は、表示画像のちらつきを防止可能なダブルバッファリングを 実現するために、スレッド A、 Bに対してそれぞれ面 1、面 2の 2つのバッファ 107—1、 The frame buffer 107 has two buffers 107-1 for surface 1 and surface 2 for threads A and B, respectively, in order to realize double buffering that can prevent flickering of the displayed image.
107— 2、 107— 3、 107— 4を有し、各スレッド A、 Bにより生成された画像データを 保持したのち、図示しないディスプレイに出力する。 107-2, 107-3, 107-4, which hold the image data generated by each thread A and B, and then output it to a display (not shown).
[0031] なお、ここでは図示を省略しているが、例えば、画像描画部 103や、描画終了検出 部 104には、外部力もフレーム更新制御用の同期信号として垂直同期信号が入力さ れている。 [0032] 以下、スレッド Aは、リアルタイム描画が必要なスレッドであり、スレッド Bは、高負荷 な描画処理が必要なスレッドであるとして説明する。 [0031] Although not shown here, for example, the image drawing unit 103 and the drawing end detection unit 104 also receive a vertical synchronization signal as a synchronization signal for frame update control in the external force. . [0032] In the following description, it is assumed that thread A is a thread that requires real-time drawing, and thread B is a thread that requires high-load drawing processing.
リアルタイム描画が必要なスレッドと、高負荷な描画処理が必要なスレッドの両方を 混在して用いる例として、近年開発が進められている自動車のデジタルダッシュボー ドがある。  An example of using both threads that require real-time drawing and threads that require high-load drawing processing is the automobile digital dashboard, which is being developed in recent years.
[0033] 図 2は、デジタルダッシュボードの一例を示す図である。  FIG. 2 is a diagram illustrating an example of a digital dashboard.
デジタルダッシュボードにお!、て、タコメータの針 110やスピードメータの針 111な どは、走行中のエンジン回転や速度を忠実に再現するためにリアルタイム描画が必 須である。例えば、 60fps (frame per second)のフレームレートでの高速な描画処理 が必要になる。一方、 3次元描画されるような車体情報 112は、高負荷な描画処理が 必要である。その処理は例えば、 8fps程度で行う。また、ウィンカー 113、情報表示 1 14、警告灯 115なども、要求されるフレームレートの異なる(例えば、 20fps)スレッド にて描画処理する必要がある。文字盤や背景は静止画である。  On the digital dashboard, the tachometer needle 110 and the speedometer needle 111, etc., require real-time drawing to faithfully reproduce the engine speed and speed while driving. For example, high-speed drawing processing at a frame rate of 60 fps (frame per second) is required. On the other hand, the vehicle body information 112 that is three-dimensionally drawn requires high-load drawing processing. The process is performed at about 8 fps, for example. In addition, the blinker 113, the information display 114, the warning light 115, and the like need to be drawn with threads having different required frame rates (for example, 20 fps). The dial and background are still images.
[0034] ここで、例えば、タコメータの針 110を描画するスレッドをスレッド A、車体情報 112 を描画するスレッドをスレッド Bとして第 1の実施の形態の描画装置 100の動作を説明 する。  Here, for example, the operation of the drawing apparatus 100 according to the first embodiment will be described assuming that a thread for drawing the tachometer needle 110 is a thread A and a thread for drawing the vehicle body information 112 is a thread B.
[0035] 図 3は、第 1の実施の形態の描画装置の動作を示すタイミングチャートである。  FIG. 3 is a timing chart showing the operation of the drawing apparatus according to the first embodiment.
T1〜T6は、各処理のタイミングを示している。  T1 to T6 indicate the timing of each process.
描画処理を開始すると、垂直同期信号の Ηレベルへの立ち上がりに同期して、描 画終了検出モジュール 104a、 104bのそれぞれ力ら、 CPU101へ出力される描画 終了フラグ (描画終了検出信号)をクリアする (Tl)。このとき、画像描画部 103は、 C PU101からスケジューラ 102を介して送られてきたスレッド Αの描画処理を行い、フ レームバッファ 107のバッファ 107—1に画像データを書き込む。このとき、スレッド A の面 2のバッファ 107— 2からは画像データが図示しないディスプレイに出力され表 示される。また、スレッド Bの面 1の描画処理はアイドル状態となり、面 2のバッファ 107 —4からは画像データが図示しないディスプレイに出力され表示される。  When the drawing process starts, the drawing end flag (drawing end detection signal) output to the CPU 101 is cleared by the force of each of the drawing end detection modules 104a and 104b in synchronization with the rising of the vertical synchronization signal to the Η level. (Tl). At this time, the image drawing unit 103 performs a drawing process for the thread 送 sent from the CPU 101 via the scheduler 102, and writes the image data in the buffer 107-1 of the frame buffer 107. At this time, the image data is output from the buffer 107-2 on the surface 2 of the thread A and displayed on a display (not shown). In addition, the drawing process of the surface 1 of the thread B is in an idle state, and the image data is output from the buffer 107-4 of the surface 2 to a display (not shown) and displayed.
[0036] 図 4は、スレッドの具体例を示す図である。 FIG. 4 is a diagram showing a specific example of a thread.
スレッドは、前述したように、描画コマンドや描画対象データの組で、典型的には動 画の 1フレーム分の処理を扱う。 CPU101は、描画開始コマンドから順に、描画デー タ 1、 2、 3、 ···、描画終了コマンド、描画終了検出コマンドをスケジューラ 102に投入 し、スケジューラ 102はこれらを画像描画部 103に送出して処理させる。各コマンドの ビット長は例えば 32ビットである。スレッドを識別するための識別子は、例えば、描画 終了検出コマンドの一部の空きビットを利用して埋め込まれている。例えば 4ビットを 使用することで、 16個の異なるスレッドを識別できる。識別子は、スケジューラ 102に より抽出されてセレクタ 105に送出される。 As described above, a thread is a set of drawing commands and drawing target data, and is typically a motion. Handles the processing of one frame of an image. The CPU 101 inputs drawing data 1, 2, 3,..., A drawing end command, and a drawing end detection command to the scheduler 102 in order from the drawing start command, and the scheduler 102 sends these to the image drawing unit 103. Let it be processed. The bit length of each command is 32 bits, for example. The identifier for identifying the thread is embedded using, for example, some empty bits of the drawing end detection command. For example, by using 4 bits, 16 different threads can be identified. The identifier is extracted by the scheduler 102 and sent to the selector 105.
[0037] 画像描画部 103に描画終了コマンドが入力されてスレッド Aの描画処理が終了する と (T2)、セレクタ 105は、スケジューラ 102により描画終了検出コマンドから抽出され た識別子に応じて、描画終了検出コマンドによって生成された描画終了検出情報の 検出先を選択する。この場合、識別子はスレッド Αを示すものであるので、画像描画 部 103は、描画終了検出情報を描画終了検出モジュール 104aに送出する。これに より、描画終了検出モジュール 104aは、描画終了フラグをオンにして、 CPU101に スレッド Aのフレーム 1の描画処理が終了したことを通知する。また、画像描画部 103 は、スレッド Aの描画処理をアイドル状態にし、今度はスレッド Bの面 1の描画処理を 行う。 CPU101は、図 4で示したようなスレッドを発行し、同様に画像描画部 103にて 描画処理が行われる。このときの描画処理によって生成された画像データは、バッフ ァ 107— 3に書き込まれる。  [0037] When the drawing end command is input to the image drawing unit 103 and the drawing process of the thread A is finished (T2), the selector 105 finishes drawing according to the identifier extracted from the drawing end detection command by the scheduler 102. Select the detection destination of the drawing end detection information generated by the detection command. In this case, since the identifier indicates a thread Α, the image drawing unit 103 sends drawing end detection information to the drawing end detection module 104a. As a result, the drawing end detection module 104a turns on the drawing end flag and notifies the CPU 101 that the drawing processing of frame 1 of thread A has ended. Further, the image drawing unit 103 sets the drawing process of the thread A to the idle state, and this time, the drawing process of the surface 1 of the thread B is performed. The CPU 101 issues a thread as shown in FIG. 4, and the image drawing unit 103 similarly performs a drawing process. The image data generated by the drawing process at this time is written into the buffer 107-3.
[0038] 次に、垂直同期信号が Hレベルになると (T3)、描画終了検出モジュール 104aは、 スレッド Aの描画処理にかかわる描画終了フラグをクリアする。そして、 CPU101は、 スレッド Aのフレーム 2の描画を開始させる。このとき、画像描画部 103は、描画中の スレッド Bの描画を中断し、スレッド Aの描画処理のためにリソースを明け渡す。そして スレッド Aのフレーム 2の描画処理を行い、バッファ 107— 2に画像データを書き込む 。このとき、スレッド Aの面 1のバッファ 107—1からはフレーム 1の画像データが図示 しな 、ディスプレイに出力され表示される。  Next, when the vertical synchronization signal becomes H level (T3), the drawing end detection module 104a clears the drawing end flag related to the thread A drawing processing. Then, the CPU 101 starts drawing the frame 2 of the thread A. At this time, the image drawing unit 103 interrupts drawing of the thread B that is being drawn and yields resources for the drawing process of the thread A. Then, the drawing process for frame 2 of thread A is performed, and the image data is written into the buffer 107-2. At this time, the image data of frame 1 is output from the buffer 107-1 on the surface 1 of the thread A and displayed on the display (not shown).
[0039] そして再びスレッド Aのフレーム 2の描画処理が終了すると(T4)、セレクタ 105では 、画像描画部 103での描画終了検出コマンドによって生成される描画終了検出情報 を、描画終了検出モジュール 104aに送出する。これにより、描画終了検出モジユー ル 104aは、描画終了フラグをオンにして、 CPU101にスレッド Aのフレーム 2の描画 処理が終了したことを通知する。一方、画像描画部 103は、スレッド Aのフレーム 2の 描画処理が終了すると、中断しているスレッド Bのフレーム 1の描画処理を再開する。 [0039] When the drawing process for frame 2 of thread A ends again (T4), the selector 105 sends the drawing end detection information generated by the drawing end detection command in the image drawing unit 103 to the drawing end detection module 104a. Send it out. Thus, the drawing end detection module In step 104a, the drawing end flag is turned on to notify the CPU 101 that the drawing process of frame 2 of thread A has been completed. On the other hand, when the drawing process for frame 2 of thread A is completed, the image drawing unit 103 resumes the drawing process for frame 1 of thread B that has been suspended.
[0040] 同様にしてスレッド Aのフレーム 3、フレーム 4の描画処理が行われる。  In the same manner, the drawing process for frame 3 and frame 4 of thread A is performed.
スレッド Bの描画終了コマンドが画像描画部 103に入力されると (T5)、スケジューラ 102は、スレッド Bの描画終了検出コマンド力も識別子を抽出してセレクタ 105に送る 。これにより、画像描画部 103の描画終了検出コマンドによって生成される描画終了 検出情報が、描画終了検出モジュール 104bに送出される。描画終了検出モジユー ル 104bは、スレッド Bの描画終了検出信号である描画終了フラグをオンし、 CPU 10 1にスレッド Bのフレーム 1の描画処理が終了したことを通知する。また、画像描画部 1 03は、スレッド Bの描画処理をアイドル状態にする。  When the drawing end command of thread B is input to the image drawing unit 103 (T5), the scheduler 102 extracts the identifier of the drawing end detection command of thread B and sends it to the selector 105. Thereby, the drawing end detection information generated by the drawing end detection command of the image drawing unit 103 is sent to the drawing end detection module 104b. The drawing end detection module 104b turns on a drawing end flag which is a drawing end detection signal of the thread B, and notifies the CPU 101 that the drawing process of the frame 1 of the thread B has ended. In addition, the image drawing unit 103 puts the drawing process of the thread B into an idle state.
[0041] そして次に垂直同期信号が Hレベルになると (T6)、描画終了検出モジュール 104 bは、スレッド Bの描画処理にかかわる描画終了フラグをクリアして、スレッド Bのフレー ム 2の描画処理をアイドル状態とする。また、スレッド Bのフレーム 1の画像データを保 持したバッファ 107— 3から画像データが図示しないディスプレイに出力され表示さ れる。  [0041] Next, when the vertical synchronization signal becomes H level (T6), the drawing end detection module 104b clears the drawing end flag related to the thread B drawing processing, and the thread B frame 2 drawing processing is performed. Is in an idle state. Also, the image data is output from the buffer 103-3 holding the image data of frame 1 of the thread B and displayed on a display (not shown).
[0042] その後は、 T2〜T6の処理と同様に、スレッド Αの描画処理が開始するたびにスレツ ド Bのフレーム 2の描画処理を中断して、スレッド Aの描画処理が終了するとスレッド 2 の描画処理を再開するようにする。  [0042] After that, as in the processes of T2 to T6, the drawing process of frame 2 of thread B is interrupted every time the drawing process of thread Α is started, and when the drawing process of thread A ends, The drawing process is resumed.
[0043] このように、図 3の例では、スレッド Aは、フレーム更新制御用の同期信号 (垂直同 期信号)をトリガとして、 1フレーム分の画像処理を進行する。これに対し、高負荷で 非リアルタイム処理を必要とするスレッド Bはスレッド Aの 4サイクル分かけて 1フレーム の描画処理を行うことになる。  In this way, in the example of FIG. 3, the thread A proceeds with image processing for one frame using the synchronization signal (vertical synchronization signal) for frame update control as a trigger. On the other hand, thread B, which requires high-load non-real-time processing, performs one frame of drawing processing over four cycles of thread A.
[0044] 以上のように、第 1の実施の形態の描画装置 100では、スレッド A、 Bの描画処理の 終了を、描画終了検出部 104がスレッド A、 Bごとに独立に検出して、スレッド A、 Bご とに独立の描画終了検出信号を送出するので、非同期的に異なるスレッド A、 Bの処 理を進行できるようになる。  As described above, in the drawing apparatus 100 according to the first embodiment, the drawing end detection unit 104 detects the end of the drawing processing of the threads A and B independently for each of the threads A and B, and the thread Since an independent drawing end detection signal is sent for each of A and B, the processing of different threads A and B can proceed asynchronously.
[0045] これにより、例えば、図 2で示したデジタルダッシュボードのタコメータの針 110のよ うに高速で描画した 、スレッド Aが、 3次元描画される車体情報 112のような高負荷の スレッド Bの 1フレームの処理が終了するまで待機する必要が無くなり、リアルタイム描 画が可能になる。また、スレッド Bの描画処理はスレッド Aの処理が終了すると再開で きるようにしたので、スレッド Bの描画中の情報を破壊することなく正常な画像データ を得ることができる。 [0045] Thus, for example, the tachometer needle 110 of the digital dashboard shown in FIG. Thus, when drawing at high speed, it is not necessary for thread A to wait until one frame of high-load thread B such as body information 112 to be three-dimensionally drawn is completed, and real-time drawing is possible. In addition, since the rendering process of thread B can be resumed when the process of thread A is completed, normal image data can be obtained without destroying the information being rendered by thread B.
[0046] なお、上記では、リアルタイム描画が必要なスレッド Aを高優先度のスレッドとして処 理し、高負荷の描画処理が必要なスレッド Bを低優先度のスレッドとし、高優先度のス レッド Aの描画処理中にはスレッド Bの描画処理を中断するようにした。これらの優先 度の区別は、識別子により区別してもよいし、スケジューラ 102または画像描画部 10 3にスレッド A、 Bが投入される順番によって決定してもよい。また、優先度情報を各ス レッドの描画開始コマンドなどに付加するようにしてもよい。優先度情報は、例えば、 数値や、毎秒の要求フレーム数(フレームレート)などで表す。  In the above, thread A that requires real-time drawing is processed as a high-priority thread, thread B that requires high-load drawing processing is a low-priority thread, and high-priority thread. The drawing process of thread B is interrupted during the drawing process of A. These priorities may be distinguished by identifiers, or may be determined by the order in which threads A and B are inserted into the scheduler 102 or the image drawing unit 103. Further, priority information may be added to a drawing start command of each thread. The priority information is represented by, for example, a numerical value or the number of requested frames (frame rate) per second.
[0047] また、上記ではスレッド A、 Bの識別子を描画終了検出コマンドに付加するとして説 明したがこれに限定されず、描画開始コマンドに付加するようにしてもよい。その場合 、スケジューラ 102は、描画開始コマンドを読み込んだ際に、識別子を認識して一時 的に記憶しておく。そして、スレッド A、 Bの描画終了検出コマンドを読み込んだ際に 、記憶していた識別子をセレクタ 105に送出することで、描画終了検出コマンドに識 別子を付加した場合と同様の効果が得られる。  In the above description, the identifiers of threads A and B are described as being added to the drawing end detection command. However, the present invention is not limited to this, and may be added to the drawing start command. In that case, the scheduler 102 recognizes the identifier and temporarily stores it when the drawing start command is read. When the drawing end detection command of threads A and B is read, the stored identifier is sent to the selector 105, so that the same effect as when an identifier is added to the drawing end detection command can be obtained. .
[0048] また、識別子はスケジューラにて生成して付加するようにしてもよ!、。例えば、スレツ [0048] The identifier may be generated and added by the scheduler! For example,
A, Bがスケジューラ 102を通過する際に、例えば、スレッド A、 Bが投入された順に 識別子を付加する。  When A and B pass through the scheduler 102, for example, identifiers are added in the order in which threads A and B are inserted.
[0049] また、上記ではスレッド A、 Bの 2つの場合について説明した力 3以上あってもよい 。その場合、描画終了検出部 104はスレッドの数に応じて描画終了検出モジュール を有するようにする。  [0049] Further, in the above description, the force 3 or more described for the two cases of threads A and B may be present. In this case, the drawing end detection unit 104 has a drawing end detection module according to the number of threads.
[0050] また、描画終了検出部 104は、複数の描画終了検出モジュールを有さず、画像描 画部 103から識別子付の描画終了検出情報を直接受け取って、スレッドごとに独立 の描画終了検出信号を送出するようにしてもよい。  [0050] Further, the drawing end detection unit 104 does not have a plurality of drawing end detection modules, and directly receives drawing end detection information with an identifier from the image drawing unit 103, and provides an independent drawing end detection signal for each thread. May be sent out.
[0051] 次に、画像描画部 103が複数の描画モジュール力もなる描画装置を、第 2の実施 の形態の描画装置として説明する。 [0051] Next, a drawing apparatus in which the image drawing unit 103 also has a plurality of drawing module capabilities is implemented in the second embodiment The drawing apparatus will be described.
図 5は、第 2の実施の形態の描画装置の構成を示す図である。  FIG. 5 is a diagram illustrating a configuration of a drawing apparatus according to the second embodiment.
[0052] 第 2の実施の形態の描画装置 200は、 CPU201、スケジューラ 202と、例えば、 3 つの描画モジュール 203— 1、 203— 2、 203— 3力もなる画像描画部 203、描画終 了検出部 204、を有している。なお、図 1で示したセレクタ 105、メモリコントローラ 10 6及びフレームバッファ 107は図示を省略している。 [0052] The drawing apparatus 200 of the second embodiment includes a CPU 201, a scheduler 202, an image drawing unit 203 having three drawing modules 203-1, 203-2, 203-3, and a drawing end detection unit. 204. The selector 105, the memory controller 106, and the frame buffer 107 shown in FIG. 1 are not shown.
[0053] また、ここでは、 CPU201からそれぞれ 1フレーム分ずつ順に発行される 3つのスレ ッド A、 B、 Cを処理する場合について示している。例えば、スレッド Aは、リアルタイム 描画が必要なスレッドであり、スレッド Bは、中負荷な描画処理が必要なスレッドであり 、スレッド Cは、高負荷な描画処理が必要なスレッドである。 [0053] Also, here, a case is shown in which three threads A, B, and C, which are sequentially issued by the CPU 201 for each frame, are processed. For example, the thread A is a thread that requires real-time drawing, the thread B is a thread that requires a medium-load drawing process, and the thread C is a thread that requires a high-load drawing process.
[0054] スケジューラ 202は、 CPU201から送出されたスレッド A、 B、 Cをサブスレッドに分 割して、各描画モジュール 203— 1〜203— 3にバランスよく並列に分配する。矢印 S al、 Sa2、 Sa3、 Sbl、 Sb2、 Sb3、 Scl、 Sc2、 Sc3の長さは各スレッド A、 B、 Cのサ ブスレッドの描画モジュール 203— 1〜203— 3での処理時間を模式的に示している The scheduler 202 divides the threads A, B, and C sent from the CPU 201 into sub-threads, and distributes them in a balanced manner in parallel to the drawing modules 203-1 to 203-3. Arrows Sal, Sa2, Sa3, Sbl, Sb2, Sb3, Scl, Sc2, Sc3 are the lengths of the sub-thread drawing modules 203-1 to 203-3 of each thread A, B, and C. Shows
[0055] 各スレッド A、 B、 Cを識別するための識別子は描画開始コマンドまたは描画終了検 出コマンド(図 4参照)に付加されている力、スケジューラ 202が付加する。スケジユー ラ 202は、この各スレッド A、 B、 Cの識別子に応じて、分割する各サブスレッドの識別 子を生成する。そして、 CPU201より投入されたスレッド A、 B、 Cの描画終了コマンド 及び描画終了検出コマンドを読み込むと、各描画モジュール 203— 1〜203— 3に おいて処理するサブスレッドの最後に付加するための描画終了コマンド及び描画終 了検出コマンドを生成する。ここで付加される描画終了検出コマンドには、前述のサ ブスレッドの識別子が付加される。 [0055] Identifiers for identifying the threads A, B, and C are added by the power applied to the drawing start command or the drawing end detection command (see FIG. 4) and the scheduler 202. The scheduler 202 generates an identifier for each sub-thread to be divided in accordance with the identifier for each thread A, B, or C. When the drawing end command and the drawing end detection command of the threads A, B, and C input from the CPU 201 are read, each drawing module 203-1 to 203-3 is added to the end of the sub-thread to be processed. A drawing end command and a drawing end detection command are generated. The above-described subthread identifier is added to the drawing end detection command added here.
[0056] 図 6は、各描画モジュールに割り当てられるスレッドの例を示す図である。  FIG. 6 is a diagram illustrating an example of threads assigned to each drawing module.
描画モジュール 203— 1にはスレッド Aのサブスレッドのデータ Al、 · ··、 Ai、スレッド Bのサブスレッドのデータ Bl、 · ··, Bi,スレッド Cのサブスレッドのデータ CI、 · ··、 Ci が割り当てられ、それぞれのスレッド A、 B、 Cの最後のサブスレッドのデータ Ai、 Bi、 Ciの後ろには、スケジューラ 202によって描画終了コマンド及び描画終了検出コマン ドが付加されている。また、描画終了検出コマンドには、各サブスレッドの識別子 al、 bl、 clが付加される。 Drawing module 203—1 includes thread A sub-thread data Al,..., Ai, thread B sub-thread data Bl,..., Bi, thread C sub-thread data CI,. Ci is assigned, and after the data Ai, Bi, Ci of the last sub thread of each thread A, B, C, a drawing end command and a drawing end detection command are sent by the scheduler 202. Is added. In addition, the identifiers al, bl, and cl of each sub thread are added to the drawing end detection command.
[0057] 同様に描画モジュール 203— 2には、スレッド A、 B、 Cのサブスレッドのデータ A2、 …ゝ Aj、 B2、 …ゝ Bj、 C2、 …ゝ Cj力害 ijり当てられ、描画モジユーノレ 203— 3に ίま、スレ ッド A、 B、 Cのサブスレッドのデータ A3、 …ゝ Ak、 B3、 · ··、 Bk、 C3、 · ··、 Ck力割り当 てられる。それぞれ描画終了検出コマンドには、識別子 a2、 b2、 c2、 a3、 b3、 c3が 付加される。  [0057] Similarly, the drawing module 203-2 is assigned the data A2 of the sub-threads of threads A, B, and C,… ゝ Aj, B2,… ゝ Bj, C2,… ゝ Cj power ij. 203—3, Thread A, B, C sub-thread data A3,… ゝ Ak, B3, ..., Bk, C3, ..., Ck force assigned. Identifiers a2, b2, c2, a3, b3, and c3 are added to the drawing end detection commands.
[0058] 描画モジュール 203— 1〜203— 3は、割り当てられた各サブスレッドを図 6の上か ら順に入力し描画処理を行う。描画終了コマンドが検出されると、各描画モジュール 203— 1〜203— 3は、描画終了検出コマンドから生成される描画終了検出情報をサ ブスレッドの識別子に応じて、図示しないセレクタを介して描画終了検出部 204に送 出する。  The drawing modules 203-1 to 203-3 input the assigned sub threads in order from the top of FIG. When a drawing end command is detected, each of the drawing modules 203-1 to 203-3 draws drawing end detection information generated from the drawing end detection command via a selector (not shown) according to the subthread identifier. It is sent to the end detection unit 204.
[0059] 描画終了検出部 204は、 3つのスレッド A、 B、 Cの状態を検出するために、 3つの 描画終了検出モジュール 204— 1、 204- 2, 204— 3を有している。描画終了検出 モジュール 204 - 1は各描画モジュール 203— 1〜203— 3に割り当てられたスレッド Aのサブスレッド (識別子 al、 a2、 a3)の描画終了検出情報を集約して、 1フレームの スレッド Aの描画終了検出情報を復元すると、 CPU201に対してスレッド Aの描画終 了検出信号を送出する。  The drawing end detection unit 204 includes three drawing end detection modules 204-1, 204-2, and 204-3 in order to detect the states of the three threads A, B, and C. The drawing end detection module 204-1 aggregates the drawing end detection information of the sub-threads (identifiers al, a2, and a3) of the thread A assigned to the drawing modules 203-1 to 203-3, so that one frame of the thread A When the drawing end detection information is restored, the thread A drawing end detection signal is sent to the CPU 201.
[0060] 同様に、描画終了検出モジュール 204— 2、 204— 3は、それぞれスレッド B、 C< サブスレッド (識別子 bl、 b2、 b3及び識別子 cl、 c2、 c3)の描画終了検出情報を集 約して、 1フレームのスレッド B、 Cの描画終了検出情報を復元すると、 CPU201に対 してそれぞれ独立に、スレッド B、スレッド Cの描画終了検出信号を送出する。  Similarly, the drawing end detection modules 204-2 and 204-3 collect the drawing end detection information of the threads B and C <sub-threads (identifiers bl, b2, and b3 and identifiers cl, c2, and c3), respectively. When the drawing end detection information of one frame of threads B and C is restored, the drawing end detection signals of thread B and thread C are sent to the CPU 201 independently.
[0061] 以下、第 2の実施の形態の描画装置 200の動作を説明する。  The operation of the drawing apparatus 200 according to the second embodiment will be described below.
図 7は第 2の実施の形態の描画装置の動作を説明するタイミングチャートである。 ここでは、各描画モジュール 203— 1〜203— 3でのスレッド八、 B、 Cの描画処理と 、描画終了検出モジュール 204— 1〜204— 3から送出される描画終了検出信号の 関係のみを図示しており、垂直同期信号や、表示タイミングなどは図示を省略してい る。また、スレッド Aを高優先度(リアルタイム描画が必要なスレッド)とし、スレッド B、 C は同一優先度であるとする。 FIG. 7 is a timing chart for explaining the operation of the drawing apparatus according to the second embodiment. Here, only the relationship between the drawing processing of threads 8, B, and C in each of the drawing modules 203-1 to 203-3 and the drawing end detection signal sent from the drawing end detection modules 204-1 to 204-3 is illustrated. The vertical synchronization signal and display timing are not shown. Also, thread A is given high priority (threads that require real-time drawing), and threads B and C Are of the same priority.
[0062] 図のように、各描画モジュール 203— 1〜203— 3では、リアルタイム描画が必要な スレッド Aのサブスレッド (識別子 al、 a2、 a3)を優先的に処理する(T10)。各描画モ ジュール 203— 1〜203— 3では、描画終了コマンドが実行されスレッド Αのサブスレ ッドの処理が終わると(T11)、スレッド Aに関するサブスレッドの描画処理をアイドル 状態とし、図 6で示したような描画終了検出コマンドに付加されているサブスレッドの 識別子 al、 a2、 a3を参照して、図示しないセレクタを介して、描画終了検出コマンド により生成された描画終了検出情報を、描画終了検出モジュール 204— 1に送出す る。描画終了検出モジュール 204—1は、全ての描画モジュール 203— 1〜203— 3 からスレッド Aのサブスレッドの描画終了検出情報を受けると、これらを集約して、 CP U201に対しスレッド Aの 1フレームの処理が終了したことを示す描画終了検出信号 を送出する (描画終了フラグをオンする)。  As shown in the figure, each of the drawing modules 203-1 to 203-3 preferentially processes the sub-threads (identifiers al, a2, and a3) of thread A that require real-time drawing (T10). In each drawing module 203-1 to 203-3, when the drawing end command is executed and the processing of thread レ sub-thread is completed (T11), the sub-thread drawing processing related to thread A is set to the idle state. With reference to the sub-thread identifiers al, a2, and a3 attached to the drawing end detection command as shown, the drawing end detection information generated by the drawing end detection command is sent to the drawing end via a selector (not shown). Send to detection module 204-1. When the drawing end detection module 204-1 receives the drawing end detection information of the sub thread of thread A from all the drawing modules 203-1 to 203-3, the drawing end detection module 204-1 aggregates them and sends one frame of thread A to the CPU 201 A drawing end detection signal is sent to indicate that the process has been completed (the drawing end flag is turned on).
[0063] スレッド Aの描画処理がアイドル状態となると、各描画モジュール 203— 1〜203— 3は、次に投入されるスレッド Bのサブスレッド (識別子 bl、 b2、 b3)の描画処理を行う 。スレッド Bとスレッド Cの優先度が同じ場合、例えば、スレッド Bのサブスレッドの描画 処理は、スレッド Cのサブスレッドの描画処理が開始すると中断される (T12)。また、 スレッド Cのサブスレッドの描画処理は、スレッド Aの描画処理にかかわる描画終了フ ラグがクリアされ、スレッド Aの次のフレームのスレッド片の描画処理が再び開始する と中断される(T13)。以上の処理が繰返され、各描画モジュール 203— 1〜203— 3 にお 、て、スレッド Bのサブスレッドの描画終了コマンドが実行されスレッド Bのサブス レッドの処理が全て終了すると (T14)、スレッド Bに関する処理をアイドル状態とし、 図 6で示したような描画終了検出コマンドに付加されているサブスレッドの識別子 bl 、 b2、 b3を参照して、描画終了検出情報を描画終了検出モジュール 204— 2に送出 する。描画終了検出モジュール 204— 2は、全ての描画モジュール 203— 1〜203 3からスレッド Bのサブスレッドの描画終了検出情報を受けると、これら^^約して、 CPU201に対しスレッド Bの 1フレームの処理が終了したことを示す描画終了検出信 号を送出する。  When the drawing process of thread A is in an idle state, each of the drawing modules 203-1 to 203-3 performs the drawing process of the sub thread (identifiers bl, b2, b3) of thread B to be input next. When the priority of the thread B and the thread C is the same, for example, the drawing process of the sub thread of the thread B is interrupted when the drawing process of the sub thread of the thread C is started (T12). The drawing process of the sub thread of thread C is interrupted when the drawing end flag related to the drawing process of thread A is cleared and the drawing process of the thread piece of the next frame of thread A starts again (T13). . When the above processing is repeated and each drawing module 203-1 to 203-3 executes the drawing end command for the sub thread of thread B and completes the processing of the sub thread of thread B (T14), The processing related to B is set in the idle state, and the drawing end detection information is sent to the drawing end detection module 204-2 by referring to the sub-thread identifiers bl, b2, and b3 attached to the drawing end detection command as shown in FIG. Sent to. When the drawing end detection module 204-2 receives drawing end detection information of the sub-thread of thread B from all the drawing modules 203-1 to 203-3, the drawing end detection module 204-2 saves about one frame of the thread B to the CPU 201. A drawing end detection signal indicating that the process has been completed is sent.
[0064] 同様に、描画終了検出モジュール 204— 3は、全ての描画モジュール 203— 1〜2 03— 3からスレッド Cのサブスレッドの描画終了検出情報を受けると、これらを集約し て、 CPU201に対しスレッド Cの 1フレームの処理が終了したことを示す描画終了検 出信号を送出する (T15)。 Similarly, the drawing end detection module 204-3 includes all the drawing modules 203-1 to 2-2. When the drawing end detection information of the sub thread of thread C is received from 03-3, these are collected and a drawing end detection signal indicating that processing of one frame of thread C has been completed is sent to the CPU 201 (T15 ).
[0065] 以上のように、第 2の実施の形態の描画装置 200によれば、スレッド A、 B、 Cの描 画処理の終了を、描画終了検出モジュール 204— 1〜204— 3により描画終了検出 部 204がスレッド A、 B、 Cごとに独立に検出して、スレッド A、 B、 Cごとに独立の描画 終了検出信号を送出するので、複数の描画モジュール 203— 1〜203— 3を用いて スレッド A、 B、 Cをサブスレッドに分割して並列に処理する高効率な描画装置 200に おいて、非同期的に異なるスレッド A、 B、 Cの処理を進行するようにできる。  As described above, according to the drawing apparatus 200 of the second embodiment, the drawing end detection modules 204-1 to 204-3 end drawing of the threads A, B, and C. Since the detection unit 204 detects each thread A, B, and C independently and sends an independent drawing end detection signal for each thread A, B, and C, a plurality of drawing modules 203-1 to 203-3 are used. In the high-efficiency drawing apparatus 200 that processes the threads A, B, and C into sub-threads and processes them in parallel, the processing of the different threads A, B, and C can be performed asynchronously.
[0066] これにより、リアルタイム描画が必要なスレッド Aの処理効率を上げることができると ともに、高負荷の描画処理が必要なスレッド Cの描画中の情報を破壊することなく正 常な画像データを得ることができる。  [0066] This can increase the processing efficiency of thread A that requires real-time drawing, and can also restore normal image data without destroying the information being drawn by thread C that requires high-load drawing processing. Obtainable.
[0067] なお、優先度の決め方などは第 1の実施の形態の描画装置 100と同様である。  It should be noted that the method of determining the priority and the like are the same as those of the drawing apparatus 100 of the first embodiment.
また、上記では描画モジュール 203— 1〜203— 3が 3つの場合について説明した 力 この数には限定されない。  In the above description, the force has been described for the case where there are three drawing modules 203-1 to 203-3.
[0068] また、上記ではスレッド A、 B、 Cの 3つの場合について説明した力 この数には限定 されない。なお、描画終了検出部 204はスレッドの数に応じて描画終了検出モジユー ルを有するようにする。  [0068] Further, the force described above for the three cases of threads A, B, and C is not limited to this number. The drawing end detection unit 204 has a drawing end detection module corresponding to the number of threads.
[0069] 次に、第 3の実施の形態の描画装置を説明する。  [0069] Next, a drawing apparatus according to a third embodiment will be described.
図 8は、第 3の実施の形態の描画装置の構成を示す図である。  FIG. 8 is a diagram illustrating a configuration of a drawing apparatus according to the third embodiment.
第 2の実施の形態の描画装置 200と同一の構成要素については同一符号とし、説 明を省略する。  The same components as those of the drawing apparatus 200 of the second embodiment are denoted by the same reference numerals, and description thereof is omitted.
[0070] 第 3の実施の形態の描画装置 300は、第 2の実施の形態の描画装置 200と同様に 複数の描画モジュール 203— 1〜203— 3〖こより、並列にサブスレッドを処理する。し かし、描画装置 200と異なり、描画終了検出部 304は、各描画モジュール 203— 1〜 203— 3から、直接、サブスレッドの描画終了フラグを各サブスレッドの識別子とともに 検出する。そして、スレッド Aに関しては、描画モジュール 203— 1からの識別子 alの サブスレッドの描画終了フラグ" alフラグ"、描画モジュール 203— 2からの識別子 a2 のサブスレッドの描画終了フラグ" a2フラグ"、描画モジュール 203— 3からの識別子 a3のサブスレッドの描画終了フラグ" a3フラグ"がいずれもオンの場合には、スレッド Aの描画処理が終了したことを示す描画終了検出信号を CPU201に送出する。スレ ッド B、 Cについても同様である。 The drawing apparatus 300 according to the third embodiment processes sub-threads in parallel from a plurality of drawing modules 203-1 to 203-3 like the drawing apparatus 200 according to the second embodiment. However, unlike the drawing apparatus 200, the drawing end detection unit 304 directly detects the drawing end flag of the sub thread together with the identifier of each sub thread from each of the drawing modules 203-1 to 203-3. For thread A, the drawing end flag “al flag” of the sub-thread with the identifier al from the drawing module 203-1 and the identifier a2 from the drawing module 203-2 If the drawing end flag “a2 flag” of the sub-thread and the drawing end flag “a3 flag” of the sub-thread with the identifier a3 from the drawing module 203-3 are both turned on, the drawing processing of the thread A has ended. Is sent to the CPU 201. The same applies to threads B and C.
[0071] このような描画終了検出部 304によれば、複数の描画終了検出モジュールを設け ることなぐスレッドを前述した描画開始コマンドや描画終了検出コマンドに付加する 識別子のビット幅で表現できる最大の数まで認識できる。そして、ハードウェアリソー スの抑制や、ハードウェアリソース不足による並列処理能力の低下の防止に寄与する ことができる。 [0071] According to such a drawing end detection unit 304, a thread that does not have a plurality of drawing end detection modules is the maximum that can be expressed by the bit width of the identifier added to the drawing start command and the drawing end detection command described above. Recognize up to numbers. This can contribute to the reduction of hardware resources and the reduction of parallel processing capacity due to a lack of hardware resources.
[0072] 上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が 当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用 例に限定されるものではなぐ対応するすべての変形例および均等物は、添付の請 求項およびその均等物による本発明の範囲とみなされる。  [0072] The above merely illustrates the principle of the present invention. In addition, many variations and modifications are possible to those skilled in the art, and the invention is not limited to the precise configuration and application shown and described above, but all corresponding variations and equivalents are It is regarded as the scope of the present invention by the claims and their equivalents.
符号の説明  Explanation of symbols
[0073] 100 描画装置 [0073] 100 drawing device
101 CPU  101 CPU
102 スケジューラ  102 scheduler
103 画像描画部  103 Image drawing section
104 描画終了検出部  104 Drawing end detector
104a, 104b 描画終了検出モジュール  104a, 104b Drawing end detection module
105 セレクタ  105 selector
106 メモリコントローラ  106 Memory controller
107 フレームバッファ  107 frame buffer
107— 1、 107— 2、 107— 3、 107— 4 ノ ッファ  107—1, 107—2, 107—3, 107—4

Claims

請求の範囲 The scope of the claims
[1] 複数の描画スレッドを処理する描画装置において、  [1] In a drawing device that processes multiple drawing threads,
前記描画スレッドをもとに画像の描画処理を行う画像描画部と、  An image drawing unit for performing an image drawing process based on the drawing thread;
前記画像描画部における描画処理の終了を前記描画スレッドごとに独立に検出し て、前記描画スレッドごとに独立の描画終了検出信号を送出する描画終了検出部と を有することを特徴とする描画装置。  A drawing apparatus, comprising: a drawing end detection unit configured to independently detect the end of drawing processing in the image drawing unit for each drawing thread and to send an independent drawing end detection signal for each drawing thread.
[2] 前記画像描画部は、優先度が異なる複数の前記描画スレッドが存在する場合、高 優先度の前記描画スレッドの処理時に、低優先度の前記描画スレッドの処理を中断 させ、前記高優先度の前記描画スレッドの処理完了時に、前記低優先度の前記描 画スレッドの処理を再開することを特徴とする請求の範囲第 1項記載の描画装置。  [2] When there are a plurality of drawing threads with different priorities, the image drawing unit interrupts the processing of the drawing thread with a low priority during the processing of the drawing thread with a high priority, and the high priority 2. The drawing apparatus according to claim 1, wherein when the processing of the drawing thread is completed, the processing of the drawing thread having the low priority is resumed.
[3] 前記画像描画部は、所定のフレームレートでリアルタイム描画が必要な前記描画ス レッドが存在する場合、フレーム更新制御用の同期信号をトリガとして、前記リアルタ ィム描画が必要な前記描画スレッドの処理を進行することを特徴とする請求の範囲第 1項記載の描画装置。  [3] When the drawing thread that requires real-time drawing at a predetermined frame rate exists, the image drawing unit uses the synchronization signal for frame update control as a trigger, and the drawing thread that requires real-time drawing The drawing apparatus according to claim 1, wherein the processing is performed.
[4] 前記画像描画部は、前記リアルタイム描画が必要な前記描画スレッドと必要でない 前記描画スレッドとが存在する場合、非リアルタイム描画を行う前記描画スレッドを、リ アルタイム処理が必要な前記描画スレッドのフレームレートの複数サイクル分かけて 処理することを特徴とする請求の範囲第 3項記載の描画装置。  [4] When the drawing thread that requires real-time drawing and the drawing thread that is not necessary exist, the image drawing unit sets the drawing thread that performs non-real-time drawing to the drawing thread that requires real-time processing. 4. The drawing apparatus according to claim 3, wherein the processing is performed for a plurality of cycles of the frame rate.
[5] 複数の前記描画スレッドは、それぞれ自身の識別情報を有し、前記描画終了検出 部は、前記識別情報により、複数の前記描画スレッドを識別することを特徴とする請 求の範囲第 1項記載の描画装置。  [5] The plurality of drawing threads each have their own identification information, and the drawing end detection unit identifies the plurality of drawing threads based on the identification information. The drawing apparatus according to item.
[6] 前記識別情報を前記描画スレッドに付加して前記画像描画部に送出する識別情 報付加部を有し、前記識別情報付加部は、制御処理部から投入された前記描画スレ ッドの順番に応じた前記識別情報を付加することを特徴とする請求の範囲第 5項記 載の描画装置。  [6] An identification information adding unit that adds the identification information to the drawing thread and sends the image information to the image drawing unit. The identification information adding unit includes the drawing thread input from the control processing unit. 6. The drawing apparatus according to claim 5, wherein the identification information corresponding to the order is added.
[7] 前記描画終了検出部は、前記描画スレッドの前記識別情報に応じて選択される複 数の描画終了検出モジュールを有し、前記描画スレッドごとに独立の前記描画終了 検出モジュールにて描画処理の終了の検出を行うことを特徴とする請求の範囲第 5 項記載の描画装置。 [7] The drawing end detection unit includes a plurality of drawing end detection modules selected according to the identification information of the drawing thread, and the drawing end is independent for each drawing thread. 6. The drawing apparatus according to claim 5, wherein the detection module detects the end of the drawing process.
[8] 前記識別情報は、前記描画スレッドにおいて、前記画像描画部にて前記描画スレ ッドの描画処理の終了を検出するための描画終了検出コマンドに付加されていること を特徴とする請求の範囲第 5項記載の描画装置。  8. The identification information is added to a drawing end detection command for detecting an end of drawing processing of the drawing thread in the drawing thread in the drawing thread. The drawing device according to claim 5.
[9] 前記識別情報は、前記描画スレッドにおいて、前記画像描画部において前記描画 スレッドの描画処理を開始する描画開始コマンドに付加されていることを特徴とする 請求の範囲第 5項記載の描画装置。 9. The drawing apparatus according to claim 5, wherein the identification information is added to a drawing start command for starting drawing processing of the drawing thread in the image drawing unit in the drawing thread. .
[10] 複数の前記描画スレッドは、それぞれ自身の優先度を示す優先度情報を有するこ とを特徴とする請求の範囲第 1項記載の描画装置。 10. The drawing apparatus according to claim 1, wherein each of the plurality of drawing threads has priority information indicating its own priority.
[11] 前記優先度情報は、要求されるフレームレートであることを特徴とする請求の範囲 第 10項記載の描画装置。 11. The drawing apparatus according to claim 10, wherein the priority information is a required frame rate.
[12] 前記画像描画部は複数の描画モジュールを有し、 [12] The image drawing unit includes a plurality of drawing modules;
前記描画スレッドをスレッド片に分割し複数の前記描画モジュールに分配する描画 スレッド分配部を更に有し、  A drawing thread distributing unit that divides the drawing thread into thread pieces and distributes the drawing thread to the plurality of drawing modules;
前記描画終了検出部は、複数の前記描画モジュールにおける前記スレッド片のそ れぞれの描画処理の終了を検出し集約することで、前記描画スレッドごとに独立に描 画処理の終了を検出して、前記描画スレッドごとに独立の描画終了検出信号を送出 することを特徴とする請求の範囲第 1項記載の描画装置。  The drawing end detection unit detects the end of the drawing process of each of the thread pieces in the plurality of drawing modules and aggregates them to detect the end of the drawing process independently for each drawing thread. 2. The drawing apparatus according to claim 1, wherein an independent drawing end detection signal is sent for each drawing thread.
[13] 複数の前記描画スレッド及び前記スレッド片は、それぞれ自身の識別情報を有し、 前記描画終了検出部は、前記識別情報により、複数の前記描画スレッド及び前記ス レッド片を識別することを特徴とする請求の範囲第 12項記載の描画装置。 [13] Each of the plurality of drawing threads and thread pieces has its own identification information, and the drawing end detection unit identifies the plurality of drawing threads and thread pieces based on the identification information. 13. The drawing apparatus according to claim 12, wherein the drawing apparatus is characterized.
[14] 前記描画終了検出部は、前記スレッド片の前記識別情報に応じて選択される複数 の描画終了検出モジュールを有し、それぞれの前記描画終了検出モジュールは、特 定の前記識別情報の前記スレッド片の描画処理の終了を検出し集約することで、特 定の前記描画スレッドの描画処理の前記描画終了検出信号を送出することを特徴と する請求の範囲第 13項記載の描画装置。 [14] The drawing end detection unit includes a plurality of drawing end detection modules selected according to the identification information of the thread piece, and each drawing end detection module includes the specific identification information. 14. The drawing apparatus according to claim 13, wherein the drawing end detection signal of the drawing process of the specific drawing thread is transmitted by detecting and consolidating the end of the thread piece drawing process.
[15] 複数の描画スレッドを処理する半導体集積回路装置において、 前記描画スレッドをもとに画像の描画処理を行う画像描画部と、 [15] In a semiconductor integrated circuit device that processes a plurality of drawing threads, An image drawing unit for performing an image drawing process based on the drawing thread;
前記画像描画部における描画処理の終了を前記描画スレッドごとに独立に検出し て、前記描画スレッドごとに独立の描画終了検出信号を送出する描画終了検出部と を有することを特徴とする半導体集積回路装置。  A drawing end detection unit that independently detects the end of the drawing process in the image drawing unit for each drawing thread and sends out an independent drawing end detection signal for each drawing thread. apparatus.
複数の描画スレッドを処理する描画方法にお ヽて、  For a drawing method that handles multiple drawing threads,
前記描画スレッドをもとに画像の描画処理を行う画像描画手段における描画処理 の終了を、前記描画スレッドごとに独立に検出して、  The end of the drawing process in the image drawing means for performing the image drawing process based on the drawing thread is detected independently for each drawing thread,
前記描画スレッドごとに独立の描画終了検出信号を送出することを特徴とする描画 方法。  A drawing method, wherein an independent drawing end detection signal is transmitted for each drawing thread.
PCT/JP2005/018291 2005-10-03 2005-10-03 Drawer, semiconductor integrated circuit, and drawing method WO2007043130A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2005/018291 WO2007043130A1 (en) 2005-10-03 2005-10-03 Drawer, semiconductor integrated circuit, and drawing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2005/018291 WO2007043130A1 (en) 2005-10-03 2005-10-03 Drawer, semiconductor integrated circuit, and drawing method

Publications (2)

Publication Number Publication Date
WO2007043130A1 true WO2007043130A1 (en) 2007-04-19
WO2007043130A9 WO2007043130A9 (en) 2007-05-31

Family

ID=37942400

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/018291 WO2007043130A1 (en) 2005-10-03 2005-10-03 Drawer, semiconductor integrated circuit, and drawing method

Country Status (1)

Country Link
WO (1) WO2007043130A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012064215A (en) * 2010-09-20 2012-03-29 Internatl Business Mach Corp <Ibm> Method, information processing system, and processor for scalable status tracking of assist hardware thread
JP2012123821A (en) * 2009-04-03 2012-06-28 Sony Corp Information processing device, information processing method, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07282272A (en) * 1994-04-13 1995-10-27 Hitachi Ltd Drawing processing system
JPH08138060A (en) * 1994-11-04 1996-05-31 Hitachi Ltd Display processor using parallel processor
WO2002031769A1 (en) * 2000-10-10 2002-04-18 Sony Computer Entertainment Inc. Data processing system and method, computer program, and recorded medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07282272A (en) * 1994-04-13 1995-10-27 Hitachi Ltd Drawing processing system
JPH08138060A (en) * 1994-11-04 1996-05-31 Hitachi Ltd Display processor using parallel processor
WO2002031769A1 (en) * 2000-10-10 2002-04-18 Sony Computer Entertainment Inc. Data processing system and method, computer program, and recorded medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FUJII S. ET AL: "Media Shoriyo Kumikomi OS", INFORMATION PROCESSING SOCIETY OF JAPAN KENKYU HOKOKU, vol. 98, no. 15, 26 February 1998 (1998-02-26), pages 61 - 66, XP003010988 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012123821A (en) * 2009-04-03 2012-06-28 Sony Corp Information processing device, information processing method, and program
JP2012064215A (en) * 2010-09-20 2012-03-29 Internatl Business Mach Corp <Ibm> Method, information processing system, and processor for scalable status tracking of assist hardware thread

Also Published As

Publication number Publication date
WO2007043130A9 (en) 2007-05-31

Similar Documents

Publication Publication Date Title
US10078882B2 (en) Priority-based command execution
JP5774699B2 (en) Out-of-order command execution on multimedia processors
US9489763B2 (en) Techniques for setting up and executing draw calls
US9342857B2 (en) Techniques for locally modifying draw calls
US8087029B1 (en) Thread-type-based load balancing in a multithreaded processor
KR101552079B1 (en) Execution of graphics and non-graphics applications on a graphics processing unit
US20070076246A1 (en) Image processing apparatus
TW200926050A (en) Shader processing systems and methods
JP5578713B2 (en) Information processing device
US9064437B2 (en) Memory based semaphores
US10275275B2 (en) Managing copy operations in complex processor topologies
WO2017071176A1 (en) Image processing method and image processing apparatus
US20150206596A1 (en) Managing a ring buffer shared by multiple processing engines
US20150189012A1 (en) Wireless display synchronization for mobile devices using buffer locking
WO2007043130A1 (en) Drawer, semiconductor integrated circuit, and drawing method
JP4011082B2 (en) Information processing apparatus, graphic processor, control processor, and information processing method
US20110029757A1 (en) Stream processor and task management method thereof
US9170820B2 (en) Syscall mechanism for processor to processor calls
US7577762B1 (en) Cooperative scheduling for multiple consumers
JP2009003633A (en) Information processor
US10037169B2 (en) Image processing semiconductor device and image processing device
US20240045736A1 (en) Reordering workloads to improve concurrency across threads in processor-based devices
US20150199833A1 (en) Hardware support for display features
KR20180093875A (en) Graphics context scheduling based on flip queue management
JP2006331156A (en) Semiconductor device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 05788053

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP