US20070088856A1 - Method and system for deferred command issuing in a computer system - Google Patents
Method and system for deferred command issuing in a computer system Download PDFInfo
- Publication number
- US20070088856A1 US20070088856A1 US11/581,975 US58197506A US2007088856A1 US 20070088856 A1 US20070088856 A1 US 20070088856A1 US 58197506 A US58197506 A US 58197506A US 2007088856 A1 US2007088856 A1 US 2007088856A1
- Authority
- US
- United States
- Prior art keywords
- command
- event
- returned
- issuing
- event tag
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Multi Processors (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Input (AREA)
- Information Transfer Systems (AREA)
Abstract
A method and system are disclosed for employing deferred command issuing in a computer system with multiple peripheral processors operating with a peripheral device driver embedded in a multi-threaded central processor. After issuing a first command with a first event tag by the peripheral device driver, a second command is generated for a first peripheral processor by the peripheral device driver following the issuing of the first command. The second command is stored awaiting for the first event tag being returned, and the second command is issued when the first event tag is returned if the first and second commands need to be synchronized.
Description
- This application claims the benefits of U.S. Patent Application Ser. No. 60/727,668, which was filed on Oct. 18, 2005 and entitled “Smart CPU Sync Technology for MultiGPU Solution.”
- This application also relates to U.S. patent application entitled “TRANSPARENT MULTI-BUFFERING IN MULTI-GPU GRAPHICS SUBSYSTEM”, U.S. patent application entitled “EVENT MEMORY ASSISTED SYNCHRONIZATION IN MULTI-GPU GRAPHICS SUBSYSTEM” and U.S. patent application entitled “METHOD AND SYSTEM FOR SYNCHRONIZING PARALLEL ENGINES IN A GRAPHICS PROCESSING UNIT”, all of which are commonly filed on the same day, and which are incorporated by reference in their entirety.
- The present invention relates generally to the synchronization between a computer's central processing units (CPUs) and peripheral processing units, and, more particularly, to the timing of command issuing.
- In a modern computer system, each peripheral functional module, such as audio or video, has its own dedicated processing subsystem, and the operations of these subsystems typically require direct control by computer's central processing unit (CPU). Besides, communication and synchronization among components of the subsystems are typically achieved through hardware connections. In an advanced graphics processing subsystem with two or more graphics processing units (GPUs), for instance, a CPU has to frequently evaluate the state of GPUs, and a next rendering command can only be issued when a previous or current command is finished. In other cases, when CPU(s) is calculating something for GPUs using multi-threaded technology, the GPUs may have to wait for the CPU to complete the calculation before executing commands that need the result from CPU(s). When one GPU requests data from another GPU, the transfer must be made through a direct hardware link or the bus, and controlled by the CPU, which then has to wait for the data transfer to complete before executing subsequent commands. Either CPU waiting for GPU or vice versa, the wait time is a waste and lowers the computer's overall performance.
- It is therefore desirable for a computer system to be able to detach hard waiting as much as possible from CPU's operations.
- In view of the foregoing, this invention provides a method and system to remove some of the wait time by the CPU, as well as some idle time in peripheral processing units. In other words, it increases parallelism between processors.
- A method and system are disclosed for employing deferred commands issuing in a computer system with multiple peripheral processors operating with a peripheral device driver embedded in one or more central processor(s). After issuing a first command with a first event tag by the peripheral device driver, a second command is generated for a first peripheral processor by the peripheral device driver following the issuing of the first command. The second command is stored awaiting for the first event tag to be returned, and the second command is issued when the first event tag is returned if the first and second commands need to be synchronized.
- The construction and method of operation of the invention, however, together with additional objects and advantages thereof will be best understood from the following description of specific embodiments when read in connection with the accompanying drawings.
-
FIG. 1 is a block diagram of a part of a traditional computer system. -
FIG. 2 is a block diagram of a part of a computer system according to one embodiment of the invention. -
FIG. 3 illustrates commands and event-tag flowing according to one embodiment of the invention. -
FIG. 4A is a flow chart showing a command block generating and a synchronization mechanism according to one embodiment of the present invention. -
FIGS. 4B and 4C are flow charts illustrating two different driver subroutines within each command block and execution according to one embodiment of the present invention. -
FIGS. 5A and 5B are command timing diagrams for showing time saving effects of deferred-command-issuing according to one embodiment of the present invention. - Detailed information with regard to the operation of the GPU in the computer system is further described in U.S. patent application entitled “TRANSPARENT MULTI-BUFFERING IN MULTI-GPU GRAPHICS SUBSYSTEM”, U.S. patent application entitled “EVENT MEMORY ASSISTED SYNCHRONIZATION IN MULTI-GPU GRAPHICS SUBSYSTEM” and U.S. patent application entitled “METHOD AND SYSTEM FOR SYNCHRONIZING PARALLEL ENGINES IN A GRAPHICS PROCESSING UNIT”, all of which are commonly filed on the same day, and which are incorporated by reference in their entirety.
-
FIG. 1 illustrates a part of atraditional computer system 100. In such a system, aperipheral device driver 110 is just a program, functioning essentially like an instruction manual that provides the operating system with information on how to control and communicate withspecial processors peripheral subsystem 140. Thedriver 110 does not have any control function, which is instead carried out by one or more central processor(s) (CPU) 150. Communications between thespecial processors hardware connection 160 or through the bus 170. - As an embodiment of present invention,
FIG. 2 illustrates a part of amulti-processor computer system 200 with adriver 210 embedded in one or more central processor(s) 220. Here, the ‘embedded’ means that the driver actually runs in the CPU and employs some of the CPU processing capability, so that the driver can generate commands to be stored in the buffer, assign event-tags when synchronizations with other commands are needed, issue the commands and monitor the return of the event-tags, all without CPU hard wait. Such driver implementation does not require extensive hardware support, so it is also cost effective. - The
computer system 200 also employs acommand buffer 230, which stores immediate commands sent by thedriver 210. Thecommand buffer 230 can be just a memory space in amain memory 290 or another memory located anywhere, and can be dynamically allocated by thedriver 210. With the processing power of the central processor(s) 220, thedriver 210 directs command buffering in and subsequently issuing from thecommand buffer 230, as well as synchronization amongspecial processors -
FIG. 3 is a diagram showing the flow of commands among the CPU, the buffers and the special processors according to one embodiment of the present invention. For illustration purposes, it provides more details on command buffering. An embeddeddriver 320 generates commands along with event-tags, and then sent them to commandbuffers special processors 350 are sent to commandbuffer1 330, and commands and event-tags forspecial processor2 360 are sent tocommand buffer2 340, so that the commands for different special processors can be issued independently and simultaneously. When a current command needs to synchronize with another command execution, thedriver 320 generates an event-tag alongside the current command. Processors, either peripheralspecial processors -
FIG. 4A presents a flow chart detailing how thegraphics driver 320 synchronizes command issuing with GPUs and CPU. Here, thedriver 320 generates command blocks insteps 410A through 470A continuously without any delay on the CPU side. Some of these commands are to be stored in command buffers before being issued to GPUs for execution. For example, command block[n−1] 410A has a command to a first GPU with a request to return an event-tag[i]. The first GPU will return the event-tag[i] upon the completion of command block[n−1] 410A. Upon detecting the event-tag[i], another command that needs to synchronize with the command block[n−1] 410A, can then be issued from the command buffer bydriver 320. In this way, CPU's hard wait for a synchronization event is eliminated. The term “deferred command issuing” refers generally to this command buffering process. -
FIG. 4A also shows a command block[n+m] 440A that needs to synchronize with another CPU thread, as well as a command block[n+m+k] 470A that needs to synchronize with a second GPU. In both cases, thedriver 320's operations of storing commands, checking event-tags and issuing commands are the same as in the above first GPU case. - Within each command block,
driver 320 executes certain subroutines, such as generating a new command and an associated event-tag if needed, checking on returned event-tags, buffering the new command and issuing a buffered command or directly issuing the new command if there is no outstanding event-tag. These subroutines can be executed in various sequences.FIGS. 4B and 4C are two examples for conducting such subroutines. - Referring to
FIG. 3 andFIG. 4B ,driver 320 first generates a current command instep 410B, and then checks for any returned event-tag instep 420B. If there is a returned event-tag, and if a related command is in a buffer, then thedriver 320 issues the buffered command along with its own event-tag if present, as shown instep driver 320 checks if the current command is related to the returned event-tag instep 450B. If so, it issues the current command (step 470B), and if not, it buffers the current command (step 480B). - On the other hand, if there is no returned event-tag in the buffer,
driver 320 then checks for any outstanding event-tag instep 460B. In case there is an outstanding event-tag that the current command issue will depend on or is related to,driver 320 then buffers the current command (step 480B). In case there is no outstanding related event-tag,driver 320 directly issues the current command. Note that in all cases of command buffering or issuing, the associated event-tag if present, is also buffered or issued along with the command. -
FIG. 4C shows another subroutine according to another embodiment of the present invention where thedriver 320 first checks for any returned event-tag instep 410C. If there is a returned event-tag, and if a related command is in the buffer, thendriver 320 issues the buffered command (step 430C). If there is no returned event-tag (step 410C) or there is no related command in buffer (step 420C), thendriver 320 generates a current command (step 445C). If the current command is related to any returned event-tag (step 450C), then the driver issues the current command (step 480C). If the current command is not related to any returned event-tag, then it is also checked to see whether there is any outstanding event-tag that relates to the current command (step 460C). In case there is an outstanding related event-tag,driver 320 buffers the current command along with its event-tag if present (step 470C), otherwisedriver 320 issues the current command (step 480C) with its event-tag if present (step 470C). The aforementioned event-tag checking process can be limited to only those processors to which commands with event-tags have been sent previously. - In both cases as shown in
FIGS. 4B and 4C , and as an alternative, a current command is always buffered if there is any outstanding event-tag. Ifdriver 320 checks only the event-tag buffer, then before an outstanding event-tag returns,driver 320 really has no way to know if it is related to a newly generated current command. So that the current command has to be buffered if there is any outstanding event-tag. -
FIGS. 5A and 5B are timing diagrams illustrating deferred-command-issuing that reduces CPU wait-time and GPU idle-time.FIG. 5A represents the situation in which a deferred-command-issuing process is not employed. In this case, the CPU generates commands intime slots time slots time slots time slots time slot 510A can only be initiated after thetime slot 552A, and similarly, thetime slot 520A is aftertime slot 562A. The CPU has to wait while a previously issued command is executing. As shown, the time intervals between two adjacent time slots are either the CPU wait time or the GPU idle time. For instance, the interval between 510A and 502A is CPU's wait time, and the interval between 560A and 550A is GPU1's idle time. - Contrasting to
FIG. 5A andFIG. 5B illustrates the timing relationships in the situation where the deferred-command-issuing process is employed to allow the CPU to generate commands continuously to command buffers without waiting for any GPU to complete a command execution. In this case, the CPU generates commands intime slots time slots time slots time slots time slot 510B is brought up to follow the completion of thetime slot 502B, which is prior to the end ofGPU2 time slot 552B. But the CPU's fifth command attime slot 520B still waits for thetime slot 552B to end, because there is a synchronization need between this particular command and the GPU2 execution, so are the command at 530B and the GPU2 execution at 562B. In such a command processing system, especially for a graphics system employing such a deferred-command-issuing process, benefits are obtained as a subsequent command is already generated and waiting in the command buffer for the execution by the GPU. On the other hand, the GPUs do not have to wait for the CPU to generate commands, and can execute a subsequent command right after a current one finishes. This is further illustrated in the case for GPU2 attime slot time slots - To quantify time saved by the deferred-command-issuing process employed, if it is assumed that the CPU command generating time is ‘t’, and the execution time of GPU1 and GPU2 are T1 and T2 (assume T1<T2, for easing the evaluation), respectively, as shown in
FIG. 5A , a system without using the deferred-command-issuing takes (3*T2+3*t) to complete three command cycles. The system with the deferred-command-issuing ofFIG. 5B shortens the three-cycle time to (3*T2+t). So that the time saving for 3 cycles is 2*t. In general, the saving is (n−1)*t for n number of command cycles. - A comparison between
FIGS. 5A and 5B also shows a saving in GPU idle time. InFIG. 5A , GPU1 idle time betweentime slots FIG. 5B , GPU1 idle time between the corresponding time slots becomes T2−T1, or a saving of t. GPU2 idle time is completely eliminated, also a saving of t. - This invention provides many different embodiments, or examples, for implementing different features of the invention. Specific examples of components and methods are described to help clarify the disclosure. These are, of course, merely examples and are not intended to limit the disclosure from that described in the claims.
Claims (17)
1. A method for deferred command issuing in a computer system with one or multi special purpose operating with a device driver running on one or multiple central processors, the method comprising:
issuing a first command with a first event tag by the peripheral device driver;
generating a second command for a first peripheral processor by the peripheral device driver following the issuing of the first command;
storing the second command awaiting for the first event tag being returned;
and issuing the second command when the first event tag is returned.
2. The method of claim 1 , wherein storing the second command further includes storing the second command in a buffer associated with the first processor.
3. The method of claim 2 , further comprising:
generating a third command for a second processor; and
storing the third command in a buffer associated there with.
4. The method of claim 3 , wherein the buffers associated with the first and second processors are different.
5. The method of claim 1 , further comprising checking whether the generated second command relates to the first command requiring the first event tag to return before the second command is being issued.
6. The method of claim 5 , wherein checking further includes:
checking whether the first event tag has returned; and
checking whether the first event tag is outstanding if it is not yet returned and if it relates to the second command.
7. The method of claim 6 , wherein checking whether the first event tag has returned is performed after the generating the second command.
8. The method of claim 6 , wherein checking whether the first event tag has returned is performed prior to the generating the second command.
9. A method for deferred command issuing in a computer system with multiple graphics processors operating with a graphics driver embedded in a multi-threaded central processor, the method comprising:
issuing a first command with a first event tag by the graphics driver;
generating a second command to a first processor of the computer system by the graphics driver following the issuing of the first command;
storing the second command awaiting for the first event tag is returned; and
issuing the second command when the first event tag is returned.
10. The method of claim 9 , wherein storing the second command further includes storing the second command in a buffer associated with the first processor.
11. The method of claim 10 , further comprising:
generating a third command to a second processor; and
storing the third command in a buffer associated there with.
12. The method of claim 11 , wherein the buffers associated with the first and second processors are different.
13. The method of claim 9 , further comprises checking whether the generated second command needs to wait for the first event tag to return.
14. The method of claim 13 , wherein the checking further includes:
checking whether the first event tag has returned; and
checking whether the first event tag is outstanding if it has not returned.
15. The method of claim 14 , wherein checking whether the first event tag has returned is performed after the generating the second command.
16. The method of claim 14 , wherein checking whether the first event tag has returned is performed prior to the generating the second command.
17. A system for supporting deferred command issuing in an advanced computer system, the system comprising:
a multi-threaded central processing unit (CPU);
a graphics subsystem with multiple graphics processing units;
at least one command buffer for storing commands and associated event-tags; and
a graphics driver embedded in the CPU for generating commands to be stored in the command buffers, assigning event-tags when synchronizations are needed, controlling command issuing and monitoring event-tag returns.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/581,975 US20070088856A1 (en) | 2005-10-18 | 2006-10-17 | Method and system for deferred command issuing in a computer system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US72766805P | 2005-10-18 | 2005-10-18 | |
US11/581,975 US20070088856A1 (en) | 2005-10-18 | 2006-10-17 | Method and system for deferred command issuing in a computer system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20070088856A1 true US20070088856A1 (en) | 2007-04-19 |
Family
ID=38214146
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/581,975 Abandoned US20070088856A1 (en) | 2005-10-18 | 2006-10-17 | Method and system for deferred command issuing in a computer system |
US11/581,973 Active 2029-09-17 US7903120B2 (en) | 2005-10-18 | 2006-10-17 | Method and system for synchronizing parallel engines in a graphics processing unit |
US11/582,020 Active 2028-11-19 US7812849B2 (en) | 2005-10-18 | 2006-10-17 | Event memory assisted synchronization in multi-GPU graphics subsystem |
US11/582,019 Active 2029-04-19 US7889202B2 (en) | 2005-10-18 | 2006-10-17 | Transparent multi-buffering in multi-GPU graphics subsystem |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/581,973 Active 2029-09-17 US7903120B2 (en) | 2005-10-18 | 2006-10-17 | Method and system for synchronizing parallel engines in a graphics processing unit |
US11/582,020 Active 2028-11-19 US7812849B2 (en) | 2005-10-18 | 2006-10-17 | Event memory assisted synchronization in multi-GPU graphics subsystem |
US11/582,019 Active 2029-04-19 US7889202B2 (en) | 2005-10-18 | 2006-10-17 | Transparent multi-buffering in multi-GPU graphics subsystem |
Country Status (3)
Country | Link |
---|---|
US (4) | US20070088856A1 (en) |
CN (4) | CN100489820C (en) |
TW (4) | TWI322354B (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100321396A1 (en) * | 2009-06-18 | 2010-12-23 | Shuang Xu | Methods and systems for automatically switching monitor scene modes |
US8056093B1 (en) * | 2006-12-07 | 2011-11-08 | Nvidia Corporation | Asynchronous kernel processing for a graphics processing system |
US20130187932A1 (en) * | 2012-01-23 | 2013-07-25 | Microsoft Corporation | Para-virtualized asymmetric gpu processors |
US20150012670A1 (en) * | 2013-07-05 | 2015-01-08 | Phison Electronics Corp. | Command executing method, connector and memory storage device |
WO2016200540A1 (en) * | 2015-06-12 | 2016-12-15 | Intel Corporation | Facilitating efficient graphics command generation and execution for improved graphics performance at computing devices |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8390631B2 (en) * | 2008-06-11 | 2013-03-05 | Microsoft Corporation | Synchronizing queued data access between multiple GPU rendering contexts |
US8368701B2 (en) * | 2008-11-06 | 2013-02-05 | Via Technologies, Inc. | Metaprocessor for GPU control and synchronization in a multiprocessor environment |
US8397241B2 (en) * | 2008-11-13 | 2013-03-12 | Intel Corporation | Language level support for shared virtual memory |
US9075559B2 (en) | 2009-02-27 | 2015-07-07 | Nvidia Corporation | Multiple graphics processing unit system and method |
US9135675B2 (en) | 2009-06-15 | 2015-09-15 | Nvidia Corporation | Multiple graphics processing unit display synchronization system and method |
JP2011048579A (en) * | 2009-08-26 | 2011-03-10 | Univ Of Tokyo | Image processor and image processing method |
US8803897B2 (en) * | 2009-09-03 | 2014-08-12 | Advanced Micro Devices, Inc. | Internal, processing-unit memory for general-purpose use |
US8305380B2 (en) * | 2009-09-09 | 2012-11-06 | Advanced Micro Devices, Inc. | Managing resources to facilitate altering the number of active processors |
US20110063305A1 (en) * | 2009-09-16 | 2011-03-17 | Nvidia Corporation | Co-processing techniques on heterogeneous graphics processing units |
US20110084982A1 (en) * | 2009-10-12 | 2011-04-14 | Sony Corporation | Apparatus and Method for Displaying Image Data With Memory Reduction |
US8514235B2 (en) * | 2010-04-21 | 2013-08-20 | Via Technologies, Inc. | System and method for managing the computation of graphics shading operations |
CN102497591B (en) * | 2011-11-11 | 2015-02-18 | 青岛海信移动通信技术股份有限公司 | Terminal and method for realizing wireless screen transmission between terminal and TV |
US9256915B2 (en) * | 2012-01-27 | 2016-02-09 | Qualcomm Incorporated | Graphics processing unit buffer management |
US9384711B2 (en) | 2012-02-15 | 2016-07-05 | Microsoft Technology Licensing, Llc | Speculative render ahead and caching in multiple passes |
KR101308102B1 (en) * | 2012-02-24 | 2013-09-12 | (주)유브릿지 | Portable terminal and control method thereof |
US8847970B2 (en) | 2012-04-18 | 2014-09-30 | 2236008 Ontario Inc. | Updating graphical content based on dirty display buffers |
US9230517B2 (en) * | 2012-05-31 | 2016-01-05 | Microsoft Technology Licensing, Llc | Virtual surface gutters |
US9177533B2 (en) | 2012-05-31 | 2015-11-03 | Microsoft Technology Licensing, Llc | Virtual surface compaction |
US9286122B2 (en) | 2012-05-31 | 2016-03-15 | Microsoft Technology Licensing, Llc | Display techniques using virtual surface allocation |
US9235925B2 (en) | 2012-05-31 | 2016-01-12 | Microsoft Technology Licensing, Llc | Virtual surface rendering |
CN102750665B (en) * | 2012-06-01 | 2014-09-24 | 上海鼎为电子科技(集团)有限公司 | Graphic processing method, graphic processing device mobile terminal |
US9307007B2 (en) | 2013-06-14 | 2016-04-05 | Microsoft Technology Licensing, Llc | Content pre-render and pre-fetch techniques |
US9507961B2 (en) * | 2013-07-01 | 2016-11-29 | Qualcomm Incorporated | System and method for providing secure access control to a graphics processing unit |
US9818379B2 (en) | 2013-08-08 | 2017-11-14 | Nvidia Corporation | Pixel data transmission over multiple pixel interfaces |
JP6580380B2 (en) * | 2015-06-12 | 2019-09-25 | オリンパス株式会社 | Image processing apparatus and image processing method |
CN106600521A (en) * | 2016-11-30 | 2017-04-26 | 宇龙计算机通信科技(深圳)有限公司 | Image processing method and terminal device |
WO2018119602A1 (en) * | 2016-12-26 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | Rendering method and device |
KR101969219B1 (en) * | 2017-04-27 | 2019-04-15 | 재단법인대구경북과학기술원 | Method and apparatus for frequent pattern mining |
KR102098253B1 (en) * | 2018-02-13 | 2020-04-07 | 재단법인대구경북과학기술원 | System and method for large-scale frequent pattern mining on distributed systems |
CN109300426A (en) * | 2018-03-30 | 2019-02-01 | 温州长江汽车电子有限公司 | A kind of double TFT screen display systems and its display methods based on MCU |
CN109743453B (en) * | 2018-12-29 | 2021-01-05 | 出门问问信息科技有限公司 | Split screen display method and device |
CN112231018B (en) * | 2020-12-15 | 2021-03-16 | 北京壁仞科技开发有限公司 | Method, computing device, and computer-readable storage medium for offloading data |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5668958A (en) * | 1995-09-12 | 1997-09-16 | International Business Machines Corporation | Heterogeneous filing system with common API and reconciled file management rules |
US6079013A (en) * | 1998-04-30 | 2000-06-20 | International Business Machines Corporation | Multiprocessor serialization with early release of processors |
US6078339A (en) * | 1998-02-10 | 2000-06-20 | Intel Corporation | Mutual exclusion of drawing engine execution on a graphics device |
US20050041031A1 (en) * | 2003-08-18 | 2005-02-24 | Nvidia Corporation | Adaptive load balancing in a multi-processor graphics processing system |
US20050066074A1 (en) * | 2003-09-20 | 2005-03-24 | Samsung Electronics Co., Ltd. | Communication device and method having a common platform |
US7015915B1 (en) * | 2003-08-12 | 2006-03-21 | Nvidia Corporation | Programming multiple chips from a command buffer |
US20060230205A1 (en) * | 2005-04-06 | 2006-10-12 | Toshiba America Electronic Components | Back-off timing mechanism |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2542392B2 (en) * | 1987-07-31 | 1996-10-09 | シャープ株式会社 | Character drawing device |
US4949280A (en) * | 1988-05-10 | 1990-08-14 | Battelle Memorial Institute | Parallel processor-based raster graphics system architecture |
US5519825A (en) * | 1993-11-16 | 1996-05-21 | Sun Microsystems, Inc. | Method and apparatus for NTSC display of full range animation |
US5878216A (en) * | 1995-05-01 | 1999-03-02 | Intergraph Corporation | System and method for controlling a slave processor |
US5657478A (en) * | 1995-08-22 | 1997-08-12 | Rendition, Inc. | Method and apparatus for batchable frame switch and synchronization operations |
US5801717A (en) | 1996-04-25 | 1998-09-01 | Microsoft Corporation | Method and system in display device interface for managing surface memory |
US5933155A (en) * | 1996-11-06 | 1999-08-03 | Silicon Graphics, Inc. | System and method for buffering multiple frames while controlling latency |
US6157395A (en) * | 1997-05-19 | 2000-12-05 | Hewlett-Packard Company | Synchronization of frame buffer swapping in multi-pipeline computer graphics display systems |
US6515662B1 (en) * | 1998-07-16 | 2003-02-04 | Canon Kabushiki Kaisha | Computer apparatus for providing stereoscopic views from monographic images and method |
US6243107B1 (en) | 1998-08-10 | 2001-06-05 | 3D Labs Inc., Ltd. | Optimization of a graphics processor system when rendering images |
US6724390B1 (en) * | 1999-12-29 | 2004-04-20 | Intel Corporation | Allocating memory |
US6747654B1 (en) * | 2000-04-20 | 2004-06-08 | Ati International Srl | Multiple device frame synchronization method and apparatus |
US6828975B2 (en) * | 2001-03-01 | 2004-12-07 | Microsoft Corporation | Method and system for managing graphics objects in a graphics display system |
US20020126122A1 (en) * | 2001-03-12 | 2002-09-12 | Yet Kwo-Woei | Apparatus and method for minimizing the idle time of a computer graphic system using hardware controlled flipping |
US6683614B2 (en) * | 2001-12-21 | 2004-01-27 | Hewlett-Packard Development Company, L.P. | System and method for automatically configuring graphics pipelines by tracking a region of interest in a computer graphical display system |
US6919896B2 (en) * | 2002-03-11 | 2005-07-19 | Sony Computer Entertainment Inc. | System and method of optimizing graphics processing |
US7388581B1 (en) * | 2003-08-28 | 2008-06-17 | Nvidia Corporation | Asynchronous conditional graphics rendering |
US7095416B1 (en) * | 2003-09-22 | 2006-08-22 | Microsoft Corporation | Facilitating performance analysis for processing |
US7545380B1 (en) * | 2004-12-16 | 2009-06-09 | Nvidia Corporation | Sequencing of displayed images for alternate frame rendering in a multi-processor graphics system |
US7522167B1 (en) * | 2004-12-16 | 2009-04-21 | Nvidia Corporation | Coherence of displayed images for split-frame rendering in multi-processor graphics system |
US7383412B1 (en) * | 2005-02-28 | 2008-06-03 | Nvidia Corporation | On-demand memory synchronization for peripheral systems with multiple parallel processors |
-
2006
- 2006-10-16 TW TW095138039A patent/TWI322354B/en active
- 2006-10-17 US US11/581,975 patent/US20070088856A1/en not_active Abandoned
- 2006-10-17 US US11/581,973 patent/US7903120B2/en active Active
- 2006-10-17 US US11/582,020 patent/US7812849B2/en active Active
- 2006-10-17 CN CNB2006101359411A patent/CN100489820C/en active Active
- 2006-10-17 US US11/582,019 patent/US7889202B2/en active Active
- 2006-10-18 TW TW095138470A patent/TWI329845B/en active
- 2006-10-18 CN CNB2006101355957A patent/CN100495435C/en active Active
- 2006-10-18 CN CNB2006101355923A patent/CN100568277C/en active Active
- 2006-10-18 TW TW095138471A patent/TWI328779B/en active
- 2006-10-18 CN CN2006101355904A patent/CN1991903B/en active Active
- 2006-10-18 TW TW095138378A patent/TWI354240B/en active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5668958A (en) * | 1995-09-12 | 1997-09-16 | International Business Machines Corporation | Heterogeneous filing system with common API and reconciled file management rules |
US6078339A (en) * | 1998-02-10 | 2000-06-20 | Intel Corporation | Mutual exclusion of drawing engine execution on a graphics device |
US6079013A (en) * | 1998-04-30 | 2000-06-20 | International Business Machines Corporation | Multiprocessor serialization with early release of processors |
US7015915B1 (en) * | 2003-08-12 | 2006-03-21 | Nvidia Corporation | Programming multiple chips from a command buffer |
US20050041031A1 (en) * | 2003-08-18 | 2005-02-24 | Nvidia Corporation | Adaptive load balancing in a multi-processor graphics processing system |
US20050066074A1 (en) * | 2003-09-20 | 2005-03-24 | Samsung Electronics Co., Ltd. | Communication device and method having a common platform |
US20060230205A1 (en) * | 2005-04-06 | 2006-10-12 | Toshiba America Electronic Components | Back-off timing mechanism |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8056093B1 (en) * | 2006-12-07 | 2011-11-08 | Nvidia Corporation | Asynchronous kernel processing for a graphics processing system |
US20100321396A1 (en) * | 2009-06-18 | 2010-12-23 | Shuang Xu | Methods and systems for automatically switching monitor scene modes |
US9087469B2 (en) | 2009-06-18 | 2015-07-21 | Nvidia Corporation | Methods and systems for automatically switching monitor scene modes |
US20130187932A1 (en) * | 2012-01-23 | 2013-07-25 | Microsoft Corporation | Para-virtualized asymmetric gpu processors |
US8692832B2 (en) * | 2012-01-23 | 2014-04-08 | Microsoft Corporation | Para-virtualized asymmetric GPU processors |
US20150012670A1 (en) * | 2013-07-05 | 2015-01-08 | Phison Electronics Corp. | Command executing method, connector and memory storage device |
US9424206B2 (en) * | 2013-07-05 | 2016-08-23 | Phison Electronics Corp. | Command executing method, connector and memory storage device |
WO2016200540A1 (en) * | 2015-06-12 | 2016-12-15 | Intel Corporation | Facilitating efficient graphics command generation and execution for improved graphics performance at computing devices |
US9916634B2 (en) | 2015-06-12 | 2018-03-13 | Intel Corporation | Facilitating efficient graphics command generation and execution for improved graphics performance at computing devices |
Also Published As
Publication number | Publication date |
---|---|
TWI329845B (en) | 2010-09-01 |
US20070091099A1 (en) | 2007-04-26 |
TWI328779B (en) | 2010-08-11 |
CN101025717A (en) | 2007-08-29 |
CN1991903A (en) | 2007-07-04 |
US7903120B2 (en) | 2011-03-08 |
CN1991903B (en) | 2010-05-12 |
CN100489820C (en) | 2009-05-20 |
CN1991906A (en) | 2007-07-04 |
TW200708971A (en) | 2007-03-01 |
TWI354240B (en) | 2011-12-11 |
US20070091098A1 (en) | 2007-04-26 |
CN100495435C (en) | 2009-06-03 |
CN100568277C (en) | 2009-12-09 |
TW200737035A (en) | 2007-10-01 |
US20070091097A1 (en) | 2007-04-26 |
TW200821979A (en) | 2008-05-16 |
TW200821978A (en) | 2008-05-16 |
US7889202B2 (en) | 2011-02-15 |
US7812849B2 (en) | 2010-10-12 |
CN1991904A (en) | 2007-07-04 |
TWI322354B (en) | 2010-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070088856A1 (en) | Method and system for deferred command issuing in a computer system | |
US8146108B2 (en) | Driver assisted asynchronous command processing | |
US7975272B2 (en) | Thread queuing method and apparatus | |
US8997103B2 (en) | N-way memory barrier operation coalescing | |
US7313673B2 (en) | Fine grained multi-thread dispatch block mechanism | |
US10592300B2 (en) | Method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization | |
JP2005071109A (en) | Synchronization method for multiprocessor system | |
CN107391400B (en) | Memory expansion method and system supporting complex memory access instruction | |
US6243107B1 (en) | Optimization of a graphics processor system when rendering images | |
US9229715B2 (en) | Method and apparatus for efficient inter-thread synchronization for helper threads | |
US9886278B2 (en) | Computing architecture and method for processing data | |
US7743223B2 (en) | Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system | |
JP3523286B2 (en) | Sequential data transfer type memory and computer system using sequential data transfer type memory | |
KR20140030260A (en) | Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines | |
EP2284711A1 (en) | Decoupled store address and data in a multiprocessor system | |
JPH0749781A (en) | Method and equipment for simplification of interlock hardware | |
WO2017088456A1 (en) | Pipeline data synchronization apparatus and method for multi-input multi-output processor | |
EP0679990A1 (en) | A computer apparatus having a means to force sequential instruction execution | |
US20100026691A1 (en) | Method and system for processing graphics data through a series of graphics processors | |
US20110066813A1 (en) | Method And System For Local Data Sharing | |
US6097403A (en) | Memory including logic for operating upon graphics primitives | |
US20040117597A1 (en) | Method and apparatus for providing fast remote register access in a clustered VLIW processor using partitioned register files | |
CN117501254A (en) | Providing atomicity for complex operations using near-memory computation | |
CN111857830B (en) | Method, system and storage medium for designing path for forwarding instruction data in advance | |
US8051275B2 (en) | Result path sharing between a plurality of execution units within a processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |