Servers, personal computers, smartphone, tablets, and other types of computing devices typically include a central processing unit (“CPU”) or processor, operatively coupled to a system memory and a persistent storage device containing codes of applications and user data. An example of the system memory can include dynamic random-access memory (“DRAM) while examples of the persistent storage device include hard disk drives (“HDDs”) and solid-state drives (“SSDs”). During operation, upon receiving an input from a user, the CPU can instruct the system memory to load codes of an application and necessary user data from the persistent storage device. The CPU can then fetch portions of the codes from the system memory into local registers before processing the fetched codes to generate results for the user.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
In the computing devices described above, data processing components of the CPU, such as algorithmic processing unit (“ALU”) is separate from the system memory and local registers. Instead, data buses connect the ALU to the system memory and the local registers for sharing data. For example, during operation, data can be fetched from the system memory and stored at the local registers via one data bus. The ALU can then process the fetched data in the local registers to generate execution results. The generated execution results in turn can be transferred to the system memory and/or the persistent storage device via the same or another data bus. Such transfer of data though can result in high operational complexity, risks of data corruption during transport, and substantial power consumption.
Another drawback of the foregoing computing device is the requirement of a constant power supply to the system memory and the local registers to maintain processor states during operation. Examples of a processor state can include data generated by the ALU when processing codes loaded in the local register. For example, the ALU can execute an application that adds a series of input numbers to generate a sum. A current value of the sum represents a current processor state of the application. When stored at the local registers or the system memory, a constant power supply is needed to “refresh” DRAMs of the local registers or the system memory to maintain such processor states. If the power supply is interrupted during processing, portions of the processor state can be lost.
In addition, the foregoing computing devices typically operate on binary data. For example, a bit can represent a value of either zero or one. Multiple bits (e.g., eight) can then be combined into a data set, i.e., a byte. Multiple bytes (e.g., four) can then be grouped into a higher-level data set, such as a word. One drawback of processing data in binary is the low information density of binary data because each bit only has two possible states, i.e., zero or one. To obtain additional states, multiple bits are to be used. For example, to have four states, i.e., zero, one, two, and three, two bits are needed to represent such states as (0, 0), (0, 1), (1, 0), and (1, 1). Thus, accessing and/or storing information in binary can add to data access latency, increase power consumption, and consume large data storage spaces.
Several embodiments of the disclosed technology are directed to a single device that utilizes multiple magnetically coupled anisotropic nanomagnetic triangles each supporting a single magnetic domain for data processing and/or storage. In certain implementations, the nanomagnetic triangles can be constructed from iron, nickel-iron, or other suitable types of alloys via sputter deposition, lithography patterning, or other suitable techniques. An example technique for forming such nanomagnetic triangles is discussed in publication entitled “Tunable configurational anisotropy of concave triangular nanomagnets” by Kasuni Nanayakkara et al., the disclosure of which is incorporated herein in its entirety. In other implementations, the nanomagnetic triangles can be formed with other suitable magnetic or semi-magnetic materials.
According to aspects of the disclosed technology, a nanomagnetic triangle can include first, second, and third axes (referred to collectively as “axes”) extending from a center of the nanomagnetic triangle toward first, second, and third vertices (referred to collectively as “vertices”). Each axis can have a magnetic ground state different than those of the other axes. For ease of description, in the present disclosure, a magnetic direction extending away from the center of the nanomagnetic triangle toward one of the vertices is referred to as having a “North” direction while the opposite is referred to as having a “South” direction. Also, in the illustrated embodiments, having a North direction is encoded as a logic “1” while having a South direction is encoded as a logic “0” for illustration purposes. In other embodiments, the encoding of logic values can be reversed or have other suitable configurations. The nanomagnetic triangle can also have first, second, and third sides (referred to collectively as “sides”) between pairs of the vertices. In one example, the sides of the nanomagnetic triangles can each be linear or form a straight line. In other examples, the sides of the nanomagnetic triangles can be curved, multicollinear, or can have other suitable shapes or configurations.
It is believed that magnetic directions along different axes of the nanomagnetic triangle are correlated in such a way as to avoid having a magnetic monopole. A magnetic monopole is a hypothetical elementary particle that is an isolated magnet with only one magnetic pole (e.g., a North pole without a South pole, or vice versa). A magnetic monopole would have a net North or South “magnetic charge.” In practical applications, it is believed that no known experimental or observational evidence exists to support that magnetic monopoles exist. As such, the nanomagnetic triangle would have at least one axis with a magnetic direction that is different than the other axes to avoid forming a magnetic monopole. For example, the first axis can have a North direction while the second and third axes have a South direction, or vice versa. In addition, for the same reason, when magnetic directions of two axes are fixed (e.g., with an external bias), the magnetic direction of the remaining axis can be flipped. For instance, in the example above, if the first axis is switched to “South” and the second axis is fixed at “South,” the magnetic direction of the third axis can be flipped from South to North to avoid forming a magnetic monopole.
Based on the foregoing characteristics of the nanomagnetic triangles, several embodiments of the disclosed technology provide a single device that can process and persistently store data without a constant power supply. In one aspect, the single device can include multiple nanomagnetic triangles coupled to one another via magnetic coupling to form processing circuits according to target logic. As used herein, “magnetic coupling” referring to the existence of magnetic interactions between two spaced-apart magnets or nanomagnets. Magnetic coupling can be achieved via placing vertices of triangles spaced apart but adjacent to one another. In certain implementations, spacing of the magnets or nanomagnets can be based on a size of the magnets or nanomagnets. For example, a spacing of approximately 10% of a size of the nanomagnetic triangles is believed to be sufficient to form a magnetic coupling. In other implementations, spacing of the magnets or nanomagnets can be based on an absolute threshold or other suitable criteria so long as magnetic interactions are maintained between the adjacent magnets or nanomagnets.
As such, nanomagnetic triangles can each be configured as a NOR, NAND, or other suitable types of gates that are magnetically coupled to one another to form a processing circuit. For example, a nanomagnetic triangle can act as a NAND gate. When two of the three vertices acting as input are both set to “1,” the third vertex act as an output is forced to “0” to avoid forming a magnetic monopole. In another example, a nanomagnetic triangle ca act as a NOR gate. As such, when two of the three vertices act as input are set to “0,” the third vertex acting as an output is forced to “1” to avoid forming a magnetic monopole.
Multiple such NAND or NOR gates can be coupled together in sequence, net, or other arrangements to form a processing circuit or other types of gates. For instance, a first nanomagnetic triangle with first and second vertices as input to a NOR gate and a third vertex can be placed adjacent to a third vertex of a second nanomagnetic triangle acting as a NAND gate. The second nanomagnetic triangle also includes a first vertex as an output and a second vertex as an input of the NAND gate. In certain embodiments, individual nanomagnetic triangles and/or gates can be biased or “programmed” at runtime like operations of FPGA. In other embodiments, individual triangles and/or gates can be programmed during manufacturing and may be reprogrammable during use or at other suitable times.
During operation, the third vertex of the first nanomagnetic triangle can be initially biased to have a South polarity (or a logic “0”) and magnetically coupled to the third vertex of the second nanomagnetic triangle that is biased to have a North polarity (or a logic “1”). As such, the third vertex of the second nanomagnetic triangle can be initially biased to have a South polarity (or a logic “0”). Then, when both the first and second vertices of the first nanomagnetic triangle are biased to have a South polarity or logic “0,” the third vertex of the first nanomagnetic triangle would be forced to flip from a logic “0” to “1” indicating a positive result for the NOR logic. Due to the magnetic coupling between the third vertices of the first and second nanomagnetic triangles, the polarity of the third vertex of the second nanomagnetic triangle can be flipped from “1” to “0.” When the second vertex of the second nanomagnetic triangle as input to the NAND is biased to “0,” the polarity at the first vertex of the second nanomagnetic triangle (i.e., the output) is flipped from “0” to “1” to indicate a positive result for the NAND logic. On the other hand, if only one of the first or second vertices of the first nanomagnetic triangle is biased to “0,” then the third vertex of the first nanomagnetic triangle would not change polarity. Thus, the polarity of the vertices of the second nanomagnetic triangle would be maintained to have an output of “0.” The output from the first vertex of the second nanomagnetic triangle can be magnetically coupled to additional triangles to affect suitable logics.
Several embodiments of the single device can perform logic operations and persistently store processor states without a constant power supply. Unlike DRAMs, the multiple nanomagnetic triangles can modify magnetic polarities of adjacent nanomagnetic triangles and maintain respective magnetic states even when power is lost. For instance, in the foregoing example circuit, if power is lost after the input at the first and second vertices of the first nanomagnetic triangle were biased to “0,” the output of “1” at the second vertex of the second nanomagnetic triangle would still be achieved via magnetic coupling and be maintained. After power is restored, a sensor (e.g., a Hall effect monitor) can then be used to read the maintained value at the first vertex of the second nanomagnetic triangle. As such, embodiments of the single device can be cost effective to operate without using backup batteries, special shutdown procedures, or other techniques in response to power losses.
In addition, several embodiments of the foregoing single device can operate not only with binary data but also heximal data, i.e., base-six data. For instance, each vertex of a nanomagnetic triangle can have two states: North (or a logic “1”) or South (or a logic “0”). As such, possible combinations of magnetic states of the triangle without forming a magnetic monopole can include the following:
As such, each nanomagnetic triangle can contain three times the information than a binary bit. Information density can thus be significantly increased to reduce a size of a storage component as well as reducing data access latency.
Certain embodiments of systems, devices, components, and processes related to storing and processing data using nanomagnetic elements, such as nanomagnetic triangles, in computing systems are described below. In the following description, specific details of components are included to provide a thorough understanding of certain embodiments of the disclosed technology. A person skilled in the relevant art will also understand that the technology can have additional embodiments. The technology can also be practiced without several of the details of the embodiments described below with reference to
As used herein, the term “nanomagnetic triangle” generally refers to triangular shaped magnets having nanoscale sizes. For example, nanomagnetic triangles can have a height of approximately 100 nanometers, 150 nanometer, 200 nanometers, or other suitable values. In certain implementations, nanomagnetic triangles can be constructed from iron, nickel-iron, or other suitable types of alloys via sputter deposition, lithography patterning, or other suitable techniques. An example technique for forming such nanomagnetic triangles is discussed in publication entitled “Tunable configurational anisotropy of concave triangular nanomagnets” by Kasuni Nanayakkara et al., the disclosure of which is incorporated herein in its entirety. In other implementations, such nanomagnetic triangles can be formed with other suitable magnetic or semi-magnetic materials.
In certain computing devices, data processing components of the CPU, such as algorithmic processing unit (“ALU”) is separate from the system memory and local registers. Instead, data buses connect the ALU to the system memory and the local registers for sharing data. Thus, data transfer during operations occurs frequently during processing of the ALU. Such transfer of data though can result in high operational complexity, risks of data corruption during transport, and substantial power consumption. Another drawback of the foregoing computing device is the requirement of a constant power supply to the system memory and the local registers during operation to maintain a processor state. A constant power supply is needed to “refresh” DRAMs of the local registers or the system memory to maintain such processor states. If the power supply is interrupted during processing, portions of the processor state can be lost. In addition, the foregoing computing devices typically operate on binary data with low information density because each bit can have only two possible states, i.e., zero or one. To obtain/store additional states, multiple bits are to be used. Thus, accessing and/or storing information in binary can add to data access latency, increase power consumption, and consume large data storage spaces.
Several embodiments of the disclosed technology are directed to a storage and processing device utilizing multiple magnetically coupled anisotropic nanomagnetic triangles individually supporting a single magnetic domain for data processing and/or storage. By using such a device, processing and storage of data can be combined in a single device. As such, data transfer during processing can be reduced or even eliminated. Also, the nanomagnetic triangles of the single device can persistently store data even without a constant power supply. In addition, each nanomagnetic triangle can be encoded to carry heximal data, and thus significantly increasing information density, as described in more detail below with reference to
The multiple nanomagnetic triangles 110 can be arranged in columns and rows with the same or different orientation and/or configurations. For example, as shown in
By placing the nanomagnetic triangles 110 proximate to one another, adjacent nanomagnetic triangles 110 can be magnetically coupled to one another. As such, the multiple nanomagnetic triangles 110 can be coupled to one another via magnetic coupling to form processing circuits according to target logic. As used herein, “magnetic coupling” referring to the existence of magnetic interactions between two spaced-apart magnets or nanomagnets. Magnetic coupling can be achieved via placing nanomagnetic triangles spaced apart but adjacent to one another. In certain implementations, spacing of the nanomagnets can be based on a size of the magnets or nanomagnets. For example, a spacing of approximately 10% of a size of the nanomagnetic triangles 110 is believed to be sufficient to form a magnetic coupling. In other implementations, spacing of the magnets or nanomagnets can be based on an absolute threshold or other suitable criteria so long as magnetic interactions are maintained between the adjacent magnets or nanomagnets.
Though not shown in
As shown in
Also shown in
In operation, the biasing components 112, the magnetic sensors 114, and the optional magnetic interrupters (not shown) can be used to initially configure a processing circuit based on target logic. Subsequently, an input signal, such as a biasing input to at least one of the vertices 101a-101c of the nanomagnetic triangles 110 can be delivered to a corresponding biasing component 114. In response to receiving the input signal, the configured processing circuit can process the received input signal based on the target logic and generate a result in response to the input signal. Example operations of the storage and processing device 100 are described in more detail below with reference to
For ease of description, in the present disclosure, a magnetic direction extending away from the center 111 of the nanomagnetic triangle 110 toward one of the vertices 101 is referred to as having a “North” direction while the opposite is referred to as having a “South” direction. Also, in the illustrated embodiments, having a North direction is encoded as a logic “1” while having a South direction is encoded as a logic “0” for illustration purposes. In other embodiments, the encoding of logic values can be reversed or have other suitable configurations. The nanomagnetic triangle 110 can also have first, second, and third sides 126a-126c (referred to collectively as “sides 126”) between pairs of the vertices 101. In the example shown in
It is believed that magnetic directions along different axes 102 of the nanomagnetic triangle 110 are correlated in such a way as to avoid forming a magnetic monopole. A magnetic monopole is a hypothetical elementary particle that is an isolated magnet with only one magnetic pole (e.g., a North pole without a South pole, or vice versa). A magnetic monopole would have a net North or South “magnetic charge.” In practical applications, it is believed that no known experimental or observational evidence exists to support that magnetic monopoles exist. As such, the nanomagnetic triangle 110 would have at least one axis 102 with a magnetic direction that is different than the other axes 102 to avoid forming a magnetic monopole. For example, as shown in
According to aspect of the disclosed technology, each of the nanomagnetic triangles 110 can be configured as a NOR, NAND, or other suitable types of gates can be magnetically coupled to one another to form the processing circuit. For example, the first nanomagnetic triangle 110a can be configured as a NOR gate with Input X on the first vertex 101a and Input Y on the second vertex 101b. As such, when the first and second vertices 101a and 101b act as input are set to “0,” the third vertex 101c acting as an output is forced to “1” to avoid forming a magnetic monopole. In another example, the second nanomagnetic triangle 110b can be configured as a NAND gate. As such, when the second and third vertices 101b and 101c are both set to “1,” the first vertex 101a acting as an output is forced to “0” to avoid forming a magnetic monopole.
Multiple such NAND or NOR gates can then be magnetically coupled together to form a processing circuit or other types of additional gates. For instance, as shown in
During operation, the third vertex 101c of the first nanomagnetic triangle 110a can be initially biased to have a South polarity (or a logic “0”) and magnetically coupled to the third vertex 101c of the second nanomagnetic triangle 110b that is biased to have a North polarity (or a logic “1”). As such, the third vertex 101c of the second nanomagnetic triangle 110b can be initially biased to have a South polarity (or a logic “0”). Then, when both the first and second vertices 101a and 101b of the first nanomagnetic triangle 110a are biased to have a South polarity or logic “0,” the third vertex of the first nanomagnetic triangle 110a would be forced to flip from a logic “0” to “1” indicating a positive result for the NOR logic.
Due to the magnetic coupling 120 between the third vertices 101c of the first and second nanomagnetic triangles 110a and 110b, the polarity of the third vertex 101c of the second nanomagnetic triangle 110b can be flipped from “1” to “0.” For example, as shown in
Several embodiments of the storage and processing device 100 can perform logic operations and persistently store a processor state without a constant power supply. Unlike DRAMs, the multiple nanomagnetic triangles 110 can modify magnetic polarities of adjacent triangles 110 and maintain respective magnetic states even when power is lost. For instance, in the foregoing example circuit, if power is lost after the input at the first and second vertices 101a and 101b of the first nanomagnetic triangle 110a were biased to “0,” the output of “1” at the second vertex 101b of the second nanomagnetic triangle 110b would still be achieved via magnetic coupling and be maintained. After power is restored, a magnetic sensor 112 (shown in
In addition, several embodiments of the foregoing single device can operate not only with binary data but also heximal data, i.e., base-six data. For instance, each vertex of a nanomagnetic triangle 110 can have two states: North (or a logic “1”) or South (or a logic “0”). As such, as shown in
As such, each nanomagnetic triangle 110 can contain three times the information than a binary bit. Information density can thus be significantly increased to reduce a size of a storage component as well as reducing data access latency.
As shown in
The process 200 can then include receiving input to the processing circuit and processing the received input with the processing circuit at stage 206. Example operations of processing the received input are described in more detail below with reference to
As shown in
From the foregoing, it will be appreciated that specific embodiments of the disclosure have been described herein for purposes of illustration, but that various modifications may be made without deviating from the disclosure. In addition, many of the elements of one embodiment may be combined with other embodiments in addition to or in lieu of the elements of the other embodiments. Accordingly, the technology is not limited except as by the appended claims.