Abstract:
A data receiving method for an electronic system including a host apparatus and a target apparatus, wherein the host apparatus transmits at least one request to the target apparatus for requesting at least one desired data, and the target apparatus transmits the desired data to the host apparatus according to the request. The data receiving method comprises: (a) generating a statistic value according to a number of the requests; (b) varying the statistic value according to a number of the desired data; and (c) determining whether data received by the host apparatus is the desired data corresponding to the request or not according to the static value, to thereby determine whether the data received by the host apparatus is stored to the host apparatus or not.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates to a data receiving method, the electronic apparatus and the storage system utilizing the data receiving mechanism, and particularly relates to a data receiving method that can determine which data is necessary data, the electronic apparatus and storage system having data receiving mechanism. 
         [0003]    2. Description of the Prior Art 
         [0004]      FIG. 1  is a block diagram illustrating a prior art electronic apparatus  100  with data receiving mechanism. Normally, the electronic apparatus  100  includes a host apparatus  101  and a target apparatus  103 . For example, a storage system (electronic apparatus  100 ) includes a memory controller (host apparatus  101 ) and a storage apparatus such as a SRAM or a DRAM (target apparatus  103 ). As shown in  FIG. 1 , the host apparatus  101  transmits a request to request a reading of data, and the target apparatus  103  replies a request receiving confirming information cack to the host apparatus  101 . Then the host apparatus  101  transmits an address of the necessary data to the target apparatus  103 . After that, the target apparatus  103  transmits data to the host apparatus  101 , and the target apparatus  103  transmits a data transmitting notifying information dack to the host apparatus  101  simultaneously with transmitting data. 
         [0005]    In order to acquire necessary data, the host apparatus  101  is always designed to continuously send requests to the target apparatus  103 . However, the number of the registers in the host apparatus  101  is limited. Take the block diagram shown in  FIG. 1  for example, only two registers  105  and  107  exist (i.e. only two data can be registered), thus not all data transmitted from the target apparatus  103  can be registered. Besides, the target apparatus  103  have different time intervals for transmitting data back to the host apparatus  101  in order to response different requests. Therefore, it is difficult for the host apparatus  101  to determine which request does the data being transmitted back corresponds. In other words, not all data, which corresponds to different requests, are necessary data. In this case, it is difficult for the host apparatus  101  to determine if the received data is necessary data or not, thus data receiving error may be caused accordingly. 
       SUMMARY OF THE INVENTION 
       [0006]    Accordingly, one objective of the present invention is to provide a data receiving method and an electronic apparatus and a storage system utilizing the data receiving method, such that the desired data can be correctly determined and stored. 
         [0007]    One embodiment of the present invention discloses a data receiving method for an electronic system including a host apparatus and a target apparatus, wherein the host apparatus transmits at least one request to the target apparatus for requesting at least one desired data, and the target apparatus transmits the desired data to the host apparatus according to the request. The data receiving method comprises: (a) generating a statistic value according to a number of the requests; (b) varying the statistic value according to a number of the desired data; and (c) determining whether data received by the host apparatus is the desired data corresponding to the request or not according to the static value, to thereby determine whether the data received by the host apparatus is stored to the host apparatus or not. 
         [0008]    Another embodiment of the present invention discloses an electronic apparatus with data receiving mechanism, comprising: a host apparatus; and a target apparatus, wherein the host apparatus transmits at least one request to the target apparatus for requesting at least one desired data, and the target apparatus transmits the desired data to the host apparatus according to the request; wherein the host apparatus generates a statistic value according to a number of the requests, varies the statistic value according to a number of the desired data, and determines whether data received by the host apparatus is data corresponding to the request or not, according to the static value, to thereby determine whether the data received by the host apparatus is stored to the host apparatus or not. 
         [0009]    Still another embodiment of the present invention discloses a storage system, comprising: a storage apparatus controller; and a storage apparatus, wherein the storage apparatus controller transmits at least one request to the target apparatus for requesting at least one desired data, and the storage apparatus transmits the desired data to the host apparatus according to the request; wherein the storage apparatus controller generates a statistic value according to a number of the requests; varies the statistic value according to a number of the desired data; and determines whether data received by the storage apparatus is data corresponding to the request or not, according to the static value, to determine whether the data received by the storage apparatus is stored to the storage apparatus or not. 
         [0010]    According to above-mentioned embodiment, it can be correctly determined that which data is desired data and controls the host apparatus to receive the desired data, without extra mechanism for synchronizing the information transmission between the host apparatus and the target apparatus. 
         [0011]    These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]      FIG. 1  is a block diagram illustrating a prior art electronic apparatus  100  with data receiving mechanism. 
           [0013]      FIG. 2  is a block diagram illustrating an electronic apparatus utilizing a data receiving method according to an embodiment of the present invention. 
           [0014]      FIGS. 3 and 4  are schematic diagrams illustrating a data receiving method according to an embodiment of the present application. 
           [0015]      FIG. 5  is a flow chart illustrating a data receiving method according to an embodiment of the present application. 
       
    
    
     DETAILED DESCRIPTION 
       [0016]    Certain terms are used throughout the description and following claims to refer to particular components. As one skilled in the art will appreciate, electronic equipment manufacturers may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following description and in the claims, the terms “include” and “comprise” are used in an open-ended fashion, and thus should be interpreted to mean “include, but not limited to . . . ”. Also, the term “couple” is intended to mean either an indirect or direct electrical connection. Accordingly, if one device is coupled to another device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections. 
         [0017]      FIG. 2  is a block diagram illustrating an electronic apparatus utilizing a data receiving method according to an embodiment of the present invention. Comparing the electronic apparatus  200  shown in  FIG. 2  with the electronic apparatus  100  shown in  FIG. 1 , the electronic apparatus  200  also includes a host apparatus  201  and a target apparatus  203 . One difference between the electronic apparatuses  100  and  200  is that the host apparatus  201  further includes a counter  205 , and a number of the registers  207  . . .  211  is not limited to 2. Also, each of the registers  207  . . .  211  can respectively register a data. 
         [0018]      FIGS. 3 and 4  are schematic diagrams illustrating a data receiving method according to an embodiment of the present application. Please note that the apparatus shown in  FIG. 2  is utilized to explain the operations shown in  FIGS. 3 and 4  in this case, but it does not mean that only the apparatus shown in  FIG. 2  can be utilized for the present invention.  FIG. 3  is a schematic diagram illustrating that the host apparatus includes only one register. As shown in  FIG. 3 , the bar graph can indicate a count number value and a transmitting value. For more detail, a number of the units (square) of the bar graph indicates a counter value (all the units with oblique lines or without oblique lines), and a number of the units without oblique lines indicate a transmitting value. The counter value is counted up 1, when the host apparatus  201  receives the request receiving confirming information cack (i.e. a request is generated). After that, the host apparatus  201  fetches the counter value as the transmitting value for the register (i.e. the first in first out layer, FIFO layer) on a suitable timing, when the transmitting value for the register is 0 (the initial value is 0 in this case). The detail operation thereof will be described below. The counter value and the transmitting value simultaneously decrease for 1, when the data transmitting notifying information dack is received (i.e. the data is received). The host apparatus  201  determines that the received data is the desired data and buffers the received data to the register for following accessing. 
         [0019]    For more detail, the units without oblique lines indicate that the host apparatus  201  receives the request receiving confirming information cack for desired data, and the units with oblique lines indicate that the host apparatus  201  receives the request receiving confirming information cack for non desired data. For example, the desired data are data a, c, e in this case and the data b, 1, 2, d, 3, 4 are non desired data (or called redundant data). Therefore, the counter value increases for 1, and a unit without oblique lines is added to the bar graph, when the request receiving confirming information cack of a is received. The host apparatus  201  determines the data is the data should be received while receiving it, since no other request receiving confirming information cack is received before the request receiving confirming information cack of the data a. That is, the data a is the desired data. Also, the counter value increases for 1, and a unit with oblique lines is added to the bar graph, when the request receiving confirming information cack of b is received. The host apparatus  201  determines that the data b is non desired data while receiving the request receiving confirming information cack of the data b, since the host apparatus  201  receives the request receiving confirming information cack of the data a before which of the data b and the host apparatus  201  includes only one register but no other buffers for waiting (registering) the data besides data a. 
         [0020]    As above-mentioned description, the counter value is fetched as the transmitting value and stored, when the transmitting value of the register is 0. Accordingly, initially the counter value 1 is fetched as the transmitting value in this case. Also, the counter value and the transmitting value both decrease for 1, and one unit of the bar graph is removed, while receiving the data transmitting notifying information dack. Simultaneously, the transmitting value becomes to 0, the master apparatus  201  determines the data a to be desired data, thus stores the data a to the register for the host apparatus  201  to access. 
         [0021]    Next, since the transmitting value becomes to 0, thus the counter value 4 is fetched in the next period, as the transmitting and stored to the register. Besides, the transmitting value becomes to 0 indicates that the register successfully registers a desired data, therefore the host apparatus  201  can acquire data from the data, and the register can register other data subsequently. Consequently, the host apparatus  201  receives the request receiving confirming information cack of the data c and determines data c to be desired data when the transmitting value becomes to 0. After that, request receiving confirming information cack and data transmitting notifying information dack of data d,3,4 are received (similarly, data d, 3, 4 are determined to be non desired data at present), and above-mentioned operations are repeated. The transmitting value becomes 0 again while receiving the data transmitting notifying information dack of data. Thus, the host apparatus  201  recognizes that data c is desired data and stores data c to the register. Following the same rule, desired data c can be correctly stored to the register. The reason for why this embodiment can correctly determine which one is correct data is explained as follows. Via record of the transmitting value, it can be pre known that the data a, c, e are desired data, and one request receiving confirming information cack (the cack of data a) is received before receiving data a. Therefore it is speculated that data a is received when one data transmitting notifying information dack is received. After that, four request receiving confirming information cack (the cack of data b, 1, 2 and c) are received. Therefore it is speculated that data c is received when four data transmitting notifying information dack are received (reset to 0 after desired data a is received. Following this rule, it can be correctly determined that which one is desired data. 
         [0022]      FIG. 4  is a schematic diagram illustrating that a host apparatus includes two registers. Comparing the embodiments shown in  FIG. 3  and  FIG. 4 , both of them follow the same rules, but one difference there between is that the embodiment shown in  FIG. 4  has two registers. Besides, in the embodiment shown in  FIG. 4 , the desired data are a, b, c, d, e, and the non desired data are 1, 2, 3, and 4. As above-mentioned, the bar graph can indicate counter values and transmitting values. The counter value counts up 1 when the host apparatus receives the request receiving confirming information cack. The counter value is fetched as the transmitting value, when the transmitting value for the register (i.e. a FIFO layer, first in first out device) is 0 (the initial value is 0 in this case). Also, the counter value and the transmitting value simultaneously decrease for 1, when the data transmitting notifying information dack (i.e. data is received) is received. The received data is determined to be desired data and buffered to the register when the transmitting value decreases to 0. 
         [0023]    Accordingly, the first register first fetches 1 in the embodiment shown in  FIG. 4 , and the second register fetches the counter value 2 after a period. Since the host apparatus  201  has two registers in this embodiment, the host apparatus  201  determines that data a, b are data that should be received (i.e. desired data) when the host apparatus  201  receives two request receiving confirming information cack (cack of data a, b) from the target apparatus  203 . The transmitting value for the first register is 0 when the data transmitting notifying information dack of data a is received, thus data a is determined to the desired data for the first register. Then, the transmitting value for the first register is 0 when the data transmitting notifying information dack of data b is received, thus data b is determined to the desired data for the second register. 
         [0024]    It should be noted that, if the register fetches the counter value as the transmitting value at the moment of data transmitting notifying information dack, the counter value for the register is not updated. In the embodiment shown in  FIG. 4 , the transmitting value for the second register is 0 when the host apparatus receives data b. However, at the next timing, the host apparatus  201  encounters the data transmitting notifying information dack with data 1, thus the transmitting value of the second register is not updated and maintains 0. Similarly, the transmitting value for the second register is not updated when receives the data transmitting notifying information dack of data d, 3, 4. Via above mentioned description, the concept of the present invention can be utilized to correctly determine desired data for any number of register (i.e. any number of FIFO layers). 
         [0025]    The above-mentioned embodiment can be summarized as the data receiving method shown in  FIG. 5 . The flow chart in  FIG. 5  includes: 
         [0026]    Step  501   
         [0027]    Generate a statistic value according to a number of the requests (ex. counter value). For above-mentioned embodiments, the request here indicates the request that the host apparatus transmits to the target apparatus for requesting data. In the embodiments shown in  FIGS. 3 and 4 , the statistic value is generated via compiling the a number of request receiving confirming information cack. Therefore, the step  501  can also be expressed as: generating a statistic value according to a number of the requests, since the number of request receiving confirming information cack substantially equals to a number of the requests. 
         [0028]    Step  503   
         [0029]    Vary the statistic value according to a number of desired data. In the embodiments shown in  FIGS. 3 and 4 , the statistic value is varied via compiling a number of data transmitting notifying information dack and varying the counter value according to data transmitting notifying information dack. Therefore, the step  503  can also be expressed as: varying the statistic value according to a number of desired data, since the number of data transmitting notifying information dack substantially equals to a number of desired data. 
         [0030]    Step  505   
         [0031]    Determine if data received by the host apparatus is the desired data corresponding to the request or not, according to the static value, to determine if the data received by the host apparatus is stored to the host apparatus or not. In above mentioned embodiment, the transmitting value can be regarded as one of statistic values, since the transmitting value is fetched from the statistic value. What does the step  505  indicates is the operation that continuously vary the transmitting value according to data transmitting notifying information dack, and determine the data as desired and store which when the transmitting value is varied to be 0, in the above-mentioned embodiment. 
         [0032]    Other detail steps can be easily acquired according to above-mentioned embodiments, thus it is omitted for brevity here. 
         [0033]    According to above-mentioned embodiment, it can be correctly determined that which data is desired data and controls the host apparatus to receive the desired data, without extra mechanism for synchronizing the information transmission between the host apparatus and the target apparatus. 
         [0034]    Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention.