Abstract:
A command transmission method and apparatus, capable of improving command transmission efficiency by using a queue, when the queue is required during an operation of a command bus in a pipeline bus system includes determining whether a command bus of the pipeline bus system is in a busy state; and transmitting a command from the master to a target slave while selectively using a queue protocol of an arbiter of the pipeline bus system according to a result of the determination.

Description:
CROSS-REFERENCE TO RELATED APPLICATION  
       [0001]     This application claims the benefit of Korean Patent Application No. 2003-78328, filed on Nov. 6, 2003 in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference.  
       BACKGROUND OF THE INVENTION  
       [0002]     1. Field of the Invention  
         [0003]     The present invention relates to a pipeline bus system, and more particularly, a command transmission method and apparatus capable of reducing latency of command transmission.  
         [0004]     2. Description of the Related Art  
         [0005]     A conventional pipeline bus system transmits commands using a queue protocol. That is, in each core module of the pipeline bus system, such as an arbiter, a hub, or a slave, a command queue is generated and a command is transmitted using a corresponding queue protocol.  
         [0006]     A command for a master connected to the pipeline bus system to access a slave also connected to the pipeline bus system is transmitted as illustrated in  FIG. 1 .  
         [0007]      FIG. 1  is a timing diagram of each module in a pipeline bus system in which a queue is generated in each of an arbiter, a hub, and a slave when a command is transmitted from a master to the slave.  
         [0008]     Referring to  FIG. 1 , when the master requests that a command bus have access to the arbiter as shown in  FIG. 1A , the arbiter determines a priority using an arbitration algorithm. When the access of the command bus is granted to the master according to the priority, a signal granting the access of the command bus is transmitted from the arbiter to the master as shown in  FIG. 1B . Accordingly, the master transmits a command to the arbiter as shown in  FIG. 1C .  
         [0009]     The arbiter stores the command transmitted from the master in a command queue. The arbiter requests command transmission to the hub as shown in  FIG. 1D . If a command queue of the hub is not in a full state, the hub transmits a permission signal for the command transmission to the arbiter as shown in  FIG. 1E . The arbiter then transmits the command stored in the command queue to the hub as shown in  FIG. 1F .  
         [0010]     The hub stores the command transmitted from the arbiter in the command queue and requests command transmission to the slave as shown in  FIG. 1G . If a command queue of the slave is not in the full state, the slave transmits a permission signal for the command transmission to the hub as shown in  FIG. 1H . The hub then transmits the command stored in the command queue to the slave as shown in  FIG. 11 .  
         [0011]     As described above, a period of 7 clock pulses is required for command transmission in a conventional pipeline bus system. The 7 clock pulses for one command transmission are divided into 3 clock pulses from the master to the arbiter, 2 clock pulses from the arbiter to the hub, and 2 clock pulses from the hub to the slave.  
         [0012]     The period of 7 clock pulses is required for the command transmission even when the command bus is not in a busy state. That is, even when the command bus is not in the busy state, the command is stored in the queues generated by the arbiter and the hub.  
         [0013]     The queue protocol in the arbiter, the hub, and the slave operates as illustrated in  FIG. 2 . Referring to  FIG. 2 , the queues generated in the arbiter and the hub of the conventional pipeline bus system store and output the command using a first-in first-out (FIFO) method. Therefore, even when the command bus is not in a busy state, the command queues generated in the arbiter and the hub store the command.  
         [0014]     If the master transmits a command requesting one data transmission, a command transmission to data transmission ratio becomes 7:1 not including an initial operation time of the slave. Therefore, since a command transmission has a greater importance than a data transmission in the master having a low data transmission rate, data transmission efficiency is relatively low.  
         [0015]     Also, when a command is transmitted, if the command queue of the slave is not in a full state, since the command is output as soon as the command is stored in the command queues of the arbiter and the hub, it is possible that no command remains stored in the command queues of the arbiter and the hub. This situation can also occur when a plurality of masters attempt to access one slave.  
         [0016]     In the above-described situations, it is useless for commands to be stored in the command queues of the arbiter and the hub. Furthermore, since latency is generated in command transmission due to command queue protocol operation of the arbiter and the hub, transmission efficiency of a command bus decreases.  
       SUMMARY OF THE INVENTION  
       [0017]     According to an aspect of the present invention, there is provided a command transmission method and apparatus capable of reducing latency in command transmission by removing a use of a redundant queue protocol during an operation of a command bus in a pipeline bus system.  
         [0018]     According to an aspect of the present invention, there is also provided a command transmission method and apparatus capable of improving command transmission efficiency by using a queue protocol when the queue is required during operation of a command bus in a pipeline bus system.  
         [0019]     According to an aspect of the present invention, there is provided a command transmission method and apparatus capable of reducing latency in a command transmission by removing a queue protocol operation in a hub during an operation of a command bus in a pipeline bus system.  
         [0020]     According to an aspect of the present invention, there is provided a command transmission method in a pipeline bus system to which at least one master and at least one slave are connected, the method including: determining whether a command bus of the pipeline bus system is in a busy state; and transmitting a command from the master to a target slave while selectively using a queue protocol of an arbiter of the pipeline bus system according to a result of the determination.  
         [0021]     According to another aspect of the present invention, there is provided a command transmission apparatus of a pipeline bus system to which at least one master is connected, the apparatus including: a target slave, which is connected to the pipeline bus system and transmits state information determining whether a command bus of the pipeline bus system is in a busy state; and an arbiter, which transmits a command from the at least one master to the target slave while a queue protocol is selectively used according to the state information.  
         [0022]     Additional aspects and/or advantages of the invention will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the invention. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0023]     These and/or other aspects and advantages of the present invention will become more apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which:  
         [0024]      FIG. 1A  through  FIG. 1I  are timing diagrams illustrating command transmissions in a conventional pipeline bus system;  
         [0025]      FIG. 2  illustrates an operation of a queue protocol in a conventional pipeline bus system;  
         [0026]      FIG. 3  is a block diagram of a pipeline bus system including a command transmission apparatus according to an embodiment of the present invention;  
         [0027]      FIG. 4  is a block diagram of an arbiter illustrated in  FIG. 3 ;  
         [0028]      FIG. 5A  through  FIG. 5F  are timing diagrams of the pipeline bus system illustrated in  FIG. 3 ;  
         [0029]      FIG. 6A  illustrates an operation in a queue protocol according to an embodiment of the present invention when a command bus is not in a busy state;  
         [0030]      FIG. 6B  illustrates an operation in a queue protocol according to an embodiment of the present invention when the command bus is in the busy state;  
         [0031]      FIG. 7A  through  FIG. 7Q  are timing diagrams of modules of the pipeline bus system when a command is transmitted according to an embodiment of the present invention; and  
         [0032]      FIG. 8  is a flowchart illustrating a command transmission method according to an embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS  
       [0033]     Reference will now be made in detail to the embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. The embodiments are described below to explain the present invention by referring to the figures.  
         [0034]      FIG. 3  is a block diagram of a pipeline bus system including a command transmission apparatus according to an embodiment of the present invention. Referring to  FIG. 3 , the pipeline bus system includes first through nth masters  300 _ 1  through  300   —   n , an arbiter  310 , a hub  320 , and first through mth slaves  330 _ 1  through  330   —   m . Dotted lines between modules are protocol operation lines for transmitting a command and solid lines are command transmission lines.  
         [0035]     Each of the first through nth masters  300 _ 1  through  300   —   n  can transmit a command to a target slave included in the first through mth slaves  330 _ 1  through  330   —   m  by requesting a command transmission. The command can include, for example, an address, a burst, a size, and a low active read or write (nRW) command.  
         [0036]     The arbiter  310  arbitrates a command bus for the first through nth masters  300 _ 1  through  300   —   n  using a preset arbitration algorithm. That is, if a plurality of masters request a command transmission, the arbiter  310  determines a priority and grants access of the command bus. If a master requests a command transmission, the arbiter  310  immediately grants the master access to the command bus.  
         [0037]     The arbiter  310  operates a queue protocol according to whether the command bus is in a busy state. That is, if the command bus is not in the busy state, the arbiter  310  sets the queue protocol to a bypass mode and operates the queue protocol, and if the command bus is in the busy state, the arbiter  310  sets the queue protocol to an active mode and operates the queue protocol. Whether the command bus is in the busy state is determined by information transmitted from the hub  320 . If the command bus is not in the busy state, a state of the command bus is defined as an idle state.  
         [0038]     When the queue protocol of the arbiter  310  is set to the bypass mode, the arbiter  310  bypasses the received command to the hub  320 . However, when the queue protocol of the arbiter  310  is set to the active mode, the arbiter  310  stores the received command in a queue and then transmits the stored command to the hub  320 . The active mode is defined as a mode of the arbiter  310  when not in the bypass mode.  
         [0039]     Also, after setting the queue protocol to the active mode, if determined that the command bus is not in the busy state, the command stored in the queue of the arbiter  310  is transmitted to the hub  320 .  
         [0040]      FIG. 4  is a block diagram of the arbiter  310 . Referring to  FIG. 4 , the arbiter  310  includes a queue controller  401 , an arbitration unit  402 , a multiplexer  403 , and a queue  404 .  
         [0041]     The queue controller  401  selectively controls the queue protocol of the arbiter  310  according to a queue output request signal received from the hub  320 . That is, if it is determined by receiving the queue output request signal that the command bus is not in a busy state, the queue controller  401  sets the queue protocol of the arbiter  310  to the bypass mode and operates using the queue protocol. However, if it is determined by receiving the queue output request signal that the command bus is in the busy state, the queue controller  401  sets the queue protocol of the arbiter  310  to the active mode and operates using the queue protocol.  
         [0042]     When the command stored in the queue  404  is output, the queue controller  401  outputs a queue input announcement signal to the hub  320 . Accordingly, the hub  320  recognizes that the command is output from the arbiter  310 , and the queue controller  401  determines whether the command is received based on communication data received from the arbitration unit  402 .  
         [0043]     If a master request signal (MASTER Req) is received from at least one of the first through nth masters  300 _ 1  through  300   —   n , the arbitration unit  402  performs a preset arbitration algorithm, determines a priority, outputs a master grant signal (MASTER Gnt) to the corresponding master according to the priority, and transmits information about the output master grant signal to the queue controller  401 .  
         [0044]     The multiplexer  403  transmits either a current received command or a command output from the queue  404  according to an operation mode of the queue protocol of the arbiter  310 . That is, if the queue protocol of the arbiter  310  is set to the bypass mode, the multiplexer  403  is controlled by the queue controller  401  and selects and outputs the current received command. However, if the queue protocol of the arbiter  310  is set to a mode besides the bypass mode, the multiplexer  403  is controlled by the queue controller  401  and selects and outputs the command output from the queue  404 . The mode besides the bypass mode can include the active mode. The multiplexer  403  can be defined as a command transmitter.  
         [0045]     The queue  404  has a FIFO structure and stores a plurality of commands. If the queue protocol of the arbiter  310  is set to a mode besides the bypass mode by the queue controller  401 , the queue  404  stores a current received command and outputs a command stored using the FIFO method. The output command is transmitted to the multiplexer  403 .  
         [0046]     The hub  320  analyzes slave queue full state information received from the first through mth slaves  330 _ 1  through  330   —   m  and transmits information to the arbiter  310  by which whether the command bus is in the busy state can be determined. That is, if the slave queue full state information shows that a queue of a corresponding slave is in a full state, the hub  320  transmits information to the arbiter  310  by which it can be determined that the command bus of the corresponding slave is in the busy state. However, if the slave queue full state information shows that a queue of a corresponding slave is not in the full state, the hub  320  transmits information to the arbiter  310  by which it can be determined that the command bus of the corresponding slave is not in the busy state. The information by which it can be determined whether the command bus is in the busy state transmitted to the arbiter  310  is the queue output request signal.  
         [0047]     If the queue input announcement signal is received from the arbiter  310 , the hub  320  outputs a command enable signal to a corresponding slave and transmits the command received from the arbiter  310  to the first through mth slaves  330 _ 1  through  330   —   m.    
         [0048]     Accordingly, only a slave that has received the command enable signal of the first through mth slaves  330 _ 1  through  330   —   m  performs a receive operation on the command received from the hub  320 .  
         [0049]      FIG. 5A  through  FIG. 5F  are timing diagrams illustrating operation of the command bus of the pipeline bus system as illustrated in  FIG. 3 .  
         [0050]     That is, if one of the first through nth masters  300 _ 1  through  300   —   n  sends a request for a command transmission to the arbiter  310 , the arbiter  310  performs the preset arbitration algorithm and determines a priority as shown in  FIG. 5A . Since one master sends a request for the command transmission, the arbiter  310  transmits a signal granting access to the command bus to the master as shown in  FIG. 5B .  
         [0051]     Accordingly, a command is transmitted from the master to the arbiter  310  as shown in  FIG. 5C . If the arbiter  310  determines from a received signal, as shown in  FIG. 5D , that the command bus is not in a busy state, a command enable signal is transmitted to a corresponding slave, as shown in  FIG. 5E , and the command transmitted from the master is transmitted to the corresponding slave as shown in  FIG. 5F .  
         [0052]      FIG. 5A  through  FIG. 5F  illustrate a case where a queue of a target slave is not in a full state when a master transmits a command. In this case, if a pipeline bus system according to an embodiment of the present invention transmits a command, a period of 3 clock pulses is required for transmitting the command as illustrated in  FIG. 5A  through  FIG. 5F .  
         [0053]      FIG. 6A  illustrates an operation in a queue protocol according to an embodiment of the present invention when the command bus is not in a busy state. Referring to  FIG. 6A , a queue of the pipeline bus system according to an aspect of the present invention is generated only in an arbiter and a slave. Also, the queue in the arbiter can bypass a command according to a situation.  
         [0054]      FIG. 6B  illustrates an operation in the queue protocol according to an embodiment of the present invention when the command bus is in the busy state. Referring to  FIG. 6B , if the slave queue is in a full state, the command is stored in the arbiter queue, and when the slave queue is not in the full state, the command stored in the arbiter queue is transmitted to the slave.  
         [0055]      FIGS. 7A through 7Q  are timing diagrams of modules of the pipeline bus system when a command is transmitted according to an embodiment of the present invention.  FIGS. 7A through 7Q  illustrate a case where 5 masters request a command transmission, the arbiter queue can store  4  commands, and the slave queue can store  2  commands.  
         [0056]      FIG. 7A  illustrates a clock signal,  FIG. 7B  illustrates a command transmission request signal of a first master MASTER 0 ,  FIG. 7C  illustrates a command bus access grant signal for the first master MASTER 0 ,  FIG. 7D  illustrates a command transmission request signal of a second master MASTER 1 ,  FIG. 7E  illustrates the command bus access grant signal for the second master MASTER 1 ,  FIG. 7F  illustrates a command transmission request signal of a third master MASTER 2 ,  FIG. 7G  illustrates the command bus access grant signal for the third master MASTER 2 ,  FIG. 7H  illustrates a command transmission request signal of a fourth master MASTER 3 ,  FIG. 71  illustrates the command bus access grant signal for the fourth master MASTER 3 ,  FIG. 7J  illustrates a command transmission request signal of a fifth master MASTER 4 , and  FIG. 7K  illustrates the command bus access grant signal for the fifth master MASTER 4 .  
         [0057]      FIG. 7L  illustrates commands transmitted from the first through fifth masters, MASTER 0 ˜MASTER 4 ,  FIG. 7M  illustrates an example of a command storage structure of an arbiter queue, and  FIG. 7N  illustrates a signal representing a full state of a target slave queue. In  FIG. 7N , a logic high indicates that the target slave queue is not in the full state and a logic low indicates that the target slave queue is in the full state.  
         [0058]      FIG. 7O  illustrates a command enable signal transmitted from a hub to the target slave,  FIG. 7P  illustrates the commands being input to the target slave, and  FIG. 7Q  illustrates an example of a command storage structure of the target slave queue.  
         [0059]     As shown in  FIG. 7M , if determined that the command bus is not in the busy state based on the state of the target slave queue and the command transmission request timings of the masters, the arbiter queue is set to the bypass mode, does not store the commands received from the masters, and bypasses the commands.  
         [0060]      FIG. 8  is a flowchart illustrating a command transmission method according to an embodiment of the present invention.  
         [0061]     In operation  801 , it is determined whether a command bus of a pipeline bus system is in a busy state. The command bus can be set with reference to a target slave. Therefore, whether the command bus is in the busy state can be determined referring to a state of the target slave queue. For example, if the target slave queue is in a full state, it can be determined that command bus is in the busy state. On the other hand, if the target slave queue is not in the full state, it can be determined that the command bus is not in the busy state.  
         [0062]     If determined that the command bus is not in the busy state in operation  801 , an arbiter queue protocol is set to the bypass mode in operation  802 , a command transmitted from a master is bypassed to the target slave in operation  803 , and the process returns to operation  801 .  
         [0063]     If determined that the command bus is in the busy state in operation  801 , the arbiter queue protocol is set to the active mode in operation  804 , and the command transmitted from the master is stored in an arbiter queue in operation  805 .  
         [0064]     If determined that the command bus is in the busy state in operation  806 , a state of the command stored in the arbiter queue is maintained. However, if determined that the command bus is not in the busy state in operation  806 , the command stored in the arbiter queue is transmitted to the target slave using a FIFO method in operation  807 , and the process returns to operation  801 .  
         [0065]     As described above, according to an aspect of the present invention, since a hub queue is removed and a queue protocol using an arbiter queue and a slave queue is used in a pipeline bus system, occurrence of latency is decreased when a command is transmitted.  
         [0066]     Also, when a command bus is not in a busy state, since an arbiter queue protocol is used so that the command is bypassed in an arbiter, a master can communicate with a target slave in a 1:1 state.  
         [0067]     Furthermore, since the arbiter queue protocol is used only when required, occurrence of latency according to command transmission decreases and transmission efficiency of the command bus is improved. In particular, when a plurality of masters transmit commands to a single target slave, since the arbiter queue protocol is used only when the slave queue is in a full state, the occurrence of latency according to the command transmission is further decreased.  
         [0068]     While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the following claims.