The present disclosure relates generally to semiconductor memory and methods, and more particularly, to apparatuses, systems, and methods for determination of a match between data values stored by several arrays.
Memory devices are typically provided as internal, semiconductor, integrated circuits in computers or other electronic systems. There are many different types of memory, including volatile and non-volatile memory. Volatile memory can require power to maintain its data (e.g., host data, error data, etc.). Volatile memory can include random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), synchronous dynamic random access memory (SDRAM), and thyristor random access memory (TRAM), among other types. Non-volatile memory can provide persistent data by retaining stored data when not powered. Non-volatile memory can include NAND flash memory, NOR flash memory, and resistance variable memory, such as phase change random access memory (PCRAM) and resistive random access memory (RRAM), and magnetoresistive random access memory (MRAM), such as spin torque transfer random access memory (STT RAM), among other types.
Electronic systems often include a number of processing resources (e.g., one or more processors), which may retrieve instructions from a suitable location and execute the instructions and/or store results of the executed instructions to a suitable location (e.g., the volatile and/or non-volatile memory). A processor can include a number of functional units such as arithmetic logic unit (ALU) circuitry, floating point unit (FPU) circuitry, and a combinatorial logic block, for example, which can be used to execute instructions by performing logical operations such as AND, OR, NOT, NAND, NOR, and XOR, and invert (e.g., NOT) logical operations on data (e.g., one or more operands). For example, functional unit circuitry may be used to perform arithmetic operations such as addition, subtraction, multiplication, and division on operands via a number of operations.
In many instances, the processing resources may be external to the memory device (e.g., including a number of memory arrays) and the data may be accessed via a bus between the processing resources and a memory array to execute a set of instructions. However, one or more errors in storage and/or accessing of data values in the instructions and movement of such data values from the bank to a processor external to the memory device may influence whether the instructions may be executed as intended for performance of an operation by an external processing resource.
The present disclosure includes systems, apparatuses and methods associated with determination of a match between data values stored by two arrays. In a number of embodiments, an apparatus includes a plurality of arrays of memory cells formed on a single memory chip. The apparatus further includes comparator circuitry configured to compare data values stored by two arrays selected from the plurality to determine whether there is a match between the data values stored by the two arrays. The apparatus further includes an output component of the comparator circuitry configured to output data values of one of the two arrays responsive to determination of the match between the data values stored by the two arrays.
Being formed on a single memory chip (e.g., on chip) is intended herein to mean being formed (e.g., positioned) on a same chip as a memory array (e.g., as shown at 108 and described in connection with
In contrast, being formed on a different chip (e.g., off chip) is intended herein to mean being formed (e.g., positioned) on a chip associated with execution of instructions (e.g., coded in a sequence of data values) received (e.g., sent) from on chip for performance of an operation by an external processing resource (e.g., a functionality as shown at 338 and described in connection with
Performance of functions based upon execution of sequences of data values (instructions) stored by and accessed from memory arrays may be an integral part of many automated systems. A system using the data values may manage performance of functions, including automated functions critical for prevention of damage to a product, personnel safety, and/or reliable operation, based on whether the data values match. Proper performance of the functions contributing to the automated systems may be critical for prevention of damage to a product including such automated systems (e.g., autonomous vehicles, such as automobiles, trains, airplanes, rockets, space stations, etc., among many other possibilities) and/or safety of a person (e.g., a passenger of an autonomous vehicle, a bicyclist, a pedestrian, an observer, etc., among many other possibilities) using and/or near such automated systems.
Hence, automated systems utilized in such implementations may benefit from lower error rates in stored data values to be executed for performance of the functions contributing to the automated systems (e.g., relative to error rates considered acceptable for other utilities, such as cellular telephones, smart phones, personal computers, etc.). Accordingly, the determination of a match between the data values (instructions) redundantly stored by the two arrays and/or the notification of no such match described herein may enhance prevention of damage to products including such automated systems and/or safety of persons using and/or near such automated systems.
The figures herein follow a numbering convention in which the first digit or digits of a reference number correspond to the figure number and the remaining digits identify an element or component in the figure. Similar elements or components between different figures may be identified by the use of similar digits. For example, 108 may reference element “08” in
The single data file 102 may be received from, for example, a host (not shown), using a k-bit data bus 104, where k may represent a number of data values (bits) in the single data file 102 to be received at a time (e.g., in one cycle of a computer). In a number of embodiments, the number of data values received by the k-bit data bus 104 may be 16, as in the example shown in
The k bits of data may be deserialized into a number (n) of portions using a deserializer 105 coupled to the k-bit data bus. The n portions of the k bits of data may be moved (e.g., electronically transported) via a kn-bit data bus 107 to at least one of the two arrays (e.g., to array 108-0 and/or array 108-1). In a number of embodiments, the number of data values moved via the kn-bit data bus 107 may be 256 (=16×16), as in the example shown in
As shown in
As shown in
The controller 211 (e.g., bank control logic and sequencer) may include control circuitry, in the form of hardware, firmware, or software, or combinations thereof. As an example, the controller 211 may include a state machine, a sequencer, and/or some other types of control circuitry, which may be implemented in the form of an application specific integrated circuit (ASIC) coupled to a printed circuit board. In a number of embodiments, the controller 211 may be co-located with the host (not shown) (e.g., in a system-on-chip (SOC) configuration).
The host and/or a dedicated component may include a number of processing resources (e.g., one or more processors, microprocessors, or some other type of controlling circuitry) external to the chip (off chip) on which the memory device 210 is formed. The external processing resources may be capable of accessing the memory device 210 (e.g., via controller 211) to perform operations on data values moved from the memory device 210. At least some of the operations may be performed by various functionalities (e.g., the functionality as shown at 338 and described in connection with
The sensing circuitry 212 may be configured to sense data values stored by the arrays (e.g., by being selectably coupled to a particular row of memory cells in an array). The sensed data values may be made accessible to comparator circuitry (e.g., as shown at 332 and described in connection with
The controller 211 may be configured to receive a request (e.g., from the host and/or the functionality 338) for the stored single date file 102. The controller 211 may, in a number of embodiments, be configured to direct the comparator circuitry 332 to access the data values stored by the at least two arrays to determine whether there is a match between the two arrays.
Being on chip also may, in a number of embodiments, be intended to mean being formed on the same chip as the comparator circuitry 332, which may include the output component (e.g., as shown at 333 and described in connection with
The plurality of arrays 108 formed on chip with the memory device 210 and on which the single data file 102 is redundantly stored by, in a number of embodiments, at least two arrays may be variously implemented. In a number of embodiments, two arrays on which the single data file 102 is redundantly stored may each correspond to a different bank group formed on chip (e.g., bank groups 213-0, 213-1, 213-2 and 213-N, although the number of different bank groups is not limited to four). Each different bank group may have a plurality of memory banks formed on chip (e.g., banks 214-0, 214-1, 214-2 and 214-M, although the number of banks is not limited to four). In a number of embodiments, the two arrays may each correspond to a different bank formed on chip. The different banks may be selected from banks 214-0, 214-1, 214-2 and 214-M. In a number of embodiments, the two arrays may each correspond to a different section (e.g., sections 216-0, 216-1, 216-2 and 216-P, although the number of sections is not limited to four) of a single bank (e.g., bank 214-0, among other possible banks) formed on chip.
In various embodiments, any two of the plurality of bank groups 213-0, . . . , 213-N, of the plurality of banks 214-0, . . . , 214-M, and/or the plurality of sections 216-0 . . . , 216-P at various positions on chip may be selected for redundant storage of the single data file 102 and/or for comparison of the data values stored thereon for determination of a possible match. Determination of the arrays on which to store the single data file 102 may be influenced by the size (e.g., number of data values) of the single data file, among other possible considerations. By way of example, two out of four of the bank groups 213 shown in
In a number of embodiments, the two arrays selected from the plurality for redundant storage of the single date file 102 may each be formed on chip in a DRAM configuration. Implementations of the circuitry described herein may be utilized for determination of a match between data values stored, for example, by two arrays in the DRAM configuration conforming to protocols such as those promulgated by JEDEC, including DDR3, DDR4, etc.
Depending upon the architecture of the memory device 210 and/or the arrays 213, 214, 216 on chip, the arrays upon which the single data file 102 is redundantly stored may not be physically close (e.g., adjacent and/or contiguous) to each other. For example, accounting for routing and/or die size considerations, the arrays 213, 214, 216 may be physically separated from each other (e.g., via channels 217 and/or 219)
For example, each of the plurality of arrays (e.g., as shown at 213, 214, and/or 216 and described in connection with
Comparator circuitry 332 may be configured to compare data values stored by the two arrays 308-0 and 308-1 selected from the plurality of arrays to determine whether there is a match between the data values stored by the two arrays. As described herein, a single date file 102 may be redundantly stored by each of the two arrays and the comparator circuitry 332 may be configured to compare data values of the single date file stored by the two arrays. The comparator circuitry 332 may be formed (e.g., positioned) on chip 336 with the plurality of arrays. The comparator circuitry 332 may be positioned in various locations on chip 336 (e.g., accounting for routing and/or timing considerations).
The comparator circuitry 332 may be further configured to determine whether there is the match between the data values based upon an adjustable threshold number of mismatches and/or positions of such mismatches of data values in the single date file 102 stored by the two arrays. In a number of embodiments, the adjustable threshold number of mismatches may be 0-10 mismatches, which may be adjusted based upon a number of parameters (e.g., the number of data values in the single date file 102). The adjustable threshold number may be adjusted to no mismatches (0 mismatches). For example, 0 mismatches may be selected as the threshold number when proper performance of an operation enabled and/or controlled by a functionality 338 may affect safety of passengers and/or bystanders (e.g., braking and/or evasive maneuvers of an autonomous automobile to avoid collision with another automobile and/or pedestrian, among many other possible operations). Accordingly, the plurality of arrays of memory cells and/or the comparator circuitry 332 formed on chip 336 may be formed (e.g., located) on an autonomous vehicle, among various other possible locations and/or implementations.
An output component 333 of the comparator circuitry 332 may be configured to output data values of one of the two arrays (e.g., from either array 308-0 or array 308-1) responsive to determination of the match between the data values stored by the two arrays. For example, the data values may be outputted by the output component 333 from a selected (e.g., default) one of the two arrays when there is a match determined by the comparator circuitry 332 between the data values of the single date file 102 stored by array 308-0 and array 308-1.
The output component 333 may be further configured to send the data values from the one array to a serializer 334 formed on chip 336 for output to a functionality 338 formed off chip 337. The serializer 334 may be configured to reconstruct the n portions of the single data file 102, moved via a data bus (e.g., a kn-bit data bus) 307 from one of the two arrays 308-0, 308-1 to the serializer 334, into a single sequence of data values (bits). The single sequence of data values of the single data file 102 may be sent via a data bus (e.g., a k-bit data bus) 304 from the serializer 334 to the functionality 338. The functionality 338 shown in
A notification 335 of no match may, in a number of embodiments, be sent responsive to no match being determined, by the comparator circuitry 332, by comparison of the data values of the single date file 102 stored by array 308-0 and array 308-1. The notification 335 may be sent to a monitor component 339 coupled to and/or part of the functionality 338. Receipt of such a notification 335 may indicate to the monitor component 339 that the sequences of data values (instructions) stored by the two arrays may be relied upon to be without data errors and that the function intended to be performed by the functionality 338 is to be disabled (e.g., due to unintended results potentially occurring from execution of erroneous instructions). Responsive to determination and notification 335 of no match, or a mismatch, between the data values stored by the at least two arrays of the three arrays, the monitor component 339 may enable execution of instructions for a failover functionality (not shown) (e.g., a designated functionality with instructions stored in memory off chip 337). In a number of embodiments, the failover functionality may be executed to perform an alternative function in place of the disabled function (e.g., pulling over and parking an autonomous automobile in an available parking space, among many other possibilities).
In a number of embodiments, a notification 335 also may be sent responsive to determination, by the comparator circuitry 332, of a match between the data values redundantly stored by arrays 308-0 and 308-1. The notification 335 confirming determination of the match may be sent to the functionality 338, the monitor component 339, and/or to the host.
Notification 335 of no match being determined by comparison of the data values of the single date file 102 stored by the arrays 308-0 and 308-1 may be provided by a particular signal (e.g., a data value of 0). In contrast, notification 335 of a match being determined by comparison of the data values stored by the arrays 308-0 and 308-2 may be provided by a different signal (e.g., a data value of 1).
The notification 335 of no match or a match may, in a number of embodiments, be sent off chip 337 directly to the functionality 338, the monitor component 339, and/or to the host via a dedicated data line and/or pin, as indicated in
In a number of embodiments, responsive to determination by the comparator circuitry 332 of a match, then portions of the single data file 102 may be sent on chip 336 from the comparator circuitry 332 to the serializer 334. The single sequence of data values of the single data file 102 reconstructed by the serializer 334 may be sent from the serializer 334 off chip 337 to the functionality 338 without a notification 335 being sent to the monitor component 339. In contrast, responsive to determination by the comparator circuitry 332 of no match, the notification 335 may be sent off chip 337 to the monitor component 339.
In a number of embodiments, the monitor component 339 may be configured to decide whether and/or what function to enable in response to input of the notification 335 (e.g., when the notification is of no match being determined by the comparator circuitry 332). The monitor component 339 also may be configured for input of a number of signals and/or data from a number of other components and/or systems (e.g., of an autonomous vehicle) to contribute to making the decision whether and/or what function to enable. The monitor component 339 also may be configured to continuously enable the failover functionality and/or performance of the alternative function (e.g., until a determination of a match between two arrays for the requested single data file, or until supply of electrical power to the memory device 210 has been resumed following an interruption, among other possibilities).
In a number of embodiments that have two arrays selected from the plurality of arrays for redundant storage of a single data file 102, there may be one comparator component 440 of the comparator circuitry 332 corresponding to the two arrays. For example, when the number of arrays is two arrays (e.g., arrays 308-0 and 308-1) selected from the plurality there may be one comparator component 440 corresponding to the pairing of the two arrays. The comparator component 440 may be configured to compare two paired data values (e.g., data values x0 and y0, x1 and y1, . . . , xQ and yQ) via a logic gate (e.g., logic gates 442-0, 442-1, . . . , 442-Q) corresponding to each paired data value stored by the two arrays (e.g., array X and array Y).
In a number of embodiments, an n-bit comparator component 440 may compare all kn paired data values (bits) redundantly stored in the two arrays (e.g., accessed via kn-bit data buses 107-0 and 107-1 from array X and array Y). For example, all the paired data x0 and y0, x1 and y1, . . . , xQ and yQ for the single data file 102 redundantly stored in arrays X and Y may be analyzed using the corresponding logic gates 442-0, 442-1, . . . , 442-Q to determine whether there is a match between each of the paired data values. Each of the logic gates 442 may be, or may include, an XNOR logic gate, as shown in
A differential indicator determined by the three comparator component 440 may be utilized to indicate whether comparison of the data values for the pairing indicates a match for the pairing of the two arrays. For example, a particular differential indicator signal (e.g., a data value of 1) may be output by logic gate 444 when all of the paired data values from array X and array Y match (X=Y), as determined by output of matching signals (e.g., all data values of 1) from the plurality of logic gates 442. In contrast, a different differential indicator signal (e.g., a data value of 0) may be output by logic gate 444 when all of the paired data values from array X and array Y do not match (X≠Y), as determined by output of non-matching signals (e.g., at least one data value of 0) from the plurality of logic gates 442. The logic gate 444 may be, or may include, an AND logic gate, as shown in
The comparator component 540 may, in a number of embodiments, be selectably coupled to an output enabler 552 of the comparator circuitry 532. An output component 533 of the comparator circuitry 532 may be configured to output data values of one of the two arrays in which the single data file 102 is redundantly stored responsive to determination of a match between the data values stored by the two arrays. The at least two arrays on which the single date file 102 may be redundantly stored may be accessible (e.g., by the controller 211 located on chip 536 and/or a functionality 538, a monitor component 539, and/or host formed off chip 537 via a single network socket and are not accessible via corresponding redundant network sockets for redundant memory.
The output enabler 552 may be configured to enable activation of the output component 533 responsive to determination by the output enabler 552 of a match between the data values stored by, in a number of embodiments, the two arrays in which the single data file 102 is redundantly stored. For example, when there is a match of the data values of the single data file 102 between at two two arrays 508-0 and 508-1, as determined by the respective comparator component 540, the output enabler 552 may send an activation signal (e.g., a data value of 1) to the output component 533. The output enabler 552 may be further configured to enable output of a notification 535 (e.g., as shown at 335 and described in connection with
For example, an enablement signal (e.g., a data value of 1) may be output by a logic gate of the output enabler 552 to enable activation of the output component 533 and/or to provide the notification 535. The logic gate of the output enabler 552 may be, or may include, an OR logic gate, although embodiments are not limited to the OR logic gate.
The activated output component 533 may be configured (e.g., as a multiplexer) to select between coupling of a first bus 555-0 to a first array (e.g., array X at 508-0) and coupling of a second bus 555-1 to a second array (e.g., array Y at 508-1) responsive to determination of the match between the data values stored by the two arrays. The data values accessed from the first array or the second array may be moved via a data bus 507 (e.g., kn-bit data bus shown at 307 and described in connection with
A validation component 554 may be configured to direct that the data values of the valid match (e.g., either from array X or array Y) are output by the activated output component 533 (e.g., via selection and coupling of the first bus 555-0 to array X at 508-0 or via selection and coupling of the second bus 555-1 to array Y at 508-1). For example, a particular validation signal (e.g., a data value of 0) may be output by a logic gate of the validation component 554 to enable output of data values from array X at 507-0 via the activated output component 533. In contrast, a different validation signal (e.g., a data value of 1) may be output by the logic gate of the validation component 554 to enable output of data values from array Y at 507-1 via the activated output component 533. The logic gate of the validation component 554 may be, or may include, an AND logic gate. In a number of embodiments, the AND logic gate may have one input coupled to a NOT logic gate, although embodiments are not limited to the AND logic gate and/or the NOT logic gate.
A selection component 556 may be configured to enable direction of the output component 533 to select a first array (e.g., array X at 508-0) as a default option responsive to the determination of the match between the first array and the second array (e.g., array Y at 508-1) of the two arrays. In a number of embodiments, the default option may be either array X or array Y (e.g., accounting for routing and/or timing considerations).
At block 662, the method 660 may, in a number of embodiments, include receiving, by a memory device (e.g., as shown at 210 and described in connection with
In a number of embodiments, the method 660 may include interrupting electrical power supplied to the memory device formed on chip. Interrupting the electrical power may result in disabling a function performed by execution of instructions stored by the single data file on chip based at least in part on interrupting the electrical power. Responsive to the function being disabled, the method 880 may include outputting a notification (e.g., as shown at 335 and described in connection with
In the above detailed description of the present disclosure, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration how one or more embodiments of the disclosure may be practiced. These embodiments are described in sufficient detail to enable those of ordinary skill in the art to practice the embodiments of this disclosure, and it is to be understood that other embodiments may be utilized and that process, electrical, and structural changes may be made without departing from the scope of the present disclosure.
As used herein, particularly with respect to the drawings, reference numbers with hyphenated digits and/or designators such as “X”, “Y”, “N”, “M”, etc., (e.g., 213-0, 213-1, 213-2, and 213-N in
While example embodiments including various combinations and configurations of arrays, comparator circuitry, comparator components, output enablers, validation components, output components, functionalities, monitor components, among other circuitry for determination of a match between data values stored by three arrays have been illustrated and described herein, embodiments of the present disclosure are not limited to those combinations explicitly recited herein. Other combinations and configurations of the arrays, comparator circuitry, comparator components, output enablers, validation components, output components, functionalities, monitor components, among other circuitry for determination of a match between data values stored by three arrays disclosed herein are expressly included within the scope of this disclosure.
Although specific embodiments have been illustrated and described herein, those of ordinary skill in the art will appreciate that an arrangement calculated to achieve the same results may be substituted for the specific embodiments shown. This disclosure is intended to cover adaptations or variations of one or more embodiments of the present disclosure. It is to be understood that the above description has been made in an illustrative fashion, and not a restrictive one. Combination of the above embodiments, and other embodiments not specifically described herein will be apparent to those of skill in the art upon reviewing the above description. The scope of the one or more embodiments of the present disclosure includes other applications in which the above structures and processes are used. Therefore, the scope of one or more embodiments of the present disclosure should be determined with reference to the appended claims, along with the full range of equivalents to which such claims are entitled.
In the foregoing Detailed Description, some features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the disclosed embodiments of the present disclosure have to use more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.
This application is a Continuation of U.S. application Ser. No. 15/885,316, filed Jan. 31, 2018, the contents of which are included herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
4380046 | Fung | Apr 1983 | A |
4435792 | Bechtolsheim | Mar 1984 | A |
4435793 | Ochii | Mar 1984 | A |
4727474 | Batcher | Feb 1988 | A |
4843264 | Galbraith | Jun 1989 | A |
4958378 | Bell | Sep 1990 | A |
4977542 | Matsuda et al. | Dec 1990 | A |
5023838 | Herbert | Jun 1991 | A |
5034636 | Reis et al. | Jul 1991 | A |
5201039 | Sakamura | Apr 1993 | A |
5210850 | Kelly et al. | May 1993 | A |
5253308 | Johnson | Oct 1993 | A |
5276643 | Hoffmann et al. | Jan 1994 | A |
5325519 | Long et al. | Jun 1994 | A |
5367488 | An | Nov 1994 | A |
5379257 | Matsumura et al. | Jan 1995 | A |
5386379 | Ali-Yahia et al. | Jan 1995 | A |
5398213 | Yeon et al. | Mar 1995 | A |
5440482 | Davis | Aug 1995 | A |
5446690 | Tanaka et al. | Aug 1995 | A |
5473576 | Matsui | Dec 1995 | A |
5481500 | Reohr et al. | Jan 1996 | A |
5485373 | Davis et al. | Jan 1996 | A |
5506811 | McLaury | Apr 1996 | A |
5615404 | Knoll et al. | Mar 1997 | A |
5638128 | Hoogenboom | Jun 1997 | A |
5638317 | Tran | Jun 1997 | A |
5654936 | Cho | Aug 1997 | A |
5678021 | Pawate et al. | Oct 1997 | A |
5724291 | Matano | Mar 1998 | A |
5724366 | Furutani | Mar 1998 | A |
5751987 | Mahant-Shetti et al. | May 1998 | A |
5787458 | Miwa | Jul 1998 | A |
5854636 | Watanabe et al. | Dec 1998 | A |
5867429 | Chen et al. | Feb 1999 | A |
5870504 | Nemoto et al. | Feb 1999 | A |
5915084 | Wendell | Jun 1999 | A |
5935263 | Keeth et al. | Aug 1999 | A |
5986942 | Sugibayashi | Nov 1999 | A |
5991209 | Chow | Nov 1999 | A |
5991785 | Alidina et al. | Nov 1999 | A |
6005799 | Rao | Dec 1999 | A |
6009020 | Nagata | Dec 1999 | A |
6092186 | Betker et al. | Jul 2000 | A |
6122211 | Morgan et al. | Sep 2000 | A |
6125071 | Kohno et al. | Sep 2000 | A |
6134164 | Lattimore et al. | Oct 2000 | A |
6147514 | Shiratake | Nov 2000 | A |
6151244 | Fujino et al. | Nov 2000 | A |
6157578 | Brady | Dec 2000 | A |
6163862 | Adams et al. | Dec 2000 | A |
6166942 | Vo et al. | Dec 2000 | A |
6172918 | Hidaka | Jan 2001 | B1 |
6175514 | Henderson | Jan 2001 | B1 |
6181698 | Hariguchi | Jan 2001 | B1 |
6208544 | Beadle et al. | Mar 2001 | B1 |
6226215 | Yoon | May 2001 | B1 |
6301153 | Takeuchi et al. | Oct 2001 | B1 |
6301164 | Manning et al. | Oct 2001 | B1 |
6304477 | Naji | Oct 2001 | B1 |
6389507 | Sherman | May 2002 | B1 |
6418498 | Martwick | Jul 2002 | B1 |
6466499 | Blodgett | Oct 2002 | B1 |
6510098 | Taylor | Jan 2003 | B1 |
6563754 | Lien et al. | May 2003 | B1 |
6578058 | Nygaard | Jun 2003 | B1 |
6731542 | Le et al. | May 2004 | B1 |
6754746 | Leung et al. | Jun 2004 | B1 |
6768679 | Le et al. | Jul 2004 | B1 |
6807614 | Chung | Oct 2004 | B2 |
6816422 | Hamade et al. | Nov 2004 | B2 |
6819612 | Achter | Nov 2004 | B1 |
6894549 | Eliason | May 2005 | B2 |
6943579 | Hazanchuk et al. | Sep 2005 | B1 |
6948056 | Roth et al. | Sep 2005 | B1 |
6950771 | Fan et al. | Sep 2005 | B1 |
6950898 | Merritt et al. | Sep 2005 | B2 |
6956770 | Khalid et al. | Oct 2005 | B2 |
6961272 | Schreck | Nov 2005 | B2 |
6965648 | Smith et al. | Nov 2005 | B1 |
6985394 | Kim | Jan 2006 | B2 |
6987693 | Cernea et al. | Jan 2006 | B2 |
7020017 | Chen et al. | Mar 2006 | B2 |
7028170 | Saulsbury | Apr 2006 | B2 |
7045834 | Tran et al. | May 2006 | B2 |
7054178 | Shiah et al. | May 2006 | B1 |
7061817 | Raad et al. | Jun 2006 | B2 |
7079407 | Dimitrelis | Jul 2006 | B1 |
7173857 | Kato et al. | Feb 2007 | B2 |
7187585 | Li et al. | Mar 2007 | B2 |
7196928 | Chen | Mar 2007 | B2 |
7260565 | Lee et al. | Aug 2007 | B2 |
7260672 | Garney | Aug 2007 | B2 |
7372715 | Han | May 2008 | B2 |
7400532 | Aritome | Jul 2008 | B2 |
7406494 | Magee | Jul 2008 | B2 |
7447720 | Beaumont | Nov 2008 | B2 |
7454451 | Beaumont | Nov 2008 | B2 |
7457181 | Lee et al. | Nov 2008 | B2 |
7535769 | Cernea | May 2009 | B2 |
7546438 | Chung | Jun 2009 | B2 |
7562198 | Noda et al. | Jul 2009 | B2 |
7574466 | Beaumont | Aug 2009 | B2 |
7602647 | Li et al. | Oct 2009 | B2 |
7663928 | Tsai et al. | Feb 2010 | B2 |
7685365 | Rajwar et al. | Mar 2010 | B2 |
7692466 | Ahmadi | Apr 2010 | B2 |
7752417 | Manczak et al. | Jul 2010 | B2 |
7791962 | Noda et al. | Sep 2010 | B2 |
7796453 | Riho et al. | Sep 2010 | B2 |
7805587 | Van Dyke et al. | Sep 2010 | B1 |
7808854 | Takase | Oct 2010 | B2 |
7827372 | Bink et al. | Nov 2010 | B2 |
7869273 | Lee et al. | Jan 2011 | B2 |
7898864 | Dong | Mar 2011 | B2 |
7924628 | Danon et al. | Apr 2011 | B2 |
7937535 | Ozer et al. | May 2011 | B2 |
7957206 | Bauser | Jun 2011 | B2 |
7979667 | Allen et al. | Jul 2011 | B2 |
7996749 | Ding et al. | Aug 2011 | B2 |
8042082 | Solomon | Oct 2011 | B2 |
8045391 | Mohklesi | Oct 2011 | B2 |
8059438 | Chang et al. | Nov 2011 | B2 |
8095825 | Hirotsu et al. | Jan 2012 | B2 |
8117462 | Snapp et al. | Feb 2012 | B2 |
8164942 | Gebara et al. | Apr 2012 | B2 |
8208328 | Hong | Jun 2012 | B2 |
8213248 | Moon et al. | Jul 2012 | B2 |
8223568 | Seo | Jul 2012 | B2 |
8238173 | Akerib et al. | Aug 2012 | B2 |
8274841 | Shinano et al. | Sep 2012 | B2 |
8279683 | Klein | Oct 2012 | B2 |
8310884 | Iwai et al. | Nov 2012 | B2 |
8332367 | Bhattacherjee et al. | Dec 2012 | B2 |
8339824 | Cooke | Dec 2012 | B2 |
8339883 | Yu et al. | Dec 2012 | B2 |
8347154 | Bahali et al. | Jan 2013 | B2 |
8351292 | Matano | Jan 2013 | B2 |
8356144 | Hessel et al. | Jan 2013 | B2 |
8417921 | Gonion et al. | Apr 2013 | B2 |
8462532 | Argyres | Jun 2013 | B1 |
8484276 | Carlson et al. | Jul 2013 | B2 |
8495438 | Roine | Jul 2013 | B2 |
8503250 | Demone | Aug 2013 | B2 |
8526239 | Kim | Sep 2013 | B2 |
8533245 | Cheung | Sep 2013 | B1 |
8555037 | Gonion | Oct 2013 | B2 |
8599613 | Abiko et al. | Dec 2013 | B2 |
8605015 | Guttag et al. | Dec 2013 | B2 |
8625376 | Jung et al. | Jan 2014 | B2 |
8644101 | Jun et al. | Feb 2014 | B2 |
8650232 | Stortz et al. | Feb 2014 | B2 |
8873272 | Lee | Oct 2014 | B2 |
8964496 | Manning | Feb 2015 | B2 |
8971124 | Manning | Mar 2015 | B1 |
9015390 | Klein | Apr 2015 | B2 |
9047193 | Lin et al. | Jun 2015 | B2 |
9165023 | Moskovich et al. | Oct 2015 | B2 |
9659605 | Zawodny et al. | May 2017 | B1 |
9659610 | Hush | May 2017 | B1 |
9697876 | Tiwari et al. | Jul 2017 | B1 |
9761300 | Willcock | Sep 2017 | B1 |
9997212 | Finkbeiner et al. | Jun 2018 | B1 |
20010007112 | Porterfield | Jul 2001 | A1 |
20010008492 | Higashiho | Jul 2001 | A1 |
20010010057 | Yamada | Jul 2001 | A1 |
20010028584 | Nakayama et al. | Oct 2001 | A1 |
20010043089 | Forbes et al. | Nov 2001 | A1 |
20020059355 | Peleg et al. | May 2002 | A1 |
20030167426 | Slobodnik | Sep 2003 | A1 |
20030222879 | Lin et al. | Dec 2003 | A1 |
20040073592 | Kim et al. | Apr 2004 | A1 |
20040073773 | Demjanenko | Apr 2004 | A1 |
20040076043 | Boals | Apr 2004 | A1 |
20040085840 | Vali et al. | May 2004 | A1 |
20040095826 | Pemer | May 2004 | A1 |
20040154002 | Ball et al. | Aug 2004 | A1 |
20040205289 | Srinivasan | Oct 2004 | A1 |
20040240251 | Nozawa et al. | Dec 2004 | A1 |
20050015557 | Wang et al. | Jan 2005 | A1 |
20050078514 | Scheuerlein et al. | Apr 2005 | A1 |
20050097417 | Agrawal et al. | May 2005 | A1 |
20060047937 | Selvaggi et al. | Mar 2006 | A1 |
20060069849 | Rudelic | Mar 2006 | A1 |
20060146623 | Mizuno et al. | Jul 2006 | A1 |
20060149804 | Luick et al. | Jul 2006 | A1 |
20060181917 | Kang et al. | Aug 2006 | A1 |
20060215432 | Wickeraad et al. | Sep 2006 | A1 |
20060225072 | Lari et al. | Oct 2006 | A1 |
20060291282 | Liu et al. | Dec 2006 | A1 |
20070103986 | Chen | May 2007 | A1 |
20070147144 | Tokiwa | Jun 2007 | A1 |
20070171747 | Hunter et al. | Jul 2007 | A1 |
20070180006 | Gyoten et al. | Aug 2007 | A1 |
20070180184 | Sakashita et al. | Aug 2007 | A1 |
20070195602 | Fong et al. | Aug 2007 | A1 |
20070285131 | Sohn | Dec 2007 | A1 |
20070285979 | Turner | Dec 2007 | A1 |
20070291532 | Tsuji | Dec 2007 | A1 |
20080025073 | Arsovski | Jan 2008 | A1 |
20080037333 | Kim et al. | Feb 2008 | A1 |
20080052711 | Forin et al. | Feb 2008 | A1 |
20080137388 | Krishnan et al. | Jun 2008 | A1 |
20080165601 | Matick et al. | Jul 2008 | A1 |
20080178053 | Gorman et al. | Jul 2008 | A1 |
20080215937 | Dreibelbis et al. | Sep 2008 | A1 |
20090067218 | Graber | Mar 2009 | A1 |
20090154238 | Lee | Jun 2009 | A1 |
20090154273 | Borot et al. | Jun 2009 | A1 |
20090254697 | Akerib | Oct 2009 | A1 |
20100067296 | Li | Mar 2010 | A1 |
20100091582 | Vali et al. | Apr 2010 | A1 |
20100146188 | Bramante | Jun 2010 | A1 |
20100172190 | Lavi et al. | Jul 2010 | A1 |
20100210076 | Gruber et al. | Aug 2010 | A1 |
20100226183 | Kim | Sep 2010 | A1 |
20100308858 | Noda et al. | Dec 2010 | A1 |
20100332895 | Billing et al. | Dec 2010 | A1 |
20110051523 | Manabe et al. | Mar 2011 | A1 |
20110063919 | Chandrasekhar et al. | Mar 2011 | A1 |
20110093662 | Walker et al. | Apr 2011 | A1 |
20110103151 | Kim et al. | May 2011 | A1 |
20110119467 | Cadambi et al. | May 2011 | A1 |
20110122695 | Li et al. | May 2011 | A1 |
20110140741 | Zerbe et al. | Jun 2011 | A1 |
20110219260 | Nobunaga et al. | Sep 2011 | A1 |
20110267883 | Lee et al. | Nov 2011 | A1 |
20110317496 | Bunce et al. | Dec 2011 | A1 |
20120005397 | Lim et al. | Jan 2012 | A1 |
20120017039 | Margetts | Jan 2012 | A1 |
20120023281 | Kawasaki et al. | Jan 2012 | A1 |
20120120705 | Mitsubori et al. | May 2012 | A1 |
20120134216 | Singh | May 2012 | A1 |
20120134225 | Chow | May 2012 | A1 |
20120134226 | Chow | May 2012 | A1 |
20120140540 | Agam et al. | Jun 2012 | A1 |
20120182798 | Hosono et al. | Jul 2012 | A1 |
20120195146 | Jun et al. | Aug 2012 | A1 |
20120198310 | Tran et al. | Aug 2012 | A1 |
20120246380 | Akerib et al. | Sep 2012 | A1 |
20120265964 | Murata et al. | Oct 2012 | A1 |
20120281486 | Rao et al. | Nov 2012 | A1 |
20120303627 | Keeton et al. | Nov 2012 | A1 |
20130003467 | Klein | Jan 2013 | A1 |
20130061006 | Hein | Mar 2013 | A1 |
20130107623 | Kavalipurapu et al. | May 2013 | A1 |
20130117541 | Choquette et al. | May 2013 | A1 |
20130124783 | Yoon et al. | May 2013 | A1 |
20130132702 | Patel et al. | May 2013 | A1 |
20130138646 | Sirer et al. | May 2013 | A1 |
20130163362 | Kim | Jun 2013 | A1 |
20130173888 | Hansen et al. | Jul 2013 | A1 |
20130205114 | Badam et al. | Aug 2013 | A1 |
20130219112 | Okin et al. | Aug 2013 | A1 |
20130227361 | Bowers et al. | Aug 2013 | A1 |
20130283122 | Anholt et al. | Oct 2013 | A1 |
20130286705 | Grover et al. | Oct 2013 | A1 |
20130326154 | Haswell | Dec 2013 | A1 |
20130332707 | Gueron et al. | Dec 2013 | A1 |
20140126302 | Yoon | May 2014 | A1 |
20140185395 | Seo | Jul 2014 | A1 |
20140215185 | Danielsen | Jul 2014 | A1 |
20140250279 | Manning | Sep 2014 | A1 |
20140344934 | Jorgensen | Nov 2014 | A1 |
20150029798 | Manning | Jan 2015 | A1 |
20150042380 | Manning | Feb 2015 | A1 |
20150063052 | Manning | Mar 2015 | A1 |
20150078108 | Cowles et al. | Mar 2015 | A1 |
20150120987 | Wheeler | Apr 2015 | A1 |
20150121132 | Tian et al. | Apr 2015 | A1 |
20150134713 | Wheeler | May 2015 | A1 |
20150270015 | Murphy et al. | Sep 2015 | A1 |
20150279466 | Manning | Oct 2015 | A1 |
20150324290 | Leidel | Nov 2015 | A1 |
20150325272 | Murphy | Nov 2015 | A1 |
20150356009 | Wheeler et al. | Dec 2015 | A1 |
20150356022 | Leidel et al. | Dec 2015 | A1 |
20150357007 | Manning et al. | Dec 2015 | A1 |
20150357008 | Manning et al. | Dec 2015 | A1 |
20150357019 | Wheeler et al. | Dec 2015 | A1 |
20150357020 | Manning | Dec 2015 | A1 |
20150357021 | Hush | Dec 2015 | A1 |
20150357022 | Hush | Dec 2015 | A1 |
20150357023 | Hush | Dec 2015 | A1 |
20150357024 | Hush et al. | Dec 2015 | A1 |
20150357047 | Tiwari | Dec 2015 | A1 |
20150364210 | Kim | Dec 2015 | A1 |
20160062672 | Wheeler | Mar 2016 | A1 |
20160062673 | Tiwari | Mar 2016 | A1 |
20160062692 | Finkbeiner et al. | Mar 2016 | A1 |
20160062733 | Tiwari | Mar 2016 | A1 |
20160063284 | Tiwari | Mar 2016 | A1 |
20160064045 | La Fratta | Mar 2016 | A1 |
20160064047 | Tiwari | Mar 2016 | A1 |
20160098208 | Willcock | Apr 2016 | A1 |
20160098209 | Leidel et al. | Apr 2016 | A1 |
20160110135 | Wheeler et al. | Apr 2016 | A1 |
20160125919 | Hush | May 2016 | A1 |
20160154596 | Willcock et al. | Jun 2016 | A1 |
20160155482 | La Fratta | Jun 2016 | A1 |
20160180948 | Tanabe | Jun 2016 | A1 |
20160188250 | Wheeler | Jun 2016 | A1 |
20160196142 | Wheeler et al. | Jul 2016 | A1 |
20160196856 | Tiwari et al. | Jul 2016 | A1 |
20160225422 | Tiwari et al. | Aug 2016 | A1 |
20160266873 | Tiwari et al. | Sep 2016 | A1 |
20160266899 | Tiwari | Sep 2016 | A1 |
20160267951 | Tiwari | Sep 2016 | A1 |
20160292080 | Leidel et al. | Oct 2016 | A1 |
20160300625 | Kim | Oct 2016 | A1 |
20160306584 | Zawodny et al. | Oct 2016 | A1 |
20160306614 | Leidel et al. | Oct 2016 | A1 |
20160350230 | Murphy | Dec 2016 | A1 |
20160365129 | Willcock | Dec 2016 | A1 |
20160371033 | La Fratta et al. | Dec 2016 | A1 |
20170024127 | Bazarsky et al. | Jan 2017 | A1 |
20170052906 | Lea | Feb 2017 | A1 |
20170162243 | Manning | Jun 2017 | A1 |
20170178701 | Willcock et al. | Jun 2017 | A1 |
20170192844 | Lea et al. | Jul 2017 | A1 |
20170228192 | Willcock et al. | Aug 2017 | A1 |
20170235515 | Lea et al. | Aug 2017 | A1 |
20170236564 | Zawodny et al. | Aug 2017 | A1 |
20170242902 | Crawford et al. | Aug 2017 | A1 |
20170243623 | Kirsch et al. | Aug 2017 | A1 |
20170262369 | Murphy | Sep 2017 | A1 |
20170263306 | Murphy | Sep 2017 | A1 |
20170269865 | Willcock et al. | Sep 2017 | A1 |
20170269903 | Tiwari | Sep 2017 | A1 |
20170277433 | Willcock | Sep 2017 | A1 |
20170277440 | Willcock | Sep 2017 | A1 |
20170277581 | Lea et al. | Sep 2017 | A1 |
20170277637 | Willcock et al. | Sep 2017 | A1 |
20170278559 | Hush | Sep 2017 | A1 |
20170278584 | Rosti | Sep 2017 | A1 |
20170285988 | Dobelstein | Oct 2017 | A1 |
20170293434 | Tiwari | Oct 2017 | A1 |
20170301379 | Hush | Oct 2017 | A1 |
20170309314 | Zawodny et al. | Oct 2017 | A1 |
20170336989 | Zawodny et al. | Nov 2017 | A1 |
20170337126 | Zawodny et al. | Nov 2017 | A1 |
20170337953 | Zawodny et al. | Nov 2017 | A1 |
20170352391 | Hush | Dec 2017 | A1 |
20170371539 | Mai et al. | Dec 2017 | A1 |
20180012636 | Alzheimer et al. | Jan 2018 | A1 |
20180024769 | Howe et al. | Jan 2018 | A1 |
20180024926 | Penney et al. | Jan 2018 | A1 |
20180025759 | Penney et al. | Jan 2018 | A1 |
20180025768 | Hush | Jan 2018 | A1 |
20190295633 | Giterman | Sep 2019 | A1 |
Number | Date | Country |
---|---|---|
102141905 | Aug 2011 | CN |
0214718 | Mar 1987 | EP |
2026209 | Feb 2009 | EP |
H0831168 | Feb 1996 | JP |
2009259193 | Mar 2015 | JP |
10-0211482 | Aug 1999 | KR |
10-2010-0134235 | Dec 2010 | KR |
10-2013-0049421 | May 2013 | KR |
2001065359 | Sep 2001 | WO |
2010079451 | Jul 2010 | WO |
2013062596 | May 2013 | WO |
2013081588 | Jun 2013 | WO |
2013095592 | Jun 2013 | WO |
Entry |
---|
Dybdahl, et al., “Destructive-Read in Embedded DRAM, Impact on Power Consumption,” Apr. 2006, (10 pgs.), vol. 2, Issue 2, Journal of Embedded Computing-Issues in embedded single-chip multicore architectures. |
Kogge, et al., “Processing in Memory: Chips to Petaflops,” May 23, 1997, (8 pgs.), retrieved from: http://www.cs.ucf.edu/courses/cda5106/summer02/papers/kogge97PIM.pdf. |
Draper, et al., “The Architecture of the DIVA Processing-In-Memory Chip,” Jun. 22-26, 2002, (12 pgs.), ICS '02, retrieved from: http://www.isi.edu/˜draper/papers/ics02.pdf. |
Adibi, et al., “Processing-In-Memory Technology for Knowledge Discovery Algorithms,” Jun. 25, 2006, (10 pgs.), Proceeding of the Second International Workshop on Data Management on New Hardware, retrieved from: http://www.cs.cmu.edu/˜damon2006/pdf/adibi06inmemory.pdf. |
U.S. Appl. No. 13/449,082, entitled, “Methods and Apparatus for Pattern Matching,” filed Apr. 17, 2012, (37 pgs.). |
U.S. Appl. No. 13/743,686, entitled, “Weighted Search and Compare in a Memory Device,” filed Jan. 17, 2013, (25 pgs.). |
U.S. Appl. No. 13/774,636, entitled, “Memory As a Programmable Logic Device,” filed Feb. 22, 2013, (30 pgs.). |
U.S. Appl. No. 13/774,553, entitled, “Neural Network in a Memory Device,” filed Feb. 22, 2013, (63 pgs.). |
U.S. Appl. No. 13/796,189, entitled, “Performing Complex Arithmetic Functions in a Memory Device,” filed Mar. 12, 2013, (23 pgs.). |
International Search Report and Written Opinion for PCT Application No. PCT/US2013/043702, dated Sep. 26, 2013, (11 pgs.). |
Pagiamtzis, et al., “Content-Addressable Memory (CAM) Circuits and Architectures: a Tutorial and Survey”, Mar. 2006, (16 pgs.), vol. 41, No. 3, IEEE Journal of Solid-State Circuits. |
Pagiamtzis, Kostas, “Content-Addressable Memory Introduction”, Jun. 25, 2007, (6 pgs.), retrieved from: http://www.pagiamtzis.com/cam/camintro. |
Debnath, Biplob, Bloomflash: Bloom Filter on Flash-Based Storage, 2011 31st Annual Conference on Distributed Computing Systems, Jun. 20-24, 2011, 10 pgs. |
Derby, et al., “A High-Performance Embedded DSP Core with Novel SIMD Features”, Apr. 6-10, 2003, (4 pgs), vol. 2, pp. 301-304, 2003 IEEE International Conference on Accoustics, Speech, and Signal Processing. |
“4.9.3 MINLOC and MAXLOC”, Jun. 12, 1995, (5pgs.), Message Passing Interface Forum 1.1, retrieved from http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node79.html. |
Stojmenovic, “Multiplicative Circulant Networks Topological Properties and Communication Algorithms”, (25 pgs.), Discrete Applied Mathematics 77 (1997) 281-305. |
Boyd et al., “On the General Applicability of Instruction-Set Randomization”, Jul.-Sep. 2010, (14 pgs.), vol. 7, Issue 3, IEEE Transactions on Dependable and Secure Computing. |
Elliot, et al., “Computational Ram: Implementing Processors in Memory”, Jan.-Mar. 1999, (10 pgs.), vol. 16, Issue 1, IEEE Design and Test of Computers Magazine. |
International Search Report and Written Opinion for related PCT Application No. PCT/US2019/013613, dated Apr. 19, 2019, 13 pages. |
Number | Date | Country | |
---|---|---|---|
20190235837 A1 | Aug 2019 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15885316 | Jan 2018 | US |
Child | 16115280 | US |