EP0617400B1 - Méthode et dispositif pour l'accélération de fenêtres dans de systèmes graphiques - Google Patents

Méthode et dispositif pour l'accélération de fenêtres dans de systèmes graphiques Download PDF

Info

Publication number
EP0617400B1
EP0617400B1 EP94201808A EP94201808A EP0617400B1 EP 0617400 B1 EP0617400 B1 EP 0617400B1 EP 94201808 A EP94201808 A EP 94201808A EP 94201808 A EP94201808 A EP 94201808A EP 0617400 B1 EP0617400 B1 EP 0617400B1
Authority
EP
European Patent Office
Prior art keywords
window
graphics
pipeline
frame buffer
address
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.)
Expired - Lifetime
Application number
EP94201808A
Other languages
German (de)
English (en)
Other versions
EP0617400A2 (fr
EP0617400A3 (fr
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 EP0617400A2 publication Critical patent/EP0617400A2/fr
Publication of EP0617400A3 publication Critical patent/EP0617400A3/fr
Application granted granted Critical
Publication of EP0617400B1 publication Critical patent/EP0617400B1/fr
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
  • 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 and 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.
  • US-A-4814884 there is disclosed a window generator which receives a field of video data and applies an identification code to rectangular subregions to identify distinct target areas within a given background area.
  • the window generator includes video pipeline processing circuitry for collecting statistics separately for each target area.
  • the systems 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 on the frame buffer according to the frame buffer relative addresses determined according to the window offset addresses.
  • Methods of rendering graphics primitives to a frame buffer without flushing the pipeline to change window offset addresses 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 are provided.
  • 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 on the frame buffer according to frame buffer relative addresses determined according to the window offset addresses.
  • 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.
  • 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.
  • 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.
  • 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.
  • Elements in the pipeline 50 comprise 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.
  • 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 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.
  • 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 (70) 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.
  • pixel cache 230 is interfaced with address manipulator through a control 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 240 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.
  • FIG. 5 A flow chart to accomplish window relative rendering in window graphics systems provided in accordance with this invention is shown in Figure 5.
  • 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.
  • 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.
  • 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.
  • 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 50 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 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)

Claims (25)

  1. Système pour restitution de primitives graphiques comprenant un processeur hôte (20), un sous-système graphique, un tampon de trame (70), un pipeline graphique (50),
    des moyens de décalage de fenêtre adaptés pour stocker des adresses de décalage de fenêtre représentant la position d'une fenêtre par rapport au tampon de trame (70),
    un contournement de pipeline (90) interfacé avec les moyens de décalage de fenêtre et permettant l'écriture des décalages de fenêtre par le processeur hôte (20), et
    un manipulateur d'adresses (250) interfacé avec le contournement de pipeline (90), le manipulateur d'adresses (250) comportant des moyens (380, 390) pour recevoir et stocker des adresses et des moyens (480) pour transformer des adresses qui sont relatives à une origine de fenêtre en adresses qui sont relatives à l'origine du tampon de trame en additionnant une adresse de décalage de fenêtre respective à chaque adresse qui est relative à l'origine de fenêtre.
  2. Système selon la revendication 1, comprenant en outre
    des moyens formant convertisseur de balayage (220), qui communiquent avec les moyens de décalage de fenêtre qui reçoivent des données graphiques, pour effectuer une conversion d'adresse par rapport à l'origine de fenêtre et communiquer les résultats au tampon de trame (70), et
    des moyens d'identification (410), dans lesquels écrit le processeur hôte (20) par l'intermédiaire du pipeline graphique, pour déterminer quels décalages de fenêtre référencer dans les moyens de décalage de fenêtre pour ladite transformation des adresses qui sont relatives à l'origine de fenêtre.
  3. Système selon la revendication 2, dans lequel le convertisseur de balayage (220) est intercalé sur le pipeline graphique (50) entre le processeur hôte (20) et le tampon de trame (70).
  4. Système selon la revendication 2 ou la revendication 3, dans lequel le convertisseur de balayage (220) est un convertisseur de balayage tramé.
  5. Système selon l'une quelconque des revendications 2 à 4, comprenant en outre des moyens à mémoire (230) intercalés sur le pipeline graphique (50) entre le convertisseur de balayage (220) et le tampon de trame (70) pour stocker des données graphiques restituées sur la fenêtre.
  6. Système selon la revendication 5, dans lequel les données graphiques correspondent à des données d'activation de pixels.
  7. Système selon la revendication 5 ou la revendication 6, dans lequel les moyens de décalage de fenêtre sont interfacés en outre avec les moyens à mémoire (230).
  8. Système selon l'une quelconque des revendications 5 à 7, dans lequel le manipulateur d'adresses (250) est interfacé en outre avec les moyens à mémoire (230).
  9. Système selon l'une quelconque des revendications 5 à 8, dans lequel les moyens à mémoire sont constitués d'un tampon d'antémémoire (230).
  10. Système selon l'une quelconque des revendications précédentes, dans lequel les moyens formant manipulateur d'adresses (250) sont intercalés sur le contournement de pipeline (90) entre le processeur hôte (20) et le tampon de trame (70).
  11. Système selon l'une quelconque des revendications précédentes, dans lequel le tampon de trame (70) est constitué d'une mémoire vidéo à accès aléatoire.
  12. Système selon l'une quelconque des revendications précédentes, dans lequel les moyens de décalage de fenêtre sont intercalés sur le contournement de pipeline (90) entre le processeur hôte (20) et le tampon de trame (70).
  13. Système selon l'une quelconque des revendications précédentes, dans lequel le manipulateur d'adresses (250) est également interfacé avec le pipeline graphique (50).
  14. Système selon l'une quelconque des revendications précédentes, comprenant :
    des moyens formant registre source (390) pour stocker une adresse de référence de source d'un bloc de primitives à déplacer ;
    des moyens formant registre destination (380) pour stocker une adresse de référence de destination du bloc de primitives ;
    des moyens formant registre de dimension (400) pour stocker des données représentant la taille du bloc ;
    des moyens de spécification de source (410) pour stocker des données représentant le fait que l'adresse de référence de source du bloc est une adresse qui est relative à une origine de fenêtre ou une adresse qui est relative à l'origine du tampon de trame ; et
    des moyens de spécification de destination (410) pour stocker des données représentant le fait que l'adresse de référence de destination du bloc est une adresse qui est relative à l'origine de fenêtre ou une adresse qui est relative à l'origine du tampon de trame.
  15. Système selon la revendication 14, dans lequel le processeur hôte (20) délivre en sortie des commandes au manipulateur d'adresses (250) pour ordonner au manipulateur d'adresses (250) de déplacer le bloc de l'adresse de source du bloc à l'adresse de destination du bloc.
  16. Système selon la revendication 14 ou 15, dans lequel l'adresse de référence du bloc correspond à l'adresse d'origine du bloc.
  17. Système selon l'une quelconque des revendications 14 à 16, dans lequel les moyens de source (390), les moyens de destination (380), les moyens formant registre de dimension (400) et les moyens de spécification (410) sont intercalés sur le contournement de pipeline (90) entre le processeur hôte (20) et le tampon de trame (70).
  18. Système selon l'une quelconque des revendications 14 à 16, dans lequel les moyens de source (390), les moyens de destination (380), les moyens formant registre de dimension (400) et les moyens de spécification (410) sont intercalés sur le pipeline graphique (50) entre le processeur hôte (20) et le tampon de trame (70).
  19. Système selon l'une quelconque des revendications précédentes, dans lequel les moyens de décalage de fenêtre sont constitués d'une table de décalage de fenêtre.
  20. Procédé de restitution de primitives graphiques sur un tampon de trame (70) sans purger un pipeline graphique (50) pour modifier des adresses de décalage de fenêtre, le procédé comprenant les étapes consistant à :
    restituer (420) les primitives graphiques par l'intermédiaire du pipeline graphique (50) selon les adresses qui sont relatives à une origine de fenêtre ;
    déterminer (460) les adresses de décalage de fenêtre correspondant aux adresses qui sont relatives à l'origine du tampon de trame à un instant quelconque pendant la restitution ;
    écrire des décalages de fenêtre dans des moyens de décalage de fenêtre adaptés pour stocker les décalages de fenêtre, le décalage de fenêtre étant écrit par un processeur hôte par l'intermédiaire d'un contournement de pipeline ;
    transmettre des adresses de décalages de fenêtre à un manipulateur d'adresses (250) à un instant quelconque pendant la restitution ;
    additionner (480) les adresses de décalage de fenêtre aux adresses correspondantes qui sont relatives à l'origine de fenêtre pour obtenir des adresses qui sont relatives à l'origine du tampon de trame après la détermination (460) et la transmission des adresses de décalages de fenêtre ; et
    transmettre les primitives graphiques au tampon de trame (70) en fonction des adresses qui sont relatives à l'origine du tampon de trame.
  21. Procédé selon la revendication 20, dans lequel l'étape de restitution (420) des primitives graphiques vers une fenêtre graphique comprend le balayage des primitives graphiques pour déterminer les pixels destinés à être activés sur un écran graphique.
  22. Procédé selon la revendication 21, dans lequel l'étape de balayage est une étape de balayage tramé.
  23. Procédé selon la revendication 21 ou la revendication 22, comprenant en outre le stockage des données d'activation de pixels dans un tampon d'antémémoire de pixels (230).
  24. Procédé selon l'une quelconque des revendications 20 à 23, dans lequel le tampon de trame (70) est une mémoire vidéo à accès aléatoire.
  25. Procédé selon l'une quelconque des revendications 20 à 24, dans lequel les moyens de décalage de fenêtre sont constitués d'une table de décalage de fenêtre.
EP94201808A 1989-07-28 1990-07-27 Méthode et dispositif pour l'accélération de fenêtres dans de systèmes graphiques Expired - Lifetime EP0617400B1 (fr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US38751089A 1989-07-28 1989-07-28
EP19900308257 EP0410783B1 (fr) 1989-07-28 1990-07-27 Méthode et dispositif pour l'accélération de fenêtres dans des systèmes graphiques
US387510 1995-02-13

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
EP19900308257 Division EP0410783B1 (fr) 1989-07-28 1990-07-27 Méthode et dispositif pour l'accélération de fenêtres dans des systèmes graphiques
EP90308257.6 Division 1990-07-27

Publications (3)

Publication Number Publication Date
EP0617400A2 EP0617400A2 (fr) 1994-09-28
EP0617400A3 EP0617400A3 (fr) 1995-04-26
EP0617400B1 true EP0617400B1 (fr) 1999-09-08

Family

ID=23530194

Family Applications (4)

Application Number Title Priority Date Filing Date
EP19900308257 Expired - Lifetime EP0410783B1 (fr) 1989-07-28 1990-07-27 Méthode et dispositif pour l'accélération de fenêtres dans des systèmes graphiques
EP94201808A Expired - Lifetime EP0617400B1 (fr) 1989-07-28 1990-07-27 Méthode et dispositif pour l'accélération de fenêtres dans de systèmes graphiques
EP94201810A Expired - Lifetime EP0617402B1 (fr) 1989-07-28 1990-07-27 Méthode et dispositif pour l'accélération de fenêtres dans des systèmes graphiques
EP94201809A Withdrawn EP0617401A3 (fr) 1989-07-28 1990-07-27 Méthode et dispositif pour l'accélération de fenêtres dans des systèmes graphiques.

Family Applications Before (1)

Application Number Title Priority Date Filing Date
EP19900308257 Expired - Lifetime EP0410783B1 (fr) 1989-07-28 1990-07-27 Méthode et dispositif pour l'accélération de fenêtres dans des systèmes graphiques

Family Applications After (2)

Application Number Title Priority Date Filing Date
EP94201810A Expired - Lifetime EP0617402B1 (fr) 1989-07-28 1990-07-27 Méthode et dispositif pour l'accélération de fenêtres dans des systèmes graphiques
EP94201809A Withdrawn EP0617401A3 (fr) 1989-07-28 1990-07-27 Méthode et dispositif pour l'accélération de fenêtres dans des systèmes graphiques.

Country Status (2)

Country Link
EP (4) EP0410783B1 (fr)
DE (3) DE69033283T2 (fr)

Families Citing this family (3)

* 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
KR20080031595A (ko) * 2006-10-04 2008-04-10 삼성전자주식회사 오프스크린 버퍼링 관리 장치 및 방법
US20160104263A1 (en) * 2014-10-09 2016-04-14 Media Tek Inc. Method And Apparatus Of Latency Profiling Mechanism

Family Cites Families (8)

* 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
US4829294A (en) * 1986-06-25 1989-05-09 Hitachi, Ltd. Document processing method and system using multiwindow
US4823286A (en) * 1987-02-12 1989-04-18 International Business Machines Corporation Pixel data path for high performance raster displays with all-point-addressable frame buffers
GB2203317B (en) * 1987-04-02 1991-04-03 Ibm Display 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 テクトロニックス・インコーポレイテッド ラスタ走査表示装置及び図形データ転送方法

Also Published As

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

Similar Documents

Publication Publication Date Title
US5572657A (en) Methods and apparatus for graphics block movement in a multi-tasking windows system
US6377266B1 (en) Bit BLT with multiple graphics processors
US5185599A (en) Local display bus architecture and communications method for Raster display
JP4071196B2 (ja) ゾーン・レンダリング用の自動メモリ管理
US5917502A (en) Peer-to-peer parallel processing graphics accelerator
CN1251155C (zh) 用于实现全景图形保真过采样的方法和装置
EP0448287B1 (fr) Méthode et appareil de découpage de pixels de fenêtres source et destination dans un système graphique
US6128026A (en) Double buffered graphics and video accelerator having a write blocking memory interface and method of doing the same
JP3359393B2 (ja) 図形データ並列処理表示装置
US6784889B1 (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
US6791555B1 (en) Apparatus and method for distributed memory control in a graphics processing system
US20050237329A1 (en) GPU rendering to system memory
US6252600B1 (en) Computer graphics system with dual FIFO interface
US5794037A (en) Direct access to slave processing by unprotected application using context saving and restoration
Voorhies et al. Virtual graphics
US7616200B1 (en) System for reducing aliasing on a display device
EP0803797A1 (fr) Système d'imagerie informatisé avec un transfert efficace de données graphiques vers un sous-système graphique en utilisant des segments masqués
EP0617400B1 (fr) Méthode et dispositif pour l'accélération de fenêtres dans de systèmes graphiques
US7490208B1 (en) Architecture for compact multi-ported register file
EP0803798A1 (fr) Système d'imagerie informatisé avec un transfert efficace de données graphiques vers un sous-système graphique en utilisant un accès direct masqué en mémoire de trame
US11605364B2 (en) Line-based rendering for graphics rendering systems, methods, and devices
US6253261B1 (en) System and method for direct memory access in a computer system
JPS6345629A (ja) 図形表示装置
JPH0877367A (ja) 画像処理プロセッサおよびそれを用いた画像データ処理装置

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

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

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

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

REF Corresponds to:

Ref document number: 69033283

Country of ref document: DE

Date of ref document: 19991014

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

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

Ref country code: GB

Payment date: 20070727

Year of fee payment: 18

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

Ref country code: FR

Payment date: 20070717

Year of fee payment: 18

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20080727

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

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST

Effective date: 20090331

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 NON-PAYMENT OF DUE FEES

Effective date: 20080727

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

Ref country code: FR

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

Effective date: 20080731