WO2017155553A1 - Spintronic apparatus and method for stochastic clustering - Google Patents

Spintronic apparatus and method for stochastic clustering Download PDF

Info

Publication number
WO2017155553A1
WO2017155553A1 PCT/US2016/022208 US2016022208W WO2017155553A1 WO 2017155553 A1 WO2017155553 A1 WO 2017155553A1 US 2016022208 W US2016022208 W US 2016022208W WO 2017155553 A1 WO2017155553 A1 WO 2017155553A1
Authority
WO
WIPO (PCT)
Prior art keywords
array
random
magnetic
projector
coupled
Prior art date
Application number
PCT/US2016/022208
Other languages
French (fr)
Inventor
Sasikanth Manipatruni
Dmitri E. Nikonov
Ian A. Young
Original Assignee
Intel Corporation
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Priority to PCT/US2016/022208 priority Critical patent/WO2017155553A1/en
Publication of WO2017155553A1 publication Critical patent/WO2017155553A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques

Definitions

  • the process of clustering is a process of grouping a set of objects in such a way that objects in the same group or a cluster are more similar in some sense or another to each other than to those in other groups or clusters.
  • classification generally refers to the problem of identifying to which set of categories in a group/cluster a new observation belongs.
  • classification may also refer to the task of identifying natural groups to which a set of objects belong.
  • An example of clustering and e array of magnetic elements is part of a random projector, and w or signals (e.g. , photos of people in a city).
  • Traditional computing approach is based on arithmetic manipulation on the images/signals, and this approach is intensive in terms of computational time and memory requirements.
  • the complexity of the classification and clustering also grows as the image and signal sizes grow.
  • Fig. 1 illustrates an apparatus for clustering using magnetic random access memory (MRAM) based on a random number generator (RNG), in accordance with some embodiments of the disclosure.
  • MRAM magnetic random access memory
  • RNG random number generator
  • FIG. 2 illustrates an example of an application of Johnson and Lindenstrauss
  • FIG. 3 illustrates an apparatus for multiplying an input array with an array of random numbers to generate input for a clustering logic, in accordance with some embodiments of the disclosure.
  • Fig. 4 illustrates an RNG based on an MRAM array, in accordance with some embodiments of the disclosure.
  • Figs. 5A-B illustrate plots showing performance of the RNG, in accordance with some embodiments of the disclosure.
  • Fig. 6 illustrates an example of clustering using the apparatus of various embodiments.
  • FIG. 7 illustrates a flowchart of a method for clustering using the apparatus of
  • FIG. 1 according to some embodiments of the disclosure.
  • Fig. 8 illustrates a smart device or a computer system or a SoC (System-on-
  • Chip with apparatus for stochastic clustering, according to some embodiments of the disclosure.
  • the apparatus comprises a random projector; a logic coupled to the random projector, where the logic is to perform clustering; and a feedback signal path coupled to an output of the logic and the random projector.
  • the random projector has a random number generator (RNG).
  • the random number generator is resettable.
  • the RNG comprises an array of magnetic junction devices (or a magnetic random access memory (MRAM)).
  • the RNG comprises an array of spintronic devices.
  • the MRAM array of various embodiments improves the performance of clustering algorithms. As such, large random number of arrays with unit time complexity are generated.
  • the RNG is one of: Boolean RNG or Continuous variable RNG. There are many technical effects of the various embodiments.
  • the apparatus of various embodiments overcomes the increasing computational complexity to process/cluster large datasets such as datasets greater than 1 Giga-Byte (GB) of images.
  • the apparatus of various embodiments leverages the inherent stochasticity of spin and MRAM devices to improve performance of clustering algorithms based on random number generators.
  • improving performance of clustering algorithms generally refers to the ability to perform an iterative process of generating random numbers using an actual error term compared to a target error term, and so executing the clustering algorithm with a desirable error (e.g., the least error possible).
  • a desirable error e.g., the least error possible
  • signals are represented with lines. Some lines may be thicker, to indicate more constituent signal paths, and/or have arrows at one or more ends, to indicate primary information flow direction. Such indications are not intended to be limiting. Rather, the lines are used in connection with one or more exemplary embodiments to facilitate easier understanding of a circuit or a logical unit. Any represented signal, as dictated by design needs or preferences, may actually comprise one or more signals that may travel in either direction and may be implemented with any suitable type of signal scheme.
  • connection means a direct physical, electrical, or wireless connection between the things that are connected, without any intermediary devices.
  • coupled means either a direct electrical or wireless connection between the things that are connected or an indirect electrical or wireless connection through one or more passive or active intermediary devices.
  • circuit means one or more passive and/or active components that are arranged to cooperate with one another to provide a desired function.
  • signal means at least one current signal, voltage signal, magnetic signal, electromagnetic signal, or data/clock signal.
  • phrases “A and/or B” and “A or B” mean (A), (B), or (A and B).
  • phrase “A, B, and/or C” means (A), (B), (C), (A and B), (A and C), (B and C), or (A, B and C).
  • the terms “left,” “right,” “front,” “back,” “top,” “bottom,” “over,” “under,” and the like in the description and in the claims, if any, are used for descriptive purposes and not necessarily for describing permanent relative positions.
  • Fig. 1 illustrates apparatus 100 for clustering using MRAM based RNG, in accordance with some embodiments of the disclosure.
  • apparatus 100 comprises Random Projector 101, Clustering Logic 103, and feedback signal path coupling an output of Clusting Logic 103 with Random Projector 101.
  • Random Projector 101 is to receive an array of values
  • Anxd where 'n' indicates a number of objects, and where 'd' indicates a number of attributes of the objects.
  • An example of array Anxd is an array of 'n' images of people and 'd' is a number of attributes of those people (e.g., color of skim, eyes, hair, etc.).
  • This array Anxd is saved in memory, in accordance with some embodiments.
  • the array Anxd is stored in a non-volatile memory (NVM) and the data in it is organized in accessible rows and columns.
  • NVM non-volatile memory
  • the array Anxd is stored in a random access memory (RAM) such as a static random access memory (SRAM) or dynamic random access memory (DRAM), and the data in it is organized in accessible rows and columns.
  • RAM random access memory
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • other types of memories may be used for storing this array.
  • Random Projector 101 is to multiply the array of values Anxd with an array of random numbers Rdxk, where the output of Random Projector
  • array Rdxk is implemented as an array of magnetic junction bit-cells, where at least one bit-cell comprises: a magnetic junction and a transistor coupled in series with the magnetic junction.
  • the Random Projector 101 comprises an array of bit-cells where each bit-cell has one transistor and one resistor (1T-1R) magnetic junction, and where a gate terminal of the transistor is to receive an input from the array of values Anxd.
  • the bit-cell is to generate a random number.
  • the random values of Rdxk are stored in a storage device (e.g., a non-volatile memory) and made available to other clustering logics.
  • the array Bnxk is received as input by Clustering Logic
  • Clustering Logic 102 which is to perform a clustering operation on the array Bnxk and to generate an output which is an error term indicating an error in distance.
  • the error term is provided to Random Projector 101a via a feedback signal path.
  • this error term is used to adjust the ability of randomness of the MRAM in Random Projector 101.
  • Clustering Logic 102 generates an array of clustered data Cnxd.
  • a new clustering array is generated for each iteration of this process (e.g., for producing a new array Rdxk due to a new error term). For example, Cni x d Cn2 x d . . . Cnk x d, after 'k' iterations are generated.
  • Various embodiments use clustering by iteratively selecting random number projections.
  • the clustering performed by Clustering Logic 102 is achieved by a measure of distance between a pattern, where the measure is one of: LI, L2, L- infinity, or a complex combination of them.
  • Clustering is performed for dimensionality reduction.
  • One example of an algorithm for clustering is based on the Johnson-Lindenstrauss (J-L) Theorem.
  • Fig. 2 illustrates example 200 of an application of the J-L Theorem showing reduction in dimensions. It is pointed out that those elements of Fig. 2 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
  • J-L Theorem states that a small set of points in a high-dimensional space can be embedded into a space of much lower dimension in such a way that distances between the points are nearly preserved.
  • J-L Theorem can be expressed as: Given 0 ⁇ ⁇ ⁇ 1 , a set X of m points in R ⁇ and a number n > 8 ⁇ n(m) / ⁇ 2 , there is a linear map / : R ' > R" such that
  • Clustering is the task of grouping a set of objects in such a way that objects in the same group (called a cluster) are more similar (by some measure) to each other than to those in other groups (clusters).
  • Clustering and classification is usually based on one of the distance metrics.
  • the two major classes of distance measure are Euclidean norm and non-Euclidean measures.
  • Euclidean norm examples include: LI norm, which is the sum of the differences in each dimension; Manhattan distance, which is a distance if someone had to travel along coordinates only; and L2 norm, which is a square root of the sum of the squares of the differences between 'x' and 'y' positions in each dimension. L2 norm is a common notion of "distance.”
  • Another Euclidean norm is L ⁇ norm. L ⁇ norm is the maximum of the differences between 'x' and 'y' in any dimension. The complexity of the norm calculation is reduced when the dimensions are reduced, for example.
  • J-L Theorem a set of n-points in high dimensional Euclidean space can be mapped into an 0(logTM 2 ) dimensional Euclidean space such that the distance between any two points changes by only a factor of (1 + ⁇ ). J-L theorem guarantees that when a random projection is applied, the relative distance between any two points in the high dimensional space is only changed by a small number.
  • this error distance is an actual error which is compared with a target error, and then new random numbers are generated to further reduce the number of dimensions.
  • the process is iterative till a desired error is achieved (which may be a small error (e.g., 0.01).
  • Clustering Logic 102 uses L2 norm distance to classify input matrices.
  • the input data 'A' to be "n x d", where 'n' is the number of datasets and 'd' is the dimensions of each data set.
  • the application of the J-L lemma is achieved by using Random Projector 101 which maps the original data 'A' to a much smaller dimension, in accordance with some embodiments.
  • the final number of dimensions, 'k' which is smaller than original number of dimensions 'd', is given by the J-L lemma to be:
  • Clustering Logic 102 receives B nxd and applies a clustering algorithm (e.g., k-means clustering scheme based on any one of LI, L2, L ⁇ , or a combination of them) to generate a reduced number of dimensions 'k' as indicated by output matrix C nxk .
  • the error term ' ⁇ ' is provided via feedback signal path to Random Projector 101, and this error term is used to adjust a voltage level to the MRAM in Random Projector 101 resulting in a new R dxk .
  • This new Rdxk is multiplied with input data Anxd t° generate a new array B nxd .
  • the new array B nxd is then used by Clustering Logic 102 to further attempt to reduce dimension of 'n' to 'k'.
  • the feedback mechanism is repeated to further reduce the error ⁇ .
  • an optimum random matrix R dxk is achieved.
  • this optimum random matrix R dx can be saved and applied for the same type of data A nxd by other users.
  • the optimum random matrix R dx can be sold as a product (e.g., in a flash drive) for clustering a certain type of data (e.g., images of faces of people). In some embodiments, for various types of data different optimum random matrix R dx may be generated.
  • Fig. 3 illustrates apparatus 300 for multiplying input array A nxd with an array of random numbers R dxk to generate input array B nxd for a clustering logic, in accordance with some embodiments of the disclosure. It is pointed out that those elements of Fig. 3 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
  • apparatus 300 comprises input array A nxd 301, RNG based MRAM 302, and Logic 304.
  • input array A nxd 301 is saved in memory (e.g., NVM,
  • the data of A nxd is accessible via word-lines (WLs) and bit-lines (BLs) using any known suitable scheme or circuit. So as not to obscure the embodiments, those circuits (e.g., WL driver, BL driver, Column selector, sense amplifier, multiplexers, etc.) are not shown.
  • the output 303 from input array A nxd 301 is multiplied with the contents R dxk of MRAM 302. In some embodiments, this multiplication is a matrix multiplication that provides output B nxd , which is input to Clustering Logic 102.
  • Logic 304 is provided which compares the actual error factual) with a target or desired error (s target ) to determine whether the desired error is achieved.
  • s actuai is provided via the feedback signal path.
  • Vdrive is increased.
  • Vdrive is provided to a power supply node.
  • Vdrive is applied as BL voltage to MRAM bit-cells.
  • Vdrive is applied to BL voltage to MRAM bit-cells. For example, Vdrive is added to BL voltage for MRAM bit-cells.
  • £ actuai ⁇ ⁇ target then Vdrive is maintained at its previous value.
  • Fig. 4 illustrates RNG 400 based on an MRAM array, in accordance with some embodiments of the disclosure. It is pointed out that those elements of Fig. 4 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
  • RNG 400 comprises bit-cells 401oo to 401nd organized in columns and rows (as shown, for example).
  • each bit-cell comprises a bit-line (BL), a word-line (WL), a select transistor (e.g., an n-type transistor MN), and a storage element in the form of a magnetic junction device.
  • the magnetic junction device is coupled in series with the select transistor.
  • the MRAM of RNG 400 is described with reference to an n-type select transistor. However, the embodiments are not limited to such.
  • the select transistor is a p-type transistor.
  • the BLs are coupled to the magnetic junction devices while the WLs are coupled to the select transistors.
  • BLo of bit-cell of 401oo is coupled to the magnetic junction of bit 40 loo while WLo of bit-cell of 40 loo is coupled the gate terminal of the select transistor MN.
  • RNG 400 is one of: Boolean RNG or Continuous variable RNG.
  • the Boolean RNG comprises an array of magnetic junction devices, where at least one of the magnetic junction devices comprises: a free magnetic layer 404; an intermediate layer 403 coupled to the free magnetic layer 404; and a fixed magnetic layer 402 coupled to the intermediate layer 403, such that wherein the free magnetic layer has a barrier energy in a range of 5 kT to 10 kT. This low energy barrier allows the magnetic junction device to provide a random output.
  • the free layer is a low thermal stability magnetic layer compared to regular free magnetic layers that have thermal stability barriers of 40 kT or higher.
  • the magnetizations of the free and fixed magnetic layers are orthogonal to each other.
  • the magnetization direction of the fixed magnetic layer 402 is perpendicular while the magnetization direction of the free magnetic layer 404 is in-plane.
  • the magnetization direction of the free magnetic layer 404 is perpendicular while the magnetization direction of the fixed magnetic layer 402 is in-plane.
  • the intermediate layer 403 is a metal, and where the at least one of the magnetic junction devices is a spin valve.
  • the intermediate layer is a dielectric (e.g., MgO), and where the at least one of the magnetic junction devices is a magnetic tunneling junction.
  • the fixed ferromagnet (FM) layer 402 is coupled to a bit-line (BL) while the free FM layer 404 is coupled to a drain terminal of transistor MN.
  • the BL is the same bit-line as the BL of array 301 containing matrix Anxd 301.
  • the source terminal of transistor MN is coupled to a node which provides the output matrix B nx k.
  • the gate terminal of transistor MN is controlled by word-line (WL).
  • the WL is the same word-line as the WL of array 301 containing matrix Anxd 301.
  • the free magnetic layer 404 has a lower stability than the stability of the fixed magnetic layer 402.
  • the thermal barrier of the magnets is degraded (e.g., 5 kT to 10 kT) compared to the thermal barrier of regular magnets (e.g., 40 kT to 60 kT).
  • the resistance of the magnetic junction switches between '0' and T states as voltage Vdrive modulates.
  • Vdrive from circuit 403 is added to the BL voltage.
  • Vdrfve is the BL voltage.
  • the resistance of the magnetic junction changes and the lower thermal barrier may cause the magnetization angle between the free magnet 404 to change relative to the fixed magnet 402, in accordance with some embodiments.
  • the randomness of the array 400 changes by modulating Vdrfve, in accordance with some embodiments.
  • a wide combination of materials can be used for material stacking of the magnetic tunneling junction.
  • the stack of materials include: Co x FeyB z , MgO, CoxFeyBz, Ru, Co x FeyB z , IrMn, Ru, Ta, and Ru, where 'x,' 'y,' and 'z' are fractions of elements in the alloys.
  • Other materials may also be used to form the magnetic tunneling junction.
  • the magnetic tunneling junction stack comprises free magnetic layer 404, MgO tunneling oxide 403, a fixed magnetic layer 402 which is a combination of CoFe, Ru, and CoFe layers referred to as Synthetic Anti-Ferromagnet (SAF), and an Anti-Ferromagnet (AFM) layer.
  • SAF Synthetic Anti-Ferromagnet
  • AFM Anti-Ferromagnet
  • the SAF layer has the property, that the magnetizations in the two CoFe layers are opposite, and allows for cancelling the dipole fields around the free magnetic layer 404 such that a stray dipole field will not control the free magnetic layer 404.
  • the magnetization direction of the fixed magnetic layer 402 is perpendicular relative to the magnetization direction of the free magnetic layer 404 (e.g., magnetization directions of the free and fixed magnetic layers are not parallel, rather they are orthogonal).
  • magnetization direction of the free magnetic layer 404 is in-plane while the magnetization direction of the fixed magnetic layer 402 is perpendicular to the in- plane.
  • magnetization direction of the fixed magnetic layer is in-plane while the magnetization direction of the free magnetic layer 404 is perpendicular to the in-plane.
  • the thickness of a ferromagnetic layer may determine its magnetization direction. For example, when the thickness of the ferromagnetic layer is above a certain threshold (depending on the material of the magnet, e.g.
  • the ferromagnetic layer exhibits magnetization direction which is in-plane.
  • the thickness of the ferromagnetic layer is below a certain threshold (depending on the material of the magnet), then the ferromagnetic layer exhibits magnetization direction which is perpendicular to the plane of the magnetic layer. Other factors may also determine the direction of magnetization.
  • factors such as surface anisotropy (depending on the adjacent layers or a multi -layer composition of the ferromagnetic layer) and/or crystalline anisotropy (depending on stress and the crystal lattice structure modification such as FCC (face centered cubic lattice), BCC (body centered cubic lattice), or LlO-type of crystals, where L10 is a type of crystal class which exhibits perpendicular magnetizations), can also determine the direction of magnetization.
  • FCC face centered cubic lattice
  • BCC body centered cubic lattice
  • LlO-type of crystals where L10 is a type of crystal class which exhibits perpendicular magnetizations
  • the magnets 402 and 404 are formed of a material selected from a group consisting of: Fe, Ni, Co and their alloys, magnetic insulators, and Heusler alloys of the form X2YZ.
  • the magnetic insulators are formed of a material selected from a group consisting of: magnetite Fe 3 0 4 and Y3AI5O12.
  • the Heusler alloys is one of: Co 2 FeSi and M Ga.
  • magnets 402 and 404 are formed with high spin polarization materials. Heusler alloys are an example of high spin polarization materials. Heusler alloys are ferromagnetic metal alloys based on Heusler phase.
  • Heusler phases are intermetallics with particular composition and face-centered cubic crystal structure.
  • Heusler alloys are ferromagnetic because of double- exchange mechanism between neighboring magnetic ions.
  • the neighboring magnetic ions are usually manganese ions, which sit at the body centers of the cubic structure and carry most of the magnetic moment of the alloy.
  • Heusler alloys such as Co2FeAl and Co2FeGeGa are used for forming magnets 402 and 404.
  • Other examples of Heusler alloys include: Cu 2 MnAl, Cu 2 MnIn, Cu 2 MnSn, Ni 2 MnAl, Ni 2 MnIn, Ni 2 MnSn, Ni 2 MnSb, Ni 2 MnGa, Co 2 MnAl, Co 2 MnSi, Co 2 MnGa, Co 2 MnGe, Pd 2 MnAl, Pd 2 MnIn, Pd 2 MnSn, Pd 2 MnSb, Co 2 FeSi, Fe 2 Val, Mn 2 VGa, Co 2 FeGe, etc.
  • one of the magnets has perpendicular magnetic anisotropy (PMA) while the magnetization of the other magnet is in-plane.
  • FM 404 is magnetized perpendicular to the plane of the chip having apparatus 400.
  • magnets with PMA are formed with multiple layers in a stack. The multiple thin layers can be layers of Cobalt and Platinum (i.e., Co/Pt), for example.
  • the multiple thin layers include: Co and Pd; Co and Ni; MgO, CoFeB, Ta, CoFeB, and MgO; MgO, CoFeB, W, CoFeB, and MgO; MgO, CoFeB, V, CoFeB, and MgO; MgO, CoFeB, Mo, CoFeB, MgO; Mn x Ga y ; Materials with L10 crystal symmetry; or materials with tetragonal crystal structure.
  • the perpendicular magnetic layer is formed of a single layer of one or more materials.
  • the single layer is formed of MnGa.
  • the perpendicular magnetic layer is formed of one of: a Heusler alloy, Co, Fe, Ni, Gd, B, Ge, Ga, permalloy, YIG, or a combination of them.
  • RNG 400 is a Continuous variable RNG
  • the Continuous variable RNG comprises an array of magnetic junction devices, and where at least one of the magnetic junction devices comprises: a free magnetic layer 404; an intermediate layer 403 coupled to the free magnetic layer 404; and a fixed magnetic layer 402 coupled to the intermediate layer 403, such the free magnetic layer 404 has a lower stability than the stability of the fixed magnetic layer 402.
  • the magnetizations of the free and fixed magnetic layers are orthogonal to each other.
  • Continuous variable RNG can produce an output which is anywhere between logic '0' and ⁇ .
  • a current is sensed through the magnetic junction bit-cells and depending on the relative angle change between the magnetizations of free FM 404 relative to fixed FM 402, the sensed current will change. As the current changes, the randomness changes.
  • Vdrfve changes RNG 400 produces new random values, which when multiplied with the values from array Anxd, generate a new product Bnxk. This product is then used to generate a clustered data C.
  • Figs. 5A-B illustrate plots showing performance of RNG 400, in accordance with some embodiments of the disclosure. It is pointed out that those elements of Figs. 5A-B having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
  • the x-axis is normalized sensed current while the y-axis is density.
  • Plot 500 illustrates sensed current 501 and the normal distribution 502 of the sensed current from MRAM 302.
  • the x-axis is normalized sensed current while the y- axis is cumulative probability.
  • Plot 520 shows the sensed current and the normal distribution, which almost overlap each other.
  • Fig. 6 illustrates example 600 of clustering using the apparatus of various embodiments. It is pointed out that those elements of Fig. 6 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
  • Example 600 shows the verification of apparatus and scheme of the various embodiments.
  • the original data is shown in a three dimensional plot where 3000 data points belonging to 3 clusters (Cluster 1 , Cluster 2, and Cluster 3) with 1000 data points each is considered. Each data point has 2000 dimensions.
  • the apparatus of various embodiments reduces these dimensions to 404 following the formula from J-L lemma.
  • the random number matrix Rdxk here is generated with a dimension 2000 x 404 to reduce the dimension to 404.
  • the original data and reduced dimensional data are passed through a L2 distance k-means algorithm. The accuracy of the data is confirmed by the plot on the right in example 600.
  • FIG. 7 illustrates flowchart 7000 of a method for clustering using the apparatus of Fig. 1, according to some embodiments of the disclosure. It is pointed out that those elements of Fig. 7 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
  • an input array of data Anxd is received.
  • array of data Anxd is downloaded into a RAM.
  • the array of data Anxd is multiplied with an array Rdxk of random numbers.
  • This array Rdxk of random numbers is implemented in MRAM 302, in accordance with some embodiments.
  • the value of Vdrfve is set to correspond to a particular error in distance.
  • Vdrive is used to change the randomness of RNG 302, in accordance with some embodiments.
  • Vdrive is modulated according to whether the actual error is greater than the target error (e.g., s actual >£ target ).
  • Clustering Logic 102 performs a clustering algorithm on array B nx k (which is generated by the product of arrays Anxd and Rdxk). Clustering Logic 102 also generates the actual error term actual .
  • Logic 304 adjusts Vdrive (e.g., increases it) for the magnetic junctions of array 302. As such, the RNG 400 is reset, and the process proceeds to block 702, and continues as described above.
  • the clustered data e.g., matrix C
  • the process may complete at that time, or can be re- preformed or reiterated with another input array Anxd.
  • Fig. 8 illustrates a smart device or a computer system or a SoC (System-on-
  • Fig. 8 illustrates a block diagram of an embodiment of a mobile device in which flat surface interface connectors could be used.
  • computing device 1600 represents a mobile computing device, such as a computing tablet, a mobile phone or smart-phone, a wireless-enabled e-reader, or other wireless mobile device. It will be understood that certain components are shown generally, and not all components of such a device are shown in computing device 1600.
  • the transistors in various circuits and logic blocks described here are metal oxide semiconductor (MOS) transistors, which include drain, source, gate, and bulk terminals.
  • the transistors also include Tri-Gate and FinFET transistors, Gate All Around Cylindrical Transistors, Tunneling FET (TFET), Square Wire, or Rectangular Ribbon Transistors or other devices implementing transistor functionality like carbon nanotubes or spintronic devices.
  • MOSFET symmetrical source and drain terminals i.e., are identical terminals and are interchangeably used here.
  • a TFET device on the other hand, has asymmetric Source and Drain terminals.
  • Bi-polar junction transistors— BJT PNP/NPN, BiCMOS, CMOS, eFET, etc. may be used without departing from the scope of the disclosure.
  • computing device 1600 includes processor 1610 with some or all apparatus for stochastic clustering, according to some embodiments discussed.
  • Other blocks of the computing device 1600 may also include some of all apparatus for stochastic clustering, according to some embodiments.
  • the arrays Anxd and Rdxk may be stored in separate memories.
  • Arrays Anxd be stored in a RAM while Rdxk may be stored in an MRAM, in accordance with some embodiments.
  • Clustering Logic 102 and part of Random Projector 101 (e.g., Logic 304) may be
  • the various embodiments of the present disclosure may also comprise a network interface within 1670 such as a wireless interface so that a system embodiment may be incorporated into a wireless device, for example, cell phone or personal digital assistant.
  • a network interface within 1670 such as a wireless interface so that a system embodiment may be incorporated into a wireless device, for example, cell phone or personal digital assistant.
  • processor 1610 can include one or more physical devices, such as microprocessors, application processors, microcontrollers, programmable logic devices, or other processing means.
  • the processing operations performed by processor 1610 include the execution of an operating platform or operating system on which applications and/or device functions are executed.
  • the processing operations include operations related to I/O (input/output) with a human user or with other devices, operations related to power management, and/or operations related to connecting the computing device 1600 to another device.
  • the processing operations may also include operations related to audio I/O and/or display I/O.
  • computing device 1600 includes audio subsystem
  • Audio functions can include speaker and/or headphone output, as well as microphone input. Devices for such functions can be integrated into computing device 1600, or connected to the computing device 1600. In one embodiment, a user interacts with the computing device 1600 by providing audio commands that are received and processed by processor 1610.
  • computing device 1600 comprises display subsystem
  • Display subsystem 1630 represents hardware (e.g., display devices) and software (e.g., drivers) components that provide a visual and/or tactile display for a user to interact with the computing device 1600.
  • Display subsystem 1630 includes display interface 1632, which includes the particular screen or hardware device used to provide a display to a user.
  • display interface 1632 includes logic separate from processor 1610 to perform at least some processing related to the display.
  • display subsystem 1630 includes a touch screen (or touch pad) device that provides both output and input to a user.
  • computing device 1600 comprises I/O controller 1640.
  • I/O controller 1640 represents hardware devices and software components related to interaction with a user. I/O controller 1640 is operable to manage hardware that is part of audio subsystem 1620 and/or display subsystem 1630. Additionally, I/O controller 1640 illustrates a connection point for additional devices that connect to computing device 1600 through which a user might interact with the system. For example, devices that can be attached to the computing device 1600 might include microphone devices, speaker or stereo systems, video systems or other display devices, keyboard or keypad devices, or other I/O devices for use with specific applications such as card readers or other devices.
  • I/O controller 1640 can interact with audio subsystem
  • display subsystem 1630 For example, input through a microphone or other audio device can provide input or commands for one or more applications or functions of the computing device 1600. Additionally, audio output can be provided instead of, or in addition to display output. In another example, if display subsystem 1630 includes a touch screen, the display device also acts as an input device, which can be at least partially managed by I/O controller 1640. There can also be additional buttons or switches on the computing device 1600 to provide I/O functions managed by I/O controller 1640.
  • I/O controller 1640 manages devices such as accelerometers, cameras, light sensors or other environmental sensors, or other hardware that can be included in the computing device 1600.
  • the input can be part of direct user interaction, as well as providing environmental input to the system to influence its operations (such as filtering for noise, adjusting displays for brightness detection, applying a flash for a camera, or other features).
  • computing device 1600 includes power management
  • Memory subsystem 1660 includes memory devices for storing information in computing device 1600.
  • Memory can include nonvolatile (state does not change if power to the memory device is interrupted) and/or volatile (state is indeterminate if power to the memory device is interrupted) memory devices.
  • Memory subsystem 1660 can store application data, user data, music, photos, documents, or other data, as well as system data (whether long-term or temporary) related to the execution of the applications and functions of the computing device 1600.
  • the machine-readable medium may include, but is not limited to, flash memory, optical disks, CD-ROMs, DVD ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, phase change memory (PCM), or other types of machine-readable media suitable for storing electronic or computer- executable instructions.
  • embodiments of the disclosure may be downloaded as a computer program (e.g., BIOS) which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals via a communication link (e.g., a modem or network connection).
  • BIOS a computer program
  • a remote computer e.g., a server
  • a requesting computer e.g., a client
  • a communication link e.g., a modem or network connection
  • computing device 1600 comprises connectivity 1670.
  • Connectivity 1670 includes hardware devices (e.g., wireless and/or wired connectors and communication hardware) and software components (e.g., drivers, protocol stacks) to enable the computing device 1600 to communicate with external devices.
  • the computing device 1600 could be separate devices, such as other computing devices, wireless access points or base stations, as well as peripherals such as headsets, printers, or other devices.
  • Connectivity 1670 can include multiple different types of connectivity.
  • the computing device 1600 is illustrated with cellular connectivity 1672 and wireless connectivity 1674.
  • Cellular connectivity 1672 refers generally to cellular network connectivity provided by wireless carriers, such as provided via GSM (global system for mobile communications) or variations or derivatives, CDMA (code division multiple access) or variations or derivatives, TDM (time division multiplexing) or variations or derivatives, or other cellular service standards.
  • Wireless connectivity (or wireless interface) 1674 refers to wireless connectivity that is not cellular, and can include personal area networks (such as Bluetooth, Near Field, etc.), local area networks (such as Wi-Fi), and/or wide area networks (such as WiMax), or other wireless communication.
  • computing device 1600 comprises peripheral connections 1680.
  • Peripheral connections 1680 include hardware interfaces and connectors, as well as software components (e.g., drivers, protocol stacks) to make peripheral connections.
  • the computing device 1600 could both be a peripheral device ("to" 1682) to other computing devices, as well as have peripheral devices ("from” 1684) connected to it.
  • the computing device 1600 commonly has a "docking" connector to connect to other computing devices for purposes such as managing (e.g., downloading and/or uploading, changing, synchronizing) content on computing device 1600.
  • a docking connector can allow computing device 1600 to connect to certain peripherals that allow the computing device 1600 to control content output, for example, to audiovisual or other systems.
  • the computing device 1600 can make peripheral connections 1680 via common or standards-based connectors.
  • Common types can include a Universal Serial Bus (USB) connector (which can include any of a number of different hardware interfaces), DisplayPort including MiniDisplayPort (MDP), High Definition Multimedia Interface (HDMI), Firewire, or other types.
  • USB Universal Serial Bus
  • MDP MiniDisplayPort
  • HDMI High Definition Multimedia Interface
  • Firewire or other types.
  • an apparatus which comprises: a random projector; a logic coupled to the random projector, the logic to perform clustering; and a feedback signal path coupled to an output of the logic and the random projector.
  • the random projector has a random number generator (RNG).
  • RNG random number generator
  • the RNG comprises an array of magnetic junction devices.
  • the magnetic junction devices are one of spin valves or magnetic tunneling junctions.
  • the RNG is one of: Boolean RNG or Continuous variable RNG.
  • the Boolean RNG comprises an array of magnetic junction devices, and wherein at least one of the magnetic junction devices comprises: a free magnetic layer; an intermediate layer coupled to the free magnetic layer; and a fixed magnetic layer coupled to the intermediate layer, wherein the free magnetic layer has a barrier energy in a range of 5kT to lOkT.
  • the intermediate layer is a metal, and wherein the at least one of the magnetic junction devices is a spin valve.
  • the intermediate layer is a dielectric, and wherein the at least one of the magnetic junction devices is a magnetic tunneling junction.
  • magnetizations of the free and fixed magnetic layers are orthogonal to each other.
  • the Continuous variable RNG comprises an array of magnetic junction devices, and wherein at least one of the magnetic junction devices comprises: a free magnetic layer; an intermediate layer coupled to the free magnetic layer; and a fixed magnetic layer coupled to the intermediate layer, wherein the free magnetic layer has a lower stability than the stability of the fixed magnetic layer.
  • the intermediate layer is a metal, and wherein the at least one of the magnetic junction devices is a spin valve.
  • the intermediate layer is a dielectric, and wherein the at least one of the magnetic junction devices is a magnetic tunneling junction.
  • the magnetizations of the free and fixed magnetic layers are orthogonal to each other.
  • the RNG comprises an array of spintronic devices.
  • the random projector is to receive an array of values A n x d, where 'n' indicates a number of objects, and where 'd' indicates a number of attributes of the objects.
  • the random projector is to multiply the array of values
  • An x d with an array Rd x k wherein the output of the random proj ector is an array B n x k.
  • the array B n x k is received as input by the logic which is to perform the clustering operation on the array Bnxk and generate the output of the logic which is an error term indicating an error in clustering.
  • the feedback signal path is to provide the error term to the random projector.
  • the array of values Rd xk is stored in a memory.
  • the array Rd xkis implemented as an array of magnetic junction bit-cells, wherein at least one bit-cell comprises: a magnetic junction; and a transistor coupled in series with the magnetic junction.
  • the random projector comprises an array of cells each cell having one transistor and one resistor (1T1R) magnetic junction, wherein gate terminal of the transistor is to receive an input from the array of values Anxd, and wherein the cell is to generate a random number.
  • the clustering is achieved by a measure of distance between a partem, and wherein the measure is one of: LI, L2, L-infinity, or a complex combination of them.
  • a system which comprises a memory; a processor coupled to the memory, the processor including an apparatus according to the apparatus described above; and a wireless interface for allowing the processor to
  • an apparatus which comprises: an array of magnetic elements operable to generate random numbers; a supply node coupled to the array of magnetic elements; and a circuit to adjust voltage on the supply node to change the random numbers.
  • the array of magnetic elements is part of a random projector, and wherein the apparatus comprises a logic coupled to the random projector, the logic to perform clustering.
  • the apparatus comprises a feedback signal path coupled to an output of the logic and the random projector. In some embodiments, the feedback signal path is coupled to the circuit.
  • a system which comprises a memory; a processor coupled to the memory, the processor including an apparatus according to the apparatus described above; and a wireless interface for allowing the processor to
  • a method which comprises: receiving an input array Anxd; generating a random number matrix Rdxk using MRAM; multiplying the input array Anxd with the random number generating matrix Rdxk to generate matrix Bnxk; and performing clustering on matrix Bnxk to generate clustered data and an actual error term.
  • the method comprises determining whether the actual error term is larger than a target error term.
  • the method comprises adjusting a voltage level for magnetic junctions of the MRAM in response to determining that the actual error term is higher than the target error term.
  • an apparatus which comprises: means for receiving an input array Anxd; means for generating a random number matrix Rdxk using MRAM; means for multiplying the input array Anxd with the random number generating matrix Rdxk to generate matrix Bnxk; and means for performing clustering on matrix Bnxk to generate clustered data and an actual error term.
  • the apparatus comprises means for determining whether the actual error term is larger than a target error term.
  • the apparatus comprises means for adjusting a voltage level for magnetic junctions of the MRAM in response to determining that the actual error term is higher than the target error term.
  • a system which comprises a memory; a processor coupled to the memory, the processor including an apparatus according to the apparatus described above; and a wireless interface for allowing the processor to

Abstract

Described is an apparatus which comprises: a random projector; a logic coupled to the random projector, the logic to perform clustering; and a feedback signal path coupled to an output of the logic and the random projector. Described is an apparatus which comprises: an array of magnetic elements operable to generate random numbers; a supply node coupled to the array of magnetic elements; and a circuit to adjust voltage on the supply node to change the random numbers. Described is a system which comprises: a memory; a processor coupled to the memory, the processor including an apparatus according to the apparatus described above; and a wireless interface for allowing the processor to communicate with another device.

Description

SPINTRONIC APPARATUS AND METHOD FOR STOCHASTIC CLUSTERING
BACKGROUND
[0001] Computing for cognitive tasks such as clustering, classification has emerged as an important class of problems. The process of clustering is a process of grouping a set of objects in such a way that objects in the same group or a cluster are more similar in some sense or another to each other than to those in other groups or clusters. Here, the term "classification" generally refers to the problem of identifying to which set of categories in a group/cluster a new observation belongs. The term "classification" may also refer to the task of identifying natural groups to which a set of objects belong. An example of clustering and e array of magnetic elements is part of a random projector, and w or signals (e.g. , photos of people in a city). Traditional computing approach is based on arithmetic manipulation on the images/signals, and this approach is intensive in terms of computational time and memory requirements. The complexity of the classification and clustering also grows as the image and signal sizes grow.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The embodiments of the disclosure will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the disclosure, which, however, should not be taken to limit the disclosure to the specific embodiments, but are for explanation and understanding only.
[0003] Fig. 1 illustrates an apparatus for clustering using magnetic random access memory (MRAM) based on a random number generator (RNG), in accordance with some embodiments of the disclosure.
[0004] Fig. 2 illustrates an example of an application of Johnson and Lindenstrauss
(J-L) Theorem showing reduction in dimensions.
[0005] Fig. 3 illustrates an apparatus for multiplying an input array with an array of random numbers to generate input for a clustering logic, in accordance with some embodiments of the disclosure.
[0006] Fig. 4 illustrates an RNG based on an MRAM array, in accordance with some embodiments of the disclosure.
[0007] Figs. 5A-B illustrate plots showing performance of the RNG, in accordance with some embodiments of the disclosure. [0008] Fig. 6 illustrates an example of clustering using the apparatus of various embodiments.
[0009] Fig. 7 illustrates a flowchart of a method for clustering using the apparatus of
Fig. 1, according to some embodiments of the disclosure.
[0010] Fig. 8 illustrates a smart device or a computer system or a SoC (System-on-
Chip) with apparatus for stochastic clustering, according to some embodiments of the disclosure.
DETAILED DESCRIPTION
[0011] Various embodiments describe a method and apparatus for clustering based on dimensionality reduction. In some embodiments, the apparatus comprises a random projector; a logic coupled to the random projector, where the logic is to perform clustering; and a feedback signal path coupled to an output of the logic and the random projector. In some embodiments, the random projector has a random number generator (RNG). In some embodiments, the random number generator is resettable. In some embodiments, the RNG comprises an array of magnetic junction devices (or a magnetic random access memory (MRAM)). In some embodiments, the RNG comprises an array of spintronic devices. The MRAM array of various embodiments improves the performance of clustering algorithms. As such, large random number of arrays with unit time complexity are generated. In some embodiments, the RNG is one of: Boolean RNG or Continuous variable RNG. There are many technical effects of the various embodiments.
[0012] For example, the apparatus of various embodiments overcomes the increasing computational complexity to process/cluster large datasets such as datasets greater than 1 Giga-Byte (GB) of images. The apparatus of various embodiments leverages the inherent stochasticity of spin and MRAM devices to improve performance of clustering algorithms based on random number generators. Here, improving performance of clustering algorithms generally refers to the ability to perform an iterative process of generating random numbers using an actual error term compared to a target error term, and so executing the clustering algorithm with a desirable error (e.g., the least error possible). Other technical effects will be evident from the various embodiments.
[0013] In the following description, numerous details are discussed to provide a more thorough explanation of embodiments of the present disclosure. It will be apparent, however, to one skilled in the art, that embodiments of the present disclosure may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring embodiments of the present disclosure.
[0014] Note that in the corresponding drawings of the embodiments, signals are represented with lines. Some lines may be thicker, to indicate more constituent signal paths, and/or have arrows at one or more ends, to indicate primary information flow direction. Such indications are not intended to be limiting. Rather, the lines are used in connection with one or more exemplary embodiments to facilitate easier understanding of a circuit or a logical unit. Any represented signal, as dictated by design needs or preferences, may actually comprise one or more signals that may travel in either direction and may be implemented with any suitable type of signal scheme.
[0015] Throughout the specification, and in the claims, the term "connected" means a direct physical, electrical, or wireless connection between the things that are connected, without any intermediary devices. The term "coupled" means either a direct electrical or wireless connection between the things that are connected or an indirect electrical or wireless connection through one or more passive or active intermediary devices. The term "circuit" means one or more passive and/or active components that are arranged to cooperate with one another to provide a desired function. The term "signal" means at least one current signal, voltage signal, magnetic signal, electromagnetic signal, or data/clock signal. The meaning of "a," "an," and "the" include plural references. The meaning of "in" includes "in" and "on."
[0016] The terms "substantially," "close," "approximately," "near," and "about," generally refer to being within +/- 10% of a target value (unless specifically specified). Unless otherwise specified the use of the ordinal adjectives "first," "second," and "third," etc., to describe a common object, merely indicate that different instances of like objects are being referred to, and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking or in any other manner.
[0017] Unless otherwise specified the use of the ordinal adjectives "first," "second," and "third," etc., to describe a common object, merely indicate that different instances of like objects are being referred to, and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking or in any other manner. For the purposes of the present disclosure, phrases "A and/or B" and "A or B" mean (A), (B), or (A and B). For the purposes of the present disclosure, the phrase "A, B, and/or C" means (A), (B), (C), (A and B), (A and C), (B and C), or (A, B and C). The terms "left," "right," "front," "back," "top," "bottom," "over," "under," and the like in the description and in the claims, if any, are used for descriptive purposes and not necessarily for describing permanent relative positions.
[0018] Fig. 1 illustrates apparatus 100 for clustering using MRAM based RNG, in accordance with some embodiments of the disclosure. In some embodiments, apparatus 100 comprises Random Projector 101, Clustering Logic 103, and feedback signal path coupling an output of Clusting Logic 103 with Random Projector 101.
[0019] In some embodiments, Random Projector 101 is to receive an array of values
Anxd, where 'n' indicates a number of objects, and where 'd' indicates a number of attributes of the objects. An example of array Anxd is an array of 'n' images of people and 'd' is a number of attributes of those people (e.g., color of skim, eyes, hair, etc.). This array Anxd, is saved in memory, in accordance with some embodiments. For example, the array Anxd is stored in a non-volatile memory (NVM) and the data in it is organized in accessible rows and columns. In some embodiments, the array Anxd is stored in a random access memory (RAM) such as a static random access memory (SRAM) or dynamic random access memory (DRAM), and the data in it is organized in accessible rows and columns. In other examples, other types of memories may be used for storing this array.
[0020] In some embodiments, Random Projector 101 is to multiply the array of values Anxd with an array of random numbers Rdxk, where the output of Random Projector
101 is an array Bnxk. In some embodiments, array Rdxk is implemented as an array of magnetic junction bit-cells, where at least one bit-cell comprises: a magnetic junction and a transistor coupled in series with the magnetic junction. In some embodiments, the Random Projector 101 comprises an array of bit-cells where each bit-cell has one transistor and one resistor (1T-1R) magnetic junction, and where a gate terminal of the transistor is to receive an input from the array of values Anxd. In some embodiments, the bit-cell is to generate a random number. In some embodiments, the random values of Rdxk are stored in a storage device (e.g., a non-volatile memory) and made available to other clustering logics.
[0021] In some embodiments, the array Bnxk is received as input by Clustering Logic
102 which is to perform a clustering operation on the array Bnxk and to generate an output which is an error term indicating an error in distance. In some embodiments, the error term is provided to Random Projector 101a via a feedback signal path. In some embodiments, this error term is used to adjust the ability of randomness of the MRAM in Random Projector 101. As such, Clustering Logic 102 generates an array of clustered data Cnxd. In some embodiments, for each iteration of this process (e.g., for producing a new array Rdxk due to a new error term), a new clustering array is generated. For example, Cni x d Cn2 x d . . . Cnk x d, after 'k' iterations are generated. Various embodiments use clustering by iteratively selecting random number projections.
[0022] In some embodiments, the clustering performed by Clustering Logic 102 is achieved by a measure of distance between a pattern, where the measure is one of: LI, L2, L- infinity, or a complex combination of them. Clustering is performed for dimensionality reduction. One example of an algorithm for clustering is based on the Johnson-Lindenstrauss (J-L) Theorem.
[0023] Fig. 2 illustrates example 200 of an application of the J-L Theorem showing reduction in dimensions. It is pointed out that those elements of Fig. 2 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such. In this example, the image to the left has 10000 images (i.e., n=10000), where each image being of size 512 kb (kilobyte). Here, the number of dimensions is 512000 (i.e., d=512000), which makes the input array Anxd an array of 10000 x 512000, which is a large array. This array is saved in memory and processed by apparatus 100 for clustering.
[0024] J-L Theorem states that a small set of points in a high-dimensional space can be embedded into a space of much lower dimension in such a way that distances between the points are nearly preserved. Mathematically, J-L Theorem can be expressed as: Given 0 < ε < 1 , a set X of m points in R \ and a number n > 8 \n(m) / ε 2, there is a linear map / : R ' > R" such that
(1 - ε) \\ u - v ||2 < II f(u) - f v) \\2≤ (1 + ε) \\ u - v \\2 for all u, v £ X.
[0025] Another way to express the J-L Theorem is: Given ε £ (0, 1/2), and let ε C Rd be a set of n points and k— then there exists a Lipshcitz mapping f: Rd→ ?fcsuch that for all u, v £ Q:
(1 - ε) II u - v ||2 < II f u) - f(y) ||2< (l + s) \\ u - v ||2 where 'n' is the original data, 'd' is the number of attributes of the data, and 'k' is the reduced dimension of the original data.
[0026] Dimensionality reduction is a concept applied to large data sets, such as large images, in order to improve the ability to do clustering and classification. Clustering is the task of grouping a set of objects in such a way that objects in the same group (called a cluster) are more similar (by some measure) to each other than to those in other groups (clusters). Clustering and classification is usually based on one of the distance metrics. The two major classes of distance measure are Euclidean norm and non-Euclidean measures.
[0027] Examples of Euclidean norm are: LI norm, which is the sum of the differences in each dimension; Manhattan distance, which is a distance if someone had to travel along coordinates only; and L2 norm, which is a square root of the sum of the squares of the differences between 'x' and 'y' positions in each dimension. L2 norm is a common notion of "distance." Another Euclidean norm is L∞ norm. L∞ norm is the maximum of the differences between 'x' and 'y' in any dimension. The complexity of the norm calculation is reduced when the dimensions are reduced, for example.
[0028] According to J-L Theorem, a set of n-points in high dimensional Euclidean space can be mapped into an 0(log™2) dimensional Euclidean space such that the distance between any two points changes by only a factor of (1 + ε). J-L theorem guarantees that when a random projection is applied, the relative distance between any two points in the high dimensional space is only changed by a small number. Example 200 of Fig. 2 is an application of the J-L lemma showing the reduction in dimensions from 10000 dimensions to 1000 dimensions with error in distance being 0.1 (i.e., ε = 0.1). In some embodiments, this error distance is an actual error which is compared with a target error, and then new random numbers are generated to further reduce the number of dimensions. In some embodiments, the process is iterative till a desired error is achieved (which may be a small error (e.g., 0.01).
[0029] Referring to Fig. 1, in some embodiments, Clustering Logic 102 uses L2 norm distance to classify input matrices. Consider the input data 'A' to be "n x d", where 'n' is the number of datasets and 'd' is the dimensions of each data set. The application of the J-L lemma is achieved by using Random Projector 101 which maps the original data 'A' to a much smaller dimension, in accordance with some embodiments. The final number of dimensions, 'k' which is smaller than original number of dimensions 'd', is given by the J-L lemma to be:
Figure imgf000007_0001
[0030] The operation of dimension reduction is a matrix multiplication: where ¾Xfcis the random matrix generated by Random Projector 101, in accordance with some embodiments. In some embodiments, Clustering Logic 102 receives Bnxd and applies a clustering algorithm (e.g., k-means clustering scheme based on any one of LI, L2, L∞, or a combination of them) to generate a reduced number of dimensions 'k' as indicated by output matrix Cnxk. In some embodiments, the error term 'ε' is provided via feedback signal path to Random Projector 101, and this error term is used to adjust a voltage level to the MRAM in Random Projector 101 resulting in a new Rdxk. This new Rdxk is multiplied with input data Anxd t° generate a new array Bnxd . The new array Bnxd is then used by Clustering Logic 102 to further attempt to reduce dimension of 'n' to 'k'. In some embodiments, the feedback mechanism is repeated to further reduce the error ε.
[0031] In some embodiments, when the reduced error 'ε' reaches a desired error 'ε', an optimum random matrix Rdxk is achieved. In some embodiments, this optimum random matrix Rdx can be saved and applied for the same type of data Anxdby other users. In some examples, the optimum random matrix Rdx can be sold as a product (e.g., in a flash drive) for clustering a certain type of data (e.g., images of faces of people). In some embodiments, for various types of data different optimum random matrix Rdx may be generated.
[0032] Fig. 3 illustrates apparatus 300 for multiplying input array Anxd with an array of random numbers Rdxk to generate input array Bnxd for a clustering logic, in accordance with some embodiments of the disclosure. It is pointed out that those elements of Fig. 3 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such. In some embodiments, apparatus 300 comprises input array Anxd 301, RNG based MRAM 302, and Logic 304.
[0033] In some embodiments, input array Anxd 301 is saved in memory (e.g., NVM,
SRAM, DRAM, etc.) and its data is organized in rows and columns. In some embodiments, the data of Anxdis accessible via word-lines (WLs) and bit-lines (BLs) using any known suitable scheme or circuit. So as not to obscure the embodiments, those circuits (e.g., WL driver, BL driver, Column selector, sense amplifier, multiplexers, etc.) are not shown. In some embodiments, the output 303 from input array Anxd 301 is multiplied with the contents Rdxk of MRAM 302. In some embodiments, this multiplication is a matrix multiplication that provides output Bnxd, which is input to Clustering Logic 102.
[0034] In some embodiments, Logic 304 is provided which compares the actual error factual) with a target or desired error (starget) to determine whether the desired error is achieved. In some embodiments, sactuai is provided via the feedback signal path. In some embodiments, when £actuaitarget then Vdrive is increased. In some embodiments, Vdrive is provided to a power supply node. In some embodiments, Vdrive is applied as BL voltage to MRAM bit-cells. In some embodiments, Vdrive is applied to BL voltage to MRAM bit-cells. For example, Vdrive is added to BL voltage for MRAM bit-cells. In some embodiments, when £actuai≤ ^target then Vdrive is maintained at its previous value.
[0035] Fig. 4 illustrates RNG 400 based on an MRAM array, in accordance with some embodiments of the disclosure. It is pointed out that those elements of Fig. 4 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
[0036] In some embodiments, RNG 400 comprises bit-cells 401oo to 401nd organized in columns and rows (as shown, for example). In some embodiments, each bit-cell comprises a bit-line (BL), a word-line (WL), a select transistor (e.g., an n-type transistor MN), and a storage element in the form of a magnetic junction device. In some embodiments, the magnetic junction device is coupled in series with the select transistor. The MRAM of RNG 400 is described with reference to an n-type select transistor. However, the embodiments are not limited to such. In some embodiments, the select transistor is a p-type transistor. In some embodiments, the BLs are coupled to the magnetic junction devices while the WLs are coupled to the select transistors. For example, BLo of bit-cell of 401oo is coupled to the magnetic junction of bit 40 loo while WLo of bit-cell of 40 loo is coupled the gate terminal of the select transistor MN.
[0037] In some embodiments, RNG 400 is one of: Boolean RNG or Continuous variable RNG. In some embodiments, the Boolean RNG comprises an array of magnetic junction devices, where at least one of the magnetic junction devices comprises: a free magnetic layer 404; an intermediate layer 403 coupled to the free magnetic layer 404; and a fixed magnetic layer 402 coupled to the intermediate layer 403, such that wherein the free magnetic layer has a barrier energy in a range of 5 kT to 10 kT. This low energy barrier allows the magnetic junction device to provide a random output. In some embodiments, the free layer is a low thermal stability magnetic layer compared to regular free magnetic layers that have thermal stability barriers of 40 kT or higher.
[0038] In some embodiments, the magnetizations of the free and fixed magnetic layers (404 and 402) are orthogonal to each other. For example, the magnetization direction of the fixed magnetic layer 402 is perpendicular while the magnetization direction of the free magnetic layer 404 is in-plane. In another example, the magnetization direction of the free magnetic layer 404 is perpendicular while the magnetization direction of the fixed magnetic layer 402 is in-plane. In some embodiments, the intermediate layer 403 is a metal, and where the at least one of the magnetic junction devices is a spin valve. In some embodiments, the intermediate layer is a dielectric (e.g., MgO), and where the at least one of the magnetic junction devices is a magnetic tunneling junction.
[0039] In some embodiments, the fixed ferromagnet (FM) layer 402 is coupled to a bit-line (BL) while the free FM layer 404 is coupled to a drain terminal of transistor MN. In some embodiments, the BL is the same bit-line as the BL of array 301 containing matrix Anxd 301. In some embodiments, the source terminal of transistor MN is coupled to a node which provides the output matrix Bnxk. In some embodiments, the gate terminal of transistor MN is controlled by word-line (WL). In some embodiments, the WL is the same word-line as the WL of array 301 containing matrix Anxd 301.
[0040] In some embodiments, the free magnetic layer 404 has a lower stability than the stability of the fixed magnetic layer 402. For example, to achieve more randomness behavior by a magnetic junction device, the thermal barrier of the magnets is degraded (e.g., 5 kT to 10 kT) compared to the thermal barrier of regular magnets (e.g., 40 kT to 60 kT). As such, the resistance of the magnetic junction switches between '0' and T states as voltage Vdrive modulates. In some embodiments, Vdrive from circuit 403 is added to the BL voltage. In some embodiments, Vdrfve is the BL voltage. As Vdrfve changes, the resistance of the magnetic junction changes and the lower thermal barrier may cause the magnetization angle between the free magnet 404 to change relative to the fixed magnet 402, in accordance with some embodiments. As such, the randomness of the array 400 changes by modulating Vdrfve, in accordance with some embodiments.
[0041] A wide combination of materials can be used for material stacking of the magnetic tunneling junction. For example, the stack of materials include: CoxFeyBz, MgO, CoxFeyBz, Ru, CoxFeyBz, IrMn, Ru, Ta, and Ru, where 'x,' 'y,' and 'z' are fractions of elements in the alloys. Other materials may also be used to form the magnetic tunneling junction. The magnetic tunneling junction stack comprises free magnetic layer 404, MgO tunneling oxide 403, a fixed magnetic layer 402 which is a combination of CoFe, Ru, and CoFe layers referred to as Synthetic Anti-Ferromagnet (SAF), and an Anti-Ferromagnet (AFM) layer. The SAF layer has the property, that the magnetizations in the two CoFe layers are opposite, and allows for cancelling the dipole fields around the free magnetic layer 404 such that a stray dipole field will not control the free magnetic layer 404.
[0042] Here, the magnetization direction of the fixed magnetic layer 402 is perpendicular relative to the magnetization direction of the free magnetic layer 404 (e.g., magnetization directions of the free and fixed magnetic layers are not parallel, rather they are orthogonal). For example, magnetization direction of the free magnetic layer 404 is in-plane while the magnetization direction of the fixed magnetic layer 402 is perpendicular to the in- plane. In another case, magnetization direction of the fixed magnetic layer is in-plane while the magnetization direction of the free magnetic layer 404 is perpendicular to the in-plane.
[0043] The thickness of a ferromagnetic layer (i.e., fixed or free magnetic layer) may determine its magnetization direction. For example, when the thickness of the ferromagnetic layer is above a certain threshold (depending on the material of the magnet, e.g.
approximately 1.5 nm for CoFe), then the ferromagnetic layer exhibits magnetization direction which is in-plane. Likewise, when the thickness of the ferromagnetic layer is below a certain threshold (depending on the material of the magnet), then the ferromagnetic layer exhibits magnetization direction which is perpendicular to the plane of the magnetic layer. Other factors may also determine the direction of magnetization. For example, factors such as surface anisotropy (depending on the adjacent layers or a multi -layer composition of the ferromagnetic layer) and/or crystalline anisotropy (depending on stress and the crystal lattice structure modification such as FCC (face centered cubic lattice), BCC (body centered cubic lattice), or LlO-type of crystals, where L10 is a type of crystal class which exhibits perpendicular magnetizations), can also determine the direction of magnetization.
[0044] In some embodiments, the magnets 402 and 404 are formed of a material selected from a group consisting of: Fe, Ni, Co and their alloys, magnetic insulators, and Heusler alloys of the form X2YZ. In some embodiments, the magnetic insulators are formed of a material selected from a group consisting of: magnetite Fe304 and Y3AI5O12. In some embodiments, the Heusler alloys is one of: Co2FeSi and M Ga. In some embodiments, magnets 402 and 404 are formed with high spin polarization materials. Heusler alloys are an example of high spin polarization materials. Heusler alloys are ferromagnetic metal alloys based on Heusler phase. Heusler phases are intermetallics with particular composition and face-centered cubic crystal structure. Heusler alloys are ferromagnetic because of double- exchange mechanism between neighboring magnetic ions. The neighboring magnetic ions are usually manganese ions, which sit at the body centers of the cubic structure and carry most of the magnetic moment of the alloy.
[0045] In some embodiments, Heusler alloys such as Co2FeAl and Co2FeGeGa are used for forming magnets 402 and 404. Other examples of Heusler alloys include: Cu2MnAl, Cu2MnIn, Cu2MnSn, Ni2MnAl, Ni2MnIn, Ni2MnSn, Ni2MnSb, Ni2MnGa, Co2MnAl, Co2MnSi, Co2MnGa, Co2MnGe, Pd2MnAl, Pd2MnIn, Pd2MnSn, Pd2MnSb, Co2FeSi, Fe2Val, Mn2VGa, Co2FeGe, etc.
[0046] In some embodiments, one of the magnets has perpendicular magnetic anisotropy (PMA) while the magnetization of the other magnet is in-plane. For example, FM 404 is magnetized perpendicular to the plane of the chip having apparatus 400. In some embodiments, magnets with PMA are formed with multiple layers in a stack. The multiple thin layers can be layers of Cobalt and Platinum (i.e., Co/Pt), for example. Other examples of the multiple thin layers include: Co and Pd; Co and Ni; MgO, CoFeB, Ta, CoFeB, and MgO; MgO, CoFeB, W, CoFeB, and MgO; MgO, CoFeB, V, CoFeB, and MgO; MgO, CoFeB, Mo, CoFeB, MgO; MnxGay; Materials with L10 crystal symmetry; or materials with tetragonal crystal structure. In some embodiments, the perpendicular magnetic layer is formed of a single layer of one or more materials. In some embodiments, the single layer is formed of MnGa. In some embodiments, the perpendicular magnetic layer is formed of one of: a Heusler alloy, Co, Fe, Ni, Gd, B, Ge, Ga, permalloy, YIG, or a combination of them.
[0047] In some embodiments, RNG 400 is a Continuous variable RNG In some embodiments, the Continuous variable RNG comprises an array of magnetic junction devices, and where at least one of the magnetic junction devices comprises: a free magnetic layer 404; an intermediate layer 403 coupled to the free magnetic layer 404; and a fixed magnetic layer 402 coupled to the intermediate layer 403, such the free magnetic layer 404 has a lower stability than the stability of the fixed magnetic layer 402. In some embodiments, the magnetizations of the free and fixed magnetic layers are orthogonal to each other.
[0048] Compared to Boolean RNG, Continuous variable RNG can produce an output which is anywhere between logic '0' and Ί . ' For example, a current is sensed through the magnetic junction bit-cells and depending on the relative angle change between the magnetizations of free FM 404 relative to fixed FM 402, the sensed current will change. As the current changes, the randomness changes. In some embodiments, when Vdrfve changes, RNG 400 produces new random values, which when multiplied with the values from array Anxd, generate a new product Bnxk. This product is then used to generate a clustered data C.
[0049] Figs. 5A-B illustrate plots showing performance of RNG 400, in accordance with some embodiments of the disclosure. It is pointed out that those elements of Figs. 5A-B having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such. With reference to Fig. 5A, the x-axis is normalized sensed current while the y-axis is density. Plot 500 illustrates sensed current 501 and the normal distribution 502 of the sensed current from MRAM 302. With reference to Fig. 5B, the x-axis is normalized sensed current while the y- axis is cumulative probability. Plot 520 shows the sensed current and the normal distribution, which almost overlap each other.
[0050] Fig. 6 illustrates example 600 of clustering using the apparatus of various embodiments. It is pointed out that those elements of Fig. 6 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
[0051] In this example of clustering with random proj ection, the clustering algorithm executed by Clustering Logic 102 produces the same results with original dimensions (e.g., 2000) and reduced dimensions (e.g., 404). Example 600 shows the verification of apparatus and scheme of the various embodiments. Here, the original data is shown in a three dimensional plot where 3000 data points belonging to 3 clusters (Cluster 1 , Cluster 2, and Cluster 3) with 1000 data points each is considered. Each data point has 2000 dimensions. The apparatus of various embodiments reduces these dimensions to 404 following the formula from J-L lemma. The random number matrix Rdxk here is generated with a dimension 2000 x 404 to reduce the dimension to 404. The original data and reduced dimensional data are passed through a L2 distance k-means algorithm. The accuracy of the data is confirmed by the plot on the right in example 600.
[0052] Fig. 7 illustrates flowchart 7000 of a method for clustering using the apparatus of Fig. 1, according to some embodiments of the disclosure. It is pointed out that those elements of Fig. 7 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
[0053] Although the blocks in the flowchart with reference to Fig. 7 are shown in a particular order, the order of the actions can be modified. Thus, the illustrated embodiments can be performed in a different order, and some actions/blocks may be performed in parallel. Some of the blocks and/or operations listed in Fig. 7 are optional in accordance with certain embodiments. The numbering of the blocks presented is for the sake of clarity and is not intended to prescribe an order of operations in which the various blocks must occur.
Additionally, operations from the various flows may be utilized in a variety of combinations.
[0054] At block 701 , an input array of data Anxd is received. For example, array of data Anxd is downloaded into a RAM. At block 702, the array of data Anxd is multiplied with an array Rdxk of random numbers. This array Rdxk of random numbers is implemented in MRAM 302, in accordance with some embodiments. Initially, the value of Vdrfve is set to correspond to a particular error in distance. As described with reference to Fig. 3, Vdrive is used to change the randomness of RNG 302, in accordance with some embodiments. In some embodiments, Vdrive is modulated according to whether the actual error is greater than the target error (e.g., sactualtarget).
[0055] Referring back to Fig. 7, at block 702, Clustering Logic 102 performs a clustering algorithm on array Bnxk (which is generated by the product of arrays Anxd and Rdxk). Clustering Logic 102 also generates the actual error term actual. At block 704, a determination is made by Logic 304 whether actual>Etarget. If the determination is true, the process proceeds to block 705, otherwise the process proceeds to block 706. At block 705, Logic 304 adjusts Vdrive (e.g., increases it) for the magnetic junctions of array 302. As such, the RNG 400 is reset, and the process proceeds to block 702, and continues as described above. At block 704, the clustered data (e.g., matrix C) with reduced number of dimensions than of input array Anxd are provided. The process may complete at that time, or can be re- preformed or reiterated with another input array Anxd.
[0056] Fig. 8 illustrates a smart device or a computer system or a SoC (System-on-
Chip) 1600 with apparatus for stochastic clustering, according to some embodiments of the disclosure. It is pointed out that those elements of Fig. 8 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
[0057] Fig. 8 illustrates a block diagram of an embodiment of a mobile device in which flat surface interface connectors could be used. In some embodiments, computing device 1600 represents a mobile computing device, such as a computing tablet, a mobile phone or smart-phone, a wireless-enabled e-reader, or other wireless mobile device. It will be understood that certain components are shown generally, and not all components of such a device are shown in computing device 1600.
[0058] For purposes of the embodiments, the transistors in various circuits and logic blocks described here are metal oxide semiconductor (MOS) transistors, which include drain, source, gate, and bulk terminals. The transistors also include Tri-Gate and FinFET transistors, Gate All Around Cylindrical Transistors, Tunneling FET (TFET), Square Wire, or Rectangular Ribbon Transistors or other devices implementing transistor functionality like carbon nanotubes or spintronic devices. MOSFET symmetrical source and drain terminals i.e., are identical terminals and are interchangeably used here. A TFET device, on the other hand, has asymmetric Source and Drain terminals. Those skilled in the art will appreciate that other transistors, for example, Bi-polar junction transistors— BJT PNP/NPN, BiCMOS, CMOS, eFET, etc., may be used without departing from the scope of the disclosure.
[0059] In some embodiments, computing device 1600 includes processor 1610 with some or all apparatus for stochastic clustering, according to some embodiments discussed. Other blocks of the computing device 1600 may also include some of all apparatus for stochastic clustering, according to some embodiments. For example, the arrays Anxd and Rdxk may be stored in separate memories. Arrays Anxd be stored in a RAM while Rdxk may be stored in an MRAM, in accordance with some embodiments. In some embodiments, Clustering Logic 102 and part of Random Projector 101 (e.g., Logic 304) may be
implemented in processor 1610.
[0060] The various embodiments of the present disclosure may also comprise a network interface within 1670 such as a wireless interface so that a system embodiment may be incorporated into a wireless device, for example, cell phone or personal digital assistant.
[0061] In some embodiments, processor 1610 can include one or more physical devices, such as microprocessors, application processors, microcontrollers, programmable logic devices, or other processing means. The processing operations performed by processor 1610 include the execution of an operating platform or operating system on which applications and/or device functions are executed. The processing operations include operations related to I/O (input/output) with a human user or with other devices, operations related to power management, and/or operations related to connecting the computing device 1600 to another device. The processing operations may also include operations related to audio I/O and/or display I/O.
[0062] In some embodiments, computing device 1600 includes audio subsystem
1620, which represents hardware (e.g., audio hardware and audio circuits) and software (e.g., drivers, codecs) components associated with providing audio functions to the computing device. Audio functions can include speaker and/or headphone output, as well as microphone input. Devices for such functions can be integrated into computing device 1600, or connected to the computing device 1600. In one embodiment, a user interacts with the computing device 1600 by providing audio commands that are received and processed by processor 1610.
[0063] In some embodiments, computing device 1600 comprises display subsystem
1630. Display subsystem 1630 represents hardware (e.g., display devices) and software (e.g., drivers) components that provide a visual and/or tactile display for a user to interact with the computing device 1600. Display subsystem 1630 includes display interface 1632, which includes the particular screen or hardware device used to provide a display to a user. In one embodiment, display interface 1632 includes logic separate from processor 1610 to perform at least some processing related to the display. In one embodiment, display subsystem 1630 includes a touch screen (or touch pad) device that provides both output and input to a user.
[0064] In some embodiments, computing device 1600 comprises I/O controller 1640.
I/O controller 1640 represents hardware devices and software components related to interaction with a user. I/O controller 1640 is operable to manage hardware that is part of audio subsystem 1620 and/or display subsystem 1630. Additionally, I/O controller 1640 illustrates a connection point for additional devices that connect to computing device 1600 through which a user might interact with the system. For example, devices that can be attached to the computing device 1600 might include microphone devices, speaker or stereo systems, video systems or other display devices, keyboard or keypad devices, or other I/O devices for use with specific applications such as card readers or other devices.
[0065] As mentioned above, I/O controller 1640 can interact with audio subsystem
1620 and/or display subsystem 1630. For example, input through a microphone or other audio device can provide input or commands for one or more applications or functions of the computing device 1600. Additionally, audio output can be provided instead of, or in addition to display output. In another example, if display subsystem 1630 includes a touch screen, the display device also acts as an input device, which can be at least partially managed by I/O controller 1640. There can also be additional buttons or switches on the computing device 1600 to provide I/O functions managed by I/O controller 1640.
[0066] In some embodiments, I/O controller 1640 manages devices such as accelerometers, cameras, light sensors or other environmental sensors, or other hardware that can be included in the computing device 1600. The input can be part of direct user interaction, as well as providing environmental input to the system to influence its operations (such as filtering for noise, adjusting displays for brightness detection, applying a flash for a camera, or other features).
[0067] In some embodiments, computing device 1600 includes power management
1650 that manages battery power usage, charging of the battery, and features related to power saving operation. Memory subsystem 1660 includes memory devices for storing information in computing device 1600. Memory can include nonvolatile (state does not change if power to the memory device is interrupted) and/or volatile (state is indeterminate if power to the memory device is interrupted) memory devices. Memory subsystem 1660 can store application data, user data, music, photos, documents, or other data, as well as system data (whether long-term or temporary) related to the execution of the applications and functions of the computing device 1600.
[0068] Elements of embodiments are also provided as a machine-readable medium
(e.g., memory 1660) for storing the computer-executable instructions (e.g., instructions to implement any other processes discussed herein). The machine-readable medium (e.g., memory 1660) may include, but is not limited to, flash memory, optical disks, CD-ROMs, DVD ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, phase change memory (PCM), or other types of machine-readable media suitable for storing electronic or computer- executable instructions. For example, embodiments of the disclosure may be downloaded as a computer program (e.g., BIOS) which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals via a communication link (e.g., a modem or network connection).
[0069] In some embodiments, computing device 1600 comprises connectivity 1670.
Connectivity 1670 includes hardware devices (e.g., wireless and/or wired connectors and communication hardware) and software components (e.g., drivers, protocol stacks) to enable the computing device 1600 to communicate with external devices. The computing device 1600 could be separate devices, such as other computing devices, wireless access points or base stations, as well as peripherals such as headsets, printers, or other devices.
[0070] Connectivity 1670 can include multiple different types of connectivity. To generalize, the computing device 1600 is illustrated with cellular connectivity 1672 and wireless connectivity 1674. Cellular connectivity 1672 refers generally to cellular network connectivity provided by wireless carriers, such as provided via GSM (global system for mobile communications) or variations or derivatives, CDMA (code division multiple access) or variations or derivatives, TDM (time division multiplexing) or variations or derivatives, or other cellular service standards. Wireless connectivity (or wireless interface) 1674 refers to wireless connectivity that is not cellular, and can include personal area networks (such as Bluetooth, Near Field, etc.), local area networks (such as Wi-Fi), and/or wide area networks (such as WiMax), or other wireless communication.
[0071] In some embodiments, computing device 1600 comprises peripheral connections 1680. Peripheral connections 1680 include hardware interfaces and connectors, as well as software components (e.g., drivers, protocol stacks) to make peripheral connections. It will be understood that the computing device 1600 could both be a peripheral device ("to" 1682) to other computing devices, as well as have peripheral devices ("from" 1684) connected to it. The computing device 1600 commonly has a "docking" connector to connect to other computing devices for purposes such as managing (e.g., downloading and/or uploading, changing, synchronizing) content on computing device 1600. Additionally, a docking connector can allow computing device 1600 to connect to certain peripherals that allow the computing device 1600 to control content output, for example, to audiovisual or other systems.
[0072] In addition to a proprietary docking connector or other proprietary connection hardware, the computing device 1600 can make peripheral connections 1680 via common or standards-based connectors. Common types can include a Universal Serial Bus (USB) connector (which can include any of a number of different hardware interfaces), DisplayPort including MiniDisplayPort (MDP), High Definition Multimedia Interface (HDMI), Firewire, or other types.
[0073] Reference in the specification to "an embodiment," "one embodiment," "some embodiments," or "other embodiments" means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments. The various appearances of "an embodiment," "one embodiment," or "some embodiments" are not necessarily all referring to the same embodiments. If the specification states a component, feature, structure, or characteristic "may," "might," or "could" be included, that particular component, feature, structure, or characteristic is not required to be included. If the specification or claim refers to "a" or "an" element, that does not mean there is only one of the elements. If the specification or claims refer to "an additional" element, that does not preclude there being more than one of the additional element.
[0074] Furthermore, the particular features, structures, functions, or characteristics may be combined in any suitable manner in one or more embodiments. For example, a first embodiment may be combined with a second embodiment anywhere the particular features, structures, functions, or characteristics associated with the two embodiments are not mutually exclusive.
[0075] While the disclosure has been described in conjunction with specific embodiments thereof, many alternatives, modifications and variations of such embodiments will be apparent to those of ordinary skill in the art in light of the foregoing description. The embodiments of the disclosure are intended to embrace all such alternatives, modifications, and variations as to fall within the broad scope of the appended claims.
[0076] In addition, well known power/ground connections to integrated circuit (IC) chips and other components may or may not be shown within the presented figures, for simplicity of illustration and discussion, and so as not to obscure the disclosure. Further, arrangements may be shown in block diagram form in order to avoid obscuring the disclosure, and also in view of the fact that specifics with respect to implementation of such block diagram arrangements are highly dependent upon the platform within which the present disclosure is to be implemented (i.e., such specifics should be well within purview of one skilled in the art). Where specific details (e.g., circuits) are set forth in order to describe example embodiments of the disclosure, it should be apparent to one skilled in the art that the disclosure can be practiced without, or with variation of, these specific details. The description is thus to be regarded as illustrative instead of limiting.
[0077] The following examples pertain to further embodiments. Specifics in the examples may be used anywhere in one or more embodiments. All optional features of the apparatus described herein may also be implemented with respect to a method or process.
[0078] For example, an apparatus is provided which comprises: a random projector; a logic coupled to the random projector, the logic to perform clustering; and a feedback signal path coupled to an output of the logic and the random projector. In some embodiments, the random projector has a random number generator (RNG). In some embodiments, the RNG comprises an array of magnetic junction devices. In some embodiments, the magnetic junction devices are one of spin valves or magnetic tunneling junctions.
[0079] In some embodiments, the RNG is one of: Boolean RNG or Continuous variable RNG. In some embodiments, the Boolean RNG comprises an array of magnetic junction devices, and wherein at least one of the magnetic junction devices comprises: a free magnetic layer; an intermediate layer coupled to the free magnetic layer; and a fixed magnetic layer coupled to the intermediate layer, wherein the free magnetic layer has a barrier energy in a range of 5kT to lOkT. In some embodiments, the intermediate layer is a metal, and wherein the at least one of the magnetic junction devices is a spin valve.
[0080] In some embodiments, the intermediate layer is a dielectric, and wherein the at least one of the magnetic junction devices is a magnetic tunneling junction. In some embodiments, magnetizations of the free and fixed magnetic layers are orthogonal to each other. In some embodiments, the Continuous variable RNG comprises an array of magnetic junction devices, and wherein at least one of the magnetic junction devices comprises: a free magnetic layer; an intermediate layer coupled to the free magnetic layer; and a fixed magnetic layer coupled to the intermediate layer, wherein the free magnetic layer has a lower stability than the stability of the fixed magnetic layer. In some embodiments, the intermediate layer is a metal, and wherein the at least one of the magnetic junction devices is a spin valve.
[0081] In some embodiments, the intermediate layer is a dielectric, and wherein the at least one of the magnetic junction devices is a magnetic tunneling junction. In some embodiments, the magnetizations of the free and fixed magnetic layers are orthogonal to each other. In some embodiments, the RNG comprises an array of spintronic devices. In some embodiments, the random projector is to receive an array of values An xd, where 'n' indicates a number of objects, and where 'd' indicates a number of attributes of the objects.
[0082] In some embodiments, the random projector is to multiply the array of values
An x d with an array Rd x k, wherein the output of the random proj ector is an array Bn x k. In some embodiments, the array Bn xk is received as input by the logic which is to perform the clustering operation on the array Bnxk and generate the output of the logic which is an error term indicating an error in clustering. In some embodiments, the feedback signal path is to provide the error term to the random projector. In some embodiments, the array of values Rd xk is stored in a memory. In some embodiments, the array Rd xkis implemented as an array of magnetic junction bit-cells, wherein at least one bit-cell comprises: a magnetic junction; and a transistor coupled in series with the magnetic junction.
[0083] In some embodiments, the random projector comprises an array of cells each cell having one transistor and one resistor (1T1R) magnetic junction, wherein gate terminal of the transistor is to receive an input from the array of values Anxd, and wherein the cell is to generate a random number. In some embodiments, the clustering is achieved by a measure of distance between a partem, and wherein the measure is one of: LI, L2, L-infinity, or a complex combination of them.
[0084] In another example, a system is provided which comprises a memory; a processor coupled to the memory, the processor including an apparatus according to the apparatus described above; and a wireless interface for allowing the processor to
communicate with another device.
[0085] In another example, an apparatus is provided which comprises: an array of magnetic elements operable to generate random numbers; a supply node coupled to the array of magnetic elements; and a circuit to adjust voltage on the supply node to change the random numbers. In some embodiments, the array of magnetic elements is part of a random projector, and wherein the apparatus comprises a logic coupled to the random projector, the logic to perform clustering. In some embodiments, the apparatus comprises a feedback signal path coupled to an output of the logic and the random projector. In some embodiments, the feedback signal path is coupled to the circuit.
[0086] In another example, a system is provided which comprises a memory; a processor coupled to the memory, the processor including an apparatus according to the apparatus described above; and a wireless interface for allowing the processor to
communicate with another device.
[0087] In another example, a method is provided which comprises: receiving an input array Anxd; generating a random number matrix Rdxk using MRAM; multiplying the input array Anxd with the random number generating matrix Rdxk to generate matrix Bnxk; and performing clustering on matrix Bnxk to generate clustered data and an actual error term. In some embodiments, the method comprises determining whether the actual error term is larger than a target error term. In some embodiments, the method comprises adjusting a voltage level for magnetic junctions of the MRAM in response to determining that the actual error term is higher than the target error term.
[0088] In another example, an apparatus is provided which comprises: means for receiving an input array Anxd; means for generating a random number matrix Rdxk using MRAM; means for multiplying the input array Anxd with the random number generating matrix Rdxk to generate matrix Bnxk; and means for performing clustering on matrix Bnxk to generate clustered data and an actual error term. In some embodiments, the apparatus comprises means for determining whether the actual error term is larger than a target error term. Ins some embodiments, the apparatus comprises means for adjusting a voltage level for magnetic junctions of the MRAM in response to determining that the actual error term is higher than the target error term.
[0089] In another example, a system is provided which comprises a memory; a processor coupled to the memory, the processor including an apparatus according to the apparatus described above; and a wireless interface for allowing the processor to
communicate with another device.
[0090] An abstract is provided that will allow the reader to ascertain the nature and gist of the technical disclosure. The abstract is submitted with the understanding that it will not be used to limit the scope or meaning of the claims. The following claims are hereby incorporated into the detailed description, with each claim standing on its own as a separate embodiment.

Claims

CLAIMS We claim:
1. An apparatus comprising:
a random projector;
a logic coupled to the random projector, the logic to perform clustering; and a feedback signal path coupled to an output of the logic and the random projector.
2. The apparatus of claim 1, wherein the random projector has a random number generator (RNG).
3. The apparatus of claim 2, wherein the RNG comprises an array of magnetic junction devices.
4. The apparatus of claim 3, wherein the magnetic junction devices are one of spin valves or magnetic tunneling junctions.
5. The apparatus of claim 3, wherein the RNG is one of: Boolean RNG or Continuous
variable RNG.
6. The apparatus of claim 5, wherein the Boolean RNG comprises an array of magnetic junction devices, and wherein at least one of the magnetic junction devices comprises: a free magnetic layer;
an intermediate layer coupled to the free magnetic layer; and
a fixed magnetic layer coupled to the intermediate layer, wherein the free magnetic layer has a barrier energy in a range of 5kT to l OkT.
7. The apparatus of claim 6, wherein the intermediate layer is a metal, and wherein the at least one of the magnetic junction devices is a spin valve.
8. The apparatus of claim 6, wherein the intermediate layer is a dielectric, and wherein the at least one of the magnetic junction devices is a magnetic tunneling junction.
9. The apparatus of claim 6, wherein magnetizations of the free and fixed magnetic layers are orthogonal to each other.
10. The apparatus of claim 5, wherein the Continuous variable RNG comprises an array of magnetic junction devices, and wherein at least one of the magnetic junction devices comprises:
a free magnetic layer;
an intermediate layer coupled to the free magnetic layer; and
a fixed magnetic layer coupled to the intermediate layer, wherein the free magnetic layer has a lower stability than the stability of the fixed magnetic layer.
11. The apparatus of claim 10, wherein the intermediate layer is a metal, and wherein the at least one of the magnetic junction devices is a spin valve.
12. The apparatus of claim 10, wherein the intermediate layer is a dielectric, and wherein the at least one of the magnetic junction devices is a magnetic tunneling junction.
13. The apparatus of claim 10, wherein magnetizations of the free and fixed magnetic layers are orthogonal to each other.
14. The apparatus of claim 2, wherein the RNG comprises an array of spintronic devices.
15. The apparatus of claim 1, wherein the random projector is to receive an array of values An xd, where 'n' indicates a number of objects, and where 'd' indicates a number of attributes of the objects.
16. The apparatus of claim 15, wherein the random projector is to multiply the array of values An x d with an array Rd xk, wherein the output of the random projector is an array Bn xk.
17. The apparatus of claim 16, wherein the array Bn xk is received as input by the logic which is to perform the clustering operation on the array Bn xk and generate the output of the logic which is an error term indicating an error in clustering.
18. The apparatus of claim 16, wherein the feedback signal path is to provide the error term to the random projector.
19. The apparatus of claim 16, wherein the array of values Rd xk is stored in a memory.
20. The apparatus of claim 16, wherein the array Rd xk is implemented as an array of magnetic junction bit-cells, wherein at least one bit-cell comprises:
a magnetic junction; and
a transistor coupled in series with the magnetic junction.
21. The apparatus of claim 15, wherein the random projector comprises an array of cells each cell having one transistor and one resistor (1T1R) magnetic junction, wherein gate terminal of the transistor is to receive an input from the array of values An x d, and wherein the cell is to generate a random number.
22. The apparatus of claim 1, wherein the clustering is achieved by a measure of distance between a pattern, and wherein the measure is one of: LI, L2, L-infinity, or a complex combination of them.
23. An apparatus comprising:
an array of magnetic elements operable to generate random numbers;
a supply node coupled to the array of magnetic elements; and
a circuit to adjust voltage on the supply node to change the random numbers.
24. The apparatus of claim 23, wherein the array of magnetic elements is part of a random projector, and wherein the apparatus comprises a logic coupled to the random projector, the logic to perform clustering.
25. The apparatus of claim 24 comprises a feedback signal path coupled to an output of the logic and the random projector.
26. The apparatus of claim 25, wherein the feedback signal path is coupled to the circuit.
27. A system comprising:
a memory;
a processor coupled to the memory, the processor including an apparatus according to any one of apparatus claims 1 to 22; and a wireless interface for allowing the processor to communicate with another device.
PCT/US2016/022208 2016-03-11 2016-03-11 Spintronic apparatus and method for stochastic clustering WO2017155553A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2016/022208 WO2017155553A1 (en) 2016-03-11 2016-03-11 Spintronic apparatus and method for stochastic clustering

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/022208 WO2017155553A1 (en) 2016-03-11 2016-03-11 Spintronic apparatus and method for stochastic clustering

Publications (1)

Publication Number Publication Date
WO2017155553A1 true WO2017155553A1 (en) 2017-09-14

Family

ID=59790697

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2016/022208 WO2017155553A1 (en) 2016-03-11 2016-03-11 Spintronic apparatus and method for stochastic clustering

Country Status (1)

Country Link
WO (1) WO2017155553A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3937005A1 (en) * 2020-07-08 2022-01-12 Quside Technologies S.L. Computer-implemented method for obtaining a cumulative distribution function from a signal

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021383A (en) * 1996-10-07 2000-02-01 Yeda Research & Development Co., Ltd. Method and apparatus for clustering data
US20060020647A1 (en) * 2004-07-23 2006-01-26 Simon Harris S Method and apparatus for random-number generator
US20080163087A1 (en) * 2006-12-28 2008-07-03 Nokia Corporation Method, Apparatus and Computer Program Product for Providing Multi-Feature Based Sampling for Relevance Feedback
US20140059100A1 (en) * 2012-08-22 2014-02-27 International Business Machines Corporation Reducing bias in hardware generated random numbers
WO2016004673A1 (en) * 2014-07-11 2016-01-14 王向恒 Intelligent target recognition device, system and method based on cloud service

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021383A (en) * 1996-10-07 2000-02-01 Yeda Research & Development Co., Ltd. Method and apparatus for clustering data
US20060020647A1 (en) * 2004-07-23 2006-01-26 Simon Harris S Method and apparatus for random-number generator
US20080163087A1 (en) * 2006-12-28 2008-07-03 Nokia Corporation Method, Apparatus and Computer Program Product for Providing Multi-Feature Based Sampling for Relevance Feedback
US20140059100A1 (en) * 2012-08-22 2014-02-27 International Business Machines Corporation Reducing bias in hardware generated random numbers
WO2016004673A1 (en) * 2014-07-11 2016-01-14 王向恒 Intelligent target recognition device, system and method based on cloud service

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3937005A1 (en) * 2020-07-08 2022-01-12 Quside Technologies S.L. Computer-implemented method for obtaining a cumulative distribution function from a signal
WO2022008274A1 (en) * 2020-07-08 2022-01-13 Quside Technologies S.L. Computer-implemented method for obtaining a cumulative distribution function from a signal
EP4246311A3 (en) * 2020-07-08 2023-11-15 Quside Technologies S.L. Computer-implemented method for obtaining a cumulative distribution function from a signal

Similar Documents

Publication Publication Date Title
CN107534082B (en) XOR logic device with spin orbit torque effect
US10170185B2 (en) Hybrid memory and MTJ based MRAM bit-cell and array
US10897364B2 (en) Physically unclonable function implemented with spin orbit coupling based magnetic memory
CN106688041B (en) Strain-assisted spin torque flip spin transfer torque memory
TWI565111B (en) Mtj spin hall mram bit-cell and array
US8638590B2 (en) Resistance based memory having two-diode access device
US9196339B2 (en) Resistance-based memory cells with multiple source lines
CN107004759B (en) Magnetoelectronics device and interconnect
US20170345496A1 (en) Asymmetrical write driver for resistive memory
KR102416979B1 (en) random number generator
US11600659B2 (en) Cross-point magnetic random access memory with piezoelectric selector
WO2017034563A1 (en) Dual pulse spin hall memory with perpendicular magnetic elements
US10998495B2 (en) Magnetostrictive stack and corresponding bit-cell
WO2017048229A1 (en) Large signal two transistor memory with magneto-electric spin orbit device
WO2017222521A1 (en) Perpendicular magnet anisotropy based spin hall memory using spin orbit effect
WO2017155553A1 (en) Spintronic apparatus and method for stochastic clustering

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16893774

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16893774

Country of ref document: EP

Kind code of ref document: A1