One embodiment includes a storage apparatus, method and system for comparing sample data with comparison date is disclosed. One embodiment provides a plurality of storage locations, an interface coupled to a plurality of storage locations for an exchange of data between the plurality of storage locations and external circuitry coupled to the interface, and a data comparator for comparing comparison data stored in the plurality of storage locations and sample data.
The accompanying drawings are included to provide a further understanding of embodiments and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments and together with the description serve to explain principles of embodiments. Other embodiments and many of the intended advantages of embodiments will be readily appreciated as they become better understood by reference to the following detailed description. The elements of the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding similar parts.
In the following Detailed Description, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. In this regard, directional terminology, such as “top,” “bottom,” “front,” “back,” “leading,” “trailing,” etc., is used with reference to the orientation of the Figure(s) being described. Because components of embodiments can be positioned in a number of different orientations, the directional terminology is used for purposes of illustration and is in no way limiting. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.
It is to be understood that the features of the various exemplary embodiments described herein may be combined with each other, unless specifically noted otherwise.
The integrated memory device 10 includes an interface logic or interface circuit 11 including an input 19 and control and data inputs not displayed in
The integrated memory device 10 can be coupled to an external bus or to other external circuitry via the interface circuit 11. For this purpose, the interface circuit 11 may include input and output amplifiers, latches, buffers etc. The interface circuit 11 is coupled to the subdivisions 13 by an internal bus 12. In
Each subdivision 13 includes an address decoder 14 receiving, from the interface circuit 11 via the bus 12, an address indicating a storage location. As an example, each storage location includes a predefined number of memory cells 16.
Each subdivision 13 further includes a predefined number of sense amplifiers 15. As an example, addresses are addresses of word lines, a storage location includes the memory cells 16 coupled to one word line, the number of memory cells coupled to one word line equals the number of sense amplifiers 15, and, when the address decoder 14 activates one of the word lines, each memory cell 16 coupled to the word line is connected to one of the sense amplifiers 15. However, each sub-division can be organized in a way and provide a topology different from the schematic representation displayed in
Furthermore, each subdivision 13 includes a data comparator 17 with a sample memory 18. The data comparator 17 is controlled via the bus 12 and sample data are written to the sample memory 18 via the bus 12. Each sample comparator 17 is configured to compare sample data stored in the sample memory 18 with comparison data stored in the memory cells 16 of the subdivision 13 associated with the data comparator. For this purpose, the size or storage capacity of the sample memory 18 of each data comparator 17 is adapted to the typical size of sample data (a few bytes to a few hundred bytes, sometimes even more). Typically, the amount of comparison data is larger than the amount of sample data. As an alternative to the separation of the storage locations for the comparison data and the sample memory for the sample data, both can be integrated. In particular, the sample memory can be a predefined part or sub-set of the entirety of storage locations of the respective subdivision 13, or any group of storage locations within the entirety of storage locations can be used as sample memory.
The geometry, the number and size of the elements and their relative arrangement in the integrated memory device 10 displayed in
The integrated memory device 10 is for example configured as a main memory for a computer or as a graphics memory of a plug-in graphics card for a computer etc. The term “computer” refers to a desktop computer, a laptop computer, a palmtop computer, a workstation, a mainframe computer or any other kind of computer. In these and other applications, the integrated memory device 10 stores executable code, data and other information. The memory cells 16 can be SRAM-, DRAM- or other volatile memory cells or flash-, MRAM-, FRAM-, PCRAM-, CBRAM-, ROM-, EPROM-, EEPROM or other non-volatile memory cells.
Any kind of digital information can be written to or read from any storage location of the integrated memory device 10. An address signal is received by the integrated memory device 10 via the input 19 of the interface circuit 11. From the received address, the interface circuit 11 evaluates to which subdivision 13 and to which storage location within this subdivision information is to be written or from which subdivision and from which storage location within this subdivision 13 information is to be read. The interface circuit 11 transmits an internal address to the respective subdivision 13, wherein the internal address identifies the storage location within the respective subdivision 13. The address decoder 14 of the respective subdivision 13 decodes the internal address and selects the storage location identified by the internal address, for example by activating the respective word line. Information transferred from the interface circuit 11 to the subdivision 13 via the bus 12 is written to the selected storage location by the sense amplifiers 15, or information read from a storage location by the sense amplifiers 15 is transferred to the interface circuit 11 via the bus 12.
Information stored in the integrated memory device 10 can be compared with sample data. For example, all occurrences of the sample data in the data stored in the integrated memory device 10 are to be found. In these cases, the information stored in the integrated memory device 10 is called comparison data. As an alternative, the information stored in the integrated memory device 10 can be called gallery data, wherein the term “gallery data” is not restricted to data representing pictures, images or videos.
The sample data is received from external circuitry by the interface circuit 11. Via the bus 12, the interface circuit 11 transfers the sample data to the sample memory 18 of the data comparator 17 of one or several selected subdivisions 13 or to the sample memories 18 of the data comparators 17 of each of the subdivisions 13. Each data comparator 17 compares the sample data stored in the sample memory 18 with the comparison data stored in the respective subdivision 13. When the sample data occurs in the comparison data once or several times, the data comparator 7 transfers the address of the occurrence or the addresses of the occurrences to the interface circuit 11 via the bus 12.
The data, or information, stored in the subdivisions 13 of the integrated memory device 10 can be one or several texts, one or several pictures or images, video data, music or other sound, a database containing any kind of information, or any other data or information. The data comparators can be optimized for a particular type or a particular group of types of information. As an alternative, the data comparator 17 can be configured for the comparison of any type of data, or information. The data comparators are configured or can be configured to indicate any identical occurrence of the sample data in the comparison data. As an alternative, the data comparators 17 are configured or can be configured to indicate similarities beyond identity, too.
The above described comparison of the comparison data stored in the integrated memory device 10 with the sample data can be used to search for any occurrence of the sample data or similar data within the comparison data. This search can be performed on all the data, or information, stored in the integrated memory device 10 by all the data comparators 17.
As an alternative, the comparison data includes only a part of the entire amount of data stored in the integrated memory device 10. In this case, the search can be conducted merely by those data comparators 17 associated with subdivisions 13 storing the comparison data or parts of the comparison data. As an alternative, the search is conducted on all the data stored in the entire memory device 10, and merely occurrences within the relevant comparison data are considered.
In the embodiment described above with reference to
As already mentioned above, the number of subdivisions 13 and the number of data comparators 17 can be different from those displayed in
The memory module 20 and the integrated memory devices 10 at the memory module 20 are configured to form the main memory of a desktop computer, a laptop computer, a palmtop computer, a workstation, a mainframe computer or any other computer. As an alternative, the memory module 20 is configured to be part of any other information technology device.
Again, the integrated memory devices 33, the data comparator 37 and the electrical contacts 32 or an optical interface or any other interface are coupled to each other by at least one of electrical conductors, an optical waveguide, a lens, a mirror or an other type of communication channel. Similar to the memory module 20 described above with reference to
The printed circuit board 51 is provided for being inserted into a slot or for being coupled to any other coupling member at an electronic device, wherein the slot or coupling member is provided for inserting a plug-in card like the plug-in card 50 displayed in
The plug-in card 50 is for example a graphics card, a sound card or any other plug-in card providing a special functionality for a computer.
Whenever particular sample data are searched for in comparison data stored in one or several memory devices 10 or memory modules 20, 30 of the electronic system 40 or the plug-in card 50 or the main board 60, the comparison of the sample data and the comparison data is performed by the data comparators 17 of the integrated memory devices 10 or by the data comparator 37 of the memory module 30 as outlined above with reference to the
In a first process 91, an address is transferred to the memory device. The address is transferred from circuitry which is external to the memory device, to an input of the memory device. In a second process 92, comparison data are written to a storage location within the memory device wherein the address identifies the storage location. The first process 91 and the second process 92 are a particular example for a procedure of writing comparison data to the memory device. The external circuitry provides at least the address. Optionally, the external circuitry also provides the comparison data. In this way, the writing procedure is controlled by the external circuitry.
When the comparison data are already present in the memory device, the first process 91 and the second process 92 can be omitted. In all cases, the results of the fourth process 94 are optionally transferred to external circuitry in a fifth process 95.
In a third process 93, sample data are transferred to the memory device. In a fourth process 94, the sample data and the comparison data are compared within the memory device. In particular, the sample data and the comparison data are compared by a data comparator within the memory device. When the memory device includes a number of data comparators, the fourth process 94 can be conducted by each of the number of data comparators simultaneously. Each of the number of data comparators compares the sample data with a part, or subset, of the comparison data. In this case, the third process 93 includes transferring the sample data to each of the number of data comparators. As an alternative, a number of different sample data are transferred to the data comparators in the third process 93. Thereafter, the different sample data are compared with the same parts or with different parts of the comparison data simultaneously in the fourth process 94.
When the method described above with reference to
At least some of the processes of the method described above with reference to
Further means may be provided, for example means for storing the comparison data in the memory device. As an example, the means for receiving comparison data at the memory device and, if provided, the means for storing the comparison data can be implemented in an interface coupled to a memory core of the memory device or to any other means for storing data within the memory device. This interface is configured for being coupled to external circuitry, for example to a memory buffer component, to a memory controller or to a processor.
Furthermore, means for receiving sample data can be provided. The means for receiving sample data can be identical to the means for receiving the comparison data. In other words, means for receiving both comparison data and sample data may be provided. As an alternative, means for receiving comparison data can be different from means for receiving sample data.
The memory device may include a number of sections, or units, or subdivisions, each of which includes means for storing comparison data and means for comparing the sample data with the comparison data stored in the corresponding or any other means for storing comparison data.
The preceding description describes exemplary embodiments of the invention. The features disclosed therein and the claims and the drawings can, therefore, be useful for realizing the invention in its various embodiments, both individually and in any combination. While the foregoing is directed to embodiments of the present invention, other and further embodiments of this invention may be devised without departing from the basic scope of the invention, the scope of the present invention being determined by the claims that follow.
Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that a variety of alternate and/or equivalent implementations may be substituted for the specific embodiments shown and described without departing from the scope of the present invention. This application is intended to cover any adaptations or variations of the specific embodiments discussed herein. Therefore, it is intended that this invention be limited only by the claims and the equivalents thereof.