A system converts an input data stream in a first format (identified by a first stream code having at least two bits) into an output data stream in a second format. The system includes, among other things, a data sequencer for sequencing the input data stream and a counter. The sequencer includes a select input having a first number of selection input locations, a data input for receiving the digital data stream, and output for transmitting the output data stream. The counter includes the first number of selection outputs. A first logic element and a second logic element are coupled to a number of the selection inputs of the sequencer and a number of the selection outputs of the counter. The first and second logic elements control the data sequencer such that the input data stream in converted into the second format.
|
18. An apparatus for converting an input data stream having an input format into a output data stream having an output format, the input form being identified by a stream identifier, the apparatus comprising:
a data stream input for receiving the input data stream; a select input for entering a select signal; a counter having a first and second plurality of count outputs; a stream identifier generator that generates the stream identifier which identifies the input format of the input data stream; a first logic gate having a respective input coupled with both the stream identifier generator and at least one of the first respective count outputs, the first logic gate also having an output coupled with the select input; a second logic gate having a respective input coupled with both the stream identifier generator and at least one of the first respective count outputs, the second logic gate also having an output coupled with the select input; the second plurality of count outputs coupled to the select input; and a data stream output for forwarding the output data stream in the output format.
8. A system for converting an input data stream having a first order into an output data stream having a second order, the first order being identified by two identifier bits, the system comprising:
a counter having at least two most significant bit outputs; a data sequencer for sequencing the input data stream into the second order, the sequencer comprising: a count input that receives data from the counter; a data input for receiving the input data stream; and an output for transmitting the output data stream; a first exclusive-or logic element for applying an exclusive-or operation to a first of the two most significant bit outputs of the counter and a first of the two identifier bits identifying the first order, the exclusive-or operation producing a first value that is directed to the count input of the data sequencer; and a second exclusive-or logic element for applying an exclusive-or operation to a second of the two significant bit outputs of the counter and a second of the two identifier bits identifying the first order, the exclusive-or operation producing a second value that is directed to the count input of the data sequencer.
1. A system for converting an input data stream in a first format into an output data stream in a second format, the input data stream being identified by a first stream code having at least two bits, the system comprising:
a data sequencer for sequencing the input data stream, the sequencer comprising: a select input having a first number of selection input locations; a data input for receiving the input data stream; and an output for transmitting the output data stream; a counter having the first number of selection outputs; a first logic element having an output coupled to a first of the selection input locations of the data sequencer, the first logic element further including a two-bit input for receiving at least two bits, one bit input of the two-bit input receiving a first bit of the stream code, a second bit input of the two-bit input being coupled to one of the selection outputs of the counter; a second logic element having an output coupled to a second of the selection input locations of the data sequencer, the second logic element further including a two-bit input for receiving at least two bits, one bit input of the two-bit input receiving a second bit of the stream code, a second bit input of the two-bit input being coupled to a second of the selection outputs of the counter, the first and second logic elements controlling the data sequencer such that the input data stream is converted into the output data stream in the second format.
2. The system as defined by
3. The system as defined by
5. The system as defined by
6. The system as defined by
a third logic element having an output coupled to a third of the selection input locations of the data sequencer, the third logic element further including a two-bit input for receiving at least two bits, one bit input of the two-bit input receiving a third bit of the stream code, a second bit input of the two-bit input being coupled to a third of the selection outputs of the counter; wherein the first, second and third logic elements control the data sequencer such that the input data stream is converted into the output data stream in the second format.
7. The system as defined by
9. The system as defined by
11. The system as defined by
12. The system as defined by
13. The system as defined by
14. The system as defined by
a third exclusive-or logic element for applying an exclusive-or operation to the third of the most significant bit outputs of the counter and a third of the two identifier bits identifying the first order, the exclusive-or operation producing a third value that is directed to the count input of the data sequencer.
16. The system as defined by
17. The system as defined by
21. The apparatus as defined by
|
This application claims priority from U.S. provisional patent application Ser. No. 60/093,196, filed Jul. 17, 1998, entitled "DATA SEQUENCING APPARATUS AND METHOD", the disclosure of which is incorporated herein, in its entirety, by reference.
This invention generally relates to computer systems and more particularly, to data sequencing within computer systems.
Data in a computer system may be organized in different formats. Three methods commonly used are little endian, big endian, and bitmap formats. Little and big endian formats vary the significance of bytes in multibyte words. In big endian systems, for example, the leftmost bytes are most significant. In little endian systems, however, the rightmost bytes are most significant. Computer systems can be configured to handle either or both types of endian data formats.
A graphical image may be represented in computer memory by the well known bitmap format. More particularly, in systems that utilize bitmap formats, data streams of ones and zeros may be produced by means of a simple sequencer. The ones and zeros in the stream may represent the state of pixels, for example, on a computer monitor. A "1" value, for example, may represent a lit pixel, while a "0" value may represent an unlit pixel. The combination of lit and unlit pixels produce a text character on a computer monitor.
Systems utilizing either or both the big and little endian formats, however, require special handling to reorder the data into a format that is understandable to a downstream device such as, for example, a computer monitor or a printer.
After the input word 10 is reordered, the system utilizes a sequencer 18 to produce a bit stream 17 that has the bits arranged in a preselected order for use by the downstream hardware device. To that end, the sequencer 18 includes a 5-bit counter 12 and a 32-to-1 multiplexer 13. In the embodiment shown, the counter 12 counts from 0 to 31 which, when such data is received by the 32-to-1 multiplexer 13, causes the 32-to-1 multiplexer 13 to read first from the first multiplexer input line (i.e., the least significant bit), then the second multiplexer input line, etc. until the final (thirty-second) multiplexer input line (i.e., the most significant bit) is read. A drawback to the sequencer 18 shown in
In accordance with one aspect of the invention, a system converts an input data stream in a first format (identified by a first stream code having at least two bits) into an output data stream in a second format. To that end, the system includes, among other things, a data sequencer for sequencing the input data stream. The sequencer includes a select input having a first number of selection input locations, a data input for receiving the input data stream, and output for transmitting the output data stream. The system further includes a counter having the first number of selection outputs, and first and second logic elements that are each connected to different selection input locations of the data sequencer. More particularly, the first logic element has an output coupled to a first of the selection input locations, and a two-bit input for receiving at least two bits. One bit input of the two-bit input receives a first bit of the stream code, while a second bit input of the two-bit input is coupled to one of the selection outputs of the counter. In a similar manner, the second logic element has an output coupled to a second of the selection input locations, and a two-bit input for receiving at least two bits. One bit input of the two-bit input receives a second bit of the stream code, while a second bit input of the two-bit input is coupled to a second of the selection outputs of the counter. In preferred embodiments, the first and second logic elements control the data sequencer to convert the input data stream into the output data stream in the second format.
In preferred embodiments, the first data stream is received from a first computer element such as, for example, a computer microprocessor, while the second data stream is directed to another computer element such as, for example, a computer monitor or a printer. Moreover, the logic elements preferably are exclusive-or ("XOR") gates, or other devices producing equivalent output. In some embodiments, the first and second data formats are endian formats.
In other aspects of the invention, the second bit input of the first logic element is coupled to a first selection output of the counter, and the second bit input of the second logic element is coupled to a second selection output of the counter. In preferred embodiments, the first selection output outputs a more significant bit than that outputted by the second selection output. In other embodiments, the counter counts consecutively ascending numbers between zero and thirty-one. In a preferred embodiment, the counter is a modulo counter. In yet another embodiment, the system further includes a third logic element which has as output coupled to a third of the selection input locations, and a two-bit input for receiving at least two bits. One bit input of the two-bit input receives a third bit of the stream code, while a second bit input of the two-bit input is coupled to one of the selection outputs of the counter.
The foregoing and other objects and advantages of the invention will be appreciated more fully from the following further description thereof with reference to the accompanying drawings wherein:
In accordance with preferred embodiments, the data converter system 10 eliminates the need for the 32-bit 4-to-1 multiplexer used in the prior art system shown in FIG. 1. Instead (as discussed below), two exclusive-or gates ("XOR" gates 40A and 40B) and a word code generator 50 are used in conjunction with a counter 30 to control a 32-to-1 multiplexer 20 to sequence the input data stream into an output bit stream having a preselected bit order.
In preferred embodiments, the input data stream is in either one of the well known big endian or little endian word formats. The input data stream preferably includes a plurality of four-byte words that each include bytes B0, B1, B2, and B3. Within each byte, eight bits are arranged in a format from the least significant bit to the most significant bit. In preferred embodiments, each byte may be in one of four locations within the ordered word 5. Specifically, the bytes are arranged so that byte B0 includes bits 0-7, byte B1 includes bits 8-15, byte B2 includes bits 16-23, and byte B3 includes bits 24-31. Bits 0-7 are the least significant bits of the word, while bits 24-31 are the most significant bits of the word. As shown below, although the location of each byte within a word is varied, each byte retains its original bits and their assigned values as if the bytes are arranged consecutively from B0 to B3. Each four-byte word is referred to herein as an "ordered word 5."
As shown in table 1 below, the bytes in each ordered word 5 may be arranged in one of four word formats. Each word format is identified by two bit word codes "00","01", "10" and "11." Other word formats also may be utilized in accordance with preferred embodiments of the invention. Table 1 shows the order of the bytes B0-B3 for each type of word format.
TABLE 1 | ||
Word Code | Byte order | Bit order |
00 | B0, B1, B2, B3 | 0-31; |
01 | B1, B0, B3, B2 | 8-15; 0-7; 24-31; 16-23; |
10 | B2, B3, B0, B1 | 16-23; 24-31; 0-7; 8-15; |
11 | B3; B2, B1, B0 | 24-31; 16-23; 8-15; 0-7; |
Each ordered word 5 is passed through the data converter system 10 to produce a resultant bit stream 60 in response to receipt of the two bit word code which corresponds to the word format of the input ordered word 5. In order to produce the correct bit order for the resultant bit stream 60, the count of counter 30 is modified using the XOR gates 40A and 40B. In preferred embodiments, the data converter system 10 is preconfigured to order the resultant bit stream 60 in an order that arranges the bits in ascending order from the least significant bit of byte B0 to the most significant bit of byte B3. In alternative embodiments, the XOR gates 40A and 40B may be moved to other locations on the counter 30 so that other bit orders may be produced for the resultant bit stream 60.
The counter 30 preferably includes five individual outputs that each correspond to one counting bit. In preferred embodiments, the counter 30 counts from zero to thirty-one via the five individual outputs. In a preferred embodiment, counter 30 is a modulo counter. The outputs of counter 30 range from a least significant bit output to a most significant bit output. Preferably, two outputs of counter 30 are coupled to the respective inputs of the first XOR gate 40A and the second XOR gate 40B. In preferred embodiments, the most significant bit output of the counter 30 is coupled to a first input of the first XOR gate 40A, while the second most significant bit output of the counter 30 is coupled to a first input of the second XOR gate 40B. The first and second XOR gates 40A and 40B also preferably include respective second inputs that each are coupled to the output of the (two-bit) word code generator 50. More particularly, the second input of the first XOR gate 40A is coupled to a most significant bit of the word code generator 50, while the second input of the second XOR gate 40B is coupled to a least significant bit of the word code generator 50. The word code generator 50 produces the two bit code that identifies the word format of the input ordered word 5.
As shown in
In order to produce a bit stream 60 that is ordered from bit 0 to bit 31 (byte B0 to byte B3), the two most significant bits of the counter 30 are modified by the two XOR gates 40A and 40B. For example, when a word format identified by the word code "11" is utilized, the XOR gates 40A and 40B modify the two most significant bits of the counter 30 using the word code "11." The modified count of counter 30 that results is shown below in table 2.
As shown above in table 1, the order of bytes B0-B3 of ordered word 5 for the word format identified by the word code "11" would be B3, B2, B1, B0 (bit order 24-31; 16-23;8-15;0-7). When the modified count of counter 30 is received by the multiplexer 20, the multiplexer 20 is controlled to read first from the twenty-fourth multiplexer input line (i.e., the location of the least significant bit, bit zero, in byte B0) then the twenty-fifth multiplexer input line, etc. until the seventh multiplexer input line (i.e., the location of the most significant bit, bit thirty-one, in byte B3) is read.
TABLE 2 | ||||
5-bit Count | Word Code | Modified Count | Byte | Bit |
00000 | 11 | 11000 = 24 | B0 | 0 |
00001 | 11 | 11001 = 25 | B0 | 1 |
. | . | . | . | |
. | . | . | . | |
. | . | . | . | |
01000 | 11 | 10000 = 16 | B1 | 8 |
01001 | 11 | 10001 = 17 | B1 | 9 |
. | . | . | . | |
. | . | . | . | |
. | . | . | . | |
10000 | 11 | 01000 = 8 | B2 | 16 |
10001 | 11 | 01001 = 9 | B2 | 17 |
. | . | . | . | |
. | . | . | . | |
. | . | . | . | |
11000 | 11 | 00000 = 0 | B3 | 24 |
11001 | 11 | 00001 = 1 | B3 | 25 |
. | . | . | . | |
. | . | . | . | |
. | . | . | . | |
Accordingly, the system 10 produces a bit stream 60 for word code "11" in the bit sequence from bit zero to bit thirty-one (i.e., B0, B1, B3, B3). The XOR gates 40A and 40B utilized in the data converter system 10 have circuit area and time delay savings over the 32 bit 4-to-1 multiplexer shown in the prior art system of FIG. 1 and thus, provide better results.
In some embodiments, the input ordered words 5 each represent characters for display on a display device. Each ordered word 5 thus includes various data relating to one character. A high bit in the bit stream 60 (i.e., a bit set to "1") may represent a lit pixel, while a low bit in the bit stream 60 (i.e., a bit set to "0") may represent an unlit pixel. Among other things, the output stream 60 also may represent background and/or foreground data for one character. The data converter system 10 thus receives the input information 5 and rearranges the bits in an order that may be used by the display device.
Although various exemplary embodiments of the invention have been disclosed, it should be apparent to those skilled in the art that various changes and modifications can be made which will achieve some of the advantages of the invention without departing from the true scope of the invention. These and other obvious modifications are intended to be covered by the appended claims.
Patent | Priority | Assignee | Title |
11836407, | Nov 22 2021 | Canon Kabushiki Kaisha | Information processing apparatus and control method thereof, and non- transitory computer-readable storage medium |
6557060, | Apr 25 2000 | Intel Corporation | Data transfer in host expansion bridge |
6725369, | Apr 28 2000 | SAMSUNG ELECTRONICS CO , LTD | Circuit for allowing data return in dual-data formats |
7209066, | Oct 18 2005 | Honeywell International Inc.; Honeywell International, Inc | Circuit and method for extending microcontroller analog input capability |
Patent | Priority | Assignee | Title |
4434437, | Jan 26 1981 | RCA Corporation | Generating angular coordinate of raster scan of polar-coordinate addressed memory |
4615013, | Aug 02 1983 | L-3 Communications Corporation | Method and apparatus for texture generation |
4646232, | Jan 03 1984 | Texas Instruments Incorporated | Microprocessor with integrated CPU, RAM, timer, bus arbiter data for communication system |
4908780, | Oct 14 1988 | Sun Microsystems, Inc. | Anti-aliasing raster operations utilizing sub-pixel crossing information to control pixel shading |
4918626, | Dec 09 1987 | Evans & Sutherland Computer Corp. | Computer graphics priority system with antialiasing |
4991122, | Oct 07 1987 | General Parametrics Corporation | Weighted mapping of color value information onto a display screen |
5107415, | Oct 24 1988 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor which automatically rearranges the data order of the transferred data based on predetermined order |
5123085, | Mar 19 1990 | Sun Microsystems, Inc. | Method and apparatus for rendering anti-aliased polygons |
5200749, | May 28 1991 | GRASS VALLEY US INC | Format converter architecture |
5239654, | Nov 17 1989 | Texas Instruments Incorporated | Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode |
5287438, | Nov 17 1989 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | System and method for drawing antialiased polygons |
5293480, | Aug 06 1990 | AT&T Bell Laboratories | High resolution graphics system architecture |
5313551, | Dec 28 1988 | FOOTHILLS IP LLC | Multiport memory bypass under software control |
5319759, | Apr 22 1991 | Wistron Corp | Burst address sequence generator |
5363475, | Dec 05 1988 | Rediffusion Simulation Limited | Image generator for generating perspective views from data defining a model having opaque and translucent features |
5371840, | Apr 26 1990 | Honeywell Inc. | Polygon tiling engine |
5394524, | Aug 07 1992 | Nvidia Corporation | Method and apparatus for processing two graphics data streams in parallel |
5398328, | Sep 27 1983 | MIPS Technologies, Inc | System for obtaining correct byte addresses by XOR-ING 2 LSB bits of byte address with binary 3 to facilitate compatibility between computer architecture having different memory orders |
5446479, | Feb 27 1989 | Texas Instruments Incorporated | Multi-dimensional array video processor system |
5485559, | Jun 13 1990 | Hitachi, Ltd. | Parallel graphics processor with graphics command distributor and command sequencing method |
5511165, | Oct 23 1992 | International Business Machines Corporation | Method and apparatus for communicating data across a bus bridge upon request |
5519823, | Mar 15 1991 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Apparatus for rendering antialiased vectors |
5544294, | Dec 28 1993 | Samsung Electronics Co., Ltd. | Method for generating a subpixel mask for computer graphics system and apparatus thereof |
5555359, | Nov 30 1993 | Samsung Electronics Co., Ltd. | Computer graphics anti-aliasing method using a partitioned look-up table |
5557734, | Jun 17 1994 | Applied Intelligent Systems, Inc. | Cache burst architecture for parallel processing, such as for image processing |
5561749, | Dec 02 1994 | General Electric Company | Modeling of surfaces employing polygon strips |
5572713, | Aug 09 1990 | ARM Finance Overseas Limited | System and method for obtaining correct byte addresses by using logical operations on 2 least significant bits of byte address to facilitate compatibility between computer architectures having different memory orders |
5572813, | Jun 25 1993 | Daiwa Seiko, Inc. | Tag to be attached onto a fishing rod |
5631693, | Oct 25 1993 | ELECTRONIC SYSTEM PRODUCTS, INC | Method and apparatus for providing on demand services in a subscriber system |
5664114, | May 16 1995 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Asynchronous FIFO queuing system operating with minimal queue status |
5666520, | Mar 29 1993 | Hitachi, Ltd.; Hitachi Microcomputer System, Ltd. | Graphics display system including graphics processor having a register storing a series of vertex data relating to a polygonal line |
5684939, | Jul 09 1993 | Microsoft Technology Licensing, LLC | Antialiased imaging with improved pixel supersampling |
5701365, | Jun 21 1996 | Xerox Corporation | Subpixel character positioning with antialiasing with grey masking techniques |
5706481, | Mar 07 1994 | Microsoft Technology Licensing, LLC | Apparatus and method for integrating texture memory and interpolation logic in a computer system |
5721812, | Mar 28 1995 | Canon Kabushiki Kaisha | Character data processing method and apparatus |
5737455, | Dec 12 1994 | Xerox Corporation | Antialiasing with grey masking techniques |
5757375, | Aug 11 1994 | Nvidia Corporation | Computer graphics system and method employing frame buffer having subpixel field, display fields and a control field for relating display fields to the subpixel field |
5757385, | Jul 21 1994 | International Business Machines Corporation | Method and apparatus for managing multiprocessor graphical workload distribution |
5764237, | Oct 07 1994 | Yamaha Corporation | Texture mapping apparatus computing texture address by fill address |
5821950, | Apr 18 1996 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Computer graphics system utilizing parallel processing for enhanced performance |
5841444, | Mar 21 1996 | SAMSUNG ELECTRONICS CO , LTD | Multiprocessor graphics system |
5870567, | Dec 31 1996 | Hewlett Packard Enterprise Development LP | Delayed transaction protocol for computer system bus |
5883641, | Apr 29 1997 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | System and method for speculative execution in a geometry accelerator |
5914711, | Apr 29 1996 | Gateway, Inc | Method and apparatus for buffering full-motion video for display on a video monitor |
6212628, | Apr 09 1998 | ROADMAP GEO LP III, AS ADMINISTRATIVE AGENT | Mesh connected computer |
EP311798, | |||
EP397180, | |||
EP438194, | |||
EP448286, | |||
EP463700, | |||
EP566299, | |||
EP627682, | |||
EP631252, | |||
EP693737, | |||
EP734008, | |||
EP735463, | |||
EP810553, | |||
EP817009, | |||
EP825550, | |||
EP840279, | |||
WO8607646, | |||
WO9200570, | |||
WO9306553, | |||
WO9721192, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 15 1999 | 3Dlabs Inc. Led. | (assignment on the face of the patent) | / | |||
Oct 07 1999 | MONTEIRO, ANAND C | Intergraph Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 010309 | /0454 | |
Nov 30 1999 | INTEGRAPH CORPORATION | FOOTHILL CAPITAL CORPORATION | SECURITY AGREEMENT | 010425 | /0955 | |
Aug 16 2000 | Intergraph Corporation | 3DLABS | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011122 | /0951 | |
Aug 16 2000 | INTERGRAPH CORPORATION, A DELAWARE CORPORATION | 3DLABS, INC LTD | CORRECTION: REEL 011122 FRAMES 0951-0960 | 018480 | /0116 | |
Jul 27 2001 | 3DLABS ALABAMA INC | FOOTHILL CAPITAL CORPORATION | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 012058 | /0496 | |
Jul 27 2001 | 3DLABS INC , LTD | FOOTHILL CAPITAL CORPORATION | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 012058 | /0496 | |
Sep 09 2003 | WELL FARGO FOOTHILL, INC , FORMERLY KNOWN AS FOOTHILL CAPITAL CORPORATION | 3DLABS ALABAMA INC | RELEASE OF SECURITY AGREEMENT | 015722 | /0752 | |
Sep 09 2003 | WELL FARGO FOOTHILL, INC , FORMERLY KNOWN AS FOOTHILL CAPITAL CORPORATION | 3DLABS INC , LTD , A COMPANY ORGANIZED UNDER THE LAWS OF BERMUDA | RELEASE OF SECURITY AGREEMENT | 015722 | /0752 | |
Sep 09 2003 | WELL FARGO FOOTHILL, INC , FORMERLY KNOWN AS FOOTHILL CAPITAL CORPORATION | 3DLABS LIMITED, A COMPANY ORGANIZED UNDER THE LAWS OF ENGLAND | RELEASE OF SECURITY AGREEMENT | 015722 | /0752 | |
Sep 09 2003 | WELL FARGO FOOTHILL, INC , FORMERLY KNOWN AS FOOTHILL CAPITAL CORPORATION | 3DLABS INC , A CORP OF DE | RELEASE OF SECURITY AGREEMENT | 015722 | /0752 | |
Jan 06 2011 | 3DLABS INC , LTD | ZIILABS INC , LTD | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 032588 | /0125 | |
Aug 09 2017 | ZIILABS INC , LTD | RPX Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 044442 | /0087 | |
Jun 19 2018 | RPX Corporation | JEFFERIES FINANCE LLC | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 046486 | /0433 | |
Oct 23 2020 | JEFFERIES FINANCE LLC | RPX Corporation | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 054486 | /0422 |
Date | Maintenance Fee Events |
Apr 14 2006 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
May 03 2010 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Apr 16 2014 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Nov 12 2005 | 4 years fee payment window open |
May 12 2006 | 6 months grace period start (w surcharge) |
Nov 12 2006 | patent expiry (for year 4) |
Nov 12 2008 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 12 2009 | 8 years fee payment window open |
May 12 2010 | 6 months grace period start (w surcharge) |
Nov 12 2010 | patent expiry (for year 8) |
Nov 12 2012 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 12 2013 | 12 years fee payment window open |
May 12 2014 | 6 months grace period start (w surcharge) |
Nov 12 2014 | patent expiry (for year 12) |
Nov 12 2016 | 2 years to revive unintentionally abandoned end. (for year 12) |