Abstract:
A controller and a memory-access method for use in the controller are provided. The controller includes a sensor-processing system, and the sensor-processing system includes a memory, and a buffer, wherein the controller is coupled to an external memory and a sensor. The method includes the steps of: gathering the sensor data from the sensor and writing the gathered sensor data into the memory; writing information associated with the sensor data into the buffer; determining whether a fill level of the buffer has reached a predetermined threshold; and retrieving the sensor data from the memory and writing the retrieved sensor data to the external memory according to the information associated with the stored sensor data in the buffer when it is determined that the fill level has reached the predetermined threshold.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application claims the benefit of U.S. Provisional Application No. 62/050,838, filed on Sep. 16, 2014, the entirety of which is incorporated by reference herein. 
    
    
     BACKGROUND OF THE INVENTION 
     Field of the Invention 
     The invention relates to a memory-access method and associated controller, and, in particular, to a memory-access method capable of accessing a memory using a batch command queue to reduce power consumption and associated controller. 
     Description of the Related Art 
     With advances in technology, mobile devices have become more and more popular. Various sensors are built into the mobile device to detect information about the mobile device, such as speed, acceleration, orientation, temperature, proximity level, or ambient light. The sensor data from the sensors are usually buffered in a high-speed low-power local memory (e.g. SRAM) of the sensor-processing system in a conventional mobile device. Because of the limited size of the local memory, the sensor-processing system may utilize the system memory (e.g. DRAM) to store the sensor data due to its large size and low cost. However, the system memory should always be turned on due to frequent accessing of data in the system memory to store the sensor data, resulting in higher power consumption by the conventional mobile device. 
     Accordingly, there is a demand for a controller and associated memory-access method to solve the aforementioned issue. 
     BRIEF SUMMARY OF THE INVENTION 
     A detailed description is given in the following embodiments with reference to the accompanying drawings. 
     A controller is provided. The controller comprises: a sensor-processing system, comprising: a memory; a buffer; and a processor, configured to gather the sensor data from at least one sensor, store the sensor data into the memory, and write information associated with the stored sensor data in the buffer; and a control unit, configured to determine whether a fill level of the buffer has reached a predetermined threshold, wherein when the control unit determines that the fill level has reached the predetermined threshold, the controller retrieves the sensor data from the memory and writes the retrieved sensor data to an external memory according to the information associated with the stored sensor data in the buffer. 
     A memory-access method for use in a controller is provided. The controller comprises a sensor-processing system, and the sensor-processing system comprises a memory, and a buffer, wherein the controller is coupled to an external memory and a sensor. The method includes the steps of: gathering the sensor data from the sensor and writing the gathered sensor data into the memory; writing information associated with the sensor data into the buffer; determining whether a fill level of the buffer has reached a predetermined threshold; and retrieving the sensor data from the memory and writing the retrieved sensor data to the external memory according to the information associated with the stored sensor data in the buffer when it is determined that the fill level has reached the predetermined threshold. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The invention can be more fully understood by reading the subsequent detailed description and examples with references made to the accompanying drawings, wherein: 
         FIG. 1  is a block diagram of a controller in accordance with an embodiment of the invention; 
         FIG. 2A  is a diagram illustrating the driving current of the controller without the batch command queue in accordance with an embodiment of the invention; 
         FIG. 2B  is a diagram illustrating the driving current of the controller using the batch command queue in accordance with an embodiment of the invention; and 
         FIG. 3  is a flow chart of the memory-access method in accordance with an embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims. 
       FIG. 1  is a block diagram of a controller in accordance with an embodiment of the invention. The controller  100  comprises a control unit  110 , a memory controller  121 , a sensor-processing system  130 , and an infrastructure  140 . The control unit  110  is configured to control the power status of an external memory  122  and the infrastructure  140 , where the external memory  122  is a system memory external to the controller  100 , and may be a dynamic random access memory, but the invention is not limited thereto. The control unit  110 , for example, may be a central processing unit (CPU), a digital signal processor (DSP), a general-purpose processor, a microcontroller, an application-specific integrated circuit (ASIC), and the like. In addition, the control unit  110  is further configured to detect whether to write the sensor data from the sensor-processing system  130  to the external memory  122 , and the details will be described later. In an embodiment, the control unit  110 , the sensor-processing system  130 , and the infrastructure  140  can be integrated into a system-on-chip (SoC). 
     The memory controller  121  is configured to control data-access to the external memory  122 . The infrastructure  140  is an intermediary communicating between the external memory  122  and the sensor-processing system  130 . In some embodiments, the infrastructure  140  can be implemented by a system bus. 
     The sensor-processing system  130  comprises a processor  131 , a buffer  132 , and, a memory  133 . In an embodiment, The processor  131  gathers the sensor data from a plurality of sensor  134  and stores the gathered sensor data in the memory  133  such as a static random access memory (SRAM) or a tightly-coupled memory (TCM), where the sensors  134  are external to the controller  100 , and are configured to detect different conditions in the environment, such as speed, acceleration, orientation, temperature, proximity level, and/or ambient light of the controller  100 , but the invention is not limited thereto. Thus, the processor  131  may access the sensor data in the memory  133  at high speed and low power consumption. For example, the processor  131  can be implemented by a processor or a microcontroller. 
     In addition, the processor  131  further records the information associated with the stored sensor data in the buffer  132 . For example, the information associated with each piece of the stored sensor data may be a tag (e.g. a write/read flag), the read memory address for each written data in the memory  133 , the write address where the stored sensor data is to be written into the external memory  122 , and the size of each piece of stored sensor data. In addition, the buffer  132  also records the write pointer, read pointer, and the total size of the stored sensor data, and the processor  131  also stores a batch command queue  135 , which buffers incoming data-access requests or commands of the external memory  122 , into the buffer  132 , as shown in  FIG. 1 . 
     In an embodiment, the control unit  110  comprises a power-management unit  111  and a memory accessing unit  112 . The power-management unit  111  is configured to control power status of the external memory  122  through the infrastructure  140 . The memory accessing unit  112  is configured to monitor the status (e.g. the fill level) of the batch command queue  135  in the buffer  132 , and control data-access of the sensor data stored in the memory  133   
     In an embodiment, since the size of the buffer (local memory)  132  may be not sufficient to buffer the gathered sensor data for some applications, the processor  131  is further capable of accessing the data stored in the external memory  122  through the infrastructure  140 . However, the operation of the external memory  122  by the processor  131  consumes much power. The power-management unit  111  may turn off the power to the external memory  122  through the infrastructure  140  when the memory accessing unit  112  determines that the fill level of the batch command queue  135  in the buffer  132  has not reached the predetermined threshold, thereby reducing power consumption of the controller  100 . In an embodiment, the power management unit  111  turns off the power to the external memory  122  directly through the infrastructure  140 . Alternatively, the power management unit  111  turns off the power to the external memory  122  through the infrastructure  140  and the memory controller  121 . 
     Specifically, when the spare space of the memory  133  is sufficient for storing the gathered sensor data or data, the memory accessing unit  112  may buffer the data-access requests of the gathered sensor data as a batch command queue  135  in the buffer  132 , and it is indicative of that the power to the external memory  122  can be turned off temporarily to reduce power consumption. In order to improve efficiency, the memory accessing unit  112  may also buffer the sensor data to a predetermined level, and then write the buffered sensor data to the external memory  122  in the batch command queue  135  through the infrastructure  140 . It should be noted that the predetermined threshold is programmable. 
     When the memory accessing unit  112  determines that the fill level of the batch command queue  135  in the buffer  132  has reached the predetermined threshold, the memory accessing unit  112  firstly informs the power-management unit  111  to turn on the power to the external memory  122  through the infrastructure  140 , and retrieves the sensor data from the memory  133  and associated information from the buffer  132 . The memory-accessing unit  112  then transmits the retrieved sensor data to the external memory  122  through the infrastructure  140 , so that the memory controller  121  is capable of writing the retrieved sensor data into the external memory  122  based on the associated information (e.g. destination memory address). 
     It should be noted that the requests in the command queue are not limited to write requests or read requests only. Similarly, the memory accessing unit  112  is also capable of reading data from the external memory  122  through the infrastructure  140 . The memory accessing unit  112  may analyze the requests in the command queue and then determine whether to read data from the memory  133  or the external memory  122 . Specifically, the information associated with each piece of stored sensor data in the buffer  132  records the write/read memory address in the memory  133  and the write/read memory address in the external memory  122 . The memory accessing unit  112  may retrieve data from the memory  133  or the external memory  122  based on the recorded address information in the buffer  132 , and then transmit the retrieved data to the associated address of the memory  133  or the external memory  122 . 
       FIG. 2A  is a diagram illustrating the driving current of the integrated circuit without the batch command queue in accordance with an embodiment of the invention.  FIG. 2B  is a diagram illustrating the driving current of the integrated circuit using the batch command queue in accordance with an embodiment of the invention. In an embodiment, the memory accessing unit  112  is also capable of performing each data-access request to the external memory  122  without using a batch command queue. In this situation, the power to the memory module  120  should be always turned on. As shown in  FIG. 2A , each arrow (e.g.  211 A- 217 A) indicates a data-access request and each associated peak (e.g. peaks  221 A- 227 A) indicates the active driving current of the memory  133  plus that of the external memory  122 . Accordingly, the total driving current of the controller  100  is almost maintained at a certain level (e.g. the active driving current of the external memory  122 ), resulting in higher power consumption. 
     When the batch command queue  135  is applied, the power to the external memory  122  is only turned on upon need. As shown in  FIG. 2B , each arrow (e.g.  211 B˜ 217 B) indicates an individual data-access request and each associated peak (e.g. peaks  221 B˜ 227 B) indicate the active driving current of the memory  133 . Accordingly, the total driving current of the controller  100  can be maintained at a very low level when gathered sensor data and associated data-access requests are buffered. When the external memory  122  is turned on to process the batch command queue, the driving current of the controller  100  reaches a higher level for a short time period (e.g. period  230 ). After writing data associated with the batch command queue, the memory accessing unit  112  informs the power-management unit  121  to turn off the power to the external memory  122  (e.g. entering a sleep mode) to reduce power consumption. Accordingly, with the batch memory accessing mechanism provided in the invention, the overall power consumption of the controller can be reduced effectively. 
       FIG. 3  is a flow chart of the memory-access method in accordance with an embodiment of the invention. In step S 310 , it is determined whether the processor  131  writes sensor data from the sensor  134 . If so, the processor  131  writes the data into the buffer  132  (step S 312 ). Otherwise, step S 310  is performed. In step S 314 , the memory accessing unit  112  determines whether the fill level of the buffer  132  has reached a predetermined threshold. If it is determined that the fill level of the buffer  132  has reached the predetermined threshold, step S 316  is performed. If it is determined that the fill level of the buffer  132  has not reached the predetermined threshold, step S 314  is performed. In step S 316 , the memory accessing unit  112  informs the power-management unit  111  to wake up the external memory  122 . In step S 318 , the memory accessing unit  112  retrieves the sensor data from the memory  133  according to the recorded information (e.g. the source/destination memory address) in the buffer  132 , and writes the retrieved sensor data to the external memory  112 . Upon completion of the writing operation, the memory accessing unit  122  informs the power management module  121  to turn off the power to the external memory  122  through the infrastructure  140  (e.g. the external memory  122  enters the sleep mode) (step S 320 ). 
     In view of the above, a controller and associated memory-access method are provided. The controller and the associated memory-access method are capable of writing the data-access requests in a batch command queue in the buffer and storing the sensor data associated with the data-access request in a memory of the sensor-processing system. The external memory (e.g. DRAM) of the controller can be turned off when the fill level of the buffer has not reached the predetermined threshold. In addition, the stored sensor data in the memory can be written into the external memory in a batch when the fill level of the buffer has reached the predetermined threshold. Accordingly, the power consumption of accessing the external memory can be significantly reduced. 
     While the invention has been described by way of example and in terms of the preferred embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. On the contrary, it is intended to cover various modifications and similar arrangements (as would be apparent to those skilled in the art). Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.