Abstract:
An interface manages the exchange of information between a bus system and a memory during reading, according to a communication protocol. The interface has a protocol-decoding unit, which receives from outside commands and information for managing the reading and generates a wait-code enabling signal, and a wait-state generating unit, which is connected to the protocol-decoding unit and outputs wait codes upon receipt of the wait-code enabling signal. When the memory ends reading, as signaled by switching of a read-state signal, a wait-state disabling circuit generates and supplies an end-of-waiting control signal to the wait-state generating unit, which thus outputs an end-of-waiting code.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    1. Field of the Invention  
           [0002]    The present invention relates to a device and method for managing wait cycles while reading a nonvolatile memory, in particular a flash memory integrated with a low pin count (LPC) interface for PCBios applications and using one of the serial communication protocols forming part of the family protocols of the LPC type.  
           [0003]    2. Description of the Related Art  
           [0004]    As is known, when reading or writing is to be performed in a memory that uses a communication protocol, an external device or “host,” sends, on the system bus connecting the memory itself to the host device, in a timely sequential way and according to a pre-determined sequence of cycles, codes and information forming, as a whole, the communication protocol itself. The codes, regarding commands to be executed, and the information, regarding the addresses, are decoded in one clock cycle.  
           [0005]    The pattern of the cycles provided in a generic communication protocol of the LPC type may be divided into two fundamental parts: one first step when the external host controls the bus, and a second step when the bus control is handed over to the memory.  
           [0006]    During the first step, the host supplies the codes for a read/write operation in a memory array, as well as the addresses of the byte to be read/written.  
           [0007]    Next, two turn-around (TAR) cycles, TAR — 1 and TAR — 2, are provided, the second of which corresponds to a high-impedance condition.  
           [0008]    In particular, by way of example, FIG. 1 shows the set of the clock cycles with the corresponding codes, for the I/O Cycles communication protocol.  
           [0009]    The protocol of FIG. 1 (starting from instant t0) comprises a START cycle, which enables all the rest of the protocol, a CYCT+DIR cycle, during which it is specified whether a memory-array reading or writing operation is to be performed, eight address cycles (ADDR) and the two TAR cycles (TAR — 1 and TAR — 2). During the latter two cycles, the host hands over control of the bus system to the memory.  
           [0010]    Subsequently, during the second step, it is the memory itself that controls the bus system and generates a series of SYNC or wait cycles, the last of which, designated as SYNC_E, is a ready signal and has a value different from the previous ones, to signal when the data are ready to be supplied outside; then the memory sends out the data read, divided between the first four bits (DL cycle) and the second four bits (DH cycle), thus terminating the protocol.  
           [0011]    The SYNC cycles (including the last one, SYNC_E) define wait states during which the memory must perform all the operations necessary for reading the word addressed and set the requesting host device in a listening state until the results arrive. Normal SYNC cycles (except for the last one, SYNC_E) generally have two different values according to whether a long wait or a short wait is envisaged. According to the type of serial communication protocol used, the number of short wait cycles (SYNC) can have a maximum admissible value, which cannot be exceeded.  
           [0012]    With the protocol described, the total maximum number of short wait cycles (including the last one, SYNC_E) is eight; if the memory outputs a number of short cycles exceeding eight, the host device aborts the reading cycle.  
           [0013]    At present, the overall number of wait cycles SYNC is fixed beforehand (i.e., via hardware), taking into account the size of the memory used (currently, from 2 to 32 Mb), the supply voltage (currently, 1.8 V, 3.3 V or 5 V, which determines different access times), the reading type (for example, in burst mode the time taken by the memory for performing the first reading and the time taken to perform the subsequent readings are very different, resulting in different wait times in the two cases), the technology of memory (which determines performance thereof), and the speed of the clock (currently 33 or 66 MHz).  
           [0014]    For example, with a memory core having an access time of less than 90 ns and a 33-MHz clock, three wait cycles are generally sufficient to synchronize internal reading with the step of supplying the data read outwards.  
           [0015]    This is disadvantageous, in so far as it requires an evaluation, often also on silicon, of the response times of the memory, as well as modification, via hardware, of the communication protocol, to adapt it to the existing conditions.  
         BRIEF SUMMARY OF THE INVENTION  
         [0016]    Aspects of the present invention provide a method for automatic management of the wait cycles. Further aspects provide a standard interface independent of the access time of the used nonvolatile memory and operating at different clock frequencies.  
           [0017]    Additional aspects of the present invention provide an interface for managing information exchange between a system bus and a memory during reading, according to a communication protocol.  
           [0018]    In practice, the interface can be integrated in or connected to nonvolatile memories having different characteristics. This is obtained by synchronizing the end of the wait cycles SYNC with the end of all the internal reading operations of the memory. In this way, whenever the memory has the data ready at output, a final wait cycle is generated, which signals the end of the wait states. A standard architecture is therefore created that is able to carry out the entire protocol, generating from one wait cycle to a maximum number (possibly defined by the particular protocol used) of wait cycles, according to the characteristics of the memory considered.  
           [0019]    Further aspects include an interface for managing exchange of information between a bus system and a memory during reading, according to a communication protocol, the interface. Further aspects include input/output terminals configured to be connected to said system bus. Further aspects include a protocol-decoding unit configured to receive from said input/output terminals commands and information for managing reading and configured to generate a wait-code enabling signal. Further aspects include a wait-state generating unit connected to said protocol-decoding unit and configured to supply wait codes to said first input/output terminals upon reception of said wait-code enabling signal and a wait-state disabling circuit configured to generate an end-of-waiting control signal to be supplied to said wait-state generator upon reception of a read-state signal from said memory, said wait-state generating unit configured to supply an end-of-waiting code to said input/output terminals upon reception of said end-of-waiting signal.  
           [0020]    Other features and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings. 
       
    
    
     BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)  
       [0021]    For a better understanding of the present invention, a preferred embodiment thereof is now described, purely by way of non-limiting example, with reference to the attached drawings, wherein:  
         [0022]    [0022]FIG. 1 illustrates a timing diagram for a known communication protocol used by an embodiment of the present invention;  
         [0023]    [0023]FIG. 2 is a simplified block diagram of a memory device incorporating an interface according to an embodiment of the invention; and  
         [0024]    [0024]FIG. 3 is a timing diagram for control signals correlated to the communication protocol used according to an embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0025]    As illustrated in FIG. 2, an interface  100  is incorporated in a memory device  1  and is set between a portion of memory proper, or “core”—hereinafter designated as memory  3 —and a system bus  2 .  
         [0026]    The interface  100  has four input/output pins, designated as a whole by  101  and connected to the system bus  2 , transferring the signals of the communication protocol, and two inputs  102 ,  103 , which receive from outside respectively a clock signal CK and an enabling signal EN.  
         [0027]    The interface  100  comprises a standard part  4 , for managing the communication-protocol signals, the exchanged addresses and the data, and a wait-length control part  15 , which will be described later. The standard part  4  comprises a state machine  5 , a protocol-code decoder  6 , a reset generator  7 , a wait-state generator  8 , an address-latch block  10 , and a data-latch block  12 , all of which are built in a known way and are not described in detail. The wait-length control part  15  comprises a end-of-reading detector  16 , an end-of-reading memory  17 , and an end-of-waiting request generator  18 .  
         [0028]    In detail, the state machine  5  has a first input  5   a  connected to the input  102  of the interface  100 , a second input  5   b  connected to the input  103  of the interface  100 , a first output  5   c  supplying a first state signal ST(X), a second output  5   d  supplying a second state signal ST(X+1), a third output  5   e  supplying a third state signal ST(X+2), and a fourth output  5   f  supplying a fourth state signal ST(X+3).  
         [0029]    The first state signal ST(X) is supplied to the protocol-code decoder  6 , which also receives a reset signal RES generated by the reset generator  7  and the communication-protocol signals, via a first internal bus  9  connected to the input/output pins  101 . The protocol-code decoder  6  has a first output  6   a  supplying a start-of-reading signal S_R and a second output  6   b  supplying a wait-enable signal EN_S, both supplied to the wait-state generator  8 .  
         [0030]    The wait-state generator  8  moreover receives the third state signal ST(X+2), the reset signal RES, and a wait-disable signal DIS_S; the wait-state generator  8  moreover has outputs  8   a  connected to the first internal bus  9  to supply the wait cycles SYNC, as described in greater detail in what follows.  
         [0031]    The address-latch block  10  has inputs  10   a  connected to the first internal bus  9 , from which it receives, among other things, the addresses of the locations to be read in the cycles ADDR, an input  10   b  on which it receives the reset signal RES, and outputs  10   c  on which the addresses themselves are supplied. A switch  11  is set between the outputs  10   c  of the address-latch block  10  and a second internal bus  13  of the memory device  1 , and is controlled via the second state signal ST(X+1).  
         [0032]    The data-latch block  12  has first inputs  12   a  connected to the second internal bus  13 , a second input  12   b  receiving the fourth state signal ST(X+3), a third input  12   c  receiving the reset signal RES, and outputs  12   d  connected to the input/output pins  101 .  
         [0033]    The end-of-reading detector  16 , formed, for example, by a logic circuit (including a NOR gate with a delayed and negated input) not shown in detail, has a first input  16   a  receiving the wait-enable signal EN_S, a second input  16   b  receiving the read signal R generated by the memory  3 , a third input  16   c  receiving the reset signal RES, and an output  16   d  supplying an end-of-reading signal ER to the end-of-reading memory  17 .  
         [0034]    The end-of-reading memory  17 , for example formed by a latch SR, has a setting input receiving the end-of-reading signal ER, a reset input receiving the reset signal RES, and an output supplying the end-of-waiting request signal EWR.  
         [0035]    The end-of-waiting request generator  18 , formed for example by a master/slave flip-flop, has a signal input  18   a  receiving the end-of-waiting request signal EWR, a timing input  18   b  receiving the clock signal CK, a reset input  18   c  receiving the reset signal RES, and an output  18   d  supplying the wait-disable signal DIS_S to the wait-state generator  8 .  
         [0036]    The memory  3 , for example of the flash type, comprises essentially a memory array  20 , a sensing state  21 , an output stage  22 , a timing stage  23 , and an address-transition sensing stage  24 .  
         [0037]    In detail, the memory array  20  has inputs connected to the second internal bus  13  and receiving the addresses of the bits to be read, and outputs  20   b  connected to the sensing stage  21 . The sensing stage  21  comprises a plurality of sense amplifiers (not shown), which, when enabled by the read signal R, supply the data read to the output stage  22 . The output stage  22  then supplies the data OUT on the second internal bus  13 .  
         [0038]    The address-transition sensing stage  24  is connected to the second internal bus  13  and, upon detection of the address data ADDR, generates an address-transition signal ATD supplied to the timing stage  23 , which in turn generates the read signal R in a known way.  
         [0039]    The interface  100  operates as is described hereinafter (see also the timing diagram of FIG. 3).  
         [0040]    Upon receiving the enabling signal EN, the reset generator  7  resets the various blocks connected to it through the reset signal RES and turns on the state machine  5 , which starts receiving the clock signal CK.  
         [0041]    As soon as the x-th state is reached, the state machine  5  generates the first state signal ST(X), which activates decoding of the signals of the communication protocol supplied by the system bus  2  on the input/output pins  101 .  
         [0042]    When the protocol-code decoder  6  recognizes, in the cycle CYCT+DIR (in the I/O Cycles protocol described previously by way of example) a read command, it causes the start-of-reading signal S_R to switch to the high state which is stored inside the wait-state generator  8 .  
         [0043]    Next, as soon as the communication protocol supplies on the system bus  2  the addresses of the data to be read in the cycles ADDR, four bits at a time, the addresses are stored in the address-latch block  10 . Then, in the (x+1)-th state, the state machine  5  closes the switch via the second state signal ST(X+1), and the addresses are supplied to the address-change detector  24  (which generates the address-transition signal ATD, of a pulsed type) and to the memory array  20 .  
         [0044]    Upon receiving the pulsed signal ATD, the timing stage  23  causes the read signal R to switch to the high state, thus enabling the sensing stage  21  for reading (instant t1).  
         [0045]    Upon recognizing the cycle TAR — 2, the protocol-code decoder  6  causes the wait-enable signal EN_S to switch; in addition, at the immediately subsequent positive switching edge (corresponding to the (x+2)-th state—instant t2), the state machine  5  enables generation of the wait cycles, supplying the third state signal ST(X+2) to the wait-state generator  8  (instant t3). The latter then starts supplying the SYNC cycles towards the input/output pins  101 .  
         [0046]    The wait-enable signal EN_S is moreover supplied to the end-of-reading detector  16 , which thus sets itself in a condition of observation of the read signal R.  
         [0047]    As soon as the end-of-reading detector  16  detects the negative edge of the read signal R (instant t4), it generates the end-of-reading signal ER (of a pulsed type), which is stored in the end-of-reading memory  17 , and causes switching of the end-of-waiting-request signal EWR to a pre-set logic state. Next, as soon as the end-of-waiting control generator  18  detects a rising edge of the clock signal CK, it causes switching of the wait-disable signal DIS_S (instant t5) supplied to the wait-state generator  8 , which then generates the last wait cycle SYNC_E which determines end of reading. In practice, on the rising edge of the clock signal CK following upon the falling edge of the read signal R, the wait-disable signal DIS_S is generated, and then the last wait cycle SYNC_E is sent.  
         [0048]    Finally, in a per se known manner, the state machine  5 , via the fourth state signal ST(X+3) controls transfer of the output data OUT (in two successive cycles DL and DH) to the input/output pins  101 .  
         [0049]    The interface described presents the following advantages.  
         [0050]    First, it makes it possible to automatically adapt the protocol to memories, in particular of the flash type, of different sizes, enabling generation of the SYNC cycles from a minimum of one cycle to a maximum established by the specifications of the protocol used. In this way, the interface may be immediately applied to all the devices currently produced, without requiring any operations of adaptation or adjustment. In addition, this architecture enables matching of the interface even in the event of possible process drifts being present, without creating any malfunctioning within the application.  
         [0051]    Finally, it is clear that modifications and variations may be made to the interface and method described herein, without thereby departing from the scope of the present invention. In particular, the method described may be applied also to an interface not integrated with the memory  3 , provided that it implements a reading protocol having wait cycles of the type described.  
         [0052]    From the foregoing it will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the invention. Accordingly, the invention is not limited except as by the appended claims.