Abstract:
The various embodiments described herein relate to a system for performing a serial communication between a central control block and a plurality of satellite components within a semiconductor chip. The system comprises at least one logical ring that serially connects the satellite components to the central control block. The system further comprises a centralized timer. The satellite components aid the system in obeying protocols and performing direct accesses to and/or from registers. The logical ring comprises at least one data channel that is provided for transmitting data packets and address packets. Single-envelope transactions are implemented. Errors of the satellite components associated with the single-envelope transactions are reported to the central control block as additional acknowledgement information.

Description:
CROSS REFERENCE TO RELATED APPLICATION  
       [0001]    This application claims priority to German patent application number 07119371.8, filed on Oct. 26, 2007, in accordance with 35 U.S.C. 119, which is incorporated by reference herein in its entirety. 
       BACKGROUND OF THE INVENTION  
       [0002]    1. Field of the Invention 
         [0003]    The various embodiments described herein relate to a system for performing a serial communication between a central control block and satellite components according to the appended claims. 
         [0004]    2. Description of the Related Art 
         [0005]    A microprocessor chip comprises various parts that must be configured or monitored during a power-on-reset (POR) procedure or even while the microprocessor chip is running. 
         [0006]    A general structure implements a central control block that connects to distributed satellite components in a ring fashion to minimize routing overhead. The satellite components aid such a structure in obeying protocols and performing direct accesses to or from registers. 
         [0007]    An access to the central control block can be requested from one or several internal masters and external masters. The internal masters are arranged within the chip. The external masters are arranged outside of the chip. Typical examples of internal masters include the POR engine or the processor core itself. A service processor acting as an external master accesses the central control block via protocols such as JTAG (Joint Test Action Group), I2C (Inter-Integrated Circuit), or proprietary protocols. 
         [0008]    U.S. Pat. No. 6,529,979 describes a method and an apparatus for transferring data using an on-chip bus. A data transaction consists of an address packet and a data packet. The address packet and the data packet are transmitted on the on-chip bus. The on-chip bus is a two-wire serial bus consisting of an address line and a data line. The on-chip bus connects a plurality of satellite components in a daisy-chain fashion to a central source. Each satellite component on the chip is associated with a unique identifier. In response to a determination that the data transaction is accepted by the satellite component, the address packet is modified to indicate the acceptance of the address packet and the data packet. The acceptance is determined by the address in the address packet positively comparing to the unique identifier for the satellite component. 
         [0009]    In this prior art a satellite component may experience a write error or a read error. For example, this may occur in a hang situation. Such a hang situation is detected by implementing a timer in each satellite component. In the event of a hang situation, a satellite component reports an error to another logic part of the processor (such logic part is outside of the scope of the various embodiments described herein). However, it is not possible to relate the reported error to the register access causing the error if the central source has carried out other register accesses in the meantime. 
       OBJECT OF THE INVENTION  
       [0010]    It is an object of the various embodiments described herein to provide an improved system for performing a serial communication between a central control block and satellite components. 
       SUMMARY OF THE INVENTION  
       [0011]    This object is achieved by a system as provided in the independent claims. Further exemplary embodiments are described in the dependent claims and are taught in the description below. 
         [0012]    The various embodiments described herein relate to a system for performing a serial communication between a central control block and a plurality of satellite components within a semiconductor chip. The system may comprise at least one logical ring that serially connects the satellite components to the central control block. The system may further comprise a centralized timer that may be implemented within the system. The satellite components may aid the system in obeying protocols and performing direct accesses to and/or from registers. The logical ring may comprise at least one data channel. The data channel may be formed as a serial ring and may be provided for transmitting data packets and address packets. The data channel transactions may have both an address phase, during which address information is presented on the bus, and a data phase, during which data information is presented on the bus. 
         [0013]    In addition, single-envelope transactions may be implemented, wherein any data phase may be coordinated with a corresponding address phase so that the satellite components acknowledge the transaction only after a successful access to a register is performed. In the event of a read error or a write error, such single-envelope transactions may enable the direct relation of the error to the transaction without the need to introduce an additional ring. Satellite errors associated with such single-envelope transactions may be reported as additional acknowledgment information to the central control block rather than to another logic part of the processor. Such reporting of satellite errors as a part of the transaction information simplifies the error reporting structure. 
         [0014]    In an exemplary embodiment, the data channel may be formed as a serial bus. In particular, the data channel may be formed as a one-wire serial bus. 
         [0015]    In another exemplary embodiment, the logical ring may include a control channel formed as a serial ring. The control channel may be formed as a serial bus. In particular, the control channel may be formed as a one-wire serial bus. Moreover, the control channel may be provided for power gating the satellite components (i.e., turning on and/or off a power gate of the satellite components). Furthermore, the control channel may be provided for turning on and/or off a local clock. In addition, the control channel may be provided for resetting the system. Additionally, the control channel may be provided for checking the functionality of the serial ring. 
         [0016]    In another exemplary embodiment, the centralized timer of the system may be implemented within the central control block. The centralized timer reduces the complexity of the satellite components. 
         [0017]    In another exemplary embodiment, the central control block may serve one or more logical rings (i.e., logical ring(s)). The selection of the logical ring(s) to be used may depend on additional information which is not sent over the logical ring(s). 
         [0018]    The system according to the various embodiments described herein is advantageous in that a dedicated ring for the control channel provides an easy and fast way to turn on the clock and to check for the functionality of the ring. In the prior art, these activities are performed by using the incoming address packet or data packet, which means that the central control block must shift lengthy information before recognizing that the ring is corrupted. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0019]    The aforementioned disclosure, as well as additional objectives, features, and advantages of the various embodiments described herein, will be further explained in the following detailed written description. 
           [0020]    The novel and inventive features of the various embodiments described herein are set forth in the appended claims. The embodiments and advantages thereof will be best understood by reference to the following detailed description of exemplary embodiments in conjunction with the accompanied drawings, wherein: 
           [0021]      FIG. 1  illustrates a schematic diagram of a system for performing a serial communication between a central control block and satellite components according to an exemplary embodiment; 
           [0022]      FIG. 2  illustrates a detailed schematic diagram of the satellite component embedded into a macro circuit according to an exemplary embodiment; 
           [0023]      FIG. 3  illustrates a schematic timing diagram of the protocol for performing a read access according to an exemplary embodiment; and 
           [0024]      FIG. 4  illustrates a schematic timing diagram of the protocol for performing a write access according to an exemplary embodiment. 
       
    
    
     DETAILED DESCRIPTION  
       [0025]      FIG. 1  illustrates a schematic diagram of a system for performing a serial communication between a central control block  10  and a plurality of satellite components  12 ,  14  and  16  according to an exemplary embodiment. 
         [0026]    In this embodiment, the system includes the three satellite components  12 ,  14  and  16  connected to the central control block  10  by a logical ring  18 . The central control block  10  is connected to the satellite components  12 ,  14  and  16  in a ring fashion. In  FIG. 1  a logical ring  20  is also shown. Generally, an exemplary embodiment may comprise one or more logical rings. 
         [0027]    The logical ring  18  may comprise two physical serial rings, namely a data channel  22  and a control channel  24 . The data channel  22  may be formed as a one-wire serial bus. The control channel  24  also may be formed as a one-wire serial bus. From the perspective of the central control block  10 , an outbound direction of the data channel  22  is called a downlink data channel  26 , and an inbound direction of the data channel  22  is called an uplink data channel  32 . Similarly, from the perspective of the central control block  10 , an outbound direction of the control channel  24  is called a downlink control channel  28 , and an inbound direction of the control channel  24  is called an uplink control channel  30 . 
         [0028]    The central control block  10  may provide a terminal for each of the downlink data channel  26 , the downlink control channel  28 , the uplink control channel  30 , and the uplink data channel  32 , respectively. 
         [0029]      FIG. 2  illustrates a detailed schematic diagram of the satellite component  12 ,  14 ,  16  according to an exemplary embodiment. Each satellite component  12 ,  14 ,  16  may be embedded within a macro circuit  34  that implements the relevant registers and other logic. Each satellite component  12 ,  14 ,  16  may comprise a kernel  36  and a logical gate  38 . The kernel  36  may be interconnected into the control channel  24 . The logical gate  38  may be interconnected into the data channel  22 . 
         [0030]      FIG. 3  illustrates a schematic timing diagram of the protocol for performing a read access according to an exemplary embodiment. The signals on the downlink data channel  26 , the downlink control channel  28 , the uplink control channel  30 , and the uplink data channel  32  between the central control block  10  and the logical ring  18  are shown. Prior to the transaction, the central control block  10  may set the downlink control channel  28  to logical “one” in order to turn on the clock signal of the satellite components  12 ,  14  and  16 . The clock signals of the satellite components  12 ,  14  and  16  are not explicitly shown in  FIG. 3 . 
         [0031]    If all of the satellite components  12 ,  14  and  16  are operating properly, the uplink control channel  30  may be asserted after a number of delay cycles that depends on the implementation. The delay may be approximately one cycle per satellite component  12 ,  14 ,  16 . 
         [0032]    Once the uplink control channel  30  is asserted, the central control block  10  may send via the downlink data channel  26  an address packet  40 , depicted in  FIG. 3  as an enclosed region on the downlink data channel  26 . The address packet  40  may contain additional bits to protect the integrity of the address packet  40 . Practically, the first bit of the address packet  40  may be a start bit of logical “one”. The sent address packet  40  on the downlink data channel  26  appears as an echoed version of the signal on the uplink data channel  32  if the logical ring  18  and all of the satellite components  12 ,  14  and  16  are working properly. Whenever the satellite component  12 ,  14 ,  16  has the desired data, it may send one or more reply packets (i.e., reply packet(s)) back to the central control block  10  via the uplink data channel  32 . 
         [0033]    The reply packet(s) may include an address packet  40 , an acknowledgement information packet  42 , and a data packet  44 . These packets are depicted in  FIG. 3  as enclosed regions on the uplink data channel  32 . 
         [0034]    Both the acknowledgement information packet  42  and the data packet  44  may contain additional bits to protect the integrity of the information. After receiving the reply packet(s) via the uplink data channel  32 , the central control block  10  may desert the downlink control channel  28 . The falling edge of the signal on the downlink control channel  28  may be used to reset all of the satellite components  12 ,  14  and  16  to a well-defined idle state. 
         [0035]      FIG. 4  illustrates a schematic timing diagram of the protocol for performing a write access according to an exemplary embodiment. It is similar to the read access protocol, except that the central control block  10  may send via the downlink data channel  26  both the address packet  40  and the data packet  44 . On the uplink data channel  32 , the satellite component  12 ,  14 ,  16  may send one or more reply packets back to the central control block  10 . Specifically, the satellite component  12 ,  14 ,  16  may mirror back to the central control block  10  the address packet  40  and the data packet  44  and then may send the acknowledgement information packet  42 , which may be protected by additional bits. 
         [0036]    With respect to both a read access and a write access, the address packet  40  on the downlink data channel  26  may contain information about the unique identity of the satellite component  12 ,  14 ,  16 , the unique identity of the register address and information about a read or a write, and (optionally) one or more additional bits to protect the integrity of the address packet  40 . 
         [0037]    Moreover, the address packet  40  on the uplink data channel  32  may contain information about the unique identity of the satellite component  12 ,  14 ,  16 , the unique identity of the register address, one or more acknowledgement information bits, and (optionally) one or more additional bits to protect the integrity of the address part. 
         [0038]    All errors associated with a pending register access may be reported by the satellite component  12 ,  14 ,  16  to the central control block  10  through the use of one or more acknowledgement information bits in the reply packet(s) on the uplink data channel  32  (e.g., in the address packet  40 ). 
         [0039]    The data packet  44  may contain data bits and may also contain one or more additional bits to protect the integrity of the data part. 
         [0040]    In an exemplary embodiment, all physical wires carrying the downlink data channel  26 , the downlink control channel  28 , the uplink control channel  30 , and the uplink data channel  32  may stay at a predefined logic level in the idle state. 
         [0041]    Each packet on the downlink data channel  26  and the uplink data channel  32  may contain one or more start bits to enable detection of the packet. Additionally, each packet on the downlink data channel  26  and the uplink data channel  32  may have a constant and predetermined packet length to simplify the receiver logic implementation. 
         [0042]    Each packet on the downlink data channel  26  and the uplink data channel  32  may contain at its end one or more frame bits to specify the end of the packet and to detect stuck-at-faults on the wires. 
         [0043]    Furthermore, the rising edge of the signal on the downlink control channel  28  may turn on the local clock of the satellite components  12 ,  14  and  16  and optionally may power-on the satellite components  12 ,  14  and  16  if power gating has been implemented. 
         [0044]    The falling edge of the signal on the downlink control channel  28  may reset the satellites to a well-defined state, may turn off the local clock, and optionally may power-off the satellite components  12 ,  14  and  16  if power gating has been implemented. 
         [0045]    A hang detection is performed only in the central control block  10  by a central timer. If a hang situation is detected, the central control block  10  may reset the downlink control channel  28  to logical “zero” in order to terminate the transaction and may reset the satellite components  12 ,  14  and  16  as described above. 
         [0046]    The various exemplary embodiments described herein may be realized in hardware, in software, or in a combination of hardware and software. The various embodiments may be embedded in a computer program product that comprises all the features enabling the implementation of the embodiments described herein. Further, when loaded in a computer system, the computer program product is able to carry out the embodiments. 
         [0047]    Although various embodiments have been described herein with reference to the accompanying drawings, it is to be understood that the disclosure is not limited to the precise embodiments described and that various other changes and modifications may be performed therein by one skilled in the art without departing from the scope or spirit of the disclosure. All such changes and modifications are intended to be included within the scope of the disclosure as defined by the appended claims.