Discrete Three-Dimensional Processor
20230087735 · 2023-03-23
Assignee
Inventors
Cpc classification
H01L2224/48147
ELECTRICITY
G06F15/7821
PHYSICS
H01L2224/04
ELECTRICITY
H01L2224/0348
ELECTRICITY
H01L25/18
ELECTRICITY
H01L2224/9202
ELECTRICITY
H01L2924/00014
ELECTRICITY
H01L2225/06506
ELECTRICITY
H01L2224/80896
ELECTRICITY
H01L2224/9202
ELECTRICITY
G10L15/22
PHYSICS
H01L2225/06513
ELECTRICITY
G06F18/21
PHYSICS
H01L2224/04
ELECTRICITY
H01L2924/00014
ELECTRICITY
H01L2224/80895
ELECTRICITY
H01L27/0688
ELECTRICITY
H01L2224/80896
ELECTRICITY
H01L24/80
ELECTRICITY
H01L2224/80895
ELECTRICITY
H01L2224/16146
ELECTRICITY
H01L2224/80901
ELECTRICITY
H01L2225/06524
ELECTRICITY
H10B43/27
ELECTRICITY
H01L2224/0348
ELECTRICITY
H01L24/73
ELECTRICITY
H01L2224/05576
ELECTRICITY
H01L2224/80901
ELECTRICITY
H01L2225/06541
ELECTRICITY
International classification
H01L25/18
ELECTRICITY
G06F15/80
PHYSICS
G06F21/56
PHYSICS
G06F9/30
PHYSICS
G10L15/22
PHYSICS
Abstract
A discrete three-dimensional (3-D) processor comprises communicatively coupled first and second dice. The first die comprises 3-D memory (3D-M) arrays, whereas the second die comprises at least a non-memory circuit and at least an off-die peripheral-circuit component of the 3D-M arrays. The first die does not comprise said off-die peripheral-circuit component. The non-memory circuit on the second die is not part of a memory.
Claims
1-43. (canceled)
44. A discrete three-dimensional (3-D) processor, comprising: a plurality of storage-processing units (SPU's), each of said SPU's comprising a non-memory circuit and at least a three-dimensional memory (3D-M) array; a first die on a first semiconductor substrate, wherein said 3D-M array comprises memory cells stacked above said first semiconductor substrate; a second die on a second semiconductor substrate, wherein at least a portion of said non-memory circuit and an off-die peripheral-circuit component of said 3D-M array are disposed on said second semiconductor substrate; wherein, said non-memory circuit is not a part of a memory; said first die does not comprise said off-die peripheral-circuit component; said first and second dice are communicatively coupled by a plurality of inter-die connections; said first and second semiconductor substrates are separate semiconductor substrates.
45. The 3-D processor according to claim 44, wherein: said non-memory circuit is a logic circuit; or, said non-memory circuit is a processing circuit; or, said 3D-M array stores at least a portion of a look-up table (LUT) of a non-arithmetic function/model; said non-memory circuit comprises an arithmetic logic circuit (ALC) for performing arithmetic operations on selected data from said LUT; whereby said 3-D processor computes said non-arithmetic function/model, wherein said non-arithmetic function/model includes more operations than the arithmetic operations provided by said ALC; or, said 3D-M array is a portion of a configurable computing element (CCE) and stores at least a portion of a look-up table (LUT) of a non-arithmetic function; said non-memory circuit comprises at least a configurable logic element (CLE) and/or a configurable interconnect (CIT); whereby said 3-D processor customizes said non-arithmetic function by programming said CCE and said CLE/CIT, wherein said non-arithmetic function includes more operations than the arithmetic operations provided by said CLE; or, said 3-D processor further comprises an input for transferring at least a first portion of a first pattern; said 3D-M array stores at least a second portion of a second pattern; said non-memory circuit comprises a pattern-processing circuit for performing pattern processing for said first and second patterns; or, said 3-D processor is a discrete 3-D processor with embedded search-pattern library, further comprising an input for transferring at least a target pattern; said 3D-M array stores at least a search pattern; said non-memory circuit comprises a pattern-processing circuit for searching said target pattern for said search pattern; or, said 3-D processor is a discrete 3-D storage with in-situ pattern-processing capabilities, further comprising an input for transferring at least a search pattern; said 3D-M array stores at least a target pattern; said non-memory circuit comprises a pattern-processing circuit for searching said target pattern for said search pattern; or, said 3D-M array stores at least a portion of a synaptic weight; said non-memory circuit comprises a neuro-processing circuit for performing neural processing with said synaptic weight.
46. The 3-D processor according to claim 44, wherein: said off-die peripheral-circuit component comprises at least a portion of an address decoder; or, said off-die peripheral-circuit component comprises at least a portion of a sense amplifier; or, said off-die peripheral-circuit component comprises at least a portion of a programming circuit; or, said off-die peripheral-circuit component comprises at least a portion of a read-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a write-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a data buffer.
47. The 3-D processor according to claim 45, wherein: said off-die peripheral-circuit component comprises at least a portion of an address decoder; or, said off-die peripheral-circuit component comprises at least a portion of a sense amplifier; or, said off-die peripheral-circuit component comprises at least a portion of a programming circuit; or, said off-die peripheral-circuit component comprises at least a portion of a read-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a write-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a data buffer.
48. The 3-D processor according to claim 44, wherein: said first and second dice are vertically stacked; or, said first and second dice are face-to-face bonded; or, said first and second dice have a same die size; or, a first edge of said first die is aligned with a second edge of said second die; or, the projection of said 3D-M array on said second die at least partially overlaps said non-memory circuit; or, each 3D-M array is vertically aligned and communicatively coupled with a non-memory circuit; or, each non-memory circuit is vertically aligned and communicatively coupled with at least a 3D-M array; or, the pitch of said non-memory circuit is an integer multiple of the pitch of said 3D-M array; or, said inter-die connections include bond wires, micro-bumps, through-silicon-vias (TSV's), and/or vertical interconnect access (VIA's).
49. The 3-D processor according to claim 48, wherein: said non-memory circuit is a logic circuit; or, said non-memory circuit is a processing circuit; or, said 3D-M array stores at least a portion of a look-up table (LUT) of a non-arithmetic function/model; said non-memory circuit comprises an arithmetic logic circuit (ALC) for performing arithmetic operations on selected data from said LUT; whereby said 3-D processor computes said non-arithmetic function/model, wherein said non-arithmetic function/model includes more operations than the arithmetic operations provided by said ALC; or, said 3D-M array is a portion of a configurable computing element (CCE) and stores at least a portion of a look-up table (LUT) of a non-arithmetic function; said non-memory circuit comprises at least a configurable logic element (CLE) and/or a configurable interconnect (CIT); whereby said 3-D processor customizes said non-arithmetic function by programming said CCE and said CLE/CIT, wherein said non-arithmetic function includes more operations than the arithmetic operations provided by said CLE; or, said 3-D processor further comprises an input for transferring at least a first portion of a first pattern; said 3D-M array stores at least a second portion of a second pattern; said non-memory circuit comprises a pattern-processing circuit for performing pattern processing for said first and second patterns; or, said 3-D processor is a discrete 3-D processor with embedded search-pattern library, further comprising an input for transferring at least a target pattern; said 3D-M array stores at least a search pattern; said non-memory circuit comprises a pattern-processing circuit for searching said target pattern for said search pattern; or, said 3-D processor is a discrete 3-D storage with in-situ pattern-processing capabilities, further comprising an input for transferring at least a search pattern; said 3D-M array stores at least a target pattern; said non-memory circuit comprises a pattern-processing circuit for searching said target pattern for said search pattern; or, said 3D-M array stores at least a portion of a synaptic weight; said non-memory circuit comprises a neuro-processing circuit for performing neural processing with said synaptic weight.
50. The 3-D processor according to claim 48, wherein: said off-die peripheral-circuit component comprises at least a portion of an address decoder; or, said off-die peripheral-circuit component comprises at least a portion of a sense amplifier; or, said off-die peripheral-circuit component comprises at least a portion of a programming circuit; or, said off-die peripheral-circuit component comprises at least a portion of a read-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a write-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a data buffer.
51. The 3-D processor according to claim 49, wherein: said off-die peripheral-circuit component comprises at least a portion of an address decoder; or, said off-die peripheral-circuit component comprises at least a portion of a sense amplifier; or, said off-die peripheral-circuit component comprises at least a portion of a programming circuit; or, said off-die peripheral-circuit component comprises at least a portion of a read-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a write-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a data buffer.
52. The 3-D processor according to claim 44, wherein: each of said SPU's comprises more than one 3D-M array; or, each of said SPU's comprises at least four 3D-M arrays including said 3D-M array; or, each of said SPU's comprises at least eight 3D-M arrays including said 3D-M array; or, said 3D-M array comprises a plurality of vertically stacked memory cells without any semiconductor substrate therebetween; or, said 3D-M array is a 3-D random-access memory (3D-RAM) array; or, said 3D-M array is a 3-D read-only memory (3D-ROM) array; or, said 3D-M array is a non-volatile memory (NVM) array; or, said 3D-M array is a 3-D writable memory (3D-W) array; or, said 3D-M array is a 3-D printed memory (3D-P) array; or said 3D-M array is a horizontal 3D-M (3D-M.sub.H) array; or, said 3D-M array is a vertical 3D-M (3D-M.sub.V) array; or said 3D-M array is a 3D-SRAM, 3D-DRAM, 3D-RRAM, 3D-MRAM, or 3D-FeRAM array; or, said 3D-M array is a 3D-MPROM, 3D-OTP, 3D-MPT, 3D-EPROM, 3D-EEPROM, 3D-flash, 3D-NOR, 3D-NAND, or 3D-XPoint array; or, a first number of the back-end-of-line (BEOL) layers of said first die is larger than a second number of the BEOL layers of said second die; or, a third number of the address-line layers of said first die is at least twice as much as a fourth number of the interconnect layers of said second die; or, a fifth number of the memory cells on each memory string in said first die is at least twice as much as a sixth number of the interconnect layers of said second die; or, a seventh number of the interconnect layers in the substrate circuit of said first die is smaller than an eighth number of the interconnect layers of said second die; or, the interconnect material used in said second die has a lower resistivity than the interconnect material used the substrate circuit of said first die.
53. The 3-D processor according to claim 52, wherein: said non-memory circuit is a logic circuit; or, said non-memory circuit is a processing circuit; or, said 3D-M array stores at least a portion of a look-up table (LUT) of a non-arithmetic function/model; said non-memory circuit comprises an arithmetic logic circuit (ALC) for performing arithmetic operations on selected data from said LUT; whereby said 3-D processor computes said non-arithmetic function/model, wherein said non-arithmetic function/model includes more operations than the arithmetic operations provided by said ALC; or, said 3D-M array is a portion of a configurable computing element (CCE) and stores at least a portion of a look-up table (LUT) of a non-arithmetic function; said non-memory circuit comprises at least a configurable logic element (CLE) and/or a configurable interconnect (CIT); whereby said 3-D processor customizes said non-arithmetic function by programming said CCE and said CLE/CIT, wherein said non-arithmetic function includes more operations than the arithmetic operations provided by said CLE; or, said 3-D processor further comprises an input for transferring at least a first portion of a first pattern; said 3D-M array stores at least a second portion of a second pattern; said non-memory circuit comprises a pattern-processing circuit for performing pattern processing for said first and second patterns; or, said 3-D processor is a discrete 3-D processor with embedded search-pattern library, further comprising an input for transferring at least a target pattern; said 3D-M array stores at least a search pattern; said non-memory circuit comprises a pattern-processing circuit for searching said target pattern for said search pattern; or, said 3-D processor is a discrete 3-D storage with in-situ pattern-processing capabilities, further comprising an input for transferring at least a search pattern; said 3D-M array stores at least a target pattern; said non-memory circuit comprises a pattern-processing circuit for searching said target pattern for said search pattern; or, said 3D-M array stores at least a portion of a synaptic weight; said non-memory circuit comprises a neuro-processing circuit for performing neural processing with said synaptic weight.
54. The 3-D processor according to claim 52, wherein: said off-die peripheral-circuit component comprises at least a portion of an address decoder; or, said off-die peripheral-circuit component comprises at least a portion of a sense amplifier; or, said off-die peripheral-circuit component comprises at least a portion of a programming circuit; or, said off-die peripheral-circuit component comprises at least a portion of a read-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a write-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a data buffer.
55. The 3-D processor according to claim 53, wherein: said off-die peripheral-circuit component comprises at least a portion of an address decoder; or, said off-die peripheral-circuit component comprises at least a portion of a sense amplifier; or, said off-die peripheral-circuit component comprises at least a portion of a programming circuit; or, said off-die peripheral-circuit component comprises at least a portion of a read-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a write-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a data buffer.
56. The 3-D processor according to claim 52, wherein: said first and second dice are vertically stacked; or, said first and second dice are face-to-face bonded; or, said first and second dice have a same die size; or, a first edge of said first die is aligned with a second edge of said second die; or, the projection of said 3D-M array on said second die at least partially overlaps said non-memory circuit; or, each 3D-M array is vertically aligned and communicatively coupled with a non-memory circuit; or, each non-memory circuit is vertically aligned and communicatively coupled with at least a 3D-M array; or, the pitch of said non-memory circuit is an integer multiple of the pitch of said 3D-M array; or, said inter-die connections include bond wires, micro-bumps, through-silicon-vias (TSV's), and/or vertical interconnect access (VIA's).
57. The 3-D processor according to claim 56, wherein: said non-memory circuit is a logic circuit; or, said non-memory circuit is a processing circuit; or, said 3D-M array stores at least a portion of a look-up table (LUT) of a non-arithmetic function/model; said non-memory circuit comprises an arithmetic logic circuit (ALC) for performing arithmetic operations on selected data from said LUT; whereby said 3-D processor computes said non-arithmetic function/model, wherein said non-arithmetic function/model includes more operations than the arithmetic operations provided by said ALC; or, said 3D-M array is a portion of a configurable computing element (CCE) and stores at least a portion of a look-up table (LUT) of a non-arithmetic function; said non-memory circuit comprises at least a configurable logic element (CLE) and/or a configurable interconnect (CIT); whereby said 3-D processor customizes said non-arithmetic function by programming said CCE and said CLE/CIT, wherein said non-arithmetic function includes more operations than the arithmetic operations provided by said CLE; or, said 3-D processor further comprises an input for transferring at least a first portion of a first pattern; said 3D-M array stores at least a second portion of a second pattern; said non-memory circuit comprises a pattern-processing circuit for performing pattern processing for said first and second patterns; or, said 3-D processor is a discrete 3-D processor with embedded search-pattern library, further comprising an input for transferring at least a target pattern; wherein said 3D-M array stores at least a search pattern; said non-memory circuit comprises a pattern-processing circuit for searching said target pattern for said search pattern; or, said 3-D processor is a discrete 3-D storage with in-situ pattern-processing capabilities, further comprising an input for transferring at least a search pattern; wherein said 3D-M array stores at least a target pattern; said non-memory circuit comprises a pattern-processing circuit for searching said target pattern for said search pattern; or, said 3D-M array stores at least a portion of a synaptic weight; said non-memory circuit comprises a neuro-processing circuit for performing neural processing with said synaptic weight.
58. The 3-D processor according to claim 56, wherein: said off-die peripheral-circuit component comprises at least a portion of an address decoder; or, said off-die peripheral-circuit component comprises at least a portion of a sense amplifier; or, said off-die peripheral-circuit component comprises at least a portion of a programming circuit; or, said off-die peripheral-circuit component comprises at least a portion of a read-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a write-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a data buffer.
59. The 3-D processor according to claim 57, wherein: said off-die peripheral-circuit component comprises at least a portion of an address decoder; or, said off-die peripheral-circuit component comprises at least a portion of a sense amplifier; or, said off-die peripheral-circuit component comprises at least a portion of a programming circuit; or, said off-die peripheral-circuit component comprises at least a portion of a read-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a write-voltage generator; or, said off-die peripheral-circuit component comprises at least a portion of a data buffer.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0089]
[0090]
[0091]
[0092]
[0093]
[0094]
[0095]
[0096]
[0097]
[0098]
[0099]
[0100]
[0101]
[0102]
[0103]
[0104]
[0105]
[0106]
[0107]
[0108]
[0109]
[0110]
[0111]
[0112]
[0113]
[0114]
[0115] It should be noted that all the drawings are schematic and not drawn to scale. Relative dimensions and proportions of parts of the device structures in the figures have been shown exaggerated or reduced in size for the sake of clarity and convenience in the drawings. The same reference symbols are generally used to refer to corresponding or similar features in the different embodiments.
[0116] As used hereinafter, the symbol “/” means the relationship of “and” or “or”. The phrase “memory” is used in its broadest sense to mean any semiconductor device, which can store information for short term or long term. The phrase “memory array (e.g. 3D-M array)” is used in its broadest sense to mean a collection of all memory cells sharing at least an address line. The phrase “circuits on a substrate” is used in its broadest sense to mean that all active elements (e.g. transistors, memory cells) or portions thereof are located in the substrate, even though the interconnects coupling these active elements are located above the substrate. The phrase “circuits above a substrate” is used in its broadest sense to mean that all active elements (e.g. transistors, memory cells) are located above the substrate, not in the substrate. The phrase “communicatively coupled” is used in its broadest sense to mean any coupling whereby electrical signals may be passed from one element to another element. The phrase “look-up table (LUT) (including 3DM-LUT)” could refer to either the data in the LUT, or the memory circuit storing the LUT (i.e. the LUT memory); the present invention does not differentiate them. The phrase “pattern” could refer to either pattern per se, or the data related to a pattern; the present invention does not differentiate them.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0117] Those of ordinary skills in the art will realize that the following description of the present invention is illustrative only and is not intended to be in any way limiting. Other embodiments of the invention will readily suggest themselves to such skilled persons from an examination of the within disclosure.
[0118] Referring now to
[0119]
[0120]
[0121] The preferred discrete 3-D processor 100 is partitioned in such a way that the second die 100b comprises as many off-die peripheral-circuit components 190 as possible. The peripheral-circuit component is an essential circuit without which a memory die (e.g. the first die 100a) cannot perform even the basic memory functions (for example, its performance cannot meet the industrial standards of the memory product of the same type). Typical off-die peripheral-circuit component 190 could be an address decoder, a sense amplifier, a programming circuit, a read-voltage generator, a write-voltage generator, a data buffer, or a portion thereof.
[0122] The read/write-voltage generator converts an external power supply into a read/write voltage of the 3D-M array 170, which generally has a different value than the external power supply. The read/write-voltage generator preferably uses a DC-to-DC converter. It could be a step-up circuit, whose output voltage is higher than the input voltage, or a step-down circuit, whose output voltage is lower than the input voltage. Examples of the step-up circuits include a charge-pump circuit and a boost converter, and examples of the step-down circuits include a low dropout circuit and a buck converter.
[0123] Referring now to
[0124] In
[0125] The preferred embodiment of
[0126] In
[0127] In the above embodiments, the memory circuit 170 and the processing circuit 180 are close (relative to the conventional von Neumann architecture). In addition, for the embodiments of
[0128] Referring now to
[0129] Based on its physical structure, the 3D-M can be categorized into horizontal 3D-M (3D-M.sub.H) and vertical 3D-M (3D-M.sub.V). In a 3D-M.sub.H, all address lines are horizontal. The memory cells form a plurality of horizontal memory levels which are vertically stacked above each other. A well-known 3D-M.sub.H is 3D-XPoint. In a 3D-M.sub.V, at least one set of the address lines are vertical. The memory cells form a plurality of vertical memory strings which are placed side-by-side on/above the substrate. A well-known 3D-M.sub.V is 3D-NAND. In general, the 3D-M.sub.H (e.g. 3D-XPoint) is faster, while the 3D-M.sub.V (e.g. 3D-NAND) is denser.
[0130] Based on the data storage time, the 3D-M can be categorized into 3D-RAM (random-access memory) and 3D-ROM (read-only memory). The 3D-RAM can store data for short term and can be used as cache. The 3D-ROM can store data for long term. It is a non-volatile memory (NVM). Most 3D-M arrays in the present invention are 3D-ROM.
[0131] Based on the programming methods, the 3D-M can be categorized into 3-D writable memory (3D-W) and 3-D printed memory (3D-P). The 3D-W cells are electrically programmable. Based on the number of programmings allowed, the 3D-W can be further categorized into three-dimensional one-time-programmable memory (3D-OTP) and three-dimensional multiple-time-programmable memory (3D-MTP, including re-programmable). Common 3D-MTP includes 3D-XPoint and 3D-NAND. Other 3D-MTP's include memristor, resistive random-access memory (RRAM or ReRAM), phase-change memory (PCM), programmable metallization cell (PMC) memory, conductive-bridging random-access memory (CBRAM), and the like.
[0132] For the 3D-P, data are recorded into the 3D-P cells using a printing method during manufacturing. These data are fixedly recorded and cannot be changed after manufacturing. The printing methods include photo-lithography, nano-imprint, e-beam lithography, DUV lithography, and laser-programming, etc. An exemplary 3D-P is three-dimensional mask-programmed read-only memory (3D-MPROM), whose data are recorded by photo-lithography. Because a 3D-P cell does not require electrical programming and can be biased at a larger voltage during read than the 3D-W cell, the 3D-P is faster.
[0133] In
[0134] The 3D-M.sub.H arrays 170 in
[0135] The 3D-M.sub.H arrays 170 in
[0136] In
[0137] The preferred 3D-M.sub.V array 170 in
[0138] The preferred 3D-M.sub.V array 170 in
[0139] To minimize interference between memory cells, a diode is preferably formed between the word line 15 and the bit line 19. In a first embodiment, this diode is the programmable layer 13 per se, which could have an electrical characteristic of a diode. In a second embodiment, this diode is formed by depositing an extra diode layer on the sidewall of the memory well (not shown in this figure). In a third embodiment, this diode is formed naturally between the word line 15 and the bit line 19, i.e. to form a built-in junction (e.g. P-N junction, or Schottky junction). More details on the built-in diode are disclosed in U.S. patent application Ser. No. 16/137,512, filed on Sep. 20, 2018.
[0140] Referring now to
[0141] Comparing the first die 100a (
[0142] On the other hand, because the second die 100b is designed and manufactured independently, the number of the interconnect layers in its interconnects 0ib is larger than the number of the interconnect layers in the substrate circuit 0Ka of the first die 100a. For example, the second die 100b of
[0143] Referring now to
[0144] In
[0145] In
[0146] In the preferred embodiments of
[0147] Referring now to
[0148] In
[0149]
[0150] In this preferred embodiment, the pitch of the logic circuit 180ij is equal to the pitch of the 3D-M array 170ij. Because its area is smaller than the footprint of the 3D-M array 170ij, the logic circuit 180ij has limited functionalities.
[0151] The embodiment of
[0152] The embodiment of
[0153] Designed and manufactured separately, the first and second dice 100a, 100b have substantially different BEOL structures. Because the BEOL structures of the second die 100b could be independently optimized, the off-die peripheral-circuit components 190 and the logic circuits 180 could have a lower cost and a better performance than their counterparts in the integrated 3-D processor 80. In the following paragraphs, the discrete 3-D processor 100 is compared with the integrated 3-D processor 80 in several aspects.
[0154] First of all, because it does not include the off-die peripheral-circuit component 190 and the logic circuit 180, the first die 100a has a better array efficiency. In addition, as a 2-D circuit, the second die 100b comprises substantially fewer BEOL layers than the integrated 3-D processor, and can be made with the conventional manufacturing process. Because the wafer cost is roughly proportional to the number of BEOL layers, the second die 100b would have a much lower wafer cost than the integrated 3-D processor 80. Hence, the total die cost of the discrete 3-D processor 100 (which includes first and second dice 100a, 100b) is lower than that of the integrated 3-D processor 80 (which includes a single die). Even though the extra bonding cost is counted, the discrete 3-D processor 100 still has a lower overall cost than the integrated 3-D processor 80 for a given storage capacity.
[0155] Secondly, because they can be independently optimized, the off-die peripheral-circuit components 190 and the logic circuits 180 of the preferred discrete 3-D processor 100 have a better performance than their counterparts in the integrated 3-D processor 80. In one preferred embodiment, the number of the interconnect layers (e.g. four, eight, or even more,
[0156] Lastly, in the integrated 3-D processor 80, the logic circuit is smaller and has less processing power, because it is disposed in a single die 80 (e.g. within the footprint of the 3D-M array 77 on the substrate 0 in
[0157] In the following paragraphs, the applications of the preferred discrete 3-D processors 100 will be overviewed.
[0158] [A] Mathematical Computing
[0159] When applied to the mathematical computing, the preferred discrete 3-D processor computes non-arithmetic functions. It uses memory-based computation (MBC), which carries out computation primarily with the LUT stored in the 3D-M arrays (i.e. 3DM-LUT). In this field of application, the SPU 100ij of
[0160] Referring now to
[0161] Referring now to
[0162] Referring now to
[0163]
[0164] When calculating a non-arithmetic function, combining the LUT with polynomial interpolation can achieve a high precision without using an excessively large LUT. For example, if only LUT (without any polynomial interpolation) is used to realize a single-precision function (32-bit input and 32-bit output), it would have a capacity of 2.sup.32*32=128 Gb, which is impractical. By including polynomial interpolation, significantly smaller LUT's can be used. In the above embodiment, a single-precision function can be realized using a total of 4 Mb LUT (2 Mb for function values, and 2 Mb for first-derivative values) in conjunction with a first-order Taylor series calculation. This is significantly less than the LUT-only approach (4 Mb vs. 128 Gb).
[0165] Besides elementary functions (including algebraic functions and transcendental functions), the preferred 3-D processor 100 can be used to implement non-elementary functions such as special functions. Special functions can be defined by means of power series, generating functions, infinite products, repeated differentiation, integral representation, differential difference, integral, and functional equations, trigonometric series, or other series in orthogonal functions. Important examples of special functions are gamma function, beta function, hyper-geometric functions, confluent hyper-geometric functions, Bessel functions, Legrendre functions, parabolic cylinder functions, integral sine, integral cosine, incomplete gamma function, incomplete beta function, probability integrals, various classes of orthogonal polynomials, elliptic functions, elliptic integrals, Lame functions, Mathieu functions, Riemann zeta function, automorphic functions, and others. The 3D-processor will simplify the calculation of special functions and promote their applications in scientific computation.
[0166] Referring now to
[0167] The functions computed by the computing elements in
[0168] [B] Computer Simulation
[0169] When applied to the computer simulation, the preferred discrete 3-D processor computes non-arithmetic models. It still uses the MBC. The MBC brings about significant performance improvement for computer simulation. In this field of application, the SPU 100ij of
[0170] Referring now to
[0171] The 3DM-LUT 170U stores different forms of mathematical models. In one case, the mathematical model stored in the 3DM-LUT 170U is raw measurement data, i.e. the measured input-output characteristics of the transistor 0T. One example is the measured drain current vs. the applied gate-source voltage (I.sub.D-V.sub.GS) characteristics. In another case, the mathematical model stored in the 3DM-LUT 170U is the smoothed measurement data. The raw measurement data could be smoothed using a purely mathematical method (e.g. a best-fit model). Or, this smoothing process can be aided by a physical transistor model (e.g. a BSIM4 V3.0 transistor model). In a third case, the mathematical data stored in the 3DM-LUT include not only the measured data, but also its derivative values. For example, the 3DM-LUT 170U stores not only the drain-current values of the transistor 0T (e.g. the I.sub.D-V.sub.GS characteristics), but also its transconductance values (e.g. the G.sub.m-V.sub.GS characteristics). With derivative values, polynomial interpolation can be used to improve the modeling precision using a reasonable-size 3DM-LUT 170.
[0172] Model-by-LUT offers many advantages. By skipping two software-decomposition steps (from mathematical models to mathematical functions, and from mathematical functions to built-in functions), it saves substantial modeling time and energy. Model-by-LUT may need less LUT than function-by-LUT. Because a transistor model (e.g. BSIM4 V3.0) has hundreds of model parameters, calculating the intermediate functions of the transistor model requires extremely large LUT's. However, if function-by-LUT is skipped (namely, skipping the transistor models and the associated intermediate functions), the transistor behaviors can be described using only three parameters (including the gate-source voltage V.sub.GS, the drain-source voltage V.sub.DS, and the body-source voltage V.sub.BS). Hence, describing the mathematical models of the transistor 0T requires relatively small LUT's.
[0173] [C] Configurable Computing Array
[0174] When applied to configurable gate array, the preferred discrete 3-D processor is a discrete 3-D configurable computing array. It can not only customize logic functions and arithmetic functions, but also customize non-arithmetic functions. In the preferred 3-D configurable computing array, the SPU 100ij of
[0175] Referring now to
[0176] For the CCE 400, its input port IN includes input data 410, the output port OUT includes output data 420, and the configuration port CFG includes at least a configuration signal 430. When the configuration signal 430 is “write”, the LUT of a non-arithmetic function is loaded into the CCE 400; when the configuration signal 430 is “read”, the values of the non-arithmetic function are read out from the CCE 400.
[0177] Referring now to
[0178] Referring now to
[0179]
[0180] Referring now to
[0181] Complex functions are common in computing. As used hereinafter, a complex function is a non-arithmetic function with multiple input independent variables (or, arguments); whereas, a basic function is a non-arithmetic function with a single input independent variable. In generally, a complex function can be expressed as a combination of basic functions. The preferred 3-D configurable computing array can customize complex functions, which is unimaginable for prior art. To customize a complex function, the complex function is first decomposed into a number of basic functions. Each basic function is then realized by loading its LUT's into the associated CCE's. Finally, the complex function is realized by programming the corresponding CLE's and CIT's.
[0182]
[0183] Accordingly, the present invention discloses a discrete 3-D configurable computing array for customizing a complex function, comprising: a plurality of configurable logic elements (CLE's) and/or configurable interconnects (CIT's); first and second CCE's, wherein said first CCE comprises at least a first three-dimensional memory (3D-M) array for storing at least a first portion of a first look-up table (LUT) of a first non-arithmetic function, said second CCE comprises at least a second 3D-M array for storing at least a second portion of a second LUT of a second non-arithmetic function; first and second dice, wherein said first die comprises said 3D-M array, said second die comprises at least a portion of said array of CCE's/CIT's and an off-die peripheral-circuit component of said first or second 3D-M array, said first die does not comprise said off-die peripheral-circuit component, said first and second dice are separate dice communicatively coupled by a plurality of inter-die connections; whereby said complex function is realized by programming said CLE's/CIT's and said first and second CCE's, wherein said complex function is a combination of said first and second non-arithmetic functions, said first and second non-arithmetic functions include more operations than the arithmetic operations provided by said CLE's.
[0184] Referring now to
[0185]
[0186] [D] Pattern Processing
[0187] When applied to pattern processing, the preferred discrete 3-D processor is a discrete 3-D pattern processor. Its basic functionality is pattern processing. More importantly, the patterns it processes are stored locally.
[0188]
[0189] When used for pattern processing, the preferred 3-D parallel processor 100 is a discrete 3-D pattern processor.
[0190] The preferred discrete 3-D pattern processor 100 can be either processor-like or storage-like. The processor-like 3-D pattern processor 100 acts like a discrete 3-D processor with an embedded search-pattern library. It searches a target pattern from the input 110 against the search-pattern library. To be more specific, the 3D-M array 170 stores at least a portion of the search-pattern library (e.g. a virus library, a keyword library, an acoustic/language model library, an image model library); the input 110 includes a target pattern (e.g. a network packet, a computer file, audio data, or image data); the pattern-processing circuit 180 performs pattern processing on the target pattern with the search pattern. Because a large number of the SPU's 100ij (thousands to tens of thousands, referring to
[0191] Accordingly, the present invention discloses a discrete 3-D processor with an embedded search-pattern library, comprising: an input for transferring at least a portion of a target pattern; a plurality of storage-processing units (SPU's) communicatively coupled with said input, each of said SPU's comprising at least a three-dimensional memory (3D-M) array and a pattern-processing circuit, wherein said 3D-M array stores at least a portion of a search pattern, said pattern-processing circuit performs pattern processing on said target pattern with said search pattern; first and second dice, wherein said first die comprises said 3D-M array, said second die comprises at least a portion of said pattern-processing circuit and an off-die peripheral-circuit component of said 3D-M array, said first die does not comprise said off-die peripheral-circuit component, said first and second dice are separate dice communicatively coupled by a plurality of inter-die connections.
[0192] The storage-like discrete 3-D pattern processor 100 acts like a 3-D storage with in-situ pattern-processing capabilities. Its primary purpose is to store a target-pattern database, with a secondary purpose of searching the stored target-pattern database for a search pattern from the input 110. To be more specific, a target-pattern database (e.g. computer files on a whole disk drive, a big-data database, an audio archive, an image archive) is stored and distributed in the 3D-M arrays 170; the input 110 include at least a search pattern (e.g. a virus signature, a keyword, a model); the pattern-processing circuit 180 performs pattern processing on the target pattern with the search pattern. Because a large number of the SPU's 100ij (thousands to tens of thousands, referring to
[0193] Like the flash memory, a large number of the preferred discrete 3-D storages 100 can be packaged into a storage card (e.g. an SD card, a TF card) or a solid-state drive (i.e. SSD). These storage cards or SSD can be used to store massive data in the target-pattern database. More importantly, they have in-situ pattern-processing (e.g. searching) capabilities. Because each SPU 100ij has its own pattern-processing circuit 180, it only needs to search the data stored in the local 3D-M array 170 (i.e. in the same SPU 100ij). As a result, no matter how large is the capacity of the storage card or the SSD, the processing time for the whole storage card or the whole SSD is similar to that for a single SPU 100ij. In other words, the search time for a database is irrelevant to its size, mostly within seconds.
[0194] In comparison, for the conventional von Neumann architecture, the processor (e.g. CPU) and the storage (e.g. HDD) are physically separated. During search, data need to be read out from the storage first. Because of the limited bandwidth between the CPU and the HDD, the search time for a database is limited by the read-out time of the database. As a result, the search time for the database is proportional to its size. In general, the search time ranges from minutes to hours, even longer, depending on the size of the database. Apparently, the preferred 3-D storage with in-situ pattern-processing capabilities 100 has great advantages in database search.
[0195] When a preferred 3-D storage with in-situ pattern-processing capabilities 100 performs pattern processing for a large database (i.e. target-pattern database), the pattern-processing circuit 180 could just perform partial pattern processing. For example, the pattern-processing circuit 180 only performs a preliminary pattern processing (e.g. code matching, or string matching) on the database. After being filtered by this preliminary pattern-processing step, the remaining data from the database are sent through the output 120 to an external processor (e.g. CPU, GPU) to complete the full pattern processing. Because most data are filtered out by this preliminary pattern-processing step, the data output from the preferred 3-D storage 100 are a small fraction of the whole database. This can substantially alleviate the bandwidth requirement on the output 120.
[0196] Accordingly, the present invention discloses a discrete 3-D storage with in-situ pattern-processing capabilities, comprising: an input for transferring at least a portion of a search pattern; a plurality of storage-processing units (SPU's) communicatively coupled with said input, each of said SPU's comprising at least a three-dimensional memory (3D-M) array and a pattern-processing circuit, wherein said 3D-M array stores at least a portion of a target pattern, said pattern-processing circuit performs pattern processing on said target pattern with said search pattern; first and second dice, wherein said first die comprises said 3D-M array, said second die comprises at least a portion of said pattern-processing circuit and an off-die peripheral-circuit component of said 3D-M array, said first die does not comprise said off-die peripheral-circuit component, said first and second dice are separate dice communicatively coupled by a plurality of inter-die connections
[0197] In the following paragraphs, applications of the preferred discrete 3-D pattern processor 100 are described. The fields of applications include: A) information security; B) big-data analytics; C) speech recognition; and D) image recognition. Examples of the applications include: a) information-security processor; b) anti-virus storage; c) data-analysis processor; d) searchable storage; e) speech-recognition processor; f) searchable audio storage; g) image-recognition processor; h) searchable image storage.
[0198] A) Information Security
[0199] Information security includes network security and computer security. To enhance network security, virus in the network packets needs to be scanned. Similarly, to enhance computer security, virus in the computer files (including computer software) needs to be scanned. Generally speaking, virus (also known as malware) includes network viruses, computer viruses, software that violates network rules, document that violates document rules and others. During virus scan, a network packet or a computer file is compared against the virus patterns (also known as virus signatures) in a virus library. Once a match is found, the portion of the network packet or the computer file which contains the virus is quarantined or removed.
[0200] Nowadays, the virus library has become large. It has reached hundreds of MB. On the other hand, the computer data that require virus scan are even larger, typically on the order of GB or TB, even bigger. On the other hand, each processor core in the conventional processor can typically check a single virus pattern once. With a limited number of cores (e.g. a CPU contains tens of cores; a GPU contains hundreds of cores), the conventional processor can achieve limited parallelism for virus scan. Furthermore, because the processor is physically separated from the storage in the von Neumann architecture, it takes a long time to fetch new virus patterns. As a result, the conventional processor and its associated architecture have a poor performance for information security.
[0201] To enhance information security, the present invention discloses several discrete 3-D pattern processors 100. It could be processor-like or storage-like. For processor-like, the preferred discrete 3-D pattern processor 100 is an information-security processor, i.e. a processor for enhancing information security; for storage-like, the preferred discrete 3-D pattern processor 100 is an anti-virus storage, i.e. a storage with in-situ anti-virus capabilities.
[0202] a) Information-Security Processor
[0203] To enhance information security, the present invention discloses an information-security processor 100. It searches a network packet or a computer file for various virus patterns in a virus library. If there is a match with a virus pattern, the network packet or the computer file contains the virus. The preferred information-security processor 100 can be installed as a standalone processor in a network or a computer; or, integrated into a network processor, a computer processor, or a computer storage.
[0204] In the preferred information-security processor 100, the 3D-M arrays 170 in different SPU 100ij stores different virus patterns. In other words, the virus library is stored and distributed in the SPU's 100ij of the preferred information-security processor 100. Once a network packet or a computer file is received at the input 110, at least a portion thereof is sent to all SPU's 100ij. In each SPU 100ij, the pattern-processing circuit 180 compares said portion of data against the virus patterns stored in the local 3D-M array 170. If there is a match with a virus pattern, the network packet or the computer file contains the virus.
[0205] The above virus-scan operations are carried out by all SPU's 100ij at the same time. Because it comprises a large number of SPU's 100ij (thousands to tens of thousands), the preferred information-security processor 100 achieves massive parallelism for virus scan. Furthermore, because the inter-die connections 160 are numerous and the pattern-processing circuit 180 is physically close to the 3D-M arrays 170 (compared with the conventional von Neumann architecture), the pattern-processing circuit 180 can easily fetch new virus patterns from the local 3D-M array 170. As a result, the preferred information-security processor 100 can perform fast and efficient virus scan. In this preferred embodiment, the 3D-M arrays 170 storing the virus library could be 3D-P, 3D-OTP or 3D-MTP; and, the pattern-processing circuit 180 is a code-matching circuit.
[0206] Accordingly, the present invention discloses a discrete information-security processor, comprising: an input for transferring at least a portion of data from a network packet or a computer file; a plurality of storage-processing units (SPU's) communicatively coupled with said input, each of said SPU's comprising at least a three-dimensional memory (3D-M) array and a code-matching circuit, wherein said 3D-M array stores at least a portion of a virus pattern, said code-matching circuit searches said virus pattern in said portion of data; first and second dice, wherein said first die comprises said 3D-M array, said second die comprises at least a portion of said code-matching circuit and an off-die peripheral-circuit component of said 3D-M array, said first die does not comprise said off-die peripheral-circuit component, said first and second dice are separate dice communicatively coupled by a plurality of inter-die connections.
[0207] b) Anti-Virus Storage
[0208] Whenever a new virus is discovered, the whole disk drive (e.g. hard-disk drive, solid-state drive) of the computer needs to be scanned against the new virus. This full-disk scan process is challenging to the conventional von Neumann architecture. Because a disk drive could store massive data, it takes a long time to even read out all data, let alone scan virus for them. For the conventional von Neumann architecture, the full-disk scan time is proportional to the capacity of the disk drive.
[0209] To shorten the full-disk scan time, the present invention discloses an anti-virus storage. Its primary function is a computer storage, with in-situ virus-scanning capabilities as its secondary function. Like the flash memory, a large number of the preferred anti-virus storage 100 can be packaged into a storage card or a solid-state drive for storing massive data and with in-situ virus-scanning capabilities.
[0210] In the preferred anti-virus storage 100, the 3D-M arrays 170 in different SPU 100ij stores different data. In other words, massive computer files are stored and distributed in the SPU's 100ij of the storage card or the solid-state drive. Once a new virus is discovered and a full-disk scan is required, the pattern of the new virus is sent as input 110 to all SPU's 100ij, where the pattern-processing circuit 180 compares the data stored in the local 3D-M array 170 against the new virus pattern.
[0211] The above virus-scan operations are carried out by all SPU's 100ij at the same time and the virus-scan time for each SPU 100ij is similar. Because of the massive parallelism, no matter how large is the capacity of the storage card or the solid-state drive, the virus-scan time for the whole storage card or the whole solid-state drive is more or less a constant, which is close to the virus-scan time for a single SPU 100ij and generally within seconds. On the other hand, the conventional full-disk scan takes minutes to hours, or even longer. In this preferred embodiment, the 3D-M arrays 170 storing massive computer data are preferably 3D-MTP; and, the pattern-processing circuit 180 is a code-matching circuit.
[0212] Accordingly, the present invention discloses a discrete anti-virus storage, comprising: an input for transferring at least a portion of a virus pattern; a plurality of storage-processing units (SPU's) communicatively coupled with said input, each of said SPU's comprising at least a three-dimensional memory (3D-M) array and a code-matching circuit, wherein said 3D-M array stores at least a portion of data, said code-matching circuit searches said virus pattern in said portion of data; first and second dice, wherein said first die comprises said 3D-M array, said second die comprises at least a portion of said code-matching circuit and an off-die peripheral-circuit component of said 3D-M array, said first die does not comprise said off-die peripheral-circuit component, said first and second dice are separate dice communicatively coupled by a plurality of inter-die connections.
[0213] B) Big-Data Analytics
[0214] Big data is a term for a large collection of data, with main focus on unstructured and semi-structure data. An important aspect of big-data analytics is keyword search (including string matching, e.g. regular-expression matching). At present, the keyword library becomes large, while the big-data database is even larger. For such large keyword library and big-data database, the conventional processor and its associated architecture can hardly perform fast and efficient keyword search on unstructured or semi-structured data.
[0215] To improve the speed and efficiency of big-data analytics, the present invention discloses several discrete 3-D pattern processors 100. It could be processor-like or storage-like. For processor-like, the preferred discrete 3-D pattern processor 100 is a data-analysis processor, i.e. a processor for performing analysis on big data; for storage-like, the preferred discrete 3-D pattern processor 100 is a searchable storage, i.e. a storage with in-situ searching capabilities.
[0216] c) Data-Analysis Processor
[0217] To perform fast and efficient search on the input data, the present invention discloses a data-analysis processor 100. It searches the input data for the keywords in a keyword library. In the preferred data-analysis processor 100, the 3D-M arrays 170 in different SPU 100ij stores different keywords. In other words, the keyword library is stored and distributed in the SPU's 100ij of the preferred data-analysis processor 100. Once data are received at the input 110, at least a portion thereof is sent to all SPU's 100ij. In each SPU 100ij, the pattern-processing circuit 180 compares said portion of data against various keywords stored in the local 3D-M array 170.
[0218] The above searching operations are carried out by all SPU's 100ij at the same time. Because it comprises a large number of SPU's 100ij (thousands to tens of thousands), the preferred data-analysis processor 100 achieves massive parallelism for keyword search. Furthermore, because the inter-die connections 160 are numerous and the pattern-processing circuit 180 is physically close to the 3D-M arrays 170 (compared with the conventional von Neumann architecture), the pattern-processing circuit 180 can easily fetch keywords from the local 3D-M array 170. As a result, the preferred data-analysis processor 100 can perform fast and efficient search on unstructured data or semi-structured data.
[0219] In this preferred embodiment, the 3D-M arrays 170 storing the keyword library could be 3D-P, 3D-OTP or 3D-MTP; and, the pattern-processing circuit 180 is a string-matching circuit. The string-matching circuit could be implemented by a content-addressable memory (CAM) or a comparator including XOR circuits. Alternatively, keyword can be represented by a regular expression. In this case, the sting-matching circuit 180 can be implemented by a finite-state automata (FSA) circuit.
[0220] Accordingly, the present invention discloses a discrete data-analysis processor, comprising: an input for transferring at least a portion of data; a plurality of storage-processing units (SPU's) communicatively coupled with said input, each of said SPU's comprising at least a three-dimensional memory (3D-M) array and a string-matching circuit, wherein said 3D-M array stores at least a portion of a keyword, said string-matching circuit searches said keyword in said portion of data; first and second dice, wherein said first die comprises said 3D-M array, said second die comprises at least a portion of said string-matching circuit and an off-die peripheral-circuit component of said 3D-M array, said first die does not comprise said off-die peripheral-circuit component, said first and second dice are separate dice communicatively coupled by a plurality of inter-die connections.
[0221] d) Searchable Storage
[0222] Big-data analytics often requires full-database search, i.e. to search a whole big-data database for a keyword. The full-database search is challenging to the conventional von Neumann architecture. Because the big-data database is large, with a capacity of GB to TB, or even larger, it takes a long time to even read out all data, let alone analyze them. For the conventional von Neumann architecture, the full-database search time is proportional to the database size.
[0223] To improve the speed and efficiency of full-database search, the present invention discloses a searchable storage. Its primary function is database storage, with in-situ searching capabilities as its secondary function. Like the flash memory, a large number of the preferred searchable storage 100 can be packaged into a storage card or a solid-state drive for storing a big-data database and with in-situ searching capabilities.
[0224] In the preferred searchable storage 100, the 3D-M arrays 170 in different SPU 100ij stores different portions of the big-data database. In other words, the big-data database is stored and distributed in the SPU's 100ij of the storage card or the solid-state drive. During search, a keyword is sent as input 110 to all SPU's 100ij. In each SPU 100ij, the pattern-processing circuit 180 searches the portion of the big-data database stored in the local 3D-M array 170 for the keyword.
[0225] The above searching operations are carried out by all SPU's 100ij at the same time and the keyword-search time for each SPU 100ij is similar. Because of massive parallelism, no matter how large is the capacity of the storage card or the solid-state drive, the keyword-search time for the whole storage card or the whole solid-state drive is more or less a constant, which is close to the keyword-search time for a single SPU 100ij and generally within seconds. On the other hand, the conventional full-database search takes minutes to hours, or even longer. In this preferred embodiment, the 3D-M arrays 170 storing the big-data database are preferably 3D-MTP; and, the pattern-processing circuit 100 is a string-matching circuit.
[0226] Because it has the largest storage density among all semiconductor memories, the 3D-M.sub.V is particularly suitable for storing a big-data database. Among all 3D-M.sub.V, the 3D-OTP.sub.V has a long data retention time and therefore, is particularly suitable for archiving. Fast searchability is important for archiving. A searchable 3D-OTP.sub.V will provide a large, inexpensive archive with fast searching capabilities.
[0227] Accordingly, the present invention discloses a discrete searchable storage, comprising: an input for transferring at least a portion of a keyword; a plurality of storage-processing units (SPU's) communicatively coupled with said input, each of said SPU's comprising at least a three-dimensional memory (3D-M) array and a string-matching circuit, wherein said 3D-M array stores at least a portion of data, said string-matching circuit searches said keyword in said portion of data; first and second dice, wherein said first die comprises said 3D-M array, said second die comprises at least a portion of said string-matching circuit and an off-die peripheral-circuit component of said 3D-M array, said first die does not comprise said off-die peripheral-circuit component, said first and second dice are separate dice communicatively coupled by a plurality of inter-die connections.
[0228] C) Speech Recognition
[0229] Speech recognition enables the recognition and translation of spoken language. It is primarily implemented through pattern recognition between audio data and an acoustic model/language library, which contains a plurality of acoustic models or language models. During speech recognition, the pattern processing circuit 180 performs speech recognition to the user's audio data by finding the nearest acoustic/language model in the acoustic/language model library. Because the conventional processor (e.g. CPU, GPU) has a limited number of cores and the acoustic/language model database is stored externally, the conventional processor and the associated architecture have a poor performance in speech recognition.
[0230] e) Speech-Recognition Processor
[0231] To improve the performance of speech recognition, the present invention discloses a speech-recognition processor 100. In the preferred speech-recognition processor 100, the user's audio data is sent as input 110 to all SPU 100ij. The 3D-M arrays 170 store at least a portion of the acoustic/language model. In other words, an acoustic/language model library is stored and distributed in the SPUs 100ij. The pattern-processing circuit 180 performs speech recognition on the audio data from the input 110 with the acoustic/language models stored in the 3D-M arrays 170. In this preferred embodiment, the 3D-M arrays 170 storing the models could be 3D-P, 3D-OTP, or 3D-MTP; and, the pattern-processing circuit 180 is a speech-recognition circuit.
[0232] Accordingly, the present invention discloses a discrete speech-recognition processor, comprising: an input for transferring at least a portion of audio data; a plurality of storage-processing units (SPU's) communicatively coupled with said input, each of said SPU's comprising at least a three-dimensional memory (3D-M) array and a speech-recognition circuit, wherein said 3D-M array stores at least a portion of an acoustic/language model, said speech-recognition circuit performs pattern recognition on said portion of audio data with said acoustic/language model; first and second dice, wherein said first die comprises said 3D-M array, said second die comprises at least a portion of said speech-recognition circuit and an off-die peripheral-circuit component of said 3D-M array, said first die does not comprise said off-die peripheral-circuit component, said first and second dice are separate dice communicatively coupled by a plurality of inter-die connections.
[0233] f) Searchable Audio Storage
[0234] To enable audio search in an audio database (e.g. an audio archive), the present invention discloses a searchable audio storage. In the preferred searchable audio storage 100, an acoustic/language model derived from the audio data to be searched for is sent as input 110 to all SPU 100ij. The 3D-M arrays 170 store at least a portion of the user's audio database. In other words, the audio database is stored and distributed in the SPUs 100ij of the preferred searching audio storage 100. The pattern-processing circuit 180 performs speech recognition on the audio data stored in the 3D-M arrays 170 with the acoustic/language model from the input 110. In this preferred embodiment, the 3D-M arrays 170 storing the audio database are preferably 3D-MTP; and, the pattern-processing circuit 180 is a speech-recognition circuit.
[0235] Accordingly, the present invention discloses a discrete searchable audio storage, comprising: an input for transferring at least a portion of an acoustic/language model; a plurality of storage-processing units (SPU's) communicatively coupled with said input, each of said SPU's comprising at least a three-dimensional memory (3D-M) array and a speech-recognition circuit, wherein said 3D-M array stores at least a portion of audio data, said speech-recognition circuit performs pattern recognition on said portion of audio data with said acoustic/language model; first and second dice, wherein said first die comprises said 3D-M array, said second die comprises at least a portion of said speech-recognition circuit and an off-die peripheral-circuit component of said 3D-M array, said first die does not comprise said off-die peripheral-circuit component, said first and second dice are separate dice communicatively coupled by a plurality of inter-die connections.
[0236] D) Image Recognition or Search
[0237] Image recognition enables the recognition of images. It is primarily implemented through pattern recognition on image data with an image model, which is a part of an image model library. During image recognition, the pattern processing circuit 180 performs image recognition to the user's image data by finding the nearest image model in the image model library. Because the conventional processor (e.g. CPU, GPU) has a limited number of cores and the image model database is stored externally, the conventional processor and the associated architecture have a poor performance in image recognition.
[0238] g) Image-Recognition Processor
[0239] To improve the performance of image recognition, the present invention discloses an image-recognition processor 100. In the preferred image-recognition processor 100, the user's image data is sent as input 110 to all SPU 100ij. The 3D-M arrays 170 store at least a portion of the image model. In other words, an image model library is stored and distributed in the SPUs 100ij. The pattern-processing circuit 180 performs image recognition on the image data from the input 110 with the image models stored in the 3D-M arrays 170. In this preferred embodiment, the 3D-M arrays 170 storing the models could be 3D-P, 3D-OTP, or 3D-MTP; and, the pattern-processing circuit 180 is an image-recognition circuit.
[0240] Accordingly, the present invention discloses a discrete image-recognition processor, comprising: an input for transferring at least a portion of image data; a plurality of storage-processing units (SPU's) communicatively coupled with said input, each of said SPU's comprising at least a three-dimensional memory (3D-M) array and an image-recognition circuit, wherein said 3D-M array stores at least a portion of an image model, said image-recognition circuit performs pattern recognition on said portion of image data with said image model; first and second dice, wherein said first die comprises said 3D-M array, said second die comprises at least a portion of said image-recognition circuit and an off-die peripheral-circuit component of said 3D-M array, said first die does not comprise said off-die peripheral-circuit component, said first and second dice are separate dice communicatively coupled by a plurality of inter-die connections.
[0241] h) Searchable Image Storage
[0242] To enable image search in an image database (e.g. an image archive), the present invention discloses a searchable image storage. In the preferred searchable image storage 100, an image model derived from the image data to be searched for is sent as input 110 to all SPU 100ij. The 3D-M arrays 170 store at least a portion of the user's image database. In other words, the image database is stored and distributed in the SPUs 100ij of the preferred searchable image storage 100. The pattern-processing circuit 180 performs image recognition on the image data stored in the 3D-M arrays 170 with the image model from the input 110. In this preferred embodiment, the 3D-M arrays 170 storing the image database are preferably 3D-MTP; and, the pattern-processing circuit 180 is an image-recognition circuit.
[0243] Accordingly, the present invention discloses a discrete searchable image storage, comprising: an input for transferring at least a portion of an image model; a plurality of storage-processing units (SPU's) communicatively coupled with said input, each of said SPU's comprising at least a three-dimensional memory (3D-M) array and an image-recognition circuit, wherein said 3D-M array stores at least a portion of image data, said image-recognition circuit performs pattern recognition on said portion of image data with said image model; first and second dice, wherein said first die comprises said 3D-M array, said second die comprises at least a portion of said image-recognition circuit and an off-die peripheral-circuit component of said 3D-M array, said first die does not comprise said off-die peripheral-circuit component, said first and second dice are separate dice communicatively coupled by a plurality of inter-die connections.
[0244] [E] Neural Network
[0245] When applied to neural network, the preferred discrete 3-D processor is a discrete 3-D neuro-processor. Its basic functionality is neural processing. More importantly, the synaptic weights required for neural processing are stored locally.
[0246] The preferred discrete 3-D neuro-processor uses the architecture of the preferred discrete 3-D parallel processor 100 (
[0247] Referring now to
[0248] In the preferred embodiment of
[0249] In the preferred embodiment of
[0250] The activation function (e.g. a sigmoid function, a signum function, a threshold function, a piecewise-linear function, a step function, a tanh function, etc.) controls the amplitude of its output to be between certain values (e.g. between 0 and 1 or between −1 and 1). It is difficult to realize the activation function in the past. Following the same inventive spirit of the present invention, more particularly that in the section of “mathematical computing”, the logic circuit 180 on the second die 100b may comprise a non-volatile memory (NVM) for storing the LUT of the activation function. The NVM is generally a read-only memory (ROM), more particularly a 3-D read-only memory (3D-ROM). The 3D-ROM array can be further stacked above the multiplier/MAC 732 and the adder 734 and overlap them. As a result, the computing circuit 730 becomes quite simple—it only needs to realize multiplication and addition, but not activation function. The computing circuit 730 using the 3D-ROM array to realize the activation functions is small and therefore, has a large computational density.
[0251] While illustrative embodiments have been shown and described, it would be apparent to those skilled in the art that many more modifications than that have been mentioned above are possible without departing from the inventive concepts set forth therein. For example, the preferred 3-D processor could be a micro-controller, a controller, a central processing unit (CPU), a digital signal processor (DSP), a graphic processing unit (GPU), a network-security processor, an encryption/decryption processor, an encoding/decoding processor, a neural-network processor, or an artificial intelligence (AI) processor. These processors can be found in consumer electronic devices (e.g. personal computers, video game machines, smart phones) as well as engineering and scientific workstations and server machines. The invention, therefore, is not to be limited except in the spirit of the appended claims.