Exemplary embodiments of an information processing apparatus and a data communication device according to the present invention are explained in detail below with reference to the accompanying drawings
A first embodiment of the present invention is explained based on
The first embodiment employs a PCI Express (registered trademark), which is one type of high-speed serial bus. As a premise of the embodiments, the outlines of the PCI Express standard are explained by partially extracting from “Outline of the PCI Express Standard”, Takashi Satomi, Interface, July 2003. Here, the high-speed serial bus means an interface allowing data to be exchanged at high speed (equal to or higher than approximately 100 megabits per second) through serial transmission by using one transmission line.
The PCI Express bus is a bus standardized as a standard expansion bus for use in computers in general as a succeeding version of PCI. Briefly, the PCI Express bus has features, such as low-voltage differential signal transmission, a point-to-point communication channel with independent transmission and reception, packetized split transaction, and high scalability for different link configuration.
A configuration example of an existing PCI system is shown in
On the other hand, in the PCI Express system, a CPU 110 and a memory 111 are connected to a root complex 112, to which a PCI Express graphics 113 is connected through a PCI Express 114a and to which a switch 117a having connected thereto an end point 115a and a legacy end point 116a through a PCI Express 114b is connected through a PCI Express 114c. Also, a switch 117c is connected to the root complex 112 through a PCI Express 114f. The switch 117c has connected thereto a switch 117b through a PCI Express 114d and a PCI bridge 119 through a PCI Express 114e. The switch 117b has connected thereto an end point 115b and a legacy end point 116b, and the PCI bridge 119 has connected thereto a PCI bus slot 118. With this, a tree structure is formed.
An example of a PCI Express platform that can be practically assumed is shown in
That is, in the PCI Express system, conventional PCI, PCI-X, and AGP are replaced by PCI Express, and a bridge is used for connecting the existing PCI/PCI-X devices. A connection between chip sets is also replaced by a PCI Express connection, and the existing buses of IEEE 1394, Serial ATA, USB 2.0 and others are connected to PCI Express through an I/O hub.
A configuration of a physical layer is shown in
The root complex 112 is positioned at the top of the I/O configuration, and connects the CPU and a memory sub-system to the I/O. In a block diagram, for example, as shown in
The end points 115 are devices having a configuration space header of type 00h (specifically, a device other than a bridge), and are divided into a legacy end point and a PCI Express end point. A significant difference between them is that the PCI Express end point is a Base Address Register (BAR) and does not require an I/O resource, and therefore does not make an I/O request. Neither does the PCI Express end point support a lock request.
The switches 117 (or 134) connect two or more ports for packet routing among ports. From configuration software, as shown in
A connection from PCI Express to PCI/PCI-X is provided. With this, the existing PCI/PCI-X devices can be used on the PCI Express system.
The conventional PCI architecture has a structure in which a protocol and signaling are closely related to each other as shown in
In the PCI Express architecture, the main components are the transaction layer 153, the data link layer 154, and the physical layer 155. Each of these layers functions as explained below with reference to
The transaction layer 153 is positioned at the top, and has a function of assembling and disassembling a transaction layer packet (TLP). The transaction layer packet (TLP) is used for transmission of transactions, such as read/write and various events. Also, the transaction layer 153 performs flow control using a credit for the transaction layer packet (TLP). The outlines of the transaction layer packet (TLP) in each of the layers 153 to 155 are shown in
The main function of the data link layer 154 is to ensure data integrity of the transaction layer packet (TLP) through error detection/correction (retransmission) and perform link management. Between data link layers 154, a packet for link management and flow control is exchanged. Such a packet is called a data link layer packet so as to be differentiated from the transaction layer packet (TLP).
The physical layer 155 includes necessary circuits for interface operation, such as a driver, input buffer, parallel-serial/serial-parallel converter, Phase-Locked Loop (PLL), and impedance matching circuit. Also, as a logical function, the physical layer 155 has a function of initializing and maintaining the interface. Furthermore, the physical layer 155 has a function of making the data link layer 154/transaction layer 153 independent from signal technologies used in an actual link.
In the PCI Express hardware configuration, a technology called embedded clock is adopted. In this technology, no clock signal is present and clock timing is embedded in a data signal. Based on a cross point of the data signal on the reception side, a clock is extracted.
As with the conventional PCI, PCI Express has a configuration space. However, in contrast to the size of the configuration space in the convention PCI being 256 bytes, the size is expanded to 4096 bytes as shown in
This space has 256 bytes at the head, which can be accessed as a PCI configuration space even from a Basic Input Output System (BIOS) or the conventional Operating System (OS) through a scheme of using an I/O port. A function of converting the conventional access to PCI Express access is implemented on the host bridge. A PCI 2.3-compatible configuration header is formed by 00h to 3Fh. With this, the conventional OS and software can be used except for functions obtained through expansion in the PCI Express. That is, the software layer in the PCI Express has inherited a load store architecture compatible with the existing PCI (a scheme in which a processor directly accesses an I/O register). However, for using functions obtained through expansion in the PCI Express (for example, functions of synchronous transfer and Reliability, Availability and Serviceability (RAS)), it is required to access a PCI Express Expanded space of 4 kilobytes.
The PCI Express can take various form factors (shapes). Specific examples are an add-in card, a plug-in card (Express Card), and a Mini PCI Express.
The transaction layer 153, the data link layer 154, and the physical layer 155, which are main portions of the PCI Express architecture, are respectively explained.
The main function of the transaction layer 153 is, as explained above, to assemble and disassemble a transaction layer packet (TLP) between the upper software layer 151 and the lower data link layer 154.
In the PCI Express, in addition to a memory space (for data transfer with the memory space), a I/O space (for data transfer with the I/O space), and a configuration space (for device configuration and setup), a message space is added (for in-band event notification and general message transmission (exchange) between PCI Express devices, and an interrupt request or confirmation is transmitted by using a message as a “virtual wire”). Therefore, four address spaces are defined. For each space, a transaction type is defined (the memory space, the I/O space, and the configuration space is defined as read/write, whilst the message space is defined as basic (including vendor definition)).
In the PCI Express, communication is performed in a packet unit. In the format of the Transaction Layer Packet (TLP) shown in
An end-to-end Cyclic Redundancy Check (ECRC) is to ensure end-to-end data integrity, and is 32 bits CRC in a part of the Transaction Layer Packet (TLP). ECRC is used because if an error occurs to the Transaction Layer Packet (TLP) inside the switch, the error cannot be detected through link CRC (LCRC) (because the LCRC is recalculated in the TLP where the error occurs).
Requests include a request that requires a complete packet and a request that does not require the complete packet.
Upper software can differentiate traffics by using traffic classes (TCs). For example, video data can be transferred with priority over network data. The traffic classes (TC) are classified into eight classes TC0 to TC7.
Virtual Channels (VCs) are virtual communication buses independent from one another (with a mechanism in which a plurality of independent data flow buffers sharing the same link are used) and each have a resource (a buffer and a queue). As shown in
In the transaction layer, the Traffic Classes (TCs) are mapped to the Virtual Channels (VCs). To one Virtual Channel (VC), one or plurality of Traffic Classes (TCs) can be mapped (when the number of Virtual Channels (VCs) is small). For example, in a simple case, a Traffic Class (TC) can be mapped to each Virtual Channel (VC) in a one-to-one relationship, and all Traffic Classes (TCs) can be mapped to the virtual channel VC0. TC0-VC0 mapping is indispensable/fixed, and other mapping is controlled by the upper software. By using the Traffic Classes (TCs), the software can control the priorities of transactions.
To avoid an overflow in a reception buffer and establish a transfer order, Flow Control (FC) is performed. The flow control is performed in a point-to-point manner between links, not end-to-end. Consequently, the flow control does not allow acknowledgement of a packet reaching a final destination (completer).
The flow control in the PCI Express is performed on a credit base (using a mechanism in which the empty state of a reception side buffer is confirmed before starting data transmission to avoid overflow and underflow). That is, the reception side notifies a transmission side of a buffer capacity (a credit value) at the time of initializing the link, and the transmission side then compares the credit value with the length of the packet to be transmitted and transmits the packet only when there is a certain remaining capacity. There are six types of credits.
Information exchange in flow control is performed by using a Data Link Layer Packet (DLLP) of the data link layer. The flow control is applied only to the Transaction Layer Packet (TLP) and is not applied to the Data Link Layer Packet (DLLP) (DLLP can always be transmitted and received).
The main function of the data link layer 154 is to provide a function of highly reliable Transaction Layer packet (TLP) exchange between two or more components on the link.
A Transaction Layer Packet (TLP) received from the transaction layer 153 is provided with a sequence number of 2 bytes at its head and an LCRC (link CRC) of 4 bytes at its tail, and is then passed to the physical layer 155 (refer to
The sequence number and the Link CRC (LCRC) of the Transaction Layer Packet (TLP) received from the physical layer 155 are examined, and if they are normal, the TLP is sent to the transaction layer 153. If there is an error, retransmission is requested.
When transmitted from the physical layer, the Transaction Layer Packet (TLP) is automatically divided into Data Link Layer Packets (DLLPs) as shown in
As shown in
The main function of a logical sub-block 156 in the physical layer 155 shown in
In the PCI Express, to avoid successive “0”s or “1”s (to avoid the state in which no cross point is present for a long time) 8B/10B conversion is used for data encoding. As shown in
To suppress power consumption of links, as shown in
L0 is a normal mode and power consumption is more lowered from the L0s to L2, but time requiring for recovery to L0 becomes longer. As shown in
The main function of the electrical sub-block 157 in the physical layer 155 is to transmit data serialized by the logical sub-block 156 onto a lane and to receive data from a lane for transfer to the logical sub-block 156.
A capacitor for AC coupling is mounted at the transmission side of the link. With this, it is not necessary that a DC common mode voltage be the same at the transmission side and the reception side. Therefore, different designs, different semiconductor processes, and different power supply voltages can be used between the transmission side and the reception side.
As explained above, in the PCI Express, the process is performed through 8B/10B encoding so as to avoid successive “0”s or “1”s as much as possible. However, there may be a case where successive “0”s or “1”s are present (at the maximum of five). In this case, it is stipulated that the transmission side execute de-emphasis transfer. When the same polarity bits continue, it is necessary that a noise margin of a signal received at the reception side be obtained by lowering the differential voltage level (amplitude) by 3.5±0.5 decibels from the second bit. This is called de-emphasis. For changing bits, with attenuation of frequency dependency on the transmission line, high frequency components are increased and the waveform at the reception side becomes small due to the attenuation. However, for unchanging bits, the high frequency components are decreased and the waveform at the reception side becomes relatively large. Therefore, de-emphasis is applied to make the waveform at the reception side constant.
One example of a data communication device according to the present embodiment is explained with reference to
As depicted in
The PCIe core 2 includes, as explained with reference to
The data transfer master 3 includes a request producing circuit 31 as a parameter adjusting unit that sets a request issuing timing and adjusts a payload size, a write-data generating circuit 32 that generates write data according to an instruction from the request producing circuit 31, a read-data receiving circuit 33 that receives read data, and a transfer-rate measuring circuit 34 as a transfer-rate measuring unit that observes a data amount of the write-data generating circuit 32 and the read-data receiving circuit 33 to measure a transfer rate.
The data transfer slave 4 includes a request receiving circuit 41 that receives a request, a write-data receiving circuit 42 that receives write data, and a read-data transmitting circuit 43 that transmits read data.
A method of adjusting the payload size based on a memory write operation is explained. A command and data issued from the request producing circuit 31 and the write-data generating circuit 32 of the data transfer master 3 of the device A are transmitted to the PCIe core 2 of the device A. The PCIe core 2 of the device A performs data transfer with the PCIe core 2 of the device B through a PCI Express communication protocol. In the device B, the data received by the PCIe core 2 is transmitted to the data transfer slave 4, thereby completing transfer from the data transfer master 3 of the device A to the data transfer slave 4 of the device B. Data transfer from the device B to the device A is similarly performed.
Each data transfer master 3 observes the state of the write-data generating circuit 32 to measure the transfer rate of write data, and then transmits its information to the request producing circuit 31. The request producing circuit 31 adjusts the payload size based on the transfer rate information.
Measurement of the transfer rate by the transfer-rate measuring circuit 34 is explained below.
Then, the value latched in the manner explained above is reported to the request producing circuit 31 as transfer rate information. From a table referring to this information, the request producing circuit 31 determines the payload size.
A method of adjusting the payload size based on a memory read operation is explained. A command issued from the request producing circuit 31 of the data transfer master 3 of the device A is transmitted to the PCIe core 2 of the device A. The PCIe core 2 of the device A performs data transfer with the PCIe core 2 of the device B according to a PCI Express communication protocol. The device B transmits the read request command received at the PCIe core 2 to the data transfer slave 4. The data transfer slave 4 of the device B receiving the read request returns read data according to the request from the read-data transmitting circuit 43 to the PCIe core 2 of the device B. The PCIe core 2 of the device B performs data transfer with the PCIe core 2 of the device A according to the PCI Express communication protocol. The device A transmits the data received at the PCIe core 2 to the read-data receiving circuit 33 of the data transfer master 3, thereby completing transfer. Read data transfer from the data transfer master 3 of the device B is performed similarly.
Each data transfer master 3 observes the state of the read-data receiving circuit 33 to measure the transfer rate, and then transmits its information to the request producing circuit 31. Based on the transfer rate information, the request producing circuit 31 adjusts the payload size.
A method of adjusting the payload size at the request producing circuit 31 is explained. For example, it is assumed as depicted in
Noting the conditions of a point X in
The adjustment of the payload size as explained above is performed when the operation mode of an information processing apparatus, such as a digital copier or an MFP, having mounted thereon the data communication device 1 is switched.
As different operation modes, consider a case with different payload sizes of the traffic 1 in
In this manner, according to the present embodiment, a transfer rate of each traffic present between data communication devices connected via a high-speed serial bus is measured, and a parameter associated with data transfer in each traffic (for example, a packet size) is adjusted so that the measured transfer rate of each traffic has a preset target value. With this mechanism, even when a high-speed serial bus is applied to a data communication device having complex operation modes (for example, image equipment), a parameter associated with data transfer can be optimized. Also, transfer capabilities can be dynamically optimized, which is not possible at all in conventional information processing apparatuses and data communication devices (for example, image equipment).
A second embodiment of the present invention is explained below based on
A method of adjusting the payload size based on a memory write operation is explained. A command and data issued from the request producing circuit 31 and the write-data generating circuit 32 of the data transfer master 3 of the device A are transmitted to the PCIe core 2 of the device A. The PCIe core 2 of the device A performs data transfer with the PCIe core 2 of the device B through a PCI Express communication protocol. In the device B, the data received by the PCIe core 2 is transmitted to the data transfer slave 4, thereby completing transfer from the data transfer master 3 of the device A to the data transfer slave 4 of the device B. Data transfer from the device B to the device A is similarly performed.
Each data transfer slave 4 measures a transfer rate of write data, and reports this information to the request producing circuit 31 of the data transfer master 3 in the same device. The request producing circuit 31 receiving the transfer rate information generates a packet for reporting the transfer rate to the counterpart device. This information is transmitted via PCI Express to the request receiving circuit 41 of the data transfer slave 4 of the counterpart device. The data transfer slave 4 receiving the information reports the transfer rate information to the data transfer master 3 in its own device. Based on the transfer rate information, the request producing circuit 31 of the data transfer master 3 adjusts the payload size.
A method of adjusting the payload size based on a memory read operation is explained. A command issued from the request producing circuit 31 of the data transfer master 3 of the device A is transmitted to the PCIe core 2 of the device A. The PCIe core 2 of the device A performs data transfer with the PCIe core 2 of the device B according to a PCI Express communication protocol. The device B transmits the read request command received at the PCIe core 2 to the data transfer slave 4. The data transfer slave 4 of the device B receiving the read request returns read data according to the request from the read-data transmitting circuit 43 to the PCIe core 2 of the device B. The PCIe core 2 of the device B performs data transfer with the PCIe core 2 of the device A according to the PCI Express communication protocol. The device A transmits the data received at the PCIe core 2 to the read-data receiving circuit 33 of the data transfer master 3, thereby completing transfer. Read data transfer from the data transfer master 3 of the device B is performed similarly.
Each data transfer slave 4 measures a transfer rate of read data, and reports this information to the request producing circuit 31 of the data transfer master 3 in the same device. The request producing circuit 31 receiving the transfer rate information generates a packet for reporting the transfer rate to the counterpart device. This information is transmitted via PCI Express to the request receiving circuit 41 of the data transfer slave 4 of the counterpart device. The data transfer slave 4 receiving the information reports the transfer rate information to the data transfer master 3 in its own device. Based on the transfer rate information, the request producing circuit 31 of the data transfer master 3 adjusts the payload size.
In this manner, according to the present embodiment, a transfer rate of each traffic present between data communication devices connected via a high-speed serial bus is measured, and a parameter associated with data transfer in each traffic (for example, a packet size) is adjusted so that the measured transfer rate of each traffic has a preset target value. With this mechanism, even when a high-speed serial bus is applied to a data communication device having complex operation modes (for example, image equipment), a parameter associated with data transfer can be optimized. Also, transfer capabilities can be dynamically optimized, which is not possible at all in conventional information processing apparatuses and data communication devices (for example, image equipment).
A third embodiment of the present invention is explained below based on
The buffer-size control circuit 5 has, as depicted in
That is, the buffer-size control circuit 5 selects an appropriate table from the transfer-rate/buffer-size conversion tables T according to the transfer-rate measurement data.
Then, according to the buffer size determined by the buffer-size control circuit 5, the memory size of a desired memory 70 is adjusted in each buffer-memory address control circuit 60 inside the transaction layer and the link layer.
A method of adjusting the buffer size based on a memory write operation is explained. A command and data issued from the request producing circuit 31 and the write-data generating circuit 32 of the data transfer master 3 of the device A are transmitted to the PCIe core 2 of the device A. The PCIe core 2 of the device A performs data transfer with the PCIe core 2 of the device B through a PCI Express communication protocol. In the device B, the data received by the PCIe core 2 is transmitted to the data transfer slave 4, thereby completing transfer from the data transfer master 3 of the device A to the data transfer slave 4 of the device B. Data transfer from the device B to the device A is similarly performed.
Each data transfer master 3 observes the state of the write-data generating circuit 32 to measure the transfer rate of write data, and then transmits its information to the buffer-size control circuit 5. The buffer-size control circuit 5 adjusts the buffer size based on the transfer rate information.
Next, a method of adjusting the buffer size based on a memory read operation is explained. A command issued from the request producing circuit 31 of the data transfer master 3 of the device A is transmitted to the PCIe core 2 of the device A. The PCIe core 2 of the device A performs data transfer with the PCIe core 2 of the device B according to a PCI Express communication protocol. The device B transmits the read request command received at the PCIe core 2 to the data transfer slave 4. The data transfer slave 4 of the device B receiving the read request returns read data according to the request from the read-data transmitting circuit 43 to the PCIe core 2 of the device B. The PCIe core 2 of the device B performs data transfer with the PCIe core 2 of the device A according to the PCI Express communication protocol. The device A transmits the data received at the PCIe core 2 to the read-data receiving circuit 33 of the data transfer master 3, thereby completing transfer. Read data transfer from the data transfer master 3 of the device B is performed similarly.
Each data transfer master 3 observes the state of the read-data receiving circuit 33 to measure the transfer rate, and then transmits its information to the buffer-size control circuit 5. Based on the transfer rate information, the buffer-size control circuit 5 adjusts the buffer size.
Next, a method of adjusting the buffer size at the buffer-size control circuit 5 is explained. For example, it is assumed as depicted in
Here, note the conditions of a point Y in
The adjustment of the buffer size as explained above is performed when the operation mode of an information processing apparatus, such as a digital copier or an MFP, having mounted thereon the data communication device 1 is switched.
Here, as different operation modes, consider a case with different payload sizes and different target values of the transfer rate of the traffic 2 in
In this manner, according to the present embodiment, a transfer rate of each traffic present between data communication devices connected via a high-speed serial bus is measured, and a parameter associated with data transfer in each traffic (for example, a packet size) is adjusted so that the measured transfer rate of each traffic has a preset target value. With this mechanism, even when a high-speed serial bus is applied to a data communication device having complex operation modes (for example, image equipment), a parameter associated with data transfer can be optimized. Also, transfer capabilities can be dynamically optimized, which is not possible at all in conventional information processing apparatuses and data communication devices (for example, image equipment).
As described above, according to one aspect of the present invention, a traffic rate of each traffic present between data communication devices connected via a high-speed serial bus is measured, and a parameter associated with data transfer in each traffic (for example, a packet size or buffer size) is adjusted so that the measured transfer rate of each traffic has a preset target value. With this mechanism, even when a high-speed serial bus is applied to a data communication device with complex operation modes (for example, image equipment), a parameter associated with data transfer can be optimized. Also, transfer capabilities can be dynamically optimized, which is not possible at all in conventional information processing apparatuses and data communication devices (for example, image equipment).
Although the invention has been described with respect to a specific embodiment for a complete and clear disclosure, the appended claims are not to be thus limited but are to be construed as embodying all modifications and alternative constructions that may occur to one skilled in the art that fairly fall within the basic teaching herein set forth.
Number | Date | Country | Kind |
---|---|---|---|
2006-190721 | Jul 2006 | JP | national |