Electronic device for encoding event indicated by spatial-temporal input signals and operating method thereof
11507811 · 2022-11-22
Assignee
Inventors
Cpc classification
G06N3/049
PHYSICS
G11C7/1006
PHYSICS
G11C8/18
PHYSICS
International classification
Abstract
An electronic device includes first to n-th cells (‘n’ is an integer of 2 or more) that receive spatial-temporal input signals that indicate an event unit in a time window, a summation circuit that sums first to n-th cell signals recorded in the first to n-th cells for each of first to m-th unit times (‘m’ is an integer of 2 or more) dividing the time window to generate first to m-th summation signals, and an encoding circuit that compares each of the first to m-th summation signals with a threshold value to encode the spatial-temporal input signals into a code of the event unit.
Claims
1. An electronic device comprising: first to n-th cells (‘n’ is an integer of 2 or more) configured to receive spatial-temporal input signals that indicate an event unit in a time window; a summation circuit configured to sum first to n-th cell signals recorded in the first to n-th cells for each of first to m-th unit times (‘m’ is an integer of 2 or more) dividing the time window to generate first to m-th summation signals; a sensor configured to receive spike signals; a conversion circuit configured to convert the spike signals into the spatial-temporal input signals; an encoding circuit configured to compare each of the first to m-th summation signals with a threshold value to encode the spatial-temporal input signals into a code of the event unit; and a memory cell array configured to store the code and output a final code to a neural network or other electronic device to model a neuron of the neural network.
2. The electronic device of claim 1, wherein the code of the event unit is a one-dimensional array of 1×m.
3. The electronic device of claim 1, wherein addresses of the first to n-th cells indicate spatial information of the spatial-temporal input signals, and wherein the first to m-th unit times indicate temporal information of the spatial-temporal input signals.
4. The electronic device of claim 1, wherein the first to n-th cells are further configured to receive spatial-temporal input signals in second to k-th time windows (‘k’ is an integer of 2 or more) after a first time window that is the time window, wherein the spatial-temporal input signals in the first time window indicate the event unit that is a first event unit, wherein the spatial-temporal input signals in the second to k-th time windows indicate second to k-th event units, respectively, and wherein the first to k-th event units indicate one event object.
5. The electronic device of claim 4, wherein the summation circuit is further configured to: sum the first to n-th cell signals recorded in the first to n-th cells for each of the first to m-th unit times dividing the second time window to generate first to m-th summation signals of the second event unit; and sum the first to n-th cell signals recorded in the first to n-th cells for each of the first to m-th unit times dividing the k-th time window to generate first to m-th summation signals of the k-th event unit.
6. The electronic device of claim 5, wherein the code is a first code of the first event unit, and wherein the encoding circuit is further configured to: compare each of the first to m-th summation signals of the second event unit with the threshold value to encode the spatial-temporal input signals of the second event unit into a second code of the second event unit; and compare each of the first to m-th summation signals of the k-th event unit with the threshold value to encode the spatial-temporal input signals of the k-th event unit into k-th code of the k-th event unit.
7. The electronic device of claim 6, wherein the encoding circuit is further configured to store the first to k-th codes in a memory cell array of k×m.
8. The electronic device of claim 7, wherein the encoding circuit is further configured to store the first to k-th codes in the memory cell array of k×m, wherein the first to n-th cells are further configured to receive spatial-temporal input signals that indicate a k+1-th event unit in a k+1-th time window after the k-th time window, and wherein the summation circuit is further configured to sum the first to n-th cell signals recorded in the first to n-th cells for each of the first to m-th unit times dividing the k+1-th time window to generate first to m-th summation signals of the k+1-th event unit.
9. The electronic device of claim 8, wherein the encoding circuit is further configured to: compare each of the first to m-th summation signals of the k+1-th event unit with the threshold value to encode the spatial-temporal input signals of the k+1-th event unit into a k+1-th code of the k+1-th event unit; select codes of the first to k-th codes, based on differences between the k+1-th code and the first to k-th codes; and sum the selected codes to restore the k+1-th code.
10. The electronic device of claim 6, wherein the summation circuit is a first summation circuit and the encoding circuit is a first encoding circuit, and the electronic device further comprises: a second summation circuit configured to sum the first to k-th codes for each of the first to m-th unit times dividing each of the first to k-th time windows to generate first to m-th summation signals of the event object; and a second encoding circuit configured to compare each of the first to m-th summation signals of the event object with the threshold value to encode the event object into a final code.
11. The electronic device of claim 10, wherein the final code of the event object is a one-dimensional array of 1×m.
12. A method of operating an electronic device that encodes an event object indicated by spatial-temporal input signals, the method comprising: dividing the event object into first to k-th event units based on first to k-th time windows (‘k’ is an integer of 2 or more); generating first to m-th summation signals of each of the first to k-th event units by summing first to n-th cell signals recorded in first to n-th cells (‘n’ is an integer of 2 or more) that receive the spatial-temporal input signals for each of first to m-th unit times (‘m’ is an integer of 2 or more) dividing each of the first to k-th time windows; encoding the spatial-temporal input signals into first to k-th codes of the first to k-th event units by comparing each of the first to m-th summation signals with a threshold value; storing the first to k-th codes in a memory cell array; and outputting a final code to a neural network or other electronic device to model a neuron of the neural network; wherein the dividing of the event object into the first to k-th event units includes converting spike signals into the spatial-temporal input signals.
13. The method of claim 12, wherein a size of the memory cell array in which the first to k-th codes are stored is k×m.
14. The method of claim 12, wherein the event object is stored in a memory cell array of n×m×k that is distinct from the memory cell array.
15. The method of claim 12, wherein each of the first to k-th event units of the event object is stored in an n×m memory cell array that is distinct from the memory cell array.
16. The method of claim 12, wherein the spatial-temporal input signals are digital signals.
17. The method of claim 12, further comprising: generating first to m-th summation signals of the event object by summing the first to k-th codes for each of the first to m-th unit times; encoding the event object into the final code by comparing each of the first to m-th summation signals of the event object with a threshold value; and storing the final code in the memory cell array.
18. The method of claim 17, wherein the final code is a one-dimensional array of 1×m.
Description
BRIEF DESCRIPTION OF THE FIGURES
(1) Features will become apparent to those of skill in the art by describing in detail exemplary embodiments with reference to the attached drawings in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
DETAILED DESCRIPTION
(12) Embodiments of the inventive concept will be described below clearly and in detail such that those skilled in the art may easily practice the inventive concept.
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20) In operation S110, the electronic device may perform initial setting for the event object. The electronic device may include a memory that stores a result of the initial setting. The event described above in
(21) Event Object.fwdarw.E.sub.A
(22) Event Unit.fwdarw.E.sub.U
(23) Elapsed Time of Event Object.fwdarw.T_E.sub.A
(24) Elapsed Time of Event Unit.fwdarw.T_E.sub.U
(25) Time Window.fwdarw.T.sub.W
(26) Occurrence time of Event Unit.fwdarw.T.sub.EU
(27) Default Unit Time.fwdarw.T.sub.U
(28) The Number of Event Unit assignments per Event Object.fwdarw.k=T_E.sub.A/T_E.sub.U
(29) The Number of Cell Signal assignments per Event Unit.fwdarw.m=T_E.sub.U/T.sub.U
(30) The electronic device may set an elapsed time of event object T_E.sub.A, an elapsed time of event unit T_E.sub.U, and a time window T.sub.W to divide the event object E.sub.A into a plurality of event units E.sub.U. For example, the elapsed time of event unit T_E.sub.U and the time window T.sub.W may be the same (T_E.sub.U=T.sub.W) each other, but the scope of the inventive concept is not limited thereto. When the elapsed time of event object T_E.sub.A and the elapsed time of event unit T_E.sub.U are set, the number of event units assigned to one event object may be determined (k=T_E.sub.A/T_E.sub.U). The ‘k’ may be an integer of 2 or more. The electronic device may uniformly divide the event object E.sub.A into a plurality of event units E.sub.U, using the time window T.sub.W and process the event object E.sub.A in units of the time window T.sub.W. The electronic device may set an occurrence time (or the time point; T.sub.EU) of each event unit. For example, when the event object is divided into first to third event units (k=3), the occurrence times of the first to third event units may be T.sub.EU1, T.sub.EU2, and T.sub.EU3.
(31) The electronic device may process one event unit E.sub.U, based on the default unit time (T.sub.U; hereinafter referred to as unit time). The electronic device may set the unit time T.sub.U that is less than the time window T.sub.W. When the unit time T.sub.U is set, the number of cell signals assigned to one event object may be determined (m=T_E.sub.U/T.sub.U). The ‘m’ may be an integer of 2 or more. The cell signal may be stored in a cell included in the electronic device and may have one of the first and second logic values that indicate whether the neuron is fired. For example, the cell may be a memory cell that stores one of the first and second logic values.
(32) The electronic device may receive one or more event objects E.sub.A. For example, the electronic device may perform operation S110 only once for all the event objects E.sub.A. The result of the initial setting of operation S110 may be common to the event objects E.sub.A. For another example, the electronic device may repeatedly perform operation S110 for each event object E.sub.A. Results of the initial setting for the event objects E.sub.A may differ from one another.
(33) In operation S120, the electronic device may receive spatial-temporal input signals that indicate the event object E.sub.A. The spatial-temporal input signals may indicate signals in which the spike signals are encoded with the first and second logic values, based on whether the neurons of the neural network are fired. For example, the electronic device may directly receive the spatial-temporal input signals. As another example, the electronic device may receive the spike signals of the neural network and convert the received spike signals into the spatial-temporal input signals.
(34) In operation S130, the electronic device may configure the event object E.sub.A as a set of event units E.sub.U. Based on the initial setting of the operation S110, the event object E.sub.A may include k event units E.sub.U1, E.sub.U2, . . . , E.sub.Uk. The electronic device may divide the event object E.sub.A into the k event units E.sub.U1, E.sub.U2, . . . , E.sub.Uk, based on k time windows. Operation S110 to operation S130 may correspond to pre-processing of the spatial-temporal input signals by the electronic device.
(35) In operation S140, the electronic device may select the event unit E.sub.U. For example, the electronic device may select the k event units E.sub.U1, E.sub.U2, . . . , E.sub.Uk configured in operation S130 in order, but a selection order is not limited to the above. Thereafter, the electronic device may perform encoding on the selected event unit E.sub.U.
(36) In operation S150, the electronic device may sum the cell signals of cells for each unit time T.sub.U of the event unit E.sub.U selected in operation S140. The number of unit times T.sub.U assigned per the elapsed time of event unit T_E.sub.U may be ‘m’. When the number of cells is ‘n’, a summation signal may be S.sub.sum=Σ.sub.i.sup.n=.sub.1S.sub.i. The ‘n’ may be an integer of 2 or more.
(37) In operation S160, the electronic device may encode the summation signals S.sub.sum based on a threshold value S.sub.th. The electronic device may perform encoding based on all-or-none law method comparing the summation signals S.sub.sum with the threshold value S.sub.th. When the summation signal S.sub.sum is equal to or greater (or above) than the threshold value S.sub.th, the electronic device may encode the summation signal S.sub.sum into the second logic value. When the summation signal S.sub.sum is less (or less than or equal) than the threshold value S.sub.th, the electronic device may encode the summation signal S.sub.sum into the first logic value. The electronic device may set the threshold value S.sub.th used in operation S160 in operation S110. The threshold value S.sub.th may be variably set or fixed depending on the event object E.sub.A, the event unit E.sub.U, and the unit time T.sub.U.
(38) In operation S170, the electronic device may store the code of the event unit E.sub.U selected in operation S140. The code may be a result of the encoding completed in operation S160. The event unit E.sub.U is a segmentation of the event object E.sub.A and, like the event object E.sub.A, may include both the temporal information about the time points at which the spike signals are generated and the spatial information of the neurons generating the spike signals. For example, the event unit E.sub.U may have the spatial-temporal information of n×m. As described above, the ‘n’ may represent the number of cells and the ‘m’ may represent the number of unit times T.sub.U assigned per the elapsed time of event unit T_E.sub.U. The electronic device may encode the event unit E.sub.U having the spatial-temporal information of n×m into the code of 1×m. The electronic device may include a memory for storing the code.
(39) In operation S180, the electronic device may determine whether all event units are encoded. When all event units are not encoded (no), the electronic device may repeatedly perform operations S140 to S180. When all event units are encoded (Yes), the electronic device may complete the encoding of the event object E.sub.A and may receive a new event object E.sub.A. The operations S140 to S180 may correspond to encoding the event object E.sub.A and storing the event object E.sub.A by the electronic device.
(40) In an embodiment, an electronic device 100 may be implemented in a hardware manner. The electronic device 100 may be a computing device, a computer, a processor, an integrated circuit, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a system on chip (SoC), etc., performing operations S110 to S180. According to another embodiment of the inventive concept, the electronic device 100 may include a non-transitory computer readable medium in which program code in which instructions for performing or executing operations S110 to S180 are recorded is stored, and may also include a processor that loads and executes the program code stored on the non-transitory computer readable medium.
(41)
(42) The electronic device 100 may include a sensor 110, a conversion circuit 120, and first to n-th cells 130. The sensor 110 may receive and sense the array of the spike signals from an external object (e.g., a neural network, an object, a person, etc.). The conversion circuit 120 may convert the spike signals sensed by the sensor 110 into the spatial-temporal input signals. For example, the conversion circuit 120 may include one or more analog-to-digital converters (ADCs). The conversion circuit 120 may transmit or provide the spatial-temporal input signals to the first to n-th cells. For example, the conversion circuit 120 may assign the spatial-temporal input signals to the first to n-th cells, respectively.
(43) Unlike the illustration of
(44) The first to n-th cells 130 may be arranged in a line along the first axis. The first to n-th cells 130 may be referred to as a memory cell array. Each of the first to n-th cells may represent relative spatial information or correlated spatial information instead of absolute spatial information. Each of the first to n-th cells 130 may store a spatial-temporal input signal. For example, when the spatial-temporal input signal is stored in each of the first to n-th cells 130, the cell signal stored in each of the first to n-th cells 130 may have any one of the first and second logic values. For example, each of the first to n-th cells 130 may be a memory cell capable of storing a bit. The memory cell may be a static random access memory (SRAM) cells, a dynamic random access memory (DRAM) cell, a NAND flash memory cell, a NOR flash memory cell, a resistive random access memory (RRAM) cell, a ferroelectric random access memory (FRAM) cell, a phase change random Access Memory (PRAM) cell, a Magnetic Random Access Memory (MRAM) cell, etc.
(45) The electronic device 100 may further include a memory cell array 140 that stores the event object E.sub.A received from the external object. The memory cell array 140 may include memory cells arranged along the first to third axes and may have a three-dimensional structure. The memory cells of the memory cell array 140 may be implemented using any one of the various memory cells described above. The size of the memory cell array 140 may be n×m×k. The memory cell array 140 may include two-dimensional memory cell arrays arranged along the third axis. The two-dimensional memory cell arrays may store the event units E.sub.U dividing the event object E.sub.A. The two-dimensional memory cell arrays may be stacked along the third axis. The size of each of the two-dimensional memory cell arrays may be n×m, which is the size of the spatial-temporal information of the event unit E.sub.U.
(46) Each of the two-dimensional memory cell arrays may include memory cells arranged along the first axis and the second axis. Referring to
(47) The first to n-th cells 130 may store the spatial-temporal input signals at the unit time T.sub.U2 of the event unit E.sub.U1 instead of the spatial-temporal input signals at the unit time T.sub.U1 of the event unit E.sub.U1. Next, the memory cells of the memory cell array 140 that is indicated by the spatial addresses C.sub.1 to C.sub.n indicating the location of the array of the first to n-th cells 130, the temporal address indicating the unit time T.sub.U2, and the address indicating the event unit E.sub.U1, may store the cell signals (i.e., logic values) stored in the first to n-th cells 130. The electronic device 100 may divide the event object E.sub.A into event units E.sub.U and unit times T.sub.U. The memory cell array 140 may store the event object E.sub.A. The logic values stored in the memory cell array 140 are not limited to those illustrated in
(48) For example, the memory cell array 140 may be implemented physically or in hardware within the electronic device 100 separately from the first to n-th cells 130. The memory cell array 140 may store the event object E.sub.A. The first to n-th cells 130 may store the spatial-temporal input signals corresponding to one unit time T.sub.U among the spatial-temporal input signals representing one event unit E.sub.U. The first to n-th cells 130 may operate as a buffer memory for the memory cell array 140. As another example, the memory cell array 140 may be a virtual memory representing all of the spatial-temporal input signals that are stored and updated in the first to n-th cells 130.
(49)
(50) The first to n-th cells 130 of the electronic device 100 may receive and store the spatial-temporal input signals indicating the event unit E.sub.U in the time window T.sub.W. The time window T.sub.W may be divided into first to m-th unit times T.sub.U1 to T.sub.Um. Referring to
(51) The electronic device 100 may further include a summation circuit 150 and an encoding circuit 160. The summation circuit 150 may sum first to twentieth cell signals recorded in the first to twentieth cells 130 for each of the first to ten-th unit times T.sub.U1 to T.sub.Um to generate first to ten-th summation signals (refer to operation S150). More specifically, the summation circuit 150 may include an adder for summing the logic values stored in memory cells, which are indicated by the spatial addresses C.sub.1 to C.sub.20 and the temporal address T.sub.U1 in the memory cell array 140. The logic values stored in the memory cells, which are indicated by the spatial addresses C.sub.1 to C.sub.20 and the temporal address T.sub.U1 may be the same as the first to twentieth cell signals recorded in the first to twentieth cells 130. Likewise, the summation circuit 150 may further include another adder for summing the logic values stored in the memory cells, which are indicated by the spatial addresses C.sub.1 to C.sub.20 and the temporal address T.sub.U2 in the memory cell array 140. The summation circuit 150 may include m adders that sum n logic values.
(52) The encoding circuit 160 may include a filter circuit 161 for storing the threshold value S.sub.th and a register circuit 162 for storing the result of encoding. The filter circuit 161 may include a register for storing the threshold value S.sub.th and ‘m’ comparators for comparing the summation signal with the threshold value S.sub.th (refer to operation S160). The register circuit 162 may include ‘m’ registers for receiving and storing ‘m’ comparison results of the filter circuit 161, respectively (refer to operation S170).
(53) Referring to
(54) Referring to
(55) Referring to
(56) Referring to
(57) The electronic device 100 may further include a summation circuit 180 and an encoding circuit 190. The summation circuit 180 may sum the first to ten-th codes for each of the first to ten-th unit times T.sub.U1 to T.sub.U10 to generate the first to ten-th summation signals of the event object E.sub.A. In more detail, the summation circuit 180 may include an adder for summing the logic values stored in memory cells, which are indicated by the event unit addresses E.sub.U1 to E.sub.U10 and the temporal address T.sub.U1 in the memory cell array 170. The summation circuit 180 may include an adder for summing the logic values stored in memory cells, which are indicated by the event unit addresses E.sub.U1 to E.sub.U10 and the temporal address T.sub.U2 in the memory cell array 170. The summation circuit 180 may include ‘m’ adders that sum up ‘k’ logic values. For example, the summation circuit 180 may be implemented separately from the summation circuit 150 of
(58) The encoding circuit 190 may include a filter circuit 191 for storing the threshold value S.sub.th and a register circuit 192 for storing the result of encoding. The filter circuit 191 may include a register for storing the threshold value S.sub.th and ‘m’ comparators for comparing the summation signal with the threshold value S.sub.th. The register circuit 192 may include ‘m’ registers for receiving and storing ‘m’ comparison results of the filter circuit 191, respectively. For example, the encoding circuit 190 may be implemented separately from the encoding circuit 160 of
(59) Referring to
(60) Referring to
(61)
(62)
(63) Referring to
(64)
(65)
(66) As in the cases of
(67)
(68) The electronic device 100 may complete encoding of the event object E.sub.A and then further receive the spatial-temporal input signals indicating a new event object E.sub.A. The electronic device 100 may update and store the code of the event unit E.sub.U1 of the new event object E.sub.A in the memory cells indicated by the event unit address E.sub.U1 among the memory cells of the memory cell array 170. In an embodiment, in
(69) The summation circuit 150 and the encoding circuit 160 of the electronic device 100 may process the spatial-temporal input signals representing the event unit E.sub.U1 of the new event object E.sub.A in the manner described above with reference to
(70) Referring to 9A and 9B, the encoding circuit 160 of the electronic device 100 may compare the code of the event unit E.sub.U1 of the new event object E.sub.A with each of the codes of the event units E.sub.U1 to E.sub.U10 configuring the previous event object E.sub.A in which encoding is completed. Referring to
(71) The encoding circuit 160 may calculate differences (i.e., hamming distances) between the code of the event unit E.sub.U1 of the new event object E.sub.A and the codes of the event units E.sub.U1 to E.sub.U10 configuring the previous event object E.sub.A in which encoding is completed. The electronic device 100 may further include a memory cell array or registers that store the hamming distances, respectively. The electronic device 100 may compare the hamming distances with a radius and select codes of event units having hamming distances equal to or less than (or less than) the radius. The electronic device 100 may further include a memory cell array or registers that store comparison results (the first logic value or the second logic value) between the hamming distances and the radius, respectively.
(72) In
(73) The filter circuit 191 of the encoding circuit 190 may compare the first to ten-th summation signals with the threshold value S.sub.th(S.sub.th=1), respectively, and output a comparison result. The register circuit 192 may store comparison results of the filter circuit 191, respectively. The values in the register circuit 192 of
(74)
(75) Event units E′.sub.U1, E′.sub.U2, E′.sub.U3 stored in a plurality of k×m memory cell arrays generated through the first step encoding process may configure event objects E′.sub.A1, E′.sub.A2, . . . in the second step. A second step encoding process of
(76) The electronic device 100 according to an embodiment of the inventive concept may perform an encoding operation capable of applying both spatial information and temporal information included in the spatial-temporal input signals. The electronic device 100 may have a strong resilience against an error occurring at an input terminal of the neural network or noise induced from the neural network.
(77) The contents described above are specific embodiments for implementing the inventive concept. The inventive concept may include not only the embodiments described above but also embodiments in which a design is simply or easily capable of being changed. In addition, the inventive concept may also include technologies easily changed to be implemented using embodiments. Therefore, the scope of the inventive concept is not limited to the described embodiments but should be defined by the claims and their equivalents.