US8405530B2 - Encoding data based on weight constraints - Google Patents
Encoding data based on weight constraints Download PDFInfo
- Publication number
- US8405530B2 US8405530B2 US13/211,695 US201113211695A US8405530B2 US 8405530 B2 US8405530 B2 US 8405530B2 US 201113211695 A US201113211695 A US 201113211695A US 8405530 B2 US8405530 B2 US 8405530B2
- Authority
- US
- United States
- Prior art keywords
- crosspoints
- memory array
- data
- matrix
- indicator
- 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 - Fee Related, expires
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
- H03M7/20—Conversion to or from n-out-of-m codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/001—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits characterised by the elements used
- H03M7/005—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits characterised by the elements used using semiconductor devices
Definitions
- Electronic data is typically represented using a binary number system.
- the binary number system is one in which values may take on one of two states, typically represented by a “1” and a “0”.
- Various types of memory systems have been developed which include small programmable devices that store a single bit as either a “1” or a “0”.
- a transistor may be used as a switch which is either in an ON state or an OFF state. The ON state may be used to represent a “1” while the OFF state may be used to represent a “0”.
- crossbar memory architecture One type of memory architecture is the crossbar memory architecture.
- the crossbar architecture includes two sets of interconnecting conductive wire segments. A memory element is placed at each crosspoint between each wire segment.
- crossbar architecture may employ memristors as memory elements.
- a memristor is a device which is able to change the value of its resistance in response to various programming conditions. A memristor may represent a “1” while in a low resistance state and a “0” while in a high resistance state.
- resistance based memory elements such as memristors
- FIG. 1 is a diagram showing an illustrative physical computing system, according to one example of principles described herein.
- FIG. 2 is a diagram showing an illustrative crossbar memory array, according to one example of principles described herein.
- FIG. 3A is a diagram showing an illustrative crossbar array structure, according to one example of principles described herein.
- FIG. 3B is a diagram showing an illustrative structure matrix associated with the crossbar structure of FIG. 3A , according to one example of principles described herein.
- FIG. 4A is a diagram showing the assignment of indicator crosspoints and data crosspoints on the structure matrix, according to one example of principles described herein.
- FIG. 4B is a diagram showing an illustrative assignment of indicator crosspoints and data crosspoints within a crossbar memory array, according to one example of principles described herein.
- FIG. 5A is a diagram showing an illustrative placement of data within a crossbar array, according to one example of principles described herein.
- FIG. 5B is a diagram showing an illustrative decoding table, according to one example of principles described herein.
- FIG. 5C is a diagram showing an illustrative table comparing data at different stages in an encoding/decoding process, according to one example of principles described herein.
- FIG. 6 is a diagram showing an illustrative disjointed crossbar array structure, according to one example of principles described herein.
- FIG. 7 is a flowchart showing an illustrative method for encoding data for placement into a weight constrained crossbar array, according to one example of principles described herein.
- resistance based memory elements such as memristors
- the present specification discloses methods and systems for encoding data to be placed into a crossbar memory array so that each conductor within the memory array does not violate a weight constraint that restricts how many crosspoints along a particular conductor may be in a low resistive state. For example, if a low resistive state represents a logical ‘1’, then the number of memory elements along the crosspoints of the memory array that store a ‘1’ may be limited to less than half of the total number of crosspoints along a particular conductor.
- a set of crosspoints within the entire memory array are reserved as indicator crosspoints.
- the remaining crosspoints are used to store data and will be referred to as data crosspoints.
- a matrix is then formed such that each crosspoint of the memory array corresponds to an element of that matrix.
- the elements of that matrix that correspond to indicator crosspoints are initialized to a bit value that represents a fixed resistive state.
- This fixed resistive state may be relatively high, and thus little current will flow through the memory element at that crosspoint when in that state.
- a high resistive state will be represented by a bit value of ‘0’ and a low resistive state will be represented by a bit value of ‘1’.
- the elements within the matrix that correspond to indicator crosspoints are initialized to ‘0’.
- This matrix may be stored in any type of computer memory such as a cache of a memory controller for the crossbar memory array.
- An input stream of data is then placed into the matrix elements that correspond to the data crosspoints of the crossbar memory array.
- the data in the corresponding matrix were to be written to the crossbar memory array, there would be several weight constraint violations. For example, there may be many conductors for which more than half of the crosspoints are storing a ‘1’.
- the data is encoded by examining the matrix elements that correspond to a particular conductor and flipping all of the bits corresponding to that conductor if that conductor is in violation of the weight constraint. Flipping a bit refers to changing a ‘1’ to a ‘0’ or a ‘0’ to a ‘1’.
- crosspoints within a crossbar array that are designated as indicator crosspoints are selected so that for each data crosspoint within the memory array, it can be determined whether the bit corresponding to that data crosspoint has been flipped an odd or even number of times by examining the state of a subset of the indicator crosspoints. This information is used during the decoding process. If a bit has been flipped an even number of times, then it will not have to be flipped during the decoding process. However, if a bit has been flipped an odd number of times during the encoding process, then that bit will be flipped during the decoding process.
- crossbar array data to be placed in any type or structure of crossbar array may be encoded so that weight constraints are not violated.
- This general method of encoding will work despite the topology of the crossbar array. For example, this method will work on even crossbar arrays where each conductor is aligned with an adjacent parallel conductor. It will also work with disjointed crossbar arrays where each conductor may be offset from an adjacent parallel conductor.
- FIG. 1 is a diagram showing an illustrative physical computing system ( 100 ).
- a physical computing system ( 100 ) may be used to encode the bits which are to be stored in a crossbar memory structure.
- a physical computing system ( 100 ) may include a processor ( 110 ) and a memory ( 102 ) having a memory controller ( 104 ).
- the memory ( 102 ) has encoding and decoding software ( 106 ) and data bits ( 108 ) stored thereon.
- the physical computing system ( 100 ) may be embodied as several different types of computing devices including, but not limited to, a server, a laptop computer, a desktop computer, or a Personal Digital Assistant (PDA), or a general processing device.
- the physical computing system may be a piece of hardware designed specifically for encoding or decoding bits.
- the physical computing system ( 100 ) may include a form of memory ( 102 ) including, but not limited to, a magnetic disk drive, a solid state drive, and/or an optical disc drive.
- a memory controller ( 104 ) is a digital circuit which manages the flow of data to and from the memory ( 102 ).
- a memory controller ( 104 ) is integrated with the memory ( 102 ) while in some cases the memory controller is separate from the memory ( 102 ).
- the encoding software ( 106 ) stored by the memory ( 102 ) may be embodied as a computer readable code configured to cause a processor ( 110 ) to execute various instructions related to encoding data bits ( 108 ) to be stored on a crossbar memory structure.
- FIG. 2 is a diagram showing an illustrative crossbar memory array ( 200 ).
- the crossbar array ( 200 ) includes a set of horizontal conductors ( 202 ) which are generally in parallel. Additionally, a set of vertical conductors ( 204 ) is generally perpendicular to, and intersects, the horizontal conductors ( 202 ). Programmable memory elements are placed at the crosspoints ( 206 ) between a horizontal conductor ( 208 ) and a vertical conductor ( 210 ).
- the programmable memory elements may be memristive devices.
- Memristive devices exhibit a “memory” of past electrical conditions.
- a memristive device may include a matrix material which contains mobile dopants. These dopants can be moved within a matrix to dynamically alter the electrical operation of the memristive device.
- the motion of dopants can be induced by the application of a programming condition such as an applied electrical voltage across a suitable matrix.
- the programming voltage generates a relatively high electrical field through the memristive matrix and alters the distribution of dopants. After removal of the electrical field, the location and characteristics of the dopants remain stable until the application of another programming electrical field. For example, by changing the dopant configurations within a memristive matrix, the electrical resistance of the device may be altered.
- the memristive device is read by applying a lower reading voltage which allows the internal electrical resistance of the memristive device to be sensed but does not generate a high enough electrical field to cause significant dopant motion. Consequently, the state of the memristive device may remain stable over long time periods and through multiple read cycles.
- the crossbar array ( 200 ) may be used to form a non-volatile memory array.
- Each of the programmable memory elements at the crosspoints ( 206 ) is used to represent one or more bits of data.
- individual conductors ( 208 , 210 ) in FIG. 2 are shown with rectangular cross sections, crossbars may also have square, circular, elliptical, or more complex cross sections.
- the lines may also have many different widths, diameters, aspect ratios and/or eccentricities.
- the crossbars may be nanowires, sub-microscale wires, microscale wires, or wires with larger dimensions.
- the crossbar architecture ( 200 ) may be integrated into a Complimentary Metal-Oxide-Semiconductor (CMOS) circuit or other conventional computer circuitry.
- CMOS Complimentary Metal-Oxide-Semiconductor
- Each individual wire segment may be connected to the CMOS circuitry by a via ( 212 ).
- the via ( 212 ) may be embodied as an electrically conductive path through the various substrate materials used in manufacturing the crossbar architecture.
- This CMOS circuitry can provide additional functionality to the memristive device such as input/output functions, buffering, logic, configuration, or other functionality.
- Multiple crossbar arrays can be formed over the CMOS circuitry to create a multilayer circuit.
- FIG. 3A is a diagram showing an illustrative crossbar array structure.
- the crossbar array ( 300 ) of FIG. 3A is a simplified crossbar array that is used to illustrate the process of selecting indicator crosspoints and data crosspoints within a crossbar memory array.
- the crossbar array ( 300 ) includes a set of horizontal conductors ( 302 ) which are labeled 1 , 2 , and 3 .
- the crossbar array ( 300 ) also includes a set of vertical conductors ( 304 ) which are labeled 4 , 5 , and 6 .
- Each crosspoint ( 306 ) between the horizontal conductors ( 302 ) and the vertical conductors ( 304 ) is identified with a letter of the alphabet.
- FIG. 3B is a diagram showing an illustrative structure matrix ( 310 ) associated with the crossbar structure of FIG. 3A .
- the structure of the crossbar array ( 300 ) can be represented in a binary matrix which will be referred to as a structure matrix.
- a binary matrix is one in which each element has a value of either ‘1’ or ‘0’.
- the row of each structure matrix represents each conductor within the crossbar array ( 300 ).
- rows 1 , 2 , and 3 correspond to the horizontal conductors ( 312 ) and rows 4 , 5 , and 6 correspond to the vertical conductors ( 314 ).
- the columns within the structure matrix ( 310 ) represent each crosspoint ( 316 ) within the entire crossbar array ( 300 ). For each column within the structure matrix, there will be a ‘1’ in the rows corresponding to the conductors which cross to form that crosspoint. Thus, each column will have a total of two 1's. The remaining rows within each column are set to zero.
- FIG. 4A is a diagram showing the assignment of indicator crosspoints ( 404 ) and data crosspoints ( 402 ) on the structure matrix ( 310 ).
- the exact crosspoints within a crossbar array that are designated as indicator bits are selected so that for each data crosspoint within the memory array, it can be determined whether the bit corresponding to that data crosspoint has been flipped an odd or even number of times by examining the state of a subset of the indicator crosspoints.
- this may be done by finding a set of basis columns for the structure matrix ( 310 ).
- a set of basis columns is a set in which any column within the matrix that is not one of the basis columns can be created by a combination of a subset of the basis columns.
- a “combination” of one or more columns in a binary matrix refers to the exclusive OR operation of each corresponding element within those one or more columns. This is also the same as applying a modulo 2 operation to the sum of each corresponding element of the columns being combined.
- the crosspoints corresponding to the basis columns will be designated as indicator crosspoints ( 404 ).
- the crosspoints not corresponding to basis columns will be designated as data crosspoints ( 402 ).
- crosspoints, A, B, C, F, and I have been designated as indicator crosspoints ( 404 ) and crosspoints D, E, G, and H have been designated as data crosspoints.
- the crossbar array used in this example is small for illustrative purposes, there are more indicator crosspoints ( 404 ) than data crosspoints ( 402 ).
- a practical crossbar array may comprise a much larger number of conductors and crosspoints and therefore the ratio of indicator crosspoints to data crosspoints would be much smaller.
- FIG. 4B is a diagram showing an illustrative assignment of indicator crosspoints and data crosspoints within the crossbar memory array ( 300 ).
- the indicator crosspoints ( 404 ) are shown with bolded circles around the identifying letter and the data crosspoints ( 402 ) are shown as non-bolded circles around the identifying letter.
- the example crossbar array ( 300 ) is capable of storing four bits of data.
- FIG. 5A is a diagram showing an illustrative placement of data within a crossbar array.
- an input stream of data is placed into a data matrix ( 500 ).
- the data matrix is such that each element within the data matrix corresponds to a crosspoint of the memory array to which the data will be stored.
- the elements of the data matrix that correspond to the indicator bits are initialized to ‘0’.
- the input data stream can then be read into the matrix elements corresponding to the data crosspoints.
- FIG. 5A illustrates a data matrix ( 502 ) in its original state.
- the data read into the matrix elements corresponding to data crosspoints has not yet been encoded.
- the center of each matrix element illustrates the bit value of that element.
- the top left corner of each matrix element illustrates the corresponding crosspoint for that matrix element.
- the encoding process begins by examining each set of matrix elements that correspond to a conductor and determining if there is a weight constraint violation. In this case, the matrix elements that correspond to conductor 3 violate a weight constraint. Specifically, if the data was read into the crossbar memory array as is, more than half the crosspoints along conductor 3 would be in a low resistive state and thus violate the weight constraint. Thus, each bit within matrix elements corresponding to conductor 3 is flipped.
- FIG. 5A also illustrates the data matrix ( 504 ) in its encoded state.
- the matrix elements that correspond to both data crosspoints and indicator crosspoints are flipped.
- the final encoded matrix ( 504 ) includes no weight constraint violations.
- multiple conductors will have to be flipped in order to eliminate all weight constraint violations. It may be the case that a particular conductor which originally did not violate a weight constraint will eventually violate the weight constraint due to the flipping of bits along conductors that intersect that particular conductor.
- the process of going through each set of elements corresponding to a conductor within the array and determining whether there is a weight constraint violation may have to be repeated several times. This may cause a particular bit within the data matrix to be flipped multiple times. Each time that the bits within a set of elements within the data matrix that correspond to a particular conductor are flipped due to a weight constraint violation, the total number of 1's stored within the data matrix is reduced. Thus, there will eventually be a point when there are no weight constraint violations.
- the data from the encoded matrix can be read into the crossbar array.
- the data for each matrix element will be placed into its corresponding crosspoint within the array. Both data crosspoints and indicator crosspoints will be stored according to the data in the data matrix.
- the data is first decoded.
- FIG. 5B is a diagram showing an illustrative decoding table ( 506 ).
- the phrase “net number of times a bit has been flipped” refers to whether that bit has been flipped an even or odd number of times. This can be determined by taking the total number of flips modulo 2 . If a particular bit was flipped an even number of times, then that bit does not have to be flipped to be decoded. If a particular bit was flipped an odd number of times, then that bit does have to be flipped to be decoded. Thus, the total number of times a bit has been flipped is not relevant. Rather, it is only relevant whether the bit was flipped an even or an odd number of times during the encoding process.
- the set of indicator bits that are associated with a particular data bit correspond to the subset of basis columns of the structure matrix that, in combination, form the column of the structure matrix corresponding to that particular data bit.
- Each data bit within the crossbar memory array will have at least one such subset of indicator bits associated with that data bit.
- the crosspoint column ( 508 ) uniquely identifies a crosspoint for each row.
- the indicator crosspoints column ( 510 ) indicates the set of indicator crosspoints that are used to determine the odd or even flip status of the corresponding data crosspoint.
- the net flip column ( 512 ) indicates the net number of times that the corresponding data crosspoint was flipped during the encoding process.
- data crosspoint D is associated with indicator crosspoints A, C, and F.
- column D can be created by a combination of basis columns A, C, and F.
- the structure matrix column corresponding to each data crosspoint within the decoding table ( 506 ) can be created by a combination of the subset of basis columns indicated.
- the exclusive OR (XOR) operation is applied to each bit stored in the subset of indicator crosspoints used to denote a particular data crosspoint. This is the same as applying a modulo 2 function to the sum of each of those bits.
- the XOR of the bits stored in crosspoints A, C, and F of the encoded crossbar array is ‘0’.
- the XOR of the bits stored in crosspoints B, C, and F is ‘0’.
- the bits from crosspoints D and E do not have to be flipped during the decoding process.
- the XOR of the bits stored in crosspoints A, C, and I is ‘1’.
- the XOR of the bits stored in crosspoints B, C, and I is ‘1’.
- the bits stored within crosspoints G and H have been flipped an odd number of times and should therefore be flipped during the decoding process.
- FIG. 5C is a diagram showing an illustrative table comparing data at different stages in an encoding/decoding process.
- the columns within the table correspond to the data crosspoints within the crossbar array.
- the first row indicates the input data ( 514 ) before it is encoded.
- the second row indicates the encoded data ( 516 ) as it is written into the crossbar array.
- the last row indicates the data after it has been decoded through use of the information in the net flip column ( 512 ) of FIG. 5B .
- the decoded data ( 518 ) matches the input data ( 514 ).
- the decoding logic can know which crosspoints have been designated as indicator crosspoints based on the encoding process. For example, when designating crosspoints as indicator crosspoints, the encoding logic can store that information. That information can then be available to the decoding logic. The bits which are designated as indicator crosspoints can remain as indicator bits each time the data within the crossbar array is rewritten. Thus, the designation process may only occur once and the coding process uses the same crosspoints as indicator crosspoints every time that data is encoded for storage into the crossbar array.
- the bits designated as indicator crosspoints are part of the design and thus the encoding logic will not have to indicate to the decoding logic which bits have been designated as indicator crosspoints. Rather, the specific crosspoints which are designated as indicator crosspoints can be hardcoded into the decoding logic.
- FIG. 6 is a diagram showing an illustrative disjointed crossbar array structure.
- the methods of encoding data for placement into a crossbar array with weight constraints as described herein are not limited to a specific crossbar array structure. Rather, these methods can be used to encode data for a variety of different structures.
- One type of crossbar structure which may be used is a disjointed crossbar array structure.
- a disjointed crossbar array ( 600 ) includes a set of vertical conductors ( 602 ) and a set of horizontal conductors ( 604 ).
- the terms horizontal and vertical do not indicate a specific orientation. Rather, the terms indicate an orientation relative to each other.
- Memory elements may be placed at crosspoints ( 606 ) between each of the conductors. Not every pair of horizontal and vertical conductors share a crosspoint. For example, the vertical conductor ( 602 ) and the horizontal conductor ( 604 ) do not intersect and do not share a crosspoint.
- the conductors may be connected to read/write circuitry through a via ( 608 ). In this case, the vias are positioned in the center of each of the conductors ( 602 , 604 ).
- Each conductor within the disjointed crossbar array is not aligned with the adjacent conductor running parallel to that conductor. Rather, each parallel conductor is offset by one or more crosspoint distances from an adjacent parallel conductor. Furthermore, not every conductor within the disjointed crossbar array ( 600 ) necessarily includes the same number of crosspoints.
- a structure matrix can be formed wherein each row corresponds to a conductor within the disjointed crossbar array ( 600 ) and each column corresponds to each crosspoint within disjointed crossbar array ( 600 ).
- a set of basis columns can then be determined in order to designate a set of crosspoints as indicator crosspoints. With the indicator bits designated, the encoding process can proceed as described above.
- FIG. 7 is a flowchart showing an illustrative method for encoding data for placement into a weight constrained crossbar array.
- the method includes designating (block 702 ) a set of crosspoints within a crossbar memory array as indicator crosspoints and a set of crosspoints within the memory array as data crosspoints, the set of indicator crosspoints selected so that a net number of that each data crosspoint has been flipped can be identified from a subset of the set of indicator crosspoints.
- the method further includes placing (block 704 ) an input stream of data into a matrix corresponding to crosspoints within the memory array, bits of the input stream being placed into matrix elements that correspond to data crosspoints of the memory array, setting (block 706 ) each matrix element corresponding to indicator crosspoints to a value corresponding to a high resistive state, and flipping (block 708 ) each bit corresponding to a conductor of the memory array until no conductors within the memory array violate a weight constraint.
- data to be placed in any type or structure of crossbar array may be encoded so that weight constraints are not violated.
- This general method of encoding will work despite the topology of the crossbar array. For example, this method will work on even crossbar arrays where each conductor is aligned with an adjacent parallel conductor. It will also work with disjointed crossbar arrays where each conductor may be offset from an adjacent parallel conductor.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Semiconductor Memories (AREA)
- Logic Circuits (AREA)
- Electronic Switches (AREA)
Abstract
Description
Claims (15)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/211,695 US8405530B2 (en) | 2011-08-17 | 2011-08-17 | Encoding data based on weight constraints |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/211,695 US8405530B2 (en) | 2011-08-17 | 2011-08-17 | Encoding data based on weight constraints |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20130044011A1 US20130044011A1 (en) | 2013-02-21 |
| US8405530B2 true US8405530B2 (en) | 2013-03-26 |
Family
ID=47712279
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US13/211,695 Expired - Fee Related US8405530B2 (en) | 2011-08-17 | 2011-08-17 | Encoding data based on weight constraints |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US8405530B2 (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9721656B2 (en) | 2014-01-31 | 2017-08-01 | Hewlett Packard Enterprise Development Lp | Encoded cross-point array |
| US10175906B2 (en) | 2014-07-31 | 2019-01-08 | Hewlett Packard Enterprise Development Lp | Encoding data within a crossbar memory array |
| US11275968B2 (en) | 2019-02-13 | 2022-03-15 | Western Digital Technologies, Inc. | Super-sparse image compression using cross-bar non-volatile memory device |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5973631A (en) * | 1998-01-20 | 1999-10-26 | Raytheon Company | Test circuit and method of trimming a unary digital-to-analog converter (DAC) in a subranging analog-to-digital converter (ADC) |
| US6559785B2 (en) * | 2000-10-25 | 2003-05-06 | Infineon Technologies, Ag | Digital/analog converter |
| US20050012650A1 (en) * | 2003-04-07 | 2005-01-20 | Francesco Cretti | Method of generating a switching sequence for an unary array of conducting branches and a relative thermometrically decoded digital-to-analog converter |
| US6914550B2 (en) * | 2003-10-09 | 2005-07-05 | Texas Instruments Incorporated | Differential pipelined analog to digital converter with successive approximation register subconverter stages using thermometer coding |
| US20060232461A1 (en) * | 2005-04-13 | 2006-10-19 | Felder Matthew D | Successive approximation analog-to-digital converter with current steered digital-to-analog converter |
| US7369077B2 (en) * | 2006-04-28 | 2008-05-06 | Artimi, Inc. | Differential current-steering digital-to-analog converter |
| US20080180579A1 (en) * | 2007-01-31 | 2008-07-31 | Silicon Laboratories, Inc. | Techniques for Improving Harmonic and Image Rejection Performance of an RF Receiver Mixing DAC |
-
2011
- 2011-08-17 US US13/211,695 patent/US8405530B2/en not_active Expired - Fee Related
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5973631A (en) * | 1998-01-20 | 1999-10-26 | Raytheon Company | Test circuit and method of trimming a unary digital-to-analog converter (DAC) in a subranging analog-to-digital converter (ADC) |
| US6559785B2 (en) * | 2000-10-25 | 2003-05-06 | Infineon Technologies, Ag | Digital/analog converter |
| US20050012650A1 (en) * | 2003-04-07 | 2005-01-20 | Francesco Cretti | Method of generating a switching sequence for an unary array of conducting branches and a relative thermometrically decoded digital-to-analog converter |
| US6914550B2 (en) * | 2003-10-09 | 2005-07-05 | Texas Instruments Incorporated | Differential pipelined analog to digital converter with successive approximation register subconverter stages using thermometer coding |
| US20060232461A1 (en) * | 2005-04-13 | 2006-10-19 | Felder Matthew D | Successive approximation analog-to-digital converter with current steered digital-to-analog converter |
| US7369077B2 (en) * | 2006-04-28 | 2008-05-06 | Artimi, Inc. | Differential current-steering digital-to-analog converter |
| US20080180579A1 (en) * | 2007-01-31 | 2008-07-31 | Silicon Laboratories, Inc. | Techniques for Improving Harmonic and Image Rejection Performance of an RF Receiver Mixing DAC |
Also Published As
| Publication number | Publication date |
|---|---|
| US20130044011A1 (en) | 2013-02-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10566048B2 (en) | Managing refresh operations for a memory device | |
| US10331345B2 (en) | Method and apparatus for reducing silent data errors in non-volatile memory systems | |
| US10008273B2 (en) | Cell current based bit line voltage | |
| US8432735B2 (en) | Memory system and related method of programming | |
| US10777271B2 (en) | Method and apparatus for adjusting demarcation voltages based on cycle count metrics | |
| US20100161888A1 (en) | Data storage system with non-volatile memory using both page write and block program and block erase | |
| US11436482B2 (en) | Storing neural net works and weights for neural networks | |
| Yilmaz et al. | A drift-tolerant read/write scheme for multilevel memristor memory | |
| Giannopoulos et al. | In‐Memory database query | |
| KR20140113100A (en) | Non-volatile memory device and data management method thererof | |
| US10175906B2 (en) | Encoding data within a crossbar memory array | |
| JP2022511017A (en) | Direct input redundancy scheme with adaptive syndrome decoder | |
| Xu et al. | Impact of cell failure on reliable cross-point resistive memory design | |
| US8405530B2 (en) | Encoding data based on weight constraints | |
| CN112309473B (en) | Storage devices that perform stateful shaping of data | |
| US9911495B2 (en) | Memory cell having resistive and capacitive storage elements | |
| US9142287B2 (en) | Coding for crossbar architecture | |
| US9721656B2 (en) | Encoded cross-point array | |
| US11139027B1 (en) | Apparatus, system and method to reduce a read voltage across a memory cell and improve read sense margin | |
| US20190096507A1 (en) | Solid state drive physical block revectoring to improve cluster failure rates | |
| US8792289B2 (en) | Rewriting a memory array | |
| KR20180015896A (en) | Method for lifetime improvement of resistive change memory and data storage system using it | |
| US20200264953A1 (en) | Error correction in data storage devices | |
| EP3783611B1 (en) | Storage device that performs state shaping of data | |
| US12482514B2 (en) | Apparatus, method and system to reduce memory window latency and read disturb in a memory device for memory operations |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ORDENTLICH, ERIK;ROTH, RON M.;REEL/FRAME:026839/0118 Effective date: 20110816 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| CC | Certificate of correction | ||
| AS | Assignment |
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001 Effective date: 20151027 |
|
| FPAY | Fee payment |
Year of fee payment: 4 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
| FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
| FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20250326 |