Control chipset, and data transaction method and signal transmission devices therefor6684284Abstract A data transaction method between control chips. Data buffers of the control chips of the control chipset have fixed size and amount. In addition, read/write acknowledge commands are asserted in sequence according to read/write commands, by which the control chips can detect the status of the buffers within another control chips. When a control chip asserts a command, the corresponding data must be ready in advance. Therefore, the signal line for providing the waiting status, data transaction cycle and stop/retry protocol can be omitted. Accordingly, commands or data can be continuously transmitted without waiting, stop or retry, the performance is improved. Claims What is claimed is: Description CROSS-REFERENCE TO RELATED APPLICATION
TABLE 1
Signals Initiated By Remark
CLK 66 MHz clock signal
DNSTB North Bridge Down Strobe
UPSTB South Bridge Up Strobe
DNCMD North Bridge Down Command
UPCMD South Bridge Up Command
BE North Bridge/South Bridge Byte Enable
AD [7:0] North Bridge/South Bridge Address/Data bus
VREF Reference Voltage
COMP Impedance Comparison
FIG. 4 illustrates a timing relationship between a bus clock signal (CLK), a strobe signal (STB) and bit times of data lines for transferring data according to the present invention. As shown in FIG. 4, one clock period is equal to two strobe clock periods. Namely, the frequency of the uplink strobe signal/downlink strobe signal is twice the frequency of the bus clock signal. There are four bit times 0.about.3 defined by the rising and falling edges of the strobe signal. Therefore, 4 bit data are obtained by using the four bit times 0.about.3 on each data line and bus commands are encoded from the four bit times 0.about.3. Accordingly, 32 bit data are obtained using 8 data lines during each clock period, which is equivalent to that data are transferred using 32 data lines in the conventional PCI specification. In addition, if the BE signal line transmits a data length, 1.about.16 (4 bits) data length information are obtained within one clock period. A various types of data transactions are defined by the uplink command UPCMD and the downlink command DNCMD. The uplink command UPCMD driven by the south bridge comprises a read acknowledge command (NB to SB) C2PRA, a write acknowledge command (NB to SB) C2PWA, a read command P2CR (SB to NB), and a write command (SB to NB) P2CW etc. The relations between uplink commands and the bit time encoding are listed in Table 2. The request signal REQ is asserted at bit time 0, and not overlapped with the other bus commands. Therefore, the REQ signal can be sent at any time, and even at the same clock period which a bus command is asserted. The downlink command DNCMD driven by the north bridge comprises a input/output read command (NB to SB) C2PIOR, a memory read command (NB to SB) C2PMR, a input/output write command (NB to SB) C2PIOW, a memory write command (NB to SB) C2PMW, a read acknowledge command (SB to NB) P2CRA, and a write acknowledge command (SB to NB) P2CWA etc. The relations between downlink commands and the bit time encoding are listed in Table 3. No grant signal GNT is defined or needed in the present invention. The commands asserted by the north bridge and the south bridge are corresponding to each other. When the south bridge sequentially asserts a number of P2CR and/or P2CW, the north bridge must sequentially assert the corresponding P2CRA and/or P2CWA commands in response to the P2CR and/or P2CW commands. Similarly, when the north bridge sequentially asserts a number of C2PIOR, C2PMR, C2PIOW and C2PMW commands, the south bridge must sequentially assert the corresponding C2PRA and C2PWA commands in response to the P2CR and/or P2CW commands. In addition, as described in the preferred embodiment, data corresponding to each command asserted by the control chip must be prepared by the north bridge/south bridge in advance. For example, data written into the memory must be ready before the south bridge asserts a P2CW command and data for transferring the read data from the memory to the south bridge must be ready before the north bridge asserts a P2CRA command. Accordingly, there is no interrupting in data transmission and no wait status is existed.
TABLE 2
(uplink command UPCMD)
Bit Time 0 Bit Time 1 Bit Time 2 Bit Time 3
REQ PMSTR MIO WR Explanation
-- 0 -- 0 C2PRA
-- 0 -- 1 C2PWA
-- 0 0 0 P2CR
-- 0 0 1 P2CW
-- 1 1 0 NOP
0 -- -- -- REQ
FIG. 5A schematically illustrates a block diagram of a control chipset for write transactions according to one preferred embodiment of the present invention. The control chipset, for example, comprises a first control chip and a second control chip. In general, the first and the second control chips may be the north bridge 500 and the south bridge 600. The first control chip (north bridge) 500 and the second control chip (south bridge) 600 are coupled by a special designed bus, VLINK. The north bridge 500 comprises a data transceiver 510, a target controller 520 (for example, a memory controller), a write data queue 525 and a write transaction queue 540. The south bridge 600 comprises a data transceiver 610, a write buffer size register 535, a write buffer counting register 540, a write transaction generator 545, a write transaction recording queue circuit 550 and a write comparator 555. The data transceiver 510 which meetsthe VLINK specification of the present invention is directly coupled to the VLINK bus. Through the VLINK bus, the data transceiver 510 can receive and transmit data to complete a number of write transactions. One write transaction is defined as that the south bridge 600 sends a P2CW command and data corresponding to the P2CW command and then the north bridge 500 asserts a P2CWA command for responding the P2CW command. The write transaction queue 530 temporally stores respective data length and write addresses of all write transactions in sequence. The depth of the write transaction queue 530 determines a total number of write transactions allowed by the north bridge 500. The write data queue 525 stores all the post write data from the south bridge 600. The depth of the write data queue determines the maximum number of the write data allowed by the north bridge 500. After the target controller 520 sends data to a target, for example a external memory, data according to a write address and data length first stored in the write transaction queue 530 and data stored in the write data queue 525 corresponding to the write address and data length. The first data transceiver 510 sends a write acknowledge signal (the P2CWA command) to inform the south bridge 600 that the write transaction is completed and all the write data are in the target device. The corresponding data stored in the write data queue 525 are then released. The write buffer count register 540 stores the maximum number of the write transactions that the write transaction queue 530 of the north bridge 500 can handle. i.e., its depth. The write buffer size register 535 stores the maximum number of the write data that the write data queue 525 of the north bridge 500 can handle, i.e., its depth. For example, the write buffer count register 540 is set to 4 and the write buffer size register 535 is set to 16. Therefore, the south bridge 600 knows that the north bridge 500 can accept up to 4 write transactions and the maximum number of data of the write transactions can not exceed 16DW. The two parameters, the maximum number of the write transactions and data can be setup by BIOS (basic input output system) configuration during booting. The data transceiver 610 coupled to the VLINK bus, receives and transmits data through the VLINK bus to complete all write transactions. When the data transceiver 610 receives a P2CWA command, the data transceiver 610 sends a signal which indicates successful write and buffer release to write transaction recording queue circuit 550 for releasing space that stores data length corresponding to the currently write transaction. When a new data length, a write address and data of next write transaction are generated by the write transaction generator 545, the new data length is then sent to the write transaction recording queue circuit 550. The write transaction recording circuit 550 is capable of calculating the data numbers allowable in the write data queue 525 and the write transaction numbers allowable in the write transaction queue 530. This is because the write transaction recording circuit 550 sequentially stores the data lengths of all write transactions, and the P2CWA asserted by the north bridge 500 responded in accordance with the sequence of the P2CW commands asserted by the south bridge 600. Therefore, the south bridge 600 can recognize the status of buffers in the queues within the north bridge 500. The write transaction recording circuit 550 can send the data numbers allowable in the write data queue 525 and the write transaction numbers allowable in the write transaction queue 530 to the write comparator 555. The write comparator 555 then respectively compares the received data with the maximum numbers of the write data stored in the write data buffer size register 535 and the maximum numbers of write transaction stored in the write buffer counting register 540. If the data received by the write comparator 555 is less than the maximum data numbers and the maximum transaction numbers, the write comparator 555 acknowledges the data transceiver 610 to send another information of write transaction. Otherwise, the south bridge 600 cannot sends more write transactions to the north bridge 500. FIG. 5B shows an example of a timing diagram of a write transaction according to the present invention. As an example, it is provided that the south bridge 600 gets the authority to use the data bus and begins a first write transaction at T1. The south bridge 600 asserts a write command P2CW on the uplink command signal line UPCMD, a write address ADDR on address/data (AD) bus and a data length LEN=2 (for example) that is to be written on the byte enable (BE) signal line. At period T2, the south bridge 600 sends a first data on the AD bus and BE command of the first data on the BE signal line. At period T3, a second data is sent by the south bridge 600. At the time, an unfinished write transaction still runs in the north bridge 500. The south bridge 600 is capable of recognizing the maximum number of write transaction and the maximum size of write data queue concurrently allowed by the north bridge, therefore the south bridge 600 determines whether the north bridge 500 receives new write transactions or not. If there is still empty space in the write transaction queue 530 and the write data queue 525, the south bridge 600 initiates a second write transaction at period T4. At the time, there are two unfinished write transactions within the north bridge 500. At period T9, the south bridge determines whether a third write transaction can be initiated or not. If the south bridge detects that initiating a third write transaction causes the overflows of the write transaction queue 530 or the write data queue 525, the south bridge then does not initiate the third transaction at periodT9. When the north bridge 500 writes data corresponding to the first write transaction into the memory, the north bridge 500 asserts a write acknowledge command through the downlink signal line DNCMD at periodT9 to acknowledge the south bridge 600 that the first write transaction (length LEN=2) has finished. Then the south bridge 600 can detect that one space of the write transaction queue 530 and two spaces of the write data queue 525 of the north bridge 500 are released. Namely, the south bridge 600 knows that the first write transaction has been finished after the south bridge 600 receives the write acknowledge command. The spaces of the write transaction queue 530 and the write data queue 525 corresponding to the first write transaction are released. Then the south bridge 600 determines that the north bridge 500 can handle the third write transaction. And then, the third write transaction begins at periodT12. FIG. 6A schematically illustrates a block diagram of a control chipset for read transactions according to the preferred embodiment of the present invention. The control chipset, for example, comprises a first control chip and a second control chip. In general, the first and the second control chips may be the north bridge 500 and the south bridge 600. The first control chip (north bridge) 500 and the second control chip (south bridge) 600 are coupled by a special designed bus, VLINK. The north bridge 500 comprises a data transceiver 510, target controller 520 (for example, a memory controller), read data queue 625 and a read transaction queue 630. The south bridge 600 comprises a data transceiver 610, a read buffer size register 635, a read buffer counting register 640, a read transaction generator 645, a read transaction recording circuit 650 and a read comparator 655. The data transceiver 510 which meets the VLINK specification of the present invention is directly coupled to the VLINK bus. Through the VLINK bus, the data transceiver 510 can receive and transmit data to complete read transactions. One read transaction is defined as that the south bridge 600 sends a P2CR command and then the north bridge 500 sends a P2CRA command and corresponding data for responding the P2CR command. The read transaction queue 630 temporally stores data lengths and read addresses of all read transactions in sequence. The depth of the read transaction queue 630 determines a total number of read transactions allowed by the north bridge 500. The read data queue 625 stores all the read data from the target controller 520, which will be sent to the south bridge 600 later. The depth of the read data queue determines the maximum number of read data allowed by the north bridge 500. The target controller 520 reads data from a target, for example an external memory, according to a read address and a data length that are first stored in the read transaction queue 630. The first data transceiver 510 sends a read acknowledge signal (the P2CRA command). At the same time, the corresponding data stored in the read data queue 625 are sent to the south bridge 600 through the VLINK bus and the released space can store another data for the next read transaction. The read buffer count register 640 and the read buffer size register 635 of the south bridge 600 respectively store the maximum number of read transactions the read transaction queue 625 can handle and the maximum number of data the read data queue 625 can store. For example, the maximum number of read transactions the read transaction queue 630 can handle (the read buffer count) is 4 and the maximum number of data the read data queue 625 can store (the read buffer size) is 16DW. The two parameters, the read buffer size and the read buffer count, can be setup by BIOS (basic input output system) configuration during booting or fixed during chipset design. The data transceiver 610 is coupled to the VLINK bus for receiving and transmitting data through the VLINK bus to complete all read transactions. When the data transceiver 610 receives a P2CRA command, the data transceiver 610 sends a signal which indicates successful read and buffer release to read transaction recording circuit 650 for releasing space that stores the data length of the currently corresponding read transaction. When a new data length and a read address of the next read transaction are generated by the read transaction generator 645, the new data length is then sent to the read transaction recording circuit 650. The read transaction recording queue circuit 650 is capable of calculating the data numbers allowable in the read data queue 630 and the read transaction numbers allowable in the read transaction queue 625. This is because the read transaction recording queue circuit 650 sequentially stores the data lengths of all read transactions, and the P2CRA asserted by the north bridge 500 is responded in accordance with the sequence of the P2CR commands asserted by the south bridge 600. Therefore, the south bridge 600 can recognize the status of buffers in the queues within the north bridge 500. The read transaction recording circuit 650 can send the data numbers allowable in the read data queue 630 and the read transaction numbers allowable in the read transaction queue 625 to the read comparator 655. The read comparator 655 then respectively compares the received data with the maximum data numbers of the read data queue 625 stored in the read data buffer size register 635 and the maximum read transaction numbers of the read transaction queue 630 stored in the read buffer count register 640. If the data received by the read comparator 655 is less than the maximum data numbers and the maximum read transaction numbers, the read comparator 655 acknowledges the data transceiver 610 that it is able to send another information of read transaction. FIG. 6B shows an example of a timing diagram of a read transaction according to the present invention. As an example, it provides first assume that the south bridge 600 gets the authority to use the data bus and begins a first read transaction at T1. The south bridge 600 asserts a read command P2CR on the uplink command signal line UPCMD, a read address ADDR on address/data (AD) bus and sends a data length LEN=2 (for example) that is to be read on the byte enable (BE) signal line. At this time, there is an unfinished read transaction within the north bridge 500. The south bridge 600 can detect the number of read transactions and the size of data queues allowed by the north bridge, and therefore, the south bridge can determine whether the north bridge can receive new read transactions or not. If there is still empty space in the read transaction queue 630 and read data queue 625, the south bridge 600 can initiate a second read transaction at periodT2 (LEN=3, for example). At the time, there are two unfinished read transactions within the north bridge 500. At period T3, the south bridge 600 determines that initiating a third read transaction causes overflow of the read transaction queue 630 or the read data queue 625, and then the south bridge does not initiate the third transaction at period T3. When the north bridge 500 gets the data corresponding to the first read transaction from a memory controller 520 and then stores the data in the read data queue 625, the north bridge 500 asserts a read acknowledge command to send data to the south bridge 600. At period T7, the north bridge gets the authority to use the bus, and then sends the read acknowledge command P2CRA on the downlink command signal line DNCMD and data of the first double word of the first read transaction on the AD bus. At period T8, the second double word of the first read transaction is sent out. At this time, the south bridge 600 detects that the spaces of read transaction queue 630 and the read data queue 625 corresponding to the first read transaction are released. Then, the south bridge 600 determines whether a third read transaction can be initiated or not. The south bridge 600 has to get the authority to use the VLINK bus before initiating the third read transaction. Therefore, the south bridge 600 asserts a request command REQ through the uplink command signal line UPCMD at period T10 to request the authority of use of the VLINK bus. During the period T9-T10-T11, the north bridge 500 sends the read acknowledge command to send the data of the second read transaction to the south bridge 600, and then the south bridge 600 gets the authority to use the bus at period T13. Then, the third read transaction is initiated by the south bridge 600. The north bridge and south bridge are the first control chipset and the second control chipset respectively and the commands are sent by the south bridge to control the north bridge to read or write data. However, to those skilled in the art, both the north and south bridges can have the corresponding structures, and therefore, the commands are not limited to be sent by the south bridge or the north bridge. Namely, the south and the north bridges can be the first control chipset and the second control chipset respectively. The descriptions corresponding to FIGS. 5A, 5B and 6A 6B are just examples, which are not used for limiting the scope of the present invention. The features of the present invention comprises at least: 1. When a write or read transaction is initiated, in addition to the addresses and command, the data length corresponding to the write or read transaction is also sent, therefore, no FRAME signal is required to inform the termination of the data transaction. 2. When there are a number of write or read transactions to be executed, a number of write or read acknowledge commands corresponding to the write or read transaction are sequentially sent and corresponded, therefore, the chipsets can know the status of the internal queues of chipsets each other. 3. The application is not limited to the north bridge and south bridge of a PC, but also used for any data transaction between two chips. It will be apparent to those skilled in the art that various modifications and variations can be made to the structure of the present invention without departing from the scope or spirit of the invention. In view of the foregoing, it is intended that the present invention cover modifications and variations of this invention provided they fall within the scope of the following claims and their equivalents.
|
Same subclass Same class Consider this |
||||||||||
