EP0617402A2 - Verfahren und Einrichtung zur Beschleunigung von Bildfenstern in graphischen Systemen - Google Patents

Verfahren und Einrichtung zur Beschleunigung von Bildfenstern in graphischen Systemen Download PDF

Info

Publication number
EP0617402A2
EP0617402A2 EP94201810A EP94201810A EP0617402A2 EP 0617402 A2 EP0617402 A2 EP 0617402A2 EP 94201810 A EP94201810 A EP 94201810A EP 94201810 A EP94201810 A EP 94201810A EP 0617402 A2 EP0617402 A2 EP 0617402A2
Authority
EP
European Patent Office
Prior art keywords
data
block
frame buffer
host
pipeline
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.)
Granted
Application number
EP94201810A
Other languages
English (en)
French (fr)
Other versions
EP0617402B1 (de
EP0617402A3 (de
Inventor
David Pinedo
Ronald D. Larson
Darel N. Emmot
Byron A. Alcorn
Desi Rhoden
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of EP0617402A2 publication Critical patent/EP0617402A2/de
Publication of EP0617402A3 publication Critical patent/EP0617402A3/de
Application granted granted Critical
Publication of EP0617402B1 publication Critical patent/EP0617402B1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory

Definitions

  • This invention relates to computer workstation window systems. More specifically, this invention relates to method and apparatus for accelerating graphics primitive rendering on multitasking workstations that utilize graphics pipelines.
  • Computer workstations provide system users with powerful tools to support a number of functions.
  • An example of one of the more useful functions which workstations provide is the ability to perform highly detailed graphics simulations for a variety of applications. Graphics simulations are particularly useful for engineers and designers performing computer aided design (CAD) and computer aided management (CAM) tasks.
  • CAD computer aided design
  • CAM computer aided management
  • Modern workstations having graphics capabilities utilize "window” systems to accomplish graphics manipulations.
  • An emerging standard for graphics window systems is the "X” window system developed at the Massachusetts institute of Technology.
  • the X window system is described in K. Akeley and T. Jermoluk, "High-Performance Polygon Rendering", Computer Graphics , 239-246, (August 1988).
  • Modern window systems in graphics workstations must provide high-performance, multiple windows yet maintain a high degree of user interactivity with the workstation.
  • software solutions for providing increased user interactivity with the window system have been implemented in graphics workstations.
  • software solutions which increase user interactivity with the system tend to increase processor work time, thereby increasing the time in which graphics renderings to the screen in the workstation may be accomplished.
  • a primary function of window systems in graphics workstations is to provide the user with simultaneous access to multiple processes on the workstation.
  • each of these processes provides an interface to the user through its own area onto the workstation display.
  • the overall result is an increase in user productivity since the user can manage more than one task at a time with multiple windows.
  • each process associated with a window views the workstation resources as if it were the sole owner.
  • resources such as the processing unit, memory, peripherals and graphics hardware must be shared between these processes in a manner which prevents interprocess conflicts on the workstation.
  • Graphics workstations generally utilize graphics "pipelines" which interconnect the various components of the system.
  • a graphics pipeline is a series of data processing elements which communicate graphics commands through the graphics system.
  • Today, graphics pipelines and window systems are evolving to support multitasking workstations.
  • the typical graphics pipeline interconnects a "host” processor to the graphics system which provides the various graphics commands available to the system and which also interfaces with the user.
  • the host processor is interfaced through the graphics pipeline to a "transform engine” which generally comprises a number of parallel floating point processors.
  • the transform engine performs a multitude of system tasks including context management, matrix transformation calculations, light modeling and radiosity computations, and control of vector and polygon rendering hardware.
  • a "graphics primitive” is a basic component of a graphics picture such as, for example, a polygon or vector. All graphics pictures are formed from combinations of these graphics primitives.
  • Many schemes may be utilized to perform graphics primitives rendering.
  • One such scheme is the "spline tessellation" scheme utilized in the TURBO SRX graphics systems provided by the Hewlett-Packard Company Graphics Technology Division, Fort Collins, Colorado. Regardless of the type of graphics rendering scheme utilized by the graphics workstation, the transform engine is essential in managing graphics rendering.
  • a graphics “frame buffer” is interfaced further down the pipeline from the host processor and transform engine in the graphics window system.
  • a “frame buffer” generally comprises a plurality of video random access memory (VRAM) computer chips which store information concerning pixel activation on the display corresponding to the particular graphics primitives which will be rendered to the screen.
  • VRAM video random access memory
  • the frame buffer contains all of the data graphics information which will be written onto the windows, and stores this information until the graphics system is prepared to render this information to the workstation's screen.
  • the frame buffer is generally dynamic and is periodically refreshed until the information stored on it is rendered to the screen.
  • the host and frame buffer have associated bandwidths. The bandwidth is a measure of the rate of data flow over a data path.
  • a graphics context consists of the current set of attributes, matrix stack, light sources, shading control, spline basis matrices, and other hardware state information.
  • Previous graphics systems were generally only able to support a single graphics context at a time end required the host's software to perform all of the context switching.
  • software context switching requires the host to store the context for each active process in virtual memory, write the context to the device when the process is active, and read the context back in the system. This process is extremely time consuming and inefficient, and does not adequately support high level graphics operations in the graphics system.
  • window operations which theoretically should be interactive with the user oftentimes force the user to wait while graphics primitives are being rendered.
  • graphics pipelines and graphics workstations are evolving to support more complex primitives and longer pipelines, pipeline latency and pipeline flushing now present prohibitive problems in the ongoing effort to increasing pipeline throughput and efficiency.
  • a computer systems which provide for interrupting data flow between a rendering circuitry and a frame buffer while allowing data to continue to flow from a host to a transform engine and the rendering circuitry, comprising the host and a graphic subsystem having the frame buffer, a pipeline and a pipeline bypass.
  • the system comprises a marker register means interfaced with the pipeline for tracking the progress of graphics data from the host through the pipeline to the frame buffer.
  • a systems for eliminating a need for flushing a graphics pipeline comprising host processor means for providing graphics commands for controlling rendering of data in a frame buffer, pipeline means interfaced with the host processor means for processing data from the host processor means and communicating the data to a frame buffer, marker register means interfaced with the pipeline means for tracking data output, and pipeline bypass means bypassing the pipeline means for providing access of data to the frame buffer, thereby improving timeliness of the data passed from the host processor means to the frame buffer through the pipeline means.
  • Methods of tracking and monitoring data commands in the pipeline system having a marker register and a frame buffer are also provided in accordance with this invention.
  • the methods comprise establishing a value for a marker, transmitting a data block through the pipeline, inserting a marker command with the marker value into the pipeline, recording the marker value at predetermined registers along the pipeline, and checking the marker register at predetermined points along the pipeline.
  • Computer work station window systems comprising a host, a graphic subsystem, a frame buffer, a pipeline graphics processor and a pipeline bypass are provided in accordance with this invention.
  • the computer work stations comprise address manipulator means interfaced with the pipeline bypass for transforming graphics rendered on windows according to window relative addresses to graphics rendered on the frame buffer according to frame buffer relative addresses.
  • systems for rendering primitives, initially rendered in window relative addresses, to a graphics frame buffer comprise host processor means for providing graphics commands to render primitives in window relative addresses, scan converter means interfaced with the host processor means for rendering the graphics primitives through a graphics pipeline on the graphics frame buffer according to window relative addresses, pipeline bypass means interfaced with the host processor means for bussing window offset addresses from the host, the window offset addresses specifying the window's position on the frame buffer, and table means interfaced with the pipeline bypass means for receiving and storing the window offset addresses and applying the window offset addresses to the window relative addresses, thereby rendering the graphics primitives to the frame buffer according to the frame buffer relative addresses determined according to the window offset addresses.
  • the methods comprise rendering the graphics primitives through the graphics pipeline according to window relative addresses, determining window offset addresses corresponding to frame buffer relative addresses anytime during the rendering, transmitting window offset addresses to an address manipulator anytime during the rendering, applying the window offset addresses to the window relative addresses to obtain frame buffer relative addresses for the window containing the graphics primitives after the determining and transmitting of the window offset addresses, and transmitting the graphics primitives to the frame buffer according to the frame buffer relative addresses.
  • computer window systems comprising a host, a graphics subsystem, a frame buffer, a pipeline, a pipeline bypass, and an address manipulator.
  • the computer window systems comprise source register means for storing a source reference address of a block of primitives to be moved, destination register means for storing a destination reference address of the block of primitives, dimension register means for storing data indicative of the block's size, source specifier means for storing data indicative of whether the source reference address of the block is a window relative address or a screen relative address, destination specifier means for storing data indicative of whether the destination reference address of the block is a window relative address, or a screen relative address, and table means interfaced with the pipeline bypass means for receiving and storing the window offset addresses and applying the window offset addresses to the window relative addresses, thereby rendering the graphics primitives to the frame buffer according to frame buffer relative addresses determined according to the window offset addresses.
  • Systems for moving blocks in a window graphics system having a frame buffer are further provided in accordance with this invention.
  • the systems comprise a plurality of first register means for storing source address data of a block in window relative address form, a plurality of second register means interfaced with the plurality of first register means for storing destination address data of the block in frame buffer relative address form, and block moving means interfaced with the first and second register means for moving the block from the source to the destination in accordance with the address data in the first and second register means.
  • Systems for moving blocks in a window graphics system having a frame buffer are further provided in accordance with this invention.
  • the systems comprise a plurality of first register means for storing source address data of a block in window relative address form, a plurality of second register means interfaced with the plurality of first register means for storing destination address data of the block in window relative address form, and block moving means interfaced with the first and second register means for moving the block from the source to the destination in accordance with the address data in the first and second register means.
  • Systems for moving blocks in a window graphics system having a frame buffer are further provided in accordance with this invention.
  • the systems comprise a plurality of first register means for storing source address data of a block in frame buffer relative address form, a plurality of second register means interfaced with the plurality of the first register means for storing destination address data of the block in frame buffer address form, and block moving means interfaced with the first and second register means for moving the block from the source to the destination in accordance with the address data in the first and second register means.
  • the methods comprise storing source addresses of blocks in a source address register, storing destination addresses of blocks in a destination address register, storing data indicative of block size in a block size register, specifying whether a source address of the block is a frame buffer relative address or a window relative address, specifying whether a destination address of the block is a frame buffer relative address or a window relative address, and moving the block from a source to a destination in accordance with the specification of whether a source address of the block is a frame buffer relative address or a window relative address and the specification of whether a destination address of the block is a frame buffer relative address or window relative address.
  • Computer systems comprising a host and a graphics subsystem having a frame buffer, a pipeline and pipeline bypass for optimizing the bandwidth between the host and the frame buffer, for providing a high speed path between the frame buffer and the host and for providing a source reference address or a destination reference address in host memory are provided.
  • the systems comprise burst data block means having at least data register between the host and the frame buffer for directly storing data blocks received from the host, block moving means interfaced with the data register for rendering the data blocks to the frame buffer, and alignment register means interfaced with the block moving means for defining a sub-block and for clipping data rendered to the frame buffer which falls outside the sub-block.
  • Computer systems comprising a host in a graphics subsystem having a frame buffer, a pipeline and a pipeline bypass, for optimizing the bandwidth between the host and the frame buffer, for providing a high speed path between the frame buffer and the host, and for providing a source reference address or a destination reference address in the host memory are further provided in accordance with this invention.
  • the systems comprise burst data block means having at least one data register between the host and frame buffer for directly storing data blocks received from the host, block moving means interfaced with the data register for transmitting the data blocks from the frame buffer to the host, and alignment register means interfaced with the block moving means for defining a sub-block and for clipping data rendered to the frame buffer which falls outside the sub-block.
  • the systems comprise pipeline bypass means interfaced with the host and the frame buffer for bussing data, first data block means for receiving data blocks from the host and for transmitting data blocks from the frame buffer to the host, address register means interfaced with the host for receiving block reference addresses and block size data from the host, block moving means interfaced with the frame buffer for rendering the blocks to the frame buffer and for transmitting the blocks to the burst data block, and alignment register means interfaced with the block moving means for defining a sub-block and for clipping data rendered to the frame buffer which falls outside the sub-block.
  • Methods of rendering blocks in a graphics system having an address manipulator from a host directly to a frame buffer using a burst data block are further provided in accordance with this invention.
  • the methods comprise writing block reference addresses from the host to a data register in the address manipulator, writing block size from the host to a data register in the address manipulator, writing alignment data from the host to a data register, writing block data from the host to a burst data block, rendering the block data to the reference addresses in the frame buffer, and aligning the block data on the block rendered to the frame buffer, defining a sub-block and discarding data which falls outside the sub-block.
  • Methods of transmitting blocks in a graphics system having an address manipulator, from a frame buffer directly to a host, using a burst data block are further provided in accordance with this invention.
  • the methods comprise writing block reference addresses from the host to a data register in the address manipulator, writing block size data from the host to a data register in the address manipulator, writing alignment data from the host to a data register, transmitting block data from the frame buffer to the host, and aligning the block data on the block rendered to the frame buffer, defining a sub-block, and discarding data which falls outside the sub-block.
  • Figure 1 is a block diagram of a window graphics system utilizing a graphics pipeline and a graphics pipeline bypass.
  • Figure 2 is a block diagram of a window graphics system utilizing a graphics pipeline, a graphics pipeline bypass, a marker register and a stopmarker register.
  • Figure 3 is a flow chart of a method provided in accordance with this invention utilizing marker registers and stopmarker registers.
  • Figure 4 is a block diagram of a window graphics system wherein window relative addressing is performed.
  • Figure 5 is a flow chart of a method provided in accordance with this invention for window relative addressing and implementing virtual windows.
  • Figure 6 is a block diagram of a window graphics system utilizing a graphics pipeline and a graphics pipeline bypass for moving block data through the graphics pipeline bypass to a frame buffer.
  • Figure 7 is a flow chart of a method provided in accordance with this invention for moving block data and rendering the block data on a frame buffer according to frame buffer relative addresses.
  • Figure 8 is a block diagram of a graphics window system for transferring large data blocks from a host processor to a frame buffer through a burst block utilizing FIFO registers.
  • Figure 9A is a flow chart of a method provided in accordance with this invention for transferring large blocks of data along a pipeline bypass from a host processor to a burst block.
  • Figure 9B is a flow chart of a method provided in accordance with this invention for transferring data from a burst block to a pixel cache.
  • the inventors of the subject matter herein claimed and disclosed have solved the above mentioned long-felt needs in the art by implementing a graphics window system Using a graphics pipeline having a separate path for commands and data which do not require traverse through the graphics pipeline.
  • This separate path is herein defined as a "pipeline bypass bus" and provides data commands and blocks direct access to the frame buffer without passing through the pipeline bus.
  • the pipeline bypass bus supports block moves, block reads and write operations, as well as other data transfer functions in hardware rather than software.
  • the pipeline bypass bus also provides fast access to the frame buffer for comparatively simple commands originating from the host processor. Furthermore, the pipeline bypass bus reduces graphics pipeline overhead and provides services required by the window system which would otherwise have to be processed through the pipeline bus. While the pipeline bus offers high performance rendering, the pipeline bypass bus offers fast block operations and direct frame buffer access to data output by the host processor.
  • a graphics system is comprised of a host processor 20 which is interfaced 30 to a transform engine 40.
  • the pipeline 50 interfaces the host processor 20 and transform engine 40 with rendering circuit 60.
  • the pipeline 50 is a graphics processor which performs a variety of tasks in the graphics window system. These tasks include bussing data through the graphics system and processing the graphics commands through various hardware blocks and software functions.
  • the terms pipeline, pipeline bus, and pipeline processor are used interchangeably throughout to denote the graphics pipeline processor.
  • Window circuitry 65 in preferred embodiments comprises graphics hardware provided in accordance with this invention for rendering graphics primitives on windows to frame buffer 70. Window circuitry in interfaced with frame buffer 70 and rendering circuitry 60.
  • graphics primitives are output from host processor 20 and manipulated by transform engine 40 through graphics pipeline 50 for rendering to frame buffer 70.
  • rendering circuit 60 After rendering circuit 60 renders a window with a particular context through window circuitry 65 on frame buffer 70, the window is output on raster display 80.
  • a pipeline bypass bus 90 is interfaced 30 to host processor 20 and frame buffer 70.
  • Pipeline bypass bus 90 provides a separate path for data from host processor 20 to frame buffer 70. Thus, when data passes through pipeline bypass bus 90 to frame buffer 70, no overhead time through the graphics pipeline is incurred.
  • Pipeline bypass bus 90 offers fast block transfer operations and direct frame buffer access for data output from host processor 20.
  • hardware solutions which eliminate the need for pipeline flushing and which reduce pipeline latency, thereby increasing window acceleration through the system are provided in accordance with this invention.
  • hardware implementations allow storage of multiple graphics contexts on the graphics system.
  • windows in the graphics system may be viewed as "virtual" devices.
  • a virtual device operates according to window relative addresses through the graphics pipeline independent of addresses corresponding to the frame buffer or raster display. Since windows and window context switching may thus be rendered according to window relative addresses, the need for pipeline flushing is eliminated and pipeline latency is significantly reduced.
  • each window in the window system can view the graphics pipeline as an exclusive resource since time consuming manipulations of windows which increase pipeline latency are eliminated. Therefore, methods and apparatus provided in accordance with this invention solve a long-felt need in the art for graphics systems which support multiple window contexts and eliminate the need for pipeline flushing.
  • host processor 20 is interfaced along pipeline 50 with rendering circuit 60.
  • rendering circuit 60 Interposed between rendering circuit 60 and frame buffer 70 is a marker register 100.
  • the pipeline marker register 100 is accessed by the host processor 20 through the pipeline bus 50 without affecting data flowing through the pipeline. Marker register 100 prevents unnecessary pipeline flushing when it is desired to change a window context.
  • a window context change often requires swapping of system resources such as, for example, window clipping planes or window display mode planes. Furthermore, these system resources oftentimes must be swapped during the context switch because they are a limited resource and are shared between multiple processes. Marker register 100 provides a preferred resource for switching contexts when compared with previous software solutions which might tend to reduce the need for pipeline flushing, but do not --and cannot-- eliminate it.
  • marker register 100 keeps track of currently active contexts which traverse the graphics pipeline 50 from host processor 20.
  • a "marker" is sent down the pipeline 50 from host processor 20 between each context switch.
  • the marker register is incremented each time a context traverses the pipeline such that a table of contexts currently in the pipeline is maintained by the system in marker register 100.
  • the table shows the context number, the window clipping planes, window identification, and marker numbers for each active context in the pipeline.
  • pipeline marker register 100 is automatically updated each time a marker reaches the end of pipeline bus 50.
  • stopmarker register 110 is interfaced on the pipeline bypass bus 90 between host processor 20 and frame buffer 70.
  • stopmarker register 110 is set with a particular value according to the particular application specified by host processor 20 and the user.
  • the window system can read the value of marker register 100 and compare this value with the predetermined value in stopmarker register 110 to determine which contexts are still in the pipeline. If the marker register value equals the stopmarker register value, the window system will wait until the current context has been processed by the system and rendered to frame buffer 70. If the stopmarker register value is not equal to the marker register value, the context being swapped is not in the pipeline and the context switch and clipping plane changes can occur immediately. Therefore, under no circumstances will it be necessary to halt data flow in the pipeline or prevent the host processor from continuing to place commands and data onto the pipeline. Thus, the need for pipeline flushing is eliminated.
  • FIG. 3 a flow chart of a preferred embodiment of a method implementing the marker/stopmarker system of Figure 2 is illustrated.
  • the system initiates a stopmarker register through the pipeline bypass at step 120. It is then desired to "unplug" the pipeline at step 125.
  • the system initiates a marker register through the pipeline at step 130 and sends data command segments through the pipeline at step 135.
  • the host processor interrogates the system at step 140 to determine if the pipeline is "plugged.”
  • the term "plugged” used herein means that data and graphics commands do not flow through the pipeline. If the pipeline is plugged, then the system performs the task for which the stop or plug was desired at step 150. The system then initiates the next stopmarker through the pipeline bypass at step 155 and unplugs the pipeline at step 160.
  • step 145 the system asks if the pipeline is filled at step 145. If the pipeline is filled, then the system returns to step 140. However, if the pipeline is not filled, then the system returns to step 125 where it unplugs the pipeline.
  • the host processor interrogates the system to determine at step 165 if the marker register value is equal to the stopmarker register value. If the stopmarker register value is equal to the marker register value, then the system stops pixel data flow to the frame buffer or "plugs" the pipeline at step 170. The host processor then interrogates the system to determine whether the pipeline has been unplugged at step 175. If the pipeline has not been unplugged, then the system waits.
  • the host processor interrogates the system at step 165 again to determine if the marker value is equal to the stopmarker value. If the stopmarker value is not equal to the marker value, then the host processor outputs a command at step 180 which allows the pixel cache to write data to the frame buffer.
  • the host processor plugs the pipeline at step 170 at which time the host processor interrogates the system to determine whether the pipeline is plugged at step 140.
  • the need to flush the pipeline has been eliminated since plugging of the pipeline need only occur between the pixel cache and the frame buffer for relatively short periods of time while complex processing and matrix transformation occurs earlier in the pipeline.
  • This advantageous result is achieved since the marker and stopmarker registers tell the graphics system when the pixel data flow to the frame buffer must wait since a particular context has not yet been rendered to the frame buffer.
  • Context switching utilizing the marker and stopmarker hardware provided in accordance with this invention thus eliminates the need for pipeline flushing since the graphics pipeline need never be emptied of data in order to determine whether a current context has been rendered to the frame buffer. In this fashion, extremely fast and efficient context switching can be accomplished, thereby significantly improving overall graphics system performance.
  • the marker register and stopmarker register hardware provided in accordance with this invention satisfies a long-felt need in the art for context switching in graphics systems utilizing a pipeline bus and pipeline bypass bus.
  • any graphics application will run faster when it views itself as the sole owner of the graphics system. This is a consequence of the fact that when a graphics application requests a window, the corresponding frame buffer memory is allocated to that application for graphics output.
  • an ideal environment for graphics rendering would allow each graphics process to treat the window as a "stand alone" or virtual graphics device.
  • the window origin is a reference for the graphics primitives which are rendered to the window.
  • Translation to screen relative or "frame buffer relative addresses” occurs after scan conversion according to window relative addresses and before frame buffer access.
  • the application treats the window as a full screen "virtual" device since the graphics system renders primitives as if the window comprises the entire frame buffer.
  • Operations of this nature may be performed by a transformation matrix.
  • the pipeline must be flushed every time the window is moved or changed. After flushing the pipeline, the new window offset may then be added to the transformation matrix and the pipeline must be filled up again.
  • a more preferred solution is to allow the application to access the window as if it owned the entire screen or frame buffer, then provide hardware to receive window offset data corresponding to frame buffer relative addresses so that the window containing the graphics primitives can be rendered to the frame buffer according to frame buffer relative addresses.
  • rendering circuit 60 comprises a transform engine 210 and a scan converter 220.
  • the scan converter is a raster scan converter.
  • Pixel cache 230 is further interfaced with frame buffer 70.
  • video random access memory VRAM 240 comprises the addressable frame buffer for the system.
  • An address manipulator 250 is interfaced on pipeline bypass bus 90. Address manipulator 250 is interposed along pipeline bypass bus 90 between host processor 20 and frame buffer 70.
  • address manipulator 250 comprises data registers for receiving offset addresses for each window from host processor 20 window relative conversion circuitry, and data register for storing window identification.
  • the window offsets are applied to each window by address manipulator 250 before the windows containing graphics primitives are rendered to frame buffer 70. Since the window offsets are written to address manipulator 250 through pipeline bypass bus 90, they may be updated asynchronously. The windows can thus be moved or shuffled on the frame buffer through pipeline bypass 90 simultaneously as window relative rendering of graphics primitives occurs at scan converter 220 through pipeline bus 50. Graphics applications and processes may therefore run on graphics pipeline bus 50 without explicit knowledge of their eventual window location on the frame buffer. Thus, windows in graphic systems provided in accordance with this invention truly function as virtual devices since they are able to view the graphics pipeline as an exclusive resource during window relative rendering operations.
  • pixel cache 230 is interfaced with address manipulator through a central bus 240.
  • the pixel cache 230 contains window relative addresses 245 of graphics primitives which have been rendered on the window with respect to the window origin. Since window offset data is written to address manipulator 250 through pipeline bypass bus 90, the pixel cache 230 interfaces 245 with address manipulator 250 to provide the window relative data which will be combined with the window offset addresses in the address manipulator.
  • Address manipulator 250 is also interfaced with frame buffer 70 so that the graphics windows can be rendered to the frame buffer according to frame buffer relative addresses 255.
  • a flow chart to accomplish window relative rendering in window graphics systems provided in accordance with this invention is shown in Figure 5.
  • a window manager the pipeline processes an application through the pipeline.
  • the application requests a window ID at step 260.
  • the window manager determines whether a new window ID has been requested at step 265. If a new window ID has not been requested, then the window manager determines whether a window move has been requested at step 270. If a window move has not been requested, then the process returns to step 265. However, if a window move is requested, then the window manager plugs the pipeline at step 275.
  • the window manager then calculates a new window location and moves the window at step 280. Furthermore, the window manager writes the window offset to the address manipulator at step 285 and unplugs the pipeline at step 290. The process then returns to step 265 to determine whether a new window ID has been requested. Since a new window ID has not been requested at this point, the window manager assigns a window ID at step 295 and plugs the pipeline at step 300.
  • the host processor then interrogates the system at step 305 to determine whether the new window ID has been received. If the new window ID has not been received, then the system waits until the window manager sends a new window ID However, if a new window ID has been received, the host processor sends the application which comprises data or command segments to the assigned window ID through the pipeline at step 310. The host processor then determines whether the application is finished at step 315. If the application is not finished, then the host processor sends additional data or command segments through the pipeline at step 310. However, if the application is finished, then the window can be said to have been rendered and the window manager will have moved the window to its new location at step 280. The process then stops at 320 until another window traverses the pipeline.
  • Window relative rendering accomplished methods illustrated in Figure 5 eliminates the need for pipeline flushing.
  • the window manager independently applies window offset addresses to window relative data while the pipeline can simultaneously process windows according to window relative addresses. This has not been heretofore achieved in the art and significantly increases the speed and timeliness of rendering of graphics primitives to the frame buffer.
  • Graphics window systems must support block move operations in order to maximize the system's performance.
  • block move operations generally support basic window primitives including raster texts and icons.
  • Other types of graphics block moves such as shuffles and block "resizes" must also take advantage of the system's block moving capabilities.
  • a "block” may be considered an entire window or merely part of a window comprising a set graphics primitives on the graphics system.
  • Block moves are particularly difficult to handle in a window environment because window offset addresses need to be included in these operations which are typically implemented as screen address relative.
  • block move operations inside a window must be window relative so that forcing all block moves in the graphics system to be window relative is neither an adequate nor versatile solution.
  • the reason that block move operations inside a window must be window relative is that many objects, for example fonts, are stored in off screen memory on the frame buffer and thus these objects are identified exclusively according to frame buffer relative addresses.
  • implementation of a graphics block mover in hardware allows the graphics system to handle several different kinds of block moving operations.
  • implementation of the block mover in hardware includes a register having the ability to store a bit for each operand output from the host processor that specifies whether the operand is window address relative or screen address relative.
  • Block moves accomplished by methods and systems provided in accordance with this invention can thus be window relative, screen relative, or any combination thereof.
  • Window systems provided in accordance with this invention may include block moving hardware which supplies window offsets through a pipeline bypass bus for windows having graphics primitives rendered thereon according to window relative addresses.
  • block moves initiated in accordance with this invention write the block's source and destination addresses, the block's width and height, and a particular replacement rule to the address manipulator through the pipeline bypass bus prior to initiation of the block move.
  • block moving hardware does not require the window to make decisions about its particular coordinate system as it traverses the graphics pipeline. This eliminates the need for the window system to incur additional processor overhead while manipulating graphics primitives according to frame relative addresses which would necessarily occur in parallel with processing the application or context.
  • a block if a block is off screen in the work area of the frame buffer it may automatically be assumed to be screen relative. However, if the block is displayed in the active screen area of the frame buffer, it may be assumed to be addressed window relative.
  • window relative rendering circuit 330 generally comprises raster scanning means and pixel cache buffer means as exemplified in the earlier figures. Window relative rendering circuit 330 renders graphics primitives to the window according to window relative addresses.
  • Window relative rendering circuit 330 is further interfaced with frame buffer 70.
  • frame buffer 70 is a VRAM.
  • Frame buffer 70 may be conceptually broken into two parts.
  • the first part 340 corresponds to screen addresses, i.e., places on the video screen where graphics primitives will actually be displayed.
  • the second portion of the frame buffer 350 corresponds to an "off screen" work area.
  • the off screen work area 350 is an area where windows or blocks which have not been rendered on the video screen of the graphics system exist exclusively according to frame buffer relative addresses. Blocks which appear on the first portion of the frame buffer 340 may be addressed relative to the screen in frame buffer relative addresses or window relative addresses as they are processed through the pipeline.
  • a source block 360 may be moved from the work area 350 to destination window or block 370 in the first portion 340 of frame buffer 70. It will be recognized by those with skill in the art that the source and destination addresses could be interchanged such that blocks can be moved window relative, screen relative or any combination thereof.
  • host processor 20 In order to move blocks between a destination and a source, host processor 20 outputs window offset information over pipeline bypass bus 90 to a variety of data registers which comprise address manipulator 250.
  • Destination register 380 is adapted to store the destination address of the block output by host processor 20.
  • Source address register 390 is adapted to receive the block's source address over the pipeline bypass 90 output by host processor 20.
  • the block size comprises the block's width and height so that the block may be correctly written to the appropriate destination in the frame buffer.
  • the specifier register 410 is adapted to receive data from host processor 20 through pipeline bypass bus 90 which specifics whether the block to be moved is currently window address relative or frame buffer address relative. In still further preferred embodiments, a single bit of the operand received from host processor 20 and stored in specifier register 410 specifies whether the block is window or screen relative. Thus, with methods and apparatus provided in accordance with this invention, blocks may be moved which are window address relative or screen address relative, and between sources and destinations which are window relative addressed or frame buffer relative addressed.
  • the source addresses and destination addresses may be specified either according to window relative addresses or frame buffer relative addresses and blocks may be concomitantly moved between sources and destinations addresses either within windows, or in and around the frame buffer.
  • a block is rendered through a graphics pipeline according to window relative addresses at step 420.
  • the block's source addresses are written through the pipeline bypass to the source address register at step 430.
  • the block's destination addresses are written to the destination address register through the pipeline bypass bus at step 440. It is desired to write the block's size to the block size register through the pipeline bypass bus at step 450.
  • the host processor interrogates a specifier register at step 460 to determine whether a destination block has been addressed according to window relative addresses or frame buffer relative addresses. Similarly, the host processor interrogates a specifier register at step 465 to determine whether a source block has been addressed according to window relative or frame buffer relative addresses. If the blocks have been addressed according to frame buffer relative addresses a "zero" window offset is applied at step 470 which effectively does not change the block addresses since the block is considered to be frame buffer relative addressed.
  • the window offset addresses are applied to the block at step 480 so that the blocks are correctly addressed according to frame buffer relative addresses before the blocks are rendered to the destination on the system frame buffer or screen.
  • the blocks may be rendered to their destinations on the frame buffer at step 490.
  • the block window offset addresses are written to the address manipulator through the pipeline bypass bus rather than through the graphics pipeline bus. Therefore, the graphics pipeline is not used to address the block relative to the frame buffer and thus is free to perform graphics primitive renderings to blocks and windows entirely according to window relative addresses.
  • Methods and systems provided in accordance with this invention reduce pipeline latency since each window is in effect treated as a virtual device in the system. Furthermore, methods and apparatus provided in accordance with this invention solve a long-felt need in the art for graphics pipelines that eliminate the need for pipeline flushing since the time consuming task of adding window offsets to window relative addressed blocks and obtaining frame buffer relative addressed blocks is eliminated. This goal is accomplished by implementing a graphics pipeline bus having hardware adapted to perform these tasks.
  • "burst" data hardware block 500 is provided in accordance with this invention interfaced in pipeline bypass bus 90 and interposed between host processor 20 and pixel cache 230.
  • the data block 500 is denoted a "burst” data block since host processor 20 can load data block 500 with extremely large blocks of data through pipeline bypass bus 90.
  • these large blocks of data may comprise graphics animation data which will be written to the frame buffer.
  • These large blocks of data are organized as multiple rows of pixels, called "scanlines.”
  • the data is organized in host processor memory as an array of data with the first datum being the leftmost pixel of the first scanline, then proceeding along the scanline to the rightmost pixel of the first scanline, and then back to the leftmost pixel of the second scanline, etc. This forms a two dimensional array of pixel data to be sent to the frame buffer.
  • the burst is comprised of a number of first-in, first-out (FIFO) registers shown at 510.
  • the FIFO's are organized in banks. There are from one to "n" banks of FIFO's. Each FIFO bank buffers pixels along the scanline. The number of pixels buffered along a scanline is dependent on the depth of the FIFO's. Multiple scanlines, equal to the number of FIFO banks, can be buffered.
  • the input port and output port of the FIFO's operate independently. Data is transferred from the host processor 20 to the FIFO input ports independently and in parallel with data transferred from the FIFO output ports to the pixel cache 230.
  • the banks are connected in parallel as seen from the pipeline bypass bus 90.
  • the host processor 20 writes data to the input port of one of the FIFO banks from one scanline of data until that FIFO bank is full.
  • the host processor then writes data to the input port of the next FIFO bank from the next scanline of data.
  • the graphics pipeline 50 is then plugged, and pixel data transfer from the graphics pipeline SO into the frame buffer 70 is suspended while the data transfer from burst 500 is active. Since burst 500 is interfaced with the pixel cache 230 through the pipeline bypass bus 90, the need to flush the graphics pipeline is eliminated.
  • a way to clip data from the left and right edges is provided.
  • Two additional offset operands from the host processor are written to the address manipulator 230.
  • the offsets specify the number of pixels along a scanline from the beginning of the scanline to the right edge and the left edge of the desired sub-block of data. These offsets instruct the address manipulator to clip the data transferred from the FIFO's 510 to the pixel cache 230; that is to the right, or to the left of the desired sub-block of data.
  • burst 500 is comprised of a number of first-in, first-out (FIFO) registers, shown generally at 510.
  • the FIFO's 510 are connected in parallel with each other in the burst block 500.
  • FIFO's 510 are interfaced with the pipeline bypass bus 90 so that host processor 20 can move large data blocks in parallel to each of the FIFO's 510.
  • the amount of data bussed from host processor 20 to burst 500 is only limited by the number of FIFO's which are connected in parallel in the burst block.
  • Burst 500 is interfaced with pixel cache 230 so that it may transfer the data in FIFO's 510 to pixel cache 230 after host processor 20 has written the desired data to FIFO's 510.
  • Pixel cache 230 is interfaced with VRAM 70 to allow data in burst 500 to be rendered to the frame buffer. Since burst 500 is interfaced with the pixel cache through pipeline bypass bus 90, the graphics pipeline 50 is free to perform window relative rendering of other graphics primitives output from host processor 20. Therefore, use of burst 500 interfaced with graphics pipeline bypass bus 90 reduces graphics pipeline latency and eliminates the need to flush the pipeline 50 when a context switch for the data in burst 500 is desired.
  • address manipulator 250 is provided interfaced on the pipeline bypass bus 90 interposed between host processor 20 and VRAM 70.
  • the address manipulator functions as described above and renders the data in burst 500 according to frame buffer relative addresses on the VRAM 70. It is necessary to utilize address manipulator 250 since the data written to FIFO's 510 in burst 500 from host processor 20 may appear in window relative addresses.
  • host processor 20 writes window offset addresses for the data in FIFO's 510 to a data register in the address manipulator so that address manipulator 250 may render the data in FIFO's 510 according to frame buffer relative addresses on VRAM 70.
  • Address manipulator 250 also aligns data written in the FIFO's 510 on the frame buffer. Alignment is accomplished by an additional offset operand from the host processor 20 written to the address manipulator 250 which instructs the address manipulator to clip data in FIFO's 510 which will be input to pixel cache 230 and which falls outside of the specified block on frame buffer 240 when the data is rendered. In preferred embodiments, clipping is necessary since block data output from burst 500 is potentially large enough to fall outside the particular destination addresses on the frame buffer.
  • FIG. 9A a flow chart of a preferred embodiment of transfer of large data blocks from a host processor to a burst block is shown.
  • the block destination addresses are written through the pipeline bypass to the address manipulator at step 520.
  • the block size is written through the pipeline bypass bus from the host processor to the address manipulator at step 530. It is then desired to write left edge and right edge offsets through the pipeline bypass to the address manipulator at step 540.
  • Left edge and right edge offsets are then written through the pipeline bypass bus to the address manipulator at step 540.
  • the host processor interrogates the FIFO's to determine whether there is room in the FIFO's. If there is not room in the FIFO's, then the process must wait. However, if there is room in the FIFO's, the host processor asks if there is data to be transferred at step 560. If there is not data to be transferred, the process stops. However, if there is data to be transferred, then individual datum are transferred at step 570. In this fashion data from the host processor may be transferred to the burst block.
  • FIG. 9B a preferred embodiment of a flow chart for transferring data from a burst block to a pixel cache is shown.
  • the host processor interrogates the burst block at step 580 to determine if there is data available in all of the FIFO's. If data is not available from all of the FIFO's, then the process must wait. However, if data is available from all of the FIFO's, then individual transfers of datum from the burst block to the pixel cache at step 590 is accomplished.
  • the host processor then interrogates the system at step 600 to determine if all the data has been transferred. If all data transfer has occurred, then the process stops.
  • burst transfer operations provided in accordance with this invention satisfy a long-felt need in the art for window systems having the ability to move a large amount of pixel data to around the system in an efficient manner.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
EP94201810A 1989-07-28 1990-07-27 Verfahren und Einrichtung zur Beschleunigung von Bildfenstern in graphischen Systemen Expired - Lifetime EP0617402B1 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US38751089A 1989-07-28 1989-07-28
EP19900308257 EP0410783B1 (de) 1989-07-28 1990-07-27 Verfahren und Einrichtung zur Beschleunigung von Bildfenstern in graphischen Systemen
US387510 1995-02-13

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
EP90308257.6 Division 1990-07-27
EP19900308257 Division EP0410783B1 (de) 1989-07-28 1990-07-27 Verfahren und Einrichtung zur Beschleunigung von Bildfenstern in graphischen Systemen

Publications (3)

Publication Number Publication Date
EP0617402A2 true EP0617402A2 (de) 1994-09-28
EP0617402A3 EP0617402A3 (de) 1995-04-26
EP0617402B1 EP0617402B1 (de) 1999-06-09

Family

ID=23530194

Family Applications (4)

Application Number Title Priority Date Filing Date
EP94201809A Withdrawn EP0617401A3 (de) 1989-07-28 1990-07-27 Verfahren und Einrichtung zur Beschleunigung von Bildfenstern in graphischen Systemen.
EP94201810A Expired - Lifetime EP0617402B1 (de) 1989-07-28 1990-07-27 Verfahren und Einrichtung zur Beschleunigung von Bildfenstern in graphischen Systemen
EP19900308257 Expired - Lifetime EP0410783B1 (de) 1989-07-28 1990-07-27 Verfahren und Einrichtung zur Beschleunigung von Bildfenstern in graphischen Systemen
EP94201808A Expired - Lifetime EP0617400B1 (de) 1989-07-28 1990-07-27 Verfahren und Einrichtung zur Beschleunigung von Bildfenstern in graphischen Systemen

Family Applications Before (1)

Application Number Title Priority Date Filing Date
EP94201809A Withdrawn EP0617401A3 (de) 1989-07-28 1990-07-27 Verfahren und Einrichtung zur Beschleunigung von Bildfenstern in graphischen Systemen.

Family Applications After (2)

Application Number Title Priority Date Filing Date
EP19900308257 Expired - Lifetime EP0410783B1 (de) 1989-07-28 1990-07-27 Verfahren und Einrichtung zur Beschleunigung von Bildfenstern in graphischen Systemen
EP94201808A Expired - Lifetime EP0617400B1 (de) 1989-07-28 1990-07-27 Verfahren und Einrichtung zur Beschleunigung von Bildfenstern in graphischen Systemen

Country Status (2)

Country Link
EP (4) EP0617401A3 (de)
DE (3) DE69033158T2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1909258A2 (de) * 2006-10-04 2008-04-09 Samsung Electronics Co., Ltd. Verwaltungsvorrichtung und -verfahren für eine Dunkelpufferung

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4405330A1 (de) * 1994-02-21 1995-08-24 Vobis Microcomputer Ag Verfahren zum Scrollen von mehreren Rasterzeilen in einem Fenster eines Grafikmodus betriebenen Bildschirms eines Personalcomputers
US20160104263A1 (en) * 2014-10-09 2016-04-14 Media Tek Inc. Method And Apparatus Of Latency Profiling Mechanism

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0279230A2 (de) * 1987-02-12 1988-08-24 International Business Machines Corporation Video-Schnittstelle mit Datenfluss
EP0284905A2 (de) * 1987-04-02 1988-10-05 International Business Machines Corporation Anzeigesystem
US4829294A (en) * 1986-06-25 1989-05-09 Hitachi, Ltd. Document processing method and system using multiwindow

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2582132B1 (fr) * 1985-05-15 1987-07-17 O Donnell Ciaran Circuit de memoire d'image virtuelle permettant le multifenetrage
US4811245A (en) * 1985-12-19 1989-03-07 General Electric Company Method of edge smoothing for a computer image generation system
US4903218A (en) * 1987-08-13 1990-02-20 Digital Equipment Corporation Console emulation for a graphics workstation
US4814884A (en) * 1987-10-21 1989-03-21 The United States Of America As Represented By The Secretary Of The Air Force Window generator
JPH0727571B2 (ja) * 1987-10-26 1995-03-29 テクトロニックス・インコーポレイテッド ラスタ走査表示装置及び図形データ転送方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4829294A (en) * 1986-06-25 1989-05-09 Hitachi, Ltd. Document processing method and system using multiwindow
EP0279230A2 (de) * 1987-02-12 1988-08-24 International Business Machines Corporation Video-Schnittstelle mit Datenfluss
EP0284905A2 (de) * 1987-04-02 1988-10-05 International Business Machines Corporation Anzeigesystem

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1909258A2 (de) * 2006-10-04 2008-04-09 Samsung Electronics Co., Ltd. Verwaltungsvorrichtung und -verfahren für eine Dunkelpufferung
EP1909258A3 (de) * 2006-10-04 2009-08-05 Samsung Electronics Co., Ltd. Verwaltungsvorrichtung und -verfahren für eine Dunkelpufferung

Also Published As

Publication number Publication date
DE69033283D1 (de) 1999-10-14
EP0617402B1 (de) 1999-06-09
EP0617402A3 (de) 1995-04-26
EP0617401A2 (de) 1994-09-28
EP0410783A3 (en) 1991-07-10
EP0617401A3 (de) 1995-04-26
DE69028259D1 (de) 1996-10-02
EP0410783B1 (de) 1996-08-28
EP0410783A2 (de) 1991-01-30
DE69033158D1 (de) 1999-07-15
DE69028259T2 (de) 1997-01-23
EP0617400B1 (de) 1999-09-08
DE69033283T2 (de) 1999-12-30
EP0617400A2 (de) 1994-09-28
DE69033158T2 (de) 1999-10-14
EP0617400A3 (de) 1995-04-26

Similar Documents

Publication Publication Date Title
US5572657A (en) Methods and apparatus for graphics block movement in a multi-tasking windows system
US5185599A (en) Local display bus architecture and communications method for Raster display
JP4071196B2 (ja) ゾーン・レンダリング用の自動メモリ管理
US5917502A (en) Peer-to-peer parallel processing graphics accelerator
EP0448287B1 (de) Verfahren und Einrichtung zum Abschneiden von Pixeln von Quellen- und Zielfenstern in einem graphischen System
CN1251155C (zh) 用于实现全景图形保真过采样的方法和装置
US6128026A (en) Double buffered graphics and video accelerator having a write blocking memory interface and method of doing the same
JP3359393B2 (ja) 図形データ並列処理表示装置
US6791555B1 (en) Apparatus and method for distributed memory control in a graphics processing system
US20050237329A1 (en) GPU rendering to system memory
US20110169846A1 (en) Memory system and method for improved utilization of read and write bandwidth of a graphics processing system
GB2245129A (en) Local display bus architecture and communications method for raster display
US7664922B2 (en) Data transfer arbitration apparatus and data transfer arbitration method
US6252600B1 (en) Computer graphics system with dual FIFO interface
US5878216A (en) System and method for controlling a slave processor
US6167498A (en) Circuits systems and methods for managing data requests between memory subsystems operating in response to multiple address formats
Voorhies et al. Virtual graphics
US7616200B1 (en) System for reducing aliasing on a display device
US5801714A (en) Vertex list management system
EP0803797A1 (de) Rechner-Anzeigesystem mit effizienter Übertragung von graphischen Daten zu einem graphischen Untersystem unter Verwendung von maskierten Segmenten
EP0617400B1 (de) Verfahren und Einrichtung zur Beschleunigung von Bildfenstern in graphischen Systemen
US7490208B1 (en) Architecture for compact multi-ported register file
EP0803798A1 (de) Rechner-Anzeigesystem mit effizienter Übertragung von graphischen Daten zu einem graphischen Untersystem unter Verwendung von einem maskierten Direktbildspeicherzugriff
US5943066A (en) Programmable retargeter method and apparatus
US5883642A (en) Programmable retargeter method and apparatus

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AC Divisional application: reference to earlier application

Ref document number: 410783

Country of ref document: EP

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): DE FR GB

RIN1 Information on inventor provided before grant (corrected)

Inventor name: RHODEN, DESI

Inventor name: ALCORN, BYRON A.

Inventor name: EMMOT, DAREL N.

Inventor name: LARSON, RONALD D.

Inventor name: PINEDO, DAVID

RIN1 Information on inventor provided before grant (corrected)

Inventor name: RHODEN, DESI

Inventor name: ALCORN, BYRON A.

Inventor name: EMMOT, DAREL N.

Inventor name: LARSON, RONALD D.

Inventor name: PINEDO, DAVID

PUAL Search report despatched

Free format text: ORIGINAL CODE: 0009013

AK Designated contracting states

Kind code of ref document: A3

Designated state(s): DE FR GB

RIN1 Information on inventor provided before grant (corrected)

Inventor name: RHODEN, DESI

Inventor name: ALCORN, BYRON A.

Inventor name: EMMOT, DAREL N.

Inventor name: LARSON, RONALD D.

Inventor name: PINEDO, DAVID

17P Request for examination filed

Effective date: 19951002

17Q First examination report despatched

Effective date: 19960115

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

GRAH Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOS IGRA

GRAH Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOS IGRA

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AC Divisional application: reference to earlier application

Ref document number: 410783

Country of ref document: EP

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): DE FR GB

REF Corresponds to:

Ref document number: 69033158

Country of ref document: DE

Date of ref document: 19990715

ET Fr: translation filed
PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed
REG Reference to a national code

Ref country code: GB

Ref legal event code: IF02

REG Reference to a national code

Ref country code: GB

Ref legal event code: 732E

REG Reference to a national code

Ref country code: FR

Ref legal event code: TP

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20070831

Year of fee payment: 18

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20090203

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20090717

Year of fee payment: 20

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20090727

Year of fee payment: 20

REG Reference to a national code

Ref country code: GB

Ref legal event code: PE20

Expiry date: 20100726

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION

Effective date: 20100726