Source: http://www.google.com/patents/US6515904?ie=ISO-8859-1
Timestamp: 2014-07-11 02:26:25
Document Index: 789277299

Matched Legal Cases: ['Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 09']

Patent US6515904 - Method and system for increasing programming bandwidth in a non-volatile ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign in<nobr>Advanced Patent Search</nobr>PatentsThe preferred embodiments described herein provide a method and system for increasing programming bandwidth in a non-volatile memory device. In one preferred embodiment, a memory device is provided with a plurality of bits to be stored in a respective plurality of memory cells along a wordline. Some...http://www.google.com/patents/US6515904?utm_source=gb-gplus-sharePatent US6515904 - Method and system for increasing programming bandwidth in a non-volatile memory deviceAdvanced Patent SearchPublication numberUS6515904 B2Publication typeGrantApplication numberUS 09/895,960Publication dateFeb 4, 2003Filing dateJun 29, 2001Priority dateMar 21, 2001Fee statusPaidAlso published asUS20020136059Publication number09895960, 895960, US 6515904 B2, US 6515904B2, US-B2-6515904, US6515904 B2, US6515904B2InventorsChristopher S. Moore, Bendik Kleveland, Roger W. March, James M. Cleeves, Roy E. ScheuerleinOriginal AssigneeMatrix Semiconductor, Inc.Export CitationBiBTeX, EndNote, RefManPatent Citations (17), Non-Patent Citations (1), Referenced by (16), Classifications (18), Legal Events (8) External Links: USPTO, USPTO Assignment, EspacenetMethod and system for increasing programming bandwidth in a non-volatile memory deviceUS 6515904 B2Abstract The preferred embodiments described herein provide a method and system for increasing programming bandwidth in a non-volatile memory device. In one preferred embodiment, a memory device is provided with a plurality of bits to be stored in a respective plurality of memory cells along a wordline. Some of the bits represent a programmed state, and others represent an un-programmed state. The duration of the programming pulse applied to the wordline is determined by the number of bits that represent the programmed state. In another preferred embodiment, the plurality of bits to be stored in the memory device comprises a first set of bits representing a modification to the stored data and a second set of bits representing an un-programmed state. Other preferred embodiments are provided, and each of the preferred embodiments can be used alone or in combination with one another.
CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of the following U.S. provisional applications, each of which was filed on Mar. 21, 2001: U.S. Provisional Application No. 60/277,794 U.S. Provisional Application No. 60/277,815 and U.S. Provisional Application No. 60/277,738 Each of the above-referenced applications is hereby incorporated by reference.
BACKGROUND In programming a non-volatile memory cell, a programming pulse is applied on the wordline of the memory cell, and the bitline of the memory cell is driven to ground. After a period of time, the memory cell is placed in a programmed state. In some programming methods, the duration of the programming pulse is made relatively long to ensure that the memory cell will be programmed. Because the duration of the programming pulse is often set for worst-case conditions, this �over-provisioning� approach can result in excessive average programming time, power, and energy. Additional delays are introduced because memory cells are programmed on a wordline-to-wordline basis. Specifically, the duration of the programming pulse applied to a wordline is the same regardless of the number of memory cells that are to be programmed. For example, if the duration of the programming pulse is 10 microseconds per memory cell and there are 1024 memory cells along a wordline, a programming pulse is applied to the wordline for 10,240 microseconds even if only one memory cell is to be programmed. If the first memory cell is to be programmed, its bitline is driven to ground during the first 10 microseconds that the programming pulse is applied to the wordline; otherwise, the bitline is kept high. After the first 10 microseconds have passed, the second memory cell can be programmed by driving its bitline to ground. This process continues until the last memory cell along the wordline is given an opportunity to be programmed.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is an illustration of a memory array of a preferred embodiment.
DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENTS The preferred embodiments described herein relate to increasing programming bandwidth in a non-volatile memory device (i.e., a memory device with memory cells whose data is not lost or altered when electrical power is removed). Although any suitable memory array can be used, in one preferred embodiment, the memory cell is part of a three-dimensional memory array, which provides important economies in terms of reduced size and associated reductions in manufacturing cost. Additionally, although any suitable type of memory cell can be used, in one preferred embodiment, the memory cell is a write-once memory cell comprising an antifuse and a diode, as described in U.S. Pat. No. 6,034,882 to Johnson et al. and U.S. patent application Ser. No. 09/638,428, both of which are hereby incorporated by reference. In its un-programmed state, the antifuse is intact, and the memory cell holds a Logic 1. When suitable voltages are applied to the appropriate wordline and bitline, the antifuse of the memory cell is blown, and the diode is connected between the wordline and the bitline. This places the memory cell in a programmed (Logic 0) state. Alternatively, the un-programmed state of the memory cell can be Logic 0, and the programmed state can be Logic 0. (Memory cells that support multiple programmed states can also be used.) Being write-once, the initial, un-programmed digital state cannot be restored once the memory cell is switched to the programmed digital state. Instead of being write-once, the memory cell can be write-many. Unlike the digital state of a write-once memory cell, the digital state of a write-many memory cell can be switched between �un-programmed� and �programmed� digital states. When referring to write-many memory cells, the un-programmed digital state refers to the digital state of the memory cell before a programming operation. Accordingly, the un-programmed digital state can refer to either Logic 0 or Logic 1 (in a two-state memory cell) and does not necessarily refer to the digital state in which that memory cell was fabricated.
Turning now to the drawings, FIG. 1 is an illustration of a memory array of a preferred embodiment. The memory array comprises a plurality of memory cells 20, 30, 40, 50 along a wordline 60. Each of the memory cells 20, 30, 40, 50 has a respective bitline 25, 35, 45, 55. For simplicity, other memory cells, wordlines, and bitlines of the memory array are not shown in FIG. 1. The memory array also comprises a read/write controller 70 connected to the bitlines 25, 35, 45, 55 of the memory cells 20, 30, 40, 50. The read/write controller 70 is preferably an integrated circuit coupled with the column decoder. As used herein, the terms �connected to� and �coupled with� are intended broadly to cover components that are connected to or coupled with one another either directly or indirectly through one or more named or unnamed intervening components. It is important to note that although controller 70 is used for both read and write operations in this preferred embodiment, the controller 70 can be used exclusively for write operations or also used for other operations in addition to write (and read) operations.
To program a memory cell, suitable voltages are applied to the wordline and bitline associated with that memory cell. For example, to program memory cell 20, a programming pulse is applied on wordline 60, and the read/write controller 70 grounds bitline 25. In FIG. 1, memory cells 20, 30, 40, 50 are in the un-programmed, Logic 1 state, and bits 1010 are to be stored in memory cells 20, 30, 40, 50, respectively. Some of these bits represent the programmed state (Logic 0), and others represent the un-programmed state (Logic 0). Assume the duration of the programming pulse is 10 microseconds per memory cell. In prior programming approaches, the memory device would spend 40 microseconds to store the bits in the memory cells even though only two memory cells need to be programmed. With this preferred embodiment, the read/write controller 70 detects that only memory cells 30 and 50 need to be programmed and �skips� memory cells 20 and 40.
In operation, the read/write controller 70 skips memory cell 20, drives bitline 35 to ground for 10 microseconds to program memory cell 30, skips memory cell 40, and then drives bitline 55 to ground for 10 microseconds to program memory cell 50. After memory cell 50 has been programmed, the read/write controller 70 signals that the writing operation is complete, and the programming pulse is removed from wordline 60. In this way, the duration of the programming pulse applied on the wordline 60 is determined by a number of bits representing a programmed state that are to be stored in the memory cells 20, 30, 40, 50. Accordingly, the duration of the programming pulse applied to wordline 60 is long enough to program memory cells 30 and 50 but not long enough to program all of the memory cells 20, 30, 40, 50 along the wordline 60. This is shown schematically in FIG. 1 by the phrase �programming pulse for two memory cells.� By skipping the memory cells that do not need to be programmed, programming bandwidth (the number of memory cells that can be programmed per unit time) increased by 50% in this example. In addition, reducing the amount of time the memory array is biased during a program operation can improve programming quality.
In some programming methods, the duration of the programming pulse per memory cell is over-provisioned to guarantee that the memory cell will be programmed. This approach can result in excessive programming time and power. For example, if a memory cell can be programmed by grounding its bitline for 2 microseconds instead of 10 microseconds, 8 microseconds are wasted for each memory cells. To farther increase programming bandwidth, it is preferred that the state of a memory cell be sensed while that memory cell is being programmed, as disclosed in �Memory Device and Method for Sensing while Programming a Non-Volatile Memory Cell,� U.S. patent application Ser. No. 09/896,815, filed Jun. 29, 2001, which is hereby incorporated by reference. With this sensing technique, the duration of the programming pulse can be reduced from 10 microseconds per memory cell to 2 microseconds per memory cell.
FIG. 2 is an illustration of the memory array of FIG. 1 implemented using one of the sensing-while-programming techniques disclosed in the above-referenced patent application. To simplify the drawing, memory cells 40 and 50 are not shown. In operation, address selector circuitry 75, which can include a row decoder and/or a column decoder, applies a �start programming� signal to the read/write controller 70. The read/write controller 70 skips memory cell 20 by applying a low signal on WRITE0_1 and programs memory cell 30 by applying a high signal on WRITE0_2. The high signal on WRITE0_2 selects input 1 of multiplexor 100, which applies a voltage of nbias to the gate of the pulldown transistor 110 via multiplexor 120. After the comparator 130 senses that memory cell 30 has been programmed, the pulldown transistor 110 is turned off. Read/write controller 70 then skips memory cell 40 by applying a low signal on WRITE0_3 and programs memory cell 50 by applying a high signal on WRITE0_4. After the comparator associated with memory cell 50 senses that memory cell 50 has been programmed, the read/write controller 70 sends a �stop programming� signal to the address selector circuitry 75, which removes the programming pulse from the wordline 60.
It should be noted that any of the embodiments disclosed in the above-referenced patent application can be used. For example, instead of using a current-controlled bitline pulldown, a pulse-train-controlled bitline pulldown can be used. Additionally, while the memory cells were programmed sequentially in this example (i.e., bitline 55 was grounded after bitline 35 was grounded), memory cells can be simultaneously programmed (i.e., bitlines 35 and 55 can be grounded at the same time). Additionally, other alternative implementations can be used to skip bits. For example, in the above-described embodiments, the read/write controller 75 detected the logic state being written and skipped the appropriate memory cells by not grounding their bitlines. As an alternative to this �pre-write� technique of skipping bits, a �during write� technique can be used in which the bitlines of skipped memory cells are grounded, and detection circuitry associated with the memory cells is used to skip memory cells. For example, as shown in FIG. 3 with reference to memory cell 20, the WRITE0_1 signal can be applied (in inverted form) to an OR gate 140 following the comparator 150 instead of to a multiplexor interposed between the current mirroring transistor 160 and multiplexor 170. In operation, a low WRITE0_1 signal is inverted and supplied to the OR gate 140, which asserts the Programmed signal. In contrast, an inverted high WRITE0_1 signal supplies a 0 to the OR gate 140, and the Programmed signal is asserted only when the comparator 150 signals that memory cell 20 has been programmed. In another alternative, the read/write controller 75 is coupled to the comparator 150 and changes the reference voltage Vref based on the desired logic value so that the comparator 150 asserts the Programmed signal when leakage current is detected. This alternative can be implemented using a multiplexor or standard logic gates, for example.
Consider, for example, the situation where one wishes to insert 8 bytes of new data into a page of data (see FIG. 6). In one approach, the old data is masked around the new data, and the entire page of data is written in the memory device 510 (see FIG. 7). Using the bit skipping techniques described above, bandwidth would be improved by skipping the 1s in both the old data mask (which includes 1s and 0s) and the new data. However, the memory cells storing the 0s of the old data would not be skipped even though they are already in the programmed state. To further improve bandwidth, instead of masking the old data before and after the new data, only 1s are placed around the new data so that all of the memory cells associated with the bytes before and after the new data would be skipped (see FIG. 8). Stated more generally, the data storage device 500 provides the memory device 510 with a plurality of bits (the page of data) comprising a first set of bits representing a modification (the new data) to the stored data (the previously-stored page) and a second set of bits representing the un-programmed state (Logic 0). As used herein, a �set� can include one or more than one member. Another benefit to this preferred embodiment is that a system software developer does not have to use as much system RAM to store data. To reduce programming errors, typically a programmer will mask around the desired area to be written with the values that are already contained in the page. If the data storage device 500 writes 1s around the desired data, system memory to contain the old data is not required.
There are several alternatives that can be used with these preferred embodiments. For example, in the embodiments described above, the programming pulse was removed from the wordline when the read/write circuitry 70 sent a �stop programming� signal to address selector circuitry 75 after programming the appropriate memory cells. In this way, the duration of the programming pulse is determined by an action that takes place after the memory cells are programmed. As an alternative, the read/write circuitry 70 can determine how many memory cells need to be programmed and send this information to the address selector circuitry 75 before programming begins. The address selector circuitry 75 then applies a programming pulse of a duration suitable to program those memory cells. In this alternative, the duration of the programming pulse is determined by an action that takes place before the memory cells are programmed. Further, the functionality described with respect to the hardware and/or software components in the data storage device 500 can be distributed to the memory device as desired.
On Mar. 21, 2001, the following U.S. patent applications were filed, each of which is hereby incorporated by reference: �Memory Device with Row and Column Decoder Circuits Arranged in a Checkerboard Pattern under a Plurality of Memory Arrays,� U.S. Provisional Application No. 60/277,794 �Passive Element Memory Array and Related Circuits Useful Therefor,� U.S. Provisional Application No. 60/277,815; �Three-Dimensional Memory Array,� U.S. Provisional Application No. 60/277,738; and �Three-Dimensional Memory Array and Method of Fabrication,� U.S. Application No. 09/814,727.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4763305 *Nov 27, 1985Aug 9, 1988Motorola, Inc.Intelligent write in an EEPROM with data and erase checkUS4860259Dec 1, 1988Aug 22, 1989Mitsubishi Denki Kabushiki KaishaDram with reduced-test-time modeUS5287326 *Sep 24, 1992Feb 15, 1994Nec CorporationNon-volatile semiconductor memory device selectively skipping memory cells in programmingUS5442589Oct 26, 1993Aug 15, 1995Gemplus Card InternationalFuse circuitry having physical fuse and non-volatile memory cell coupled to a detectorUS5532964May 4, 1995Jul 2, 1996Sandisk CorporationMethod and circuit for simultaneously programming and verifying the programming of selected EEPROM cellsUS5600593Dec 6, 1994Feb 4, 1997National Semiconductor CorporationApparatus and method for reducing erased threshold voltage distribution in flash memory arraysUS5654917 *May 14, 1996Aug 5, 1997International Business Machines CorporationProcess for making and programming a flash memory arrayUS5768208Jun 18, 1996Jun 16, 1998Microchip Technology IncorporatedFail safe non-volatile memory programming system and method thereforUS5784320 *Sep 27, 1996Jul 21, 1998Intel CorporationMethod and apparatus for reducing power consumption in a memory by employing a conditional write controllerUS5864503May 30, 1997Jan 26, 1999Sgs-Thomson Microelectronics S.R.L.Method for verifying electrically programmable non-volatile memory cells of an electrically programmable non-volatile memory device after programmingUS6002614Nov 21, 1997Dec 14, 1999Btg International Inc.Memory apparatus including programmable non-volatile multi-bit memory cell, and apparatus and method for demarcating memory states of the cellUS6011715Nov 3, 1998Jan 4, 2000Stmicroelectronics S.R.L.Method for multilevel programming of a nonvolatile memory, and a multilevel nonvolatile memoryUS6034882Nov 16, 1998Mar 7, 2000Matrix Semiconductor, Inc.Vertically stacked field programmable nonvolatile memory and method of fabricationUS6076138Dec 29, 1997Jun 13, 2000Hyundai Electronics Industries Co., Ltd.Method of pre-programming a flash memory cellUS6163484Apr 26, 1999Dec 19, 2000Nec CorporationNon-volatile semiconductor storage device having improved program/erase/over erase verifyUS6163848Sep 22, 1993Dec 19, 2000Advanced Micro Devices, Inc.System and method for re-starting a peripheral bus clock signal and requesting mastership of a peripheral busUS6195283May 11, 1998Feb 27, 2001Stmicroelectronics S.R.L.Method and device for analog programming of non-volatile memory cells* Cited by examinerNon-Patent CitationsReference1Information Disclosure Statement, 3 pages, Sep. 27, 2001.Referenced byCiting PatentFiling datePublication dateApplicantTitleUS6940744 *Oct 6, 2003Sep 6, 2005Unity Semiconductor CorporationAdaptive programming technique for a re-writable conductive memory deviceUS7054183 *Sep 2, 2005May 30, 2006Unity Semiconductor CorporationAdaptive programming technique for a re-writable conductive memory deviceUS7177183Sep 30, 2003Feb 13, 2007Sandisk 3D LlcMultiple twin cell non-volatile memory array and logic block structure and method thereforUS7383476Feb 9, 2004Jun 3, 2008Sandisk 3D LlcSystem architecture and method for three-dimensional memoryUS7505344 *Sep 24, 2002Mar 17, 2009Sandisk 3D LlcCurrent sensing method and apparatus particularly useful for a memory array of cells having diode-like characteristicsUS7613868Jun 9, 2004Nov 3, 2009Headway Technologies, Inc.Method and system for optimizing the number of word line segments in a segmented MRAM arrayUS7773443Mar 16, 2009Aug 10, 2010Sandisk 3D LlcCurrent sensing method and apparatus for a memory arrayUS8094510Jul 30, 2010Jan 10, 2012Sandisk 3D LlcMemory array incorporating noise detection lineUS8108691Dec 22, 2005Jan 31, 2012Sandisk Technologies Inc.Methods used in a secure memory card with life cycle phasesUS8220039Feb 26, 2010Jul 10, 2012Sandisk Technologies Inc.Mass storage device with automated credentials loadingUS8270193Jan 29, 2010Sep 18, 2012Unity Semiconductor CorporationLocal bit lines and methods of selecting the same to access memory elements in cross-point arraysUS8321686 *Dec 22, 2005Nov 27, 2012Sandisk Technologies Inc.Secure memory card with life cycle phasesUS8423788Feb 7, 2005Apr 16, 2013Sandisk Technologies Inc.Secure memory card with life cycle phasesUS8559209Jun 10, 2011Oct 15, 2013Unity Semiconductor CorporationArray voltage regulating technique to enable data operations on large cross-point memory arrays with resistive memory elementsUS8565003Jun 28, 2011Oct 22, 2013Unity Semiconductor CorporationMultilayer cross-point memory array having reduced disturb susceptibilityUS8638584Feb 2, 2010Jan 28, 2014Unity Semiconductor CorporationMemory architectures and techniques to enhance throughput for cross-point arrays* Cited by examinerClassifications U.S. Classification365/185.19, 365/185.28, 365/185.22International ClassificationG11C7/06, G11C7/18, G11C8/08, G11C16/10Cooperative ClassificationG11C7/062, G11C8/08, G11C2207/063, G11C16/10, G11C7/067, G11C7/18European ClassificationG11C16/10, G11C7/18, G11C7/06S, G11C8/08, G11C7/06CLegal EventsDateCodeEventDescriptionJul 8, 2010FPAYFee paymentYear of fee payment: 8Mar 2, 2007ASAssignmentOwner name: SANDISK 3D LLC, CALIFORNIAFree format text: CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECTIVE MERGER TO ADD PAGES TO THE MERGER DOCUMENT PREVIOUSLY RECORDED PREVIOUSLY RECORDED ON REEL 017544 FRAME 0769;ASSIGNOR:MATRIX SEMICONDUCTOR, INC.;REEL/FRAME:018950/0686Effective date: 20051020Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECTIVE MERGER TO ADD PAGES TO THE MERGER DOCUMENT PREVIOUSLY RECORDED PREVIOUSLY RECORDED ON REEL 017544 FRAME 0769. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER.;ASSIGNOR:MATRIX SEMICONDUCTOR, INC.;REEL/FRAME:018950/0686Owner name: SANDISK 3D LLC,CALIFORNIAFree format text: CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECTIVE MERGER TO ADD PAGES TO THE MERGER DOCUMENT PREVIOUSLY RECORDED PREVIOUSLY RECORDED ON REEL 017544 FRAME 0769. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:MATRIX SEMICONDUCTOR, INC.;US-ASSIGNMENT DATABASE UPDATED:20100316;REEL/FRAME:18950/686Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECTIVE MERGER TO ADD PAGES TO THE MERGER DOCUMENT PREVIOUSLY RECORDED PREVIOUSLY RECORDED ON REEL 017544 FRAME 0769. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:MATRIX SEMICONDUCTOR, INC.;REEL/FRAME:18950/686Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECTIVE MERGER TO ADD PAGES TO THE MERGER DOCUMENT PREVIOUSLY RECORDED PREVIOUSLY RECORDED ON REEL 017544 FRAME 0769. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:MATRIX SEMICONDUCTOR, INC.;REEL/FRAME:018950/0686Jul 25, 2006FPAYFee paymentYear of fee payment: 4Jun 5, 2006ASAssignmentOwner name: SANDISK 3D LLC, CALIFORNIAFree format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:017718/0550Effective date: 20060113Apr 28, 2006ASAssignmentOwner name: SANDISK 3D LLC, CALIFORNIAFree format text: MERGER;ASSIGNOR:MATRIX SEMICONDUCTOR, INC.;REEL/FRAME:017544/0769Effective date: 20051020Owner name: SANDISK 3D LLC,CALIFORNIAFree format text: MERGER;ASSIGNOR:MATRIX SEMICONDUCTOR, INC.;US-ASSIGNMENT DATABASE UPDATED:20100316;REEL/FRAME:17544/769Free format text: MERGER;ASSIGNOR:MATRIX SEMICONDUCTOR, INC.;REEL/FRAME:17544/769Jun 25, 2002ASAssignmentOwner name: SILICON VALLEY BANK, CALIFORNIAFree format text: SECURITY AGREEMENT;ASSIGNOR:MATRIX SEMICONDUCTOR, INC.;REEL/FRAME:012994/0547Effective date: 20020425Owner name: SILICON VALLEY BANK LOAN DOCUMENTATION HA155 3003Free format text: SECURITY AGREEMENT;ASSIGNOR:MATRIX SEMICONDUCTOR, INC. /AR;REEL/FRAME:012994/0547May 1, 2002ASAssignmentOwner name: VENTURE LENDING & LEASING III, INC., AS AGENT, CALFree format text: SECURITY AGREEMENT;ASSIGNOR:MATRIX SEMICONDUCTOR, INC.;REEL/FRAME:012831/0698Effective date: 20020405Owner name: VENTURE LENDING & LEASING III, INC., AS AGENT 2010Free format text: SECURITY AGREEMENT;ASSIGNOR:MATRIX SEMICONDUCTOR, INC. /AR;REEL/FRAME:012831/0698Oct 1, 2001ASAssignmentOwner name: MATRIX SEMICONDUCTOR, INC., CALIFORNIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MOORE, CHRISTOPHER S.;KLEVELAND, BENDIK;MARCH, ROGER W.;AND OTHERS;REEL/FRAME:012216/0094;SIGNING DATES FROM 20010910 TO 20010920Owner name: MATRIX SEMICONDUCTOR, INC. 3230 SCOTT BOULEVARD SAOwner name: MATRIX SEMICONDUCTOR, INC. 3230 SCOTT BOULEVARDSANFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MOORE, CHRISTOPHER S. /AR;REEL/FRAME:012216/0094;SIGNINGDATES FROM 20010910 TO 20010920RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google