WO2006123547A1 - 情報処理装置、システム、方法およびプロセッサ - Google Patents
情報処理装置、システム、方法およびプロセッサ Download PDFInfo
- Publication number
- WO2006123547A1 WO2006123547A1 PCT/JP2006/309263 JP2006309263W WO2006123547A1 WO 2006123547 A1 WO2006123547 A1 WO 2006123547A1 JP 2006309263 W JP2006309263 W JP 2006309263W WO 2006123547 A1 WO2006123547 A1 WO 2006123547A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- graphic
- command
- processor
- data
- buffer
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Definitions
- the present invention relates to information processing technology, and more particularly to information processing technology including image processing.
- image processing in a graphic processor operates regardless of the application executed by the main processor. However, if the operation of the graphic processor can be controlled in coordination with the image processing required for executing the application, it may contribute to the improvement of the processing efficiency of the information processing apparatus.
- the present invention has been made in view of such problems, and an object thereof is to provide a technique for improving information processing efficiency in a multiprocessor system.
- One embodiment of the present invention relates to an information processing apparatus including a main processor that performs overall control of the entire apparatus and a second processor that performs specific processing.
- This device has 111 units ( m is an integer with m> 1) DMA controller that controls data transfer, main memory in which data for a specific process is first expanded, and stores these when data is transferred from main memory n (N is an integer of n> m) and a set of noffers.
- the first buffer of the set of buffers is set as the other data transfer destination, and the second buffer is set as the other data transfer destination. It is characterized by being.
- DMA controller refers to a circuit that transfers data to or from a memory or an external input / output device without going through a processor.
- data here includes programs such as texture programs, color data, ⁇ value data, threshold data, vertex data, and so on.
- the idling time of a processor can be reduced for an information processing apparatus having a plurality of processors.
- FIG. 1 is a block diagram showing a configuration of an information processing apparatus according to an embodiment of the present invention.
- FIG. 2 is a diagram illustrating an example of a command format.
- FIG. 3 is a diagram showing a data format of a DMA command.
- FIG. 4 is a diagram showing a data format of a KICK command.
- FIG. 5 is a diagram showing a data format of a NOTIFY command.
- FIG. 6 is a diagram showing a data format of a SYNC command.
- FIG. 7 is a diagram showing a data format of a NEXT command.
- FIG. 8 is a diagram for explaining a NEXT command.
- FIG. 9 is a diagram showing data transferred by DMA in the information processing apparatus.
- FIG. 10 is a flowchart showing the cooperative operation of the main processor and graphic processor when drawing an object.
- FIG. 11 is a diagram showing an example of a command list when two buffers are provided in the graphic memory.
- FIG. 12 is a diagram schematically showing texture data transfer according to the command list of FIG. 11.
- FIG. 13 is a chart showing a buffer state when the command list of FIG. 11 is followed.
- FIG. 14 shows an example of a command list when three buffers are provided in the graphic memory.
- FIG. 15 is a chart showing the state of the buffer when the command list of FIG. 14 is followed.
- FIG. 16 is a diagram showing an example of a command list when the graphic memory has four buffers.
- FIG. 17 is a chart showing a buffer state when the command list of FIG. 16 is followed.
- FIG. 18 is a diagram showing an example of a command list when graphic processing of a plurality of objects can be executed in parallel in the graphic operation unit.
- control unit 22 interface unit, 24 instruction analysis unit, 26 execution unit, 28 image processing side DMA controller, 30 subprocessor, 32 management processor, 34 control side DMA controller, 40 graphic operation unit, 42 rasterizer, 44 shearer Unit, 46 texture units, 50 main memory, 52 display device, 54 internal registers, 100 graphic processor, 200 main processor, 1000 information processing device.
- FIG. 1 is a block diagram showing a configuration of information processing apparatus 1000 according to the embodiment of the present invention.
- the information processing apparatus 1000 includes a graphic processor 100, a main processor 200, a main memory 50, and a graphic memory 10.
- the information processing apparatus 1000 is connected to the display device 52.
- each element described as a functional block for performing various processes can be configured with a CPU, memory, or other LSI in terms of hardware, and loaded into the memory in terms of software. This is realized by a programmed program. did Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to V! /.
- an operating system (hereinafter abbreviated as OS) that provides functions and environments for efficiently using the information processing apparatus 1000 and controls the entire apparatus in an integrated manner.
- Application software (hereinafter simply referred to as application) is executed on the OS.
- the main processor 200 and the Darling processor 100 cooperatively perform arithmetic processing.
- the graphic processor 100 performs image processing related to each task processed by the main processor 200, and outputs the generated image and video to the display device 52 or stores them in a storage device (not shown). The cooperative operation between the main processor 200 and the graphic processor 100 will be described later.
- the main processor 200 includes a plurality of sub-processors 30, a management processor 32, and a control-side DMA (Direct Memory Access) controller 34.
- the sub processor 30, the management processor 32, and the control side DMA controller 34 can communicate with each other via a bus 36.
- the management processor 32 performs time-sharing of tasks corresponding to the applications, assigns tasks corresponding to the respective applications to the sub-processors 30 for each time slice, and performs control so that the arithmetic processing is performed in parallel. For example, when a task corresponding to an application processed in a certain time slice is related to image processing of 3D computer graphics, geometry processing is executed. When image processing is required in each sub processor 30, vertex data and parameter data after geometry processing are transferred from each sub processor 30 to the graphic memory 10.
- the control-side DMA controller 34 controls data transfer, data saving, and the like with the main memory 50 and the graphic processor 100 by commands from the sub processor 30 or the management processor 32.
- the main memory 50 is a storage area mainly used by the main processor 200.
- the main memory 50 temporarily stores data, programs, and the like obtained by processing tasks related to computer graphics by the main processor 200. Also this In the main memory 50, data obtained as a result of arithmetic processing by the graphic processor 100 may be saved and stored.
- the graphic memory 10 is a memory area dedicated to data related to graphics used and managed by the graphic processor 100.
- a frame buffer (not shown) in which image frame data is stored, an image frame is stored. It has two or more buffers (not shown) that store vertex data, which is basic data that is referenced when drawing data, and two or more context buffers 12 that store texture data temporarily.
- the graphic processor 100 performs processing relating to an image, for example, rendering processing exclusively.
- the graphic processor 100 includes a display controller 18, a control unit 20, an image processing side DMA controller 28, a graphic operation unit 40, and an internal register 54. These blocks are connected by a bus 36, and data signals are transmitted and received between the blocks.
- the graphic arithmetic unit 40 performs various arithmetic processes related to graphics according to instructions given from the outside. As an example of such processing, there is a series of rendering processes in which image frame data is generated by performing coordinate conversion, hidden surface removal, and shading based on the three-dimensional modeling data, and writing to the frame buffer in the graphic memory 10.
- the graphic operation unit 40 includes functional blocks such as a rasterizer 42, a shader unit 44, and a texture unit 46 in order to perform processing related to three-dimensional graphics at high speed.
- the rasterizer 42 receives the vertex data of the object to be drawn, and performs view conversion that converts the object outside the three-dimensional space into a figure on the drawing plane by projection conversion. In addition, raster processing is performed to convert figures on the drawing plane into pixels quantized for each column while scanning along the horizontal direction of the drawing plane.
- the rasterizer 42 expands the object into pixels and calculates pixel information for each pixel. This pixel information includes an RGB color value, an ⁇ value that represents transparency, and a ⁇ value that represents the depth of viewpoint power.
- the rasterizer 42 generates a pixel area having a predetermined size along the scan line, and outputs the pixel area to the shader unit 44 and the texture unit 46. Output from rasterizer 42 The pixel areas to be stacked are once queued, and the shader unit 44 processes the stacked pixel areas in order.
- the shader unit 44 performs a shading process based on the pixel information calculated by the rasterizer 42, and converts the pixel color after texture mapping based on the texel information obtained by the texture unit 46.
- the image frame data after shading processing is written in the frame buffer in the graphic memory 10. Furthermore, the shader unit 44 performs processing such as fogging and alpha blending on the image frame data written in the frame buffer, determines the final drawing color, and updates the image frame data in the frame buffer. .
- the texture unit 46 also receives the parameter specifying the texture data, reads the requested texture data from the buffer 12 in the graphic memory 10, performs a predetermined process, and then performs the predetermined processing. Output for.
- the control unit 20 is a block that controls the entire graphic processor 100.
- the control unit 20 controls the display controller 18 and the graphic operation unit 40 in an integrated manner, and performs synchronous management of data transfer between the blocks, interrupt processing, and timer. Perform management.
- the display controller 18 generates horizontal and vertical synchronization signals, and sequentially reads pixel data of the image frame data in a line form from the frame buffer in the graphic memory 10 according to the display timing of the display device 52. Further, the display controller 18 converts the pixel data read in a line form into a format corresponding to the display device 52 and outputs the digital data power that is RGB color value power.
- the image processing side DMA controller 28 controls data transfer and data saving between the main memory 50 and the graphic memory 10 by commands from the control unit 20.
- the image processing side DMA controller 28 transfers the texture data from the main memory 50 to the buffer 12 of the graphic memory 10.
- the management processor 32 of the main processor 200 determines the execution order of the time-shared tasks. Each task is appropriately assigned to the sub-processor 30, and signals are transmitted to and received from the graphic processor 100.
- the control unit 20 of the graphic processor 100 performs the overall control of the image processing side DMA controller 28 and the graphic operation unit 40 based on the command list received from the main processor 200, while transmitting and receiving signals to and from the main processor 200. .
- the graphic arithmetic unit 40 starts the various graphic processes described above according to the command executed by the control unit 20.
- the control unit 20 includes an interface unit 22, an instruction analysis unit 24, and an execution unit 26.
- the interface unit 22 also receives data such as the sub processor 30 and the main memory 50 in the main processor 200.
- the “data” here includes not only narrowly defined data such as a command list, vertex data, and texture data, but also a shader program in the graphic operation unit 40.
- the command analysis unit 24 extracts the command list of the data received by the interface unit 22 and analyzes the command.
- the execution unit 26 executes the commands sequentially.
- the graphic operation unit 40 executes graphic processing of objectat at a timing indicated by a command executed by the execution unit 26 in accordance with an operation method defined by a program such as a cedar program.
- the sub-processor 30 temporarily stores object data such as vertex data necessary for image processing in the main memory 50.
- the configuration data and command list for transferring these data are created.
- the configuration data includes data such as the address and transfer size of the program used by the graphic processing unit 40 such as the sierra program.
- the control-side DMA controller 34 reads the object data from the main memory 50, performs processing such as perspective transformation, and then transfers the read object data to the graphic memory 10. In addition, the control-side DMA controller 34 transfers the command list and the conflicter data to the control unit 20. The data transferred to the control unit 20 is analyzed by the instruction analysis unit 24, and the analyzed command is passed to the execution unit 26 and queued. The execution unit 26 sequentially executes the commands in the queue. According to the executed command, The image processing side DMA controller 28 reads the texture data from the main memory 50 and transfers it to the buffer 12.
- the control-side DMA controller 34 starts execution according to an instruction from the management processor 32 or the sub processor 30.
- the sub-processor 30 checks the buffer free by a NOTIFY command described later, and starts the control-side DMA controller 34.
- the transfer of the object data from the sub processor 30 to the graphic memory 10 by the control side DMA controller 34 is executed in parallel with the transfer of the texture data or during the idling of the graphic operation unit 40.
- the graphic processor 100 can acquire various data necessary for image processing from the main memory 50 at an appropriate timing by using the image processing side DMA controller 28 provided inside. it can. This reduces the load on the graphic processor 100 and main processor 200 related to data transfer processing, and performs transfer processing in parallel with the arithmetic processing of those processors, excluding minimum processing such as transfer requests. Can do. In addition, since it is possible to perform image processing corresponding to the processing of the main processor 200 that operates at high speed without complicating the configuration of the graphic processor 100, it is difficult for video to stop or drop frames.
- a command analyzed and executed by the control unit 20 is called a “non-graphic processing system instruction”.
- This non-graphic processing command only specifies the processing contents such as the transfer of drawing data, the start of graphics processing, the standby of processing, and the end, which are not clearly described in the graphic processing unit 40. It is an instruction system.
- Specific graphic processing in the graphic operation unit 40 is defined by a program such as a cedar program specified by the conflicter data.
- the reason for adopting such a non-graphic processing system instruction is for the following purpose. That is, in the information processing apparatus such as the present embodiment, the graphic processor and the cedar program executed therein are provided by a hardware vendor, and the application software and video content executed in the information processing apparatus are Often provided by another software vendor. In such cases, the software vendor should not take into account the control of the graphics processor. Just prepare the data.
- the graphic vendor executes the graphics processing executed by the graphic processor. It may be preferable to control. Also, the software vendor may understand the hardware configuration of the graphic processor and contribute to speeding up and improving the efficiency of graphic processing that can control the graphic processing in the graphic processor to some extent.
- non-graphic processing instructions that are V and instructions that clearly indicate the graphic processing method executed by the graphic arithmetic unit 40.
- FIG. 2 shows an example of the command format.
- Format 120 is a type 121 that specifies which of the above commands is a number 121, an attribute 122 that must be set for each command, a command ID 123 that is assigned for each command, and the required settings Data areas for designating parameters 124 to 126 to be set.
- the command length is, for example, 16 bytes.
- the “command ID” starts from “1” and increases by “1”, and is used as an identification number for multiple DMA commands and KICK commands in the command list.
- the graphic processor 100 processes a set of a plurality of commands including the above-mentioned KICK, DMA, NOTIFY, etc., and this set is referred to as a “command list” in this specification.
- the execution unit 26 of the control unit 20 executes the commands in the command list one by one, and causes the image processing side DMA controller 28 or the graphic operation unit 40 to execute instructions corresponding to the commands.
- FIG. 3 shows a data format 130 of the DMA command.
- the DMA command is an instruction that causes the image processing side DMA controller 28 to execute DMA transfer of arbitrary data between the main memory 50 and the graphic memory 10.
- the execution unit 26 of the control unit 20 executes the DMA command
- the image processing-side DMA controller 28 is activated and starts reading texture data from the main memory 50.
- the read data is stored in the buffer 12 of the graphic memory 10.
- DMA channel 132 specifies one of two channels that are configured to prevent collisions between devices using DMA transfers.
- DMA ID 133 specifies the ID of the DMA command. This DMA ID is written into the internal register 54 of the graphic processor 100 as soon as the DMA process is completed. The sub processor 30 can also confirm the end of the DMA process by polling the internal register 54 storing the DMA ID.
- the tag address 134 specifies the address of the DMA tag.
- the DMA tag includes information related to DMA transfer, that is, an address, a DMA size, and a transfer direction.
- the tag size 135 specifies the data size of the DMA tag.
- FIG. 4 shows the data format 140 of the KICK command.
- the KICK command is an instruction for starting various graphic processes in the graphic operation unit 40.
- the graphic operation unit 40 accesses the dynamic memory 10 to read out the texture data and the object data, and draws them in the frame notifier.
- KICK ID143 specifies the ID of the KICK command. This KICK ID is written into the internal register 54 of the graphics processor 100 as soon as the KICK process is completed.
- the sub processor 30 can also confirm the end of the KICK process by polling the internal register 54 storing the KICK ID.
- the configuration data address 144 and the configuration data size 145 the address or data size of the configurator data is specified.
- the execution unit 26 of the control unit 20 converts the conflicter data into a graphic computation unit. After transferring to the knit 40, the graphic arithmetic unit 40 is activated. The graphic arithmetic unit 40 loads the program according to the content of the conflict data, and then executes graphic processing. Confiderer data is created by a predetermined force or main port processor 200.
- FIG. 5 shows the data format 150 of the NOTIFY command.
- the NOTIFY command is used to notify the main processor 200 from the graphic processor 100.
- the execution unit 26 of the control unit 20 executes the NOTIFY command, the end power of predetermined graphic processing in the graphic processor 100 is notified to the sub processor 30 in the main processor 200.
- the NOTIFY command notifies the sub processor 30 that the DMA transfer by the image processing side DMA controller 28 has been completed or that the graphic processing in the graphic operation unit 40 has been completed.
- Which processing end is notified in the graphic processor 100 can be specified by the arrangement of the NOTIFY command and other commands in the command list.
- sub processor ID 154 designates the sub processor 30 that notifies the signal. It is also possible to specify all subprocessors 30.
- the DMA transfer of the data required for graphic processing is notified to the sub-processor 30 by the NOTIFY command, and in response to this, the sub-processor 30 transfers the result of geometry processing, such as vertex data, to the graphic memory 10.
- the idling time of the graphic operation unit 40 and the sub processor 30 can be reduced, and as a result, the operation time can be shortened.
- the NOTIFY command is a command required to cause the graphic processor 100 and the main processor 200 to operate cooperatively and improve the processing efficiency of the information processing apparatus 1000 as a whole. More specific usage of the NOTIFY command will be described in the embodiment referring to FIG. 11 to FIG.
- FIG. 6 shows the data format 160 of the SYNC command.
- the SYNC command This command synchronizes the end of a predetermined command process with the end of processing in the sub-processor 30 when there is a dependency between the processes.
- SYNC target 162 specifies whether to confirm the end of the DMA command, KICK command, or DMA transfer of the object from the sub processor.
- ID164 the ID of the DMA command or KIC K command is designated.
- Register 165 specifies a flag register. The sub processor 30 sets a flag in the internal register 54 when its own processing is completed. As will be described later, the SYNC command can be used to wait for the end of transfer of both texture data and object data.
- the execution unit 26 confirms the end of the DMA command, the KICK command, or the sub processor by referring to the internal register 54.
- the execution unit 26 executes the SYNC command, a plurality of operations as described below occur depending on the process dependency specified in the format.
- Second, the graphic processing unit 40! /, And graphic processing is executed by the KICK command executed before in time! At this time, the execution of subsequent commands in the command list is suspended until the processing is completed.
- execution of subsequent commands in the command list is suspended until data processing in the sub-processor 30 is completed.
- the graphic operation queue 40 cannot be started unless the data such as texture data necessary for graphic processing is available on the graphic memory.
- the DMA transfer process of texture data and object data is confirmed with the SYNC command and the KI CK command is executed accordingly, graphic processing can be executed efficiently.
- the end of the graphic processing in the graphic operation unit 40 is acquired by the SYNC command and the DMA command is executed accordingly, the idling time of the graphic operation unit 40 can be reduced.
- the SYNC command can confirm the end of each DMA command, KICK command, and sub-processor, and can end many processes by writing two SYNC commands in succession. Can also be synchronized.
- a WAIT command (not shown) suspends execution of subsequent commands until all command processes being executed in the graphic processor 100 are completed.
- the type is specified as “5” indicating that it is a WAIT command.
- FIG. 7 shows the data format 170 of the NEXT command.
- the NEXT command indicates the end of a group of command lists and the address of the command list to be executed next. For type 171, “6” indicating the NEXT command is specified. In the next address 174, the head address of the command list to be executed next is designated.
- a plurality of sub-processors 30 execute drawing data operations in parallel, and each sub-processor 30 independently generates a command sequence including non-graphic processing instructions necessary for graphic processing.
- Create The command list is stored in the main memory 50 in the order of creation. Therefore, the control unit 20 cannot know the execution order of the plurality of command lists. Therefore, by specifying the address of the command list to be executed next with the NEXT command, it is possible to execute the command list related to the location in the main memory 50 before and after the processing in the sub processor 30. .
- An END command (not shown) is an instruction for setting the end of the command list.
- the execution unit 26 executes the END command, the END command moves to the start address of the command list.
- the type number is “7”.
- FIG. 8 is a diagram for explaining how to use the NEXT command. As shown, continuously Assume that there are command lists 202, 204, and 206 to be executed. These command lists are transferred to the main memory 50 regardless of the execution order. A NEXT command is embedded at the end of the command lists 202 and 204, and the start address of the command list to be executed next is written in the NEXT command. An END command is embedded at the end of the command list 206! /.
- the image processing side DMA controller 28 retrieves the command list 202 starting from a predetermined starting address force from the main memory 50 as a first list. Then, by the NEXT command in the command list 202, the image processing side DMA controller 28 can retrieve the command list 204 to be executed next from the main memory 50. Similarly, the command list 206 to be executed next can be fetched by the NEXT command of the command list 204.
- the management processor 32 is configured to analyze the command list created by each sub processor 30 and embed a necessary NEXT command in each command list.
- the subprocessors 30 may be configured to embed necessary NEXT commands by exchanging command lists with each other. That is, when a certain address on a certain sub processor A power S memory is obtained, access to the main memory 50 by another sub processor is locked. Then, after the sub processor A saves the command list in the main memory 50, the access lock to the main memory by another processor is released. Subsequently, sub-processor B obtains the next address of the main memory, and adds a NEXT command including this address to the command list created by sub-processor A. By repeating this process, necessary NE XT commands can be embedded in each command list.
- a PERF command (not shown) is an instruction for measuring the number of execution cycles of the command process. “9” is designated as the type number.
- the execution unit 26 of the control unit 20 executes the PERF command, the number of execution cycles required by the graphic processor when the graphic processing according to the non-graphic processing instruction is executed is measured. The number of execution cycles is counted based on the clock of the control unit 20, for example. This timing instruction is mainly used when providing data such as graphics processing efficiency to the user.
- each non-graphic processing system instruction is only related to the start and end of the graphic processing and the DMA controller, and directly controls the graphic processing in the graphic processing unit 40. Note that it is not an instruction that defines the instruction, that is, the processing content.
- FIG. 9 shows data that is DMA-transferred in the information processing apparatus 1000. These data can be divided into data 210 used by the control unit 20 and data 220 used by the graphic operation unit 40.
- the conifer data 212 an address such as a cedar program is designated.
- the command list 214 also has the above-mentioned non-graphic processing command power.
- the control-side DMA controller 34 controls the transfer of the configuration data 212, the command list 214, and the vertex data 222.
- the configuration data 212 and the command list 214 are transferred to the memory area of the control unit 20 of the graphic processor 100.
- the vertex data 222 is transferred to the graphic memory 10.
- the image processing side DMA controller 28 controls the transfer of the texture data 226, the parameter data 224, and the shader program 228.
- the texture data 226 is transferred to the buffer 12 in the graphic memory 10.
- the parameter data 224 and the cedar program 228 are transferred to the memory area of the graphic operation unit 40.
- FIG. 10 is a flowchart showing processing and data flow in the main processor 200 and the graphic processor 100 when an object is drawn in the frame buffer. Hereinafter, each process will be described with reference to FIG.
- the main processor 200 executes creation, loading, and analysis of data such as geometry data necessary for drawing an object (S10). Subsequently, the main processor 200 executes object address resolution, determines a data layout in the main memory 50 as a transfer destination (S 12), and stores the data layout in the main memory 50. Then, the main processor 200 creates a command list and conflicter data necessary for drawing the object (S14). Store in Mori 50.
- the control-side DMA controller 34 of the main processor 200 DMA-transfers the created command list and configuration data to the control unit 20 of the graphic processor 100 (S16). When this is finished, the main processor 200 notifies the control unit 20 to start executing the command list (S18).
- the instruction analysis unit 24 in the control unit 20 starts analyzing the command list (S22).
- the execution unit 26 executes the DMA command in the command list
- the image processing-side DMA controller 28 refers to the tag address of the DMA command, and stores data such as texture data necessary for drawing the object in the main memory 50.
- the graphic operation unit 40 suspends execution of the subsequent command list until the transfer of the texture data being executed is completed according to S24 (S26).
- the main processor 200 calculates the vertex data and parameter data by executing the geometry processing of the object (S20) and stores it in the main memory 50.
- the control-side DMA controller 34 of the main processor 200 transfers the vertex data to the graphic memory 10 (S28), and sets a flag indicating that the geometry processing is completed in the internal register 54 (S30).
- the execution unit 26 in the control unit 20 suspends execution of the subsequent command list until the transfer of the vertex data is completed according to the SYNC command in the command list (S32). As a result of the processing so far, various data necessary for drawing the object have been prepared on the graphic memory 10.
- the control unit 20 transfers the conflicter data to the graphic operation unit 40, the processing of the graphic operation unit 40 is activated, and the notifier 12 is read (S34). .
- the graphic arithmetic unit 40 reads a program based on the configuration data.
- the graphic operation unit 40 sets a flag indicating that the KICK process has ended in the internal register 54.
- the graphic processing unit 40 uses the SYNC command to finish drawing the object.
- the NOTIFY command notifies the sub processor 30 that the drawing of the object is completed (S38). This notification allows the main processor 200 to start preparing the next object.
- the information processing apparatus 1000 it is necessary to synchronize all of the geometry processing in the sub processor 30, the DMA transfer of the object data and the texture data, and the graphic processing in the graphic operation unit 40. It is necessary to create a command list that considers the processing procedure and processing speed of both the DMA controller 34 and the image processing side DMA controller 28. In the following, an example of a command list will be described to explain the cooperative operation of the main processor 200 and the graphic processor 100 that have been performed. In the following explanation, it is assumed that two DMA transfers of texture data by the image processing side DMA controller 28 can be executed simultaneously, and only one object drawing process in the graphic operation unit 40 can be executed. Further, it is assumed that the graphic memory 10 is provided with a buffer A and a noffer B as context buffers 12 for storing texture data.
- FIG. 11 shows a command list 700 that is an example of a command list.
- the interpretation of commands is as per the list. Actual processing does not necessarily occur in the order of commands. It depends on the amount of data transferred by DMA and the time required for graphic processing.
- “/” indicates the command name
- “attribute” indicates the object to be synchronized with the SYNC command by an abbreviation.
- D represents the DMA process
- F represents the geometry processing of the sub-processor
- K represents the KICK process.
- ID is the above-mentioned DMA ID or KICK
- Tex represents a texture
- Obj represents an object
- SPU represents a sub processor.
- Symbols A and B represent two buffers 12.
- Obj A represents an object DMA-transferred to buffer A
- Tex A represents texture data necessary for graphic processing of object A and DMA-transferred to buffer A.
- color data and a-value data are required in addition to texture data.
- texture data is shown as a representative.
- SPU A is an object that is DMA-transferred to buffer A. Represents a sub-processor that processes project A.
- the execution unit 26 sequentially executes the command list 700 with the start address power. First, the DMA command 701 assigned ID “1” and the DMA command 702 assigned ID “2” are executed. As a result, the image processing side DMA controller 28 starts transferring the texture A (Tex A) from the main memory 50 to the buffer A and starts transferring the texture B (Tex B) to the buffer B.
- control-side DMA controller 34 executes the transfer of the object A (Obj A) from the sub processor A to the graphic memory 10 in parallel with the DMA transfer of the texture A to the buffer A. Further, the control-side DMA controller 34 executes the transfer of the object B (Obj B) from the sub-processor B to the graphic memory 10 in parallel with the DMA transfer of the texture B to the buffer B.
- the control-side DMA controller 34 operates regardless of the command execution by the execution unit 26.
- the graphic arithmetic unit 40 terminates the transfer of the texture A to the buffer A corresponding to the DMA command 701 to which the ID “1” has been assigned, and the sub processor A by the control-side DMA controller 34. Check the completion of the transfer of object A from (SPU A) to graphic memory 10. In accordance with the KICK command 704 to which the ID “1” is assigned, the graphic arithmetic unit 40 performs read access to the buffer A and starts graphic processing for the object A.
- the graphic operation unit 40 terminates the transfer of the texture B to the buffer B corresponding to the DMA command 702 to which the ID “2” is assigned, and the control-side DMA controller 34 Confirm the end of transfer of object B to graphic memory 10 by sub processor B (SPU B) force.
- the graphic operation unit 40 performs read access to the buffer B and starts graphic processing for the object B.
- the graphic operation unit 40 confirms the end of the graphic processing of the object A corresponding to the KICK command 704 given the ID “1” by the SYNC command 707.
- the graphic-processed object A is written to the frame buffer in graphic memory 10.
- the NOTIFY command 708 causes the graphic arithmetic unit 40 to be Notify A (SPU A) that the graphic processing of object A has been completed. As a result, sub-processor A knows that buffer A is empty.
- the DMA controller 28 on the image processing side uses the DMA command 709 to which the ID "3" is assigned, and the texture required for the graphic processing of the new object A for the buffer A that has become free. Start A transfer.
- the control-side DMA controller 34 executes DMA transfer of the object A from the sub processor A to the graphic memory 10 in parallel with the DMA transfer of the texture A to the buffer A.
- the graphic arithmetic unit 40 terminates the transfer of the texture A to the buffer A corresponding to the DMA command 709 to which the ID "3" is assigned by the SYNC command 710, and transfers the sub processor A to the graphic memory 10. Confirm the end of the transfer of the new object A.
- the graphic operation unit 40 performs read access to the buffer A and executes graphic processing for the object A.
- the graphic operation unit 40 confirms the end of the graphic processing of the object B corresponding to the KIC K command 706 given the ID “2” by the SYNC command 712.
- the graphic B processed object B is written to the frame buffer of the graphic memory 10.
- the graphic arithmetic unit 40 notifies the sub processor B that the graphic processing of the object B has been completed.
- the image processing side DMA controller 28 uses the DMA command 714 to which the ID "4" is assigned, and the texture necessary for the graphic processing of the new object B with respect to the buffer B that has become free. Start transferring B.
- the control-side DMA controller 34 executes DMA transfer of the object B from the sub processor B to the graphic memory 10 in parallel with the texture B DMA transfer to the buffer B.
- the graphic operation unit 40 terminates the transfer of the texture B to the buffer B corresponding to the DMA command 714 to which the ID “4” is assigned, Confirm the end of the transfer of the new object B.
- the graphic arithmetic unit 40 Read access to key B and start graphic processing for object B.
- the graphic operation unit 40 waits for the second graphic processing of object A and object B to end, and the NOTIFY command 718 terminates the graphic processing. Notify all sub-processors.
- FIG. 12 schematically shows the transfer of texture data according to the command list 700 of FIG.
- the object A is transferred from the sub processor to the graphic memory in parallel with the transfer of the texture A to the buffer A.
- the graphic processing unit 40 executes the graphic processing of the object A.
- object B is transferred to the graphic memory from the sub processor in parallel with the transfer of texture B to buffer B.
- the graphic arithmetic unit 40 executes the graphic processing of object B. Thereafter, the above process is repeated.
- FIG. 13 is a chart showing the states of buffer A and buffer B when the command list 700 in FIG. 11 is followed.
- the symbols in the figure correspond to the symbols given to the commands in the command list in FIG.
- the texture A key memory 50 required for the processing of the object A is transferred to the buffer A (701), and the texture B required for the processing of the object B is transferred from the main memory 50 to the buffer B (702).
- the end of transfer of object A and texture A is confirmed by the SYNC command, they are read from buffer A by the graphic operation queue 40 by the KICK command, and graphic processing is started (704). Thereafter, DMA transfer to buffer A and buffer B by the DMA command and reading from notifier A and buffer B by the KICK command are repeated in order.
- the graphic processing unit 40 and the main processor 200 are implemented in the implementation. Long idling time As a result, the processing efficiency of the information processing apparatus 1000 may not be improved. Therefore, a method of increasing the processing efficiency of the entire information processing apparatus by providing three or more buffers 12 in the graphic memory 10 and shortening the idling time of the graphic operation unit 40 and the main processor 200 will be described.
- FIG. 14 shows an example of the command list 800 when the graphic memory 10 includes three buffers A, B, B, and C.
- FIG. 15 is a chart showing the states of buffer A, notifier B, and buffer C according to the command list of FIG. “Tex”, “Obj”, and “SPU” in FIGS. 14 and 15 represent “texture”, “object”, and “subprocessor”, respectively, as in FIG. “IDLE” indicates a state when a DMA transfer to each buffer by the image processing side DMA controller 28 is executed.
- the execution unit 26 sequentially executes the command list 800 with the start address. First, the DMA command 801 assigned ID “1” and the DMA command 802 assigned ID “2” are executed. As a result, the image processing side DMA controller 28 starts transferring the texture A (Tex A) from the main memory 50 to the buffer A and starts transferring the texture B (Tex B) to the buffer B.
- control-side DMA controller 34 executes the transfer of the object A (Obj A) from the sub processor A to the graphic memory 10 in parallel with the DMA transfer of the texture A to the buffer A. Further, the control-side DMA controller 34 executes the transfer of the object B (Obj B) from the sub-processor B to the graphic memory 10 in parallel with the DMA transfer of the texture B to the buffer B.
- the graphic arithmetic unit 40 terminates the transfer of the texture A to the buffer A corresponding to the DMA command 801 to which the ID “1” is assigned, and the sub processor A by the control-side DMA controller 34. Check the completion of the transfer of object A from (SPU A) to graphic memory 10. In accordance with the KICK command 804 to which the ID “1” is assigned, the graphic arithmetic unit 40 performs read access to the buffer A and starts graphic processing for the object A.
- the image processing side DMA controller 28 uses the DMA command 805 to which the ID “3” is assigned. Start the transfer of texture C (Tex C) to Noffer C. At this time, the control-side DMA controller 34 transfers the object C (Obj C) from the sub processor C to the graphic memory 10.
- the graphic arithmetic unit 40 uses the SYNC command 806 to end the transfer of the texture B to the buffer B corresponding to the DMA command 802 to which the ID “2” is assigned, and the sub processor B by the control-side DMA controller 34. Check the completion of the transfer of object B from (SPU B) to graphic memory 10. In accordance with the KICK command 807 to which the ID “2” is assigned, the graphic arithmetic unit 40 performs read access to the buffer B and starts graphic processing for the object B.
- the graphic operation unit 40 confirms the end of the graphic processing of the object A corresponding to the KIC K command 804 given the ID “1” by the SYNC command 808.
- the graphic A processed object A is written to the frame buffer of the graphic memory 10.
- the graphic arithmetic unit 40 notifies the sub processor A (SP U A) that the graphic processing of the object A has been completed. As a result, sub-processor A knows that Nota A is empty.
- the DMA controller 28 on the image processing side uses the DMA command 810 to which the ID “4” is assigned, and the texture necessary for the graphic processing of the new object A for the buffer A that has been vacated. Start A DMA transfer.
- the control-side DMA controller 34 executes DMA transfer of the object A from the sub processor A to the graphic memory 10 in parallel with the DMA transfer of the texture A to the buffer A.
- the graphic arithmetic unit 40 uses the SYNC command 811 to complete the transfer of the texture C to the buffer C corresponding to the DMA command 805 to which the ID "3" is assigned, and the sub processor C (SPU C) force. Confirm the end of the transfer of object C to graphic memory 10.
- the graphic operation unit 40 performs read access to the noffer C and executes graphic processing on the object C.
- the graphic arithmetic unit 40 It waits for the completion of the second graphic processing of Jett A to C, and notifies all sub-processors that the graphic processing is completed by NOTIFY command 826.
- the command list is executed in the order of the head force, the idling time of the graphic arithmetic unit 40 can be reduced by appropriately arranging the commands.
- graphic computation queue 40 accesses buffer A using KICK command 804. Start graphics processing. During this time, texture B and object B are transferred to notfer B, and texture C and object are transferred to buffer C.
- the graphic operation unit 40 is operated in the order of object A, object, and object C, such as starting graphic processing of object C. In this way, the idling time of the graphic arithmetic unit 40 can be shortened by creating a command list in which the SYNC command and the KICK command are appropriately arranged.
- the sub-processor can execute the calculation of the object according to the time point at which the object is transferred, and can transfer the object as soon as the graphic processing end notification is received. Therefore, the idling time on the sub processor side can also be shortened.
- FIG. 16 shows an example of the command list 900 when the graphic memory 10 includes four buffers, buffer A, buffer B, buffer C, and buffer D.
- FIG. 17 is a chart showing the states of buffer A to buffer D when the command list of FIG. 16 is followed.
- the execution unit 26 sequentially executes the command list 900 with the start address. First, a DMA command 901 assigned ID “1” and a DMA command 902 assigned ID “2” are executed. As a result, the image processing side DMA controller 28 starts transferring the texture A (Tex A) from the main memory 50 to the buffer A and starts transferring the texture B (Tex B) to the buffer B. At this time, the control-side DMA controller 34 executes the transfer of the object A (Obj A) from the sub processor A to the graphic memory 10 in parallel with the DMA transfer of the texture A to the buffer A. Further, the control-side DMA controller 34 executes the transfer of the object B (Obj B) from the sub-processor B to the graphic memory 10 in parallel with the DMA transfer of the texture B to the buffer B.
- a DMA command 901 assigned ID “1” and a DMA command 902 assigned ID “2” are executed.
- the image processing side DMA controller 28 starts transferring the texture A (Tex A) from the main memory
- the graphic arithmetic unit 40 terminates the transfer of the texture A to the buffer A corresponding to the DMA command 901 given the ID "1", and the sub processor A by the control-side DMA controller 34 Check the completion of the transfer of object A from (SPU A) to graphic memory 10.
- the graphic arithmetic unit 40 performs read access to the buffer A and starts graphic processing for the object A.
- the image processing side DMA controller 28 starts the transfer of the texture C (Tex C) to the noffer C by the DMA command 805 assigned with the ID “3”. At this time, the control-side DMA controller 34 transfers the object C (Obj C) from the sub processor C to the graphic memory 10.
- the graphic arithmetic unit 40 uses the SYNC command 906 to finish the transfer of the texture B to the buffer B corresponding to the DMA command 902 given the ID "2", and the sub processor B by the control-side DMA controller 34 Check the completion of the transfer of object B from (SPU B) to graphic memory 10. In accordance with the KICK command 907 to which the ID “2” is assigned, the graphic operation unit 40 performs read access to the buffer B and starts graphic processing for the object B.
- the image processing side DMA controller 28 starts the transfer of the texture D (Tex D) to the noffer D by the DMA command 908 to which the ID “4” is assigned. At this time, the control-side DMA controller 34 transfers the object D (Obj D) from the sub processor D to the graphic memory 10.
- the graphic operation unit 40 terminates the transfer of the texture C to the buffer C corresponding to the DMA command 905 to which the ID “3” is assigned, and the sub processor C by the control-side DMA controller 34 (SPU C) to graphic memory 10 Confirm completion of transfer of object C.
- the graphic arithmetic unit 40 performs read access to the buffer C and starts graphic processing for the object C.
- the graphic operation unit 40 confirms the end of the graphic processing of the object A corresponding to the KIC K command 904 given the ID “1” by the SYNC command 911.
- the graphic A processed object A is written to the frame buffer of the graphic memory 10.
- the graphic arithmetic unit 40 notifies the sub processor A (SPU A) that the graphic processing of the object A has been completed. As a result, sub-processor A knows that nota A is empty.
- the DMA controller 28 on the image processing side uses the DMA command 913 to which the ID "5" is assigned, and the texture necessary for the graphic processing of the new object A for the buffer A that has become free. Start A DMA transfer.
- the control-side DMA controller 34 executes DMA transfer of the object A from the sub processor A to the graphic memory 10 in parallel with the DMA transfer of the texture A to the buffer A.
- the graphic operation unit 40 uses the SYNC command 914 to complete the transfer of the texture D to the buffer D corresponding to the DMA command 908 given the ID "4" and the sub processor D (SPU D) power. Confirm completion of transfer of object D to graphic memory 10.
- the graphic operation unit 40 performs read access to the notifier D and executes graphic processing on the object D.
- the graphic operation unit 40 waits for the second graphic processing of objects A to D to end, and the NOTIFY command 934 confirms that the graphic processing has been completed. Notify the processor.
- the graphic operation unit 40 is operated in the order of object A, object object D, and object D. As a result, the idling time of the graphic arithmetic unit 40 can be shortened.
- a command list having non-graphic processing system command power is also provided.
- the order of graphic processing in the graphic processor can be controlled.
- the drawing start force by the KICK command (eg, command 904) is also “IDLE” compared to the buffer A of FIG. 15 until the next KICK command (command 920). "The state is included extra!
- This time margin works as a preparation period for the next data, and it has the advantage that the graphic computing unit 40, the sub processor 30 and the computing unit can be kept busy without stalling!
- the user can control the cooperative operation between the main processor 200 and the graphic processor 100 through the non-graphic processing system command.
- the non-graphic processing commands in this embodiment can control the operation of the graphic arithmetic unit by combining a small number of simple commands to the control unit 20.
- This non-graphic processing system instruction does not specify a specific graphic process in the graphic operation unit, and therefore is not affected by a program executing a graphic process such as a cedar program.
- the user can specify the assignment of a nota by a non-graphic processing system instruction. This eliminates the need for the main processor to execute buffer allocation, thereby reducing the processing load on the main processor.
- the main processor 200 is provided with a plurality of sub-processors 30, so that object geometry processing can be executed in parallel, whereas the graphic processor 100 performs object graphics processing one by one. It can only be done. Therefore, according to this embodiment, a command list is created so that the computation time of graphic processing in the graphic computation unit activated by the KICK command is comparable to the data transfer time started by the DMA command. If the drawing data transfer is executed at a timing suitable for the graphic processor 100, the load balance between the main processor and the graphic processor is improved, so that the processing efficiency of the information processing apparatus 1000 is improved.
- the processing speed on the main processor side is faster in the information processing apparatus 1000, the processing time in the information processing apparatus can be reduced by shortening the period for waiting for the end of the graphic processing in the graphic operation unit as much as possible. It can be fast.
- the frame is divided into four parts, and the time required for DMA transfer of the data required to draw each divided frame is balanced with the time for geometry processing of the object in each frame and the time for graphic processing for each divided frame. If the command list is created in this way, the image processing time can be shortened. In this way, depending on the command list, the efficiency of information processing can be reduced. It is possible to make it.
- the graphic processing unit 40 performs graphic processing of a single object.
- the graphic operation unit 40 can be configured to execute graphic processing of a plurality of different objects in parallel.
- FIG. 18 shows an example of a command list 750 using a non-graphic processing system instruction in this case.
- a set of textures necessary for graphic processing of a set of objects “Obj set A” is denoted as “Tex set A”.
- DMA command for DMA transfer of texture set SYNC command for confirming transfer end of texture set and corresponding object set
- KICK command for instructing drawing start for object set after transfer is completed Place.
- the graphic processor 100 and the main processor 200 may be integrated as a single LSI chip or may be configured as separate chips.
- Each block shown in the embodiment may be integrated with any combination of components that is not limited to the degree of integration, or may be configured as a separate chip. ,.
- the main processor 200 is described as a multiprocessor.
- the present invention can also be applied to a single processor.
- the graphic processor 100 can be configured as a multiprocessor, the present invention can be applied to each processor, and a cooperative operation with the main processor 200 can be performed.
- the graphic memory 10 is provided outside the graphic processor 100.
- a graphic memory may be provided within the graphic processor 100. Also, it is possible to use a part of the main memory 50 as the graphic memory without providing a separate graphic memory.
- a flag indicating that the graphic processing has ended may be set in the internal register 54.
- the main processor 200 may be configured to poll the internal register 54. In this way, the main processor 200 can know that the graphic processing of the object has ended without using the NOTIFY command. Power that can cause a time lag with the NOTIFY command Main processor 200 Power Use an internal register when you cannot wait for this time lag, or when you want to confirm the end of graphic processing at a timing convenient for the processor.
- the internal register 54 and NOTIFY command may be used together. In this case, the sub-processor 30 can use the polling and NOTIFY notifications! /, Depending on the situation!
- the destination for notifying the end of graphic processing by the NOTIFY command is not limited to the main processor 200, and may be an arbitrary processor outside the graphic arithmetic unit 40.
- DMA transfer of data necessary for graphic processing is performed by the image processing side DMA controller 28, and other configuration data, command list, vertex data, system data, etc. It has been described that the DMA transfer of the Ada program is handled by the controlling DMA controller 34. However, the above is only a representative example, and the DMA transfer of all these data may be handled by the control side DMA controller 34 or the image processing side DMA controller 28. .
- the execution unit 26 issues a DMA transfer command to the control side DMA controller 34 when executing the DMA command.
- the force command analysis unit 24 re-executes the command when the command list is analyzed. You may stir to place it.
- the instruction analysis unit 24 executes the PERF command at an appropriate timing and acquires the number of execution cycles of the DMA command and the KICK command. If the number of execution cycles of both commands is greatly different, the processing efficiency of the graphic processor 100 can be improved by exchanging the positions of the DMA commands and KICK commands in the command list.
- the instruction analysis unit 24 may be configured to correct an error when an error is found in the command list when the command list is analyzed. For example, by referring to the ID in the SYNC command, when the SYNC command is located before the DMA command or KICK command to be synchronized, the instruction analyzer 24 sets the position of the SYNC command. It may be configured to rearrange after the DMA command or KICK command. In addition, when a DMA command or KICK command is described in the command list, the command list is searched based on the ID assigned to each command, and the SYNC command for synchronizing the command list is included in the command list. If not, the instruction analyzer 24 is configured to add the SYNC command to the command list! , Even! / ⁇ Industrial applicability
- the idling time of a processor can be reduced.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Bus Control (AREA)
- Image Input (AREA)
Abstract
マルチプロセッサシステムにおける情報処理効率を向上させる。
情報処理装置1000は、装置全体を統括的に制御するメインプロセッサ200と、画像処理演算を行うグラフィックプロセッサ100と、メインメモリ50を備える。また、情報処理装置1000は、同時にm個(mはm>1の整数)データ転送を制御するDMAコントローラ28と、特定の処理のためのデータが最初に展開されるメインメモリ50と、メインメモリ50からデータが転送されたときこれらを記憶するn個(nはn>mの整数)で一組のバッファ12を備える。同時に複数のデータ転送が実行されるとき、一組のバッファ12のうち第1のバッファが一方のデータの転送先に設定され、第2のバッファが他方のデータの転送先に設定される。
Description
情報処理装置、システム、方法およびプロセッサ
技術分野
[0001] 本発明は情報処理技術に関し、特に画像処理を含む情報処理技術に関する。
背景技術
[0002] 近年のコンピュータグラフィックス技術の発達に伴 、、大型計算機や、パーソナルコ ンピュータ、ゲーム機器などの情報処理装置力 出力される画像データは、ますます 複雑化、高度化している。そこで、このような情報処理装置では、通常の演算処理を 行うメインプロセッサとは別に、画像処理専用のグラフィックプロセッサを搭載し、メイ ンプロセッサを画像処理から解放して、システムのオーバーヘッドの解消を図って ヽ る。
[0003] これらの情報処理装置にお!、て高性能な演算処理を実現するためには、メインプロ セッサをマルチプロセッサで構成することが有効である。マルチプロセッサでは、複数 のタスクを各プロセッサに割り当て並列処理を実行して演算速度を高める。一方、グ ラフィックプロセッサは、メインプロセッサが処理する複数のタスクに対応した画像処 理を、メインプロセッサの高速演算に対応させて行う必要がある。
発明の開示
発明が解決しょうとする課題
[0004] 一般に、グラフィックプロセッサにおける画像処理は、メインプロセッサで実行される アプリケーションに関わりなく動作する。し力しながら、アプリケーションの実行の上で 必要となる画像処理に協調させてグラフィックプロセッサの動作を制御することができ れば、情報処理装置における処理効率の向上に寄与することもあり得る。
[0005] 本発明はこのような課題に鑑みてなされたものであり、その目的はマルチプロセッサ システムにおける情報処理効率を向上させる技術の提供にある。
課題を解決するための手段
[0006] 本発明のある態様は、装置全体を統括的に制御するメインプロセッサと、特定の処 理を行う第 2プロセッサとを備える情報処理装置に関する。この装置は、同時に 111個(
mは m> 1の整数)データ転送を制御する DMAコントローラと、特定の処理のための データが最初に展開されるメインメモリと、メインメモリからデータが転送されたときこ れらを記憶する n個(nは n>mの整数)で一組のノッファと、を備える。そして、同時 に複数のデータ転送が実行されるとき、前記一組のバッファのうち第 1のバッファがー 方のデータの転送先に設定され、第 2のバッファが他方のデータの転送先に設定さ れることを特徴とする。
[0007] ここで「DMAコントローラ」とは、プロセッサを介さずにメモリまたは外部の入出力装 置との間でデータを転送する回路のことをいう。また、ここでいう「データ」には、テクス チヤデータ、カラーデータ、 α値データ、 Ζ値データ、頂点データなどのほ力 グラフ ィツクユニットにおけるシヱーダプログラムなどのプログラムも含まれる。
[0008] この態様によれば、メインメモリから同時に DMA転送されるデータより多数のバッフ ァが設けられて 、るので、メインプロセッサおよび第 2プロセッサのアイドリング時間が 削減され、情報処理装置全体の処理効率を向上させることができる。
発明の効果
[0009] 本発明によれば、複数のプロセッサを有する情報処理装置にぉ 、て、プロセッサの アイドリング時間を削減することができる。
図面の簡単な説明
[0010] [図 1]本発明の一実施形態に係る情報処理装置の構成を示すブロック図である。
[図 2]コマンドフォーマットの一例を示す図である。
[図 3]DMAコマンドのデータフォーマットを示す図である。
[図 4]KICKコマンドのデータフォーマットを示す図である。
[図 5]NOTIFYコマンドのデータフォーマットを示す図である。
[図 6]SYNCコマンドのデータフォーマットを示す図である。
[図 7]NEXTコマンドのデータフォーマットを示す図である。
[図 8]NEXTコマンドを説明する図である。
[図 9]情報処理装置において DMA転送されるデータを示す図である。
[図 10]オブジェクトを描画する際のメインプロセッサとグラフィックプロセッサの協調動 作を示すフローチャートである。
[図 11]グラフィックメモリにバッファを 2つ備えるときのコマンドリストの一例を示す図で ある。
[図 12]図 11のコマンドリストにしたがったテクスチャデータの転送を模式的に示す図 である。
[図 13]図 11のコマンドリストにしたがったときのバッファの状態を示すチャートである。
[図 14]グラフィックメモリにバッファを 3つ備えるときのコマンドリストの一例を示す図で ある。
[図 15]図 14のコマンドリストにしたがったときのバッファの状態を示すチャートである。
[図 16]グラフィックメモリにバッファを 4つ備えるときのコマンドリストの一例を示す図で ある。
[図 17]図 16のコマンドリストにしたがったときのバッファの状態を示すチャートである。
[図 18]グラフィック演算ユニットにおいて複数のオブジェクトのグラフィック処理を並列 に実行可能であるときのコマンドリストの一例を示す図である。
符号の説明
[0011] 10 グラフィックメモリ、 12 コンテクストバッファ、 18 ディスプレイコントローラ、
20 制御ユニット、 22 インタフェイス部、 24 命令解析部、 26 実行部、 28 画像処理側 DMAコントローラ、 30 サブプロセッサ、 32 管理プロセッサ、 34 制御側 DMAコントローラ、 40 グラフィック演算ユニット、 42 ラスタライザ、 44 シエーダユニット、 46 テクスチャユニット、 50 メインメモリ、 52 表示装置、 54 内部レジスタ、 100 グラフィックプロセッサ、 200 メインプロセッサ、 1000 情報処理装置。
発明を実施するための最良の形態
[0012] 図 1は、本発明の実施の形態に係る情報処理装置 1000の構成を示すブロック図 である。情報処理装置 1000は、グラフィックプロセッサ 100、メインプロセッサ 200、メ インメモリ 50およびグラフィックメモリ 10を含む。情報処理装置 1000は、表示装置 52 と接続されている。なお、図 1において、様々な処理を行う機能ブロックとして記載さ れる各要素は、ハードウェア的には、 CPU、メモリ、その他の LSIで構成することがで き、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。した
がって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの 組合せによっていろいろな形で実現できることは当業者には理解されるところであり、 V、ずれかに限定されるものではな!/、。
[0013] この情報処理装置 1000では、情報処理装置 1000を効率よく使用するための機能 、環境を提供し、装置全体を統括的に制御するオペレーティングシステム(以下、 OS と略す)が実行される。その OS上でアプリケーションソフトウェア(以下、単にアプリケ ーシヨンという)が実行される。本実施の形態においては、メインプロセッサ 200とダラ フィックプロセッサ 100は協調的に演算処理を行う。グラフィックプロセッサ 100は、メ インプロセッサ 200により処理されるそれぞれのタスクに関連する画像処理を行い、 生成した画像、映像を表示装置 52に出力し、または図示しない記憶装置に記憶する 。メインプロセッサ 200とグラフィックプロセッサ 100との協調動作については後述する
[0014] メインプロセッサ 200は、複数のサブプロセッサ 30と管理プロセッサ 32と制御側 D MA (Direct Memory Access)コントローラ 34とを含む。サブプロセッサ 30、管理 プロセッサ 32および制御側 DMAコントローラ 34はバス 36により相互通信が可能で ある。管理プロセッサ 32は、アプリケーションに対応するタスクを時分割し、タイムスラ イス毎に各アプリケーションに対応するタスクをサブプロセッサ 30に割り当て、演算処 理を並列で行うように制御する。例えば、あるタイムスライスにおいて処理されるアプリ ケーシヨンに対応するタスクが三次元コンピュータグラフィックスの画像処理に関する ものである場合には、ジオメトリ処理を実行する。各サブプロセッサ 30において画像 処理の必要が発生した場合には、ジオメトリ処理後の頂点データやパラメータデータ が各サブプロセッサ 30からグラフィックメモリ 10へ転送される。
[0015] 制御側 DMAコントローラ 34は、メインメモリ 50やグラフィックプロセッサ 100との間 のデータ転送、データ退避などをサブプロセッサ 30または管理プロセッサ 32からの コマンドによって制御する。
[0016] メインメモリ 50は、主にメインプロセッサ 200によって使用される記憶領域である。こ のメインメモリ 50には、メインプロセッサ 200によりコンピュータグラフィックスに関する タスクを処理して得られたデータやプログラムなどが一時的に格納される。また、この
メインメモリ 50には、グラフィックプロセッサ 100による演算処理の結果得られたデー タが退避して格納される場合もある。
[0017] グラフィックメモリ 10は、グラフィックプロセッサ 100により使用、管理されるグラフイツ クに関するデータ専用のメモリ領域であって、画像フレームデータが格納されるフレ ームバッファ(図示せず)などに加えて、画像フレームデータを描画する際に参照さ れる基本データである頂点データを格納するバッファ(図示せず)、および、テクスチ ャデータが一時的に格納されるコンテクストバッファ 12を 2個以上有している。
[0018] グラフィックプロセッサ 100は、画像に関する処理、例えばレンダリング処理などを 専用に実行する。グラフィックプロセッサ 100は、ディスプレイコントローラ 18、制御ュ ニット 20、画像処理側 DMAコントローラ 28、グラフィック演算ユニット 40、および内部 レジスタ 54を含む。これらのブロック同士はバス 36で接続されており、各ブロック間で データ信号の送受が行われる。
[0019] グラフィック演算ユニット 40は、外部から与えられる命令にしたがって、グラフィック に関する様々な演算処理を行う。その処理の一例としては、三次元モデリングデータ をもとに座標変換、陰面消去、シェーディングを行って画像フレームデータを作成し、 グラフィックメモリ 10内のフレームバッファに書き込む一連のレンダリング処理などが 挙げられる。グラフィック演算ユニット 40は、特に三次元グラフィックスに関する処理を 高速に行うために、ラスタライザ 42、シエーダユニット 44、テクスチャユニット 46などの 機能ブロックを含んでいる。
[0020] ラスタライザ 42は、描画するオブジェクトの頂点データを受け取り、三次元空間上の オブジェ外を投影変換により描画平面上の図形に変換するビュー変換を行う。さら に、描画平面上の図形を、描画平面の水平方向に沿ってスキャンしながら、一列ごと に量子化されたピクセルに変換するラスター処理を行う。このラスタライザ 42によって オブジェクトがピクセル展開されて、各ピクセル毎にピクセル情報を算出する。このピ クセル情報には、 RGBカラー値、透明度を表す α値、視点力 の奥行きを表す Ζ値 が含まれる。
[0021] ラスタライザ 42は、スキャンラインに沿って所定の大きさのピクセノレ領域を生成し、 シエーダユニット 44、テクスチャユニット 46へと出力する。ラスタライザ 42から出力さ
れるピクセル領域は、一度キューにスタックされ、シエーダユニット 44はスタックされた ピクセル領域を順に処理して ヽく。
[0022] シエーダユニット 44は、ラスタライザ 42により算出されたピクセル情報をもとにシエー デイング処理を行い、テクスチャユニット 46により得られたテクセル情報をもとに、テク スチヤマッピング後のピクセル色を決定し、グラフィックメモリ 10内のフレームバッファ にシェーディング処理後の画像フレームデータを書き込む。さらにシエーダユニット 4 4は、フレームバッファに書き込まれた画像フレームデータに対してフオギング、アル ファブレンデイング等の処理を行い最終的な描画色を決定してフレームバッファの画 像フレームデータを更新する。
[0023] テクスチャユニット 46は、シエーダユニット 44力もテクスチャデータを指定するパラメ ータを受け取り、要求されたテクスチャデータをグラフィックメモリ 10内のバッファ 12か ら読み出し、所定の処理を行った後にシヱーダユニット 44に対して出力する。
[0024] 制御ユニット 20は、このグラフィックプロセッサ 100全体を制御するブロックであり、 ディスプレイコントローラ 18、グラフィック演算ユニット 40を統括的に制御し、各ブロッ ク間のデータ転送の同期管理、割り込み処理、タイマー管理等を行う。
[0025] ディスプレイコントローラ 18は、水平および垂直同期信号を生成し、表示装置 52の 表示タイミングにしたがって、グラフィックメモリ 10内のフレームバッファから画像フレ ームデータのピクセルデータをライン状に順次読み込んで 、く。さらにディスプレイコ ントローラ 18は、ライン状に読み込まれたピクセルデータを、 RGBのカラー値力もな るデジタルデータ力も表示装置 52に対応したフォーマットに変換して出力する。
[0026] 画像処理側 DMAコントローラ 28は、メインメモリ 50とグラフィックメモリ 10の間のデ ータ転送、データ退避などを制御ユニット 20からのコマンドによって制御する。画像 処理側 DMAコントローラ 28は、テクスチャデータをメインメモリ 50からグラフィックメモ リ 10のバッファ 12に転送する。
[0027] 次に、以上のように構成された情報処理装置 1000の動作にっ 、て、本実施の形 態の特徴であるメインプロセッサ 200とグラフィックプロセッサ 100との協調動作を中 心に説明する。
[0028] メインプロセッサ 200の管理プロセッサ 32は、時分割されたタスクの実行順序を決
定し、各タスクをサブプロセッサ 30に適切に割り当てるとともに、グラフィックプロセッ サ 100との信号の送受信を行う。グラフィックプロセッサ 100の制御ユニット 20は、メイ ンプロセッサ 200と信号の送受信を行うほ力、メインプロセッサ 200から受け取るコマ ンドリストに基づいて、画像処理側 DMAコントローラ 28とグラフィック演算ユニット 40 を統括的に制御する。グラフィック演算ユニット 40は、制御ユニット 20で実行されるコ マンドにしたがって、上述の各種グラフィック処理を開始する。
[0029] 制御ユニット 20は、インタフェイス部 22と、命令解析部 24と、実行部 26とを含む。ィ ンタフェイス部 22は、メインプロセッサ 200内のサブプロセッサ 30やメインメモリ 50な ど力もデータを受け取る。なお、ここでいう「データ」には、コマンドリスト、頂点データ、 テクスチャデータなどの狭義のデータの他、グラフィック演算ユニット 40におけるシェ ーダプログラムなどが含まれる。命令解析部 24は、インタフェイス部 22が受け取った データの中力もコマンドリストを取り出して、コマンドを解析する。実行部 26は、コマン ドを順次実行する。
[0030] グラフィック演算ユニット 40は、シエーダプログラムなどのプログラムで規定された演 算方法にしたがって、実行部 26で実行されるコマンドにより指示されるタイミングでォ ブジエタトのグラフィック処理を実行する。
[0031] タスクの処理を実行しているあるサブプロセッサ 30に画像処理の必要が発生したと すると、サブプロセッサ 30は、画像処理に必要となる頂点データなどのオブジェクト データをメインメモリ 50に一時格納するとともに、これらのデータを転送するためのコ ンフィグデータとコマンドリストを作成する。コンフィグデータには、シエーダプログラム などのグラフィック演算ユニット 40で使用されるプログラムのアドレス、転送サイズなど のデータが含まれる。
[0032] 制御側 DMAコントローラ 34は、メインメモリ 50からオブジェクトデータを読み出し、 透視変換などの処理を施した後、読み出したオブジェクトデータをグラフィックメモリ 1 0に転送する。また、制御側 DMAコントローラ 34は、コマンドリストやコンフイダデータ を制御ユニット 20に転送する。制御ユニット 20に転送されるデータは、命令解析部 2 4により解析され、解析されたコマンドが実行部 26に渡されキューに入れられる。実 行部 26は、キュー内のコマンドを順次実行する。実行されたコマンドにしたがって、
画像処理側 DMAコントローラ 28は、テクスチャデータをメインメモリ 50から読み出し てバッファ 12に転送する。
制御側 DMAコントローラ 34は、管理プロセッサ 32またはサブプロセッサ 30の指示 により実行開始する。サブプロセッサ 30は、オブジェクトの転送準備ができた時に、 後述する NOTIFYコマンドによりバッファの空きを確認して、制御側 DMAコントロー ラ 34を開始させる。制御側 DMAコントローラ 34によるサブプロセッサ 30からグラフィ ックメモリ 10へのオブジェクトデータの転送は、テクスチャデータの転送に並行して、 またはグラフィック演算ユニット 40のアイドリング中に実行される。
[0033] このように、グラフィックプロセッサ 100は、内部に設けられた画像処理側 DMAコン トローラ 28を利用して、画像処理に必要な各種データを好適なタイミングでメインメモ リ 50から取得することができる。これによつて、データ転送処理に係るグラフィックプロ セッサ 100およびメインプロセッサ 200の負荷を軽減し、転送要求など最低限の処理 を除いて、それらのプロセッサの演算処理と並行して転送処理を行うことができる。ま た、グラフィックプロセッサ 100の構成を複雑ィ匕することなぐ高速動作するメインプロ セッサ 200の処理に対応した画像処理を行うことができるため、動画の停止やコマ落 ちなどが発生しにくくなる。
[0034] 本実施の形態において、制御ユニット 20で解析、実行されるコマンドを「非グラフィ ック処理系命令」と呼ぶ。この非グラフィック処理系命令は、グラフィック演算ユニット 4 0におけるグラフィック処理内容が明示されているものではなぐ描画データの転送、 グラフィック処理の開始や処理の待機、終了などの処理内容のみが明示されている 命令体系である。グラフィック演算ユニット 40における具体的なグラフィック処理は、コ ンフイダデータで指定されるシエーダプログラムなどのプログラムで規定されている。
[0035] このような非グラフィック処理系命令を採用したのは、以下のようなことを目的とする ためである。すなわち、本実施の形態のような情報処理装置においては、グラフィック プロセッサやそこで実行されるシエーダプログラムは、ハードウェアベンダーにより提 供され、情報処理装置において実行されるアプリケーションソフトウェアや映像コンテ ンッは、別のソフトウェアベンダーにより提供されることが多い。このような場合、ソフト ウェアベンダーがグラフィックプロセッサの制御を考慮する必要はなぐ処理をすべき
データのみを準備すればよ 、。
[0036] し力しながら、アプリケーション毎に要求される処理の負荷などは異なるので、情報 処理装置全体の効率を考えた場合、グラフィックプロセッサにお 、て実行されるダラ フィック処理をソフトウェアベンダー側で制御することが好ましい場合がある。また、ソ フトウェアベンダー側において、グラフィックプロセッサのハードウェア構成を理解した 上で、グラフィックプロセッサにおけるグラフィック処理を一定程度制御できた方力 グ ラフィック処理の高速化、効率化に寄与する場合もある。
そこで、グラフィック演算ユニット 40で実行されるグラフィック処理の方法を明示しな V、命令である「非グラフィック処理系命令」を設けることで、グラフィックプロセッサの動 作を簡便に制御できるようにしたのである。
[0037] 次に、非グラフィック処理系命令を具体的なコマンドを参照して説明する。本実施の 形態では、非グラフィック処理系命令として、転送命令「DMA」、処理起動命令「KIC KJ、処理完了通知命令「NOTIFY」、同期化命令「SYNC」、待機命令「WAIT」、 終了命令「END」、次リスト命令「NEXT」および計時命令「PERF」を有している。当 然である力 他の命令をさらに有していても、またはこれらの命令のうちいくつかの命 令を含んでいない場合も、本発明の範囲に含まれる。
[0038] 上述の非グラフィック処理系命令は、全て同一のフォーマットを備えている。図 2は、 コマンドフォーマットの一例を示す。フォーマット 120は、上述のコマンドのうちいずれ のコマンドであるかを数字で指定するタイプ 121、コマンド毎に設定が必要となる属 性 122、コマンド毎に付与されるコマンド ID123、および必要な設定を明示するパラ メータ 124〜 126をそれぞれ指定するデータ領域を有する。コマンド長は、例えば 16 バイトである。「コマンド ID」は、「1」から開始し「1」ずつ増加していき、コマンドリスト中 に複数存在する DMAコマンドや KICKコマンドの識別番号として使用される。
[0039] グラフィックプロセッサ 100で処理されるのは、上述の KICK、 DMA, NOTIFYな どを含む複数のコマンドのセットであり、このセットを本明細書においては「コマンドリ スト」と呼ぶ。制御ユニット 20の実行部 26は、コマンドリスト内のコマンドをひとつずつ 実行して、画像処理側 DMAコントローラ 28またはグラフィック演算ユニット 40に対応 する命令を実行させる。
[0040] 図 3は、 DMAコマンドのデータフォーマット 130を示す。 DMAコマンドは、画像処 理側 DMAコントローラ 28に対して、メインメモリ 50とグラフィックメモリ 10の間の任意 のデータの DMA転送を実行させる命令である。制御ユニット 20の実行部 26が DM Aコマンドを実行すると、画像処理側 DMAコントローラ 28が起動し、メインメモリ 50か らテクスチャデータの読み込み処理を開始する。読み込まれたデータは、グラフィック メモリ 10のバッファ 12に格納される。
[0041] タイプ 131には DMAコマンドであることを示す「1」を指定する。 DMAチャネル 132 は DMA転送を利用するデバイスの間で衝突が発生しな ヽように設定される 2つのチ ャネルのうちいずれかを指定する。 DMA ID133は、 DMAコマンドの IDを指定す る。この DMA IDは、 DMAのプロセスが終了すると直ちにグラフィックプロセッサ 10 0の内部レジスタ 54に書き込まれる。サブプロセッサ 30は、 DMA IDを格納した内 部レジスタ 54をポーリングすることで、 DMAプロセスの終了を確認することもできる。 タグアドレス 134には DMAタグのアドレスが指定される。 DMAタグには、 DMA転送 に関連する情報、すなわち、アドレス、 DMAサイズ、および転送方向が含まれる。タ グサイズ 135は、 DMAタグのデータサイズが指定される。
[0042] 図 4は、 KICKコマンドのデータフォーマット 140を示す。 KICKコマンドは、グラフィ ック演算ユニット 40における各種グラフィック処理を開始させる命令である。制御ュ- ット 20の実行部 26が KICKコマンドを実行すると、グラフィック演算ユニット 40はダラ フィックメモリ 10にアクセスしてテクスチャデータとオブジェクトデータを読み出し、フレ 一ムノッファに描画する。
[0043] タイプ 141には KICKコマンドであることを示す「2」を指定する。コンフィグタグ 142 は、コンフイダデータを使用するか否かを指定する。 KICK ID143は、 KICKコマン ドの IDを指定する。この KICK IDは、 KICKプロセスが終了すると直ちにグラフイツ クプロセッサ 100の内部レジスタ 54に書き込まれる。サブプロセッサ 30は、 KICK I Dを格納した内部レジスタ 54をポーリングすることで、 KICKプロセスの終了を確認す ることもできる。コンフィグデータアドレス 144およびコンフィグデータサイズ 145には、 それぞれコンフイダデータのアドレスまたはデータサイズが指定される。制御ユニット 2 0の実行部 26は、 KICKコマンドを実行すると、コンフイダデータをグラフィック演算ュ
ニット 40に転送した後に、グラフィック演算ユニット 40が起動される。グラフィック演算 ユニット 40は、コンフイダデータの内容にしたがってプログラムをロードした後、グラフ イツク処理を実行する。コンフイダデータは、予め決定されている力、もしくはメインプ 口セッサ 200において作成される。
[0044] 図 5は、 NOTIFYコマンドのデータフォーマット 150を示す。 NOTIFYコマンドは、 グラフィックプロセッサ 100からメインプロセッサ 200に対して通知をするために使用さ れる。制御ユニット 20の実行部 26が NOTIFYコマンドを実行すると、グラフィックプロ セッサ 100内における所定のグラフィック処理の終了力 メインプロセッサ 200内のサ ブプロセッサ 30に通知される。具体的には、 NOTIFYコマンドは、画像処理側 DM Aコントローラ 28による DMA転送が終了したこと、または、グラフィック演算ユニット 4 0におけるグラフィック処理が終了したことをサブプロセッサ 30に通知する。グラフイツ クプロセッサ 100においていずれの処理の終了を通知するかは、コマンドリストにお ける NOTIFYコマンドと他のコマンドとの配置で指定することができる。
[0045] タイプ 151には NOTIFYコマンドであることを示す「3」を指定する。サブプロセッサ I D154は、信号を通知するサブプロセッサ 30を指定する。全てのサブプロセッサ 30を 指定することも可能である。
[0046] 例えば、グラフィックメモリには、限られた数しかコンテクストバッファ 12が設けられて おらず、これをグラフィック処理に必要なデータ (例えばテクスチャデータ)の格納領 域として共用しなければならない。そこで、例えば、グラフィック処理に必要なデータ の DMA転送が終了したことを NOTIFYコマンドでサブプロセッサ 30に伝え、これに 応じてサブプロセッサ 30によりジオメトリ処理の結果、例えば頂点データなどをグラフ イツクメモリ 10に転送するようにすれば、グラフィック演算ユニット 40およびサブプロセ ッサ 30のアイドリング時間が削減され、結果的に演算時間の短縮に寄与することがで きる。このように、 NOTIFYコマンドは、グラフィックプロセッサ 100とメインプロセッサ 2 00とを協調動作させ、情報処理装置 1000全体の処理効率を向上させるために必要 となる命令である。 NOTIFYコマンドのより具体的な使用方法は、図 11〜図 17を参 照する実施例において説明する。
[0047] 図 6は、 SYNCコマンドのデータフォーマット 160を示す。 SYNCコマンドは、プロセ
ス間に依存関係がある場合に、所定のコマンドプロセスの終了と、サブプロセッサ 30 における処理の終了とを同期させるコマンドである。
[0048] タイプ 161には SYNCコマンドであることを示す「4」を指定する。 SYNC対象 162 には、 DMAコマンド、 KICKコマンド、サブプロセッサからのオブジェクトの DMA転 送のいずれの終了を確認するかを指定する。 ID164には、 DMAコマンドまたは KIC Kコマンドの IDを指定する。レジスタ 165は、フラグレジスタを指定する。サブプロセッ サ 30は、自身の処理が終了すると、内部レジスタ 54にフラグを立てる。後述するよう に、 SYNCコマンドによって、テクスチャデータとオブジェクトデータの両方の転送終 了待ちをすることができる。
[0049] 実行部 26は、内部レジスタ 54を参照することで、 DMAコマンド、 KICKコマンドま たはサブプロセッサの終了を確認する。実行部 26が SYNCコマンドを実行すると、フ ォーマットで指定されたプロセス依存関係に応じて、以下に述べるような複数の動作 が発生する。第 1に、時間的に前に実行された DMAコマンドにしたがったデータの DMA転送が完了するまで、グラフィック演算ユニット 40におけるそのデータを利用 するグラフィック処理の開始を保留させる。第 2に、時間的に前に実行された KICKコ マンドによってグラフィック演算ユニット 40にお!/、てグラフィック処理が実行されて!、る ときに、その処理が終了するまでコマンドリスト内の後続のコマンドの実行を保留する 。第 3に、サブプロセッサ 30におけるデータ処理が終了するまで、コマンドリスト内の 後続のコマンドの実行を保留する。
[0050] 例えば、 KICKコマンドを実行しょうとする場合、グラフィック処理に必要なテクスチ ャデータなどのデータがグラフィックメモリ上に揃わなければ、グラフィック演算ュ-ッ ト 40を起動することはできない。そのような場合に、テクスチャデータおよびオブジェ タトデータの DMA転送プロセスの終了を SYNCコマンドで確認し、それに応じて KI CKコマンドを実行するようにすれば、グラフィック処理を効率的に実行することができ る。また、グラフィック演算ユニット 40におけるグラフィック処理の終了を SYNCコマン ドで取得し、それに応じて DMAコマンドを実行するようにすれば、グラフィック演算ュ ニット 40のアイドリング時間を削減することができる。
[0051] このように、 SYNCコマンドによって、 DMAプロセスまたは KICKプロセスの終了と
、サブプロセッサにおける処理の終了を同期させることが可能になる。これによつて、 プロセス依存関係がある多数のコマンドを含む場合でも、グラフィックプロセッサ 100 の動作を適切に制御し、ひいては、グラフィックプロセッサ 100とメインプロセッサ 200 の動作を協調させることができる。 SYNCコマンドのより具体的な使用方法について は、図 11〜図 17を参照する実施例において説明する。
[0052] なお、 SYNCコマンドは、 DMAコマンド、 KICKコマンドおよびサブプロセッサひと つずつの終了を確認することもできるし、 2個の SYNCコマンドを連続させて記述す ることで、多数のプロセスの終了を同期させることもできる。
[0053] 図示しない WAITコマンドは、 SYNCコマンドと異なり、グラフィックプロセッサ 100 において実行中である全てのコマンドプロセスが終了するまで、以降のコマンドの実 行を保留する。タイプには、 WAITコマンドであることを示す「5」が指定される。
[0054] 図 7は、 NEXTコマンドのデータフォーマット 170を示す。 NEXTコマンドは、ひとか たまりのコマンドリストの終了を示すとともに、次に実行すべきコマンドリストのアドレス を示すコマンドである。タイプ 171には、 NEXTコマンドであることを示す「6」が指定さ れる。次アドレス 174には、次に実行すべきコマンドリストの先頭のアドレスが指定さ れる。
[0055] 本実施の形態では、複数のサブプロセッサ 30が並列的に描画データの演算を実 行し、そのためのグラフィック処理に必要な非グラフィック処理命令を含むコマンド列 を各サブプロセッサ 30が独立して作成する。コマンドリストは、作成された順にメインメ モリ 50に格納される。したがって、制御ユニット 20では、それら複数のコマンドリストの 実行順序を知ることができない。そこで、 NEXTコマンドにより次に実行すべきコマン ドリストのアドレスを指定することによって、サブプロセッサ 30における処理の前後に 関係なぐまたメインメモリ 50内のロケーションに関係なぐコマンドリストを実行するこ とがでさる。
[0056] 図示しない ENDコマンドは、コマンドリストの終了をセットする命令であり、実行部 2 6が ENDコマンドを実行すると、コマンドリストの開始アドレスに移動する。タイプ番号 は「7」である。
[0057] 図 8は、 NEXTコマンドの使用方法を説明する図である。図示するように、連続して
実行実施されるべきコマンドリスト 202、 204、 206が存在するとする。これらのコマン ドリストは、その実行順序に関係なくメインメモリ 50に転送される。コマンドリスト 202、 204の末尾には NEXTコマンドが埋め込まれており、この NEXTコマンドには次に実 行すべきコマンドリストの先頭アドレスが書き込まれている。また、コマンドリスト 206の 末尾には ENDコマンドが埋め込まれて!/、る。
[0058] 画像処理側 DMAコントローラ 28は、予め定められている開始アドレス力 始まって いるコマンドリスト 202を第 1のリストとしてメインメモリ 50から取り出す。そして、コマン ドリスト 202の NEXTコマンドによって、画像処理側 DMAコントローラ 28は次に実行 すべきコマンドリスト 204をメインメモリ 50から取り出すことができる。同様に、コマンド リスト 204の NEXTコマンドによって、その次に実行すべきコマンドリスト 206を取り出 すことができる。
[0059] 管理プロセッサ 32は、各サブプロセッサ 30で作成されたコマンドリストを解析して、 必要な NEXTコマンドを各コマンドリストに埋め込むように構成されている。または、 サブプロセッサ 30が互いにコマンドリストを交換し合うことにより、必要な NEXTコマン ドを埋め込むように構成してもよい。つまり、あるサブプロセッサ A力 Sメモリ上のあるアド レスを取得するとき、他のサブプロセッサによるメインメモリ 50へのアクセスをロックす る。そして、サブプロセッサ Aがコマンドリストをメインメモリ 50へ保存した後、他のプロ セッサによるメインメモリへのアクセスロックを解除する。続いて、サブプロセッサ Bがメ インメモリの次アドレスを取得し、サブプロセッサ Aの作成したコマンドリストにこのアド レスを含む NEXTコマンドを追加する。この処理を繰り返すことによって、必要な NE XTコマンドを各コマンドリストに埋め込むことができる。
[0060] 図示しない PERFコマンドは、コマンドプロセスの実行サイクル数を計測するための 命令である。タイプ番号は「9」が指定される。制御ユニット 20の実行部 26が PERFコ マンドを実行すると、非グラフィック処理命令にしたがったグラフィック処理を実行した ときグラフィックプロセッサにお 、て要した実行サイクル数が計測される。この実行サ イタル数は、例えば、制御ユニット 20のクロックに基づいてカウントされる。この計時命 令は、グラフィック処理の効率などのデータをユーザに提供するときに主に使用され る。
[0061] 以上述べたように、各非グラフィック処理系命令は、グラフィック処理や DMAコント ローラの開始、終了に関係するものにすぎず、グラフィック演算ユニット 40におけるグ ラフィック処理を直接操作して 、る命令、すなわち処理内容を規定して 、る命令では ないことに注意されたい。
[0062] 図 9は、情報処理装置 1000において DMA転送されるデータを示す。これらのデ ータは、制御ユニット 20により利用されるデータ 210と、グラフィック演算ユニット 40に より利用されるデータ 220とに分けることができる。
[0063] コンフイダデータ 212には、シエーダプログラムなどのアドレスが指定されている。コ マンドリスト 214は、上述した非グラフィック処理系命令力もなる。制御側 DMAコント ローラ 34は、コンフィグデータ 212、コマンドリスト 214および頂点データ 222の転送 を制御する。コンフィグデータ 212とコマンドリスト 214は、グラフィックプロセッサ 100 の制御ユニット 20のメモリ領域に転送される。頂点データ 222は、グラフィックメモリ 1 0に転送される。制御側 DMAコントローラ 34によって DMA転送される場合、転送先 のメモリ確保やバッファ管理は、メインプロセッサ側で処理される。
画像処理側 DMAコントローラ 28は、テクスチャデータ 226、パラメータデータ 224 およびシエーダプログラム 228の転送を制御する。テクスチャデータ 226は、グラフィ ックメモリ 10内のバッファ 12に転送される。パラメータデータ 224とシエーダプロダラ ム 228は、グラフィック演算ユニット 40のメモリ領域に転送される。
[0064] 次に、非グラフィック処理系命令にしたがった情報処理装置 1000の動作を説明す る。
図 10は、あるオブジェクトをフレームバッファに描画するときのメインプロセッサ 200 とグラフィックプロセッサ 100における処理とデータの流れを示すフローチャートであ る。以下、図 1を参照しつつ、各処理を説明する。
[0065] まず、メインプロセッサ 200は、オブジェクトの描画に必要なジオメトリデータなどの データの作成、ロード、解析を実行する(S10)。続いてメインプロセッサ 200は、ォブ ジェタトのアドレス解決を実行し、転送先であるメインメモリ 50におけるデータレイァゥ トを決定し(S 12)、メインメモリ 50に格納する。そして、メインプロセッサ 200は、ォブ ジェタトの描画に必要となるコマンドリストとコンフイダデータを作成し(S14)、メインメ
モリ 50に格納する。メインプロセッサ 200の制御側 DMAコントローラ 34は、作成され たコマンドリストとコンフィグデータとを、グラフィックプロセッサ 100の制御ユニット 20 に DMA転送する(S 16)。これが終了すると、メインプロセッサ 200は、制御ユニット 2 0に対して、コマンドリストの実行を開始するように通知する(S18)。
[0066] グラフィックプロセッサ 100の制御ユニット 20力メインプロセッサ 200からコマンドリス ト実行開始の通知を受け取ると、制御ユニット 20内の命令解析部 24がコマンドリスト の解析を開始する(S22)。実行部 26がコマンドリスト内の DMAコマンドを実行すると 、画像処理側 DMAコントローラ 28は、 DMAコマンドのタグアドレスを参照して、ォブ ジェタトの描画に必要となるテクスチャデータなどのデータをメインメモリ 50からグラフ イツクメモリ 10内のバッファ 12に転送する(S24)。実行部 26がコマンドリスト内の SY NCコマンドを実行すると、グラフィック演算ユニット 40は、 S24にしたがって実行中の テクスチャデータの転送が終了するまで以降のコマンドリストの実行を保留する(S26
) o
[0067] さて、この間にメインプロセッサ 200では、オブジェクトのジオメトリ処理を実行して頂 点データおよびパラメータデータを算出し (S20)、メインメモリ 50に格納しておく。メイ ンプロセッサ 200の制御側 DMAコントローラ 34は、頂点データをグラフィックメモリ 1 0に転送し (S28)、ジオメトリ処理が終了したことを示すフラグを内部レジスタ 54にセ ットする(S30)。制御ユニット 20内の実行部 26は、コマンドリスト内の SYNCコマンド にしたがって、頂点データの転送が終了するまで以降のコマンドリストの実行を保留 する(S32)。ここまでの処理によって、オブジェクトの描画に必要となる各種データが 、グラフィックメモリ 10上に揃ったことになる。
[0068] この状態において、実行部 26が KICKコマンドを実行すると、制御ユニット 20はコ ンフイダデータをグラフィック演算ユニット 40に転送し、グラフィック演算ユニット 40の 処理が起動され、ノ ッファ 12を読み出す (S34)。グラフィック演算ユニット 40は、コン フィグデータに基づいてプログラムを読み出す。グラフィック演算ユニット 40における 処理が終了し、フレームバッファへのオブジェクトの描画が完了すると、グラフィック演 算ユニット 40は内部レジスタ 54に KICKプロセスが終了したことを示すフラグをセット する。グラフィック演算ユニット 40は、 SYNCコマンドによりオブジェクトの描画終了を
確認すると(S36)、 NOTIFYコマンドにより、サブプロセッサ 30に対してオブジェクト の描画が終了したことを通知する(S38)。この通知により、メインプロセッサ 200は、 次のオブジェクトの準備を開始することができる。
[0069] 情報処理装置 1000においては、サブプロセッサ 30におけるジオメトリ処理と、ォブ ジェタトデータおよびテクスチャデータの DMA転送と、グラフィック演算ユニット 40に おけるグラフィック処理の全ての同期をとる必要があるので、制御側 DMAコントロー ラ 34、画像処理側 DMAコントローラ 28両方の処理手順、処理速度を考慮したコマ ンドリストを作成する必要がある。以下では、コマンドリストの例を挙げて、これにした 力 たメインプロセッサ 200とグラフィックプロセッサ 100の協調動作を説明する。 なお、以下の説明においては、画像処理側 DMAコントローラ 28によるテクスチャ データの DMA転送は同時に 2つ、グラフィック演算ユニット 40におけるオブジェクト の描画処理はひとつのみ実行可能であるものとする。また、グラフィックメモリ 10には 、テクスチャデータを格納するコンテクストバッファ 12として、バッファ A、ノッファ Bが 備えられているとする。
[0070] 図 11は、コマンドリストの一例であるコマンドリスト 700を示す。なお、コマンドの解釈 はリスト通りに行われる力 実際の処理は必ずしもコマンドの順序で起きるわけではな ぐ DMA転送されるデータ量やグラフィック処理に要する時間により前後する。
[0071] 図 11にお!/、て、「タイプ」はコマンド名を表し、「属性」は SYNCコマンドで同期させ るべき対象を略号で示す。「D」は DMAプロセス、「F」はサブプロセッサのジオメトリ 処理、「K」は KICKプロセスを表している。「ID」は、上述した DMA IDまたは KICK
IDであり、この IDによって、複数ある DMAプロセスまたは KICKプロセスのうち待 機すべきプロセスを特定することができる。また、図中の「Tex」はテクスチャを、「Obj 」はオブジェクトを、「SPU」はサブプロセッサをそれぞれ表す。符号 A、 Bは 2つのバ ッファ 12を表す。例えば「Obj A」は、バッファ Aに DMA転送されるオブジェクトを表 し、「Tex A」は、オブジェクト Aのグラフィック処理に必要であり、バッファ Aに DMA 転送されるテクスチャデータを表す。なお、実際のグラフィック処理には、テクスチャ データ以外にカラーデータや a値のデータなども必要となる力 ここではテクスチャ データを代表として示している。「SPU A」は、バッファ Aに DMA転送されるォブジ
ェクト Aを処理するサブプロセッサを表す。
[0072] 実行部 26は、コマンドリスト 700を開始アドレス力も順次実行する。まず、 ID「1」を 付与された DMAコマンド 701と、 ID「2」を付与された DMAコマンド 702を実行する 。これにより、画像処理側 DMAコントローラ 28は、メインメモリ 50からテクスチャ A (T ex A)をバッファ Aに転送開始し、テクスチャ B (Tex B)をバッファ Bに転送開始す る。
このとき、制御側 DMAコントローラ 34は、バッファ Aへのテクスチャ Aの DMA転送 に並行して、サブプロセッサ Aからグラフィックメモリ 10へのオブジェクト A (Obj A)の 転送を実行する。また、制御側 DMAコントローラ 34は、バッファ Bへのテクスチャ Bの DMA転送に並行して、サブプロセッサ Bからグラフィックメモリ 10へのオブジェクト B ( Obj B)の転送を実行する。なお、制御側 DMAコントローラ 34は、実行部 26による コマンドの実行とは無関係に動作する。
[0073] グラフィック演算ユニット 40は、 SYNCコマンド 703にしたがって、 ID「1」を付与され た DMAコマンド 701に対応するバッファ Aへのテクスチャ Aの転送の終了と、制御側 DMAコントローラ 34によるサブプロセッサ A (SPU A)からグラフィックメモリ 10への オブジェクト Aの転送の終了を確認する。 ID「1」を付与された KICKコマンド 704にし たがって、グラフィック演算ユニット 40は、バッファ Aにリードアクセスしてオブジェクト Aに対するグラフィック処理を開始する。
[0074] 続いて、グラフィック演算ユニット 40は、 SYNCコマンド 705にしたがって、 ID「2」を 付与された DMAコマンド 702に対応するバッファ Bへのテクスチャ Bの転送の終了と 、制御側 DMAコントローラ 34によるサブプロセッサ B (SPU B)力らグラフィックメモ リ 10へのオブジェクト Bの転送の終了を確認する。 ID「2」を付与された KICKコマンド 706にしたがって、グラフィック演算ユニット 40は、バッファ Bにリードアクセスしてォブ ジェタト Bに対するグラフィック処理を開始する。
[0075] 続いてグラフィック演算ユニット 40は、 SYNCコマンド 707により、 ID「1」を付与され た KICKコマンド 704に対応するオブジェクト Aのグラフィック処理の終了を確認する 。グラフィック処理済のオブジェクト Aはグラフィックメモリ 10のフレームバッファに書き 出される。 NOTIFYコマンド 708により、グラフィック演算ユニット 40はサブプロセッサ
A (SPU A)に対してオブジェクト Aのグラフィック処理が完了したことを通知する。こ れによってサブプロセッサ Aは、バッファ Aが空 ヽて 、ることを知る。
[0076] 画像処理側 DMAコントローラ 28は、 ID「3」を付与された DMAコマンド 709にした がって、空きができたバッファ Aに対して、新たなオブジェクト Aのグラフィック処理に 必要となるテクスチャ Aの転送を開始する。
制御側 DMAコントローラ 34は、バッファ Aへのテクスチャ Aの DMA転送に並行し て、サブプロセッサ Aからグラフィックメモリ 10へのオブジェクト Aの DMA転送を実行 する。
[0077] グラフィック演算ユニット 40は、 SYNCコマンド 710により、 ID「3」を付与された DM Aコマンド 709に対応するバッファ Aへのテクスチャ Aの転送の終了と、サブプロセッ サ Aからグラフィックメモリ 10への新たなオブジェクト Aの転送の終了を確認する。 ID「 3」を付与された KICKコマンド 711にしたがって、グラフィック演算ユニット 40は、バッ ファ Aにリードアクセスしてオブジェクト Aに対するグラフィック処理を実行する。
[0078] グラフィック演算ユニット 40は、 SYNCコマンド 712により、 ID「2」を付与された KIC Kコマンド 706に対応するオブジェクト Bのグラフィック処理の終了を確認する。グラフ イツク処理済のオブジェクト Bはグラフィックメモリ 10のフレームバッファに書き出される 。 NOTIFYコマンド 713により、グラフィック演算ユニット 40はサブプロセッサ Bに対し てオブジェクト Bのグラフィック処理が完了したことを通知する。
[0079] 画像処理側 DMAコントローラ 28は、 ID「4」を付与された DMAコマンド 714にした がって、空きができたバッファ Bに対して、新たなオブジェクト Bのグラフィック処理に 必要となるテクスチャ Bの転送を開始する。
制御側 DMAコントローラ 34は、バッファ Bへのテクスチャ Bの DMA転送に並行し て、サブプロセッサ Bからグラフィックメモリ 10へのオブジェクト Bの DMA転送を実行 する。
[0080] グラフィック演算ユニット 40は、 SYNCコマンド 715にしたがって、 ID「4」を付与され た DMAコマンド 714に対応するバッファ Bへのテクスチャ Bの転送の終了と、サブプ 口セッサ Bからバッファ Bへの新たなオブジェクト Bの転送の終了を確認する。 ID「4」 を付与された KICKコマンド 716にしたがって、グラフィック演算ユニット 40は、バッフ
ァ Bにリードアクセスしてオブジェクト Bに対するグラフィック処理を開始する。
[0081] 実行部 26が WAITコマンド 717を実行すると、グラフィック演算ユニット 40は、ォブ ジェタト Aとオブジェクト Bの 2回目のグラフィック処理の終了を待機し、 NOTIFYコマ ンド 718により、グラフィック処理の終了を全サブプロセッサに対して通知する。
[0082] 図 12は、図 11のコマンドリスト 700にしたがったテクスチャデータの転送を模式的 に示す。 DMAコマンドにしたがって、テクスチャ Aがバッファ Aに転送されるのと並行 して、サブプロセッサからはオブジェクト Aがグラフィックメモリに転送される。テクスチ ャ Aとオブジェクト Aの転送が両方とも終了すると、グラフィック演算ユニット 40はォブ ジェタト Aのグラフィック処理を実行する。また、 DMAコマンドにしたがって、テクスチ ャ Bがバッファ Bに転送されるのと並行して、サブプロセッサからはオブジェクト Bがグ ラフィックメモリに転送される。テクスチャ Bとオブジェクト Bの転送が両方とも終了する と、グラフィック演算ユニット 40はオブジェクト Bのグラフィック処理を実行する。以降、 上記の処理が繰り返される。
[0083] 図 13は、図 11のコマンドリスト 700にしたがったときのバッファ A、バッファ Bの状態 を示すチャートである。図中の符号は、図 11のコマンドリスト内のコマンドに与えた符 号と対応する。オブジェクト Aの処理に必要なテクスチャ Aカ^ィンメモリ 50からバッフ ァ Aに転送され(701)、またオブジェクト Bの処理に必要なテクスチャ Bがメインメモリ 50からバッファ Bに転送される(702)。 SYNCコマンドによりオブジェクト Aとテクスチ ャ Aの転送の終了を確認すると、 KICKコマンドによりそれらがグラフィック演算ュ-ッ ト 40によりバッファ Aから読み出され、グラフィック処理が開始される(704)。以降、 D MAコマンドによるバッファ A、バッファ Bに対する DMA転送と、 KICKコマンドによる ノ ッファ A、ノ ッファ Bからの読み出しが順番に繰り返される。
なお、図 13においては、簡単のために全てのステージにおける処理が同時間で終 了するように描かれて 、るが、実際の処理にぉ 、ては DMA転送されるデータ量ゃグ ラフィック処理に要する時間により前後する。
[0084] 情報処理装置 1000においては、画像処理側 DMAコントローラはテクスチャデー タの DMA転送を同時に 2つ実行できる力 ノ ッファが 2つであると、実装においては グラフィック演算ユニット 40およびメインプロセッサ 200のアイドリング時間が長くなつ
てしまい、情報処理装置 1000の処理効率の向上を妨げるおそれがある。そこで、グ ラフィックメモリ 10にバッファ 12を 3つ以上設け、グラフィック演算ユニット 40およびメ インプロセッサ 200のアイドリング時間を短縮することで、情報処理装置全体の処理 効率を高める方法にっ 、て説明する。
[0085] 図 14は、グラフィックメモリ 10がバッファ A、 ノ ッファ B、バッファ Cの 3つを備えるとし た場合のコマンドリスト 800の一例を示す。図 15は、図 14のコマンドリストにしたがつ たときのバッファ A、 ノ ッファ B、バッファ Cの状態を示すチャートである。図 14、図 15 中の「Tex」「Obj」「SPU」は、図 11の場合と同様にそれぞれ「テクスチャ」「オブジェ タト」「サブプロセッサ」を表す。また、「IDLE」は、画像処理側 DMAコントローラ 28に よる各バッファへの DMA転送が実行されて 、な 、状態を表す。
[0086] 以下、図 15のチャートを参照しつつ、図 14のコマンドリスト 800を説明する。
実行部 26は、コマンドリスト 800を開始アドレス力も順次実行する。まず、 ID「1」を 付与された DMAコマンド 801と、 ID「2」を付与された DMAコマンド 802を実行する 。これにより、画像処理側 DMAコントローラ 28は、メインメモリ 50からテクスチャ A (T ex A)をバッファ Aに転送開始し、テクスチャ B (Tex B)をバッファ Bに転送開始す る。
このとき、制御側 DMAコントローラ 34は、バッファ Aへのテクスチャ Aの DMA転送 に並行して、サブプロセッサ Aからグラフィックメモリ 10へのオブジェクト A (Obj A)の 転送を実行する。また、制御側 DMAコントローラ 34は、バッファ Bへのテクスチャ Bの DMA転送に並行して、サブプロセッサ Bからグラフィックメモリ 10へのオブジェクト B ( Obj B)の転送を実行する。
[0087] グラフィック演算ユニット 40は、 SYNCコマンド 803にしたがって、 ID「1」を付与され た DMAコマンド 801に対応するバッファ Aへのテクスチャ Aの転送の終了と、制御側 DMAコントローラ 34によるサブプロセッサ A (SPU A)からグラフィックメモリ 10への オブジェクト Aの転送の終了を確認する。 ID「1」を付与された KICKコマンド 804にし たがって、グラフィック演算ユニット 40は、バッファ Aにリードアクセスしてオブジェクト Aに対するグラフィック処理を開始する。
[0088] 画像処理側 DMAコントローラ 28は、 ID「3」を付与された DMAコマンド 805により
、 ノッファ Cへのテクスチャ C (Tex C)の転送を開始する。このとき、制御側 DMAコ ントローラ 34は、サブプロセッサ Cからグラフィックメモリ 10へのオブジェクト C (Obj C )の転送を実行する。
[0089] グラフィック演算ユニット 40は、 SYNCコマンド 806により、 ID「2」を付与された DM Aコマンド 802に対応するバッファ Bへのテクスチャ Bの転送の終了と、制御側 DMA コントローラ 34によるサブプロセッサ B (SPU B)からグラフィックメモリ 10へのォブジ ェクト Bの転送の終了を確認する。 ID「2」を付与された KICKコマンド 807にしたがつ て、グラフィック演算ユニット 40は、バッファ Bにリードアクセスしてオブジェクト Bに対 するグラフィック処理を開始する。
[0090] グラフィック演算ユニット 40は、 SYNCコマンド 808により、 ID「1」を付与された KIC Kコマンド 804に対応するオブジェクト Aのグラフィック処理の終了を確認する。グラフ イツク処理済のオブジェクト Aは、グラフィックメモリ 10のフレームバッファに書き出され る。 NOTIFYコマンド 809により、グラフィック演算ユニット 40はサブプロセッサ A (SP U A)に対してオブジェクト Aのグラフィック処理が完了したことを通知する。これによ つてサブプロセッサ Aは、ノッファ Aが空 ヽて 、ることを知る。
[0091] 画像処理側 DMAコントローラ 28は、 ID「4」を付与された DMAコマンド 810にした がって、空きができたバッファ Aに対して、新たなオブジェクト Aのグラフィック処理に 必要となるテクスチャ Aの DMA転送を開始する。
制御側 DMAコントローラ 34は、バッファ Aへのテクスチャ Aの DMA転送に並行し て、サブプロセッサ Aからグラフィックメモリ 10へのオブジェクト Aの DMA転送を実行 する。
[0092] グラフィック演算ユニット 40は、 SYNCコマンド 811により、 ID「3」を付与された DM Aコマンド 805に対応するバッファ Cへのテクスチャ Cの転送の終了と、サブプロセッ サ C (SPU C)力らグラフィックメモリ 10へのオブジェクト Cの転送の終了を確認する 。 ID「3」を付与された KICKコマンド 812にしたがって、グラフィック演算ユニット 40は 、 ノッファ Cにリードアクセスしてオブジェクト Cに対するグラフィック処理を実行する。
[0093] 以下、コマンド 813〜824にしたがって、上述と同様の手順が繰り返される。
実行部 26が WAITコマンド 825を実行すると、グラフィック演算ユニット 40は、ォブ
ジェタト A〜Cの 2回目のグラフィック処理の終了を待機し、 NOTIFYコマンド 826に より、グラフィック処理が終了したことを全サブプロセッサに対して通知する。
[0094] コマンドリストは先頭力 順に実行されていくので、コマンドを適切に配置することに よって、グラフィック演算ユニット 40のアイドリング時間を削減することができる。図 15 を参照して説明すると、ノ ッファ Aへのテクスチャ Aとオブジェクト Aの転送終了を SY NCコマンド 803により確認したのち、 KICKコマンド 804によりグラフィック演算ュ-ッ ト 40はバッファ Aにアクセスしてグラフィック処理を開始する。この間に、ノ ッファ Bへ のテクスチャ Bとオブジェクト Bの転送と、バッファ Cへのテクスチャ Cとオブジェクトじの 転送が行われる。
[0095] その後も、バッファ Bへのテクスチャ Bとオブジェクト Bの転送終了を確認した後、ォ ブジェクト Bのグラフィック処理を開始し、バッファ Cへのテクスチャ Cとオブジェクトじの 転送終了を確認した後、オブジェクト Cのグラフィック処理を開始する、といったように 、グラフィック演算ユニット 40を、オブジェクト A、オブジェクトおオブジェクト Cの順で 演算させる。このように、 SYNCコマンドと KICKコマンドを適切に配置したコマンドリ ストを作成することによって、グラフィック演算ユニット 40のアイドリング時間を短縮す ることがでさる。
[0096] また、サブプロセッサは、オブジェクトを転送した時点力 別のオブジェクトの演算を 実行し、グラフィック処理の終了通知を受けると直ちに、そのオブジェクトを転送でき る。したがって、サブプロセッサ側のアイドリング時間も短縮することができる。
[0097] 図 16は、グラフィックメモリ 10がバッファ A、ノ ッファ B、バッファ C、バッファ Dの 4つ を備えるときのコマンドリスト 900の一例を示す。図 17は、図 16のコマンドリストにした がったときのバッファ A〜バッファ Dの状態を示すチャートである。
[0098] 以下、図 17のチャートを参照しつつ、図 16のコマンドリスト 900を説明する。
実行部 26は、コマンドリスト 900を開始アドレス力も順次実行する。まず、 ID「1」を 付与された DMAコマンド 901と、 ID「2」を付与された DMAコマンド 902を実行する 。これにより、画像処理側 DMAコントローラ 28は、メインメモリ 50からテクスチャ A (T ex A)をバッファ Aに転送開始し、テクスチャ B (Tex B)をバッファ Bに転送開始す る。
このとき、制御側 DMAコントローラ 34は、バッファ Aへのテクスチャ Aの DMA転送 に並行して、サブプロセッサ Aからグラフィックメモリ 10へのオブジェクト A (Obj A)の 転送を実行する。また、制御側 DMAコントローラ 34は、バッファ Bへのテクスチャ Bの DMA転送に並行して、サブプロセッサ Bからグラフィックメモリ 10へのオブジェクト B ( Obj B)の転送を実行する。
[0099] グラフィック演算ユニット 40は、 SYNCコマンド 903にしたがって、 ID「1」を付与され た DMAコマンド 901に対応するバッファ Aへのテクスチャ Aの転送の終了と、制御側 DMAコントローラ 34によるサブプロセッサ A (SPU A)からグラフィックメモリ 10への オブジェクト Aの転送の終了を確認する。 ID「1」を付与された KICKコマンド 904にし たがって、グラフィック演算ユニット 40は、バッファ Aにリードアクセスしてオブジェクト Aに対するグラフィック処理を開始する。
[0100] 画像処理側 DMAコントローラ 28は、 ID「3」を付与された DMAコマンド 805により 、 ノッファ Cへのテクスチャ C (Tex C)の転送を開始する。このとき、制御側 DMAコ ントローラ 34は、サブプロセッサ Cからグラフィックメモリ 10へのオブジェクト C (Obj C )の転送を実行する。
[0101] グラフィック演算ユニット 40は、 SYNCコマンド 906により、 ID「2」を付与された DM Aコマンド 902に対応するバッファ Bへのテクスチャ Bの転送の終了と、制御側 DMA コントローラ 34によるサブプロセッサ B (SPU B)からグラフィックメモリ 10へのォブジ ェクト Bの転送の終了を確認する。 ID「2」を付与された KICKコマンド 907にしたがつ て、グラフィック演算ユニット 40は、バッファ Bにリードアクセスしてオブジェクト Bに対 するグラフィック処理を開始する。
[0102] 画像処理側 DMAコントローラ 28は、 ID「4」を付与された DMAコマンド 908により 、 ノッファ Dへのテクスチャ D (Tex D)の転送が開始される。このとき、制御側 DMA コントローラ 34は、サブプロセッサ Dからグラフィックメモリ 10へのオブジェクト D (Obj D)の転送を実行する。
[0103] グラフィック演算ユニット 40は、 SYNCコマンド 909にしたがって、 ID「3」を付与され た DMAコマンド 905に対応するバッファ Cへのテクスチャ Cの転送の終了と、制御側 DMAコントローラ 34によるサブプロセッサ C (SPU C)からグラフィックメモリ 10への
オブジェクト Cの転送の終了を確認する。 ID「3」を付与された KICKコマンド 910にし たがって、グラフィック演算ユニット 40は、バッファ Cにリードアクセスしてオブジェクト C〖こ対するグラフィック処理を開始する。
[0104] グラフィック演算ユニット 40は、 SYNCコマンド 911により、 ID「1」を付与された KIC Kコマンド 904に対応するオブジェクト Aのグラフィック処理の終了を確認する。グラフ イツク処理済のオブジェクト Aは、グラフィックメモリ 10のフレームバッファに書き出され る。 NOTIFYコマンド 912により、グラフィック演算ユニット 40はオブジェクト Aのグラ フィック処理が完了したことをサブプロセッサ A (SPU A)に通知する。これによつて サブプロセッサ Aは、ノ ッファ Aが空 ヽて 、ることを知る。
[0105] 画像処理側 DMAコントローラ 28は、 ID「5」を付与された DMAコマンド 913にした がって、空きができたバッファ Aに対して、新たなオブジェクト Aのグラフィック処理に 必要となるテクスチャ Aの DMA転送を開始する。このとき、制御側 DMAコントローラ 34は、バッファ Aへのテクスチャ Aの DMA転送に並行して、サブプロセッサ Aからグ ラフィックメモリ 10へのオブジェクト Aの DMA転送を実行する。
[0106] グラフィック演算ユニット 40は、 SYNCコマンド 914により、 ID「4」を付与された DM Aコマンド 908に対応するバッファ Dへのテクスチャ Dの転送の終了と、サブプロセッ サ D (SPU D)力らグラフィックメモリ 10へのオブジェクト Dの転送の終了を確認する 。 ID「4」を付与された KICKコマンド 915にしたがって、グラフィック演算ユニット 40は 、ノ ッファ Dにリードアクセスしてオブジェクト Dに対するグラフィック処理を実行する。
[0107] 以下、コマンド 916〜932にしたがって、上述と同様の手順が繰り返される。
実行部 26が WAITコマンド 933を実行すると、グラフィック演算ユニット 40は、ォブ ジェタト A〜Dの 2回目のグラフィック処理の終了を待機し、 NOTIFYコマンド 934に より、グラフィック処理が終了したことを全サブプロセッサに対して通知する。
[0108] このように、 SYNCコマンドと KICKコマンドを適切に配置することによって、グラフィ ック演算ユニット 40を、オブジェクト A、オブジェクトおオブジェクトおオブジェクト D の順で演算させている。これによつて、グラフィック演算ユニット 40のアイドリング時間 を短縮することができる。
[0109] このように、本実施の形態では、非グラフィック処理系命令力もなるコマンドリストを
組むことによって、グラフィックプロセッサにおけるグラフィック処理の順序を制御する ことができる。
[0110] グラフィックメモリにバッファを 4つ備えることの有利な点を、図 15と図 17とを比較し て説明する。
図 15のバッファ Aを見ると、 KICKコマンド(例えばコマンド 804)による描画が終了 してから次回の KICKコマンド(コマンド 817)までの間には、ノ ッファ B、 Cに対応す る KICKコマンド(コマンド 807、 812)分しか時間がない。これに対し、図 17のバッフ ァ Aの場合は、 KICKコマンド(例えばコマンド 904)による描画が終了してから次回 の KICKコマンド(コマンド 920)までの間には、ノ ッファ B、 C、 Dに対応する KICKコ マンド(コマンド 907、 910、 915)分の時間を持つことができる。
[0111] 言い換えると、図 17のバッファ Aにおいては、 KICKコマンドによる描画開始(例え ばコマンド 904)力も次回の KICKコマンド(コマンド 920)までの間に、図 15のバッフ ァ Aと比べて「IDLE」状態が余分に含まれて!/、る。
この時間的余裕は次データの準備期間として働き、グラフィック演算ユニット 40、サ ブプロセッサ 30と 、つた演算器をストールさせることなくビジー状態に保てると!、う利 点がある。
また、 NOTIFYコマンドによる KICKの終了通知力メインプロセッサ 200に到達す るまでのレイテンシを、「IDLE」の時間に隠すことができるという利点もある。
[0112] 以上説明したように、本実施の形態によれば、非グラフィック処理系命令を通して、 メインプロセッサ 200とグラフィックプロセッサ 100との協調動作をユーザが制御する ことが可能になる。
[0113] 本実施の形態における非グラフィック処理系命令は、制御ユニット 20に対する簡便 な少数のコマンドを組み合わせることによって、グラフィック演算ユニットの動作を制 御することができる。この非グラフィック処理系命令は、グラフィック演算ユニットにお ける具体的なグラフィック処理は指定しな 、ので、シエーダプログラム等のグラフィック 処理を実行するプログラムの影響を受けることがない。
[0114] 非グラフィック処理系命令の代わりに、アプリケーションソフトウェアの開発者のため にグラフィック演算ユニットの処理に対する直接的で詳細なコマンドを準備しておくこ
ともできるが、こうすると、グラフィック演算ユニットのハードウェア構成を変更した場合 にコマンドのサポートをする負担が大きくなる。本実施形態による非グラフィック処理 系命令は少数のコマンドしか準備されておらず、またグラフィック演算ユニットの基本 的な動作に関するものに限られているので、上述のような負担を軽減することができ る。
[0115] また、非グラフィック処理系命令により、ノ ッファの割り当てをユーザが指定すること ができる。このため、メインプロセッサがバッファの割り当てを実行する必要がなくなる ので、メインプロセッサの処理負荷を軽減することができる。
[0116] 情報処理装置 1000において、メインプロセッサ 200にはサブプロセッサ 30が複数 設けられているため、オブジェクトのジオメトリ処理を並列的に実行できるのに対し、 グラフィックプロセッサ 100におけるオブジェクトのグラフィック処理はひとつずつしか できない。そこで、本実施の形態にしたがって、 KICKコマンドにより起動されるグラフ イツク演算ユニットにおけるグラフィック処理の演算時間と、 DMAコマンドにより開始 されるデータの転送時間とが同程度になるようなコマンドリストを作成し、グラフィック プロセッサ 100にとつて好適なタイミングで描画データ転送を実行するようにすれば、 メインプロセッサとグラフィックプロセッサのロードバランスが改善されるので、情報処 理装置 1000の処理効率が向上する。
[0117] 言い換えると、情報処理装置 1000においてはメインプロセッサ側の処理速度の方 が速いので、グラフィック演算ユニットにおけるグラフィック処理の終了を待機する期 間をできるだけ短縮することで、情報処理装置における処理を高速ィ匕することができ る。
例えば、サイズの大きいフレームを描画する場合を考える。この場合、フレーム全体 をグラフィック処理させようとすると、演算量が非常に大きいため、サブプロセッサはグ ラフィック演算ユニットの処理の終了を待機する期間が長くなる。そこで、フレームを 4 分割して、各分割フレームを描画するのに必要なデータを DMA転送させる時間と、 各フレームのオブジェクトをジオメトリ処理する時間と、各分割フレームをグラフィック 処理する時間のバランスをとるようにコマンドリストを作成すれば、画像処理時間を短 縮させることができる。このように、コマンドリストの工夫次第で、情報処理の効率をァ
ップさせることが可能となる。
[0118] 以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それ らの各構成要素や各処理プロセスの組合せに 、ろ 、ろな変形例が可能なこと、また そうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、 そのような変形例について述べる。
[0119] 実施の形態では、グラフィック演算ユニット 40において単一のオブジェクトのグラフ イツク処理を行う場合について説明した。し力しながら、グラフィック演算ユニット 40は 、複数の異なるオブジェクトのグラフィック処理を並列に実行可能な構成にすることが できる。
図 18は、この場合の非グラフィック処理系命令を使用したコマンドリスト 750の一例 を示す。図 18において、複数のオブジェクトの集合「Obj set A」のグラフィック処理 に必要となるテクスチャの集合を「Tex set A」と表記する。オブジェクトが単数であ る場合と同様に、テクスチャセットを DMA転送する DMAコマンド、テクスチャセットと それに対応するオブジェクトセットの転送終了を確認する SYNCコマンド、転送終了 後にオブジェクトセットに対する描画開始を指示する KICKコマンドを配置する。これ によって、処理対象のオブジェクトが複数存在する場合でも、単一のオブジェクトの場 合と同じように、グラフィック演算ユニット 40におけるグラフィック処理を制御することが できる。
[0120] 実施の形態に係る情報処理装置 1000においては、グラフィックプロセッサ 100とメ インプロセッサ 200とが単一の LSIチップとして一体に集積化されていてもよぐまた は別のチップとして構成されて 、てもよ 、。実施の形態にぉ 、て示した各ブロックは、 集積度についてまで限定するものではなぐいずれの構成要素の組合せが集積化さ れてもよ ヽし、あるいは別チップとして構成されて 、てもよ 、。
[0121] 実施の形態ではメインプロセッサ 200をマルチプロセッサとして記述した力 本発明 はシングルプロセッサにも適用できる。また、グラフィックプロセッサ 100をマルチプロ セッサとして構成し、個々のプロセッサに対して本発明を適用し、メインプロセッサ 20 0との協調動作をさせることもできる。
[0122] 実施の形態では、グラフィックプロセッサ 100の外部にグラフィックメモリ 10が設けら
れている構成を示した力 グラフィックメモリはグラフィックプロセッサ 100の内部に設 けられてもよい。また、グラフィックメモリを単独で設けず、メインメモリ 50の一部の領 域をグラフィックメモリとして使用してもょ 、。
[0123] NOTIFYコマンドを使用してオブジェクトのグラフィック処理が終了したことをサブ プロセッサに通知する代わりに、内部レジスタ 54に、グラフィック処理が終了したこと を示すフラグを立てるようにしてもよい。そして、メインプロセッサ 200は、内部レジスタ 54をポーリングするように構成してもよい。こうすれば、 NOTIFYコマンドを使用する ことなく、オブジェクトのグラフィック処理が終了したことを、メインプロセッサ 200が知 ることができる。 NOTIFYコマンドではタイムラグが生じ得る力 メインプロセッサ 200 力 このタイムラグを待てないような場合、または、プロセッサに都合のよいいタイミン グでグラフィック処理の終了を確認したいときは、内部レジスタを使用する。内部レジ スタ 54と NOTIFYコマンドを併用してもよい。この場合、サブプロセッサ 30はポーリン グと NOTIFYコマンドによる通知の!/、ずれかを状況に応じて使!、分けることができる
[0124] また、 NOTIFYコマンドによりグラフィック処理の終了を通知する先は、メインプロセ ッサ 200に限られず、グラフィック演算ユニット 40の外部の任意のプロセッサであって よい。
[0125] 実施の形態では、テクスチャデータやパラメータデータなどのグラフィック処理に必 要なデータの DMA転送は画像処理側 DMAコントローラ 28が担当し、それ以外の、 コンフィグデータやコマンドリスト、頂点データ、シエーダプログラムの DMA転送は、 制御側 DMAコントローラ 34が担当するものとして説明した。し力しながら、上記は代 表的な例にすぎず、これら全てのデータの DMA転送を制御側 DMAコントローラ 34 で担当してもよいし、または画像処理側 DMAコントローラ 28で担当してもよい。テク スチヤデータやパラメータデータの転送を制御側 DMAコントローラ 34が担当する場 合、実行部 26は、 DMAコマンドを実行したとき、制御側 DMAコントローラ 34に DM A転送の指令を出す。
[0126] 実施の形態では、制御ユニット 20の実行部 26がコマンドリストを上力も順に実行し ていくことを述べた力 命令解析部 24がコマンドリストを解析した際に、コマンドを再
配置するよう〖こしてもよい。例えば、命令解析部 24は、適切なタイミングで PERFコマ ンドを実行して、 DMAコマンドと KICKコマンドの実行サイクル数を取得する。そして 、両コマンドの実行サイクル数が大きく異なる場合には、コマンドリスト内の DMAコマ ンドゃ KICKコマンドの位置を入れ替えることによって、グラフィックプロセッサ 100の 処理効率を改善することができる。
また、命令解析部 24は、コマンドリストの解析時にコマンドリストに配列ミスを発見し たときに、そのミスを修正するように構成されていてもよい。例えば、 SYNCコマンド内 の IDを参照することによって、当該 SYNCコマンドが同期の対象としている DMAコ マンドまたは KICKコマンドより前に位置して ヽるときは、命令解析部 24が SYNCコ マンドの位置を DMAコマンドまたは KICKコマンドの後に並べ替えるように構成され ていてもよい。また、 DMAコマンドまたは KICKコマンドがコマンドリスト内に記述され ている場合に、それぞれに付与されている IDをもとにコマンドリストを検索して、その 同期をとるための SYNCコマンドが当該コマンドリスト内に存在しないときは、命令解 析部 24がその SYNCコマンドをコマンドリストに追加するように構成されて!、てもよ!/ヽ 産業上の利用可能性
本発明によれば、複数のプロセッサを有する情報処理装置において、プロセッサの アイドリング時間を削減することができる。
Claims
[1] 装置全体を統括的に制御するメインプロセッサと、特定の処理を行う第 2プロセッサ とを備える情報処理装置であって、
当該装置は、同時に m個(mは m> 1の整数)データ転送を制御する DMAコント口 ーラと、前記特定の処理のためのデータが最初に展開されるメインメモリと、
前記メインメモリから前記データが転送されたときこれらを記憶する n個(nは n>m の整数)で一組のバッファと、を備え、
同時に複数のデータ転送が実行されるとき、前記一組のバッファのうち第 1のバッフ ァが一方のデータの転送先に設定され、第 2のバッファが他方のデータの転送先に 設定されることを特徴とする情報処理装置。
[2] 前記 DMAコントローラが動作しているとき、前記第 2プロセッサは、前記一組のバッ ファのうち第 3のバッファに格納されたデータを使用した処理を実行していることを特 徴とする請求項 1に記載の情報処理装置。
[3] 装置全体を統括的に制御するメインプロセッサと、特定の処理を行う第 2プロセッサ とを備える情報処理システムであって、
当該システムは、同時に m個(mは m> 1の整数)データ転送を制御する DMAコン トローラと、前記特定の処理のためのデータが最初に展開されるメインメモリと、 前記メインメモリから前記データが転送されたときこれらを記憶する n個(nは n>m の整数)で一組のバッファと、を備え、
同時に複数のデータ転送が実行されるとき、前記一組のバッファのうち第 1のバッフ ァが一方のデータの転送先に設定され、第 2のバッファが他方のデータの転送先に 設定されることを特徴とする情報処理システム。
[4] 装置全体を統括的に制御するメインプロセッサと、
同時に m個(mは m> lの整数)データ転送を制御する DMAコントローラと、 外部のメモリからデータが転送されたときこれらを記憶する n個(nは n>mの整数) で一組のバッファを有し、特定の処理を行う第 2プロセッサと、
を備える装置における方法であって、
前記一組のバッファのうち第 1のバッファを一方のデータの転送先に設定し、
第 2のバッファを他方のデータの転送先に設定し、
第 3のバッファに格納されたデータを使用した処理を前記第 2プロセッサに実行さ せることを特徴とする情報処理方法。
[5] 装置全体を統括的に制御するメインプロセッサと、
同時に m個(mは m> lの整数)データ転送を制御する DMAコントローラと、 外部のメモリからデータが転送されたときこれらを記憶する n個(nは n>mの整数) で一組のバッファを有し、特定の処理を行う第 2プロセッサと、
を備える装置で実行されるプログラムであって、
前記一組のバッファのうち第 1のバッファを一方のデータの転送先に設定し、 第 2のバッファを他方のデータの転送先に設定し、
第 3のバッファに格納されたデータを使用した処理を前記第 2プロセッサに実行さ せることを特徴とする情報処理プログラム。
[6] 特定の処理を行うプロセッサであって、
同時に m個(mは m> lの整数)データ転送を制御する DMAコントローラによって、 前記特定の処理を実行するためのデータが外部のメモリから当該プロセッサに転送 されるとき、これらを記憶するための n個(nは n>mの整数)で一組のバッファに対し て、
同時に複数のデータ転送が実行されるとき、前記一組のバッファのうち第 1のバッフ ァが一方のデータの転送先に設定され、第 2のバッファが他方のデータの転送先に 設定されることを特徴とするプロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/816,148 US7793012B2 (en) | 2005-05-20 | 2006-05-08 | Information processing unit, system and method, and processor |
EP06746094A EP1884874A4 (en) | 2005-05-20 | 2006-05-08 | INFORMATION PROCESSING UNIT, SYSTEM AND METHOD AND PROCESSOR |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005-148230 | 2005-05-20 | ||
JP2005148230A JP4836491B2 (ja) | 2005-05-20 | 2005-05-20 | 情報処理装置、システム、方法およびプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2006123547A1 true WO2006123547A1 (ja) | 2006-11-23 |
Family
ID=37431124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2006/309263 WO2006123547A1 (ja) | 2005-05-20 | 2006-05-08 | 情報処理装置、システム、方法およびプロセッサ |
Country Status (4)
Country | Link |
---|---|
US (1) | US7793012B2 (ja) |
EP (1) | EP1884874A4 (ja) |
JP (1) | JP4836491B2 (ja) |
WO (1) | WO2006123547A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017530444A (ja) * | 2014-08-21 | 2017-10-12 | クアルコム,インコーポレイテッド | グラフィックス処理におけるレンダリング対象コマンドの並べ替え |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2901618A1 (fr) * | 2006-05-24 | 2007-11-30 | St Microelectronics Sa | Controleur de dma, systeme sur puce comprenant un tel controleur de dma, procede d'echange de donnees par l'intermediaire d'un tel controleur de dma |
JP5041527B2 (ja) * | 2007-08-03 | 2012-10-03 | 株式会社ミマキエンジニアリング | データ転送装置、リクエスト発生装置、及びリクエスト発生方法 |
US9024957B1 (en) * | 2007-08-15 | 2015-05-05 | Nvidia Corporation | Address independent shader program loading |
JP2010165175A (ja) | 2009-01-15 | 2010-07-29 | Internatl Business Mach Corp <Ibm> | バスの使用権を制御する装置および方法 |
US8723877B2 (en) | 2010-05-20 | 2014-05-13 | Apple Inc. | Subbuffer objects |
JP2018011258A (ja) * | 2016-07-15 | 2018-01-18 | 日本電気株式会社 | 処理制御装置、処理制御方法及びプログラム |
US11113074B2 (en) * | 2019-06-28 | 2021-09-07 | Qualcomm Incorporated | System and method for modem-directed application processor boot flow |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10187413A (ja) * | 1996-12-26 | 1998-07-21 | Sony Corp | 制御装置および方法 |
JP2002259115A (ja) * | 2000-12-19 | 2002-09-13 | Matsushita Electric Ind Co Ltd | Fifoメモリ |
JP2002259324A (ja) * | 2001-02-28 | 2002-09-13 | Sharp Corp | データ処理装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613162A (en) * | 1995-01-04 | 1997-03-18 | Ast Research, Inc. | Method and apparatus for performing efficient direct memory access data transfers |
US5982672A (en) * | 1996-10-18 | 1999-11-09 | Samsung Electronics Co., Ltd. | Simultaneous data transfer through read and write buffers of a DMA controller |
US6347347B1 (en) | 1999-07-15 | 2002-02-12 | 3Com Corporation | Multicast direct memory access storing selected ones of data segments into a first-in-first-out buffer and a memory simultaneously when enabled by a processor |
US6678755B1 (en) * | 2000-06-30 | 2004-01-13 | Micron Technology, Inc. | Method and apparatus for appending memory commands during a direct memory access operation |
JP2002254729A (ja) * | 2001-03-02 | 2002-09-11 | Sharp Corp | 画像データのdma制御装置 |
JP2002312302A (ja) * | 2001-04-09 | 2002-10-25 | Denso Corp | 周辺装置 |
JP3743369B2 (ja) * | 2001-12-28 | 2006-02-08 | ソニー株式会社 | グラフィックス描画装置およびその方法 |
US20060031603A1 (en) * | 2004-08-09 | 2006-02-09 | Bradfield Travis A | Multi-threaded/multi-issue DMA engine data transfer system |
-
2005
- 2005-05-20 JP JP2005148230A patent/JP4836491B2/ja not_active Expired - Fee Related
-
2006
- 2006-05-08 EP EP06746094A patent/EP1884874A4/en not_active Ceased
- 2006-05-08 WO PCT/JP2006/309263 patent/WO2006123547A1/ja active Application Filing
- 2006-05-08 US US11/816,148 patent/US7793012B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10187413A (ja) * | 1996-12-26 | 1998-07-21 | Sony Corp | 制御装置および方法 |
JP2002259115A (ja) * | 2000-12-19 | 2002-09-13 | Matsushita Electric Ind Co Ltd | Fifoメモリ |
JP2002259324A (ja) * | 2001-02-28 | 2002-09-13 | Sharp Corp | データ処理装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP1884874A4 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017530444A (ja) * | 2014-08-21 | 2017-10-12 | クアルコム,インコーポレイテッド | グラフィックス処理におけるレンダリング対象コマンドの並べ替え |
Also Published As
Publication number | Publication date |
---|---|
EP1884874A4 (en) | 2009-01-14 |
EP1884874A1 (en) | 2008-02-06 |
JP2006323760A (ja) | 2006-11-30 |
JP4836491B2 (ja) | 2011-12-14 |
US7793012B2 (en) | 2010-09-07 |
US20080147993A1 (en) | 2008-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210049729A1 (en) | Reconfigurable virtual graphics and compute processor pipeline | |
US10949177B2 (en) | Method and system of a command buffer between a CPU and GPU | |
US6725457B1 (en) | Semaphore enhancement to improve system performance | |
JP6390021B2 (ja) | グラフィック処理ユニットのためのワークロードバッチサブミットメカニズム | |
WO2006123546A1 (ja) | グラフィックプロセッサ、情報処理装置 | |
WO2006123547A1 (ja) | 情報処理装置、システム、方法およびプロセッサ | |
US20090300324A1 (en) | Array type processor and data processing system | |
US9454397B2 (en) | Data processing systems | |
US7760205B2 (en) | Information processing apparatus for efficient image processing | |
KR20170125881A (ko) | 공유 셰이더 코어에서의 비동기 디스플레이 셰이더 기능 제공 | |
JP4346587B2 (ja) | システムシミュレーション方法 | |
EP1647887A2 (en) | Apparatus for efficient image processing | |
JP2001134752A (ja) | グラフィックプロセッサおよびグラフィックプロセッサにおけるデータ処理方法 | |
US9015719B2 (en) | Scheduling of tasks to be performed by a non-coherent device | |
CN115775198A (zh) | 多核gpu中的重叠几何形状处理 | |
CN109983435B (zh) | 图形处理方法及相关装置和设备 | |
JPH064314A (ja) | タスク間同期通信装置 | |
JP6223637B2 (ja) | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム | |
CN115904506B (zh) | 具有硬件流水线的处理器 | |
JPH1185673A (ja) | 共有バスの制御方法とその装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 11816148 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2006746094 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: RU |
|
WWP | Wipo information: published in national office |
Ref document number: 2006746094 Country of ref document: EP |