This application claims priority to Taiwan Application Serial Number 109104791, filed Feb. 14, 2020, which is herein incorporated by reference.
The present disclosure relates to a method and a system for integrating a processing-in-sensor unit and an in-memory computing unit. More particularly, the present disclosure relates to a method and a system for integrating a processing-in-sensor unit and an in-memory computing unit for image recognition.
There are two keys to image recognition technology applied by the general deep neural networks (DNN): Processing-In-Sensor (PIS) and In-Memory Computing (CIM). PIS are an image-fetching device (such as a digital camera) which performs preliminary preprocessing on the recorded original image data. PIS can realize edge extraction, quantification or calculation of low-layer neural networks. CIM is an operation of “Convolutional layer” or even “Fully Connected Layer” in the DNN. CIM has both memory and accelerator functions. An image recognition system needs to have both features to achieve a complete and efficient image recognition application.
Traditionally, according to the Von Neumann model, if pixel array or in-memory data need to be processed, the data needs to be transferred to a computing unit (such as a processor) for calculation. However, the pixel array and the in-memory data are processed independently and carried out calculations and data transfer between units through various carriers. A large amount of data easily leads to inefficient energy and energy consumption during the transportation process. Currently, there is no system for communicating and integrating the pixel array and the in-memory data.
According to an embodiment of the present disclosure, a method for integrating a processing-in-sensor unit and an in-memory computing unit. The processing-in-sensor unit operated on a first clock frequency, and the in-memory computing unit operated on a second clock frequency. The method for integrating the processing-in-sensor unit and the in-memory computing unit includes a providing step, a converting step, a fetching step, a slicing step and a controlling step. The providing step is performed to drive the processing-in-sensor unit to provide a first command signal and a plurality of initial data and transmit the first command signal and the initial data to a bus unit. The first command signal and each of the initial data are operated on the first clock frequency. The bus unit includes a synchronizing module and a frame difference module. The converting step is performed to drive the synchronizing module to receive the first command signal and the initial data. The first command signal and the initial data are converted into a second command signal and a plurality of input data through the synchronizing module. The second command signal and each of the input data are operated on the second clock frequency. The first clock frequency is different from the second clock frequency, so that the second command signal is transmitted to the in-memory computing unit. The fetching step is performed to drive the frame difference module to receive the input data and fetch a plurality of difference data according to the input data. Each of the difference data has a difference address. The slicing step is performed to drive a bit-slicing module to receive the difference data and slice each of the difference data into a plurality of bit slices. The controlling step is performed to drive an encoding module to receive the difference addresses and encode the difference addresses into a control signal. The in-memory computing unit accesses each of the bit slices according to the control signal.
According to another embodiment of the present disclosure, a system for integrating a processing-in-sensor unit and an in-memory computing unit includes the processing-in-sensor unit, a bus unit and the in-memory computing unit. The processing-in-sensor unit includes a microprocessor and a sensor. The microprocessor is electrically connected to the sensor for generating a first command signal and a plurality of initial data. The bus unit is electrically connected to the processing-in-sensor unit, and the bus unit includes a synchronizing module, a frame difference module, a bit-slicing module and an encoding module. The synchronizing module is electrically connected to the microprocessor and receiving the first command signal and the initial data to generate a second command signal and a plurality of input data. The frame difference module is electrically connected to the synchronizing module. The frame difference module receives the input data to generate a plurality of difference data, and each of the difference data has a difference address. The bit-slicing module is electrically connected to the frame difference module. The bit-slicing module receives the difference data to generate a plurality of bit slices. The encoding module is electrically connected to the frame difference module. The encoding module receives the difference addresses to generate a control signal. The in-memory computing unit is electrically connected to the bus unit. The in-memory computing unit accesses each of the bit slices according to the control signal.
The present disclosure can be more fully understood by reading the following detailed description of the embodiment, with reference made to the accompanying drawings as follows:
The embodiment will be described with the drawings. For clarity, some practical details will be described below. However, it should be noted that the present disclosure should not be limited by the practical details, that is, in some embodiment, the practical details is unnecessary. In addition, for simplifying the drawings, some conventional structures and elements will be simply illustrated, and repeated elements may be represented by the same labels.
It will be understood that when an element (or device) is referred to as be “connected to” another element, it can be directly connected to the other element, or it can be indirectly connected to the other element, that is, intervening elements may be present. In contrast, when an element is referred to as be “directly connected to” another element, there are no intervening elements present. In addition, the terms first, second, third, etc. are used herein to describe various elements or components, these elements or components should not be limited by these terms. Consequently, a first element or component discussed below could be termed a second element or component.
The bus unit 130 is electrically connected to the processing-in-sensor unit 110, and the bus unit 130 includes a synchronizing module 131, a frame difference module 132, a bit-slicing module 133 and an encoding module 134. The synchronizing module 131 is electrically connected to the microprocessor 111 and receiving the first command signal 1111 and the initial data 1121 to generate a second command signal 1311 and a plurality of input data 1312. The frame difference module 132 is electrically connected to the synchronizing module 131. The frame difference module 132 receives the input data 1312 to generate a plurality of difference data 1321, and each of the difference data 1321 has a difference address 1322. The bit-slicing module 133 is electrically connected to the frame difference module 132. The bit-slicing module 133 receives the difference data 1321 to generate a plurality of bit slices 1331. The encoding module 134 is electrically connected to the frame difference module 132. The encoding module 134 receives the difference addresses 1322 to generate a control signal 1341. The in-memory computing unit 120 is electrically connected to the bus unit 130. The in-memory computing unit 120 accesses each of the bit slices 1331 according to the control signal 1341.
Therefore, the system 100 for integrating the processing-in-sensor unit 110 and the in-memory computing unit 120 of the present disclosure can transmit the data output by the processing-in-sensor unit 110 to the in-memory computing unit 120 for calculation through the bus unit 130. It is favorable for reducing energy consumption and time during data transmission.
In
More specifically, the bus unit 130 can further include a memory 135. The memory 135 is electrically connected to the frame difference module 132. The memory 135 stores one of the input data 1312. The frame difference module 132 reads one of the input data 1312 in the memory 135 and compares the one of the input data 1312 with another one of the input data 1312 to fetch out each of the difference data 1321. In detail, the frame difference module 132 sequentially receives each of the input data 1312. One of the input data 1312 is stored in the memory 135, and the next one of the input data 1312 (that is, another one of the input data 1312) is compared with the input data 1312 of the memory 135 to retrieve each difference 1321 (such as “012345678” and “12” in
In
Moreover, the bus unit 130 can further include a transmitting module 136. The transmitting module 136 is electrically connected to the bit-slicing module 133 and the SRAM 122, the transmitting module 136 receives the bit slices 1331 and converts the bit slices 1331 into an output datum 1361, and the output datum 1361 is transmitted to the SRAM 122. In detail, each of the bit slices 1331 has a first bandwidth (for example: 1′b1). The output datum 1361 has a second bandwidth (for example: 16 bits/cycle), and the first bandwidth is different from the second bandwidth. Therefore, the output datum 1361 can satisfy an input bandwidth of the in-memory computing unit 120.
In
Therefore, the method S100 for integrating the processing-in-sensor unit 110 and the in-memory computing unit 120 of the present disclosure can transmit the data output from the processing-in-sensor unit 110 to the in-memory computing unit 120 for calculation by the providing step S110, the converting step S120, the fetching step S130, the slicing step S140 and the controlling step S150.
For example, in
In
Specifically, the difference data 1321 can be 4 bits or 8 bits during one cycle. However, the in-memory computing unit 120 can only store 1 bit when writing or storing the data. Therefore, in the slicing step S140, the bit-slicing module 133 receives the difference data 1321 and slices each of the difference data 1321 into the bit slices 1331.
In
Moreover, the method S100 for integrating the processing-in-sensor unit 110 and the in-memory computing unit 120 can further include an outputting step S160. The outputting step S160 is performed to drive the transmitting module 136 to receive the bit slices 1331 and convert the bit slices 1331 into the output datum 1361, so that the output datum 1361 is transmitted to the in-memory computing unit 120. Each of the bit slices 1331 has the first bandwidth (for example: 1′b1), and the output datum 1361 has the second bandwidth (for example: 16 bits/cycle). Therefore, the output datum 1361 can satisfy the input bandwidth of the in-memory computing unit 120.
In summary, the present disclosure has the following advantages: First, the data output from the processing-in-sensor unit can be transmitted to the in-memory computing unit for calculation. Second, it is favorable for reducing energy consumption and time of the operation. Third, it is favorable for reducing the amount of excess data transmitted so as to improve transmission efficiency.
Although the present disclosure has been described in considerable detail with reference to certain embodiments thereof, other embodiments are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the embodiments contained herein.
It will be apparent to those skilled in the art that various modifications and variations can be made to the structure of the present disclosure without departing from the scope or spirit of the disclosure. In view of the foregoing, it is intended that the present disclosure cover modifications and variations of this disclosure provided they fall within the scope of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
109104791 | Feb 2020 | TW | national |
Number | Name | Date | Kind |
---|---|---|---|
9218061 | Majumder | Dec 2015 | B2 |
20130101275 | Vitsnudel | Apr 2013 | A1 |
20190317548 | Thong | Oct 2019 | A1 |